aeico-components 0.1.8 → 0.1.10

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 (233) hide show
  1. package/README.md +0 -0
  2. package/dist/alert.cjs +20 -29
  3. package/dist/alert.cjs.map +3 -3
  4. package/dist/alert.js +20 -29
  5. package/dist/alert.js.map +3 -3
  6. package/dist/badge.cjs +19 -28
  7. package/dist/badge.cjs.map +3 -3
  8. package/dist/badge.js +19 -28
  9. package/dist/badge.js.map +3 -3
  10. package/dist/breadcrumb.cjs +22 -33
  11. package/dist/breadcrumb.cjs.map +3 -3
  12. package/dist/breadcrumb.js +22 -33
  13. package/dist/breadcrumb.js.map +3 -3
  14. package/dist/button-group.cjs +19 -28
  15. package/dist/button-group.cjs.map +3 -3
  16. package/dist/button-group.js +19 -28
  17. package/dist/button-group.js.map +3 -3
  18. package/dist/button.cjs +19 -29
  19. package/dist/button.cjs.map +3 -3
  20. package/dist/button.js +19 -29
  21. package/dist/button.js.map +3 -3
  22. package/dist/card.cjs +19 -29
  23. package/dist/card.cjs.map +3 -3
  24. package/dist/card.js +19 -29
  25. package/dist/card.js.map +3 -3
  26. package/dist/checkbox.cjs +21 -31
  27. package/dist/checkbox.cjs.map +3 -3
  28. package/dist/checkbox.js +21 -31
  29. package/dist/checkbox.js.map +3 -3
  30. package/dist/copy-button.cjs +25 -33
  31. package/dist/copy-button.cjs.map +2 -2
  32. package/dist/copy-button.js +25 -33
  33. package/dist/copy-button.js.map +3 -3
  34. package/dist/detail-group.cjs +19 -29
  35. package/dist/detail-group.cjs.map +3 -3
  36. package/dist/detail-group.js +19 -29
  37. package/dist/detail-group.js.map +3 -3
  38. package/dist/detail.cjs +19 -29
  39. package/dist/detail.cjs.map +3 -3
  40. package/dist/detail.js +19 -29
  41. package/dist/detail.js.map +3 -3
  42. package/dist/dialog.cjs +24 -32
  43. package/dist/dialog.cjs.map +2 -2
  44. package/dist/dialog.js +24 -32
  45. package/dist/dialog.js.map +3 -3
  46. package/dist/divider.cjs +20 -30
  47. package/dist/divider.cjs.map +3 -3
  48. package/dist/divider.js +20 -30
  49. package/dist/divider.js.map +3 -3
  50. package/dist/drawer.cjs +24 -32
  51. package/dist/drawer.cjs.map +2 -2
  52. package/dist/drawer.js +24 -32
  53. package/dist/drawer.js.map +3 -3
  54. package/dist/dropdown.cjs +31 -43
  55. package/dist/dropdown.cjs.map +3 -3
  56. package/dist/dropdown.js +31 -43
  57. package/dist/dropdown.js.map +3 -3
  58. package/dist/icon-button.cjs +25 -35
  59. package/dist/icon-button.cjs.map +3 -3
  60. package/dist/icon-button.js +25 -35
  61. package/dist/icon-button.js.map +3 -3
  62. package/dist/icon.cjs +20 -26
  63. package/dist/icon.cjs.map +2 -2
  64. package/dist/icon.js +20 -26
  65. package/dist/icon.js.map +2 -2
  66. package/dist/index.cjs +75 -113
  67. package/dist/index.cjs.map +3 -3
  68. package/dist/index.js +75 -113
  69. package/dist/index.js.map +3 -3
  70. package/dist/menu.cjs +20 -31
  71. package/dist/menu.cjs.map +3 -3
  72. package/dist/menu.js +20 -31
  73. package/dist/menu.js.map +3 -3
  74. package/dist/navbar.cjs +19 -29
  75. package/dist/navbar.cjs.map +3 -3
  76. package/dist/navbar.js +19 -29
  77. package/dist/navbar.js.map +3 -3
  78. package/dist/number-input.cjs +21 -31
  79. package/dist/number-input.cjs.map +3 -3
  80. package/dist/number-input.js +21 -31
  81. package/dist/number-input.js.map +3 -3
  82. package/dist/pagination.cjs +24 -33
  83. package/dist/pagination.cjs.map +2 -2
  84. package/dist/pagination.js +24 -33
  85. package/dist/pagination.js.map +3 -3
  86. package/dist/progress-bar.cjs +19 -29
  87. package/dist/progress-bar.cjs.map +3 -3
  88. package/dist/progress-bar.js +19 -29
  89. package/dist/progress-bar.js.map +3 -3
  90. package/dist/radio-group.cjs +24 -35
  91. package/dist/radio-group.cjs.map +3 -3
  92. package/dist/radio-group.js +24 -35
  93. package/dist/radio-group.js.map +3 -3
  94. package/dist/select.cjs +23 -34
  95. package/dist/select.cjs.map +3 -3
  96. package/dist/select.js +23 -34
  97. package/dist/select.js.map +3 -3
  98. package/dist/slider.cjs +21 -32
  99. package/dist/slider.cjs.map +3 -3
  100. package/dist/slider.js +21 -32
  101. package/dist/slider.js.map +3 -3
  102. package/dist/spinner.cjs +19 -29
  103. package/dist/spinner.cjs.map +3 -3
  104. package/dist/spinner.js +19 -29
  105. package/dist/spinner.js.map +3 -3
  106. package/dist/styles/layout.cjs +1 -1
  107. package/dist/styles/layout.js +1 -1
  108. package/dist/styles/radius.cjs +1 -1
  109. package/dist/styles/radius.js +1 -1
  110. package/dist/styles/variables.cjs +1 -1
  111. package/dist/styles/variables.js +1 -1
  112. package/dist/switch.cjs +26 -35
  113. package/dist/switch.cjs.map +3 -3
  114. package/dist/switch.js +26 -35
  115. package/dist/switch.js.map +3 -3
  116. package/dist/tabs.cjs +21 -30
  117. package/dist/tabs.cjs.map +3 -3
  118. package/dist/tabs.js +21 -30
  119. package/dist/tabs.js.map +3 -3
  120. package/dist/tag.cjs +19 -28
  121. package/dist/tag.cjs.map +3 -3
  122. package/dist/tag.js +19 -28
  123. package/dist/tag.js.map +3 -3
  124. package/dist/text-input.cjs +21 -31
  125. package/dist/text-input.cjs.map +3 -3
  126. package/dist/text-input.js +21 -31
  127. package/dist/text-input.js.map +3 -3
  128. package/dist/textarea.cjs +21 -31
  129. package/dist/textarea.cjs.map +3 -3
  130. package/dist/textarea.js +21 -31
  131. package/dist/textarea.js.map +3 -3
  132. package/dist/tooltip.cjs +19 -28
  133. package/dist/tooltip.cjs.map +3 -3
  134. package/dist/tooltip.js +19 -28
  135. package/dist/tooltip.js.map +3 -3
  136. package/dist/tree.cjs +25 -35
  137. package/dist/tree.cjs.map +3 -3
  138. package/dist/tree.js +25 -35
  139. package/dist/tree.js.map +3 -3
  140. package/dist/types/aeico-component.d.ts +1 -1
  141. package/dist/types/aeico-field.d.ts +1 -1
  142. package/dist/types/breadcrumb/breadcrumb-item.d.ts +0 -1
  143. package/dist/types/breadcrumb/breadcrumb.d.ts +2 -3
  144. package/dist/types/button-group/button-group.d.ts +1 -1
  145. package/dist/types/card/card.d.ts +0 -1
  146. package/dist/types/checkbox/checkbox.d.ts +0 -1
  147. package/dist/types/detail/detail.d.ts +0 -1
  148. package/dist/types/detail-group/detail-group.d.ts +1 -2
  149. package/dist/types/divider/divider.d.ts +0 -1
  150. package/dist/types/dropdown/dropdown-button.d.ts +4 -5
  151. package/dist/types/dropdown/dropdown-item.d.ts +3 -4
  152. package/dist/types/dropdown/dropdown.d.ts +4 -5
  153. package/dist/types/icon/icon.d.ts +0 -1
  154. package/dist/types/icon/registry.d.ts +1 -1
  155. package/dist/types/icon-button/icon-button.d.ts +0 -1
  156. package/dist/types/index.d.ts +4 -4
  157. package/dist/types/menu/menu-item.d.ts +3 -4
  158. package/dist/types/menu/menu.d.ts +3 -4
  159. package/dist/types/navbar/navbar.d.ts +5 -6
  160. package/dist/types/number-input/number-input.d.ts +0 -1
  161. package/dist/types/pagination/pagination.d.ts +0 -1
  162. package/dist/types/progress-bar/progress-bar.d.ts +0 -1
  163. package/dist/types/radio-group/radio-group.d.ts +0 -1
  164. package/dist/types/radio-group/radio.d.ts +6 -7
  165. package/dist/types/select/select-option.d.ts +0 -1
  166. package/dist/types/select/select.d.ts +0 -1
  167. package/dist/types/slider/defines.d.ts +5 -5
  168. package/dist/types/slider/slider.d.ts +0 -1
  169. package/dist/types/spinner/spinner.d.ts +1 -2
  170. package/dist/types/switch/switch.d.ts +0 -1
  171. package/dist/types/text-input/text-input.d.ts +0 -1
  172. package/dist/types/textarea/textarea.d.ts +0 -1
  173. package/dist/types/tree/tree-item.d.ts +1 -2
  174. package/dist/types/tree/tree.d.ts +0 -1
  175. package/package.json +5 -3
  176. package/src/aeico-component.ts +6 -5
  177. package/src/aeico-field.ts +2 -2
  178. package/src/alert/alert.ts +2 -2
  179. package/src/badge/badge.ts +2 -2
  180. package/src/breadcrumb/breadcrumb-item.ts +2 -4
  181. package/src/breadcrumb/breadcrumb.ts +4 -6
  182. package/src/button/button.ts +2 -2
  183. package/src/button-group/button-group.ts +3 -3
  184. package/src/card/card.ts +2 -4
  185. package/src/card/defines.ts +1 -1
  186. package/src/card/index.ts +1 -1
  187. package/src/checkbox/checkbox.ts +2 -4
  188. package/src/copy-button/copy-button.ts +1 -1
  189. package/src/detail/detail.ts +2 -4
  190. package/src/detail-group/detail-group.ts +2 -4
  191. package/src/dialog/dialog.ts +2 -2
  192. package/src/divider/divider.ts +2 -4
  193. package/src/drawer/drawer.ts +2 -2
  194. package/src/dropdown/dropdown-button.ts +6 -8
  195. package/src/dropdown/dropdown-item.ts +5 -7
  196. package/src/dropdown/dropdown.ts +7 -9
  197. package/src/icon/icon.ts +2 -4
  198. package/src/icon/registry.ts +1 -1
  199. package/src/icon-button/icon-button.ts +2 -4
  200. package/src/index.ts +4 -4
  201. package/src/menu/menu-item.ts +5 -7
  202. package/src/menu/menu.ts +4 -6
  203. package/src/navbar/navbar.ts +7 -9
  204. package/src/number-input/number-input.ts +1 -3
  205. package/src/pagination/pagination.ts +1 -3
  206. package/src/progress-bar/progress-bar.ts +1 -2
  207. package/src/radio-group/radio-group.ts +5 -7
  208. package/src/radio-group/radio.ts +8 -10
  209. package/src/select/select-option.ts +2 -4
  210. package/src/select/select.ts +4 -6
  211. package/src/slider/defines.ts +5 -5
  212. package/src/slider/slider.ts +5 -8
  213. package/src/spinner/spinner.ts +2 -4
  214. package/src/styles/components/action-button.css +1 -1
  215. package/src/styles/components/alert.css +1 -1
  216. package/src/styles/components/breadcrumb-item.css +2 -2
  217. package/src/styles/components/button.css +0 -1
  218. package/src/styles/components/divider.css +1 -1
  219. package/src/styles/components/dropdown-item.css +2 -2
  220. package/src/styles/components/dropdown.css +1 -1
  221. package/src/styles/layout.css +14 -14
  222. package/src/styles/radius.css +1 -1
  223. package/src/styles/variables.css +14 -16
  224. package/src/switch/switch.ts +2 -4
  225. package/src/tabs/tab-panel.ts +2 -2
  226. package/src/tabs/tab.ts +2 -2
  227. package/src/tabs/tabs.ts +2 -2
  228. package/src/tag/tag.ts +2 -2
  229. package/src/text-input/text-input.ts +2 -4
  230. package/src/textarea/textarea.ts +1 -3
  231. package/src/tooltip/tooltip.ts +1 -1
  232. package/src/tree/tree-item.ts +3 -5
  233. package/src/tree/tree.ts +2 -4
