aeico-components 0.1.6 → 0.1.7

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 (161) hide show
  1. package/README.md +0 -0
  2. package/dist/chunks/action-button.cjs +2 -2
  3. package/dist/chunks/action-button.js +2 -2
  4. package/dist/chunks/alert.cjs +22 -28
  5. package/dist/chunks/alert.cjs.map +1 -1
  6. package/dist/chunks/alert.js +22 -28
  7. package/dist/chunks/alert.js.map +1 -1
  8. package/dist/chunks/badge.cjs +1 -1
  9. package/dist/chunks/badge.js +1 -1
  10. package/dist/chunks/breadcrumb-item.cjs +7 -7
  11. package/dist/chunks/breadcrumb-item.js +7 -7
  12. package/dist/chunks/button.cjs +39 -50
  13. package/dist/chunks/button.cjs.map +1 -1
  14. package/dist/chunks/button.js +39 -50
  15. package/dist/chunks/button.js.map +1 -1
  16. package/dist/chunks/card.cjs +1 -1
  17. package/dist/chunks/card.js +1 -1
  18. package/dist/chunks/checkbox.cjs +1 -1
  19. package/dist/chunks/checkbox.js +1 -1
  20. package/dist/chunks/color.cjs +1 -1
  21. package/dist/chunks/color.js +1 -1
  22. package/dist/chunks/copy-button.cjs +7 -4
  23. package/dist/chunks/copy-button.cjs.map +1 -1
  24. package/dist/chunks/copy-button.js +7 -4
  25. package/dist/chunks/copy-button.js.map +1 -1
  26. package/dist/chunks/detail-group.cjs +65 -0
  27. package/dist/chunks/detail-group.cjs.map +1 -0
  28. package/dist/chunks/detail-group.js +66 -0
  29. package/dist/chunks/detail-group.js.map +1 -0
  30. package/dist/chunks/detail.cjs +1 -1
  31. package/dist/chunks/detail.js +1 -1
  32. package/dist/chunks/dialog.cjs +1 -1
  33. package/dist/chunks/dialog.js +1 -1
  34. package/dist/chunks/divider.cjs +1 -1
  35. package/dist/chunks/divider.js +1 -1
  36. package/dist/chunks/drawer.cjs +1 -1
  37. package/dist/chunks/drawer.js +1 -1
  38. package/dist/chunks/dropdown-button.cjs +8 -9
  39. package/dist/chunks/dropdown-button.cjs.map +1 -1
  40. package/dist/chunks/dropdown-button.js +11 -12
  41. package/dist/chunks/dropdown-button.js.map +1 -1
  42. package/dist/chunks/icon.cjs +27 -11
  43. package/dist/chunks/icon.cjs.map +1 -1
  44. package/dist/chunks/icon.js +27 -11
  45. package/dist/chunks/icon.js.map +1 -1
  46. package/dist/chunks/menu.cjs +1 -1
  47. package/dist/chunks/menu.js +1 -1
  48. package/dist/chunks/navbar.cjs +1 -1
  49. package/dist/chunks/navbar.js +1 -1
  50. package/dist/chunks/number-input.cjs +110 -0
  51. package/dist/chunks/number-input.cjs.map +1 -0
  52. package/dist/chunks/number-input.js +111 -0
  53. package/dist/chunks/number-input.js.map +1 -0
  54. package/dist/chunks/pagination.cjs +31 -31
  55. package/dist/chunks/pagination.js +31 -31
  56. package/dist/chunks/progress-bar.cjs +1 -1
  57. package/dist/chunks/progress-bar.js +1 -1
  58. package/dist/chunks/radio.cjs +1 -1
  59. package/dist/chunks/radio.js +1 -1
  60. package/dist/chunks/select.cjs +1 -1
  61. package/dist/chunks/select.js +1 -1
  62. package/dist/chunks/size.cjs +1 -1
  63. package/dist/chunks/size.js +1 -1
  64. package/dist/chunks/slider.cjs +26 -29
  65. package/dist/chunks/slider.cjs.map +1 -1
  66. package/dist/chunks/slider.js +26 -29
  67. package/dist/chunks/slider.js.map +1 -1
  68. package/dist/chunks/spinner.cjs +1 -1
  69. package/dist/chunks/spinner.js +1 -1
  70. package/dist/chunks/switch.cjs +1 -1
  71. package/dist/chunks/switch.js +1 -1
  72. package/dist/chunks/tab-panel.cjs +12 -3
  73. package/dist/chunks/tab-panel.cjs.map +1 -1
  74. package/dist/chunks/tab-panel.js +12 -3
  75. package/dist/chunks/tab-panel.js.map +1 -1
  76. package/dist/chunks/tag.cjs +1 -1
  77. package/dist/chunks/tag.js +1 -1
  78. package/dist/chunks/text-input.cjs +1 -1
  79. package/dist/chunks/text-input.js +1 -1
  80. package/dist/chunks/textarea.cjs +1 -1
  81. package/dist/chunks/textarea.js +1 -1
  82. package/dist/chunks/tooltip.cjs +4 -5
  83. package/dist/chunks/tooltip.cjs.map +1 -1
  84. package/dist/chunks/tooltip.js +4 -5
  85. package/dist/chunks/tooltip.js.map +1 -1
  86. package/dist/chunks/tree.cjs +1 -1
  87. package/dist/chunks/tree.js +1 -1
  88. package/dist/chunks/variables.cjs +271 -247
  89. package/dist/chunks/variables.cjs.map +1 -1
  90. package/dist/chunks/variables.js +271 -247
  91. package/dist/chunks/variables.js.map +1 -1
  92. package/dist/detail-group.cjs +6 -0
  93. package/dist/detail-group.cjs.map +1 -0
  94. package/dist/detail-group.js +6 -0
  95. package/dist/detail-group.js.map +1 -0
  96. package/dist/dropdown.js +4 -4
  97. package/dist/index.cjs +4 -166
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.js +10 -172
  100. package/dist/index.js.map +1 -1
  101. package/dist/number-input.cjs +6 -0
  102. package/dist/number-input.cjs.map +1 -0
  103. package/dist/number-input.js +6 -0
  104. package/dist/number-input.js.map +1 -0
  105. package/dist/select.cjs +1 -1
  106. package/dist/select.js +1 -1
  107. package/dist/types/card/defines.d.ts +1 -1
  108. package/dist/types/detail/defines.d.ts +1 -1
  109. package/dist/types/icon/defines.d.ts +5 -1
  110. package/dist/types/icon/index.d.ts +1 -1
  111. package/dist/types/tabs/defines.d.ts +1 -0
  112. package/dist/types/tabs/tabs.d.ts +3 -0
  113. package/package.json +1 -1
  114. package/src/card/defines.ts +1 -1
  115. package/src/copy-button/copy-button.ts +9 -5
  116. package/src/detail/defines.ts +1 -1
  117. package/src/icon/defines.ts +6 -1
  118. package/src/icon/icon.ts +28 -10
  119. package/src/icon/index.ts +1 -1
  120. package/src/icon/registry.ts +2 -2
  121. package/src/styles/color.css +91 -91
  122. package/src/styles/components/action-button.css +12 -12
  123. package/src/styles/components/alert.css +22 -28
  124. package/src/styles/components/badge.css +13 -20
  125. package/src/styles/components/breadcrumb-item.css +7 -7
  126. package/src/styles/components/button.css +39 -50
  127. package/src/styles/components/card.css +45 -30
  128. package/src/styles/components/checkbox.css +6 -11
  129. package/src/styles/components/copy-button.css +22 -33
  130. package/src/styles/components/detail.css +51 -39
  131. package/src/styles/components/dialog.css +11 -11
  132. package/src/styles/components/divider.css +3 -3
  133. package/src/styles/components/drawer.css +14 -23
  134. package/src/styles/components/dropdown-item.css +7 -8
  135. package/src/styles/components/dropdown.css +3 -4
  136. package/src/styles/components/field-label.css +12 -12
  137. package/src/styles/components/icon-button.css +25 -36
  138. package/src/styles/components/icon.css +1 -1
  139. package/src/styles/components/menu-item.css +7 -8
  140. package/src/styles/components/navbar.css +16 -16
  141. package/src/styles/components/number-input.css +27 -36
  142. package/src/styles/components/pagination.css +31 -31
  143. package/src/styles/components/progress-bar.css +2 -3
  144. package/src/styles/components/radio-group.css +69 -83
  145. package/src/styles/components/select-option.css +5 -5
  146. package/src/styles/components/select.css +21 -33
  147. package/src/styles/components/slider.css +26 -29
  148. package/src/styles/components/spinner.css +7 -9
  149. package/src/styles/components/switch.css +5 -17
  150. package/src/styles/components/tab.css +4 -5
  151. package/src/styles/components/tabs.css +48 -1
  152. package/src/styles/components/tag.css +14 -21
  153. package/src/styles/components/text-input.css +13 -22
  154. package/src/styles/components/textarea.css +12 -21
  155. package/src/styles/components/tooltip.css +4 -5
  156. package/src/styles/components/tree-item.css +12 -12
  157. package/src/styles/radius.css +10 -0
  158. package/src/styles/size.css +7 -7
  159. package/src/styles/variables.css +271 -247
  160. package/src/tabs/defines.ts +1 -0
  161. package/src/tabs/tabs.ts +12 -0
