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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dropdown.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dropdown-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/icon.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button.css", "../src/dropdown/index.ts", "../src/aeico-component.ts", "../src/utils.ts", "../src/dropdown/dropdown.ts", "../src/dropdown/dropdown-item.ts", "../src/icon/icon.ts", "../src/icon/defines.ts", "../src/icon/registry.ts", "../src/icon/built-in-icons.ts", "../src/dropdown/dropdown-button.ts", "../src/button/button.ts"],
4
- "sourcesContent": ["module.exports = \":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\"", "module.exports = \":root,\\n:host {\\n --ae-font-sans-serif: system-ui, -apple-system, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\",\\n \\\"Noto Sans\\\", \\\"Liberation Sans\\\", Arial, sans-serif,\\n \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n --ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas,\\n \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;\\n font-family: var(--ae-font-sans-serif);\\n --ae-blue: #0e639c;\\n --ae-green: #28a745;\\n --ae-red: #dc3545;\\n --ae-yellow: #ffc107;\\n --ae-cyan: #17a2b8;\\n --ae-gray: #6e6e6e;\\n --ae-slate: #64748b;\\n --ae-dark: #343a40;\\n --ae-light: #f8f9fa;\\n}\\n\\n:root,\\n:host {\\n /* Blue */\\n --ae-blue-100: color-mix(in srgb, var(--ae-blue) 20%, white);\\n --ae-blue-200: color-mix(in srgb, var(--ae-blue) 40%, white);\\n --ae-blue-300: color-mix(in srgb, var(--ae-blue) 60%, white);\\n --ae-blue-400: color-mix(in srgb, var(--ae-blue) 80%, white);\\n --ae-blue-500: var(--ae-blue);\\n --ae-blue-600: color-mix(in srgb, var(--ae-blue) 80%, black);\\n --ae-blue-700: color-mix(in srgb, var(--ae-blue) 60%, black);\\n --ae-blue-800: color-mix(in srgb, var(--ae-blue) 40%, black);\\n --ae-blue-900: color-mix(in srgb, var(--ae-blue) 20%, black);\\n\\n /* Green */\\n --ae-green-100: color-mix(in srgb, var(--ae-green) 20%, white);\\n --ae-green-200: color-mix(in srgb, var(--ae-green) 40%, white);\\n --ae-green-300: color-mix(in srgb, var(--ae-green) 60%, white);\\n --ae-green-400: color-mix(in srgb, var(--ae-green) 80%, white);\\n --ae-green-500: var(--ae-green);\\n --ae-green-600: color-mix(in srgb, var(--ae-green) 80%, black);\\n --ae-green-700: color-mix(in srgb, var(--ae-green) 60%, black);\\n --ae-green-800: color-mix(in srgb, var(--ae-green) 40%, black);\\n --ae-green-900: color-mix(in srgb, var(--ae-green) 20%, black);\\n\\n /* Red */\\n --ae-red-100: color-mix(in srgb, var(--ae-red) 20%, white);\\n --ae-red-200: color-mix(in srgb, var(--ae-red) 40%, white);\\n --ae-red-300: color-mix(in srgb, var(--ae-red) 60%, white);\\n --ae-red-400: color-mix(in srgb, var(--ae-red) 80%, white);\\n --ae-red-500: var(--ae-red);\\n --ae-red-600: color-mix(in srgb, var(--ae-red) 80%, black);\\n --ae-red-700: color-mix(in srgb, var(--ae-red) 60%, black);\\n --ae-red-800: color-mix(in srgb, var(--ae-red) 40%, black);\\n --ae-red-900: color-mix(in srgb, var(--ae-red) 20%, black);\\n\\n /* Yellow */\\n --ae-yellow-100: color-mix(in srgb, var(--ae-yellow) 20%, white);\\n --ae-yellow-200: color-mix(in srgb, var(--ae-yellow) 40%, white);\\n --ae-yellow-300: color-mix(in srgb, var(--ae-yellow) 60%, white);\\n --ae-yellow-400: color-mix(in srgb, var(--ae-yellow) 80%, white);\\n --ae-yellow-500: var(--ae-yellow);\\n --ae-yellow-600: color-mix(in srgb, var(--ae-yellow) 80%, black);\\n --ae-yellow-700: color-mix(in srgb, var(--ae-yellow) 60%, black);\\n --ae-yellow-800: color-mix(in srgb, var(--ae-yellow) 40%, black);\\n --ae-yellow-900: color-mix(in srgb, var(--ae-yellow) 20%, black);\\n\\n /* Cyan */\\n --ae-cyan-100: color-mix(in srgb, var(--ae-cyan) 20%, white);\\n --ae-cyan-200: color-mix(in srgb, var(--ae-cyan) 40%, white);\\n --ae-cyan-300: color-mix(in srgb, var(--ae-cyan) 60%, white);\\n --ae-cyan-400: color-mix(in srgb, var(--ae-cyan) 80%, white);\\n --ae-cyan-500: var(--ae-cyan);\\n --ae-cyan-600: color-mix(in srgb, var(--ae-cyan) 80%, black);\\n --ae-cyan-700: color-mix(in srgb, var(--ae-cyan) 60%, black);\\n --ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);\\n --ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);\\n\\n /* Gray (neutral \u2014 base #6e6e6e) */\\n --ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);\\n --ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);\\n --ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);\\n --ae-gray-400: color-mix(in srgb, var(--ae-gray) 80%, white);\\n --ae-gray-500: var(--ae-gray);\\n --ae-gray-600: color-mix(in srgb, var(--ae-gray) 80%, black);\\n --ae-gray-700: color-mix(in srgb, var(--ae-gray) 60%, black);\\n --ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);\\n --ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);\\n\\n /* Slate (blue-gray \u2014 base #64748b, used for 'secondary') */\\n --ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);\\n --ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);\\n --ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);\\n --ae-slate-400: color-mix(in srgb, var(--ae-slate) 80%, white);\\n --ae-slate-500: var(--ae-slate);\\n --ae-slate-600: color-mix(in srgb, var(--ae-slate) 80%, black);\\n --ae-slate-700: color-mix(in srgb, var(--ae-slate) 60%, black);\\n --ae-slate-800: color-mix(in srgb, var(--ae-slate) 40%, black);\\n --ae-slate-900: color-mix(in srgb, var(--ae-slate) 20%, black);\\n\\n /* Dark (base #343a40) */\\n --ae-dark-100: color-mix(in srgb, var(--ae-dark) 20%, white);\\n --ae-dark-200: color-mix(in srgb, var(--ae-dark) 40%, white);\\n --ae-dark-300: color-mix(in srgb, var(--ae-dark) 60%, white);\\n --ae-dark-400: color-mix(in srgb, var(--ae-dark) 80%, white);\\n --ae-dark-500: var(--ae-dark);\\n --ae-dark-600: color-mix(in srgb, var(--ae-dark) 80%, black);\\n --ae-dark-700: color-mix(in srgb, var(--ae-dark) 60%, black);\\n --ae-dark-800: color-mix(in srgb, var(--ae-dark) 40%, black);\\n --ae-dark-900: color-mix(in srgb, var(--ae-dark) 20%, black);\\n\\n /* Light (base #f8f9fa) */\\n --ae-light-100: color-mix(in srgb, var(--ae-light) 20%, white);\\n --ae-light-200: color-mix(in srgb, var(--ae-light) 40%, white);\\n --ae-light-300: color-mix(in srgb, var(--ae-light) 60%, white);\\n --ae-light-400: color-mix(in srgb, var(--ae-light) 80%, white);\\n --ae-light-500: var(--ae-light);\\n --ae-light-600: color-mix(in srgb, var(--ae-light) 80%, black);\\n --ae-light-700: color-mix(in srgb, var(--ae-light) 60%, black);\\n --ae-light-800: color-mix(in srgb, var(--ae-light) 40%, black);\\n --ae-light-900: color-mix(in srgb, var(--ae-light) 20%, black);\\n}\\n\\n:root,\\n:host {\\n /* Hover / active mix (light default \u2014 overridden in \u00A7 6 dark) */\\n --ae-color-mix-hover: black 10%;\\n --ae-color-mix-active: black 20%;\\n\\n /* Primary (Blue) */\\n --ae-color-primary: var(--ae-blue-500);\\n --ae-color-primary-hover: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-hover));\\n --ae-color-primary-active: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-active));\\n --ae-color-primary-disabled: color-mix(in srgb, var(--ae-blue) 50%, var(--ae-gray-500));\\n\\n /* Success (Green) */\\n --ae-color-success: var(--ae-green-500);\\n --ae-color-success-hover: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-hover));\\n --ae-color-success-active: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-active));\\n --ae-color-success-disabled: color-mix(in srgb, var(--ae-green) 50%, var(--ae-gray-500));\\n\\n /* Danger (Red) */\\n --ae-color-danger: var(--ae-red-500);\\n --ae-color-danger-hover: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-hover));\\n --ae-color-danger-active: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-active));\\n --ae-color-danger-disabled: color-mix(in srgb, var(--ae-red) 50%, var(--ae-gray-500));\\n\\n /* Warning (Yellow) */\\n --ae-color-warning: var(--ae-yellow-500);\\n --ae-color-warning-hover: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-hover));\\n --ae-color-warning-active: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-active));\\n --ae-color-warning-disabled: color-mix(in srgb, var(--ae-yellow) 50%, var(--ae-gray-500));\\n\\n /* Info (Cyan) */\\n --ae-color-info: var(--ae-cyan-500);\\n --ae-color-info-hover: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-hover));\\n --ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));\\n --ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));\\n\\n /* Secondary (Slate) \u2014 base differs per theme, overridden in \u00A7 6 dark */\\n --ae-color-secondary: var(--ae-slate-500);\\n --ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));\\n --ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));\\n --ae-color-secondary-text: var(--ae-slate-700);\\n}\\n\\n\\n.theme-light,\\n:root[theme=\\\"light\\\"],\\n:host([theme=\\\"light\\\"]),\\n:host-context([theme=\\\"light\\\"]),\\n:where(:root),\\n:host {\\n color-scheme: light;\\n\\n /* Gray UI aliases \u2014 lighter palette steps for elements on white background */\\n --ae-color-gray-dark: var(--ae-gray-400);\\n --ae-color-gray: var(--ae-gray-300);\\n --ae-color-gray-light: var(--ae-gray-200);\\n --ae-color-gray-lighter: var(--ae-gray-100);\\n --ae-color-gray-lightest: color-mix(in srgb, var(--ae-gray) 10%, white);\\n\\n /* Text */\\n --ae-color-text-main: var(--ae-dark-700);\\n --ae-color-text-muted: var(--ae-gray-600);\\n --ae-color-text-disabled: var(--ae-gray-300);\\n --ae-color-text-link: var(--ae-blue-500);\\n --ae-color-text-link-hover: var(--ae-blue-700);\\n\\n /* Surfaces */\\n --ae-surface-sunken: var(--ae-light-500);\\n --ae-surface-base: white;\\n --ae-surface-raised: var(--ae-light-500);\\n --ae-surface-overlay: white;\\n --ae-color-overlay: rgba(0, 0, 0, 0.4);\\n\\n /* Borders */\\n --ae-border-subtle: rgba(0, 0, 0, 0.08);\\n --ae-border-default: rgba(0, 0, 0, 0.15);\\n --ae-border-hover: rgba(0, 0, 0, 0.25);\\n --ae-border-focus: var(--ae-color-primary);\\n --ae-border-disabled: rgba(0, 0, 0, 0.06);\\n\\n /* Focus ring */\\n --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);\\n --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);\\n\\n /* Subtle intent tokens \u2014 light context */\\n --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);\\n --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);\\n --ae-color-primary-text-emphasis: var(--ae-blue-700);\\n\\n --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.08);\\n --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.40);\\n --ae-color-success-text-emphasis: var(--ae-green-700);\\n\\n --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.08);\\n --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.40);\\n --ae-color-danger-text-emphasis: var(--ae-red-700);\\n\\n --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.08);\\n --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.40);\\n --ae-color-warning-text-emphasis: var(--ae-yellow-700);\\n\\n --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.08);\\n --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.40);\\n --ae-color-info-text-emphasis: var(--ae-cyan-700);\\n\\n --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.08);\\n --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.40);\\n --ae-color-secondary-text-emphasis: var(--ae-slate-700);\\n\\n --ae-color-light-bg-subtle: var(--ae-gray-100); /* opaque on white: ~#e2e2e2 */\\n --ae-color-light-border-subtle: var(--ae-gray-200); /* opaque on white: ~#c4c4c4 */\\n\\n --ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */\\n --ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */\\n\\n /* Component tokens \u2014 light defaults */\\n --ae-action-btn-bg: var(--ae-gray-200);\\n --ae-action-btn-bg-hover: var(--ae-color-primary);\\n --ae-action-btn-color: var(--ae-gray-600);\\n --ae-action-btn-color-hover: white;\\n\\n --ae-clear-btn-bg-hover: var(--ae-color-danger);\\n --ae-clear-btn-color-hover: white;\\n\\n --ae-reset-btn-border-radius: var(--ae-radius-xs);\\n --ae-reset-btn-bg: var(--ae-action-btn-bg);\\n --ae-reset-btn-bg-hover: var(--ae-action-btn-bg-hover);\\n --ae-reset-btn-color: var(--ae-action-btn-color);\\n --ae-reset-btn-color-hover: var(--ae-action-btn-color-hover);\\n --ae-reset-btn-transition: all 0.12s;\\n\\n --ae-clear-btn-border-radius: var(--ae-radius-xs);\\n --ae-clear-btn-bg: var(--ae-action-btn-bg);\\n --ae-clear-btn-color: var(--ae-action-btn-color);\\n --ae-clear-btn-transition: all 0.12s;\\n}\\n\\n:root,\\n:host {\\n --ae-size-scale: 1;\\n --ae-size-base: calc(1rem * var(--ae-size-scale)); /* 16px */\\n --ae-size-xl: round(calc(var(--ae-size-l) * 1.125), 1px); /* 23px */\\n --ae-size-l: round(calc(var(--ae-size-m) * 1.125 * 1.125), 1px); /* 20px */\\n --ae-size-m: var(--ae-size-base); /* 16px */\\n --ae-size-s: round(calc(var(--ae-size-m) / 1.125), 1px); /* 14px */\\n --ae-size-xs: round(calc(var(--ae-size-s) / 1.125), 1px); /* 12px */\\n --ae-size-2xs: round(calc(var(--ae-size-xs) / 1.125), 1px); /* 11px */\\n --ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */\\n}\\n\\n/* Border-radius tokens \u2014 shared across all components */\\n:root,\\n:host {\\n /**\\n * Unified border-radius hook for all components.\\n *\\n * Not set by default \u2014 each component falls back to its own --ae-radius-*\\n * token (e.g. button \u2192 sm, card \u2192 lg, input \u2192 xs).\\n *\\n * Usage:\\n * :root { --ae-border-radius: 0; } // global: all components square\\n * :root { --ae-border-radius: 999px; } // global: all components pill\\n * ae-button { --ae-border-radius: 50%; } // scoped: only buttons circular\\n * .sidebar { --ae-border-radius: 8px; } // scoped: everything inside .sidebar\\n *\\n * To restore a component to its own default:\\n * ae-card { --ae-border-radius: initial; }\\n */\\n\\n --ae-radius-square: 0;\\n --ae-radius-xs: 2px;\\n --ae-radius-sm: 4px;\\n --ae-radius-md: 6px;\\n --ae-radius-lg: 8px;\\n --ae-radius-xl: 12px;\\n --ae-radius-pill: 999px;\\n --ae-radius-circle: 50%;\\n}\\n\\n/* Layout tokens \u2014 defined on :root so all light DOM elements can use them */\\n:root,\\n:host {\\n --container-max-width: 1280px;\\n --container-padding-x: 1.5rem;\\n}\\n\\n.theme-dark,\\n:root[theme=\\\"dark\\\"],\\n:host([theme=\\\"dark\\\"]),\\n:host-context([theme=\\\"dark\\\"]) {\\n color-scheme: dark;\\n\\n /* Hover / active \u2014 slightly gentler on dark backgrounds */\\n --ae-color-mix-hover: black 8%;\\n --ae-color-mix-active: black 16%;\\n\\n /* Gray UI aliases \u2014 darker palette steps for elements on dark background */\\n --ae-color-gray-dark: var(--ae-gray-800);\\n --ae-color-gray: var(--ae-gray-700);\\n --ae-color-gray-light: var(--ae-gray-600);\\n --ae-color-gray-lighter: var(--ae-gray-500);\\n --ae-color-gray-lightest: var(--ae-gray-400);\\n\\n /* Secondary \u2014 deeper base on dark background */\\n --ae-color-secondary: var(--ae-slate-700);\\n --ae-color-secondary-text: var(--ae-slate-300);\\n\\n /* Text */\\n --ae-color-text-main: white;\\n --ae-color-text-muted: var(--ae-gray-200);\\n --ae-color-text-disabled: var(--ae-gray-500);\\n --ae-color-text-link: var(--ae-blue-300);\\n --ae-color-text-link-hover: var(--ae-blue-200);\\n\\n /* Surfaces */\\n --ae-surface-sunken: var(--ae-gray-900);\\n --ae-surface-base: color-mix(in srgb, var(--ae-gray) 27%, black);\\n --ae-surface-raised: color-mix(in srgb, var(--ae-gray) 34%, black);\\n --ae-surface-overlay: color-mix(in srgb, var(--ae-gray) 38%, black);\\n --ae-color-overlay: rgba(0, 0, 0, 0.6);\\n\\n /* Borders */\\n --ae-border-subtle: rgba(255, 255, 255, 0.08);\\n --ae-border-default: rgba(255, 255, 255, 0.12);\\n --ae-border-hover: rgba(255, 255, 255, 0.20);\\n --ae-border-focus: var(--ae-color-primary);\\n --ae-border-disabled: rgba(255, 255, 255, 0.06);\\n\\n /* Focus ring */\\n --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);\\n --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);\\n\\n /* Subtle intent tokens \u2014 dark context (more alpha, lighter text-emphasis) */\\n --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);\\n --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);\\n --ae-color-primary-text-emphasis: var(--ae-blue-300);\\n\\n --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.10);\\n --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.30);\\n --ae-color-success-text-emphasis: var(--ae-green-300);\\n\\n --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.10);\\n --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.30);\\n --ae-color-danger-text-emphasis: var(--ae-red-300);\\n\\n --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.10);\\n --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.30);\\n --ae-color-warning-text-emphasis: var(--ae-yellow-300);\\n\\n --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.10);\\n --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.30);\\n --ae-color-info-text-emphasis: var(--ae-cyan-300);\\n\\n --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.10);\\n --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.30);\\n --ae-color-secondary-text-emphasis: var(--ae-slate-300);\\n\\n --ae-color-light-bg-subtle: rgb(from var(--ae-light) r g b / 0.20);\\n --ae-color-light-border-subtle: rgb(from var(--ae-light) r g b / 0.25);\\n\\n --ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);\\n --ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);\\n\\n /* Component tokens \u2014 dark overrides */\\n --ae-action-btn-bg: var(--ae-color-gray);\\n --ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));\\n --ae-action-btn-color: var(--ae-gray-400);\\n --ae-action-btn-color-hover: var(--ae-cyan-300);\\n --ae-clear-btn-bg-hover: color-mix(in srgb, var(--ae-red) 25%, var(--ae-gray-800));\\n --ae-clear-btn-color-hover: var(--ae-red-300);\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --dropdown-item-padding: 0.5rem 0.875rem;\\n --dropdown-item-bg: transparent;\\n --dropdown-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.05));\\n --dropdown-item-bg-active: var(--ae-surface-raised-active, rgba(0, 0, 0, 0.1));\\n --dropdown-item-color: var(--ae-color-text-main, inherit);\\n --dropdown-item-color-disabled: var(--ae-color-text-disabled, rgba(0, 0, 0, 0.35));\\n --dropdown-item-font-size: 0.9375rem;\\n --dropdown-item-gap: 0.5rem;\\n --dropdown-item-transition: background 0.1s;\\n}\\n\\n.item {\\n display: flex;\\n align-items: center;\\n gap: var(--dropdown-item-gap);\\n width: 100%;\\n padding: var(--dropdown-item-padding);\\n font-size: var(--dropdown-item-font-size);\\n font-family: inherit;\\n color: var(--dropdown-item-color);\\n background: var(--dropdown-item-bg);\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n text-align: left;\\n text-decoration: none;\\n cursor: pointer;\\n user-select: none;\\n white-space: nowrap;\\n box-sizing: border-box;\\n transition: var(--dropdown-item-transition);\\n outline: none;\\n}\\n\\n.item:hover:not(:disabled):not([aria-disabled=\\\"true\\\"]) {\\n background: var(--dropdown-item-bg-hover);\\n}\\n\\n.item:active:not(:disabled):not([aria-disabled=\\\"true\\\"]) {\\n background: var(--dropdown-item-bg-active);\\n}\\n\\n.item:focus-visible {\\n background: var(--dropdown-item-bg-hover);\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: -2px;\\n}\\n\\n/* disabled */\\n:host([disabled]) .item,\\n.item:disabled {\\n color: var(--dropdown-item-color-disabled);\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n/* Active item \u2014 current selection, current route, etc. */\\n:host([active]) .item {\\n background: var(--dropdown-item-bg-selected, rgba(0, 0, 0, 0.06));\\n color: var(--dropdown-item-color-active, var(--ae-color-primary, #0e639c));\\n font-weight: 500;\\n}\\n\\n/* Checkbox mode \u2014 fixed-width indicator column */\\n.check-indicator {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 1em;\\n flex-shrink: 0;\\n}\\n\\n/* CSS-drawn checkmark (border trick) */\\n.check-indicator::after {\\n content: '';\\n display: block;\\n width: 0.3em;\\n height: 0.55em;\\n border-right: 0.125em solid currentColor;\\n border-bottom: 0.125em solid currentColor;\\n transform: rotate(45deg) translateY(-0.1em);\\n opacity: 0;\\n transition: opacity 0.1s;\\n}\\n\\n:host([checked]) .check-indicator::after {\\n opacity: 1;\\n}\\n\"", "module.exports = \":host([size=\\\"xs\\\"]) { font-size: var(--ae-size-xs); }\\n:host([size=\\\"sm\\\"]) { font-size: var(--ae-size-s); }\\n:host([size=\\\"md\\\"]) { font-size: var(--ae-size-m); }\\n:host([size=\\\"lg\\\"]) { font-size: var(--ae-size-l); }\\n:host([size=\\\"xl\\\"]) { font-size: var(--ae-size-xl); }\\n:host([size=\\\"3xs\\\"]) { font-size: var(--ae-size-3xs); }\\n:host([size=\\\"2xs\\\"]) { font-size: var(--ae-size-2xs); }\\n\"", "module.exports = \":host {\\n --ae-color-solid: var(--ae-color-gray);\\n --ae-color-solid-hover: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-hover));\\n --ae-color-solid-active: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-active));\\n --ae-color-on-solid: var(--ae-color-text-main);\\n --ae-color-border: var(--ae-color-gray);\\n --ae-color-border-hover: color-mix(in srgb, var(--ae-color-border), var(--ae-color-mix-hover));\\n --ae-color-accent: var(--ae-color-text-muted);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: var(--ae-border-subtle);\\n --ae-color-subtle-hover: var(--ae-border-default);\\n --ae-color-bg-subtle: var(--ae-border-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-muted);\\n --ae-color-border-subtle: var(--ae-border-default);\\n}\\n\\n:host([color=\\\"primary\\\"]) {\\n --ae-color-solid: var(--ae-color-primary);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-primary);\\n --ae-color-accent: var(--ae-color-text-link);\\n --ae-color-accent-hover: var(--ae-color-text-link-hover);\\n --ae-color-subtle: var(--ae-color-primary-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-blue) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-primary-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-primary-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-primary-border-subtle);\\n}\\n\\n:host([color=\\\"secondary\\\"]) {\\n --ae-color-solid: var(--ae-color-secondary);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-secondary-hover);\\n --ae-color-accent: var(--ae-color-secondary-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: rgb(from var(--ae-slate) r g b / 0.06);\\n --ae-color-subtle-hover: rgb(from var(--ae-slate) r g b / 0.12);\\n --ae-color-bg-subtle: var(--ae-color-secondary-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-secondary-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-secondary-border-subtle);\\n}\\n\\n:host([color=\\\"success\\\"]) {\\n --ae-color-solid: var(--ae-color-success);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-success);\\n --ae-color-accent: var(--ae-color-success-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-success-hover);\\n --ae-color-subtle: var(--ae-color-success-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-green) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-success-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-success-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-success-border-subtle);\\n}\\n\\n:host([color=\\\"danger\\\"]) {\\n --ae-color-solid: var(--ae-color-danger);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-danger);\\n --ae-color-accent: var(--ae-color-danger-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-danger-hover);\\n --ae-color-subtle: var(--ae-color-danger-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-red) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-danger-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-danger-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-danger-border-subtle);\\n}\\n\\n:host([color=\\\"warning\\\"]) {\\n --ae-color-solid: var(--ae-color-warning);\\n --ae-color-on-solid: var(--ae-gray-900);\\n --ae-color-border: var(--ae-color-warning);\\n --ae-color-accent: var(--ae-color-warning-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-warning-hover);\\n --ae-color-subtle: var(--ae-color-warning-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-yellow) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-warning-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-warning-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-warning-border-subtle);\\n}\\n\\n:host([color=\\\"info\\\"]) {\\n --ae-color-solid: var(--ae-color-info);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-info);\\n --ae-color-accent: var(--ae-color-info-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-info-hover);\\n --ae-color-subtle: var(--ae-color-info-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-cyan) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-info-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-info-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-info-border-subtle);\\n}\\n\\n:host([color=\\\"light\\\"]) {\\n --ae-color-solid: var(--ae-light);\\n --ae-color-on-solid: var(--ae-gray-900);\\n --ae-color-border: var(--ae-border-hover);\\n --ae-color-subtle: var(--ae-color-light-bg-subtle);\\n --ae-color-subtle-hover: var(--ae-color-light-border-subtle);\\n --ae-color-bg-subtle: var(--ae-color-light-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-muted);\\n --ae-color-border-subtle: var(--ae-color-light-border-subtle);\\n}\\n\\n:host([color=\\\"dark\\\"]) {\\n --ae-color-solid: var(--ae-dark-500);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-dark-500);\\n --ae-color-accent: var(--ae-color-text-main);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: var(--ae-color-dark-bg-subtle);\\n --ae-color-subtle-hover: var(--ae-color-dark-border-subtle);\\n --ae-color-bg-subtle: var(--ae-color-dark-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-main);\\n --ae-color-border-subtle: var(--ae-color-dark-border-subtle);\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 20px;\\n width: 1em;\\n height: 1em;\\n color: inherit;\\n flex-shrink: 0;\\n line-height: 0;\\n vertical-align: middle;\\n}\\n\\n:host([color]) {\\n color: var(--ae-color-solid);\\n}\\n\\n.icon-svg {\\n display: block;\\n width: 100%;\\n height: 100%;\\n fill: var(--icon-fill, currentColor);\\n stroke: var(--icon-stroke, none);\\n stroke-width: var(--icon-stroke-width, 2);\\n stroke-linecap: var(--icon-stroke-linecap, round);\\n stroke-linejoin: var(--icon-stroke-linejoin, round);\\n pointer-events: none;\\n overflow: visible;\\n}\\n\"", "module.exports = \":host {\\n display: inline-block;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: 6px;\\n font-family: inherit;\\n font-weight: 400;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n user-select: none;\\n cursor: pointer;\\n transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\\n outline: none;\\n position: relative;\\n padding: 0.429em 1.071em;\\n font-size: 1em;\\n line-height: 1.5;\\n border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-sm)) var(--_btn-r-tr, var(--ae-radius-sm)) var(--_btn-r-br, var(--ae-radius-sm)) var(--_btn-r-bl, var(--ae-radius-sm)));\\n min-width: 4.571em;\\n height: 2.286em;\\n width: 100%;\\n\\n background: var(--ae-color-solid);\\n border: 1px solid var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\nbutton:focus { outline: none; }\\nbutton:active { transform: translateY(1px); }\\n\\nbutton:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-on-solid-hover, var(--ae-color-on-solid));\\n}\\n\\nbutton:active:not(:disabled) { background: var(--ae-color-solid-active); }\\n\\nbutton:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([size=\\\"xs\\\"]) button { border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-xs)) var(--_btn-r-tr, var(--ae-radius-xs)) var(--_btn-r-br, var(--ae-radius-xs)) var(--_btn-r-bl, var(--ae-radius-xs))); }\\n:host([size=\\\"sm\\\"]) button { border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-xs)) var(--_btn-r-tr, var(--ae-radius-xs)) var(--_btn-r-br, var(--ae-radius-xs)) var(--_btn-r-bl, var(--ae-radius-xs))); }\\n\\n/* --- Variants --- */\\n\\n:host([variant=\\\"outlined\\\"]) button {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n min-width: auto;\\n padding-left: 4px;\\n padding-right: 4px;\\n}\\n\\n:host([variant=\\\"text\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n/* Icon-only: single ae-icon child \u2192 square compact layout */\\n:host([icon-only]) {\\n display: inline-flex;\\n}\\n\\n:host([icon-only]:not([size])) {\\n font-size: var(--ae-size-m);\\n}\\n\\n:host([icon-only]) button {\\n padding: 0;\\n min-width: auto;\\n width: 2.286em;\\n height: 2.286em;\\n line-height: 1;\\n}\\n\\n:host([icon-only]) ::slotted(ae-icon) {\\n font-size: 1.5em;\\n}\\n\\n:host([active]) button {\\n background: var(--ae-color-solid-active);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-on-solid-hover, var(--ae-color-on-solid));\\n}\\n\\n.btn-icon {\\n padding: 0;\\n min-width: auto;\\n width: 2.286em;\\n height: 2.286em;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--ae-radius-sm);\\n}\\n\\n.btn-icon.btn-lg {\\n width: 2.857em;\\n height: 2.857em;\\n}\\n\\n.btn-circle {\\n border-radius: var(--ae-radius-circle);\\n}\\n\\n:host([block]) {\\n display: block;\\n}\\n\\nbutton.btn-loading {\\n position: relative;\\n pointer-events: none;\\n color: transparent;\\n}\\n\\nbutton.btn-loading::before {\\n content: '';\\n position: absolute;\\n width: 1em;\\n height: 1em;\\n border: 2px solid currentColor;\\n border-top-color: transparent;\\n border-radius: var(--ae-radius-circle);\\n animation: btn-spin 0.6s linear infinite;\\n color: currentColor;\\n opacity: 0.8;\\n}\\n\\n@keyframes btn-spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n.btn-icon-left {\\n margin-right: -2px;\\n}\\n\\n.btn-icon-right {\\n margin-left: -2px;\\n}\\n\\n\"", "export { default } from './dropdown';\nexport { default as DropdownItem } from './dropdown-item';\nexport { default as DropdownButton } from './dropdown-button';\nexport type { DropdownProps } from './dropdown';\nexport type { DropdownItemProps } from './dropdown-item';\nexport type { DropdownButtonProps } from './dropdown-button';\nexport type { DropdownPlacement } from './defines';\n", "\uFEFFimport { AeicoElement } from 'aeico';\nimport { toKebab } from './utils';\n\nconst TAG_NAME_PREFIX = 'ae';\n\n/**\n * AeicoComponent is the base class for all built-in Aeico components.\n */\nclass AeicoComponent extends AeicoElement {\n static register(name?: string) {\n const tagName = name || `${TAG_NAME_PREFIX}-${this.tagName || toKebab(this.name)}`;\n\n super.register(tagName);\n }\n}\n\nexport default AeicoComponent;\n", "export const SVG_NS = 'http://www.w3.org/2000/svg';\n\nexport function toKebab(str: string): string {\n const cleaned = str.replace(/^[_\\d]+/, '');\n\n return cleaned.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport style from '../styles/components/dropdown.css';\nimport variables from '../styles/variables.css';\nimport type { DropdownPlacement } from './defines';\n// Ensure ae-dropdown-item is registered when this module is used\nimport './dropdown-item';\n\n/**\n * Dropdown component \u2014 renders a floating menu panel anchored to a trigger slot.\n *\n * The trigger is provided via `slot=\"trigger\"` (typically an `<ae-button>`).\n * Menu items are provided as `<ae-dropdown-item>` default-slot children.\n *\n * Emits:\n * - `open` \u2014 when the panel opens\n * - `close` \u2014 when the panel closes\n * - `select` \u2014 `{ detail: { value, label } }` when a menu item is clicked\n *\n * @example\n * ```html\n * <ae-dropdown>\n * <ae-button slot=\"trigger\">Actions</ae-button>\n * <ae-dropdown-item value=\"edit\" icon=\"edit\">Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\" danger icon=\"trash\">Delete</ae-dropdown-item>\n * </ae-dropdown>\n * ```\n *\n * @example\n * ```html\n * <!-- Inside ae-navbar -->\n * <ae-navbar>\n * <a slot=\"brand\" href=\"/\">MyApp</a>\n * <ae-dropdown slot=\"end\">\n * <ae-button slot=\"trigger\" variant=\"outlined\" size=\"sm\">User</ae-button>\n * <ae-dropdown-item href=\"/profile\" icon=\"user\">Profile</ae-dropdown-item>\n * <ae-dropdown-item value=\"logout\" danger>Sign out</ae-dropdown-item>\n * </ae-dropdown>\n * </ae-navbar>\n * ```\n */\nclass Dropdown extends AeicoComponent {\n static tagName = 'dropdown';\n\n protected static styles = [variables, style];\n\n /**\n * Position of the panel relative to the trigger.\n * Defaults to `'bottom-start'` (left-aligned, below trigger).\n */\n @prop({ type: String })\n accessor placement: DropdownPlacement = 'bottom-start';\n\n /**\n * Whether the dropdown panel is visible. Reflects as the `open` attribute.\n * Can be used for controlled open/close state.\n */\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n /**\n * When `true` (default), clicking a menu item automatically closes the panel.\n */\n @prop({ type: Boolean })\n accessor closeOnSelect: boolean = true;\n\n /** Disables the trigger and prevents opening. */\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n /**\n * Optional label text. When set, `ae-dropdown` renders its own trigger button\n * in the shadow DOM (no `slot=\"trigger\"` needed). Inherits `--ae-navbar-link-*`\n * CSS variables so it automatically matches navbar link styles.\n */\n @prop({ type: String })\n accessor label: string = '';\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.listen('_item-select', this._handleItemSelect as EventListener);\n this.listen('keydown', this._handleKeydown as EventListener);\n\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n const path = e.composedPath();\n if (!path.includes(this)) {\n this._closePanel();\n }\n };\n document.addEventListener('click', this._outsideClickHandler);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._outsideClickHandler) {\n document.removeEventListener('click', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n }\n\n /** Opens the dropdown panel. */\n show(): void {\n if (this.disabled || this.open) return;\n this.open = true;\n this.emit('open');\n }\n\n /** Closes the dropdown panel. */\n hide(): void {\n if (!this.open) return;\n this.open = false;\n this.emit('close');\n }\n\n /** Toggles the dropdown panel open/closed. */\n toggle(): void {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private _closePanel(): void {\n if (this.open) this.hide();\n }\n\n // Called via declarative @click on the trigger-wrapper div inside the shadow DOM.\n // Events from slotted trigger content bubble through the shadow DOM slot path,\n // so this fires for trigger clicks only \u2014 not for panel item clicks.\n private _handleTriggerClick = (): void => {\n this.toggle();\n };\n\n private _handleItemSelect = (e: CustomEvent): void => {\n this.emit('select', { detail: e.detail });\n if (this.closeOnSelect) {\n this._closePanel();\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this._closePanel();\n }\n };\n\n protected render() {\n const placementClass = `placement-${this.placement}`;\n const hasLabel = !!this.label;\n const dir = this.placement.split('-')[0];\n return html(({ div, slot, button, span }) => {\n div(\n {\n className: 'trigger-wrapper',\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(this.open),\n '@click': this.disabled ? undefined : this._handleTriggerClick,\n },\n () => {\n if (hasLabel) {\n button(\n {\n className: 'trigger-label',\n type: 'button',\n disabled: this.disabled || undefined,\n },\n () => {\n span({ text: this.label });\n span({\n className: `ae-dropdown-arrow ae-dropdown-arrow--${dir}`,\n 'aria-hidden': 'true',\n });\n },\n );\n } else {\n slot({ name: 'trigger' });\n }\n },\n );\n div(\n {\n part: 'panel',\n className: { panel: true, open: this.open, [placementClass]: true },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nDropdown.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown': Dropdown;\n }\n}\n\nexport default Dropdown;\nexport type DropdownProps = InferProps<typeof Dropdown>;\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport style from '../styles/components/dropdown-item.css';\nimport variables from '../styles/variables.css';\nimport { prop } from 'aeico';\n// Ensure ae-icon is registered when icons are used\nimport '../icon/icon';\n\n/**\n * Dropdown menu item \u2014 used as a direct child of `<ae-dropdown>`.\n *\n * Renders as a `<button>` by default, or as an `<a>` anchor when `href` is set.\n * Use `<ae-icon>` inside to add icons, and CSS `color` / `--dropdown-item-color`\n * to apply danger or custom colours.\n *\n * @example\n * ```html\n * <ae-dropdown-item value=\"edit\"><ae-icon name=\"edit\"></ae-icon>Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\" style=\"--dropdown-item-color:var(--color-danger)\">Delete</ae-dropdown-item>\n * <ae-dropdown-item href=\"/profile\">Profile</ae-dropdown-item>\n * ```\n */\nclass DropdownItem extends AeicoComponent {\n static tagName = 'dropdown-item';\n\n /** Value emitted in the `select` event detail on the parent dropdown. */\n @prop({ type: String })\n accessor value: string | undefined;\n\n /** Disables the item \u2014 it becomes non-interactive and visually dimmed. */\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n /**\n * When set, the item renders as an `<a>` anchor element instead of a\n * `<button>`. Useful for navigation items.\n */\n @prop({ type: String })\n accessor href: string | undefined;\n\n /**\n * When `type=\"checkbox\"`, the item behaves as a toggle: each click flips\n * `checked` and includes the new state in the `select` event detail.\n */\n @prop({ type: String })\n accessor type: 'checkbox' | undefined;\n\n /**\n * Whether the item is checked. Only meaningful when `type=\"checkbox\"`.\n * Reflects as the `checked` attribute.\n */\n @prop({ type: Boolean })\n accessor checked: boolean = false;\n\n /**\n * Marks the item as the currently active/selected option (e.g. current route,\n * current sort order). Purely visual \u2014 applies a highlighted background and\n * accent colour.\n */\n @prop({ type: Boolean })\n accessor active: boolean = false;\n\n protected static styles = [variables, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('click', this._handleClick);\n this.setAttribute('role', 'menuitem');\n }\n\n private _handleClick = (e: Event): void => {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n if (this.type === 'checkbox') {\n this.checked = !this.checked;\n }\n const label = this.textContent?.trim() ?? '';\n this.dispatchEvent(\n new CustomEvent('_item-select', {\n bubbles: true,\n composed: true,\n detail: { value: this.value ?? '', label, checked: this.checked },\n }),\n );\n };\n\n protected render() {\n const isCheckbox = this.type === 'checkbox';\n const sharedProps = {\n part: 'item',\n className: 'item',\n 'aria-checked': isCheckbox ? String(this.checked) : undefined,\n };\n return html(({ button, a, span, slot }) => {\n const children = () => {\n if (isCheckbox) span({ className: 'check-indicator', 'aria-hidden': 'true' });\n slot();\n };\n if (this.href) {\n a(\n {\n ...sharedProps,\n href: this.disabled ? undefined : this.href,\n 'aria-disabled': this.disabled || undefined,\n },\n children,\n );\n } else {\n button(\n {\n ...sharedProps,\n type: 'button',\n disabled: this.disabled,\n },\n children,\n );\n }\n });\n }\n}\n\nDropdownItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown-item': DropdownItem;\n }\n}\n\nexport default DropdownItem;\nexport type DropdownItemProps = InferProps<typeof DropdownItem>;\n", "\uFEFFimport type { InferProps, Props } from 'aeico';\nimport { SVG_NS } from '../utils';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/icon.css';\nimport type { IconSize, IconColor } from './defines';\nimport { defaultViewBox } from './defines';\nimport IconRegistry from './registry';\nimport './built-in-icons';\n\nclass Icon extends AeicoComponent {\n static tagName = 'icon';\n\n static props: Props = {\n name: { type: String },\n size: { type: String },\n color: { type: String },\n stroke: { type: Boolean },\n strokeWidth: { type: Number },\n };\n\n declare name?: string;\n declare size?: IconSize;\n declare color?: IconColor;\n declare stroke?: boolean;\n declare strokeWidth?: number;\n\n protected static styles = [styleVariables, sizeCSS, colorCSS, style];\n\n protected render() {\n const def = this.name ? IconRegistry.get(this.name) : undefined;\n\n // Numeric size: set font-size directly (string sizes are handled by size.css)\n const numericSize = Number(this.size);\n if (this.size !== undefined && !isNaN(numericSize) && numericSize > 0) {\n this.style.setProperty('font-size', `${numericSize}px`);\n } else {\n this.style.removeProperty('font-size');\n }\n\n if (!def) return;\n\n const { paths } = def;\n const isMultiPath = Array.isArray(paths);\n\n // Stroke CSS variables only apply in single-path mode (component props)\n if (!isMultiPath) {\n const useStroke =\n this.stroke ?? (this.strokeWidth !== undefined ? true : (def.stroke ?? false));\n const useStrokeWidth = this.strokeWidth ?? def.strokeWidth ?? 2;\n\n if (useStroke) {\n this.style.setProperty('--icon-fill', 'none');\n this.style.setProperty('--icon-stroke', 'currentColor');\n this.style.setProperty('--icon-stroke-width', String(useStrokeWidth));\n } else {\n this.style.removeProperty('--icon-fill');\n this.style.removeProperty('--icon-stroke');\n this.style.removeProperty('--icon-stroke-width');\n }\n } else {\n this.style.removeProperty('--icon-fill');\n this.style.removeProperty('--icon-stroke');\n this.style.removeProperty('--icon-stroke-width');\n }\n\n return html(({ svg, path }) => {\n svg(\n {\n className: 'icon-svg',\n viewBox: def.viewBox ?? defaultViewBox,\n 'aria-hidden': 'true',\n xmlns: SVG_NS,\n },\n () => {\n if (typeof paths === 'string') {\n path({ d: paths });\n } else {\n for (const p of paths) {\n const attrs: Record<string, unknown> = { d: p.d };\n if (p.fill) attrs.style = { fill: p.fill };\n path(attrs);\n }\n }\n },\n );\n });\n }\n}\n\nIcon.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-icon': Icon;\n }\n}\n\nexport default Icon;\nexport type IconProps = InferProps<typeof Icon>;\n", "export type IconSize = '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;\n\nexport type IconColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'info';\n\nexport interface IconPathDef {\n d: string;\n fill?: string;\n stroke?: boolean;\n strokeWidth?: number;\n}\n\nexport interface IconDefinition {\n paths: string | IconPathDef[];\n viewBox?: string;\n stroke?: boolean;\n strokeWidth?: number;\n}\n\nexport const defaultViewBox = '0 0 24 24';\n\nexport type IconRegistryData = Record<string, string | IconDefinition>;\n", "import { IconDefinition, IconRegistryData, defaultViewBox } from './defines';\n\nclass IconRegistry {\n private static _icons: Map<string, IconDefinition> = new Map();\n /** Names registered via addBuiltIn \u2014 can be overridden by user add() calls */\n private static _builtInKeys: Set<string> = new Set();\n\n /** Register user icons. Always takes priority over built-in icons. */\n static add(icons: IconRegistryData) {\n for (const [name, data] of Object.entries(icons)) {\n if (typeof data === 'string') {\n this._icons.set(name, { paths: data, viewBox: defaultViewBox });\n } else {\n this._icons.set(name, data);\n }\n // Mark as user-defined (removes built-in status)\n this._builtInKeys.delete(name);\n }\n }\n\n /**\n * Register built-in icons provided by the library.\n * A built-in icon will NOT overwrite an icon already registered by the user.\n */\n static addBuiltIn(icons: IconRegistryData) {\n for (const [name, data] of Object.entries(icons)) {\n // Skip if the user has already registered this icon\n if (this._icons.has(name) && !this._builtInKeys.has(name)) continue;\n if (typeof data === 'string') {\n this._icons.set(name, { paths: data, viewBox: defaultViewBox });\n } else {\n this._icons.set(name, data);\n }\n this._builtInKeys.add(name);\n }\n }\n\n static get(name: string): IconDefinition | undefined {\n return this._icons.get(name);\n }\n\n static has(name: string): boolean {\n return this._icons.has(name);\n }\n}\n\nexport default IconRegistry;\n", "/**\n * Built-in system icons used internally by aeico components.\n * These are pre-registered so components work out of the box.\n * Users can override any of them by calling IconRegistry.add({ 'name': '...' }).\n *\n * All paths use the Material Design 24\u00D724 viewBox.\n */\nimport IconRegistry from './registry';\n\nIconRegistry.addBuiltIn({\n copy: 'M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z',\n check: 'M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z',\n 'chevron-left': 'M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z',\n 'chevron-right': 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z',\n 'chevron-up': 'M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z',\n 'chevron-down': 'M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z',\n 'chevrons-left': 'M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z',\n 'chevrons-right': 'M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z',\n close:\n 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z',\n});\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { ButtonColor, ButtonSize, ButtonVariant } from '../button/defines';\nimport type { DropdownPlacement } from './defines';\nimport type Dropdown from './dropdown';\nimport './dropdown';\nimport '../button/button';\n\n/**\n * DropdownButton \u2014 a pre-composed trigger + dropdown panel.\n *\n * Renders an `ae-button`-styled trigger with a built-in chevron,\n * and a floating panel for `<ae-dropdown-item>` children.\n * Accepts the same `variant`, `color`, `size`, and `disabled` props\n * as `ae-button`, making it a drop-in inside `ae-button-group`.\n *\n * @example\n * ```html\n * <ae-dropdown-button variant=\"outlined\" color=\"primary\">\n * Actions\n * <ae-dropdown-item value=\"edit\">Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\">Delete</ae-dropdown-item>\n * </ae-dropdown-button>\n *\n * <!-- Inside ae-button-group -->\n * <ae-button-group compact color=\"primary\">\n * <ae-button>Save</ae-button>\n * <ae-dropdown-button placement=\"bottom-end\">\n * <ae-dropdown-item value=\"draft\">Save as draft</ae-dropdown-item>\n * <ae-dropdown-item value=\"template\">Save as template</ae-dropdown-item>\n * </ae-dropdown-button>\n * </ae-button-group>\n * ```\n *\n * Emits:\n * - `open` \u2014 when the panel opens\n * - `close` \u2014 when the panel closes\n * - `select` \u2014 `{ detail: { value, label } }` when a menu item is selected\n */\nclass DropdownButton extends AeicoComponent {\n static tagName = 'dropdown-button';\n\n // ae-button and ae-dropdown each carry their own shadow DOM styles.\n // Only the host display is set here so button-group compact layout works.\n protected static styles = [\n ':host { display: inline-block; }',\n '.caret { display: inline-block; width: 0; height: 0; margin-left: 0.3em; vertical-align: 0.2em; flex-shrink: 0; }',\n '.caret--bottom { border-top: 0.35em solid; border-right: 0.35em solid transparent; border-left: 0.35em solid transparent; }',\n '.caret--top { border-bottom: 0.35em solid; border-right: 0.35em solid transparent; border-left: 0.35em solid transparent; }',\n '.caret--right { border-left: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }',\n '.caret--left { border-right: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }',\n ];\n\n @prop({ type: String })\n accessor variant: ButtonVariant = 'filled';\n\n @prop({ type: String })\n accessor color: ButtonColor = 'default';\n\n @prop({ type: String })\n accessor size: ButtonSize = 'md';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor placement: DropdownPlacement = 'bottom-start';\n\n @prop({ type: Boolean })\n accessor closeOnSelect: boolean = true;\n\n private _dropdownEl: Dropdown | null = null;\n\n show(): void {\n if (this.disabled) return;\n this._dropdownEl?.show();\n }\n hide(): void {\n this._dropdownEl?.hide();\n }\n toggle(): void {\n if (this.disabled) return;\n this._dropdownEl?.toggle();\n }\n\n get open(): boolean {\n return this._dropdownEl?.open ?? false;\n }\n\n protected render() {\n const dir = this.placement.split('-')[0];\n return html(({ aeDropdown, aeButton, slot, span }) => {\n this._dropdownEl = aeDropdown(\n {\n placement: this.placement,\n 'close-on-select': this.closeOnSelect,\n },\n () => {\n aeButton(\n {\n slot: 'trigger',\n variant: this.variant,\n color: this.color,\n size: this.size,\n disabled: this.disabled || undefined,\n },\n () => {\n slot({ name: 'label' });\n span({ className: `caret caret--${dir}`, 'aria-hidden': 'true' });\n },\n );\n slot();\n },\n );\n });\n }\n}\n\nDropdownButton.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown-button': DropdownButton;\n }\n}\n\nexport default DropdownButton;\nexport type DropdownButtonProps = InferProps<typeof DropdownButton>;\n", "\uFEFFimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport buttonStyle from '../styles/components/button.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { ButtonColor, ButtonSize, ButtonVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Button Component\n *\n * A customizable button component with multiple variants and sizes.\n * Supports theme and internationalization through mixins.\n *\n * @example\n * ```typescript\n * // Using the static create method\n * const button = Button.create({\n * variant: 'primary',\n * size: 'md'\n * })\n * ```\n *\n * @example\n * ```html\n * <!-- Using as Web Component -->\n * <ae-button variant=\"primary\" size=\"md\">Save</ae-button>\n * <ae-button variant=\"danger\" size=\"sm\">Delete</ae-button>\n * <ae-button variant=\"subtle\">Cancel</ae-button>\n * ```\n */\nclass Button extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, buttonStyle];\n\n @prop({ type: String })\n color?: ButtonColor;\n\n @prop({ type: String })\n variant?: ButtonVariant;\n\n @prop({ type: String })\n size?: ButtonSize;\n\n @prop({ type: Boolean })\n disabled?: boolean;\n\n @prop({ type: String })\n type?: 'button' | 'submit' | 'reset';\n\n @prop({ type: Boolean })\n active?: boolean;\n\n @prop({ type: Boolean })\n block?: boolean;\n\n private _buttonElement: HTMLButtonElement | null = null;\n private _slotElement: HTMLSlotElement | null = null;\n private _autoAriaLabel = false;\n\n protected onMounted() {\n this._handleSlotChange();\n }\n\n private _handleSlotChange = () => {\n const nodes = this._slotElement?.assignedNodes() ?? [];\n // Icon-only: exactly one element (ae-icon) and no meaningful text nodes\n const elements = nodes.filter((n): n is Element => n.nodeType === Node.ELEMENT_NODE);\n const hasText = nodes.some(\n (n) => n.nodeType === Node.TEXT_NODE && n.textContent!.trim() !== '',\n );\n const isIconOnly =\n !hasText && elements.length === 1 && elements[0].tagName.toLowerCase() === 'ae-icon';\n\n if (isIconOnly) {\n this.setAttribute('icon-only', '');\n if (!this.hasAttribute('aria-label') || this._autoAriaLabel) {\n this.setAttribute('aria-label', elements[0].getAttribute('name') ?? '');\n this._autoAriaLabel = true;\n }\n } else {\n this.removeAttribute('icon-only');\n if (this._autoAriaLabel) {\n this.removeAttribute('aria-label');\n this._autoAriaLabel = false;\n }\n }\n };\n\n protected render() {\n return html(({ button, slot }) => {\n this._buttonElement = button(\n {\n type: this.type || 'button',\n disabled: this.disabled,\n part: 'button',\n 'aria-pressed': this.active,\n 'aria-disabled': this.disabled,\n },\n () => {\n this._slotElement = slot({ '@slotchange': this._handleSlotChange });\n },\n );\n });\n }\n\n /**\n * Programmatically click the button\n */\n click() {\n if (!this.disabled && this._buttonElement) {\n this._buttonElement.click();\n }\n }\n\n /**\n * Focus the button\n */\n focus() {\n if (this._buttonElement) {\n this._buttonElement.focus();\n }\n }\n\n /**\n * Blur the button\n */\n blur() {\n if (this._buttonElement) {\n this._buttonElement.blur();\n }\n }\n}\n\nButton.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-button': Button;\n }\n}\n\nexport default Button;\nexport type ButtonProps = InferProps<typeof Button>;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,sGAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA,4FAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAjB;AAAA,2GAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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",
3
+ "sources": ["css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dropdown.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dropdown-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/icon.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button.css", "../src/dropdown/index.ts", "../src/aeico-component.ts", "../src/dropdown/dropdown.ts", "../src/dropdown/dropdown-item.ts", "../src/utils.ts", "../src/icon/icon.ts", "../src/icon/defines.ts", "../src/icon/registry.ts", "../src/icon/built-in-icons.ts", "../src/dropdown/dropdown-button.ts", "../src/button/button.ts"],
4
+ "sourcesContent": ["module.exports = \":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\"", "module.exports = \":root,\\n:host {\\n --ae-font-sans-serif: system-ui, -apple-system, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\",\\n \\\"Noto Sans\\\", \\\"Liberation Sans\\\", Arial, sans-serif,\\n \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n --ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas,\\n \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;\\n font-family: var(--ae-font-sans-serif);\\n --ae-blue: #0e639c;\\n --ae-green: #28a745;\\n --ae-red: #dc3545;\\n --ae-yellow: #ffc107;\\n --ae-cyan: #17a2b8;\\n --ae-gray: #6e6e6e;\\n --ae-slate: #64748b;\\n --ae-dark: #343a40;\\n --ae-light: #f8f9fa;\\n}\\n\\n:root,\\n:host {\\n /* Blue */\\n --ae-blue-100: color-mix(in srgb, var(--ae-blue) 20%, white);\\n --ae-blue-200: color-mix(in srgb, var(--ae-blue) 40%, white);\\n --ae-blue-300: color-mix(in srgb, var(--ae-blue) 60%, white);\\n --ae-blue-400: color-mix(in srgb, var(--ae-blue) 80%, white);\\n --ae-blue-500: var(--ae-blue);\\n --ae-blue-600: color-mix(in srgb, var(--ae-blue) 80%, black);\\n --ae-blue-700: color-mix(in srgb, var(--ae-blue) 60%, black);\\n --ae-blue-800: color-mix(in srgb, var(--ae-blue) 40%, black);\\n --ae-blue-900: color-mix(in srgb, var(--ae-blue) 20%, black);\\n\\n /* Green */\\n --ae-green-100: color-mix(in srgb, var(--ae-green) 20%, white);\\n --ae-green-200: color-mix(in srgb, var(--ae-green) 40%, white);\\n --ae-green-300: color-mix(in srgb, var(--ae-green) 60%, white);\\n --ae-green-400: color-mix(in srgb, var(--ae-green) 80%, white);\\n --ae-green-500: var(--ae-green);\\n --ae-green-600: color-mix(in srgb, var(--ae-green) 80%, black);\\n --ae-green-700: color-mix(in srgb, var(--ae-green) 60%, black);\\n --ae-green-800: color-mix(in srgb, var(--ae-green) 40%, black);\\n --ae-green-900: color-mix(in srgb, var(--ae-green) 20%, black);\\n\\n /* Red */\\n --ae-red-100: color-mix(in srgb, var(--ae-red) 20%, white);\\n --ae-red-200: color-mix(in srgb, var(--ae-red) 40%, white);\\n --ae-red-300: color-mix(in srgb, var(--ae-red) 60%, white);\\n --ae-red-400: color-mix(in srgb, var(--ae-red) 80%, white);\\n --ae-red-500: var(--ae-red);\\n --ae-red-600: color-mix(in srgb, var(--ae-red) 80%, black);\\n --ae-red-700: color-mix(in srgb, var(--ae-red) 60%, black);\\n --ae-red-800: color-mix(in srgb, var(--ae-red) 40%, black);\\n --ae-red-900: color-mix(in srgb, var(--ae-red) 20%, black);\\n\\n /* Yellow */\\n --ae-yellow-100: color-mix(in srgb, var(--ae-yellow) 20%, white);\\n --ae-yellow-200: color-mix(in srgb, var(--ae-yellow) 40%, white);\\n --ae-yellow-300: color-mix(in srgb, var(--ae-yellow) 60%, white);\\n --ae-yellow-400: color-mix(in srgb, var(--ae-yellow) 80%, white);\\n --ae-yellow-500: var(--ae-yellow);\\n --ae-yellow-600: color-mix(in srgb, var(--ae-yellow) 80%, black);\\n --ae-yellow-700: color-mix(in srgb, var(--ae-yellow) 60%, black);\\n --ae-yellow-800: color-mix(in srgb, var(--ae-yellow) 40%, black);\\n --ae-yellow-900: color-mix(in srgb, var(--ae-yellow) 20%, black);\\n\\n /* Cyan */\\n --ae-cyan-100: color-mix(in srgb, var(--ae-cyan) 20%, white);\\n --ae-cyan-200: color-mix(in srgb, var(--ae-cyan) 40%, white);\\n --ae-cyan-300: color-mix(in srgb, var(--ae-cyan) 60%, white);\\n --ae-cyan-400: color-mix(in srgb, var(--ae-cyan) 80%, white);\\n --ae-cyan-500: var(--ae-cyan);\\n --ae-cyan-600: color-mix(in srgb, var(--ae-cyan) 80%, black);\\n --ae-cyan-700: color-mix(in srgb, var(--ae-cyan) 60%, black);\\n --ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);\\n --ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);\\n\\n /* Gray (neutral - base #6e6e6e) */\\n --ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);\\n --ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);\\n --ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);\\n --ae-gray-400: color-mix(in srgb, var(--ae-gray) 80%, white);\\n --ae-gray-500: var(--ae-gray);\\n --ae-gray-600: color-mix(in srgb, var(--ae-gray) 80%, black);\\n --ae-gray-700: color-mix(in srgb, var(--ae-gray) 60%, black);\\n --ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);\\n --ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);\\n\\n /* Slate (blue-gray - base #64748b, used for 'secondary') */\\n --ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);\\n --ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);\\n --ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);\\n --ae-slate-400: color-mix(in srgb, var(--ae-slate) 80%, white);\\n --ae-slate-500: var(--ae-slate);\\n --ae-slate-600: color-mix(in srgb, var(--ae-slate) 80%, black);\\n --ae-slate-700: color-mix(in srgb, var(--ae-slate) 60%, black);\\n --ae-slate-800: color-mix(in srgb, var(--ae-slate) 40%, black);\\n --ae-slate-900: color-mix(in srgb, var(--ae-slate) 20%, black);\\n\\n /* Dark (base #343a40) */\\n --ae-dark-100: color-mix(in srgb, var(--ae-dark) 20%, white);\\n --ae-dark-200: color-mix(in srgb, var(--ae-dark) 40%, white);\\n --ae-dark-300: color-mix(in srgb, var(--ae-dark) 60%, white);\\n --ae-dark-400: color-mix(in srgb, var(--ae-dark) 80%, white);\\n --ae-dark-500: var(--ae-dark);\\n --ae-dark-600: color-mix(in srgb, var(--ae-dark) 80%, black);\\n --ae-dark-700: color-mix(in srgb, var(--ae-dark) 60%, black);\\n --ae-dark-800: color-mix(in srgb, var(--ae-dark) 40%, black);\\n --ae-dark-900: color-mix(in srgb, var(--ae-dark) 20%, black);\\n\\n /* Light (base #f8f9fa) */\\n --ae-light-100: color-mix(in srgb, var(--ae-light) 20%, white);\\n --ae-light-200: color-mix(in srgb, var(--ae-light) 40%, white);\\n --ae-light-300: color-mix(in srgb, var(--ae-light) 60%, white);\\n --ae-light-400: color-mix(in srgb, var(--ae-light) 80%, white);\\n --ae-light-500: var(--ae-light);\\n --ae-light-600: color-mix(in srgb, var(--ae-light) 80%, black);\\n --ae-light-700: color-mix(in srgb, var(--ae-light) 60%, black);\\n --ae-light-800: color-mix(in srgb, var(--ae-light) 40%, black);\\n --ae-light-900: color-mix(in srgb, var(--ae-light) 20%, black);\\n}\\n\\n:root,\\n:host {\\n /* Hover / active mix (light default - overridden in \u00A7 6 dark) */\\n --ae-color-mix-hover: black 10%;\\n --ae-color-mix-active: black 20%;\\n\\n /* Primary (Blue) */\\n --ae-color-primary: var(--ae-blue-500);\\n --ae-color-primary-hover: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-hover));\\n --ae-color-primary-active: color-mix(in srgb, var(--ae-color-primary), var(--ae-color-mix-active));\\n --ae-color-primary-disabled: color-mix(in srgb, var(--ae-blue) 50%, var(--ae-gray-500));\\n\\n /* Success (Green) */\\n --ae-color-success: var(--ae-green-500);\\n --ae-color-success-hover: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-hover));\\n --ae-color-success-active: color-mix(in srgb, var(--ae-color-success), var(--ae-color-mix-active));\\n --ae-color-success-disabled: color-mix(in srgb, var(--ae-green) 50%, var(--ae-gray-500));\\n\\n /* Danger (Red) */\\n --ae-color-danger: var(--ae-red-500);\\n --ae-color-danger-hover: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-hover));\\n --ae-color-danger-active: color-mix(in srgb, var(--ae-color-danger), var(--ae-color-mix-active));\\n --ae-color-danger-disabled: color-mix(in srgb, var(--ae-red) 50%, var(--ae-gray-500));\\n\\n /* Warning (Yellow) */\\n --ae-color-warning: var(--ae-yellow-500);\\n --ae-color-warning-hover: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-hover));\\n --ae-color-warning-active: color-mix(in srgb, var(--ae-color-warning), var(--ae-color-mix-active));\\n --ae-color-warning-disabled: color-mix(in srgb, var(--ae-yellow) 50%, var(--ae-gray-500));\\n\\n /* Info (Cyan) */\\n --ae-color-info: var(--ae-cyan-500);\\n --ae-color-info-hover: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-hover));\\n --ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));\\n --ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));\\n\\n /* Secondary (Slate) - base differs per theme, overridden in \u00A7 6 dark */\\n --ae-color-secondary: var(--ae-slate-500);\\n --ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));\\n --ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));\\n --ae-color-secondary-text: var(--ae-slate-700);\\n}\\n\\n\\n.theme-light,\\n:root[theme=\\\"light\\\"],\\n:host([theme=\\\"light\\\"]),\\n:host-context([theme=\\\"light\\\"]),\\n:where(:root),\\n:host {\\n color-scheme: light;\\n\\n /* Gray UI aliases - lighter palette steps for elements on white background */\\n --ae-color-gray-dark: var(--ae-gray-400);\\n --ae-color-gray: var(--ae-gray-300);\\n --ae-color-gray-light: var(--ae-gray-200);\\n --ae-color-gray-lighter: var(--ae-gray-100);\\n --ae-color-gray-lightest: color-mix(in srgb, var(--ae-gray) 10%, white);\\n\\n /* Text */\\n --ae-color-text-main: var(--ae-dark-700);\\n --ae-color-text-muted: var(--ae-gray-600);\\n --ae-color-text-disabled: var(--ae-gray-300);\\n --ae-color-text-link: var(--ae-blue-500);\\n --ae-color-text-link-hover: var(--ae-blue-700);\\n\\n /* Surfaces */\\n --ae-surface-sunken: var(--ae-light-500);\\n --ae-surface-base: white;\\n --ae-surface-raised: var(--ae-light-500);\\n --ae-surface-overlay: white;\\n --ae-color-overlay: rgba(0, 0, 0, 0.4);\\n\\n /* Borders */\\n --ae-border-subtle: rgba(0, 0, 0, 0.08);\\n --ae-border-default: rgba(0, 0, 0, 0.15);\\n --ae-border-hover: rgba(0, 0, 0, 0.25);\\n --ae-border-focus: var(--ae-color-primary);\\n --ae-border-disabled: rgba(0, 0, 0, 0.06);\\n\\n /* Focus ring */\\n --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);\\n --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);\\n\\n /* Subtle intent tokens - light context */\\n --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);\\n --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);\\n --ae-color-primary-text-emphasis: var(--ae-blue-700);\\n\\n --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.08);\\n --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.40);\\n --ae-color-success-text-emphasis: var(--ae-green-700);\\n\\n --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.08);\\n --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.40);\\n --ae-color-danger-text-emphasis: var(--ae-red-700);\\n\\n --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.08);\\n --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.40);\\n --ae-color-warning-text-emphasis: var(--ae-yellow-700);\\n\\n --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.08);\\n --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.40);\\n --ae-color-info-text-emphasis: var(--ae-cyan-700);\\n\\n --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.08);\\n --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.40);\\n --ae-color-secondary-text-emphasis: var(--ae-slate-700);\\n\\n --ae-color-light-bg-subtle: var(--ae-gray-100); /* opaque on white: ~#e2e2e2 */\\n --ae-color-light-border-subtle: var(--ae-gray-200); /* opaque on white: ~#c4c4c4 */\\n\\n --ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */\\n --ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */\\n\\n /* Component tokens - light defaults */\\n --ae-action-btn-bg: var(--ae-gray-200);\\n --ae-action-btn-bg-hover: var(--ae-color-primary);\\n --ae-action-btn-color: var(--ae-gray-600);\\n --ae-action-btn-color-hover: white;\\n\\n --ae-clear-btn-bg-hover: var(--ae-color-danger);\\n --ae-clear-btn-color-hover: white;\\n\\n --ae-reset-btn-border-radius: var(--ae-radius-xs);\\n --ae-reset-btn-bg: var(--ae-action-btn-bg);\\n --ae-reset-btn-bg-hover: var(--ae-action-btn-bg-hover);\\n --ae-reset-btn-color: var(--ae-action-btn-color);\\n --ae-reset-btn-color-hover: var(--ae-action-btn-color-hover);\\n --ae-reset-btn-transition: all 0.12s;\\n\\n --ae-clear-btn-border-radius: var(--ae-radius-xs);\\n --ae-clear-btn-bg: var(--ae-action-btn-bg);\\n --ae-clear-btn-color: var(--ae-action-btn-color);\\n --ae-clear-btn-transition: all 0.12s;\\n}\\n\\n:root,\\n:host {\\n --ae-size-scale: 1;\\n --ae-size-base: calc(1rem * var(--ae-size-scale)); /* 16px */\\n --ae-size-xl: round(calc(var(--ae-size-l) * 1.125), 1px); /* 23px */\\n --ae-size-l: round(calc(var(--ae-size-m) * 1.125 * 1.125), 1px); /* 20px */\\n --ae-size-m: var(--ae-size-base); /* 16px */\\n --ae-size-s: round(calc(var(--ae-size-m) / 1.125), 1px); /* 14px */\\n --ae-size-xs: round(calc(var(--ae-size-s) / 1.125), 1px); /* 12px */\\n --ae-size-2xs: round(calc(var(--ae-size-xs) / 1.125), 1px); /* 11px */\\n --ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */\\n}\\n\\n/* Border-radius tokens - shared across all components */\\n:root,\\n:host {\\n /**\\n * Unified border-radius hook for all components.\\n *\\n *\\n * Usage:\\n * :root { --ae-border-radius: 0; } // global: all components square\\n * :root { --ae-border-radius: 999px; } // global: all components pill\\n * ae-button { --ae-border-radius: 50%; } // scoped: only buttons circular\\n * .sidebar { --ae-border-radius: 8px; } // scoped: everything inside .sidebar\\n *\\n * To restore a component to its own default:\\n * ae-card { --ae-border-radius: initial; }\\n */\\n\\n --ae-radius-square: 0;\\n --ae-radius-xs: 2px;\\n --ae-radius-sm: 4px;\\n --ae-radius-md: 6px;\\n --ae-radius-lg: 8px;\\n --ae-radius-xl: 12px;\\n --ae-radius-pill: 999px;\\n --ae-radius-circle: 50%;\\n}\\n\\n/* Layout tokens - defined on :root so all light DOM elements can use them */\\n:root,\\n:host {\\n --container-max-width: 1280px;\\n --container-padding-x: 1.5rem;\\n}\\n\\n.theme-dark,\\n:root[theme=\\\"dark\\\"],\\n:host([theme=\\\"dark\\\"]),\\n:host-context([theme=\\\"dark\\\"]) {\\n color-scheme: dark;\\n\\n /* Hover / active - slightly gentler on dark backgrounds */\\n --ae-color-mix-hover: black 8%;\\n --ae-color-mix-active: black 16%;\\n\\n /* Gray UI aliases - darker palette steps for elements on dark background */\\n --ae-color-gray-dark: var(--ae-gray-800);\\n --ae-color-gray: var(--ae-gray-700);\\n --ae-color-gray-light: var(--ae-gray-600);\\n --ae-color-gray-lighter: var(--ae-gray-500);\\n --ae-color-gray-lightest: var(--ae-gray-400);\\n\\n /* Secondary - deeper base on dark background */\\n --ae-color-secondary: var(--ae-slate-700);\\n --ae-color-secondary-text: var(--ae-slate-300);\\n\\n /* Text */\\n --ae-color-text-main: white;\\n --ae-color-text-muted: var(--ae-gray-200);\\n --ae-color-text-disabled: var(--ae-gray-500);\\n --ae-color-text-link: var(--ae-blue-300);\\n --ae-color-text-link-hover: var(--ae-blue-200);\\n\\n /* Surfaces */\\n --ae-surface-sunken: var(--ae-gray-900);\\n --ae-surface-base: color-mix(in srgb, var(--ae-gray) 27%, black);\\n --ae-surface-raised: color-mix(in srgb, var(--ae-gray) 34%, black);\\n --ae-surface-overlay: color-mix(in srgb, var(--ae-gray) 38%, black);\\n --ae-color-overlay: rgba(0, 0, 0, 0.6);\\n\\n /* Borders */\\n --ae-border-subtle: rgba(255, 255, 255, 0.08);\\n --ae-border-default: rgba(255, 255, 255, 0.12);\\n --ae-border-hover: rgba(255, 255, 255, 0.20);\\n --ae-border-focus: var(--ae-color-primary);\\n --ae-border-disabled: rgba(255, 255, 255, 0.06);\\n\\n /* Focus ring */\\n --ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);\\n --ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);\\n\\n /* Subtle intent tokens - dark context (more alpha, lighter text-emphasis) */\\n --ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);\\n --ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);\\n --ae-color-primary-text-emphasis: var(--ae-blue-300);\\n\\n --ae-color-success-bg-subtle: rgb(from var(--ae-green) r g b / 0.10);\\n --ae-color-success-border-subtle: rgb(from var(--ae-green) r g b / 0.30);\\n --ae-color-success-text-emphasis: var(--ae-green-300);\\n\\n --ae-color-danger-bg-subtle: rgb(from var(--ae-red) r g b / 0.10);\\n --ae-color-danger-border-subtle: rgb(from var(--ae-red) r g b / 0.30);\\n --ae-color-danger-text-emphasis: var(--ae-red-300);\\n\\n --ae-color-warning-bg-subtle: rgb(from var(--ae-yellow) r g b / 0.10);\\n --ae-color-warning-border-subtle: rgb(from var(--ae-yellow) r g b / 0.30);\\n --ae-color-warning-text-emphasis: var(--ae-yellow-300);\\n\\n --ae-color-info-bg-subtle: rgb(from var(--ae-cyan) r g b / 0.10);\\n --ae-color-info-border-subtle: rgb(from var(--ae-cyan) r g b / 0.30);\\n --ae-color-info-text-emphasis: var(--ae-cyan-300);\\n\\n --ae-color-secondary-bg-subtle: rgb(from var(--ae-slate) r g b / 0.10);\\n --ae-color-secondary-border-subtle: rgb(from var(--ae-slate) r g b / 0.30);\\n --ae-color-secondary-text-emphasis: var(--ae-slate-300);\\n\\n --ae-color-light-bg-subtle: rgb(from var(--ae-light) r g b / 0.20);\\n --ae-color-light-border-subtle: rgb(from var(--ae-light) r g b / 0.25);\\n\\n --ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);\\n --ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);\\n\\n /* Component tokens - dark overrides */\\n --ae-action-btn-bg: var(--ae-color-gray);\\n --ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));\\n --ae-action-btn-color: var(--ae-gray-400);\\n --ae-action-btn-color-hover: var(--ae-cyan-300);\\n --ae-clear-btn-bg-hover: color-mix(in srgb, var(--ae-red) 25%, var(--ae-gray-800));\\n --ae-clear-btn-color-hover: var(--ae-red-300);\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --dropdown-item-padding: 0.5rem 0.875rem;\\n --dropdown-item-bg: transparent;\\n --dropdown-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.05));\\n --dropdown-item-bg-active: var(--ae-surface-raised-active, rgba(0, 0, 0, 0.1));\\n --dropdown-item-color: var(--ae-color-text-main, inherit);\\n --dropdown-item-color-disabled: var(--ae-color-text-disabled, rgba(0, 0, 0, 0.35));\\n --dropdown-item-font-size: 0.9375rem;\\n --dropdown-item-gap: 0.5rem;\\n --dropdown-item-transition: background 0.1s;\\n}\\n\\n.item {\\n display: flex;\\n align-items: center;\\n gap: var(--dropdown-item-gap);\\n width: 100%;\\n padding: var(--dropdown-item-padding);\\n font-size: var(--dropdown-item-font-size);\\n font-family: inherit;\\n color: var(--dropdown-item-color);\\n background: var(--dropdown-item-bg);\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n text-align: left;\\n text-decoration: none;\\n cursor: pointer;\\n user-select: none;\\n white-space: nowrap;\\n box-sizing: border-box;\\n transition: var(--dropdown-item-transition);\\n outline: none;\\n}\\n\\n.item:hover:not(:disabled):not([aria-disabled=\\\"true\\\"]) {\\n background: var(--dropdown-item-bg-hover);\\n}\\n\\n.item:active:not(:disabled):not([aria-disabled=\\\"true\\\"]) {\\n background: var(--dropdown-item-bg-active);\\n}\\n\\n.item:focus-visible {\\n background: var(--dropdown-item-bg-hover);\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: -2px;\\n}\\n\\n/* disabled */\\n:host([disabled]) .item,\\n.item:disabled {\\n color: var(--dropdown-item-color-disabled);\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n/* Active item - current selection, current route, etc. */\\n:host([active]) .item {\\n background: var(--dropdown-item-bg-selected, rgba(0, 0, 0, 0.06));\\n color: var(--dropdown-item-color-active, var(--ae-color-primary, #0e639c));\\n font-weight: 500;\\n}\\n\\n/* Checkbox mode - fixed-width indicator column */\\n.check-indicator {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 1em;\\n flex-shrink: 0;\\n}\\n\\n/* CSS-drawn checkmark (border trick) */\\n.check-indicator::after {\\n content: '';\\n display: block;\\n width: 0.3em;\\n height: 0.55em;\\n border-right: 0.125em solid currentColor;\\n border-bottom: 0.125em solid currentColor;\\n transform: rotate(45deg) translateY(-0.1em);\\n opacity: 0;\\n transition: opacity 0.1s;\\n}\\n\\n:host([checked]) .check-indicator::after {\\n opacity: 1;\\n}\\n\"", "module.exports = \":host([size=\\\"xs\\\"]) { font-size: var(--ae-size-xs); }\\n:host([size=\\\"sm\\\"]) { font-size: var(--ae-size-s); }\\n:host([size=\\\"md\\\"]) { font-size: var(--ae-size-m); }\\n:host([size=\\\"lg\\\"]) { font-size: var(--ae-size-l); }\\n:host([size=\\\"xl\\\"]) { font-size: var(--ae-size-xl); }\\n:host([size=\\\"3xs\\\"]) { font-size: var(--ae-size-3xs); }\\n:host([size=\\\"2xs\\\"]) { font-size: var(--ae-size-2xs); }\\n\"", "module.exports = \":host {\\n --ae-color-solid: var(--ae-color-gray);\\n --ae-color-solid-hover: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-hover));\\n --ae-color-solid-active: color-mix(in srgb, var(--ae-color-solid), var(--ae-color-mix-active));\\n --ae-color-on-solid: var(--ae-color-text-main);\\n --ae-color-border: var(--ae-color-gray);\\n --ae-color-border-hover: color-mix(in srgb, var(--ae-color-border), var(--ae-color-mix-hover));\\n --ae-color-accent: var(--ae-color-text-muted);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: var(--ae-border-subtle);\\n --ae-color-subtle-hover: var(--ae-border-default);\\n --ae-color-bg-subtle: var(--ae-border-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-muted);\\n --ae-color-border-subtle: var(--ae-border-default);\\n}\\n\\n:host([color=\\\"primary\\\"]) {\\n --ae-color-solid: var(--ae-color-primary);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-primary);\\n --ae-color-accent: var(--ae-color-text-link);\\n --ae-color-accent-hover: var(--ae-color-text-link-hover);\\n --ae-color-subtle: var(--ae-color-primary-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-blue) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-primary-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-primary-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-primary-border-subtle);\\n}\\n\\n:host([color=\\\"secondary\\\"]) {\\n --ae-color-solid: var(--ae-color-secondary);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-secondary-hover);\\n --ae-color-accent: var(--ae-color-secondary-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: rgb(from var(--ae-slate) r g b / 0.06);\\n --ae-color-subtle-hover: rgb(from var(--ae-slate) r g b / 0.12);\\n --ae-color-bg-subtle: var(--ae-color-secondary-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-secondary-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-secondary-border-subtle);\\n}\\n\\n:host([color=\\\"success\\\"]) {\\n --ae-color-solid: var(--ae-color-success);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-success);\\n --ae-color-accent: var(--ae-color-success-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-success-hover);\\n --ae-color-subtle: var(--ae-color-success-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-green) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-success-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-success-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-success-border-subtle);\\n}\\n\\n:host([color=\\\"danger\\\"]) {\\n --ae-color-solid: var(--ae-color-danger);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-danger);\\n --ae-color-accent: var(--ae-color-danger-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-danger-hover);\\n --ae-color-subtle: var(--ae-color-danger-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-red) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-danger-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-danger-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-danger-border-subtle);\\n}\\n\\n:host([color=\\\"warning\\\"]) {\\n --ae-color-solid: var(--ae-color-warning);\\n --ae-color-on-solid: var(--ae-gray-900);\\n --ae-color-border: var(--ae-color-warning);\\n --ae-color-accent: var(--ae-color-warning-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-warning-hover);\\n --ae-color-subtle: var(--ae-color-warning-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-yellow) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-warning-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-warning-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-warning-border-subtle);\\n}\\n\\n:host([color=\\\"info\\\"]) {\\n --ae-color-solid: var(--ae-color-info);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-color-info);\\n --ae-color-accent: var(--ae-color-info-text-emphasis);\\n --ae-color-accent-hover: var(--ae-color-info-hover);\\n --ae-color-subtle: var(--ae-color-info-bg-subtle);\\n --ae-color-subtle-hover: rgb(from var(--ae-cyan) r g b / 0.15);\\n --ae-color-bg-subtle: var(--ae-color-info-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-info-text-emphasis);\\n --ae-color-border-subtle: var(--ae-color-info-border-subtle);\\n}\\n\\n:host([color=\\\"light\\\"]) {\\n --ae-color-solid: var(--ae-light);\\n --ae-color-on-solid: var(--ae-gray-900);\\n --ae-color-border: var(--ae-border-hover);\\n --ae-color-subtle: var(--ae-color-light-bg-subtle);\\n --ae-color-subtle-hover: var(--ae-color-light-border-subtle);\\n --ae-color-bg-subtle: var(--ae-color-light-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-muted);\\n --ae-color-border-subtle: var(--ae-color-light-border-subtle);\\n}\\n\\n:host([color=\\\"dark\\\"]) {\\n --ae-color-solid: var(--ae-dark-500);\\n --ae-color-on-solid: white;\\n --ae-color-border: var(--ae-dark-500);\\n --ae-color-accent: var(--ae-color-text-main);\\n --ae-color-accent-hover: var(--ae-color-text-main);\\n --ae-color-subtle: var(--ae-color-dark-bg-subtle);\\n --ae-color-subtle-hover: var(--ae-color-dark-border-subtle);\\n --ae-color-bg-subtle: var(--ae-color-dark-bg-subtle);\\n --ae-color-text-subtle: var(--ae-color-text-main);\\n --ae-color-border-subtle: var(--ae-color-dark-border-subtle);\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 20px;\\n width: 1em;\\n height: 1em;\\n color: inherit;\\n flex-shrink: 0;\\n line-height: 0;\\n vertical-align: middle;\\n}\\n\\n:host([color]) {\\n color: var(--ae-color-solid);\\n}\\n\\n.icon-svg {\\n display: block;\\n width: 100%;\\n height: 100%;\\n fill: var(--icon-fill, currentColor);\\n stroke: var(--icon-stroke, none);\\n stroke-width: var(--icon-stroke-width, 2);\\n stroke-linecap: var(--icon-stroke-linecap, round);\\n stroke-linejoin: var(--icon-stroke-linejoin, round);\\n pointer-events: none;\\n overflow: visible;\\n}\\n\"", "module.exports = \":host {\\n display: inline-block;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: 6px;\\n font-family: inherit;\\n font-weight: 400;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n user-select: none;\\n cursor: pointer;\\n transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\\n outline: none;\\n position: relative;\\n padding: 0.429em 1.071em;\\n font-size: 1em;\\n line-height: 1.5;\\n border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-sm)) var(--_btn-r-tr, var(--ae-radius-sm)) var(--_btn-r-br, var(--ae-radius-sm)) var(--_btn-r-bl, var(--ae-radius-sm)));\\n min-width: 4.571em;\\n height: 2.286em;\\n width: 100%;\\n\\n background: var(--ae-color-solid);\\n border: 1px solid var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\nbutton:focus { outline: none; }\\nbutton:active { transform: translateY(1px); }\\n\\nbutton:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-on-solid-hover, var(--ae-color-on-solid));\\n}\\n\\nbutton:active:not(:disabled) { background: var(--ae-color-solid-active); }\\n\\nbutton:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([size=\\\"xs\\\"]) button { border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-xs)) var(--_btn-r-tr, var(--ae-radius-xs)) var(--_btn-r-br, var(--ae-radius-xs)) var(--_btn-r-bl, var(--ae-radius-xs))); }\\n:host([size=\\\"sm\\\"]) button { border-radius: var(--ae-border-radius, var(--_btn-r-tl, var(--ae-radius-xs)) var(--_btn-r-tr, var(--ae-radius-xs)) var(--_btn-r-br, var(--ae-radius-xs)) var(--_btn-r-bl, var(--ae-radius-xs))); }\\n\\n/* --- Variants --- */\\n\\n:host([variant=\\\"outlined\\\"]) button {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n min-width: auto;\\n padding-left: 4px;\\n padding-right: 4px;\\n}\\n\\n:host([variant=\\\"text\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button:active:not(:disabled) {\\n background: var(--ae-color-subtle-hover);\\n}\\n\\n:host([icon-only]) {\\n display: inline-flex;\\n}\\n\\n:host([icon-only]:not([size])) {\\n font-size: var(--ae-size-m);\\n}\\n\\n:host([icon-only]) button {\\n padding: 0;\\n min-width: auto;\\n width: 2.286em;\\n height: 2.286em;\\n line-height: 1;\\n}\\n\\n:host([icon-only]) ::slotted(ae-icon) {\\n font-size: 1.5em;\\n}\\n\\n:host([active]) button {\\n background: var(--ae-color-solid-active);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-on-solid-hover, var(--ae-color-on-solid));\\n}\\n\\n.btn-icon {\\n padding: 0;\\n min-width: auto;\\n width: 2.286em;\\n height: 2.286em;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--ae-radius-sm);\\n}\\n\\n.btn-icon.btn-lg {\\n width: 2.857em;\\n height: 2.857em;\\n}\\n\\n.btn-circle {\\n border-radius: var(--ae-radius-circle);\\n}\\n\\n:host([block]) {\\n display: block;\\n}\\n\\nbutton.btn-loading {\\n position: relative;\\n pointer-events: none;\\n color: transparent;\\n}\\n\\nbutton.btn-loading::before {\\n content: '';\\n position: absolute;\\n width: 1em;\\n height: 1em;\\n border: 2px solid currentColor;\\n border-top-color: transparent;\\n border-radius: var(--ae-radius-circle);\\n animation: btn-spin 0.6s linear infinite;\\n color: currentColor;\\n opacity: 0.8;\\n}\\n\\n@keyframes btn-spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n.btn-icon-left {\\n margin-right: -2px;\\n}\\n\\n.btn-icon-right {\\n margin-left: -2px;\\n}\\n\\n\"", "export { default } from './dropdown';\nexport { default as DropdownItem } from './dropdown-item';\nexport { default as DropdownButton } from './dropdown-button';\nexport type { DropdownProps } from './dropdown';\nexport type { DropdownItemProps } from './dropdown-item';\nexport type { DropdownButtonProps } from './dropdown-button';\nexport type { DropdownPlacement } from './defines';\n", "import { AeicoElement } from 'aeico';\n\nconst TAG_NAME_PREFIX = 'ae';\n\n/**\n * AeicoComponent is the base class for all built-in Aeico components.\n */\nclass AeicoComponent extends AeicoElement {\n static define(name: string) {\n const prefix = `${TAG_NAME_PREFIX}-`;\n\n const tagName = name.startsWith(prefix) ? name : `${prefix}${name}`;\n\n super.define(tagName);\n }\n}\n\nexport default AeicoComponent;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport style from '../styles/components/dropdown.css';\nimport variables from '../styles/variables.css';\nimport type { DropdownPlacement } from './defines';\n// Ensure ae-dropdown-item is registered when this module is used\nimport './dropdown-item';\n\n/**\n * Dropdown component - renders a floating menu panel anchored to a trigger slot.\n *\n * The trigger is provided via `slot=\"trigger\"` (typically an `<ae-button>`).\n * Menu items are provided as `<ae-dropdown-item>` default-slot children.\n *\n * Emits:\n * - `open` - when the panel opens\n * - `close` - when the panel closes\n * - `select` - `{ detail: { value, label } }` when a menu item is clicked\n *\n * @example\n * ```html\n * <ae-dropdown>\n * <ae-button slot=\"trigger\">Actions</ae-button>\n * <ae-dropdown-item value=\"edit\" icon=\"edit\">Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\" danger icon=\"trash\">Delete</ae-dropdown-item>\n * </ae-dropdown>\n * ```\n *\n * @example\n * ```html\n * <!-- Inside ae-navbar -->\n * <ae-navbar>\n * <a slot=\"brand\" href=\"/\">MyApp</a>\n * <ae-dropdown slot=\"end\">\n * <ae-button slot=\"trigger\" variant=\"outlined\" size=\"sm\">User</ae-button>\n * <ae-dropdown-item href=\"/profile\" icon=\"user\">Profile</ae-dropdown-item>\n * <ae-dropdown-item value=\"logout\" danger>Sign out</ae-dropdown-item>\n * </ae-dropdown>\n * </ae-navbar>\n * ```\n */\nclass Dropdown extends AeicoComponent {\n protected static styles = [variables, style];\n\n /**\n * Position of the panel relative to the trigger.\n * Defaults to `'bottom-start'` (left-aligned, below trigger).\n */\n @prop({ type: String })\n accessor placement: DropdownPlacement = 'bottom-start';\n\n /**\n * Whether the dropdown panel is visible. Reflects as the `open` attribute.\n * Can be used for controlled open/close state.\n */\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n /**\n * When `true` (default), clicking a menu item automatically closes the panel.\n */\n @prop({ type: Boolean })\n accessor closeOnSelect: boolean = true;\n\n /** Disables the trigger and prevents opening. */\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n /**\n * Optional label text. When set, `ae-dropdown` renders its own trigger button\n * in the shadow DOM (no `slot=\"trigger\"` needed). Inherits `--ae-navbar-link-*`\n * CSS variables so it automatically matches navbar link styles.\n */\n @prop({ type: String })\n accessor label: string = '';\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.listen('_item-select', this._handleItemSelect as EventListener);\n this.listen('keydown', this._handleKeydown as EventListener);\n\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n const path = e.composedPath();\n if (!path.includes(this)) {\n this._closePanel();\n }\n };\n document.addEventListener('click', this._outsideClickHandler);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._outsideClickHandler) {\n document.removeEventListener('click', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n }\n\n /** Opens the dropdown panel. */\n show(): void {\n if (this.disabled || this.open) return;\n this.open = true;\n this.emit('open');\n }\n\n /** Closes the dropdown panel. */\n hide(): void {\n if (!this.open) return;\n this.open = false;\n this.emit('close');\n }\n\n /** Toggles the dropdown panel open/closed. */\n toggle(): void {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private _closePanel(): void {\n if (this.open) this.hide();\n }\n\n // Called via declarative @click on the trigger-wrapper div inside the shadow DOM.\n // Events from slotted trigger content bubble through the shadow DOM slot path,\n // so this fires for trigger clicks only - not for panel item clicks.\n private _handleTriggerClick = (): void => {\n this.toggle();\n };\n\n private _handleItemSelect = (e: CustomEvent): void => {\n this.emit('select', { detail: e.detail });\n if (this.closeOnSelect) {\n this._closePanel();\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this._closePanel();\n }\n };\n\n protected render() {\n const placementClass = `placement-${this.placement}`;\n const hasLabel = !!this.label;\n const dir = this.placement.split('-')[0];\n return html(({ div, slot, button, span }) => {\n div(\n {\n className: 'trigger-wrapper',\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(this.open),\n '@click': this.disabled ? undefined : this._handleTriggerClick,\n },\n () => {\n if (hasLabel) {\n button(\n {\n className: 'trigger-label',\n type: 'button',\n disabled: this.disabled || undefined,\n },\n () => {\n span({ text: this.label });\n span({\n className: `ae-dropdown-arrow ae-dropdown-arrow--${dir}`,\n 'aria-hidden': 'true',\n });\n },\n );\n } else {\n slot({ name: 'trigger' });\n }\n },\n );\n div(\n {\n part: 'panel',\n className: { panel: true, open: this.open, [placementClass]: true },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nDropdown.define('dropdown');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown': Dropdown;\n }\n}\n\nexport default Dropdown;\nexport type DropdownProps = InferProps<typeof Dropdown>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport style from '../styles/components/dropdown-item.css';\nimport variables from '../styles/variables.css';\nimport { prop } from 'aeico';\n// Ensure ae-icon is registered when icons are used\nimport '../icon/icon';\n\n/**\n * Dropdown menu item - used as a direct child of `<ae-dropdown>`.\n *\n * Renders as a `<button>` by default, or as an `<a>` anchor when `href` is set.\n * Use `<ae-icon>` inside to add icons, and CSS `color` / `--dropdown-item-color`\n * to apply danger or custom colours.\n *\n * @example\n * ```html\n * <ae-dropdown-item value=\"edit\"><ae-icon name=\"edit\"></ae-icon>Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\" style=\"--dropdown-item-color:var(--color-danger)\">Delete</ae-dropdown-item>\n * <ae-dropdown-item href=\"/profile\">Profile</ae-dropdown-item>\n * ```\n */\nclass DropdownItem extends AeicoComponent {\n /** Value emitted in the `select` event detail on the parent dropdown. */\n @prop({ type: String })\n accessor value: string | undefined;\n\n /** Disables the item - it becomes non-interactive and visually dimmed. */\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n /**\n * When set, the item renders as an `<a>` anchor element instead of a\n * `<button>`. Useful for navigation items.\n */\n @prop({ type: String })\n accessor href: string | undefined;\n\n /**\n * When `type=\"checkbox\"`, the item behaves as a toggle: each click flips\n * `checked` and includes the new state in the `select` event detail.\n */\n @prop({ type: String })\n accessor type: 'checkbox' | undefined;\n\n /**\n * Whether the item is checked. Only meaningful when `type=\"checkbox\"`.\n * Reflects as the `checked` attribute.\n */\n @prop({ type: Boolean })\n accessor checked: boolean = false;\n\n /**\n * Marks the item as the currently active/selected option (e.g. current route,\n * current sort order). Purely visual - applies a highlighted background and\n * accent colour.\n */\n @prop({ type: Boolean })\n accessor active: boolean = false;\n\n protected static styles = [variables, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('click', this._handleClick);\n this.setAttribute('role', 'menuitem');\n }\n\n private _handleClick = (e: Event): void => {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n if (this.type === 'checkbox') {\n this.checked = !this.checked;\n }\n const label = this.textContent?.trim() ?? '';\n this.dispatchEvent(\n new CustomEvent('_item-select', {\n bubbles: true,\n composed: true,\n detail: { value: this.value ?? '', label, checked: this.checked },\n }),\n );\n };\n\n protected render() {\n const isCheckbox = this.type === 'checkbox';\n const sharedProps = {\n part: 'item',\n className: 'item',\n 'aria-checked': isCheckbox ? String(this.checked) : undefined,\n };\n return html(({ button, a, span, slot }) => {\n const children = () => {\n if (isCheckbox) span({ className: 'check-indicator', 'aria-hidden': 'true' });\n slot();\n };\n if (this.href) {\n a(\n {\n ...sharedProps,\n href: this.disabled ? undefined : this.href,\n 'aria-disabled': this.disabled || undefined,\n },\n children,\n );\n } else {\n button(\n {\n ...sharedProps,\n type: 'button',\n disabled: this.disabled,\n },\n children,\n );\n }\n });\n }\n}\n\nDropdownItem.define('dropdown-item');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown-item': DropdownItem;\n }\n}\n\nexport default DropdownItem;\nexport type DropdownItemProps = InferProps<typeof DropdownItem>;\n", "export const SVG_NS = 'http://www.w3.org/2000/svg';\n\nexport function toKebab(str: string): string {\n const cleaned = str.replace(/^[_\\d]+/, '');\n\n return cleaned.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n", "import type { InferProps, Props } from 'aeico';\nimport { SVG_NS } from '../utils';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/icon.css';\nimport type { IconSize, IconColor } from './defines';\nimport { defaultViewBox } from './defines';\nimport IconRegistry from './registry';\nimport './built-in-icons';\n\nclass Icon extends AeicoComponent {\n static props: Props = {\n name: { type: String },\n size: { type: String },\n color: { type: String },\n stroke: { type: Boolean },\n strokeWidth: { type: Number },\n };\n\n declare name?: string;\n declare size?: IconSize;\n declare color?: IconColor;\n declare stroke?: boolean;\n declare strokeWidth?: number;\n\n protected static styles = [styleVariables, sizeCSS, colorCSS, style];\n\n protected render() {\n const def = this.name ? IconRegistry.get(this.name) : undefined;\n\n // Numeric size: set font-size directly (string sizes are handled by size.css)\n const numericSize = Number(this.size);\n if (this.size !== undefined && !isNaN(numericSize) && numericSize > 0) {\n this.style.setProperty('font-size', `${numericSize}px`);\n } else {\n this.style.removeProperty('font-size');\n }\n\n if (!def) return;\n\n const { paths } = def;\n const isMultiPath = Array.isArray(paths);\n\n // Stroke CSS variables only apply in single-path mode (component props)\n if (!isMultiPath) {\n const useStroke =\n this.stroke ?? (this.strokeWidth !== undefined ? true : (def.stroke ?? false));\n const useStrokeWidth = this.strokeWidth ?? def.strokeWidth ?? 2;\n\n if (useStroke) {\n this.style.setProperty('--icon-fill', 'none');\n this.style.setProperty('--icon-stroke', 'currentColor');\n this.style.setProperty('--icon-stroke-width', String(useStrokeWidth));\n } else {\n this.style.removeProperty('--icon-fill');\n this.style.removeProperty('--icon-stroke');\n this.style.removeProperty('--icon-stroke-width');\n }\n } else {\n this.style.removeProperty('--icon-fill');\n this.style.removeProperty('--icon-stroke');\n this.style.removeProperty('--icon-stroke-width');\n }\n\n return html(({ svg, path }) => {\n svg(\n {\n className: 'icon-svg',\n viewBox: def.viewBox ?? defaultViewBox,\n 'aria-hidden': 'true',\n xmlns: SVG_NS,\n },\n () => {\n if (typeof paths === 'string') {\n path({ d: paths });\n } else {\n for (const p of paths) {\n const attrs: Record<string, unknown> = { d: p.d };\n if (p.fill) attrs.style = { fill: p.fill };\n path(attrs);\n }\n }\n },\n );\n });\n }\n}\n\nIcon.define('icon');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-icon': Icon;\n }\n}\n\nexport default Icon;\nexport type IconProps = InferProps<typeof Icon>;\n", "export type IconSize = '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;\n\nexport type IconColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'info';\n\nexport interface IconPathDef {\n d: string;\n fill?: string;\n stroke?: boolean;\n strokeWidth?: number;\n}\n\nexport interface IconDefinition {\n paths: string | IconPathDef[];\n viewBox?: string;\n stroke?: boolean;\n strokeWidth?: number;\n}\n\nexport const defaultViewBox = '0 0 24 24';\n\nexport type IconRegistryData = Record<string, string | IconDefinition>;\n", "import { IconDefinition, IconRegistryData, defaultViewBox } from './defines';\n\nclass IconRegistry {\n private static _icons: Map<string, IconDefinition> = new Map();\n /** Names registered via addBuiltIn - can be overridden by user add() calls */\n private static _builtInKeys: Set<string> = new Set();\n\n /** Register user icons. Always takes priority over built-in icons. */\n static add(icons: IconRegistryData) {\n for (const [name, data] of Object.entries(icons)) {\n if (typeof data === 'string') {\n this._icons.set(name, { paths: data, viewBox: defaultViewBox });\n } else {\n this._icons.set(name, data);\n }\n // Mark as user-defined (removes built-in status)\n this._builtInKeys.delete(name);\n }\n }\n\n /**\n * Register built-in icons provided by the library.\n * A built-in icon will NOT overwrite an icon already registered by the user.\n */\n static addBuiltIn(icons: IconRegistryData) {\n for (const [name, data] of Object.entries(icons)) {\n // Skip if the user has already registered this icon\n if (this._icons.has(name) && !this._builtInKeys.has(name)) continue;\n if (typeof data === 'string') {\n this._icons.set(name, { paths: data, viewBox: defaultViewBox });\n } else {\n this._icons.set(name, data);\n }\n this._builtInKeys.add(name);\n }\n }\n\n static get(name: string): IconDefinition | undefined {\n return this._icons.get(name);\n }\n\n static has(name: string): boolean {\n return this._icons.has(name);\n }\n}\n\nexport default IconRegistry;\n", "/**\n * Built-in system icons used internally by aeico components.\n * These are pre-registered so components work out of the box.\n * Users can override any of them by calling IconRegistry.add({ 'name': '...' }).\n *\n * All paths use the Material Design 24\u00D724 viewBox.\n */\nimport IconRegistry from './registry';\n\nIconRegistry.addBuiltIn({\n copy: 'M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z',\n check: 'M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z',\n 'chevron-left': 'M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z',\n 'chevron-right': 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z',\n 'chevron-up': 'M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z',\n 'chevron-down': 'M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z',\n 'chevrons-left': 'M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z',\n 'chevrons-right': 'M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z',\n close:\n 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z',\n});\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { ButtonColor, ButtonSize, ButtonVariant } from '../button/defines';\nimport type { DropdownPlacement } from './defines';\nimport type Dropdown from './dropdown';\nimport './dropdown';\nimport '../button/button';\n\n/**\n * DropdownButton - a pre-composed trigger + dropdown panel.\n *\n * Renders an `ae-button`-styled trigger with a built-in chevron,\n * and a floating panel for `<ae-dropdown-item>` children.\n * Accepts the same `variant`, `color`, `size`, and `disabled` props\n * as `ae-button`, making it a drop-in inside `ae-button-group`.\n *\n * @example\n * ```html\n * <ae-dropdown-button variant=\"outlined\" color=\"primary\">\n * Actions\n * <ae-dropdown-item value=\"edit\">Edit</ae-dropdown-item>\n * <ae-dropdown-item value=\"delete\">Delete</ae-dropdown-item>\n * </ae-dropdown-button>\n *\n * <!-- Inside ae-button-group -->\n * <ae-button-group compact color=\"primary\">\n * <ae-button>Save</ae-button>\n * <ae-dropdown-button placement=\"bottom-end\">\n * <ae-dropdown-item value=\"draft\">Save as draft</ae-dropdown-item>\n * <ae-dropdown-item value=\"template\">Save as template</ae-dropdown-item>\n * </ae-dropdown-button>\n * </ae-button-group>\n * ```\n *\n * Emits:\n * - `open` - when the panel opens\n * - `close` - when the panel closes\n * - `select` - `{ detail: { value, label } }` when a menu item is selected\n */\nclass DropdownButton extends AeicoComponent {\n // ae-button and ae-dropdown each carry their own shadow DOM styles.\n // Only the host display is set here so button-group compact layout works.\n protected static styles = [\n ':host { display: inline-block; }',\n '.caret { display: inline-block; width: 0; height: 0; margin-left: 0.3em; vertical-align: 0.2em; flex-shrink: 0; }',\n '.caret--bottom { border-top: 0.35em solid; border-right: 0.35em solid transparent; border-left: 0.35em solid transparent; }',\n '.caret--top { border-bottom: 0.35em solid; border-right: 0.35em solid transparent; border-left: 0.35em solid transparent; }',\n '.caret--right { border-left: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }',\n '.caret--left { border-right: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }',\n ];\n\n @prop({ type: String })\n accessor variant: ButtonVariant = 'filled';\n\n @prop({ type: String })\n accessor color: ButtonColor = 'default';\n\n @prop({ type: String })\n accessor size: ButtonSize = 'md';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor placement: DropdownPlacement = 'bottom-start';\n\n @prop({ type: Boolean })\n accessor closeOnSelect: boolean = true;\n\n private _dropdownEl: Dropdown | null = null;\n\n show(): void {\n if (this.disabled) return;\n this._dropdownEl?.show();\n }\n hide(): void {\n this._dropdownEl?.hide();\n }\n toggle(): void {\n if (this.disabled) return;\n this._dropdownEl?.toggle();\n }\n\n get open(): boolean {\n return this._dropdownEl?.open ?? false;\n }\n\n protected render() {\n const dir = this.placement.split('-')[0];\n return html(({ aeDropdown, aeButton, slot, span }) => {\n this._dropdownEl = aeDropdown(\n {\n placement: this.placement,\n 'close-on-select': this.closeOnSelect,\n },\n () => {\n aeButton(\n {\n slot: 'trigger',\n variant: this.variant,\n color: this.color,\n size: this.size,\n disabled: this.disabled || undefined,\n },\n () => {\n slot({ name: 'label' });\n span({ className: `caret caret--${dir}`, 'aria-hidden': 'true' });\n },\n );\n slot();\n },\n );\n });\n }\n}\n\nDropdownButton.define('dropdown-button');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dropdown-button': DropdownButton;\n }\n}\n\nexport default DropdownButton;\nexport type DropdownButtonProps = InferProps<typeof DropdownButton>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport buttonStyle from '../styles/components/button.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { ButtonColor, ButtonSize, ButtonVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Button Component\n *\n * A customizable button component with multiple variants and sizes.\n * Supports theme and internationalization through mixins.\n *\n * @example\n * ```typescript\n * // Using the static create method\n * const button = Button.create({\n * variant: 'primary',\n * size: 'md'\n * })\n * ```\n *\n * @example\n * ```html\n * <!-- Using as Web Component -->\n * <ae-button variant=\"primary\" size=\"md\">Save</ae-button>\n * <ae-button variant=\"danger\" size=\"sm\">Delete</ae-button>\n * <ae-button variant=\"subtle\">Cancel</ae-button>\n * ```\n */\nclass Button extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, buttonStyle];\n\n @prop({ type: String })\n color?: ButtonColor;\n\n @prop({ type: String })\n variant?: ButtonVariant;\n\n @prop({ type: String })\n size?: ButtonSize;\n\n @prop({ type: Boolean })\n disabled?: boolean;\n\n @prop({ type: String })\n type?: 'button' | 'submit' | 'reset';\n\n @prop({ type: Boolean })\n active?: boolean;\n\n @prop({ type: Boolean })\n block?: boolean;\n\n private _buttonElement: HTMLButtonElement | null = null;\n private _slotElement: HTMLSlotElement | null = null;\n private _autoAriaLabel = false;\n\n protected onMounted() {\n this._handleSlotChange();\n }\n\n private _handleSlotChange = () => {\n const nodes = this._slotElement?.assignedNodes() ?? [];\n // Icon-only: exactly one element (ae-icon) and no meaningful text nodes\n const elements = nodes.filter((n): n is Element => n.nodeType === Node.ELEMENT_NODE);\n const hasText = nodes.some(\n (n) => n.nodeType === Node.TEXT_NODE && n.textContent!.trim() !== '',\n );\n const isIconOnly =\n !hasText && elements.length === 1 && elements[0].tagName.toLowerCase() === 'ae-icon';\n\n if (isIconOnly) {\n this.setAttribute('icon-only', '');\n if (!this.hasAttribute('aria-label') || this._autoAriaLabel) {\n this.setAttribute('aria-label', elements[0].getAttribute('name') ?? '');\n this._autoAriaLabel = true;\n }\n } else {\n this.removeAttribute('icon-only');\n if (this._autoAriaLabel) {\n this.removeAttribute('aria-label');\n this._autoAriaLabel = false;\n }\n }\n };\n\n protected render() {\n return html(({ button, slot }) => {\n this._buttonElement = button(\n {\n type: this.type || 'button',\n disabled: this.disabled,\n part: 'button',\n 'aria-pressed': this.active,\n 'aria-disabled': this.disabled,\n },\n () => {\n this._slotElement = slot({ '@slotchange': this._handleSlotChange });\n },\n );\n });\n }\n\n /**\n * Programmatically click the button\n */\n click() {\n if (!this.disabled && this._buttonElement) {\n this._buttonElement.click();\n }\n }\n\n /**\n * Focus the button\n */\n focus() {\n if (this._buttonElement) {\n this._buttonElement.focus();\n }\n }\n\n /**\n * Blur the button\n */\n blur() {\n if (this._buttonElement) {\n this._buttonElement.blur();\n }\n }\n}\n\nButton.define('button');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-button': Button;\n }\n}\n\nexport default Button;\nexport type ButtonProps = InferProps<typeof Button>;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,sGAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA,4FAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAjB;AAAA,2GAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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",
6
6
  "names": ["exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "import_aeico", "import_variables", "import_aeico", "import_variables", "import_aeico", "styleVariables", "sizeCSS", "colorCSS", "style", "variables", "style", "_disabled_dec", "_a", "_init", "_disabled", "variables", "style", "import_aeico", "import_variables", "import_size", "import_color", "import_aeico", "_active_dec", "_type_dec", "_disabled_dec", "_a", "_init", "styleVariables", "sizeCSS", "colorCSS", "buttonStyle", "_closeOnSelect_dec", "_placement_dec", "_disabled_dec", "_size_dec", "_color_dec", "_variant_dec", "_a", "_init", "_disabled", "_placement", "_closeOnSelect"]
7
7
  }