@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
@@ -3,19 +3,31 @@
3
3
 
4
4
  @layer components.tokens {
5
5
  .card {
6
+ --_row-1: var(--ui-row-1);
7
+ --_duration-fast: var(--ui-duration-fast);
8
+ --_ease-default: var(--ui-ease-default);
9
+ // @desc Padding on all sides
6
10
  --_padding: var(--ui-card-padding, var(--ui-space-4));
11
+ // @desc Border thickness
7
12
  --_border-width: var(--ui-card-border-width, var(--ui-border-width-sm));
13
+ // @desc Background color
8
14
  --_bg: var(--ui-card-bg, var(--ui-color-bg));
15
+ // @desc Border color
9
16
  --_border-color: var(--ui-card-border-color, var(--ui-color-border));
17
+ // @desc Corner radius
10
18
  --_radius: var(--ui-card-radius, var(--ui-radius-md));
11
19
  }
12
20
 
13
21
  // @modifier variant
22
+ // @desc Bg subtle
14
23
  .card--subtle { --_bg: var(--ui-card-bg-subtle, var(--ui-color-bg-subtle)); }
24
+ // @desc Bg muted
15
25
  .card--muted { --_bg: var(--ui-card-bg-muted, var(--ui-color-bg-muted)); }
16
26
 
17
27
  // @modifier size
28
+ // @desc Padding on all sides at small size
18
29
  .card--sm { --_padding: var(--ui-card-padding-sm, var(--ui-space-2)); }
30
+ // @desc Padding on all sides at large size
19
31
  .card--lg { --_padding: var(--ui-card-padding-lg, var(--ui-space-6)); }
20
32
 
21
33
  // @modifier boolean interactive
@@ -36,7 +48,7 @@
36
48
  padding: calc(var(--_padding) - var(--_border-width));
37
49
 
38
50
  // Grid-aligned line-height for text content
39
- line-height: var(--ui-row-1);
51
+ line-height: var(--_row-1);
40
52
 
41
53
  background: var(--_bg);
42
54
  border: var(--_border-width) solid var(--_border-color);
@@ -45,16 +57,19 @@
45
57
 
46
58
  .card--interactive {
47
59
  transition:
48
- background-color var(--ui-duration-fast) var(--ui-ease-default),
49
- border-color var(--ui-duration-fast) var(--ui-ease-default),
50
- box-shadow var(--ui-duration-fast) var(--ui-ease-default);
60
+ background-color var(--_duration-fast) var(--_ease-default),
61
+ border-color var(--_duration-fast) var(--_ease-default),
62
+ box-shadow var(--_duration-fast) var(--_ease-default);
51
63
 
52
64
  &:hover {
65
+ // @desc Bg hover
53
66
  --_bg: var(--ui-card-bg-hover, var(--ui-color-bg-subtle));
67
+ // @desc Border color hover
54
68
  --_border-color: var(--ui-card-border-color-hover, var(--ui-color-border-strong));
55
69
  }
56
70
 
57
71
  &:active {
72
+ // @desc Bg active
58
73
  --_bg: var(--ui-card-bg-active, var(--ui-color-bg-muted));
59
74
  }
60
75
  }
@@ -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": "data-list",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -20,19 +21,23 @@
20
21
  "cssVars": [
21
22
  {
22
23
  "name": "--ui-data-list-gap",
23
- "default": "calc(var(--ui-unit) * 2"
24
+ "default": "calc(var(--ui-unit) * 2)",
25
+ "description": "Gap between children"
24
26
  },
25
27
  {
26
28
  "name": "--ui-data-list-item-gap",
27
- "default": "calc(var(--ui-unit) * 1"
29
+ "default": "calc(var(--ui-unit) * 1)",
30
+ "description": "Item gap between children"
28
31
  },
29
32
  {
30
33
  "name": "--ui-data-list-label-color",
31
- "default": "var(--ui-color-text-muted)"
34
+ "default": "var(--ui-color-text-muted)",
35
+ "description": "Label text color"
32
36
  },
33
37
  {
34
38
  "name": "--ui-data-list-value-color",
35
- "default": "var(--ui-color-text)"
39
+ "default": "var(--ui-color-text)",
40
+ "description": "Value display text color"
36
41
  }
37
42
  ]
38
43
  }
@@ -1,13 +1,27 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component data-list
3
+ // @element div
2
4
 
3
5
  // Data-List - key-value pairs
4
6
  // Display structured data with labels and values
5
7
 