@@ -49,11 +49,15 @@ class CopyButton extends AeicoComponent {
49
49
 
50
50
  private _getTextToCopy(): string {
51
51
  if (this.text != null) return this.text;
52
+
52
53
  const nodes = this._slotElement?.assignedNodes({ flatten: true }) ?? [];
54
+
53
55
  return nodes
54
- .filter((n) => n.nodeType === Node.TEXT_NODE)
55
- .map((n) => n.textContent ?? '')
56
- .join('')
56
+ .reduce<string>((text, n) => {
57
+ if (n.nodeType === Node.TEXT_NODE) return text + (n.textContent ?? '');
58
+
59
+ return text;
60
+ }, '')
57
61
  .trim();
58
62
  }
59
63
 
@@ -120,10 +124,10 @@ class CopyButton extends AeicoComponent {
120
124
  },
121
125
  () => {
122
126
  span({ className: 'icon-copy' }, () => {
123
- aeIcon({ name: 'copy' });
127
+ aeIcon({ name: 'copy', size: this.size });
124
128
  });
125
129
  span({ className: 'icon-check' }, () => {
126
- aeIcon({ name: 'check' });
130
+ aeIcon({ name: 'check', size: this.size });
127
131
  });
128
132
  this._slotElement = slot();
129
133
  },
@@ -1,4 +1,4 @@
1
- export type DetailVariant = 'subtle' | 'faint' | 'filled' | 'outlined';
1
+ export type DetailVariant = 'subtle' | 'faint' | 'filled' | 'outlined' | 'text';
2
2
  export type DetailIconPlacement = 'start' | 'end';
3
3
  export type DetailColor =
4
4
  | 'default'
@@ -9,8 +9,13 @@ export type IconColor =
9
9
  | 'warning'
10
10
  | 'info';
11
11
 
12
+ export interface IconPathDef {
13
+ d: string;
14
+ fill?: string;
15
+ }
16
+
12
17
  export interface IconDefinition {
13
- path: string;
18
+ paths: string | IconPathDef[];
14
19
  viewBox?: string;
15
20
  stroke?: boolean;
16
21
  strokeWidth?: number;
package/src/icon/icon.ts CHANGED
@@ -41,22 +41,32 @@ class Icon extends AeicoComponent {
41
41
  this.style.removeProperty('font-size');
42
42
  }
43
43
 
44
- // Resolve stroke: component prop takes priority over registry definition
45
- const useStroke = this.stroke ?? def?.stroke ?? false;
46
- const useStrokeWidth = this.strokeWidth ?? def?.strokeWidth ?? 2;
44
+ if (!def) return;
45
+
46
+ const { paths } = def;
47
+ const isMultiPath = Array.isArray(paths);
48
+
49
+ // Stroke CSS variables only apply in single-path mode (component props)
50
+ if (!isMultiPath) {
51
+ const useStroke =
52
+ this.stroke ?? (this.strokeWidth !== undefined ? true : (def.stroke ?? false));
53
+ const useStrokeWidth = this.strokeWidth ?? def.strokeWidth ?? 2;
47
54
 
48
- if (useStroke) {
49
- this.style.setProperty('--icon-fill', 'none');
50
- this.style.setProperty('--icon-stroke', 'currentColor');
51
- this.style.setProperty('--icon-stroke-width', String(useStrokeWidth));
55
+ if (useStroke) {
56
+ this.style.setProperty('--icon-fill', 'none');
57
+ this.style.setProperty('--icon-stroke', 'currentColor');
58
+ this.style.setProperty('--icon-stroke-width', String(useStrokeWidth));
59
+ } else {
60
+ this.style.removeProperty('--icon-fill');
61
+ this.style.removeProperty('--icon-stroke');
62
+ this.style.removeProperty('--icon-stroke-width');
63
+ }
52
64
  } else {
53
65
  this.style.removeProperty('--icon-fill');
54
66
  this.style.removeProperty('--icon-stroke');
55
67
  this.style.removeProperty('--icon-stroke-width');
56
68
  }
57
69
 
58
- if (!def) return;
59
-
60
70
  return html(({ svg, path }) => {
61
71
  svg(
62
72
  {
@@ -66,7 +76,15 @@ class Icon extends AeicoComponent {
66
76
  xmlns: SVG_NS,
67
77
  },
68
78
  () => {
69
- path({ d: def.path });
79
+ if (typeof paths === 'string') {
80
+ path({ d: paths });
81
+ } else {
82
+ for (const p of paths) {
83
+ const attrs: Record<string, unknown> = { d: p.d };
84
+ if (p.fill) attrs.style = { fill: p.fill };
85
+ path(attrs);
86
+ }
87
+ }
70
88
  },
71
89
  );
72
90
  });
package/src/icon/index.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default as Icon } from './icon';
2
2
  export type { IconProps } from './icon';
3
3
  export { default as IconRegistry } from './registry';
4
- export type { IconSize, IconColor, IconDefinition, IconRegistryData } from './defines';
4
+ export type { IconSize, IconColor, IconDefinition, IconPathDef, IconRegistryData } from './defines';
@@ -9,7 +9,7 @@ class IconRegistry {
9
9
  static add(icons: IconRegistryData) {
10
10
  for (const [name, data] of Object.entries(icons)) {
11
11
  if (typeof data === 'string') {
12
- this._icons.set(name, { path: data, viewBox: defaultViewBox });
12
+ this._icons.set(name, { paths: data, viewBox: defaultViewBox });
13
13
  } else {
14
14
  this._icons.set(name, data);
15
15
  }
@@ -27,7 +27,7 @@ class IconRegistry {
27
27
  // Skip if the user has already registered this icon
28
28
  if (this._icons.has(name) && !this._builtInKeys.has(name)) continue;
29
29
  if (typeof data === 'string') {
30
- this._icons.set(name, { path: data, viewBox: defaultViewBox });
30
+ this._icons.set(name, { paths: data, viewBox: defaultViewBox });
31
31
  } else {
32
32
  this._icons.set(name, data);
33
33
  }
@@ -1,117 +1,117 @@
1
1
  :host {
2
- --color-solid: var(--color-gray);
3
- --color-solid-hover: color-mix(in srgb, var(--color-solid), var(--color-mix-hover));
4
- --color-solid-active: color-mix(in srgb, var(--color-solid), var(--color-mix-active));
5
- --color-on-solid: var(--color-text-main);
6
- --color-border: var(--color-gray);
7
- --color-border-hover: color-mix(in srgb, var(--color-border), var(--color-mix-hover));
8
- --color-accent: var(--color-text-muted);
9
- --color-accent-hover: var(--color-text-main);
10
- --color-subtle: var(--border-subtle);
11
- --color-subtle-hover: var(--border-default);
12
- --color-bg-subtle: var(--border-subtle);
13
- --color-text-subtle: var(--color-text-muted);
14
- --color-border-subtle: var(--border-default);
2
+ --ae-color-solid: var(--ae-color-gray);
3
+ --ae-color-solid-hover: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-hover));
4
+ --ae-color-solid-active: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-active));
5
+ --ae-color-on-solid: var(--ae-color-text-main);
6
+ --ae-color-border: var(--ae-color-gray);
7
+ --ae-color-border-hover: color-mix(in srgb, var(--ae-color-border), var(--ae-color-mix-hover));
8
+ --ae-color-accent: var(--ae-color-text-muted);
9
+ --ae-color-accent-hover: var(--ae-color-text-main);
10
+ --ae-color-subtle: var(--ae-border-subtle);
11
+ --ae-color-subtle-hover: var(--ae-border-default);
12
+ --ae-color-bg-subtle: var(--ae-border-subtle);
13
+ --ae-color-text-subtle: var(--ae-color-text-muted);
14
+ --ae-color-border-subtle: var(--ae-border-default);
15
15
  }
16
16
 
17
17
  :host([color="primary"]) {
18
- --color-solid: var(--color-primary);
19
- --color-on-solid: white;
20
- --color-border: var(--color-primary);
21
- --color-accent: var(--color-text-link);
22
- --color-accent-hover: var(--color-text-link-hover);
23
- --color-subtle: var(--color-primary-bg-subtle);
24
- --color-subtle-hover: rgb(from var(--blue) r g b / 0.15);
25
- --color-bg-subtle: var(--color-primary-bg-subtle);
26
- --color-text-subtle: var(--color-primary-text-emphasis);
27
- --color-border-subtle: var(--color-primary-border-subtle);
18
+ --ae-color-solid: var(--ae-color-primary);
19
+ --ae-color-on-solid: white;
20
+ --ae-color-border: var(--ae-color-primary);
21
+ --ae-color-accent: var(--ae-color-text-link);
22
+ --ae-color-accent-hover: var(--ae-color-text-link-hover);
23
+ --ae-color-subtle: var(--ae-color-primary-bg-subtle);
24
+ --ae-color-subtle-hover: rgb(from var(--ae-blue) r g b / 0.15);
25
+ --ae-color-bg-subtle: var(--ae-color-primary-bg-subtle);
26
+ --ae-color-text-subtle: var(--ae-color-primary-text-emphasis);
27
+ --ae-color-border-subtle: var(--ae-color-primary-border-subtle);
28
28
  }
29
29
 
30
30
  :host([color="secondary"]) {
31
- --color-solid: var(--color-secondary);
32
- --color-on-solid: white;
33
- --color-border: var(--color-secondary-hover);
34
- --color-accent: var(--color-secondary-text-emphasis);
35
- --color-accent-hover: var(--color-text-main);
36
- --color-subtle: rgb(from var(--slate) r g b / 0.06);
37
- --color-subtle-hover: rgb(from var(--slate) r g b / 0.12);
38
- --color-bg-subtle: var(--color-secondary-bg-subtle);
39
- --color-text-subtle: var(--color-secondary-text-emphasis);
40
- --color-border-subtle: var(--color-secondary-border-subtle);
31
+ --ae-color-solid: var(--ae-color-secondary);
32
+ --ae-color-on-solid: white;
33
+ --ae-color-border: var(--ae-color-secondary-hover);
34
+ --ae-color-accent: var(--ae-color-secondary-text-emphasis);
35
+ --ae-color-accent-hover: var(--ae-color-text-main);
36
+ --ae-color-subtle: rgb(from var(--ae-slate) r g b / 0.06);
37
+ --ae-color-subtle-hover: rgb(from var(--ae-slate) r g b / 0.12);
38
+ --ae-color-bg-subtle: var(--ae-color-secondary-bg-subtle);
39
+ --ae-color-text-subtle: var(--ae-color-secondary-text-emphasis);
40
+ --ae-color-border-subtle: var(--ae-color-secondary-border-subtle);
41
41
  }
42
42
 
43
43
  :host([color="success"]) {
44
- --color-solid: var(--color-success);
45
- --color-on-solid: white;
46
- --color-border: var(--color-success);
47
- --color-accent: var(--color-success-text-emphasis);
48
- --color-accent-hover: var(--color-success-hover);
49
- --color-subtle: var(--color-success-bg-subtle);
50
- --color-subtle-hover: rgb(from var(--green) r g b / 0.15);
51
- --color-bg-subtle: var(--color-success-bg-subtle);
52
- --color-text-subtle: var(--color-success-text-emphasis);
53
- --color-border-subtle: var(--color-success-border-subtle);
44
+ --ae-color-solid: var(--ae-color-success);
45
+ --ae-color-on-solid: white;
46
+ --ae-color-border: var(--ae-color-success);
47
+ --ae-color-accent: var(--ae-color-success-text-emphasis);
48
+ --ae-color-accent-hover: var(--ae-color-success-hover);
49
+ --ae-color-subtle: var(--ae-color-success-bg-subtle);
50
+ --ae-color-subtle-hover: rgb(from var(--ae-green) r g b / 0.15);
51
+ --ae-color-bg-subtle: var(--ae-color-success-bg-subtle);
52
+ --ae-color-text-subtle: var(--ae-color-success-text-emphasis);
53
+ --ae-color-border-subtle: var(--ae-color-success-border-subtle);
54
54
  }
55
55
 
56
56
  :host([color="danger"]) {
57
- --color-solid: var(--color-danger);
58
- --color-on-solid: white;
59
- --color-border: var(--color-danger);
60
- --color-accent: var(--color-danger-text-emphasis);
61
- --color-accent-hover: var(--color-danger-hover);
62
- --color-subtle: var(--color-danger-bg-subtle);
63
- --color-subtle-hover: rgb(from var(--red) r g b / 0.15);
64
- --color-bg-subtle: var(--color-danger-bg-subtle);
65
- --color-text-subtle: var(--color-danger-text-emphasis);
66
- --color-border-subtle: var(--color-danger-border-subtle);
57
+ --ae-color-solid: var(--ae-color-danger);
58
+ --ae-color-on-solid: white;
59
+ --ae-color-border: var(--ae-color-danger);
60
+ --ae-color-accent: var(--ae-color-danger-text-emphasis);
61
+ --ae-color-accent-hover: var(--ae-color-danger-hover);
62
+ --ae-color-subtle: var(--ae-color-danger-bg-subtle);
63
+ --ae-color-subtle-hover: rgb(from var(--ae-red) r g b / 0.15);
64
+ --ae-color-bg-subtle: var(--ae-color-danger-bg-subtle);
65
+ --ae-color-text-subtle: var(--ae-color-danger-text-emphasis);
66
+ --ae-color-border-subtle: var(--ae-color-danger-border-subtle);
67
67
  }
68
68
 
69
69
  :host([color="warning"]) {
70
- --color-solid: var(--color-warning);
71
- --color-on-solid: var(--gray-900);
72
- --color-border: var(--color-warning);
73
- --color-accent: var(--color-warning-text-emphasis);
74
- --color-accent-hover: var(--color-warning-hover);
75
- --color-subtle: var(--color-warning-bg-subtle);
76
- --color-subtle-hover: rgb(from var(--yellow) r g b / 0.15);
77
- --color-bg-subtle: var(--color-warning-bg-subtle);
78
- --color-text-subtle: var(--color-warning-text-emphasis);
79
- --color-border-subtle: var(--color-warning-border-subtle);
70
+ --ae-color-solid: var(--ae-color-warning);
71
+ --ae-color-on-solid: var(--ae-gray-900);
72
+ --ae-color-border: var(--ae-color-warning);
73
+ --ae-color-accent: var(--ae-color-warning-text-emphasis);
74
+ --ae-color-accent-hover: var(--ae-color-warning-hover);
75
+ --ae-color-subtle: var(--ae-color-warning-bg-subtle);
76
+ --ae-color-subtle-hover: rgb(from var(--ae-yellow) r g b / 0.15);
77
+ --ae-color-bg-subtle: var(--ae-color-warning-bg-subtle);
78
+ --ae-color-text-subtle: var(--ae-color-warning-text-emphasis);
79
+ --ae-color-border-subtle: var(--ae-color-warning-border-subtle);
80
80
  }
81
81
 
82
82
  :host([color="info"]) {
83
- --color-solid: var(--color-info);
84
- --color-on-solid: white;
85
- --color-border: var(--color-info);
86
- --color-accent: var(--color-info-text-emphasis);
87
- --color-accent-hover: var(--color-info-hover);
88
- --color-subtle: var(--color-info-bg-subtle);
89
- --color-subtle-hover: rgb(from var(--cyan) r g b / 0.15);
90
- --color-bg-subtle: var(--color-info-bg-subtle);
91
- --color-text-subtle: var(--color-info-text-emphasis);
92
- --color-border-subtle: var(--color-info-border-subtle);
83
+ --ae-color-solid: var(--ae-color-info);
84
+ --ae-color-on-solid: white;
85
+ --ae-color-border: var(--ae-color-info);
86
+ --ae-color-accent: var(--ae-color-info-text-emphasis);
87
+ --ae-color-accent-hover: var(--ae-color-info-hover);
88
+ --ae-color-subtle: var(--ae-color-info-bg-subtle);
89
+ --ae-color-subtle-hover: rgb(from var(--ae-cyan) r g b / 0.15);
90
+ --ae-color-bg-subtle: var(--ae-color-info-bg-subtle);
91
+ --ae-color-text-subtle: var(--ae-color-info-text-emphasis);
92
+ --ae-color-border-subtle: var(--ae-color-info-border-subtle);
93
93
  }
94
94
 
95
95
  :host([color="light"]) {
96
- --color-solid: var(--light);
97
- --color-on-solid: var(--gray-900);
98
- --color-border: var(--border-hover);
99
- --color-subtle: var(--color-light-bg-subtle);
100
- --color-subtle-hover: var(--color-light-border-subtle);
101
- --color-bg-subtle: var(--color-light-bg-subtle);
102
- --color-text-subtle: var(--color-text-muted);
103
- --color-border-subtle: var(--color-light-border-subtle);
96
+ --ae-color-solid: var(--ae-light);
97
+ --ae-color-on-solid: var(--ae-gray-900);
98
+ --ae-color-border: var(--ae-border-hover);
99
+ --ae-color-subtle: var(--ae-color-light-bg-subtle);
100
+ --ae-color-subtle-hover: var(--ae-color-light-border-subtle);
101
+ --ae-color-bg-subtle: var(--ae-color-light-bg-subtle);
102
+ --ae-color-text-subtle: var(--ae-color-text-muted);
103
+ --ae-color-border-subtle: var(--ae-color-light-border-subtle);
104
104
  }
105
105
 
106
106
  :host([color="dark"]) {
107
- --color-solid: var(--dark-500);
108
- --color-on-solid: white;
109
- --color-border: var(--dark-500);
110
- --color-accent: var(--color-text-main);
111
- --color-accent-hover: var(--color-text-main);
112
- --color-subtle: var(--color-dark-bg-subtle);
113
- --color-subtle-hover: var(--color-dark-border-subtle);
114
- --color-bg-subtle: var(--color-dark-bg-subtle);
115
- --color-text-subtle: var(--color-text-main);
116
- --color-border-subtle: var(--color-dark-border-subtle);
107
+ --ae-color-solid: var(--ae-dark-500);
108
+ --ae-color-on-solid: white;
109
+ --ae-color-border: var(--ae-dark-500);
110
+ --ae-color-accent: var(--ae-color-text-main);
111
+ --ae-color-accent-hover: var(--ae-color-text-main);
112
+ --ae-color-subtle: var(--ae-color-dark-bg-subtle);
113
+ --ae-color-subtle-hover: var(--ae-color-dark-border-subtle);
114
+ --ae-color-bg-subtle: var(--ae-color-dark-bg-subtle);
115
+ --ae-color-text-subtle: var(--ae-color-text-main);
116
+ --ae-color-border-subtle: var(--ae-color-dark-border-subtle);
117
117
  }
@@ -13,25 +13,25 @@
13
13
  }
14
14
 
15
15
  .clear-btn:not(.action-btn) {
16
- border-radius: var(--clear-btn-border-radius);
17
- background: var(--clear-btn-bg);
18
- color: var(--clear-btn-color);
19
- transition: var(--clear-btn-transition);
16
+ border-radius: var(--ae-clear-btn-border-radius);
17
+ background: var(--ae-clear-btn-bg);
18
+ color: var(--ae-clear-btn-color);
19
+ transition: var(--ae-clear-btn-transition);
20
20
  }
21
21
 
22
22
  .reset-btn:not(.action-btn) {
23
- border-radius: var(--reset-btn-border-radius);
24
- background: var(--reset-btn-bg);
25
- color: var(--reset-btn-color);
26
- transition: var(--reset-btn-transition);
23
+ border-radius: var(--ae-reset-btn-border-radius);
24
+ background: var(--ae-reset-btn-bg);
25
+ color: var(--ae-reset-btn-color);
26
+ transition: var(--ae-reset-btn-transition);
27
27
  }
28
28
 
29
29
  .clear-btn:not(.action-btn):hover {
30
- background: var(--clear-btn-bg-hover);
31
- color: var(--clear-btn-color-hover);
30
+ background: var(--ae-clear-btn-bg-hover);
31
+ color: var(--ae-clear-btn-color-hover);
32
32
  }
33
33
 
34
34
  .reset-btn:not(.action-btn):hover {
35
- background: var(--reset-btn-bg-hover);
36
- color: var(--reset-btn-color-hover);
35
+ background: var(--ae-reset-btn-bg-hover);
36
+ color: var(--ae-reset-btn-color-hover);
37
37
  }
@@ -2,57 +2,51 @@
2
2
  position: relative;
3
3
  padding: 12px 16px;
4
4
  margin-bottom: 12px;
5
- border-radius: 4px;
5
+ border-radius: var(--ae-border-radius, var(--ae-radius-sm));
6
6
  font-size: 12px;
7
7
  line-height: 1.6;
8
- background-color: var(--alert-solid-bg);
9
- color: var(--alert-solid-color);
10
- border: 1px solid var(--alert-solid-bg);
8
+ background-color: var(--ae-color-solid);
9
+ color: var(--ae-color-on-solid);
10
+ border: 1px solid var(--ae-color-solid);
11
11
  }
12
12
 
13
13
  .alert:last-child {
14
14
  margin-bottom: 0;
15
15
  }
16
16
 
17
- :host {
18
- --color-solid: var(--color-primary);
19
- --color-on-solid: var(--color-text-main);
20
- --color-border: var(--color-primary);
21
- --color-bg-subtle: var(--color-primary-bg-subtle);
22
- --color-text-subtle: var(--color-primary-text-emphasis);
23
- --color-border-subtle: var(--color-primary-border-subtle);
24
-
25
- --alert-solid-bg: var(--color-solid);
26
- --alert-solid-color: var(--color-on-solid);
27
- --alert-border: var(--color-border);
28
- --alert-subtle-bg: var(--color-bg-subtle);
29
- --alert-subtle-color: var(--color-text-subtle);
30
- --alert-subtle-border:var(--color-border-subtle);
17
+ /* default color (no [color] attribute) — primary */
18
+ :host(:not([color])) {
19
+ --ae-color-solid: var(--ae-color-primary);
20
+ --ae-color-on-solid: var(--ae-color-text-main);
21
+ --ae-color-border: var(--ae-color-primary);
22
+ --ae-color-bg-subtle: var(--ae-color-primary-bg-subtle);
23
+ --ae-color-text-subtle: var(--ae-color-primary-text-emphasis);
24
+ --ae-color-border-subtle: var(--ae-color-primary-border-subtle);
31
25
  }
32
26
 
33
27
 
34
28
  :host([variant="faint"]) .alert {
35
- background-color: var(--alert-subtle-bg);
36
- color: var(--alert-subtle-color);
37
- border-color: var(--alert-subtle-border);
29
+ background-color: var(--ae-color-bg-subtle);
30
+ color: var(--ae-color-text-subtle);
31
+ border-color: var(--ae-color-border-subtle);
38
32
  }
39
33
 
40
34
  :host([variant="subtle"]) .alert {
41
- background-color: var(--alert-subtle-bg);
42
- color: var(--alert-subtle-color);
35
+ background-color: var(--ae-color-bg-subtle);
36
+ color: var(--ae-color-text-subtle);
43
37
  border-color: transparent;
44
38
  }
45
39
 
46
40
  :host([variant="filled"]) .alert {
47
- background-color: var(--alert-solid-bg);
48
- color: var(--alert-solid-color);
49
- border-color: var(--alert-solid-bg);
41
+ background-color: var(--ae-color-solid);
42
+ color: var(--ae-color-on-solid);
43
+ border-color: var(--ae-color-solid);
50
44
  }
51
45
 
52
46
  :host([variant="outlined"]) .alert {
53
47
  background-color: transparent;
54
- color: var(--alert-subtle-color);
55
- border-color: var(--alert-border);
48
+ color: var(--ae-color-text-subtle);
49
+ border-color: var(--ae-color-border);
56
50
  }
57
51
 
58
52
  :host([dismissible]) .alert {
@@ -1,13 +1,6 @@
1
1
  :host {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
- --badge-solid-bg: var(--color-solid);
5
- --badge-solid-color: var(--color-on-solid);
6
- --badge-border: var(--color-border);
7
- --badge-accent: var(--color-accent);
8
- --badge-subtle-bg: var(--color-bg-subtle);
9
- --badge-subtle-color: var(--color-text-subtle);
10
- --badge-subtle-border: var(--color-border-subtle);
11
4
  }
12
5
 
13
6
  .badge {
@@ -21,10 +14,10 @@
21
14
  line-height: 1.2;
22
15
  font-size: 1em;
23
16
  padding: 0.15em 0.6em;
24
- border-radius: 4px;
25
- border: 1px solid var(--badge-solid-bg);
26
- background: var(--badge-solid-bg);
27
- color: var(--badge-solid-color);
17
+ border-radius: var(--ae-border-radius, var(--ae-radius-sm));
18
+ border: 1px solid var(--ae-color-solid);
19
+ background: var(--ae-color-solid);
20
+ color: var(--ae-color-on-solid);
28
21
  }
29
22
 
30
23
  /* Default (no [variant]) = filled */
@@ -33,32 +26,32 @@
33
26
 
34
27
  :host([variant="outlined"]) .badge {
35
28
  background: transparent;
36
- border-color: var(--badge-border);
37
- color: var(--badge-accent);
29
+ border-color: var(--ae-color-border);
30
+ color: var(--ae-color-accent);
38
31
  }
39
32
 
40
33
  :host([variant="faint"]) .badge {
41
- background: var(--badge-subtle-bg);
42
- border-color: var(--badge-subtle-border);
43
- color: var(--badge-subtle-color);
34
+ background: var(--ae-color-bg-subtle);
35
+ border-color: var(--ae-color-border-subtle);
36
+ color: var(--ae-color-text-subtle);
44
37
  }
45
38
 
46
39
  :host([variant="subtle"]) .badge {
47
- background: var(--badge-subtle-bg);
40
+ background: var(--ae-color-bg-subtle);
48
41
  border-color: transparent;
49
- color: var(--badge-subtle-color);
42
+ color: var(--ae-color-text-subtle);
50
43
  }
51
44
 
52
45
  :host([variant="text"]) .badge {
53
46
  background: transparent;
54
47
  border-color: transparent;
55
- color: var(--badge-accent);
48
+ color: var(--ae-color-accent);
56
49
  padding-left: 0;
57
50
  padding-right: 0;
58
51
  }
59
52
 
60
53
  :host([pill]) .badge {
61
- border-radius: 999px;
54
+ border-radius: var(--ae-radius-pill);
62
55
  }
63
56
 
64
57
  /* Icon slots */
@@ -13,7 +13,7 @@
13
13
  .sep {
14
14
  display: inline-flex;
15
15
  align-items: center;
16
- color: var(--color-text-muted);
16
+ color: var(--ae-color-text-muted);
17
17
  padding: 0 0.35em;
18
18
  user-select: none;
19
19
  pointer-events: none;
@@ -30,30 +30,30 @@
30
30
  .label {
31
31
  display: inline-flex;
32
32
  align-items: center;
33
- color: var(--color-text-muted);
33
+ color: var(--ae-color-text-muted);
34
34
  }
35
35
 
36
36
  /* Current page — last item */
37
37
  :host([aria-current="page"]) .label {
38
- color: var(--color-text-main);
38
+ color: var(--ae-color-text-main);
39
39
  font-weight: 500;
40
40
  cursor: default;
41
41
  }
42
42
 
43
43
  /* Link items */
44
44
  .label a {
45
- color: var(--color-accent, var(--color-text-link));
45
+ color: var(--ae-color-accent, var(--ae-color-text-link));
46
46
  text-decoration: none;
47
47
  outline: none;
48
48
  }
49
49
 
50
50
  .label a:hover {
51
- color: var(--color-accent-hover, var(--color-text-link-hover));
51
+ color: var(--ae-color-accent-hover, var(--ae-color-text-link-hover));
52
52
  text-decoration: underline;
53
53
  }
54
54
 
55
55
  .label a:focus-visible {
56
- outline: 2px solid var(--color-accent, var(--focus-ring-color));
56
+ outline: 2px solid var(--ae-color-accent, var(--ae-focus-ring-color));
57
57
  outline-offset: 2px;
58
- border-radius: 2px;
58
+ border-radius: var(--ae-radius-xs);
59
59
  }