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
package/dist/dropdown.js CHANGED
@@ -50,20 +50,12 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
50
50
 
51
51
  // src/aeico-component.ts
52
52
  import { AeicoElement } from "aeico";
53
-
54
- // src/utils.ts
55
- var SVG_NS = "http://www.w3.org/2000/svg";
56
- function toKebab(str) {
57
- const cleaned = str.replace(/^[_\d]+/, "");
58
- return cleaned.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
59
- }
60
-
61
- // src/aeico-component.ts
62
53
  var TAG_NAME_PREFIX = "ae";
63
54
  var AeicoComponent = class extends AeicoElement {
64
- static register(name) {
65
- const tagName = name || `${TAG_NAME_PREFIX}-${this.tagName || toKebab(this.name)}`;
66
- super.register(tagName);
55
+ static define(name) {
56
+ const prefix = `${TAG_NAME_PREFIX}-`;
57
+ const tagName = name.startsWith(prefix) ? name : `${prefix}${name}`;
58
+ super.define(tagName);
67
59
  }
68
60
  };
69
61
  var aeico_component_default = AeicoComponent;
@@ -73,7 +65,7 @@ import { html as html3 } from "aeico";
73
65
  import { prop as prop2 } from "aeico";
74
66
 
75
67
  // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dropdown.css
76
- var dropdown_default = ":host {\n display: inline-block;\n position: relative;\n\n --dropdown-z-index: 1000;\n --dropdown-bg: var(--ae-surface-overlay, #fff);\n --dropdown-border: 1px solid var(--ae-color-border, rgba(0, 0, 0, 0.12));\n --dropdown-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n --dropdown-min-width: 10rem;\n --dropdown-padding: 0.25rem 0;\n}\n\n.trigger-wrapper {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n/* Internal trigger rendered when `label` prop is set.\n Uses --dropdown-trigger-* variables. Context components (e.g. ae-navbar)\n map their own tokens to these variables via ::slotted(ae-dropdown). */\n.trigger-label {\n display: inline-flex;\n align-items: center;\n height: var(--dropdown-trigger-height, auto);\n padding: 0 var(--dropdown-trigger-padding-x, 0.75rem);\n color: var(--dropdown-trigger-color, inherit);\n background: var(--dropdown-trigger-bg, none);\n border: none;\n border-radius: var(--dropdown-trigger-radius, 0);\n -webkit-appearance: none;\n appearance: none;\n cursor: pointer;\n font: inherit;\n font-size: var(--dropdown-trigger-font-size, inherit);\n white-space: nowrap;\n transition: color 0.15s ease, background-color 0.15s ease;\n outline-offset: 2px;\n}\n\n.trigger-label:hover {\n color: var(--dropdown-trigger-hover-color, inherit);\n background-color: var(--dropdown-trigger-hover-bg, transparent);\n}\n\n:host([disabled]) .trigger-label {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Bootstrap-style CSS border caret \u2014 shadow DOM only, no global injection needed */\n.ae-dropdown-arrow {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.3em;\n vertical-align: 0.2em;\n flex-shrink: 0;\n}\n.ae-dropdown-arrow--bottom {\n border-top: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--top {\n border-bottom: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--right {\n border-left: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--left {\n border-right: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n\n.panel {\n display: none;\n position: absolute;\n z-index: var(--dropdown-z-index);\n background: var(--dropdown-bg);\n border: var(--dropdown-border);\n border-radius: var(--ae-border-radius, var(--ae-radius-md));\n box-shadow: var(--dropdown-shadow);\n min-width: var(--dropdown-min-width);\n padding: var(--dropdown-padding);\n box-sizing: border-box;\n /* Prevent panel from being wider than viewport */\n max-width: calc(100vw - 16px);\n}\n\n.panel.open {\n display: block;\n}\n\n/* placement variants */\n.panel.placement-bottom-start {\n top: 100%;\n left: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom-end {\n top: 100%;\n right: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 4px;\n}\n\n.panel.placement-top-start {\n bottom: 100%;\n left: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top-end {\n bottom: 100%;\n right: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-bottom: 4px;\n}\n\n/* right placements */\n.panel.placement-right-start {\n top: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right-end {\n bottom: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right {\n top: 50%;\n left: 100%;\n transform: translateY(-50%);\n margin-left: 4px;\n}\n\n/* left placements */\n.panel.placement-left-start {\n top: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left-end {\n bottom: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left {\n top: 50%;\n right: 100%;\n transform: translateY(-50%);\n margin-right: 4px;\n}\n";
68
+ var dropdown_default = ":host {\n display: inline-block;\n position: relative;\n\n --dropdown-z-index: 1000;\n --dropdown-bg: var(--ae-surface-overlay, #fff);\n --dropdown-border: 1px solid var(--ae-color-border, rgba(0, 0, 0, 0.12));\n --dropdown-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n --dropdown-min-width: 10rem;\n --dropdown-padding: 0.25rem 0;\n}\n\n.trigger-wrapper {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n/* Internal trigger rendered when `label` prop is set.\n Uses --dropdown-trigger-* variables. Context components (e.g. ae-navbar)\n map their own tokens to these variables via ::slotted(ae-dropdown). */\n.trigger-label {\n display: inline-flex;\n align-items: center;\n height: var(--dropdown-trigger-height, auto);\n padding: 0 var(--dropdown-trigger-padding-x, 0.75rem);\n color: var(--dropdown-trigger-color, inherit);\n background: var(--dropdown-trigger-bg, none);\n border: none;\n border-radius: var(--dropdown-trigger-radius, 0);\n -webkit-appearance: none;\n appearance: none;\n cursor: pointer;\n font: inherit;\n font-size: var(--dropdown-trigger-font-size, inherit);\n white-space: nowrap;\n transition: color 0.15s ease, background-color 0.15s ease;\n outline-offset: 2px;\n}\n\n.trigger-label:hover {\n color: var(--dropdown-trigger-hover-color, inherit);\n background-color: var(--dropdown-trigger-hover-bg, transparent);\n}\n\n:host([disabled]) .trigger-label {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Bootstrap-style CSS border caret - shadow DOM only, no global injection needed */\n.ae-dropdown-arrow {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.3em;\n vertical-align: 0.2em;\n flex-shrink: 0;\n}\n.ae-dropdown-arrow--bottom {\n border-top: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--top {\n border-bottom: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--right {\n border-left: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--left {\n border-right: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n\n.panel {\n display: none;\n position: absolute;\n z-index: var(--dropdown-z-index);\n background: var(--dropdown-bg);\n border: var(--dropdown-border);\n border-radius: var(--ae-border-radius, var(--ae-radius-md));\n box-shadow: var(--dropdown-shadow);\n min-width: var(--dropdown-min-width);\n padding: var(--dropdown-padding);\n box-sizing: border-box;\n /* Prevent panel from being wider than viewport */\n max-width: calc(100vw - 16px);\n}\n\n.panel.open {\n display: block;\n}\n\n/* placement variants */\n.panel.placement-bottom-start {\n top: 100%;\n left: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom-end {\n top: 100%;\n right: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 4px;\n}\n\n.panel.placement-top-start {\n bottom: 100%;\n left: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top-end {\n bottom: 100%;\n right: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-bottom: 4px;\n}\n\n/* right placements */\n.panel.placement-right-start {\n top: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right-end {\n bottom: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right {\n top: 50%;\n left: 100%;\n transform: translateY(-50%);\n margin-left: 4px;\n}\n\n/* left placements */\n.panel.placement-left-start {\n top: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left-end {\n bottom: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left {\n top: 50%;\n right: 100%;\n transform: translateY(-50%);\n margin-right: 4px;\n}\n";
77
69
 
78
70
  // css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css
79
71
  var variables_default = `:root,
@@ -152,7 +144,7 @@ var variables_default = `:root,
152
144
  --ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);
