@teseor/css 1.8.0 → 1.10.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,19 +1,43 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component menu
3
+ // @element div
2
4
 
3
5
  // Menu - action menu
4
6
  // Dropdown list of actions or options
5
7
 
6
8
  @layer components.tokens {
7
9
  .menu {
10
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
11
+ --_font-size-xs: var(--ui-font-size-xs, #{t.$font-size-xs});
12
+ --_weight-medium: var(--ui-weight-medium, #{t.$weight-medium});
13
+ --_row-1: var(--ui-row-1, #{t.$row});
14
+ --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
15
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
16
+ --_color-text: var(--ui-color-text, #{t.$color-text});
17
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
18
+ --_ease-default: var(--ui-ease-default, ease);
19
+ --_color-danger: var(--ui-color-danger, #{t.$color-danger});
20
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
21
+ --_color-border: var(--ui-color-border, #{t.$color-border});
22
+ // @desc Minimum width
8
23
  --_min-width: var(--ui-menu-min-width, calc(#{t.$unit} * 16));
24
+ // @desc Maximum height
9
25
  --_max-height: var(--ui-menu-max-height, calc(#{t.$unit} * 40));
26
+ // @desc Padding on all sides
10
27
  --_padding: var(--ui-menu-padding, calc(#{t.$unit} * 1));
28
+ // @desc Corner radius
11
29
  --_radius: var(--ui-menu-radius, var(--ui-radius-md, #{t.$radius-md}));
30
+ // @desc Background color
12
31
  --_bg: var(--ui-menu-bg, var(--ui-color-bg, #{t.$color-bg}));
32
+ // @desc Border color
13
33
  --_border-color: var(--ui-menu-border-color, var(--ui-color-border, #{t.$color-border}));
34
+ // @desc Box shadow
14
35
  --_shadow: var(--ui-menu-shadow, var(--ui-shadow-lg));
36
+ // @desc Item padding on all sides
15
37
  --_item-padding: var(--ui-menu-item-padding, calc(#{t.$unit} * 1) calc(#{t.$unit} * 2));
38
+ // @desc Item corner radius
16
39
  --_item-radius: var(--ui-menu-item-radius, var(--ui-radius-sm, #{t.$radius-sm}));
40
+ // @desc Item bg hover
17
41
  --_item-bg-hover: var(--ui-menu-item-bg-hover, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
18
42
  }
19
43
  }
@@ -27,9 +51,9 @@
27
51
 
28
52
  background: var(--_bg);
29
53
  border-radius: var(--_radius);
30
- outline: var(--ui-border-width-sm, 0.0625rem) solid var(--_border-color);
54
+ outline: var(--_border-width-sm) solid var(--_border-color);
31
55
  box-shadow: var(--_shadow);
32
- outline-offset: calc(var(--ui-border-width-sm, 0.0625rem) * -1);
56
+ outline-offset: calc(var(--_border-width-sm) * -1);
33
57
  }
34
58
 
35
59
  .menu__group {
@@ -42,12 +66,12 @@
42
66
  .menu__label {
43
67
  padding: var(--_item-padding);
44
68
 
45
- font-size: var(--ui-font-size-xs, #{t.$font-size-xs});
46
- font-weight: var(--ui-weight-medium, #{t.$weight-medium});
47
- line-height: var(--ui-row-1, #{t.$row});
69
+ font-size: var(--_font-size-xs);
70
+ font-weight: var(--_weight-medium);
71
+ line-height: var(--_row-1);
48
72
  letter-spacing: 0.05em;
49
73
  text-transform: uppercase;
50
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
74
+ color: var(--_color-text-muted);
51
75
  }
52
76
 
53
77
  .menu__item {
@@ -57,17 +81,17 @@
57
81
 
58
82
  padding: var(--_item-padding);
59
83
 
60
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
61
- line-height: var(--ui-row-1, #{t.$row});
84
+ font-size: var(--_font-size-sm);
85
+ line-height: var(--_row-1);
62
86
  text-decoration: none;
63
- color: var(--ui-color-text, #{t.$color-text});
87
+ color: var(--_color-text);
64
88
 
65
89
  background: transparent;
66
90
  border: none;
67
91
  border-radius: var(--_item-radius);
68
92
  cursor: pointer;
69
93
 
70
- transition: background var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
94
+ transition: background var(--_duration-fast) var(--_ease-default);
71
95
 
72
96
  &:hover,
73
97
  &:focus-visible {
@@ -77,17 +101,17 @@
77
101
  }
78
102
 
79
103
  .menu__item--danger {
80
- color: var(--ui-color-danger, #{t.$color-danger});
104
+ color: var(--_color-danger);
81
105
 
82
106
  &:hover,
83
107
  &:focus-visible {
84
- color: var(--ui-color-danger, #{t.$color-danger});
108
+ color: var(--_color-danger);
85
109
  }
86
110
  }
87
111
 
88
112
  .menu__item--disabled,
89
113
  .menu__item[aria-disabled="true"] {
90
- opacity: var(--ui-opacity-disabled, 0.5);
114
+ opacity: var(--_opacity-disabled);
91
115
  pointer-events: none;
92
116
  }
93
117
 
@@ -101,8 +125,8 @@
101
125
  .menu__item-shortcut {
102
126
  margin-inline-start: auto;
103
127
 
104
- font-size: var(--ui-font-size-xs, #{t.$font-size-xs});
105
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
128
+ font-size: var(--_font-size-xs);
129
+ color: var(--_color-text-muted);
106
130
  }
107
131
 
108
132
  .menu__separator {
@@ -116,9 +140,9 @@
116
140
  content: '';
117
141
  flex: 1;
118
142
 
119
- block-size: var(--ui-border-width-sm, 1px);
143
+ block-size: var(--_border-width-sm);
120
144
 
121
- background: var(--ui-color-border, #{t.$color-border});
145
+ background: var(--_color-border);
122
146
  }
123
147
  }
124
148
 
@@ -1,17 +1,17 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "menu",
3
4
  "element": "div",
4
5
  "modifiers": {},
5
6
  "elements": {
6
7
  "group": {},
7
8
  "label": {},
8
- "separator": {},
9
9
  "item": {
10
10
  "modifiers": {
11
- "disabled": {
11
+ "danger": {
12
12
  "type": "boolean"
13
13
  },
14
- "danger": {
14
+ "disabled": {
15
15
  "type": "boolean"
16
16
  },
17
17
  "check": {
@@ -24,48 +24,59 @@
24
24
  },
25
25
  "item-icon": {},
26
26
  "item-shortcut": {},
27
+ "separator": {},
27
28
  "item-indicator": {}
28
29
  },
29
30
  "cssVars": [
30
31
  {
31
32
  "name": "--ui-menu-min-width",
32
- "default": "calc(var(--ui-unit) * 16"
33
+ "default": "calc(var(--ui-unit) * 16)",
34
+ "description": "Minimum width"
33
35
  },
34
36
  {
35
37
  "name": "--ui-menu-max-height",
36
- "default": "calc(var(--ui-unit) * 40"
38
+ "default": "calc(var(--ui-unit) * 40)",
39
+ "description": "Maximum height"
37
40
  },
38
41
  {
39
42
  "name": "--ui-menu-padding",
40
- "default": "calc(var(--ui-unit) * 1"
43
+ "default": "calc(var(--ui-unit) * 1)",
44
+ "description": "Padding on all sides"
41
45
  },
42
46
  {
43
47
  "name": "--ui-menu-radius",
44
- "default": "var(--ui-radius-md)"
48
+ "default": "var(--ui-radius-md)",
49
+ "description": "Corner radius"
45
50
  },
46
51
  {
47
52
  "name": "--ui-menu-bg",
48
- "default": "var(--ui-color-bg)"
53
+ "default": "var(--ui-color-bg)",
54
+ "description": "Background color"
49
55
  },
50
56
  {
51
57
  "name": "--ui-menu-border-color",
52
- "default": "var(--ui-color-border)"
58
+ "default": "var(--ui-color-border)",
59
+ "description": "Border color"
53
60
  },
54
61
  {
55
62
  "name": "--ui-menu-shadow",
56
- "default": "var(--shadow-lg)"
63
+ "default": "var(--ui-shadow-lg)",
64
+ "description": "Box shadow"
57
65
  },
58
66
  {
59
67
  "name": "--ui-menu-item-padding",
60
- "default": "calc(var(--ui-unit) * 1"
68
+ "default": "calc(var(--ui-unit) * 1) calc(var(--ui-unit) * 2)",
69
+ "description": "Item padding on all sides"
61
70
  },
62
71
  {
63
72
  "name": "--ui-menu-item-radius",
64
- "default": "var(--ui-radius-sm)"
73
+ "default": "var(--ui-radius-sm)",
74
+ "description": "Item corner radius"
65
75
  },
66
76
  {
67
77
  "name": "--ui-menu-item-bg-hover",
68
- "default": "var(--ui-color-bg-subtle)"
78
+ "default": "var(--ui-color-bg-subtle)",
79
+ "description": "Item bg hover"
69
80
  }
70
81
  ]
71
82
  }
@@ -5,22 +5,41 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .nav {
8
+ --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
9
+ --_font-sans: var(--ui-font-sans, #{t.$font-sans});
10
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
11
+ --_duration-base: var(--ui-duration-base);
12
+ --_ease-default: var(--ui-ease-default);
13
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
+ // @desc Gap between children
8
15
  --_gap: var(--ui-nav-gap, var(--ui-space-1, #{t.$space-1}));
16
+ // @desc Item overall height
9
17
  --_item-height: var(--ui-nav-item-height, var(--ui-row-2, #{t.$row-2}));
18
+ // @desc Item horizontal padding
10
19
  --_item-padding-x: var(--ui-nav-item-padding-x, var(--ui-space-2, #{t.$space-2}));
20
+ // @desc Item font size
11
21
  --_item-font-size: var(--ui-nav-item-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
22
+ // @desc Item font weight
12
23
  --_item-font-weight: var(--ui-nav-item-font-weight, var(--ui-weight-medium, #{t.$weight-medium}));
24
+ // @desc Item text color
13
25
  --_item-color: var(--ui-nav-item-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
26
+ // @desc Item color hover
14
27
  --_item-color-hover: var(--ui-nav-item-color-hover, var(--ui-color-text, #{t.$color-text}));
28
+ // @desc Item color active
15
29
  --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-primary, #{t.$color-primary}));
30
+ // @desc Item corner radius
16
31
  --_item-radius: var(--ui-nav-item-radius, var(--ui-radius-sm, #{t.$radius-sm}));
32
+ // @desc Border color
17
33
  --_border-color: var(--ui-nav-border-color, var(--ui-color-border, #{t.$color-border}));
18
34
  }
19
35
 
20
36
  // @modifier pills
21
37
  .nav--pills {
38
+ // @desc Item bg hover
22
39
  --_item-bg-hover: var(--ui-nav-item-bg-hover, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
40
+ // @desc Item bg active
23
41
  --_item-bg-active: var(--ui-nav-item-bg-active, var(--ui-color-primary, #{t.$color-primary}));
42
+ // @desc Item color active
24
43
  --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
25
44
  }
26
45
 
@@ -41,7 +60,7 @@
41
60
  list-style: none;
42
61
 
43
62
  // Bottom border via box-shadow to avoid height impact
44
- box-shadow: inset 0 calc(var(--ui-border-width-sm, #{t.$border-width-sm}) * -1) 0 var(--_border-color);
63
+ box-shadow: inset 0 calc(var(--_border-width-sm) * -1) 0 var(--_border-color);
45
64
  }
46
65
 
47
66
  .nav__item {
@@ -52,7 +71,7 @@
52
71
  block-size: var(--_item-height);
53
72
  padding-inline: var(--_item-padding-x);
54
73
 
55
- font-family: var(--ui-font-sans, #{t.$font-sans});
74
+ font-family: var(--_font-sans);
56
75
  font-size: var(--_item-font-size);
57
76
  font-weight: var(--_item-font-weight);
58
77
  line-height: 1;
@@ -63,13 +82,13 @@
63
82
  background: transparent;
64
83
  border: none;
65
84
  // Underline indicator via box-shadow
66
- box-shadow: inset 0 calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 transparent;
85
+ box-shadow: inset 0 calc(var(--_border-width-md) * -1) 0 transparent;
67
86
  cursor: pointer;
68
87
 
69
88
  transition:
70
- color var(--ui-duration-base) var(--ui-ease-default),
71
- background var(--ui-duration-base) var(--ui-ease-default),
72
- box-shadow var(--ui-duration-base) var(--ui-ease-default);
89
+ color var(--_duration-base) var(--_ease-default),
90
+ background var(--_duration-base) var(--_ease-default),
91
+ box-shadow var(--_duration-base) var(--_ease-default);
73
92
 
74
93
  &:hover {
75
94
  color: var(--_item-color-hover);
@@ -78,11 +97,11 @@
78
97
  &--active {
79
98
  color: var(--_item-color-active);
80
99
 
81
- box-shadow: inset 0 calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 var(--_item-color-active);
100
+ box-shadow: inset 0 calc(var(--_border-width-md) * -1) 0 var(--_item-color-active);
82
101
  }
83
102
 
84
103
  &--disabled {
85
- opacity: var(--ui-opacity-disabled, 0.5);
104
+ opacity: var(--_opacity-disabled);
86
105
  pointer-events: none;
87
106
  }
88
107
  }
@@ -117,14 +136,14 @@
117
136
 
118
137
  block-size: auto;
119
138
 
120
- box-shadow: inset calc(var(--ui-border-width-sm, #{t.$border-width-sm}) * -1) 0 0 var(--_border-color);
139
+ box-shadow: inset calc(var(--_border-width-sm) * -1) 0 0 var(--_border-color);
121
140
  }
122
141
 
123
142
  .nav__item {
124
- box-shadow: inset calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 0 transparent;
143
+ box-shadow: inset calc(var(--_border-width-md) * -1) 0 0 transparent;
125
144
 
126
145
  &--active {
127
- box-shadow: inset calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 0 var(--_item-color-active);
146
+ box-shadow: inset calc(var(--_border-width-md) * -1) 0 0 var(--_item-color-active);
128
147
  }
129
148
  }
130
149
  }
@@ -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": "nav",
3
4
  "element": "nav",
4
5
  "modifiers": {
5
6
  "pills": {
6
- "type": "boolean"
7
+ "values": ["pills"]
7
8
  },
8
9
  "vertical": {
9
10
  "type": "boolean"
@@ -11,45 +12,68 @@
11
12
  },
12
13
  "elements": {
13
14
  "list": {},
14
- "item": {
15
- "modifiers": {
16
- "active": {
17
- "type": "boolean"
18
- },
19
- "disabled": {
20
- "type": "boolean"
21
- }
22
- }
23
- }
15
+ "item": {}
24
16
  },
25
17
  "cssVars": [
26
18
  {
27
19
  "name": "--ui-nav-gap",
28
- "default": "var(--ui-space-1)"
20
+ "default": "var(--ui-space-1)",
21
+ "description": "Gap between children"
29
22
  },
30
23
  {
31
24
  "name": "--ui-nav-item-height",
32
- "default": "var(--ui-row-2)"
25
+ "default": "var(--ui-row-2)",
26
+ "description": "Item overall height"
33
27
  },
34
28
  {
35
29
  "name": "--ui-nav-item-padding-x",
36
- "default": "var(--ui-space-2)"
30
+ "default": "var(--ui-space-2)",
31
+ "description": "Item horizontal padding"
37
32
  },
38
33
  {
39
34
  "name": "--ui-nav-item-font-size",
40
- "default": "var(--ui-font-size-sm)"
35
+ "default": "var(--ui-font-size-sm)",
36
+ "description": "Item font size"
37
+ },
38
+ {
39
+ "name": "--ui-nav-item-font-weight",
40
+ "default": "var(--ui-weight-medium)",
41
+ "description": "Item font weight"
41
42
  },
42
43
  {
43
44
  "name": "--ui-nav-item-color",
44
- "default": "var(--ui-color-text-muted)"
45
+ "default": "var(--ui-color-text-muted)",
46
+ "description": "Item text color"
47
+ },
48
+ {
49
+ "name": "--ui-nav-item-color-hover",
50
+ "default": "var(--ui-color-text)",
51
+ "description": "Item color hover"
45
52
  },
46
53
  {
47
54
  "name": "--ui-nav-item-color-active",
48
- "default": "var(--ui-color-primary)"
55
+ "default": "var(--ui-color-primary)",
56
+ "description": "Item color active"
57
+ },
58
+ {
59
+ "name": "--ui-nav-item-radius",
60
+ "default": "var(--ui-radius-sm)",
61
+ "description": "Item corner radius"
49
62
  },
50
63
  {
51
64
  "name": "--ui-nav-border-color",
52
- "default": "var(--ui-color-border)"
65
+ "default": "var(--ui-color-border)",
66
+ "description": "Border color"
67
+ },
68
+ {
69
+ "name": "--ui-nav-item-bg-hover",
70
+ "default": "var(--ui-color-bg-muted)",
71
+ "description": "Item bg hover"
72
+ },
73
+ {
74
+ "name": "--ui-nav-item-bg-active",
75
+ "default": "var(--ui-color-primary)",
76
+ "description": "Item bg active"
53
77
  }
54
78
  ]
55
79
  }
@@ -1,17 +1,32 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component pagination
3
+ // @element div
2
4
 
3
5
  // Pagination - page navigation
4
6
  // Navigation through paginated content
5
7
 
6
8
  @layer components.tokens {
7
9
  .pagination {
10
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
11
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
12
+ --_ease-default: var(--ui-ease-default, ease);
13
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
+ --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
15
+ // @desc Gap between children
8
16
  --_gap: var(--ui-pagination-gap, calc(#{t.$unit} * 0.5));
17
+ // @desc Item overall size
9
18
  --_item-size: var(--ui-pagination-item-size, calc(#{t.$unit} * 4));
19
+ // @desc Item corner radius
10
20
  --_item-radius: var(--ui-pagination-item-radius, var(--ui-radius-sm, #{t.$radius-sm}));
21
+ // @desc Item background color
11
22
  --_item-bg: var(--ui-pagination-item-bg, transparent);
23
+ // @desc Item bg hover
12
24
  --_item-bg-hover: var(--ui-pagination-item-bg-hover, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
25
+ // @desc Item bg active
13
26
  --_item-bg-active: var(--ui-pagination-item-bg-active, var(--ui-color-primary));
27
+ // @desc Item text color
14
28
  --_item-color: var(--ui-pagination-item-color, var(--ui-color-text, #{t.$color-text}));
29
+ // @desc Item color active
15
30
  --_item-color-active: var(--ui-pagination-item-color-active, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
16
31
  }
17
32
  }
@@ -47,7 +62,7 @@
47
62
  min-inline-size: var(--_item-size);
48
63
  padding-inline: calc(#{t.$unit} * 1);
49
64
 
50
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
65
+ font-size: var(--_font-size-sm);
51
66
  text-decoration: none;
52
67
  color: var(--_item-color);
53
68
 
@@ -55,8 +70,8 @@
55
70
  border-radius: var(--_item-radius);
56
71
 
57
72
  transition:
58
- background var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease),
59
- color var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
73
+ background var(--_duration-fast) var(--_ease-default),
74
+ color var(--_duration-fast) var(--_ease-default);
60
75
 
61
76
  &:hover {
62
77
  background: var(--_item-bg-hover);
@@ -75,7 +90,7 @@
75
90
  // Disabled state
76
91
  .pagination__link[aria-disabled="true"],
77
92
  .pagination__link--disabled {
78
- opacity: var(--ui-opacity-disabled, 0.5);
93
+ opacity: var(--_opacity-disabled);
79
94
  pointer-events: none;
80
95
  }
81
96
 
@@ -98,10 +113,11 @@
98
113
  block-size: var(--_item-size);
99
114
  min-inline-size: var(--_item-size);
100
115
 
101
- color: var(--ui-color-text-muted, #{t.$color-text-muted});
116
+ color: var(--_color-text-muted);
102
117
  }
103
118
 
104
119
  // Size variants
120
+ // @modifier size
105
121
  .pagination--sm {
106
122
  --_item-size: calc(#{t.$unit} * 3);
107
123
  --_gap: calc(#{t.$unit} * 0.25);
@@ -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": "pagination",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -7,11 +8,8 @@
7
8
  }
8
9
  },
9
10
  "elements": {
10
- "prev": {},
11
- "next": {},
12
11
  "list": {},
13
12
  "item": {},
14
- "ellipsis": {},
15
13
  "link": {
16
14
  "modifiers": {
17
15
  "active": {
@@ -21,40 +19,51 @@
21
19
  "type": "boolean"
22
20
  }
23
21
  }
24
- }
22
+ },
23
+ "prev": {},
24
+ "next": {},
25
+ "ellipsis": {}
25
26
  },
26
27
  "cssVars": [
27
28
  {
28
29
  "name": "--ui-pagination-gap",
29
- "default": "calc(var(--ui-unit) * 0.5"
30
+ "default": "calc(var(--ui-unit) * 0.5)",
31
+ "description": "Gap between children"
30
32
  },
31
33
  {
32
34
  "name": "--ui-pagination-item-size",
33
- "default": "calc(var(--ui-unit) * 4"
35
+ "default": "calc(var(--ui-unit) * 4)",
36
+ "description": "Item overall size"
34
37
  },
35
38
  {
36
39
  "name": "--ui-pagination-item-radius",
37
- "default": "var(--ui-radius-sm)"
40
+ "default": "var(--ui-radius-sm)",
41
+ "description": "Item corner radius"
38
42
  },
39
43
  {
40
44
  "name": "--ui-pagination-item-bg",
41
- "default": "transparent"
45
+ "default": "transparent",
46
+ "description": "Item background color"
42
47
  },
43
48
  {
44
49
  "name": "--ui-pagination-item-bg-hover",
45
- "default": "var(--ui-color-bg-subtle)"
50
+ "default": "var(--ui-color-bg-subtle)",
51
+ "description": "Item bg hover"
46
52
  },
47
53
  {
48
54
  "name": "--ui-pagination-item-bg-active",
49
- "default": "var(--ui-color-primary)"
55
+ "default": "var(--ui-color-primary)",
56
+ "description": "Item bg active"
50
57
  },
51
58
  {
52
59
  "name": "--ui-pagination-item-color",
53
- "default": "var(--ui-color-text)"
60
+ "default": "var(--ui-color-text)",
61
+ "description": "Item text color"
54
62
  },
55
63
  {
56
64
  "name": "--ui-pagination-item-color-active",
57
- "default": "var(--ui-color-text-inverse)"
65
+ "default": "var(--ui-color-text-inverse)",
66
+ "description": "Item color active"
58
67
  }
59
68
  ]
60
69
  }