@@ -7,15 +7,14 @@ import './menu-item';
7
7
  * optional two-level flyout or inline (accordion) submenus.
8
8
  *
9
9
  * Two modes:
10
- * - `flyout` (default) submenus open as floating panels (like a nav bar or
10
+ * - `flyout` (default) - submenus open as floating panels (like a nav bar or
11
11
  * context menu).
12
- * - `inline` submenus expand in-place (accordion-style sidebar).
12
+ * - `inline` - submenus expand in-place (accordion-style sidebar).
13
13
  *
14
14
  * Emits:
15
- * - `select` `{ detail: { key, label, keyPath } }` when a leaf item is clicked.
15
+ * - `select` - `{ detail: { key, label, keyPath } }` when a leaf item is clicked.
16
16
  */
17
17
  declare class Menu extends AeicoComponent {
18
- static tagName: string;
19
18
  protected static styles: string[];
20
19
  accessor mode: MenuMode;
21
20
  accessor orientation: MenuOrientation;
@@ -8,9 +8,9 @@ import type { NavbarColor, NavbarAppearance } from './defines';
8
8
  * mobile hamburger collapse.
9
9
  *
10
10
  * Slots:
11
- * - `brand` leftmost area, typically a logo or site name link
12
- * - `start` main navigation links / dropdowns
13
- * - `end` right-side actions (login button, avatar, etc.)
11
+ * - `brand` - leftmost area, typically a logo or site name link
12
+ * - `start` - main navigation links / dropdowns
13
+ * - `end` - right-side actions (login button, avatar, etc.)
14
14
  *
15
15
  * Slotted `<a>` elements receive default link styling controlled via
16
16
  * CSS custom properties. Mark the active link with `aria-current="page"`.
@@ -37,7 +37,6 @@ import type { NavbarColor, NavbarAppearance } from './defines';
37
37
  * ```
38
38
  */
39
39
  declare class Navbar extends AeicoComponent {
40
- static tagName: string;
41
40
  protected static styles: string[];
42
41
  /** Background color using the design-system color token set. */
43
42
  accessor color: NavbarColor | undefined;
@@ -45,8 +44,8 @@ declare class Navbar extends AeicoComponent {
45
44
  accessor sticky: boolean;
46
45
  /**
47
46
  * Hover style preset for slotted `<a>` links.
48
- * - `text` only the font color changes on hover (default)
49
- * - `block` a subtle filled background block appears on hover
47
+ * - `text` - only the font color changes on hover (default)
48
+ * - `block` - a subtle filled background block appears on hover
50
49
  *
51
50
  * Fine-tune further with `--ae-navbar-link-hover-color` /
52
51
  * `--ae-navbar-link-hover-bg` CSS variables.
@@ -2,7 +2,6 @@ import AeicoField from '../aeico-field';
2
2
  import type { InferProps, Props } from 'aeico';
3
3
  declare class NumberInput extends AeicoField<number> {
4
4
  protected fieldElement: HTMLInputElement | null;
5
- static tagName: string;
6
5
  static props: Props;
7
6
  placeholder?: string;
8
7
  min?: number;
@@ -39,7 +39,6 @@ import '../icon/icon';
39
39
  * ```
40
40
  */
41
41
  declare class Pagination extends AeicoComponent {
42
- static tagName: string;
43
42
  protected static styles: string[];
44
43
  accessor page: number;
45
44
  accessor pageSize: number;
@@ -20,7 +20,6 @@ import type { ProgressBarColor } from './defines';
20
20
  * When set, takes precedence over the `color` prop entirely.
21
21
  */
22
22
  declare class ProgressBar extends AeicoComponent {
23
- static tagName: string;
24
23
  protected static styles: string[];
25
24
  accessor value: number;
26
25
  accessor label: string;
@@ -8,7 +8,6 @@ declare class RadioGroup extends AeicoField {
8
8
  private _slotOptions;
9
9
  private static _instanceCount;
10
10
  private readonly _groupName;
11
- static tagName: string;
12
11
  static props: Props;
13
12
  options?: RadioGroupOptions;
14
13
  mode?: RadioGroupMode;
@@ -1,15 +1,15 @@
1
1
  import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps, Props } from 'aeico';
3
3
  /**
4
- * AeRadio structured option element for ae-radio-group.
4
+ * AeRadio - structured option element for ae-radio-group.
5
5
  *
6
6
  * Replaces the native `<option>` approach with a custom element that is
7
7
  * fully extensible. Current surface:
8
- * - `value` option value submitted / matched against radio-group value
9
- * - `disabled` disables this individual option (independent of the group)
10
- * - Light DOM label content; can be plain text or rich HTML (icons, etc.)
8
+ * - `value` - option value submitted / matched against radio-group value
9
+ * - `disabled` - disables this individual option (independent of the group)
10
+ * - Light DOM - label content; can be plain text or rich HTML (icons, etc.)
11
11
  *
12
- * This element has **no shadow DOM** it is a pure data / content carrier.
12
+ * This element has **no shadow DOM** - it is a pure data / content carrier.
13
13
  * ae-radio-group reads its properties and light-DOM content, then renders
14
14
  * the appropriate UI (radio input, button, segmented pill, …).
15
15
  *
@@ -31,8 +31,7 @@ import type { InferProps, Props } from 'aeico';
31
31
  * ```
32
32
  */
33
33
  declare class Radio extends AeicoComponent {
34
- static tagName: string;
35
- /** No shadow DOM — this element is a transparent data/content carrier. */
34
+ /** No shadow DOM - this element is a transparent data/content carrier. */
36
35
  static useShadowDOM: boolean;
37
36
  static props: Props;
38
37
  value: string;
@@ -1,7 +1,6 @@
1
1
  import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  declare class SelectOption extends AeicoComponent {
4
- static tagName: string;
5
4
  accessor value: string | undefined;
6
5
  accessor label: string | undefined;
7
6
  accessor disabled: boolean;
@@ -21,7 +21,6 @@ declare class Select extends AeicoField<SelectOptionValue | SelectMultiValue> {
21
21
  private _slotEl;
22
22
  private _slotOptionData;
23
23
  private _selectedListEl;
24
- static tagName: string;
25
24
  accessor _expanded: boolean;
26
25
  accessor options: SelectOptions | undefined;
27
26
  accessor position: SelectPosition | undefined;
@@ -11,8 +11,8 @@ export type NormalizedOption = {
11
11
  };
12
12
  /**
13
13
  * A single mark on the slider track.
14
- * - `number` mark at that numeric position, no label
15
- * - `{ value, label? }` mark at `value` with optional label
14
+ * - `number` - mark at that numeric position, no label
15
+ * - `{ value, label? }` - mark at `value` with optional label
16
16
  *
17
17
  * Marks are purely visual; they do NOT constrain snapping.
18
18
  * The slider still snaps according to `step` / `options`.
@@ -24,8 +24,8 @@ export type MarkItem = number | {
24
24
  };
25
25
  /**
26
26
  * The `marks` prop accepts:
27
- * - `true` auto-generate marks (at option positions, or min+max in free mode)
28
- * - `MarkItem[]` custom marks at the given positions
29
- * - `false` / omitted no marks
27
+ * - `true` - auto-generate marks (at option positions, or min+max in free mode)
28
+ * - `MarkItem[]` - custom marks at the given positions
29
+ * - `false` / omitted - no marks
30
30
  */
31
31
  export type SliderMarks = boolean | MarkItem[];
@@ -7,7 +7,6 @@ declare class Slider extends AeicoField {
7
7
  private _numberInput;
8
8
  private _boundOnRangeInput;
9
9
  private _boundOnNumberInput;
10
- static tagName: string;
11
10
  accessor options: SliderOptions;
12
11
  accessor percentage: boolean;
13
12
  accessor min: number;
@@ -2,7 +2,7 @@ import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  import type { SpinnerColor, SpinnerSize, SpinnerVariant } from './defines';
4
4
  /**
5
- * Spinner animated loading indicator.
5
+ * Spinner - animated loading indicator.
6
6
  *
7
7
  * Supports two visual variants: a rotating ring (`border`, default) and
8
8
  * three bouncing dots (`dots`). Size and colour are driven by the shared
@@ -16,7 +16,6 @@ import type { SpinnerColor, SpinnerSize, SpinnerVariant } from './defines';
16
16
  * ```
17
17
  */
18
18
  declare class Spinner extends AeicoComponent {
19
- static tagName: string;
20
19
  accessor variant: SpinnerVariant;
21
20
  accessor size: SpinnerSize;
22
21
  accessor color: SpinnerColor;
@@ -4,7 +4,6 @@ import type { SwitchIconPlacement } from './defines';
4
4
  import '../icon/icon';
5
5
  declare class Switch extends AeicoField<boolean> {
6
6
  protected fieldElement: HTMLInputElement | null;
7
- static tagName: string;
8
7
  accessor checked: boolean | undefined;
9
8
  accessor defaultChecked: boolean | undefined;
10
9
  accessor icon: string | undefined;
@@ -2,7 +2,6 @@ import AeicoField from '../aeico-field';
2
2
  import type { InferProps, Props } from 'aeico';
3
3
  declare class TextInput extends AeicoField {
4
4
  protected fieldElement: HTMLInputElement | null;
5
- static tagName: string;
6
5
  static props: Props;
7
6
  placeholder?: string;
8
7
  type?: string;
@@ -3,7 +3,6 @@ import type { InferProps } from 'aeico';
3
3
  export type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
4
4
  declare class Textarea extends AeicoField {
5
5
  protected fieldElement: HTMLTextAreaElement | null;
6
- static tagName: string;
7
6
  accessor placeholder: string | undefined;
8
7
  accessor rows: number | undefined;
9
8
  accessor maxlength: number | undefined;
@@ -2,7 +2,7 @@ import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  import '../icon';
4
4
  /**
5
- * Tree item used as a direct child of `<ae-tree>` or nested inside another
5
+ * Tree item - used as a direct child of `<ae-tree>` or nested inside another
6
6
  * `<ae-tree-item>` to create a multi-level tree.
7
7
  *
8
8
  * - **Parent item**: nest `<ae-tree-item>` children inside; an expand toggle is shown.
@@ -20,7 +20,6 @@ import '../icon';
20
20
  * @slot label - Custom label content (falls back to the `label` attribute text).
21
21
  */
22
22
  declare class TreeItem extends AeicoComponent {
23
- static tagName: string;
24
23
  protected static styles: string[];
25
24
  accessor key: string | undefined;
26
25
  accessor icon: string | undefined;
@@ -29,7 +29,6 @@ import './tree-item';
29
29
  * ```
30
30
  */
31
31
  declare class Tree extends AeicoComponent {
32
- static tagName: string;
33
32
  protected static styles: string[];
34
33
  accessor checkable: boolean;
35
34
  accessor multiple: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aeico-components",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Built-in UI components for the Aeico Web Components framework",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -57,6 +57,8 @@
57
57
  "build": "node scripts/build.mjs && node scripts/build-cjs.mjs && node scripts/build-styles.mjs && tsc --declaration --emitDeclarationOnly --outDir dist/types -p tsconfig.json",
58
58
  "dev": "node scripts/build.mjs --watch",
59
59
  "dev:example": "vite --config vite.example.config.ts",
60
+ "dev:example:components": "vite --config vite.example.config.ts",
61
+ "dev:example:simple": "cd examples/simple && vite",
60
62
  "type-check": "tsc --noEmit",
61
63
  "lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
62
64
  "lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" --fix",
@@ -76,7 +78,7 @@
76
78
  "author": "Eowl",
77
79
  "license": "MIT",
78
80
  "peerDependencies": {
79
- "aeico": "^0.1.5"
81
+ "aeico": "^0.1.8"
80
82
  },
81
83
  "devDependencies": {
82
84
  "@eslint/js": "^10.0.1",
@@ -85,7 +87,7 @@
85
87
  "@web/dev-server-esbuild": "^1.0.5",
86
88
  "@web/test-runner": "^0.20.2",
87
89
  "@web/test-runner-playwright": "^0.11.1",
88
- "aeico": "^0.1.5",
90
+ "aeico": "^0.1.8",
89
91
  "aeico-localize": "^0.1.1",
90
92
  "esbuild": "^0.28.1",
91
93
  "eslint": "^10.1.0",
@@ -1,5 +1,4 @@
1
- import { AeicoElement } from 'aeico';
2
- import { toKebab } from './utils';
1
+ import { AeicoElement } from 'aeico';
3
2
 
4
3
  const TAG_NAME_PREFIX = 'ae';
5
4
 
@@ -7,10 +6,12 @@ const TAG_NAME_PREFIX = 'ae';
7
6
  * AeicoComponent is the base class for all built-in Aeico components.
8
7
  */
9
8
  class AeicoComponent extends AeicoElement {
10
- static register(name?: string) {
11
- const tagName = name || `${TAG_NAME_PREFIX}-${this.tagName || toKebab(this.name)}`;
9
+ static define(name: string) {
10
+ const prefix = `${TAG_NAME_PREFIX}-`;
12
11
 
13
- super.register(tagName);
12
+ const tagName = name.startsWith(prefix) ? name : `${prefix}${name}`;
13
+
14
+ super.define(tagName);
14
15
  }
15
16
  }
16
17
 
@@ -1,4 +1,4 @@
1
- import type { InferProps, Props, Watchers } from 'aeico';
1
+ import type { InferProps, Props, Watchers } from 'aeico';
2
2
  import { tags } from 'aeico';
3
3
  import AeicoComponent from './aeico-component';
4
4
 
@@ -205,7 +205,7 @@ class AeicoField<TValue = string> extends AeicoComponent {
205
205
  }
206
206
 
207
207
  /**
208
- * Watcher for error property syncs aria-invalid on the field element
208
+ * Watcher for error property - syncs aria-invalid on the field element
209
209
  */
210
210
  protected onErrorChanged(newValue: string | undefined): void {
211
211
  if (this.fieldElement) {
@@ -1,4 +1,4 @@
1
- import type { InferProps, Props } from 'aeico';
1
+ import type { InferProps, Props } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import colorCSS from '../styles/color.css';
4
4
  import alertStyle from '../styles/components/alert.css';
@@ -96,7 +96,7 @@ class Alert extends AeicoComponent {
96
96
  };
97
97
  }
98
98
 
99
- Alert.register();
99
+ Alert.define('alert');
100
100
 
101
101
  declare global {
102
102
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import sizeCSS from '../styles/size.css';
4
4
  import colorCSS from '../styles/color.css';
@@ -50,7 +50,7 @@ class Badge extends AeicoComponent {
50
50
  }
51
51
  }
52
52
 
53
- Badge.register();
53
+ Badge.define('badge');
54
54
 
55
55
  declare global {
56
56
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import style from '../styles/components/breadcrumb-item.css';
4
4
  import AeicoComponent from '../aeico-component';
@@ -22,8 +22,6 @@ import { prop } from 'aeico';
22
22
  * ```
23
23
  */
24
24
  class BreadcrumbItem extends AeicoComponent {
25
- static tagName = 'breadcrumb-item';
26
-
27
25
  protected static styles = [styleVariables, style];
28
26
 
29
27
  @prop({ type: String })
@@ -49,7 +47,7 @@ class BreadcrumbItem extends AeicoComponent {
49
47
  }
50
48
  }
51
49
 
52
- BreadcrumbItem.register();
50
+ BreadcrumbItem.define('breadcrumb-item');
53
51
 
54
52
  declare global {
55
53
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import colorCSS from '../styles/color.css';
4
4
  import style from '../styles/components/breadcrumb.css';
@@ -15,8 +15,8 @@ import type BreadcrumbItem from './breadcrumb-item';
15
15
  * as `aria-current="page"`.
16
16
  *
17
17
  * The separator is configurable via:
18
- * - `separator` attribute (text, default `/`) simple and concise
19
- * - `slot="separator"` (any element, e.g. `ae-icon`) takes priority over the attribute
18
+ * - `separator` attribute (text, default `/`) - simple and concise
19
+ * - `slot="separator"` (any element, e.g. `ae-icon`) - takes priority over the attribute
20
20
  *
21
21
  * Supports `color` for theming item link colors. The separator intentionally
22
22
  * uses a fixed muted color and does NOT respond to the `color` prop.
@@ -45,8 +45,6 @@ import type BreadcrumbItem from './breadcrumb-item';
45
45
  * ```
46
46
  */
47
47
  class Breadcrumb extends AeicoComponent {
48
- static tagName = 'breadcrumb';
49
-
50
48
  protected static styles = [styleVariables, colorCSS, style];
51
49
 
52
50
  /** Text separator shown between items. Ignored when `slot="separator"` is provided. */
@@ -126,7 +124,7 @@ class Breadcrumb extends AeicoComponent {
126
124
  };
127
125
  }
128
126
 
129
- Breadcrumb.register();
127
+ Breadcrumb.define('breadcrumb');
130
128
 
131
129
  declare global {
132
130
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import sizeCSS from '../styles/size.css';
4
4
  import colorCSS from '../styles/color.css';
@@ -133,7 +133,7 @@ class Button extends AeicoComponent {
133
133
  }
134
134
  }
135
135
 
136
- Button.register();
136
+ Button.define('button');
137
137
 
138
138
  declare global {
139
139
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps, Props } from 'aeico';
1
+ import type { InferProps, Props } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import buttonGroupStyle from '../styles/components/button-group.css';
4
4
  import AeicoComponent from '../aeico-component';
@@ -23,7 +23,7 @@ import DropdownButton from '../dropdown/dropdown-button';
23
23
  * <ae-button>Three</ae-button>
24
24
  * </ae-button-group>
25
25
  *
26
- * <!-- Compact joined strip -->
26
+ * <!-- Compact - joined strip -->
27
27
  * <ae-button-group compact color="primary">
28
28
  * <ae-button>Left</ae-button>
29
29
  * <ae-button>Middle</ae-button>
@@ -127,7 +127,7 @@ class ButtonGroup extends AeicoComponent {
127
127
  }
128
128
  }
129
129
 
130
- ButtonGroup.register();
130
+ ButtonGroup.define('button-group');
131
131
 
132
132
  declare global {
133
133
  interface HTMLElementTagNameMap {
package/src/card/card.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import colorCSS from '../styles/color.css';
4
4
  import cardStyle from '../styles/components/card.css';
@@ -8,8 +8,6 @@ import type { CardVariant, CardColor } from './defines';
8
8
  import { prop } from 'aeico';
9
9
 
10
10
  class Card extends AeicoComponent {
11
- static tagName = 'card';
12
-
13
11
  protected static styles = [styleVariables, colorCSS, cardStyle];
14
12
 
15
13
  @prop({ type: String })
@@ -45,7 +43,7 @@ class Card extends AeicoComponent {
45
43
  }
46
44
  }
47
45
 
48
- Card.register();
46
+ Card.define('card');
49
47
 
50
48
  declare global {
51
49
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- export type CardVariant = 'subtle' | 'faint' | 'filled' | 'outlined' | 'text';
1
+ export type CardVariant = 'subtle' | 'faint' | 'filled' | 'outlined' | 'text';
2
2
  export type CardColor =
3
3
  | 'default'
4
4
  | 'primary'
package/src/card/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { default, default as Card } from './card';
1
+ export { default, default as Card } from './card';
2
2
  export type { CardProps } from './card';
3
3
  export type { CardVariant, CardColor } from './defines';
@@ -1,4 +1,4 @@
1
- import AeicoField, { type FieldAction } from '../aeico-field';
1
+ import AeicoField, { type FieldAction } from '../aeico-field';
2
2
  import type { InferProps, Props } from 'aeico';
3
3
  import { html } from 'aeico';
4
4
  import styleVariables from '../styles/variables.css';
@@ -12,8 +12,6 @@ import { CheckboxVariant } from './defines';
12
12
  class Checkbox extends AeicoField<boolean> {
13
13
  protected fieldElement: HTMLInputElement | null = null;
14
14
 
15
- static tagName = 'checkbox';
16
-
17
15
  static props: Props = {
18
16
  checked: { type: Boolean },
19
17
  defaultChecked: { type: Boolean },
@@ -93,7 +91,7 @@ class Checkbox extends AeicoField<boolean> {
93
91
  }
94
92
  }
95
93
 
96
- Checkbox.register();
94
+ Checkbox.define('checkbox');
97
95
 
98
96
  declare global {
99
97
  interface HTMLElementTagNameMap {
@@ -138,7 +138,7 @@ class CopyButton extends AeicoComponent {
138
138
  }
139
139
  }
140
140
 
141
- CopyButton.register();
141
+ CopyButton.define('copy-button');
142
142
 
143
143
  declare global {
144
144
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps } from 'aeico';
1
+ import type { InferProps } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import colorCSS from '../styles/color.css';
4
4
  import detailStyle from '../styles/components/detail.css';
@@ -19,8 +19,6 @@ import type { DetailColor, DetailVariant, DetailIconPlacement } from './defines'
19
19
  * </ae-detail>
20
20
  */
21
21
  class Detail extends AeicoComponent {
22
- static tagName = 'detail';
23
-
24
22
  protected static styles = [styleVariables, colorCSS, detailStyle];
25
23
 
26
24
  @prop({ type: String })
@@ -113,7 +111,7 @@ class Detail extends AeicoComponent {
113
111
  }
114
112
  }
115
113
 
116
- Detail.register();
114
+ Detail.define('detail');
117
115
 
118
116
  declare global {
119
117
  interface HTMLElementTagNameMap {
@@ -7,7 +7,7 @@ import type Detail from '../detail/detail';
7
7
  import type { DetailColor, DetailVariant } from '../detail/defines';
8
8
 
9
9
  /**
10
- * DetailGroup component wraps multiple `ae-detail` elements into an
10
+ * DetailGroup component - wraps multiple `ae-detail` elements into an
11
11
  * accordion-style group. By default only one item can be open at a time;
12
12
  * set `multiple` to allow several items open simultaneously.
13
13
  *
@@ -21,8 +21,6 @@ import type { DetailColor, DetailVariant } from '../detail/defines';
21
21
  * ```
22
22
  */
23
23
  class DetailGroup extends AeicoComponent {
24
- static tagName = 'detail-group';
25
-
26
24
  static props: Props = {
27
25
  multiple: { type: Boolean },
28
26
  variant: { type: String },
@@ -92,7 +90,7 @@ class DetailGroup extends AeicoComponent {
92
90
  }
93
91
  }
94
92
 
95
- DetailGroup.register();
93
+ DetailGroup.define('detail-group');
96
94
 
97
95
  declare global {
98
96
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import type { InferProps, Props } from 'aeico';
1
+ import type { InferProps, Props } from 'aeico';
2
2
  import styleVariables from '../styles/variables.css';
3
3
  import style from '../styles/components/dialog.css';
4
4
  import AeicoComponent from '../aeico-component';
@@ -138,7 +138,7 @@ class Dialog extends AeicoComponent {
138
138
  }
139
139
  }
140
140
 
141
- Dialog.register();
141
+ Dialog.define('dialog');
142
142
 
143
143
  declare global {
144
144
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import AeicoComponent from '../aeico-component';
1
+ import AeicoComponent from '../aeico-component';
2
2
  import type { InferProps } from 'aeico';
3
3
  import styleVariables from '../styles/variables.css';
4
4
  import colorCSS from '../styles/color.css';
@@ -22,8 +22,6 @@ import { prop } from 'aeico';
22
22
  * @cssproperty --thickness - Custom property to set the thickness of the divider when the `thickness` prop is used.
23
23
  */
24
24
  class Divider extends AeicoComponent {
25
- static tagName = 'divider';
26
-
27
25
  @prop({ type: Boolean })
28
26
  accessor vertical: boolean = false;
29
27
 
@@ -44,7 +42,7 @@ class Divider extends AeicoComponent {
44
42
  }
45
43
  }
46
44
 
47
- Divider.register();
45
+ Divider.define('divider');
48
46
 
49
47
  declare global {
50
48
  interface HTMLElementTagNameMap {
@@ -84,7 +84,7 @@ class Drawer extends AeicoComponent {
84
84
  slot();
85
85
  });
86
86
 
87
- // Footer always rendered to capture slotchange, hidden when empty
87
+ // Footer - always rendered to capture slotchange, hidden when empty
88
88
  footer({ style: { display: this._hasFooter ? '' : 'none' } }, () => {
89
89
  slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });
90
90
  });
@@ -162,7 +162,7 @@ class Drawer extends AeicoComponent {
162
162
  }
163
163
  }
164
164
 
165
- Drawer.register();
165
+ Drawer.define('drawer');
166
166
 
167
167
  declare global {
168
168
  interface HTMLElementTagNameMap {