153
145
  --ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);
154
146
 
155
- /* Gray (neutral \u2014 base #6e6e6e) */
147
+ /* Gray (neutral - base #6e6e6e) */
156
148
  --ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);
157
149
  --ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);
158
150
  --ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);
@@ -163,7 +155,7 @@ var variables_default = `:root,
163
155
  --ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);
164
156
  --ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);
165
157
 
166
- /* Slate (blue-gray \u2014 base #64748b, used for 'secondary') */
158
+ /* Slate (blue-gray - base #64748b, used for 'secondary') */
167
159
  --ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);
168
160
  --ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);
169
161
  --ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);
@@ -199,7 +191,7 @@ var variables_default = `:root,
199
191
 
200
192
  :root,
201
193
  :host {
202
- /* Hover / active mix (light default \u2014 overridden in \xA7 6 dark) */
194
+ /* Hover / active mix (light default - overridden in \xA7 6 dark) */
203
195
  --ae-color-mix-hover: black 10%;
204
196
  --ae-color-mix-active: black 20%;
205
197
 
@@ -233,7 +225,7 @@ var variables_default = `:root,
233
225
  --ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));
234
226
  --ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));
235
227
 
236
- /* Secondary (Slate) \u2014 base differs per theme, overridden in \xA7 6 dark */
228
+ /* Secondary (Slate) - base differs per theme, overridden in \xA7 6 dark */
237
229
  --ae-color-secondary: var(--ae-slate-500);
238
230
  --ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));
239
231
  --ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));
@@ -249,7 +241,7 @@ var variables_default = `:root,
249
241
  :host {
250
242
  color-scheme: light;
251
243
 
252
- /* Gray UI aliases \u2014 lighter palette steps for elements on white background */
244
+ /* Gray UI aliases - lighter palette steps for elements on white background */
253
245
  --ae-color-gray-dark: var(--ae-gray-400);
254
246
  --ae-color-gray: var(--ae-gray-300);
255
247
  --ae-color-gray-light: var(--ae-gray-200);
@@ -281,7 +273,7 @@ var variables_default = `:root,
281
273
  --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);
282
274
  --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);
283
275
 
284
- /* Subtle intent tokens \u2014 light context */
276
+ /* Subtle intent tokens - light context */
285
277
  --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);
286
278
  --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);
287
279
  --ae-color-primary-text-emphasis: var(--ae-blue-700);
@@ -312,7 +304,7 @@ var variables_default = `:root,
312
304
  --ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */
313
305
  --ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */
314
306
 
315
- /* Component tokens \u2014 light defaults */
307
+ /* Component tokens - light defaults */
316
308
  --ae-action-btn-bg: var(--ae-gray-200);
317
309
  --ae-action-btn-bg-hover: var(--ae-color-primary);
318
310
  --ae-action-btn-color: var(--ae-gray-600);
@@ -347,14 +339,12 @@ var variables_default = `:root,
347
339
  --ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */
348
340
  }
349
341
 
350
- /* Border-radius tokens \u2014 shared across all components */
342
+ /* Border-radius tokens - shared across all components */
351
343
  :root,
352
344
  :host {
353
345
  /**
354
346
  * Unified border-radius hook for all components.
355
347
  *
356
- * Not set by default \u2014 each component falls back to its own --ae-radius-*
357
- * token (e.g. button \u2192 sm, card \u2192 lg, input \u2192 xs).
358
348
  *
359
349
  * Usage:
360
350
  * :root { --ae-border-radius: 0; } // global: all components square
@@ -376,7 +366,7 @@ var variables_default = `:root,
376
366
  --ae-radius-circle: 50%;
377
367
  }
378
368
 
379
- /* Layout tokens \u2014 defined on :root so all light DOM elements can use them */
369
+ /* Layout tokens - defined on :root so all light DOM elements can use them */
380
370
  :root,
381
371
  :host {
382
372
  --container-max-width: 1280px;
@@ -389,18 +379,18 @@ var variables_default = `:root,
389
379
  :host-context([theme="dark"]) {
390
380
  color-scheme: dark;
391
381
 
392
- /* Hover / active \u2014 slightly gentler on dark backgrounds */
382
+ /* Hover / active - slightly gentler on dark backgrounds */
393
383
  --ae-color-mix-hover: black 8%;
394
384
  --ae-color-mix-active: black 16%;
395
385
 
396
- /* Gray UI aliases \u2014 darker palette steps for elements on dark background */
386
+ /* Gray UI aliases - darker palette steps for elements on dark background */
397
387
  --ae-color-gray-dark: var(--ae-gray-800);
398
388
  --ae-color-gray: var(--ae-gray-700);
399
389
  --ae-color-gray-light: var(--ae-gray-600);
400
390
  --ae-color-gray-lighter: var(--ae-gray-500);
401
391
  --ae-color-gray-lightest: var(--ae-gray-400);
402
392
 
403
- /* Secondary \u2014 deeper base on dark background */
393
+ /* Secondary - deeper base on dark background */
404
394
  --ae-color-secondary: var(--ae-slate-700);
405
395
  --ae-color-secondary-text: var(--ae-slate-300);
406
396
 
@@ -429,7 +419,7 @@ var variables_default = `:root,
429
419
  --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);
430
420
  --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);