6
8
  @layer components.tokens {
7
9
  .data-list {
10
+ --_row-1: var(--ui-row-1, #{t.$row});
11
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
12
+ --_weight-medium: var(--ui-weight-medium, #{t.$weight-medium});
13
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
14
+ --_color-border: var(--ui-color-border, #{t.$color-border});
15
+ --_color-bg-subtle: var(--ui-color-bg-subtle, #{t.$color-bg-subtle});
16
+ --_radius-sm: var(--ui-radius-sm, #{t.$radius-sm});
17
+ --_font-size-lg: var(--ui-font-size-lg, #{t.$font-size-lg});
18
+ // @desc Gap between children
8
19
  --_gap: var(--ui-data-list-gap, calc(#{t.$unit} * 2));
20
+ // @desc Item gap between children
9
21
  --_item-gap: var(--ui-data-list-item-gap, calc(#{t.$unit} * 1));
22
+ // @desc Label text color
10
23
  --_label-color: var(--ui-data-list-label-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
24
+ // @desc Value display text color
11
25
  --_value-color: var(--ui-data-list-value-color, var(--ui-color-text, #{t.$color-text}));
12
26
  }
13
27
  }
@@ -20,7 +34,7 @@
20
34
 
21
35
  margin: 0;
22
36
 
23
- line-height: var(--ui-row-1, #{t.$row});
37
+ line-height: var(--_row-1);
24
38
  }
25
39
 
26
40
  .data-list__item {
@@ -30,20 +44,21 @@
30
44
  }
31
45
 
32
46
  .data-list__label {
33
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
34
- font-weight: var(--ui-weight-medium, #{t.$weight-medium});
35
- line-height: var(--ui-row-1, #{t.$row});
47
+ font-size: var(--_font-size-sm);
48
+ font-weight: var(--_weight-medium);
49
+ line-height: var(--_row-1);
36
50
  color: var(--_label-color);
37
51
  }
38
52
 
39
53
  .data-list__value {
40
54
  margin: 0;
41
55
 
42
- line-height: var(--ui-row-1, #{t.$row});
56
+ line-height: var(--_row-1);
43
57
  color: var(--_value-color);
44
58
  }
45
59
 
46
60
  // Horizontal layout (side-by-side)
61
+ // @modifier layout
47
62
  .data-list--horizontal .data-list__item {
48
63
  flex-direction: row;
49
64
  align-items: baseline;
@@ -60,11 +75,12 @@
60
75
  }
61
76
 
62
77
  // With dividers
78
+ // @modifier style
63
79
  .data-list--divided .data-list__item {
64
80
  // Subtract border from padding to keep total on grid
65
- padding-block-end: calc(var(--_gap) - var(--ui-border-width-sm, #{t.$border-width-sm}));
81
+ padding-block-end: calc(var(--_gap) - var(--_border-width-sm));
66
82
 
67
- border-block-end: var(--ui-border-width-sm, #{t.$border-width-sm}) solid var(--ui-color-border, #{t.$color-border});
83
+ border-block-end: var(--_border-width-sm) solid var(--_color-border);
68
84
  }
69
85
 
70
86
  .data-list--divided .data-list__item:last-child {
@@ -77,16 +93,17 @@
77
93
  .data-list--striped .data-list__item:nth-child(odd) {
78
94
  padding: calc(#{t.$unit} * 1);
79
95
 
80
- background: var(--ui-color-bg-subtle, #{t.$color-bg-subtle});
81
- border-radius: var(--ui-radius-sm, #{t.$radius-sm});
96
+ background: var(--_color-bg-subtle);
97
+ border-radius: var(--_radius-sm);
82
98
  }
83
99
 
84
100
  // Compact size
101
+ // @modifier size
85
102
  .data-list--sm {
86
103
  --_gap: calc(#{t.$unit} * 1);
87
104
  --_item-gap: 0;
88
105
 
89
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
106
+ font-size: var(--_font-size-sm);
90
107
  }
91
108
 
92
109
  // Large size
@@ -94,6 +111,6 @@
94
111
  --_gap: calc(#{t.$unit} * 3);
95
112
  --_item-gap: calc(#{t.$unit} * 1);
96
113
 
97
- font-size: var(--ui-font-size-lg, #{t.$font-size-lg});
114
+ font-size: var(--_font-size-lg);
98
115
  }
99
116
  }
@@ -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": "icon",
3
4
  "element": "svg",
4
5
  "modifiers": {
@@ -18,40 +19,28 @@
18
19
  "cssVars": [
19
20
  {
20
21
  "name": "--ui-icon-size",
21
- "default": "var(--ui-ctx-size, 1rem)",
22
+ "default": "var(--ui-ctx-size)",
22
23
  "description": "3-tier: global > context > default"
23
24
  },
24
25
  {
25
26
  "name": "--ui-icon-stroke",
26
- "default": "2"
27
+ "default": "var(--ui-icon-stroke)",
28
+ "description": "Stroke"
27
29
  },
28
30
  {
29
- "name": "--ui-icon-size-xs",
30
- "default": "var(--ui-size-xs)"
31
- },
32
- {
33
- "name": "--ui-icon-size-sm",
34
- "default": "var(--ui-size-sm)"
35
- },
36
- {
37
- "name": "--ui-icon-size-md",
38
- "default": "var(--ui-size-md)"
39
- },
40
- {
41
- "name": "--ui-icon-size-lg",
42
- "default": "var(--ui-size-lg)"
43
- },
44
- {
45
- "name": "--ui-icon-size-xl",
46
- "default": "var(--ui-size-xl)"
31
+ "name": "--ui-icon-size-",
32
+ "default": "",
33
+ "description": "Size"
47
34
  },
48
35
  {
49
36
  "name": "--ui-icon-stroke-thin",
50
- "default": "1"
37
+ "default": "var(--ui-icon-stroke-thin)",
38
+ "description": "Stroke thin"
51
39
  },
52
40
  {
53
41
  "name": "--ui-icon-stroke-thick",
54
- "default": "2.5"
42
+ "default": "var(--ui-icon-stroke-thick)",
43
+ "description": "Stroke thick"
55
44
  }
56
45
  ]
57
46
  }
@@ -6,24 +6,29 @@
6
6
  @layer components.tokens {
7
7
  .icon {
8
8
  // 3-tier inheritance: global > context > default
9
+ // @desc 3-tier: global > context > default
9
10
  --_size: var(--ui-icon-size, var(--ui-ctx-size, #{t.size(md)}));
10
- --_stroke: var(--ui-icon-stroke, 2);
11
+ // @desc Stroke
12
+ --_stroke: var(--ui-icon-stroke, #{t.$icon-stroke});
11
13
  }
12
14
 
13
- // @modifier size
15
+ // @modifier size xs, sm, md, lg, xl
14
16
  @each $name, $value in t.$sizes {
15
17
  .icon--#{$name} {
18
+ // @desc Size
16
19
  --_size: var(--ui-icon-size-#{$name}, var(--ui-size-#{$name}, #{$value}));
17
20
  }
18
21
  }
19
22
 
20
23
  // @modifier stroke
21
24
  .icon--stroke-thin {
22
- --_stroke: var(--ui-icon-stroke-thin, 1);
25
+ // @desc Stroke thin
26
+ --_stroke: var(--ui-icon-stroke-thin, #{t.$icon-stroke-thin});
23
27
  }
24
28
 
25
29
  .icon--stroke-thick {
26
- --_stroke: var(--ui-icon-stroke-thick, 2.5);
30
+ // @desc Stroke thick
31
+ --_stroke: var(--ui-icon-stroke-thick, #{t.$icon-stroke-thick});
27
32
  }
28
33
 
29
34
  // @modifier boolean filled
@@ -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": "image",
3
4
  "element": "figure",
4
5
  "modifiers": {
@@ -12,7 +13,7 @@
12
13
  "type": "boolean"
13
14
  },
14
15
  "object-fit": {
15
- "values": ["cover", "contain"]
16
+ "values": ["cover", "contain", "circle"]
16
17
  }
17
18
  },
18
19
  "elements": {
@@ -22,55 +23,68 @@
22
23
  "cssVars": [
23
24
  {
24
25
  "name": "--ui-image-size",
25
- "default": "auto"
26
+ "default": "auto",
27
+ "description": "Overall size"
26
28
  },
27
29
  {
28
- "name": "--ui-image-size-sm",
29
- "default": "calc(var(--ui-unit) * 12)"
30
+ "name": "--ui-image-radius",
31
+ "default": "0",
32
+ "description": "Corner radius"
30
33
  },
31
34
  {
32
- "name": "--ui-image-size-md",
33
- "default": "calc(var(--ui-unit) * 24)"
35
+ "name": "--ui-image-object-fit",
36
+ "default": "cover",
37
+ "description": "Object fit"
34
38
  },
35
39
  {
36
- "name": "--ui-image-size-lg",
37
- "default": "calc(var(--ui-unit) * 40)"
40
+ "name": "--ui-image-bg",
41
+ "default": "var(--ui-color-bg-muted)",
42
+ "description": "Background color"
38
43
  },
39
44
  {
40
- "name": "--ui-image-size-xl",
41
- "default": "calc(var(--ui-unit) * 60)"
45
+ "name": "--ui-image-caption-color",
46
+ "default": "var(--ui-color-text-muted)",
47
+ "description": "Caption color"
42
48
  },
43
49
  {
44
- "name": "--ui-image-bg",
45
- "default": "var(--ui-color-bg-muted)"
50
+ "name": "--ui-image-caption-font-size",
51
+ "default": "var(--ui-font-size-sm)",
52
+ "description": "Caption font size"
46
53
  },
47
54
  {
48
- "name": "--ui-image-radius",
49
- "default": "0"
55
+ "name": "--ui-image-caption-spacing",
56
+ "default": "var(--ui-space-1)",
57
+ "description": "Caption spacing"
50
58
  },
51
59
  {
52
- "name": "--ui-image-radius-rounded",
53
- "default": "var(--ui-radius-lg)"
60
+ "name": "--ui-image-size-sm",
61
+ "default": "calc(var(--ui-unit) * 12)",
62
+ "description": "Overall size at small size"
54
63
  },
55
64
  {
56
- "name": "--ui-image-radius-circle",
57
- "default": "50%"
65
+ "name": "--ui-image-size-md",
66
+ "default": "calc(var(--ui-unit) * 24)",
67
+ "description": "Overall size at medium size"
58
68
  },
59
69
  {
60
- "name": "--ui-image-object-fit",
61
- "default": "cover"
70
+ "name": "--ui-image-size-lg",
71
+ "default": "calc(var(--ui-unit) * 40)",
72
+ "description": "Overall size at large size"
62
73
  },
63
74
  {
64
- "name": "--ui-image-caption-color",
65
- "default": "var(--ui-color-text-muted)"
75
+ "name": "--ui-image-size-xl",
76
+ "default": "calc(var(--ui-unit) * 60)",
77
+ "description": "Overall size at extra-large size"
66
78
  },
67
79
  {
68
- "name": "--ui-image-caption-font-size",
69
- "default": "var(--ui-font-size-sm)"
80
+ "name": "--ui-image-radius-rounded",
81
+ "default": "var(--ui-radius-lg)",
82
+ "description": "Radius rounded"
70
83
  },
71
84
  {
72
- "name": "--ui-image-caption-spacing",
73
- "default": "var(--ui-space-1)"
85
+ "name": "--ui-image-radius-circle",
86
+ "default": "50%",
87
+ "description": "Radius circle"
74
88
  }
75
89
  ]
76
90
  }
@@ -78,7 +78,7 @@
78
78
  ]
79
79
  }
80
80
  ],
81
- "code": "<figure class=\"ui-image ui-image--sm\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Small\">\n</figure>\n<figure class=\"ui-image ui-image--md\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Medium\">\n</figure>\n<figure class=\"ui-image ui-image--lg\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Large\">\n</figure>"
81
+ "code": "<figure class=\"ui-image ui-image--sm\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Small\">\n</figure>\n<figure class=\"ui-image ui-image--md\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Medium\">\n</figure>\n<figure class=\"ui-image ui-image--lg\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Large\">\n</figure>\n<figure class=\"ui-image ui-image--xl\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"XL\">\n</figure>\n<figure class=\"ui-image ui-image--full\">\n <img class=\"ui-image__img\" src=\"...\" alt=\"Full\">\n</figure>"
82
82
  }
83
83
  ]
84
84
  },
@@ -5,29 +5,41 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .image {
8
+ --_row-1: var(--ui-row-1, #{t.$row-1});
9
+ // @desc Overall size
8
10
  --_size: var(--ui-image-size, auto);
11
+ // @desc Corner radius
9
12
  --_radius: var(--ui-image-radius, 0);
13
+ // @desc Object fit
10
14
  --_object-fit: var(--ui-image-object-fit, cover);
15
+ // @desc Background color
11
16
  --_bg: var(--ui-image-bg, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
17
+ // @desc Caption color
12
18
  --_caption-color: var(--ui-image-caption-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
19
+ // @desc Caption font size
13
20
  --_caption-font-size: var(--ui-image-caption-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
21
+ // @desc Caption spacing
14
22
  --_caption-spacing: var(--ui-image-caption-spacing, var(--ui-space-1));
15
23
  }
16
24
 
17
25
  // @modifier size
18
26
  .image--sm {
27
+ // @desc Overall size at small size
19
28
  --_size: var(--ui-image-size-sm, calc(#{t.$unit} * 12));
20
29
  }
21
30
 
22
31
  .image--md {
32
+ // @desc Overall size at medium size
23
33
  --_size: var(--ui-image-size-md, calc(#{t.$unit} * 24));
24
34
  }
25
35
 
26
36
  .image--lg {
37
+ // @desc Overall size at large size
27
38
  --_size: var(--ui-image-size-lg, calc(#{t.$unit} * 40));
28
39
  }
29
40
 
30
41
  .image--xl {
42
+ // @desc Overall size at extra-large size
31
43
  --_size: var(--ui-image-size-xl, calc(#{t.$unit} * 60));
32
44
  }
33
45
 
@@ -37,11 +49,13 @@
37
49
 
38
50
  // @modifier boolean rounded
39
51
  .image--rounded {
52
+ // @desc Radius rounded
40
53
  --_radius: var(--ui-image-radius-rounded, var(--ui-radius-lg, #{t.$radius-lg}));
41
54
  }
42
55
 
43
56
  // @modifier boolean circle
44
57
  .image--circle {
58
+ // @desc Radius circle
45
59
  --_radius: var(--ui-image-radius-circle, 50%);
46
60
  }
47
61
 
@@ -92,7 +106,7 @@
92
106
  margin-block-start: var(--_caption-spacing);
93
107
 
94
108
  font-size: var(--_caption-font-size);
95
- line-height: var(--ui-row-1, #{t.$row-1});
109
+ line-height: var(--_row-1);
96
110
  color: var(--_caption-color);
97
111
  }
98
112
 
@@ -1,23 +1,35 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component stat
3
+ // @element div
2
4
 
3
5
  @layer components.tokens {
4
6
  .stat {
7
+ --_tracking-display: var(--ui-tracking-display, #{t.$tracking-display});
8
+ // @desc Gap between children
5
9
  --_gap: var(--ui-stat-gap, var(--ui-space-1, #{t.$space-1}));
6
10
  }
7
11
 
8
12
  .stat__value {
13
+ // @desc Value display font size
9
14
  --_font-size: var(--ui-stat-value-font-size, var(--ui-font-size-3xl, #{t.$font-size-3xl}));
15
+ // @desc Value display font weight
10
16
  --_font-weight: var(--ui-stat-value-font-weight, var(--ui-weight-bold, #{t.$weight-bold}));
17
+ // @desc Value display line height
11
18
  --_line-height: var(--ui-stat-value-line-height, var(--ui-leading-3xl, #{t.$leading-3xl}));
19
+ // @desc Value display text color
12
20
  --_color: var(--ui-stat-value-color, var(--ui-color-text, #{t.$color-text}));
13
21
  }
14
22
 
15
23
  .stat__label {
24
+ // @desc Label font size
16
25
  --_font-size: var(--ui-stat-label-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
26
+ // @desc Label text color
17
27
  --_color: var(--ui-stat-label-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
28
+ // @desc Label line height
18
29
  --_line-height: var(--ui-stat-label-line-height, var(--ui-leading-sm, #{t.$leading-sm}));
19
30
  }
20
31
 
32
+ // @modifier size
21
33
  .stat--sm .stat__value {
22
34
  --_font-size: var(--ui-font-size-xl, #{t.$font-size-xl});
23
35
  --_line-height: var(--ui-leading-xl, #{t.$leading-xl});
@@ -35,7 +47,7 @@
35
47
  font-size: var(--_font-size);
36
48
  font-weight: var(--_font-weight);
37
49
  line-height: var(--_line-height);
38
- letter-spacing: var(--ui-tracking-display, #{t.$tracking-display});
50
+ letter-spacing: var(--_tracking-display);
39
51
  color: var(--_color);
40
52
  }
41
53
 
@@ -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": "stat",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -6,13 +7,50 @@
6
7
  "values": ["sm"]
7
8
  }
8
9
  },
9
- "subElements": ["value", "label"],
10
+ "elements": {
11
+ "value": {},
12
+ "label": {}
13
+ },
10
14
  "cssVars": [
11
- { "name": "--ui-stat-gap", "default": "var(--ui-space-1)" },
12
- { "name": "--ui-stat-value-font-size", "default": "var(--ui-font-size-3xl)" },
13
- { "name": "--ui-stat-value-font-weight", "default": "var(--ui-weight-bold)" },
14
- { "name": "--ui-stat-value-color", "default": "var(--ui-color-text)" },
15
- { "name": "--ui-stat-label-font-size", "default": "var(--ui-font-size-sm)" },
16
- { "name": "--ui-stat-label-color", "default": "var(--ui-color-text-muted)" }
15
+ {
16
+ "name": "--ui-stat-gap",
17
+ "default": "var(--ui-space-1)",
18
+ "description": "Gap between children"
19
+ },
20
+ {
21
+ "name": "--ui-stat-value-font-size",
22
+ "default": "var(--ui-font-size-3xl)",
23
+ "description": "Value display font size"
24
+ },
25
+ {
26
+ "name": "--ui-stat-value-font-weight",
27
+ "default": "var(--ui-weight-bold)",
28
+ "description": "Value display font weight"
29
+ },
30
+ {
31
+ "name": "--ui-stat-value-line-height",
32
+ "default": "var(--ui-leading-3xl)",
33
+ "description": "Value display line height"
34
+ },
35
+ {
36
+ "name": "--ui-stat-value-color",
37
+ "default": "var(--ui-color-text)",
38
+ "description": "Value display text color"
39
+ },
40
+ {
41
+ "name": "--ui-stat-label-font-size",
42
+ "default": "var(--ui-font-size-sm)",
43
+ "description": "Label font size"
44
+ },
45
+ {
46
+ "name": "--ui-stat-label-color",
47
+ "default": "var(--ui-color-text-muted)",
48
+ "description": "Label text color"
49
+ },
50
+ {
51
+ "name": "--ui-stat-label-line-height",
52
+ "default": "var(--ui-leading-sm)",
53
+ "description": "Label line height"
54
+ }
17
55
  ]
18
56
  }
@@ -1,15 +1,21 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component status
3
+ // @element div
2
4
 
3
5
  // Status - visual status indicator
4
6
  // Small dot or badge to show state
5
7
 
6
8
  @layer components.tokens {
7
9
  .status {
10
+ // @desc Overall size
8
11
  --_size: var(--ui-status-size, calc(#{t.$unit} * 1));
12
+ // @desc Text color
9
13
  --_color: var(--ui-status-color, var(--ui-color-text-muted));
14
+ // @desc Gap between children
10
15
  --_gap: var(--ui-status-gap, calc(#{t.$unit} * 1));
11
16
  }
12
17
 
18
+ // @modifier variant
13
19
  .status--success {
14
20
  --_color: var(--ui-color-success);
15
21
  }
@@ -45,6 +51,7 @@
45
51
  }
46
52
 
47
53
  // Pulse animation for active status
54
+ // @modifier boolean pulse
48
55
  .status--pulse .status__dot {
49
56
  position: relative;
50
57
  }
@@ -79,6 +86,7 @@
79
86
  }
80
87
 
81
88
  // Size variants
89
+ // @modifier size
82
90
  .status--sm {
83
91
  --_size: calc(#{t.$unit} * 0.75);
84
92
  --_gap: calc(#{t.$unit} * 0.75);
@@ -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": "status",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "variant": {
6
7
  "values": ["success", "warning", "danger", "info"]
7
8
  },
8
- "size": {
9
- "values": ["sm", "lg"]
10
- },
11
9
  "pulse": {
12
10
  "type": "boolean"
11
+ },
12
+ "size": {
13
+ "values": ["sm", "lg"]
13
14
  }
14
15
  },
15
16
  "elements": {
@@ -18,15 +19,18 @@
18
19
  "cssVars": [
19
20
  {
20
21
  "name": "--ui-status-size",
21
- "default": "calc(var(--ui-unit) * 1"
22
+ "default": "calc(var(--ui-unit) * 1)",
23
+ "description": "Overall size"
22
24
  },
23
25
  {
24
26
  "name": "--ui-status-color",
25
- "default": "var(--ui-color-text-muted)"
27
+ "default": "var(--ui-color-text-muted)",
28
+ "description": "Text color"
26
29
  },
27
30
  {
28
31
  "name": "--ui-status-gap",
29
- "default": "calc(var(--ui-unit) * 1"
32
+ "default": "calc(var(--ui-unit) * 1)",
33
+ "description": "Gap between children"
30
34
  }
31
35
  ]
32
36
  }