431
421
 
432
- /* Subtle intent tokens \u2014 dark context (more alpha, lighter text-emphasis) */
422
+ /* Subtle intent tokens - dark context (more alpha, lighter text-emphasis) */
433
423
  --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);
434
424
  --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);
435
425
  --ae-color-primary-text-emphasis: var(--ae-blue-300);
@@ -460,7 +450,7 @@ var variables_default = `:root,
460
450
  --ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);
461
451
  --ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);
462
452
 
463
- /* Component tokens \u2014 dark overrides */
453
+ /* Component tokens - dark overrides */
464
454
  --ae-action-btn-bg: var(--ae-color-gray);
465
455
  --ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));
466
456
  --ae-action-btn-color: var(--ae-gray-400);
@@ -532,14 +522,14 @@ var dropdown_item_default = `:host {
532
522
  pointer-events: none;
533
523
  }
534
524
 
535
- /* Active item \u2014 current selection, current route, etc. */
525
+ /* Active item - current selection, current route, etc. */
536
526
  :host([active]) .item {
537
527
  background: var(--dropdown-item-bg-selected, rgba(0, 0, 0, 0.06));
538
528
  color: var(--dropdown-item-color-active, var(--ae-color-primary, #0e639c));
539
529
  font-weight: 500;
540
530
  }
541
531
 
542
- /* Checkbox mode \u2014 fixed-width indicator column */
532
+ /* Checkbox mode - fixed-width indicator column */
543
533
  .check-indicator {
544
534
  display: inline-flex;
545
535
  align-items: center;
@@ -569,6 +559,9 @@ var dropdown_item_default = `:host {
569
559
  // src/dropdown/dropdown-item.ts
570
560
  import { prop } from "aeico";
571
561
 
562
+ // src/utils.ts
563
+ var SVG_NS = "http://www.w3.org/2000/svg";
564
+
572
565
  // src/icon/icon.ts
573
566
  import { html } from "aeico";
574
567
 
@@ -587,7 +580,7 @@ var defaultViewBox = "0 0 24 24";
587
580
  // src/icon/registry.ts
588
581
  var IconRegistry = class {
589
582
  static _icons = /* @__PURE__ */ new Map();
590
- /** Names registered via addBuiltIn can be overridden by user add() calls */
583
+ /** Names registered via addBuiltIn - can be overridden by user add() calls */
591
584
  static _builtInKeys = /* @__PURE__ */ new Set();
592
585
  /** Register user icons. Always takes priority over built-in icons. */
593
586
  static add(icons) {
@@ -639,7 +632,6 @@ registry_default.addBuiltIn({
639
632
 
640
633
  // src/icon/icon.ts
641
634
  var Icon = class extends aeico_component_default {
642
- static tagName = "icon";
643
635
  static props = {
644
636
  name: { type: String },
645
637
  size: { type: String },
@@ -699,7 +691,7 @@ var Icon = class extends aeico_component_default {
699
691
  });
700
692
  }
701
693
  };
702
- Icon.register();
694
+ Icon.define("icon");
703
695
 
704
696
  // src/dropdown/dropdown-item.ts
705
697
  var _active_dec, _checked_dec, _type_dec, _href_dec, _disabled_dec, _value_dec, _a, _init, _value, _disabled, _href, _type, _checked, _active;
@@ -784,9 +776,8 @@ __decorateElement(_init, 4, "type", _type_dec, DropdownItem, _type);
784
776
  __decorateElement(_init, 4, "checked", _checked_dec, DropdownItem, _checked);
785
777
  __decorateElement(_init, 4, "active", _active_dec, DropdownItem, _active);
786
778
  __decoratorMetadata(_init, DropdownItem);
787
- __publicField(DropdownItem, "tagName", "dropdown-item");
788
779
  __publicField(DropdownItem, "styles", [variables_default, dropdown_item_default]);
789
- DropdownItem.register();
780
+ DropdownItem.define("dropdown-item");
790
781
  var dropdown_item_default2 = DropdownItem;
791
782
 
792
783
  // src/dropdown/dropdown.ts
@@ -802,7 +793,7 @@ var Dropdown = class extends (_a2 = aeico_component_default, _placement_dec = [p
802
793
  __publicField(this, "_outsideClickHandler", null);
803
794
  // Called via declarative @click on the trigger-wrapper div inside the shadow DOM.
804
795
  // Events from slotted trigger content bubble through the shadow DOM slot path,
805
- // so this fires for trigger clicks only not for panel item clicks.
796
+ // so this fires for trigger clicks only - not for panel item clicks.
806
797
  __publicField(this, "_handleTriggerClick", () => {
807
798
  this.toggle();
808
799
  });
@@ -920,9 +911,8 @@ __decorateElement(_init2, 4, "closeOnSelect", _closeOnSelect_dec, Dropdown, _clo
920
911
  __decorateElement(_init2, 4, "disabled", _disabled_dec2, Dropdown, _disabled2);
921
912
  __decorateElement(_init2, 4, "label", _label_dec, Dropdown, _label);
922
913
  __decoratorMetadata(_init2, Dropdown);
923
- __publicField(Dropdown, "tagName", "dropdown");
924
914
  __publicField(Dropdown, "styles", [variables_default, dropdown_default]);
925
- Dropdown.register();
915
+ Dropdown.define("dropdown");
926
916
  var dropdown_default2 = Dropdown;
927
917
 
928
918
  // src/dropdown/dropdown-button.ts
@@ -1048,7 +1038,6 @@ button:disabled {
1048
1038
  background: var(--ae-color-subtle-hover);
1049
1039
  }
1050
1040
 
1051
- /* Icon-only: single ae-icon child \u2192 square compact layout */
1052
1041
  :host([icon-only]) {
1053
1042
  display: inline-flex;
1054
1043
  }
@@ -1227,7 +1216,7 @@ __decorateElement(_init3, 5, "active", _active_dec2, Button);
1227
1216
  __decorateElement(_init3, 5, "block", _block_dec, Button);
1228
1217
  __decoratorMetadata(_init3, Button);
1229
1218
  __publicField(Button, "styles", [variables_default, size_default, color_default, button_default]);
1230
- Button.register();
1219
+ Button.define("button");
1231
1220
 
1232
1221
  // src/dropdown/dropdown-button.ts
1233
1222
  var _closeOnSelect_dec2, _placement_dec2, _disabled_dec4, _size_dec2, _color_dec2, _variant_dec2, _a4, _init4, _variant, _color, _size, _disabled3, _placement2, _closeOnSelect2;
@@ -1298,7 +1287,6 @@ __decorateElement(_init4, 4, "disabled", _disabled_dec4, DropdownButton, _disabl
1298
1287
  __decorateElement(_init4, 4, "placement", _placement_dec2, DropdownButton, _placement2);
1299
1288
  __decorateElement(_init4, 4, "closeOnSelect", _closeOnSelect_dec2, DropdownButton, _closeOnSelect2);
1300
1289
  __decoratorMetadata(_init4, DropdownButton);
1301
- __publicField(DropdownButton, "tagName", "dropdown-button");
1302
1290
  // ae-button and ae-dropdown each carry their own shadow DOM styles.
1303
1291
  // Only the host display is set here so button-group compact layout works.
1304
1292
  __publicField(DropdownButton, "styles", [
@@ -1309,7 +1297,7 @@ __publicField(DropdownButton, "styles", [
1309
1297
  ".caret--right { border-left: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }",
1310
1298
  ".caret--left { border-right: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }"
1311
1299
  ]);
1312
- DropdownButton.register();
1300
+ DropdownButton.define("dropdown-button");
1313
1301
  var dropdown_button_default = DropdownButton;
1314
1302
  export {
1315
1303
  dropdown_button_default as DropdownButton,