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.
- package/README.md +0 -0
- package/dist/alert.cjs +20 -29
- package/dist/alert.cjs.map +3 -3
- package/dist/alert.js +20 -29
- package/dist/alert.js.map +3 -3
- package/dist/badge.cjs +19 -28
- package/dist/badge.cjs.map +3 -3
- package/dist/badge.js +19 -28
- package/dist/badge.js.map +3 -3
- package/dist/breadcrumb.cjs +22 -33
- package/dist/breadcrumb.cjs.map +3 -3
- package/dist/breadcrumb.js +22 -33
- package/dist/breadcrumb.js.map +3 -3
- package/dist/button-group.cjs +19 -28
- package/dist/button-group.cjs.map +3 -3
- package/dist/button-group.js +19 -28
- package/dist/button-group.js.map +3 -3
- package/dist/button.cjs +19 -29
- package/dist/button.cjs.map +3 -3
- package/dist/button.js +19 -29
- package/dist/button.js.map +3 -3
- package/dist/card.cjs +19 -29
- package/dist/card.cjs.map +3 -3
- package/dist/card.js +19 -29
- package/dist/card.js.map +3 -3
- package/dist/checkbox.cjs +21 -31
- package/dist/checkbox.cjs.map +3 -3
- package/dist/checkbox.js +21 -31
- package/dist/checkbox.js.map +3 -3
- package/dist/copy-button.cjs +25 -33
- package/dist/copy-button.cjs.map +2 -2
- package/dist/copy-button.js +25 -33
- package/dist/copy-button.js.map +3 -3
- package/dist/detail-group.cjs +19 -29
- package/dist/detail-group.cjs.map +3 -3
- package/dist/detail-group.js +19 -29
- package/dist/detail-group.js.map +3 -3
- package/dist/detail.cjs +19 -29
- package/dist/detail.cjs.map +3 -3
- package/dist/detail.js +19 -29
- package/dist/detail.js.map +3 -3
- package/dist/dialog.cjs +24 -32
- package/dist/dialog.cjs.map +2 -2
- package/dist/dialog.js +24 -32
- package/dist/dialog.js.map +3 -3
- package/dist/divider.cjs +20 -30
- package/dist/divider.cjs.map +3 -3
- package/dist/divider.js +20 -30
- package/dist/divider.js.map +3 -3
- package/dist/drawer.cjs +24 -32
- package/dist/drawer.cjs.map +2 -2
- package/dist/drawer.js +24 -32
- package/dist/drawer.js.map +3 -3
- package/dist/dropdown.cjs +31 -43
- package/dist/dropdown.cjs.map +3 -3
- package/dist/dropdown.js +31 -43
- package/dist/dropdown.js.map +3 -3
- package/dist/icon-button.cjs +25 -35
- package/dist/icon-button.cjs.map +3 -3
- package/dist/icon-button.js +25 -35
- package/dist/icon-button.js.map +3 -3
- package/dist/icon.cjs +20 -26
- package/dist/icon.cjs.map +2 -2
- package/dist/icon.js +20 -26
- package/dist/icon.js.map +2 -2
- package/dist/index.cjs +75 -113
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +75 -113
- package/dist/index.js.map +3 -3
- package/dist/menu.cjs +20 -31
- package/dist/menu.cjs.map +3 -3
- package/dist/menu.js +20 -31
- package/dist/menu.js.map +3 -3
- package/dist/navbar.cjs +19 -29
- package/dist/navbar.cjs.map +3 -3
- package/dist/navbar.js +19 -29
- package/dist/navbar.js.map +3 -3
- package/dist/number-input.cjs +21 -31
- package/dist/number-input.cjs.map +3 -3
- package/dist/number-input.js +21 -31
- package/dist/number-input.js.map +3 -3
- package/dist/pagination.cjs +24 -33
- package/dist/pagination.cjs.map +2 -2
- package/dist/pagination.js +24 -33
- package/dist/pagination.js.map +3 -3
- package/dist/progress-bar.cjs +19 -29
- package/dist/progress-bar.cjs.map +3 -3
- package/dist/progress-bar.js +19 -29
- package/dist/progress-bar.js.map +3 -3
- package/dist/radio-group.cjs +24 -35
- package/dist/radio-group.cjs.map +3 -3
- package/dist/radio-group.js +24 -35
- package/dist/radio-group.js.map +3 -3
- package/dist/select.cjs +23 -34
- package/dist/select.cjs.map +3 -3
- package/dist/select.js +23 -34
- package/dist/select.js.map +3 -3
- package/dist/slider.cjs +21 -32
- package/dist/slider.cjs.map +3 -3
- package/dist/slider.js +21 -32
- package/dist/slider.js.map +3 -3
- package/dist/spinner.cjs +19 -29
- package/dist/spinner.cjs.map +3 -3
- package/dist/spinner.js +19 -29
- package/dist/spinner.js.map +3 -3
- package/dist/styles/layout.cjs +1 -1
- package/dist/styles/layout.js +1 -1
- package/dist/styles/radius.cjs +1 -1
- package/dist/styles/radius.js +1 -1
- package/dist/styles/variables.cjs +1 -1
- package/dist/styles/variables.js +1 -1
- package/dist/switch.cjs +26 -35
- package/dist/switch.cjs.map +3 -3
- package/dist/switch.js +26 -35
- package/dist/switch.js.map +3 -3
- package/dist/tabs.cjs +21 -30
- package/dist/tabs.cjs.map +3 -3
- package/dist/tabs.js +21 -30
- package/dist/tabs.js.map +3 -3
- package/dist/tag.cjs +19 -28
- package/dist/tag.cjs.map +3 -3
- package/dist/tag.js +19 -28
- package/dist/tag.js.map +3 -3
- package/dist/text-input.cjs +21 -31
- package/dist/text-input.cjs.map +3 -3
- package/dist/text-input.js +21 -31
- package/dist/text-input.js.map +3 -3
- package/dist/textarea.cjs +21 -31
- package/dist/textarea.cjs.map +3 -3
- package/dist/textarea.js +21 -31
- package/dist/textarea.js.map +3 -3
- package/dist/tooltip.cjs +19 -28
- package/dist/tooltip.cjs.map +3 -3
- package/dist/tooltip.js +19 -28
- package/dist/tooltip.js.map +3 -3
- package/dist/tree.cjs +25 -35
- package/dist/tree.cjs.map +3 -3
- package/dist/tree.js +25 -35
- package/dist/tree.js.map +3 -3
- package/dist/types/aeico-component.d.ts +1 -1
- package/dist/types/aeico-field.d.ts +1 -1
- package/dist/types/breadcrumb/breadcrumb-item.d.ts +0 -1
- package/dist/types/breadcrumb/breadcrumb.d.ts +2 -3
- package/dist/types/button-group/button-group.d.ts +1 -1
- package/dist/types/card/card.d.ts +0 -1
- package/dist/types/checkbox/checkbox.d.ts +0 -1
- package/dist/types/detail/detail.d.ts +0 -1
- package/dist/types/detail-group/detail-group.d.ts +1 -2
- package/dist/types/divider/divider.d.ts +0 -1
- package/dist/types/dropdown/dropdown-button.d.ts +4 -5
- package/dist/types/dropdown/dropdown-item.d.ts +3 -4
- package/dist/types/dropdown/dropdown.d.ts +4 -5
- package/dist/types/icon/icon.d.ts +0 -1
- package/dist/types/icon/registry.d.ts +1 -1
- package/dist/types/icon-button/icon-button.d.ts +0 -1
- package/dist/types/index.d.ts +4 -4
- package/dist/types/menu/menu-item.d.ts +3 -4
- package/dist/types/menu/menu.d.ts +3 -4
- package/dist/types/navbar/navbar.d.ts +5 -6
- package/dist/types/number-input/number-input.d.ts +0 -1
- package/dist/types/pagination/pagination.d.ts +0 -1
- package/dist/types/progress-bar/progress-bar.d.ts +0 -1
- package/dist/types/radio-group/radio-group.d.ts +0 -1
- package/dist/types/radio-group/radio.d.ts +6 -7
- package/dist/types/select/select-option.d.ts +0 -1
- package/dist/types/select/select.d.ts +0 -1
- package/dist/types/slider/defines.d.ts +5 -5
- package/dist/types/slider/slider.d.ts +0 -1
- package/dist/types/spinner/spinner.d.ts +1 -2
- package/dist/types/switch/switch.d.ts +0 -1
- package/dist/types/text-input/text-input.d.ts +0 -1
- package/dist/types/textarea/textarea.d.ts +0 -1
- package/dist/types/tree/tree-item.d.ts +1 -2
- package/dist/types/tree/tree.d.ts +0 -1
- package/package.json +5 -3
- package/src/aeico-component.ts +6 -5
- package/src/aeico-field.ts +2 -2
- package/src/alert/alert.ts +2 -2
- package/src/badge/badge.ts +2 -2
- package/src/breadcrumb/breadcrumb-item.ts +2 -4
- package/src/breadcrumb/breadcrumb.ts +4 -6
- package/src/button/button.ts +2 -2
- package/src/button-group/button-group.ts +3 -3
- package/src/card/card.ts +2 -4
- package/src/card/defines.ts +1 -1
- package/src/card/index.ts +1 -1
- package/src/checkbox/checkbox.ts +2 -4
- package/src/copy-button/copy-button.ts +1 -1
- package/src/detail/detail.ts +2 -4
- package/src/detail-group/detail-group.ts +2 -4
- package/src/dialog/dialog.ts +2 -2
- package/src/divider/divider.ts +2 -4
- package/src/drawer/drawer.ts +2 -2
- package/src/dropdown/dropdown-button.ts +6 -8
- package/src/dropdown/dropdown-item.ts +5 -7
- package/src/dropdown/dropdown.ts +7 -9
- package/src/icon/icon.ts +2 -4
- package/src/icon/registry.ts +1 -1
- package/src/icon-button/icon-button.ts +2 -4
- package/src/index.ts +4 -4
- package/src/menu/menu-item.ts +5 -7
- package/src/menu/menu.ts +4 -6
- package/src/navbar/navbar.ts +7 -9
- package/src/number-input/number-input.ts +1 -3
- package/src/pagination/pagination.ts +1 -3
- package/src/progress-bar/progress-bar.ts +1 -2
- package/src/radio-group/radio-group.ts +5 -7
- package/src/radio-group/radio.ts +8 -10
- package/src/select/select-option.ts +2 -4
- package/src/select/select.ts +4 -6
- package/src/slider/defines.ts +5 -5
- package/src/slider/slider.ts +5 -8
- package/src/spinner/spinner.ts +2 -4
- package/src/styles/components/action-button.css +1 -1
- package/src/styles/components/alert.css +1 -1
- package/src/styles/components/breadcrumb-item.css +2 -2
- package/src/styles/components/button.css +0 -1
- package/src/styles/components/divider.css +1 -1
- package/src/styles/components/dropdown-item.css +2 -2
- package/src/styles/components/dropdown.css +1 -1
- package/src/styles/layout.css +14 -14
- package/src/styles/radius.css +1 -1
- package/src/styles/variables.css +14 -16
- package/src/switch/switch.ts +2 -4
- package/src/tabs/tab-panel.ts +2 -2
- package/src/tabs/tab.ts +2 -2
- package/src/tabs/tabs.ts +2 -2
- package/src/tag/tag.ts +2 -2
- package/src/text-input/text-input.ts +2 -4
- package/src/textarea/textarea.ts +1 -3
- package/src/tooltip/tooltip.ts +1 -1
- package/src/tree/tree-item.ts +3 -5
- package/src/tree/tree.ts +2 -4
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.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/components/field-label.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/text-input.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/number-input.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/textarea.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/select.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/tag.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/select-option.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/slider.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/checkbox.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/radio-group.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/switch.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/breadcrumb.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/breadcrumb-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/copy-button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tooltip.css", "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/components/dropdown-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button-group.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/badge.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/alert.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dialog.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/drawer.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tabs.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tab.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tab-panel.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/divider.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/card.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/navbar.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/spinner.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/detail.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/detail-group.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/progress-bar.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/menu.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/menu-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/pagination.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tree.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tree-item.css", "../src/index.ts", "../src/aeico-field.ts", "../src/aeico-component.ts", "../src/
|
|
4
|
-
"sourcesContent": ["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([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 --field-label-gap: 4px;\\n --field-label-col-gap: 8px;\\n --field-label-width: 100px;\\n --field-label-font-size: 0.875em;\\n --field-label-color: inherit;\\n --field-required-color: var(--ae-red, #dc3545);\\n --field-helper-color: var(--ae-color-text-muted, #6e6e6e);\\n --field-error-color: var(--ae-red, #dc3545);\\n}\\n\\n:host([label]) {\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n gap: var(--field-label-gap);\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) {\\n display: grid;\\n grid-template-columns: var(--field-label-width) 1fr;\\n column-gap: var(--field-label-col-gap);\\n row-gap: var(--field-label-gap);\\n align-items: center;\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) .field-label {\\n align-self: center;\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) .field-helper,\\n:host([label][label-placement=\\\"left\\\"]) .field-error {\\n grid-column: 2;\\n}\\n\\n.field-label {\\n font-size: var(--field-label-font-size);\\n color: var(--field-label-color);\\n user-select: none;\\n line-height: 1.4;\\n}\\n\\n.field-required {\\n color: var(--field-required-color);\\n margin-left: 2px;\\n}\\n\\n.field-helper {\\n font-size: 0.8em;\\n color: var(--field-helper-color);\\n line-height: 1.4;\\n}\\n\\n.field-error {\\n font-size: 0.8em;\\n color: var(--field-error-color);\\n line-height: 1.4;\\n}\\n\\n/* Action controls container (integrated style) */\\n.action-controls {\\n display: flex;\\n flex-direction: row;\\n align-items: stretch;\\n margin-left: calc(-1 * var(--field-action-gap, 4px) - 1px);\\n border: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: 0 var(--field-action-border-radius, var(--ae-radius-xs)) var(--field-action-border-radius, var(--ae-radius-xs)) 0;\\n overflow: hidden;\\n flex-shrink: 0;\\n transition: border-color 0.12s;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n position: relative;\\n z-index: 1;\\n align-self: stretch;\\n}\\n\\n.action-controls .action-btn {\\n border: none;\\n background: transparent;\\n color: var(--field-action-color, var(--ae-color-text-muted));\\n font-size: 0.875em;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 0.5em;\\n transition: background 0.12s;\\n}\\n\\n.action-controls .action-btn:hover:not(:disabled) {\\n background: var(--field-action-bg-hover, var(--ae-surface-raised));\\n}\\n\\n.action-controls .action-btn:active:not(:disabled) {\\n background: var(--field-action-bg-focus, var(--ae-surface-raised));\\n}\\n\\n.action-controls .action-btn:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.action-controls .action-btn + .action-btn {\\n border-left: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\\n}\\n\\n.input-container:has(input:focus) ~ .action-controls,\\n.input-container:has(input:focus) .action-controls,\\n.container:has(.trigger.open) ~ .action-controls,\\n.container:has(.trigger.open) .action-controls {\\n border-color: var(--field-action-border-color-focus, var(--ae-border-focus));\\n}\\n\\n.input-container:has(input:hover:not(:focus)) ~ .action-controls,\\n.input-container:has(input:hover:not(:focus)) .action-controls,\\n.container:has(.trigger:hover:not(.disabled)) ~ .action-controls,\\n.container:has(.trigger:hover:not(.disabled)) .action-controls {\\n border-color: var(--field-action-border-color-hover, var(--ae-border-default));\\n}\\n\"", "module.exports = \"/* Action button base styles \u2014 shared by clear-btn and reset-btn (standalone mode) */\\n.clear-btn:not(.action-btn),\\n.reset-btn:not(.action-btn) {\\n width: 1.333em;\\n height: 1.333em;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n line-height: 1;\\n}\\n\\n.clear-btn:not(.action-btn) {\\n border-radius: var(--ae-clear-btn-border-radius);\\n background: var(--ae-clear-btn-bg);\\n color: var(--ae-clear-btn-color);\\n transition: var(--ae-clear-btn-transition);\\n}\\n\\n.reset-btn:not(.action-btn) {\\n border-radius: var(--ae-reset-btn-border-radius);\\n background: var(--ae-reset-btn-bg);\\n color: var(--ae-reset-btn-color);\\n transition: var(--ae-reset-btn-transition);\\n}\\n\\n.clear-btn:not(.action-btn):hover {\\n background: var(--ae-clear-btn-bg-hover);\\n color: var(--ae-clear-btn-color-hover);\\n}\\n\\n.reset-btn:not(.action-btn):hover {\\n background: var(--ae-reset-btn-bg-hover);\\n color: var(--ae-reset-btn-color-hover);\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n --input-field-gap: 4px;\\n --input-font-size: 1em;\\n --input-padding: 0.333em 0.583em;\\n --input-border-width: 1px;\\n --input-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.input-container {\\n display: flex;\\n align-items: center;\\n gap: var(--input-field-gap);\\n width: 100%;\\n}\\n\\ninput {\\n flex: 1;\\n min-width: 0;\\n font-size: var(--input-font-size);\\n padding: var(--input-padding);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--input-transition);\\n}\\n\\ninput::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ninput:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([error]) input {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) input:hover:not(:focus),\\n:host([error]) input:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n.input-container:has(.action-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n /* Layout variables */\\n --input-field-gap: 4px;\\n \\n /* Input element variables */\\n --input-font-size: 1em;\\n --input-padding: 0.333em 0.583em;\\n --input-border-width: 1px;\\n --input-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.input-container {\\n display: flex;\\n align-items: center;\\n gap: var(--input-field-gap);\\n width: 100%;\\n}\\n\\ninput {\\n flex: 1;\\n min-width: 0;\\n font-size: var(--input-font-size);\\n padding: var(--input-padding);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--input-transition);\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n\\n/* Hide number spinner arrows in WebKit browsers */\\ninput::-webkit-outer-spin-button,\\ninput::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\ninput::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ninput:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n/* Number stepper controls (right side, integrated, horizontal) */\\n.number-controls {\\n display: flex;\\n flex-direction: row;\\n align-items: stretch;\\n margin-left: calc(-1 * var(--input-field-gap) - 1px);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: 0 var(--ae-border-radius, var(--ae-radius-xs)) var(--ae-border-radius, var(--ae-radius-xs)) 0;\\n overflow: hidden;\\n flex-shrink: 0;\\n transition: var(--input-transition);\\n background: var(--ae-surface-base);\\n position: relative;\\n z-index: 1;\\n align-self: stretch;\\n}\\n\\n.number-btn {\\n border: none;\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 0.875em;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 0.5em;\\n transition: background 0.12s;\\n}\\n\\n.number-btn:hover:not(:disabled) {\\n background: var(--ae-surface-raised);\\n}\\n\\n.number-btn:active:not(:disabled) {\\n background: var(--ae-surface-raised);\\n}\\n\\n.number-btn:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.number-btn-increment {\\n border-right: var(--input-border-width) solid var(--ae-border-subtle);\\n}\\n\\n.input-container:has(input:focus) .number-controls {\\n border-color: var(--ae-border-focus);\\n}\\n\\n.input-container:has(input:hover:not(:focus)) .number-controls {\\n border-color: var(--ae-border-default);\\n}\\n\\n:host(:has(.number-controls)) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n:host(:has(.action-controls)) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.number-controls ~ .action-controls {\\n margin-left: calc(-1 * var(--input-field-gap) - 1px);\\n}\\n\\n.input-container:has(.number-controls):has(.action-controls) .number-controls {\\n border-right: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.number-controls) ~ .action-controls,\\n.input-container:has(.action-controls) .number-controls {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.number-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.action-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n:host([error]) input {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) input:hover:not(:focus),\\n:host([error]) input:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n --textarea-font-size: 1em;\\n --textarea-padding: 0.333em 0.583em;\\n --textarea-border-width: 1px;\\n --textarea-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.textarea-container {\\n display: flex;\\n align-items: flex-start;\\n gap: 4px;\\n width: 100%;\\n}\\n\\ntextarea {\\n flex: 1;\\n min-width: 0;\\n width: 100%;\\n box-sizing: border-box;\\n font-size: var(--textarea-font-size);\\n font-family: inherit;\\n line-height: 1.5;\\n padding: var(--textarea-padding);\\n border: var(--textarea-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--textarea-transition);\\n resize: vertical;\\n}\\n\\ntextarea::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ntextarea:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ntextarea:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ntextarea:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n resize: none;\\n}\\n\\n/* Error state */\\n:host([error]) textarea {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) textarea:hover:not(:focus),\\n:host([error]) textarea:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n /* Layout variables */\\n --select-field-gap: 2px;\\n\\n /* Trigger variables */\\n --select-font-size: 1em;\\n --select-padding: 0.333em 0.583em;\\n --select-border-width: 1px;\\n --select-transition: border-color 0.12s, background 0.12s;\\n\\n /* Arrow */\\n --select-arrow-size: 0.75em;\\n\\n /* Dropdown */\\n --select-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n --select-dropdown-max-height: 240px;\\n --select-dropdown-z-index: 1000;\\n}\\n\\n.container {\\n display: flex;\\n align-items: center;\\n gap: var(--select-field-gap);\\n width: 100%;\\n position: relative;\\n}\\n\\n.trigger {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 0.333em;\\n font-size: var(--select-font-size);\\n padding: var(--select-padding);\\n border: var(--select-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n cursor: pointer;\\n transition: var(--select-transition);\\n user-select: none;\\n outline: none;\\n box-sizing: border-box;\\n}\\n\\n.trigger:hover:not(.disabled) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\n.trigger.open {\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\n.trigger.disabled {\\n opacity: 0.5;\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n/* Error state */\\n:host([error]) .trigger {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) .trigger:hover:not(.disabled),\\n:host([error]) .trigger.open {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n.value {\\n flex: 1;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\n.selected-list {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n flex-wrap: wrap;\\n gap: 4px;\\n align-items: center;\\n padding: 2px 0;\\n}\\n\\n/* Non-expandable (default): single-row, clip overflow */\\n.trigger:has(.selected-list--clipped) {\\n flex-wrap: nowrap;\\n}\\n\\n.selected-list--clipped {\\n flex-wrap: nowrap;\\n overflow: hidden;\\n}\\n\\n.overflow-indicator {\\n flex-shrink: 0;\\n align-self: center;\\n padding: 1px 6px;\\n background: color-mix(in srgb, var(--ae-color-primary) 12%, transparent);\\n color: var(--ae-color-primary);\\n border: 1px solid color-mix(in srgb, var(--ae-color-primary) 30%, transparent);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n font-size: 0.82em;\\n line-height: 1.6;\\n cursor: default;\\n user-select: none;\\n}\\n\\n.arrow {\\n flex-shrink: 0;\\n align-self: center;\\n font-size: var(--select-arrow-size);\\n color: var(--ae-color-text-muted);\\n transition: transform 0.12s;\\n pointer-events: none;\\n line-height: 1;\\n}\\n\\n.trigger.open .arrow {\\n transform: rotate(180deg);\\n}\\n\\n.dropdown {\\n display: none;\\n position: absolute;\\n z-index: var(--select-dropdown-z-index);\\n background: var(--ae-surface-overlay);\\n border: 1px solid var(--ae-border-default);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n box-shadow: var(--select-dropdown-shadow);\\n max-height: var(--select-dropdown-max-height);\\n overflow-y: auto;\\n min-width: 100%;\\n box-sizing: border-box;\\n}\\n\\n.dropdown.open {\\n display: block;\\n}\\n\\n.dropdown.position-bottom {\\n top: 100%;\\n left: 0;\\n margin-top: 2px;\\n}\\n\\n.dropdown.position-top {\\n bottom: 100%;\\n left: 0;\\n margin-bottom: 2px;\\n}\\n\\n.dropdown.position-left {\\n right: 100%;\\n top: 0;\\n margin-right: 2px;\\n}\\n\\n.dropdown.position-right {\\n left: 100%;\\n top: 0;\\n margin-left: 2px;\\n}\\n\\n.container:has(.action-controls) .trigger {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\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}\\n\\n.tag {\\n display: inline-flex;\\n align-items: center;\\n gap: 4px;\\n font-family: inherit;\\n font-weight: 500;\\n white-space: nowrap;\\n vertical-align: middle;\\n line-height: 1.2;\\n font-size: 1em;\\n padding: 0.15em 0.5em 0.15em 0.6em;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n max-width: 160px;\\n min-width: 0;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .tag {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .tag {\\n background: var(--ae-color-bg-subtle);\\n border-color: var(--ae-color-border-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .tag {\\n background: var(--ae-color-bg-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .tag {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n padding-left: 0;\\n padding-right: 0;\\n}\\n\\n\\n:host([pill]) .tag { border-radius: var(--ae-radius-pill); }\\n\\n.tag-content {\\n flex: 1;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n::slotted(ae-icon) { font-size: 1.1em; }\\n\\n.tag-dismiss {\\n display: none;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n opacity: 0.55;\\n line-height: 1;\\n font-size: 1em;\\n padding: 0 1px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: transparent;\\n border: none;\\n color: inherit;\\n font-family: inherit;\\n transition: opacity 0.1s, background 0.1s;\\n}\\n\\n:host([dismissible]) .tag-dismiss {\\n display: inline-flex;\\n}\\n\\n.tag-dismiss:hover {\\n opacity: 1;\\n background: color-mix(in srgb, currentColor 15%, transparent);\\n}\\n\\n/* disabled: button remains visible but is inert */\\n:host([disabled]) .tag-dismiss {\\n opacity: 0.4;\\n pointer-events: none;\\n cursor: default;\\n}\\n\\n:host([disabled]) .tag {\\n opacity: 0.6;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --option-padding: 0.417em 0.667em;\\n --option-bg: transparent;\\n --option-bg-hover: var(--ae-surface-raised);\\n --option-bg-selected: color-mix(in srgb, var(--ae-color-primary) 12%, transparent);\\n --option-color: var(--ae-color-text-main);\\n --option-color-disabled: var(--ae-color-text-disabled);\\n --option-color-selected: var(--ae-color-primary);\\n --option-font-size: 1em;\\n --option-transition: background 0.1s;\\n}\\n\\n.option-item {\\n padding: var(--option-padding);\\n font-size: var(--option-font-size);\\n color: var(--option-color);\\n background: var(--option-bg);\\n cursor: pointer;\\n transition: var(--option-transition);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n user-select: none;\\n}\\n\\n:host(:hover:not([disabled])) .option-item {\\n background: var(--option-bg-hover);\\n}\\n\\n:host([selected]) .option-item {\\n background: var(--option-bg-selected);\\n color: var(--option-color-selected);\\n}\\n\\n:host([disabled]) .option-item {\\n color: var(--option-color-disabled);\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n}\\n\\n.range-container {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n width: 100%;\\n height: 26px;\\n}\\n\\ninput[type=\\\"range\\\"] {\\n flex: 1;\\n margin: 0;\\n}\\n\\n.input-range,\\n.slider-input,\\ninput[type=\\\"range\\\"] {\\n -webkit-appearance: none;\\n appearance: none;\\n width: 100%;\\n height: 0.333em;\\n border-radius: var(--ae-radius-xs);\\n background: var(--ae-border-subtle);\\n outline: none;\\n cursor: pointer;\\n margin: 0;\\n}\\n\\n.input-range {\\n margin: 10px 0;\\n}\\n\\n.input-range::-webkit-slider-thumb,\\n.slider-input::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n appearance: none;\\n width: 1.167em;\\n height: 1.167em;\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n cursor: pointer;\\n transition: background 0.12s, transform 0.12s;\\n}\\n\\n.input-range::-webkit-slider-thumb:hover,\\n.slider-input::-webkit-slider-thumb:hover,\\ninput[type=\\\"range\\\"]:hover::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.1);\\n}\\n\\n.input-range::-webkit-slider-thumb:active,\\n.slider-input::-webkit-slider-thumb:active,\\ninput[type=\\\"range\\\"]:active::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.2);\\n}\\n\\n.input-range:focus::-webkit-slider-thumb,\\n.slider-input:focus::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus::-webkit-slider-thumb {\\n background: var(--ae-color-solid);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:hover::-webkit-slider-thumb,\\n.slider-input:focus:hover::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus:hover::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:active::-webkit-slider-thumb,\\n.slider-input:focus:active::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus:active::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range::-moz-range-thumb,\\n.slider-input::-moz-range-thumb,\\ninput[type=\\\"range\\\"]::-moz-range-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n border: none;\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n cursor: pointer;\\n transition: background 0.12s, transform 0.12s;\\n}\\n\\n.input-range::-moz-range-thumb:hover,\\n.slider-input::-moz-range-thumb:hover,\\ninput[type=\\\"range\\\"]:hover::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.1);\\n}\\n\\n.input-range::-moz-range-thumb:active,\\n.slider-input::-moz-range-thumb:active,\\ninput[type=\\\"range\\\"]:active::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.2);\\n}\\n\\n.input-range:focus::-moz-range-thumb,\\n.slider-input:focus::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus::-moz-range-thumb {\\n background: var(--ae-color-solid);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:hover::-moz-range-thumb,\\n.slider-input:focus:hover::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus:hover::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:active::-moz-range-thumb,\\n.slider-input:focus:active::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus:active::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:disabled,\\n.slider-input:disabled,\\ninput[type=\\\"range\\\"]:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.input-range:disabled::-webkit-slider-thumb,\\n.slider-input:disabled::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:disabled::-webkit-slider-thumb {\\n cursor: not-allowed;\\n}\\n\\n.input-range:disabled::-moz-range-thumb,\\n.slider-input:disabled::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:disabled::-moz-range-thumb {\\n cursor: not-allowed;\\n}\\n\\n.value-label {\\n min-width: 14px;\\n text-align: center;\\n font-size: 12px;\\n color: var(--ae-color-text-muted);\\n font-weight: 500;\\n font-variant-numeric: tabular-nums;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.input-range,\\n.slider-input,\\ninput[type=\\\"range\\\"] {\\n height: 0.333em;\\n}\\n\\n.input-range::-webkit-slider-thumb,\\n.slider-input::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]::-webkit-slider-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n}\\n\\n.input-range::-moz-range-thumb,\\n.slider-input::-moz-range-thumb,\\ninput[type=\\\"range\\\"]::-moz-range-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n}\\n\\n.value-label {\\n font-size: 1em;\\n}\\n\\n.value-input {\\n width: 56px;\\n padding: 0 4px;\\n height: 22px;\\n line-height: 20px;\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: var(--ae-radius-sm);\\n background: transparent;\\n color: var(--ae-color-text);\\n font-size: 12px;\\n text-align: center;\\n outline: none;\\n flex-shrink: 0;\\n box-sizing: border-box;\\n}\\n\\n.value-input:focus {\\n border-color: var(--ae-color-solid);\\n}\\n\\n.value-input:disabled {\\n opacity: 0.4;\\n cursor: not-allowed;\\n}\\n\\n.range-container .action-controls {\\n display: flex;\\n align-self: center;\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--ae-radius-sm);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 22px;\\n box-sizing: border-box;\\n}\\n\\n.range-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 12px;\\n}\\n\\n.range-container:has(.value-input) .action-controls {\\n border-radius: var(--ae-radius-sm) 0 0 var(--ae-radius-sm);\\n}\\n\\n.range-container:has(.action-controls) .value-input {\\n margin-left: -7px;\\n border-radius: 0 var(--ae-radius-sm) var(--ae-radius-sm) 0;\\n}\\n\\n:host([tracked]) .input-range,\\n:host([tracked]) .slider-input,\\n:host([tracked]) input[type=\\\"range\\\"] {\\n background: linear-gradient(\\n to right,\\n var(--ae-color-solid) var(--fill-pct, 0%),\\n var(--ae-border-subtle) var(--fill-pct, 0%)\\n );\\n}\\n\\n.range-wrapper {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n}\\n\\n.range-wrapper input[type=\\\"range\\\"] {\\n width: 100%;\\n flex: none;\\n}\\n\\n.marks-container {\\n position: absolute;\\n top: 100%;\\n left: 7px;\\n right: 7px;\\n height: 18px;\\n margin-top: 2px;\\n overflow: visible;\\n}\\n\\n.mark {\\n position: absolute;\\n transform: translateX(-50%);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n gap: 2px;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.mark::before {\\n content: '';\\n display: block;\\n width: 1px;\\n height: 4px;\\n background: var(--ae-border-default, var(--ae-border-subtle));\\n border-radius: 1px;\\n}\\n\\n.mark-label {\\n font-size: 10px;\\n color: var(--ae-color-text-muted);\\n white-space: nowrap;\\n}\\n\\n:host([marks]) .range-container {\\n padding-bottom: 24px;\\n height: auto;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n --checkbox-field-gap: 4px;\\n --checkbox-size: 1.167em;\\n --checkbox-border-width: 1px;\\n --checkbox-border-color: var(--ae-border-subtle);\\n --checkbox-bg: var(--ae-surface-base);\\n}\\n\\n.checkbox-container {\\n display: flex;\\n align-items: center;\\n gap: var(--checkbox-field-gap);\\n width: 100%;\\n}\\n\\n.checkbox-wrapper {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.field-input {\\n width: var(--checkbox-size);\\n height: var(--checkbox-size);\\n cursor: pointer;\\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--checkbox-bg);\\n accent-color: var(--ae-color-solid);\\n margin: 0;\\n flex-shrink: 0;\\n}\\n\\n.field-input:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([error]) .field-input {\\n outline: 2px solid var(--field-error-color, var(--ae-red));\\n outline-offset: 1px;\\n}\\n\\n.checkbox-container .action-controls {\\n display: flex;\\n margin-left: 2px;\\n border: var(--checkbox-border-width) solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--ae-radius-sm);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 1.333em;\\n box-sizing: border-box;\\n}\\n\\n.checkbox-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 0.7em;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--rg-gap, 0.286em);\\n font-size: var(--ae-size-m);\\n\\n --rg-font-size: 1em;\\n --rg-height: 2.286em;\\n --rg-padding: 0.429em 1.071em;\\n --rg-min-width: 4.571em;\\n --rg-radius: 4px;\\n --rg-font-weight: 400;\\n}\\n\\n:host([size=\\\"xs\\\"]) { --rg-radius: 3px; }\\n:host([size=\\\"sm\\\"]) { --rg-radius: 3px; }\\n\\n.rg-container {\\n display: inline-flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 6px;\\n}\\n\\n:host(:not([mode])) .rg-container .action-controls,\\n:host([mode=\\\"default\\\"]) .rg-container .action-controls {\\n display: flex;\\n align-self: center;\\n margin-left: 2px;\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--rg-radius);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 1.333em;\\n box-sizing: border-box;\\n}\\n\\n:host(:not([mode])) .rg-container .action-controls .action-btn,\\n:host([mode=\\\"default\\\"]) .rg-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 0.7em;\\n}\\n\\nslot {\\n display: none;\\n}\\n\\n.rg-radio-option {\\n display: inline-flex;\\n align-items: center;\\n gap: 6px;\\n cursor: pointer;\\n font-size: var(--rg-font-size);\\n color: var(--ae-color-text-main);\\n user-select: none;\\n}\\n\\n.rg-radio-input {\\n width: 14px;\\n height: 14px;\\n accent-color: var(--ae-color-solid, var(--ae-color-primary));\\n cursor: pointer;\\n margin: 0;\\n flex-shrink: 0;\\n}\\n\\n.rg-radio-label {\\n line-height: 1.5;\\n}\\n\\n.rg-btn {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: inherit;\\n font-size: var(--rg-font-size);\\n font-weight: 400;\\n height: var(--rg-height);\\n padding: var(--rg-padding);\\n min-width: var(--rg-min-width);\\n white-space: nowrap;\\n cursor: pointer;\\n user-select: none;\\n transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\\n outline: none;\\n border-radius: var(--rg-radius);\\n\\n background: var(--ae-surface-base);\\n border: 1px solid var(--ae-color-gray-light);\\n color: var(--ae-color-text-muted);\\n}\\n\\n.rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-surface-base-hover);\\n border-color: var(--ae-color-gray-light);\\n color: var(--ae-color-text-main);\\n}\\n\\n.rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n font-weight: 500;\\n box-shadow: 0 1px 4px rgb(from black r g b / 0.22);\\n}\\n\\n.rg-btn.selected:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n border-color: var(--ae-color-solid-hover);\\n}\\n\\n.rg-btn:active:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle-hover);\\n transform: translateY(1px);\\n}\\n\\n.rg-btn:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .rg-btn {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"outlined\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-accent);\\n color: var(--ae-color-accent-hover);\\n}\\n:host([variant=\\\"outlined\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .rg-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"subtle\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n}\\n:host([variant=\\\"subtle\\\"]) .rg-btn.selected {\\n background: var(--ae-color-subtle-hover);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n font-weight: 600;\\n box-shadow: none;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .rg-btn:not(.selected) {\\n background: var(--ae-surface-base);\\n border-color: var(--ae-border-default);\\n color: var(--ae-color-text-muted);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-surface-raised);\\n border-color: var(--ae-border-hover);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"button\\\"]) .rg-container {\\n gap: 6px;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-container {\\n gap: 0;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn:not(.first):not(.only) {\\n margin-left: -1px;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn.first {\\n border-radius: var(--rg-radius) 0 0 var(--rg-radius);\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.inner {\\n border-radius: var(--ae-radius-square);\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.last {\\n border-radius: 0 var(--rg-radius) var(--rg-radius) 0;\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.only {\\n border-radius: var(--rg-radius);\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn:hover:not(:disabled),\\n:host([mode=\\\"button-group\\\"]) .rg-btn.selected {\\n position: relative;\\n z-index: 1;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-container {\\n gap: 2px;\\n background: var(--ae-surface-raised);\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: calc(var(--rg-radius) + 2px);\\n padding: 2px;\\n flex-wrap: nowrap;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-text-muted);\\n border-radius: var(--rg-radius);\\n min-width: var(--rg-min-width);\\n box-shadow: none;\\n font-weight: 400;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-secondary, var(--ae-color-text-main));\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: transparent;\\n color: var(--ae-color-on-solid);\\n font-weight: 500;\\n box-shadow: 0 1px 4px rgb(from black r g b / 0.35);\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn.selected:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n}\\n\\n:host([mode=\\\"segmented\\\"]:not([color])) .rg-btn.selected {\\n background: var(--ae-color-gray-lighter);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"segmented\\\"][variant=\\\"outlined\\\"]) .rg-container {\\n border-color: var(--ae-color-border);\\n}\\n:host([mode=\\\"segmented\\\"][variant=\\\"outlined\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: transparent;\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn,\\n:host([mode=\\\"button\\\"]) .clear-btn,\\n:host([mode=\\\"button-group\\\"]) .reset-btn,\\n:host([mode=\\\"button-group\\\"]) .clear-btn,\\n:host([mode=\\\"segmented\\\"]) .reset-btn,\\n:host([mode=\\\"segmented\\\"]) .clear-btn {\\n height: var(--rg-height);\\n width: var(--rg-height);\\n border-radius: var(--rg-radius);\\n font-size: var(--rg-font-size);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn,\\n:host([mode=\\\"button\\\"]) .clear-btn,\\n:host([mode=\\\"button-group\\\"]) .reset-btn,\\n:host([mode=\\\"button-group\\\"]) .clear-btn,\\n:host([mode=\\\"segmented\\\"]) .reset-btn,\\n:host([mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border: 1px solid var(--ae-color-gray-light);\\n color: var(--ae-color-text-muted);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: var(--ae-color-gray-lighter);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: var(--ae-color-gray-lighter);\\n color: var(--ae-color-danger);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .clear-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .clear-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-danger);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .clear-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .clear-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: transparent;\\n color: var(--ae-color-danger);\\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: block;\\n font-size: var(--ae-size-base);\\n --switch-field-gap: 4px;\\n --toggle-width: 2.667em;\\n --toggle-height: 1.333em;\\n --toggle-slider-size: 1em;\\n --toggle-gap: calc((var(--toggle-height) - var(--toggle-slider-size)) / 2);\\n --toggle-border-radius: calc(var(--toggle-height) / 2);\\n --toggle-bg: var(--ae-color-gray);\\n --toggle-bg-checked: var(--ae-color-solid);\\n --toggle-slider-bg: white;\\n --toggle-transition: 0.2s;\\n}\\n\\n.switch-container {\\n display: flex;\\n align-items: center;\\n gap: var(--switch-field-gap);\\n}\\n\\n.switch-wrapper {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: var(--toggle-width);\\n height: var(--toggle-height);\\n flex-shrink: 0;\\n}\\n\\n.field-input {\\n position: absolute;\\n opacity: 0;\\n width: 100%;\\n height: 100%;\\n cursor: pointer;\\n margin: 0;\\n z-index: 1;\\n border: none;\\n border-radius: var(--ae-radius-square);\\n background: none;\\n accent-color: unset;\\n}\\n\\n.field-input:disabled {\\n cursor: not-allowed;\\n}\\n\\n.toggle-slider {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: var(--toggle-bg);\\n border-radius: var(--toggle-border-radius);\\n transition: var(--toggle-transition);\\n pointer-events: none;\\n}\\n\\n.toggle-slider::before {\\n content: '';\\n position: absolute;\\n height: var(--toggle-slider-size);\\n width: var(--toggle-slider-size);\\n left: var(--toggle-gap);\\n top: var(--toggle-gap);\\n background: var(--toggle-slider-bg);\\n border-radius: var(--ae-radius-circle);\\n transition: var(--toggle-transition);\\n}\\n\\n.field-input:checked + .toggle-slider {\\n background: var(--toggle-bg-checked);\\n}\\n\\n.field-input:checked + .toggle-slider::before {\\n transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));\\n}\\n\\n.field-input:disabled + .toggle-slider {\\n opacity: 0.5;\\n pointer-events: auto;\\n}\\n\\n.toggle-knob-icon ae-icon,\\n.track-icon ae-icon {\\n font-size: var(--toggle-icon-size, calc(var(--toggle-slider-size) * 0.72));\\n width: 1em;\\n height: 1em;\\n}\\n\\n.toggle-knob-icon {\\n position: absolute;\\n height: var(--toggle-slider-size);\\n width: var(--toggle-slider-size);\\n left: var(--toggle-gap);\\n top: var(--toggle-gap);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n color: var(--toggle-knob-icon-color, rgba(0, 0, 0, 0.6));\\n transition: var(--toggle-transition);\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon {\\n transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));\\n}\\n\\n.toggle-knob-icon.icon-checked {\\n opacity: 0;\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon.icon-checked {\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon.icon-unchecked {\\n opacity: 0;\\n}\\n\\n.track-icon {\\n position: absolute;\\n top: var(--toggle-gap);\\n width: var(--toggle-slider-size);\\n height: var(--toggle-slider-size);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n color: var(--toggle-track-icon-color, white);\\n transition: opacity var(--toggle-transition);\\n}\\n\\n.track-icon-left {\\n left: var(--toggle-gap);\\n opacity: 0;\\n}\\n\\n.track-icon-right {\\n right: var(--toggle-gap);\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .track-icon-left {\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .track-icon-right {\\n opacity: 0;\\n}\\n\\n.switch-container:has(.action-controls) .switch-wrapper .toggle-slider {\\n border-radius: var(--toggle-border-radius) 0 0 var(--toggle-border-radius);\\n}\\n\\n.switch-container .action-controls {\\n margin-left: calc(-1 * var(--switch-field-gap) - 1px);\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-left: none;\\n border-radius: 0 var(--toggle-border-radius) var(--toggle-border-radius) 0;\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n transition: border-color 0.12s;\\n height: var(--toggle-height);\\n box-sizing: border-box;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n/* Hide the separator template slot visually */\\n.sep-template {\\n display: none !important;\\n}\\n\\n.list {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n font-size: inherit;\\n line-height: 1.5;\\n}\\n\"", "module.exports = \":host {\\n display: contents;\\n}\\n\\n.item {\\n display: inline-flex;\\n align-items: center;\\n list-style: none;\\n white-space: nowrap;\\n}\\n\\n/* Separator \u2014 uses a fixed muted color that does NOT follow the breadcrumb's color prop */\\n.sep {\\n display: inline-flex;\\n align-items: center;\\n color: var(--ae-color-text-muted);\\n padding: 0 0.35em;\\n user-select: none;\\n pointer-events: none;\\n flex-shrink: 0;\\n font-size: 0.85em;\\n}\\n\\n/* Hide separator on the first item */\\n:host(:first-child) .sep,\\n:host(:first-of-type) .sep {\\n display: none;\\n}\\n\\n.label {\\n display: inline-flex;\\n align-items: center;\\n color: var(--ae-color-text-muted);\\n}\\n\\n/* Current page \u2014 last item */\\n:host([aria-current=\\\"page\\\"]) .label {\\n color: var(--ae-color-text-main);\\n font-weight: 500;\\n cursor: default;\\n}\\n\\n/* Link items */\\n.label a {\\n color: var(--ae-color-accent, var(--ae-color-text-link));\\n text-decoration: none;\\n outline: none;\\n}\\n\\n.label a:hover {\\n color: var(--ae-color-accent-hover, var(--ae-color-text-link-hover));\\n text-decoration: underline;\\n}\\n\\n.label a:focus-visible {\\n outline: 2px solid var(--ae-color-accent, var(--ae-focus-ring-color));\\n outline-offset: 2px;\\n border-radius: var(--ae-radius-xs);\\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\"", "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 0.571em;\\n font-size: 1em;\\n line-height: 1.5;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n height: 2.286em;\\n width: 2.286em;\\n min-width: unset;\\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/* Hide the fallback-text slot */\\nslot { display: none; }\\n\\n/* Icon visibility */\\n.icon-copy,\\n.icon-check {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n}\\n\\n.icon-copy { opacity: 1; transform: scale(1); }\\n.icon-check { opacity: 0; transform: scale(0.6); }\\n\\n:host([copied]) .icon-copy { opacity: 0; transform: scale(0.6); }\\n:host([copied]) .icon-check { opacity: 1; transform: scale(1); }\\n\\n/* Variants */\\n:host([variant=\\\"outlined\\\"]) button {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\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=\\\"faint\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"faint\\\"]) 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 {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"subtle\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"text\\\"]) button:hover:not(:disabled) {\\n color: var(--ae-color-accent-hover);\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n position: relative;\\n vertical-align: middle;\\n\\n --ae-tooltip-z-index: 1000;\\n --ae-tooltip-bg: var(--ae-dark, #343a40);\\n --ae-tooltip-color: #fff;\\n --ae-tooltip-padding: 0.3125rem 0.625rem;\\n --ae-tooltip-font-size: 0.8125rem;\\n --ae-tooltip-arrow-size: 5px;\\n --ae-tooltip-gap: 6px;\\n --ae-tooltip-max-width: 20rem;\\n}\\n\\n:host-context([theme=\\\"dark\\\"]) {\\n --ae-tooltip-bg: var(--ae-light, #f8f9fa);\\n --ae-tooltip-color: var(--ae-dark, #343a40);\\n}\\n\\n.tooltip-panel {\\n display: none;\\n position: fixed;\\n z-index: var(--ae-tooltip-z-index);\\n background: var(--ae-tooltip-bg);\\n color: var(--ae-tooltip-color);\\n padding: var(--ae-tooltip-padding);\\n font-size: var(--ae-tooltip-font-size);\\n font-family: inherit;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n line-height: 1.4;\\n white-space: nowrap;\\n max-width: var(--ae-tooltip-max-width);\\n pointer-events: none;\\n box-sizing: border-box;\\n}\\n\\n:host([open]) .tooltip-panel {\\n display: block;\\n}\\n\\n/* Arrow */\\n.tooltip-panel::after {\\n content: '';\\n position: absolute;\\n border: var(--ae-tooltip-arrow-size) solid transparent;\\n pointer-events: none;\\n}\\n\\n.placement-top::after,\\n.placement-top-start::after,\\n.placement-top-end::after {\\n top: 100%;\\n border-top-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-top::after {\\n left: 50%;\\n transform: translateX(-50%);\\n}\\n\\n.placement-top-start::after {\\n left: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-top-end::after {\\n right: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-bottom::after,\\n.placement-bottom-start::after,\\n.placement-bottom-end::after {\\n bottom: 100%;\\n border-bottom-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-bottom::after {\\n left: 50%;\\n transform: translateX(-50%);\\n}\\n\\n.placement-bottom-start::after {\\n left: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-bottom-end::after {\\n right: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-left::after {\\n left: 100%;\\n top: 50%;\\n transform: translateY(-50%);\\n border-left-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-right::after {\\n right: 100%;\\n top: 50%;\\n transform: translateY(-50%);\\n border-right-color: var(--ae-tooltip-bg);\\n}\\n\"", "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 = \":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 {\\n display: inline-flex;\\n align-items: stretch;\\n gap: 8px;\\n}\\n\\n:host([block]) {\\n display: flex;\\n width: 100%;\\n}\\n\\n:host([block]) ::slotted(ae-button) {\\n flex: 1;\\n}\\n\\n:host([compact]) {\\n gap: 0;\\n /* Reset --ae-border-radius so individual --_btn-r-* corners take effect */\\n --ae-border-radius: initial;\\n}\\n\\n/* Raise hovered/focused button so its border shows above neighbours */\\n:host([compact]) ::slotted(ae-button:hover),\\n:host([compact]) ::slotted(ae-button:focus-within) {\\n position: relative;\\n z-index: 1;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.badge {\\n display: inline-flex;\\n align-items: center;\\n gap: 4px;\\n font-family: inherit;\\n font-weight: 500;\\n white-space: nowrap;\\n vertical-align: middle;\\n line-height: 1.2;\\n font-size: 1em;\\n padding: 0.15em 0.6em;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n/* Default (no [variant]) = filled */\\n\\n/* --- Variants --- */\\n\\n:host([variant=\\\"outlined\\\"]) .badge {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .badge {\\n background: var(--ae-color-bg-subtle);\\n border-color: var(--ae-color-border-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .badge {\\n background: var(--ae-color-bg-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .badge {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n padding-left: 0;\\n padding-right: 0;\\n}\\n\\n:host([pill]) .badge {\\n border-radius: var(--ae-radius-pill);\\n}\\n\\n/* Icon slots */\\n::slotted(ae-icon) {\\n font-size: 1.1em;\\n}\\n\"", "module.exports = \".alert {\\n position: relative;\\n padding: 12px 16px;\\n margin-bottom: 12px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n font-size: 12px;\\n line-height: 1.6;\\n background-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n border: 1px solid var(--ae-color-solid);\\n}\\n\\n.alert:last-child {\\n margin-bottom: 0;\\n}\\n\\n/* default color (no [color] attribute) \u2014 primary */\\n:host(:not([color])) {\\n --ae-color-solid: var(--ae-color-primary);\\n --ae-color-on-solid: var(--ae-color-text-main);\\n --ae-color-border: var(--ae-color-primary);\\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\\n:host([variant=\\\"faint\\\"]) .alert {\\n background-color: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n border-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .alert {\\n background-color: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n border-color: transparent;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .alert {\\n background-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n border-color: var(--ae-color-solid);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .alert {\\n background-color: transparent;\\n color: var(--ae-color-text-subtle);\\n border-color: var(--ae-color-border);\\n}\\n\\n:host([dismissible]) .alert {\\n padding-right: 40px;\\n}\\n\\n:host([icon]) .alert {\\n display: flex;\\n align-items: flex-start;\\n gap: 10px;\\n}\\n\\n:host([icon]) .alert::before {\\n content: '';\\n flex-shrink: 0;\\n width: 16px;\\n height: 16px;\\n margin-top: 2px;\\n}\\n\\n.alert-close {\\n position: absolute;\\n top: 50%;\\n right: 12px;\\n transform: translateY(-50%);\\n background: transparent;\\n border: none;\\n color: inherit;\\n opacity: 0.6;\\n cursor: pointer;\\n padding: 4px;\\n font-size: 18px;\\n line-height: 1;\\n transition: opacity 0.15s;\\n}\\n\\n.alert-close:hover {\\n opacity: 1;\\n}\\n\\n:host([size=\\\"sm\\\"]) .alert {\\n padding: 8px 12px;\\n font-size: 11px;\\n}\\n\\n:host([size=\\\"lg\\\"]) .alert {\\n padding: 16px 20px;\\n font-size: 13px;\\n}\\n\"", "module.exports = \":host {\\n display: contents;\\n}\\n\\ndialog {\\n display: none;\\n flex-direction: column;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n padding: 0;\\n max-width: min(90vw, 600px);\\n max-height: 90vh;\\n background: var(--ae-surface-overlay);\\n color: var(--ae-color-text-main);\\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n}\\n\\ndialog[open] {\\n display: flex;\\n animation: dialog-slide-in 0.2s ease;\\n}\\n\\ndialog::backdrop {\\n background: var(--color-overlay);\\n animation: dialog-backdrop-in 0.2s ease;\\n}\\n\\n@keyframes dialog-backdrop-in {\\n from { opacity: 0; }\\n to { opacity: 1; }\\n}\\n\\n@keyframes dialog-slide-in {\\n from {\\n opacity: 0;\\n transform: scale(0.96) translateY(-8px);\\n }\\n to {\\n opacity: 1;\\n transform: scale(1) translateY(0);\\n }\\n}\\n\\nheader {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 16px 20px;\\n border-bottom: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n.label {\\n flex: 1;\\n font-size: var(--ae-size-m, 1rem);\\n font-weight: 500;\\n margin: 0;\\n color: var(--ae-color-text-main);\\n}\\n\\n.close-btn {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: 28px;\\n height: 28px;\\n padding: 0;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 18px;\\n line-height: 1;\\n cursor: pointer;\\n transition: background 0.15s, color 0.15s;\\n}\\n\\n.close-btn:hover {\\n background: var(--ae-border-subtle);\\n color: var(--ae-color-text-main);\\n}\\n\\n.body {\\n flex: 1;\\n overflow-y: auto;\\n padding: 20px;\\n}\\n\\nfooter {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 8px;\\n padding: 12px 20px;\\n border-top: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n::slotted([data-align-left]) {\\n margin-right: auto;\\n}\\n\"", "module.exports = \":host {\\n display: none;\\n}\\n\\n:host([data-open]) {\\n display: block;\\n position: fixed;\\n inset: 0;\\n z-index: var(--ae-drawer-z-index, 1000);\\n pointer-events: none;\\n}\\n\\n.backdrop {\\n position: absolute;\\n inset: 0;\\n background: var(--color-overlay);\\n animation: drawer-backdrop-in 0.2s ease;\\n pointer-events: auto;\\n}\\n\\n:host([data-closing]) .backdrop {\\n animation: drawer-backdrop-out 0.2s ease forwards;\\n}\\n\\n.panel {\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n background: var(--ae-surface-overlay);\\n color: var(--ae-color-text-main);\\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n outline: none;\\n}\\n\\n.panel.placement-right {\\n inset: 0 0 0 auto;\\n width: var(--ae-drawer-size, 320px);\\n max-width: 100%;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg)) 0 0 var(--ae-border-radius, var(--ae-radius-lg));\\n animation: drawer-slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-right {\\n animation: drawer-slide-out-right 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-left {\\n inset: 0 auto 0 0;\\n width: var(--ae-drawer-size, 320px);\\n max-width: 100%;\\n border-radius: 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0;\\n animation: drawer-slide-in-left 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-left {\\n animation: drawer-slide-out-left 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-top {\\n inset: 0 0 auto 0;\\n height: var(--ae-drawer-size, 320px);\\n max-height: 100%;\\n border-radius: 0 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg));\\n animation: drawer-slide-in-top 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-top {\\n animation: drawer-slide-out-top 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-bottom {\\n inset: auto 0 0 0;\\n height: var(--ae-drawer-size, 320px);\\n max-height: 100%;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0 0;\\n animation: drawer-slide-in-bottom 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-bottom {\\n animation: drawer-slide-out-bottom 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n@keyframes drawer-backdrop-in {\\n from { opacity: 0; }\\n to { opacity: 1; }\\n}\\n\\n@keyframes drawer-backdrop-out {\\n from { opacity: 1; }\\n to { opacity: 0; }\\n}\\n\\n@keyframes drawer-slide-in-right {\\n from { transform: translateX(100%); }\\n to { transform: translateX(0); }\\n}\\n\\n@keyframes drawer-slide-out-right {\\n from { transform: translateX(0); }\\n to { transform: translateX(100%); }\\n}\\n\\n@keyframes drawer-slide-in-left {\\n from { transform: translateX(-100%); }\\n to { transform: translateX(0); }\\n}\\n\\n@keyframes drawer-slide-out-left {\\n from { transform: translateX(0); }\\n to { transform: translateX(-100%); }\\n}\\n\\n@keyframes drawer-slide-in-top {\\n from { transform: translateY(-100%); }\\n to { transform: translateY(0); }\\n}\\n\\n@keyframes drawer-slide-out-top {\\n from { transform: translateY(0); }\\n to { transform: translateY(-100%); }\\n}\\n\\n@keyframes drawer-slide-in-bottom {\\n from { transform: translateY(100%); }\\n to { transform: translateY(0); }\\n}\\n\\n@keyframes drawer-slide-out-bottom {\\n from { transform: translateY(0); }\\n to { transform: translateY(100%); }\\n}\\n\\nheader {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 16px 20px;\\n border-bottom: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n.label {\\n flex: 1;\\n font-size: var(--ae-size-m, 1rem);\\n font-weight: 500;\\n margin: 0;\\n color: var(--ae-color-text-main);\\n}\\n\\n.close-btn {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: 28px;\\n height: 28px;\\n padding: 0;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 18px;\\n line-height: 1;\\n cursor: pointer;\\n transition: background 0.15s, color 0.15s;\\n}\\n\\n.close-btn:hover {\\n background: var(--ae-border-subtle);\\n color: var(--ae-color-text-main);\\n}\\n\\n.body {\\n flex: 1;\\n overflow-y: auto;\\n padding: 20px;\\n}\\n\\nfooter {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 8px;\\n padding: 12px 20px;\\n border-top: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n::slotted([data-align-left]) {\\n margin-right: auto;\\n}\\n\"", "module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n gap: var(--ae-tabs-gap, 0);\\n overflow: hidden;\\n border: 1px solid transparent;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n background: transparent;\\n}\\n\\n[part=\\\"tab-nav\\\"] {\\n display: flex;\\n flex-shrink: 0;\\n}\\n\\n[part=\\\"panels\\\"] {\\n flex: 1;\\n overflow: auto;\\n}\\n\\n:host([variant=\\\"filled\\\"]) {\\n border-color: var(--ae-color-gray);\\n background: var(--ae-color-gray);\\n}\\n\\n:host([variant=\\\"filled\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid color-mix(in srgb, var(--ae-color-gray), black 15%);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) {\\n border-color: var(--ae-border-hover);\\n background: transparent;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid var(--ae-border-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid var(--ae-border-default);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) {\\n border-color: transparent;\\n background: var(--ae-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) {\\n border-color: transparent;\\n background: transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid transparent;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n cursor: pointer;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n gap: 6px;\\n padding: 8px 16px;\\n background: none;\\n border: none;\\n border-bottom: 2px solid transparent;\\n cursor: pointer;\\n font-size: inherit;\\n font-family: inherit;\\n color: var(--ae-tab-color, #909090);\\n font-size: var(--ae-tab-font-size, inherit);\\n transition: color 0.15s, border-color 0.15s;\\n outline: none;\\n white-space: nowrap;\\n user-select: none;\\n}\\n\\nbutton:hover {\\n color: var(--ae-tab-hover-color, var(--ae-color-primary));\\n}\\n\\nbutton:focus-visible {\\n outline: 2px solid var(--ae-color-primary);\\n outline-offset: -2px;\\n}\\n\\n:host([active]) button {\\n color: var(--ae-tab-active-color, var(--ae-color-primary));\\n border-bottom-color: var(--ae-tab-active-color, var(--ae-color-primary));\\n}\\n\\n:host([disabled]) button {\\n opacity: 0.4;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\"", "module.exports = \":host {\\n display: none;\\n padding: var(--ae-tab-panel-padding, 16px 0);\\n}\\n\\n:host([active]) {\\n display: block;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n width: 100%;\\n height: var(--thickness, 1px);\\n flex-shrink: 0;\\n\\n /* Override color.css default \u2014 divider uses the subtle border token when no [color] is set */\\n --ae-color-border: var(--ae-border-default);\\n\\n background: var(--ae-color-border);\\n}\\n\\n:host([vertical]) {\\n display: inline-block;\\n width: var(--thickness, 1px);\\n height: 1lh;\\n vertical-align: middle;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.card {\\n border: 1px solid var(--ae-color-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n overflow: hidden;\\n}\\n\\n:host([variant=\\\"faint\\\"]) .card {\\n border-color: var(--ae-color-border-subtle);\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .card {\\n border-color: transparent;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .card {\\n border-color: var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .card {\\n border-color: var(--ae-color-border);\\n background: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .card {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-text-main);\\n}\\n\\n.header,\\n.footer {\\n display: none;\\n padding: 10px 16px;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n:host([has-header]) .header {\\n display: block;\\n border-bottom: 1px solid var(--ae-color-border-subtle);\\n}\\n\\n:host([has-footer]) .footer {\\n display: block;\\n border-top: 1px solid var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"filled\\\"][has-header]) .header {\\n border-bottom-color: rgba(0, 0, 0, 0.15);\\n}\\n\\n:host([variant=\\\"filled\\\"][has-footer]) .footer {\\n border-top-color: rgba(0, 0, 0, 0.15);\\n}\\n\\n:host([variant=\\\"outlined\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"outlined\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"][has-header]) .header {\\n border-bottom-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"text\\\"][has-footer]) .footer {\\n border-top-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n.body {\\n padding: 16px;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n position: static;\\n top: auto;\\n z-index: var(--ae-navbar-z-index, 100);\\n box-sizing: border-box;\\n height: var(--ae-navbar-height, 3.25rem);\\n border-radius: var(--ae-navbar-radius, 0);\\n\\n background: var(--ae-navbar-bg, var(--ae-surface-base));\\n color: var(--ae-navbar-color, var(--ae-color-text-main));\\n border-bottom: var(--ae-navbar-border-width, 1px) solid var(--ae-navbar-border-color, var(--ae-border-default));\\n box-shadow: var(--ae-navbar-shadow, none);\\n\\n --ae-navbar-radius: 0;\\n --ae-navbar-padding-x: var(--container-padding-x, 1.5rem);\\n --ae-navbar-gap: 0.5rem;\\n --ae-navbar-link-color: inherit;\\n --ae-navbar-link-font-size: inherit;\\n --ae-navbar-link-padding-x: 0.75rem;\\n --ae-navbar-link-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n --ae-navbar-link-hover-color: var(--ae-color-text-link-hover);\\n --ae-navbar-link-hover-bg: transparent;\\n --ae-navbar-link-active-color: var(--ae-color-text-link);\\n --ae-navbar-link-active-font-weight: 600;\\n}\\n\\n:host([sticky]) {\\n position: sticky;\\n top: 0;\\n}\\n\\n:host([color]) {\\n --ae-navbar-bg: var(--ae-color-solid);\\n --ae-navbar-color: var(--ae-color-on-solid);\\n --ae-navbar-border-color: transparent;\\n --ae-navbar-link-hover-color: var(--ae-color-on-solid);\\n --ae-navbar-link-active-color: var(--ae-color-on-solid);\\n}\\n\\n:host([appearance=\\\"block\\\"]) {\\n --ae-navbar-link-hover-bg: var(--ae-color-bg-subtle);\\n --ae-navbar-link-hover-color: inherit;\\n --ae-navbar-link-radius: 0;\\n}\\n\\n:host([color][appearance=\\\"block\\\"]) {\\n --ae-navbar-link-hover-bg: rgba(255, 255, 255, 0.15);\\n --ae-navbar-link-hover-color: var(--ae-color-on-solid);\\n --ae-navbar-link-radius: 0;\\n}\\n\\n.inner {\\n display: flex;\\n align-items: center;\\n height: 100%;\\n padding: 0 var(--ae-navbar-padding-x);\\n gap: var(--ae-navbar-gap);\\n box-sizing: border-box;\\n}\\n\\n[part=\\\"brand\\\"] {\\n flex: 0 0 auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n[part=\\\"nav\\\"] {\\n flex: 1 1 auto;\\n display: flex;\\n align-self: stretch;\\n align-items: stretch;\\n min-width: 0;\\n}\\n\\n[part=\\\"start\\\"],\\n[part=\\\"end\\\"] {\\n flex: 0 0 auto;\\n display: flex;\\n align-self: stretch;\\n}\\n\\n[part=\\\"start\\\"] {\\n align-items: stretch;\\n gap: var(--ae-navbar-start-gap, 0);\\n}\\n\\n[part=\\\"end\\\"] {\\n align-items: center;\\n gap: var(--ae-navbar-end-gap, 0.5rem);\\n margin-left: auto;\\n}\\n\\n[part=\\\"hamburger\\\"] {\\n display: none;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n gap: 5px;\\n flex-shrink: 0;\\n width: var(--ae-navbar-hamburger-size, 2rem);\\n height: var(--ae-navbar-hamburger-size, 2rem);\\n margin-left: auto;\\n padding: 0;\\n background: none;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n cursor: pointer;\\n color: var(--ae-navbar-hamburger-color, inherit);\\n}\\n\\n[part=\\\"hamburger\\\"]:hover {\\n background: color-mix(in srgb, currentColor 10%, transparent);\\n}\\n\\n[part=\\\"hamburger\\\"] span {\\n display: block;\\n width: 18px;\\n height: 2px;\\n background: currentColor;\\n border-radius: 1px;\\n transition: transform 0.2s ease, opacity 0.2s ease;\\n}\\n\\n::slotted(a[slot=\\\"brand\\\"]) {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-weight: 700;\\n font-size: 1.05rem;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n::slotted(a[slot=\\\"start\\\"]),\\n::slotted(a[slot=\\\"end\\\"]) {\\n display: inline-flex;\\n align-items: center;\\n height: var(--ae-navbar-height, 3.25rem);\\n padding: 0 var(--ae-navbar-link-padding-x) !important;\\n border-radius: var(--ae-navbar-link-radius);\\n color: var(--ae-navbar-link-color);\\n font-size: var(--ae-navbar-link-font-size);\\n text-decoration: none;\\n white-space: nowrap;\\n transition: color 0.15s ease, background-color 0.15s ease;\\n outline-offset: 2px;\\n}\\n\\n::slotted(a[slot=\\\"start\\\"]:hover),\\n::slotted(a[slot=\\\"end\\\"]:hover) {\\n color: var(--ae-navbar-link-hover-color);\\n background-color: var(--ae-navbar-link-hover-bg);\\n}\\n\\n::slotted(a[slot=\\\"start\\\"][aria-current=\\\"page\\\"]),\\n::slotted(a[slot=\\\"end\\\"][aria-current=\\\"page\\\"]) {\\n color: var(--ae-navbar-link-active-color);\\n font-weight: var(--ae-navbar-link-active-font-weight);\\n}\\n\\n::slotted(ae-dropdown) {\\n align-self: stretch;\\n --dropdown-trigger-height: 100%;\\n --dropdown-trigger-padding-x: var(--ae-navbar-link-padding-x);\\n --dropdown-trigger-color: var(--ae-navbar-link-color);\\n --dropdown-trigger-bg: none;\\n --dropdown-trigger-radius: var(--ae-navbar-link-radius);\\n --dropdown-trigger-font-size: var(--ae-navbar-link-font-size);\\n --dropdown-trigger-hover-color: var(--ae-navbar-link-hover-color);\\n --dropdown-trigger-hover-bg: var(--ae-navbar-link-hover-bg);\\n}\\n\\n@media (max-width: 768px) {\\n [part=\\\"nav\\\"] {\\n display: none;\\n position: absolute;\\n top: 100%;\\n left: 0;\\n right: 0;\\n flex-direction: column;\\n align-items: stretch;\\n gap: 0;\\n padding: 0.5rem 0;\\n background: var(--ae-navbar-mobile-bg, var(--ae-navbar-bg, var(--ae-surface-base)));\\n border-bottom: 1px solid var(--ae-navbar-border-color, var(--ae-border-default));\\n box-shadow: var(--ae-navbar-mobile-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));\\n z-index: 1;\\n }\\n\\n :host([open]) [part=\\\"nav\\\"] {\\n display: flex;\\n }\\n\\n [part=\\\"start\\\"],\\n [part=\\\"end\\\"] {\\n flex-direction: column;\\n align-items: flex-start;\\n align-self: auto;\\n gap: 0;\\n margin-left: 0;\\n width: 100%;\\n }\\n\\n ::slotted(a[slot=\\\"start\\\"]),\\n ::slotted(a[slot=\\\"end\\\"]) {\\n height: auto;\\n width: 100%;\\n padding: 0.75rem var(--ae-navbar-link-padding-x);\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n }\\n\\n [part=\\\"hamburger\\\"] {\\n display: flex;\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(1) {\\n transform: translateY(7px) rotate(45deg);\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(2) {\\n opacity: 0;\\n transform: scaleX(0);\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(3) {\\n transform: translateY(-7px) rotate(-45deg);\\n }\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n vertical-align: middle;\\n --spinner-size: 1.75em;\\n --spinner-thickness: 0.15em;\\n --spinner-speed: 0.75s;\\n}\\n\\n:host([size=\\\"xs\\\"]) { font-size: 0.75rem; }\\n:host([size=\\\"sm\\\"]) { font-size: 0.875rem; }\\n:host([size=\\\"md\\\"]) { font-size: 1rem; }\\n:host([size=\\\"lg\\\"]) { font-size: 1.5rem; }\\n\\n.track {\\n display: inline-block;\\n width: var(--spinner-size);\\n height: var(--spinner-size);\\n border-radius: var(--ae-radius-circle);\\n border: var(--spinner-thickness) solid var(--ae-color-bg-subtle, rgba(0, 0, 0, 0.08));\\n border-top-color: var(--ae-color-solid);\\n animation: ae-spin var(--spinner-speed) linear infinite;\\n box-sizing: border-box;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .track {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: calc(var(--spinner-size) * 0.2);\\n width: auto;\\n height: var(--spinner-size);\\n border: none;\\n border-radius: var(--ae-radius-square);\\n animation: none;\\n background: transparent;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot {\\n display: inline-block;\\n width: calc(var(--spinner-size) * 0.28);\\n height: calc(var(--spinner-size) * 0.28);\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n animation: ae-bounce var(--spinner-speed) ease-in-out infinite;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot:nth-child(2) {\\n animation-delay: calc(var(--spinner-speed) / 6);\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot:nth-child(3) {\\n animation-delay: calc(var(--spinner-speed) / 3);\\n}\\n\\n@keyframes ae-spin {\\n to { transform: rotate(360deg); }\\n}\\n\\n@keyframes ae-bounce {\\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.5; }\\n 40% { transform: scale(1); opacity: 1; }\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .track {\\n animation: none;\\n border-top-color: var(--ae-color-solid);\\n opacity: 0.6;\\n }\\n\\n :host([variant=\\\"dots\\\"]) .dot {\\n animation: none;\\n opacity: 0.6;\\n }\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --detail-radius: 6px;\\n}\\n\\n.detail {\\n border: 1px solid var(--ae-color-solid);\\n border-radius:\\n var(--detail-r-tl, var(--detail-radius))\\n var(--detail-r-tr, var(--detail-radius))\\n var(--detail-r-br, var(--detail-radius))\\n var(--detail-r-bl, var(--detail-radius));\\n color: var(--ae-color-on-solid);\\n background: var(--ae-color-solid);\\n overflow: hidden;\\n}\\n\\n/* variant overrides */\\n:host([variant=\\\"subtle\\\"]) .detail {\\n border-color: transparent;\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .summary { background: var(--ae-color-bg-subtle); }\\n\\n:host([variant=\\\"faint\\\"]) .detail {\\n border-color: var(--ae-color-border-subtle);\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .summary { background: var(--ae-color-bg-subtle); }\\n\\n:host([variant=\\\"text\\\"]) .detail {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([variant=\\\"text\\\"]) .summary {\\n background: transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) .label {\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .detail {\\n border-color: var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .summary {\\n background: color-mix(in srgb, var(--ae-color-solid), black 10%);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .detail {\\n border-color: var(--ae-color-border);\\n background: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .summary { background: transparent; }\\n\\n.summary {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n width: 100%;\\n padding: 10px 14px;\\n background: color-mix(in srgb, var(--ae-color-solid), black 10%);\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 500;\\n border: none;\\n cursor: pointer;\\n text-align: left;\\n outline-offset: -2px;\\n user-select: none;\\n}\\n\\n.summary:hover {\\n filter: brightness(0.93);\\n}\\n\\n.summary:focus-visible {\\n outline: 2px solid var(--ae-color-border);\\n}\\n\\nslot[name=\\\"summary\\\"] {\\n display: flex;\\n align-items: center;\\n flex: 1;\\n min-width: 0;\\n}\\n\\n.label {\\n flex: 1;\\n}\\n\\nslot[name=\\\"expand\\\"],\\nslot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n flex-shrink: 0;\\n}\\n\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"expand\\\"],\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"collapse\\\"] {\\n order: -1;\\n}\\n\\nslot[name=\\\"collapse\\\"] {\\n display: none;\\n}\\n\\n:host([open]) slot[name=\\\"expand\\\"] {\\n display: none;\\n}\\n\\n:host([open]) slot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n}\\n\\n.content-outer {\\n display: grid;\\n grid-template-rows: 0fr;\\n transition: grid-template-rows 0.25s ease;\\n}\\n\\n:host([open]) .content-outer {\\n grid-template-rows: 1fr;\\n}\\n\\n.content {\\n overflow: hidden;\\n padding: 0 14px;\\n transition: padding 0.25s ease;\\n}\\n\\n:host([open]) .content {\\n padding: 12px 14px;\\n}\\n\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n/* Raise hovered/focused item so its border shows above neighbours */\\n::slotted(ae-detail:hover),\\n::slotted(ae-detail:focus-within) {\\n position: relative;\\n z-index: 1;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n --progress-height: 8px;\\n}\\n\\n.progress-track {\\n width: 100%;\\n height: var(--progress-height);\\n background: var(--ae-border-subtle);\\n border-radius: calc(var(--progress-height) / 2);\\n overflow: hidden;\\n}\\n\\n.progress-bar {\\n display: block;\\n height: 100%;\\n border-radius: inherit;\\n background: var(--progress-bar-color, var(--ae-color-solid));\\n width: 0%;\\n transition: width 0.35s ease;\\n position: relative;\\n}\\n\\n/* animated: shimmer sweep on top of the solid fill */\\n:host([animated]) .progress-bar::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n border-radius: inherit;\\n background: linear-gradient(\\n 90deg,\\n transparent 0%,\\n rgba(255, 255, 255, 0.35) 50%,\\n transparent 100%\\n );\\n background-size: 200% 100%;\\n animation: progress-shimmer 1.4s linear infinite;\\n}\\n\\n@keyframes progress-shimmer {\\n 0% { background-position: 200% 0; }\\n 100% { background-position: -200% 0; }\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.menu-list {\\n display: flex;\\n flex-direction: column;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n gap: 0;\\n}\\n\\n.menu-list--horizontal {\\n flex-direction: row;\\n align-items: stretch;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n position: relative;\\n\\n --menu-item-height: 2.5rem;\\n --menu-item-padding-x: 0.875rem;\\n --menu-item-font-size: 0.9375rem;\\n --menu-item-color: inherit;\\n --menu-item-color-disabled: var(--ae-color-text-disabled);\\n --menu-item-bg: transparent;\\n --menu-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.05));\\n --menu-item-active-color: var(--ae-color-primary, var(--ae-blue-500));\\n --menu-item-active-border-color: var(--ae-color-primary, var(--ae-blue-500));\\n\\n --submenu-z-index: 1001;\\n --submenu-bg: var(--ae-surface-overlay, #fff);\\n --submenu-border: 1px solid var(--ae-border-default);\\n --submenu-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\\n --submenu-min-width: 10rem;\\n --submenu-padding: 0.25rem 0;\\n}\\n\\n.item {\\n display: inline-flex;\\n align-items: center;\\n gap: 0.4rem;\\n width: 100%;\\n height: var(--menu-item-height);\\n padding: 0 var(--menu-item-padding-x);\\n font-size: var(--menu-item-font-size);\\n font-family: inherit;\\n color: var(--menu-item-color);\\n background: var(--menu-item-bg);\\n border: none;\\n border-bottom: 2px solid transparent;\\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 outline: none;\\n transition: background 0.1s, color 0.1s, border-color 0.1s;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.item--leaf-in-panel {\\n height: auto;\\n padding: 0.5rem var(--menu-item-padding-x);\\n border-bottom: none;\\n}\\n\\n.item--wrap {\\n white-space: normal;\\n height: auto;\\n min-height: var(--menu-item-height);\\n}\\n\\n.item:hover:not(:disabled) {\\n background: var(--menu-item-bg-hover);\\n}\\n\\n.item:focus-visible {\\n background: var(--menu-item-bg-hover);\\n outline: 2px solid var(--menu-item-active-color);\\n outline-offset: -2px;\\n}\\n\\n:host([disabled]) .item,\\n.item:disabled {\\n color: var(--menu-item-color-disabled);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n:host([selected]) .item {\\n color: var(--menu-item-active-color);\\n border-bottom-color: var(--menu-item-active-border-color);\\n}\\n\\n.item-arrow {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n flex-shrink: 0;\\n}\\n\\n.item-arrow--right {\\n border-top: 0.3em solid transparent;\\n border-bottom: 0.3em solid transparent;\\n border-left: 0.3em solid;\\n}\\n\\n.item-arrow--bottom {\\n border-left: 0.3em solid transparent;\\n border-right: 0.3em solid transparent;\\n border-top: 0.3em solid;\\n}\\n\\n.item--open .item-arrow--right {\\n transform: rotate(90deg);\\n}\\n\\nslot[name=\\\"expand\\\"],\\nslot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n margin-inline-start: auto;\\n flex-shrink: 0;\\n}\\n\\nslot[name=\\\"collapse\\\"] {\\n display: none;\\n}\\n\\n.item--open slot[name=\\\"expand\\\"] {\\n display: none;\\n}\\n\\n.item--open slot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\nslot[name=\\\"collapse\\\"] .item-arrow--right {\\n transform: rotate(90deg);\\n}\\n\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"expand\\\"],\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"collapse\\\"] {\\n order: -1;\\n margin-inline-start: 0;\\n}\\n\\n.submenu-panel {\\n display: none;\\n position: absolute;\\n z-index: var(--submenu-z-index);\\n background: var(--submenu-bg);\\n border: var(--submenu-border);\\n border-radius: var(--ae-border-radius, var(--ae-radius-md));\\n box-shadow: var(--submenu-shadow);\\n min-width: var(--submenu-min-width);\\n padding: var(--submenu-padding);\\n box-sizing: border-box;\\n max-width: calc(100vw - 16px);\\n}\\n\\n.submenu-panel.open {\\n display: block;\\n}\\n\\n.submenu-panel.placement-bottom {\\n top: 100%;\\n left: 0;\\n margin-top: 2px;\\n}\\n\\n.submenu-panel.placement-right {\\n top: 0;\\n left: 100%;\\n margin-left: 2px;\\n}\\n\\n.submenu-inline {\\n display: none;\\n padding-left: 1rem;\\n}\\n\\n.submenu-inline.open {\\n display: block;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n font-size: var(--ae-size-m);\\n}\\n\\nnav {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n margin: 0;\\n padding: 0;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 2em;\\n height: 2em;\\n padding: 0 0.5em;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: 1;\\n cursor: pointer;\\n user-select: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-border-default);\\n background: transparent;\\n color: var(--ae-color-text-main);\\n transition: background 0.15s, border-color 0.15s, color 0.15s;\\n outline: none;\\n}\\n\\nbutton:focus-visible {\\n box-shadow: 0 0 0 2px var(--ae-focus-ring);\\n border-color: var(--ae-border-focus);\\n}\\n\\nbutton:hover:not(:disabled) {\\n border-color: var(--ae-color-primary);\\n color: var(--ae-color-primary);\\n background: var(--ae-color-primary-bg-subtle);\\n}\\n\\nbutton:active:not(:disabled) {\\n background: color-mix(in srgb, var(--ae-color-primary-bg-subtle), var(--ae-color-primary) 10%);\\n}\\n\\nbutton:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n}\\n\\nbutton.active {\\n background: var(--ae-color-primary);\\n border-color: var(--ae-color-primary);\\n color: white;\\n font-weight: 600;\\n cursor: default;\\n}\\n\\nbutton.active:hover:not(:disabled) {\\n background: var(--ae-color-primary-hover);\\n border-color: var(--ae-color-primary-hover);\\n color: white;\\n}\\n\\nbutton.nav-btn {\\n min-width: 2em;\\n width: 2em;\\n padding: 0;\\n}\\n\\n[part=\\\"ellipsis\\\"] {\\n display: inline-flex;\\n align-items: flex-end;\\n justify-content: center;\\n min-width: 2em;\\n height: 2em;\\n color: var(--ae-color-text-muted);\\n user-select: none;\\n letter-spacing: 0.1em;\\n padding-bottom: 0.2em;\\n}\\n\\ninput[part=\\\"page-input\\\"] {\\n width: 3em;\\n height: 2em;\\n padding: 0 0.4em;\\n text-align: center;\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-border-radius));\\n font-size: inherit;\\n font-family: inherit;\\n color: var(--ae-color-text-main);\\n background: var(--ae-surface-base);\\n box-shadow: none;\\n -webkit-appearance: none;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n outline: none;\\n transition: border-color 0.15s, box-shadow 0.15s;\\n}\\n\\ninput[part=\\\"page-input\\\"]:hover:not(:disabled) {\\n border-color: var(--ae-border-default);\\n}\\n\\ninput[part=\\\"page-input\\\"]::-webkit-inner-spin-button,\\ninput[part=\\\"page-input\\\"]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\ninput[part=\\\"page-input\\\"]:focus {\\n border-color: var(--ae-border-focus);\\n box-shadow: 0 0 0 2px var(--ae-focus-ring);\\n}\\n\\ninput[part=\\\"page-input\\\"]:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n}\\n\\n[part=\\\"page-total\\\"] {\\n color: var(--ae-color-text-muted);\\n white-space: nowrap;\\n padding: 0 0.25em;\\n line-height: 2em;\\n}\\n\\n/* \u2500\u2500 Borderless variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\\n:host([variant='borderless']) button {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) button:hover:not(:disabled) {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) button.active {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input'] {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input']:hover:not(:disabled) {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input']:focus {\\n border-color: var(--ae-border-focus);\\n}\\n\\n/* \u2500\u2500 Link variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\\n:host([variant='link']) button {\\n border-color: transparent;\\n background: transparent;\\n}\\n\\n:host([variant='link']) button:hover:not(:disabled) {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-primary);\\n}\\n\\n:host([variant='link']) button:active:not(:disabled) {\\n background: transparent;\\n}\\n\\n:host([variant='link']) button:focus-visible {\\n border-color: transparent;\\n}\\n\\n:host([variant='link']) button.active {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-primary);\\n font-weight: 600;\\n}\\n\\n:host([variant='link']) button.active:hover:not(:disabled) {\\n background: transparent;\\n color: var(--ae-color-primary);\\n}\\n\\n:host([variant='link']) input[part='page-input'] {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n}\\n\\n:host([variant='link']) input[part='page-input']:hover:not(:disabled) {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-default);\\n}\\n\\n:host([variant='link']) input[part='page-input']:focus {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-focus);\\n box-shadow: none;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.tree {\\n display: block;\\n padding: 0.25rem;\\n box-sizing: border-box;\\n user-select: none;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n --ae-tree-indent: 1.25rem;\\n --tree-item-height: 2rem;\\n --tree-item-font-size: 0.9375rem;\\n --tree-item-color: var(--ae-color-text-main, #343a40);\\n --tree-item-color-disabled: var(--ae-color-text-disabled, #bbb);\\n --tree-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.04));\\n --tree-item-bg-selected: var(--ae-color-primary-bg-subtle, rgba(14, 99, 156, 0.08));\\n --tree-item-color-selected: var(--ae-color-primary, #0e639c);\\n --tree-item-line-color: var(--ae-border-default, rgba(0, 0, 0, 0.15));\\n --tree-item-expand-size: 1rem;\\n}\\n\\n.tree-item-content {\\n display: flex;\\n align-items: center;\\n gap: 0.25rem;\\n height: var(--tree-item-height);\\n padding-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem);\\n padding-right: 0.5rem;\\n font-size: var(--tree-item-font-size);\\n color: var(--tree-item-color);\\n cursor: pointer;\\n user-select: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n transition: background 0.1s, color 0.1s;\\n box-sizing: border-box;\\n}\\n\\n.tree-item-content:hover {\\n background: var(--tree-item-bg-hover);\\n}\\n\\n.expand-btn {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--tree-item-expand-size);\\n height: var(--tree-item-expand-size);\\n padding: 0;\\n border: none;\\n background: transparent;\\n color: inherit;\\n cursor: pointer;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n transition: transform 0.18s;\\n outline: none;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.expand-btn:focus-visible {\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: 1px;\\n}\\n\\n.expand-btn svg,\\n.expand-btn ae-icon {\\n display: block;\\n width: 0.625rem;\\n height: 0.625rem;\\n fill: currentColor;\\n transition: transform 0.18s;\\n}\\n\\n/* ae-icon uses font-size for its internal sizing */\\n.expand-btn ae-icon,\\n.expand-placeholder ae-icon {\\n font-size: 0.625rem;\\n}\\n\\n:host([expanded]) .expand-btn svg,\\n:host([expanded]) .expand-btn ae-icon {\\n transform: rotate(90deg);\\n}\\n\\n/* Leaf placeholder keeps alignment consistent */\\n.expand-placeholder {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--tree-item-expand-size);\\n height: var(--tree-item-expand-size);\\n}\\n\\n.tree-item-checkbox {\\n flex-shrink: 0;\\n width: 0.875rem;\\n height: 0.875rem;\\n margin: 0;\\n cursor: pointer;\\n accent-color: var(--ae-color-primary, #0e639c);\\n}\\n\\n.tree-item-label {\\n display: inline-flex;\\n align-items: center;\\n flex: 1;\\n min-width: 0;\\n height: 100%;\\n padding: 0 0.25rem;\\n border: none;\\n background: transparent;\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n cursor: pointer;\\n outline: none;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.tree-item-label:focus-visible {\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: -2px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n}\\n\\n:host([selected]) .tree-item-content {\\n background: var(--tree-item-bg-selected);\\n color: var(--tree-item-color-selected);\\n}\\n\\n:host([disabled]) .tree-item-content {\\n color: var(--tree-item-color-disabled);\\n cursor: not-allowed;\\n}\\n\\n:host([disabled]) .tree-item-content * {\\n pointer-events: none;\\n}\\n\\n.tree-item-children {\\n display: none;\\n}\\n\\n:host([expanded]) .tree-item-children {\\n display: block;\\n}\\n\\n:host([showline]) .tree-item-children {\\n margin-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem + calc(var(--tree-item-expand-size) / 2));\\n padding-left: calc(var(--ae-tree-indent) - calc(var(--tree-item-expand-size) / 2));\\n border-left: 1px dashed var(--tree-item-line-color);\\n}\\n\"", "/**\n * Components module exports\n *\n * All Aeico Web Components are available here for on-demand registration.\n * Import only the components you need to keep your bundle size small.\n *\n * @example\n * ```typescript\n * import { SelectField, RangeField, Button } from 'aeico/components'\n *\n * // Manually register components\n * SelectField.register()\n * RangeField.register()\n * Button.register()\n *\n * // Or use with custom names\n * SelectField.register('my-select')\n * ```\n *\n * @example\n * ```typescript\n * // Use the static create method for programmatic creation\n * import { Button } from 'aeico/components'\n *\n * const button = Button.create({\n * variant: 'primary',\n * size: 'md'\n * })\n * button.textContent = 'Click me'\n * document.body.appendChild(button)\n * ```\n */\n\n// Field components\nexport { default as TextInput } from './text-input';\nexport { default as NumberInput } from './number-input';\nexport { default as Textarea, type TextareaResize } from './textarea';\nexport { default as Select } from './select';\nexport { default as Slider } from './slider';\nexport { default as Checkbox } from './checkbox';\nexport { default as RadioGroup } from './radio-group';\nexport { Radio } from './radio-group';\nexport { default as Switch } from './switch';\n\n// UI components\nexport { default as Breadcrumb, BreadcrumbItem } from './breadcrumb';\nexport { default as Button } from './button';\nexport { default as CopyButton } from './copy-button';\nexport { default as Dropdown, DropdownItem, DropdownButton } from './dropdown';\nexport { default as ButtonGroup } from './button-group';\nexport { default as Badge } from './badge';\nexport { default as Tag } from './tag';\nexport { default as Alert } from './alert';\nexport { default as Dialog } from './dialog';\nexport { default as Drawer } from './drawer';\nexport { default as Icon } from './icon/icon';\nexport { default as IconRegistry } from './icon/registry';\nexport { default as IconButton } from './icon-button';\nexport { Tabs, Tab, TabPanel } from './tabs';\nexport { default as Divider } from './divider';\nexport { default as Card } from './card';\nexport { default as Navbar } from './navbar';\nexport { default as Spinner } from './spinner';\nexport { default as Detail } from './detail';\nexport { default as DetailGroup } from './detail-group';\nexport { default as ProgressBar } from './progress-bar';\nexport { Menu, MenuItem } from './menu';\nexport { default as Tooltip } from './tooltip';\nexport { default as Pagination } from './pagination';\nexport { Tree, TreeItem } from './tree';\n\n// Component types\nexport type { SelectProps, SelectOption, SelectOptions, SelectOptionValue } from './select';\nexport type { SliderProps, SliderOption, SliderOptions, SliderOptionValue } from './slider';\nexport type { CheckboxProps, CheckboxVariant } from './checkbox';\nexport type {\n RadioGroupProps,\n RadioGroupMode,\n RadioGroupOption,\n RadioGroupOptions,\n} from './radio-group';\nexport type { RadioProps } from './radio-group';\nexport type { SwitchProps } from './switch';\nexport type { TextInputProps } from './text-input';\nexport type { NumberInputProps } from './number-input';\nexport type { TextareaProps } from './textarea';\nexport type { ButtonProps, ButtonColor, ButtonSize, ButtonVariant } from './button';\nexport type { ButtonGroupProps } from './button-group';\nexport type { PaginationProps, PaginationSize } from './pagination';\nexport type { AlertProps, AlertColor, AlertSize, AlertVariant } from './alert';\nexport type { BadgeProps, BadgeColor, BadgeSize, BadgeVariant } from './badge';\nexport type { TagProps, TagColor, TagSize, TagVariant } from './tag';\nexport type { DialogProps } from './dialog';\nexport type { DrawerProps, DrawerPlacement } from './drawer';\nexport type { IconProps, IconSize, IconColor, IconDefinition, IconRegistryData } from './icon';\nexport type { ProgressBarProps, ProgressBarColor } from './progress-bar';\nexport type { IconButtonProps, IconButtonVariant, IconButtonSize } from './icon-button';\nexport type { DividerProps } from './divider';\nexport type { CardProps, CardVariant, CardColor } from './card';\nexport type { NavbarProps, NavbarColor, NavbarAppearance } from './navbar';\nexport type { DetailProps, DetailVariant, DetailColor } from './detail';\nexport type {\n MenuProps,\n MenuItemProps,\n MenuMode,\n MenuOrientation,\n MenuTrigger,\n MenuSelectDetail,\n} from './menu';\nexport type { TooltipProps, TooltipPlacement, TooltipTrigger } from './tooltip';\nexport type {\n TreeProps,\n TreeItemProps,\n TreeSelectDetail,\n TreeExpandDetail,\n TreeCheckDetail,\n} from './tree';\n", "\uFEFFimport type { InferProps, Props, Watchers } from 'aeico';\nimport { tags } from 'aeico';\nimport AeicoComponent from './aeico-component';\n\nexport type FieldAction = 'clear' | 'reset' | 'change';\nexport type FieldElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\nexport type ActionButtonStyle = 'standalone' | 'integrated';\n\n/**\n * Base class for form field components\n *\n * Provides common functionality for field components including:\n * - Theme support\n * - i18n integration (via Localizable mixin)\n * - Reset button management\n * - Value management\n * - Common configuration handling\n */\nclass AeicoField<TValue = string> extends AeicoComponent {\n /**\n * Define base field properties (extends AeicoElement properties)\n */\n static props: Props = {\n value: { type: String },\n defaultValue: { type: String },\n resettable: { type: Boolean },\n resetText: { type: String },\n resetTitle: { type: String },\n clearable: { type: Boolean },\n clearText: { type: String },\n clearTitle: { type: String },\n actionButtonStyle: { type: String },\n size: { type: String },\n disabled: { type: Boolean },\n label: { type: String },\n labelPlacement: { type: String },\n required: { type: Boolean },\n helperText: { type: String },\n error: { type: String },\n };\n\n /**\n * Property watchers\n */\n static watchers: Watchers = {\n disabled: 'onDisabledChanged',\n error: 'onErrorChanged',\n };\n\n private static _fieldIdCounter = 0;\n private readonly _fieldId: string;\n\n constructor() {\n super();\n this._fieldId = `ae-field-${++AeicoField._fieldIdCounter}`;\n }\n\n /**\n * The underlying form control element (input, select, etc.)\n * Subclasses should set this to their specific element\n */\n protected fieldElement: FieldElement | null = null;\n\n protected resetBtn: HTMLButtonElement | null = null;\n protected clearBtn: HTMLButtonElement | null = null;\n\n protected readonly boundOnChange = () =>\n this.setValue(this.getValue(), { silent: false, action: 'change' });\n\n protected readonly boundOnReset = () => this.onReset();\n protected readonly boundOnClear = () => this.onClear();\n\n // Declare reactive properties for TypeScript\n declare value?: TValue;\n declare defaultValue?: TValue | string;\n declare resettable?: boolean;\n declare resetText?: string;\n declare resetTitle?: string;\n declare clearable?: boolean;\n declare clearText?: string;\n declare clearTitle?: string;\n declare actionButtonStyle?: ActionButtonStyle;\n declare size?: string;\n declare disabled?: boolean;\n declare label?: string;\n declare labelPlacement?: 'top' | 'left';\n declare required?: boolean;\n declare helperText?: string;\n declare error?: string;\n\n /**\n * Lifecycle: Component connected to DOM\n */\n connectedCallback() {\n super.connectedCallback();\n }\n\n /**\n * Lifecycle: Component disconnected from DOM\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n /**\n * Render action buttons (clear/reset) using this.builder.\n * Must be called from within a build() callback.\n */\n protected renderActionButtons(force: boolean = false) {\n const style = this.actionButtonStyle || 'integrated';\n const hasActions = force || this.clearable || this.resettable;\n\n if (hasActions && style === 'integrated') {\n tags.div({ className: 'action-controls' }, () => {\n this.renderClearButton(force);\n this.renderResetButton(force);\n });\n } else {\n this.renderClearButton(force);\n this.renderResetButton(force);\n }\n }\n\n protected renderResetButton(force: boolean = false) {\n const { button } = tags;\n const style = this.actionButtonStyle || 'integrated';\n\n if (force || this.resettable) {\n const className = style === 'integrated' ? 'reset-btn action-btn' : 'reset-btn';\n this.resetBtn = button({\n className,\n textContent: this.resetText || '\u21BA',\n title: this.resetTitle || '\u21BA',\n '@click': this.boundOnReset,\n });\n }\n }\n\n protected renderClearButton(force: boolean = false) {\n const { button } = tags;\n const style = this.actionButtonStyle || 'integrated';\n\n if (force || this.clearable) {\n const className = style === 'integrated' ? 'clear-btn action-btn' : 'clear-btn';\n this.clearBtn = button({\n className,\n textContent: this.clearText || '\u2715',\n title: this.clearTitle || '\u2715',\n '@click': this.boundOnClear,\n });\n }\n }\n\n /**\n * Returns a stable unique ID for this field instance,\n * used to associate <label htmlFor> with the underlying input.\n */\n protected getFieldId(): string {\n return this._fieldId;\n }\n\n /**\n * Renders a <label> element when the `label` prop is set.\n * Call this as the first statement inside the render() html() callback.\n * @param fieldId - The id to set on the underlying form control element (pass to input via id prop)\n */\n protected renderLabel(fieldId: string): void {\n if (!this.label) return;\n const { span } = tags;\n tags.label({ id: `${fieldId}-label`, className: 'field-label', for: fieldId }, () => {\n span({ textContent: this.label! });\n if (this.required) {\n span({ className: 'field-required', 'aria-hidden': 'true', textContent: ' *' });\n }\n });\n }\n\n /**\n * Renders helper text below the field. Hidden when `error` is set.\n * Call this after the field-body div in render().\n */\n protected renderHelperText(): void {\n if (!this.helperText || this.error) return;\n const { span } = tags;\n span({ className: 'field-helper', textContent: this.helperText });\n }\n\n /**\n * Renders an error message below the field when `error` is set.\n * Call this after renderHelperText() in render().\n */\n protected renderError(): void {\n if (!this.error) return;\n const { span } = tags;\n span({ className: 'field-error', textContent: this.error });\n }\n\n /**\n * Watcher for disabled property\n */\n protected onDisabledChanged(newValue: boolean) {\n if (this.fieldElement) {\n (this.fieldElement as HTMLInputElement | HTMLSelectElement).disabled = Boolean(newValue);\n }\n }\n\n /**\n * Watcher for error property \u2014 syncs aria-invalid on the field element\n */\n protected onErrorChanged(newValue: string | undefined): void {\n if (this.fieldElement) {\n if (newValue) {\n this.fieldElement.setAttribute('aria-invalid', 'true');\n } else {\n this.fieldElement.removeAttribute('aria-invalid');\n }\n }\n }\n\n /**\n * Lifecycle: called after every render update.\n * Keeps aria-invalid on fieldElement in sync regardless of watcher timing.\n */\n protected onUpdated(_changedProps: Map<string, unknown>): void {\n if (!this.fieldElement) return;\n if (this.error) {\n this.fieldElement.setAttribute('aria-invalid', 'true');\n } else {\n this.fieldElement.removeAttribute('aria-invalid');\n }\n }\n\n /**\n * Returns true if the field passes constraint validation.\n * Delegates to the underlying fieldElement when available;\n * falls back to a manual required-check otherwise.\n */\n public checkValidity(): boolean {\n if (this.fieldElement) {\n return this.fieldElement.checkValidity();\n }\n if (this.required) {\n const v = this.value;\n return v !== undefined && v !== '' && v !== null;\n }\n return true;\n }\n\n /**\n * Reports validity, showing the browser's built-in validation UI when possible.\n */\n public reportValidity(): boolean {\n if (this.fieldElement) {\n return this.fieldElement.reportValidity();\n }\n return this.checkValidity();\n }\n\n /**\n * Render the field component\n * Override in subclass to provide custom rendering\n */\n render(): void {\n // Default implementation - subclasses can override\n }\n\n /**\n * Get current value from the field element\n * Default implementation returns the value property of fieldElement\n * Override in subclasses if needed (e.g., checkbox uses checked instead of value)\n *\n * @returns Current field value\n */\n protected getValue(): TValue {\n return (this.fieldElement?.value || '') as TValue;\n }\n\n /**\n * Write value to the underlying UI element and sync props\n * Subclasses must override this to update their specific UI element\n *\n * @param _value New value to write to the element\n */\n protected writeValue(_value: TValue): void {\n // Base implementation - subclasses override\n }\n\n /**\n * Get event payload for change events\n * Override in subclasses to customize event data (e.g., { checked, oldChecked } for checkbox)\n *\n * @param value New value\n * @param oldValue Previous value\n * @param action Action type\n * @returns Event payload object\n */\n protected getEventPayload(\n value: TValue,\n oldValue: TValue,\n action: FieldAction,\n ): Record<string, unknown> {\n return { value, oldValue, action };\n }\n\n /**\n * Update field value programmatically (internal method)\n * Subclasses should provide type-safe public wrappers (e.g., change() method)\n *\n * @param value New value\n * @param options.silent If true, won't emit change event (default: true)\n * @param options.action Action type for the event (default: 'change')\n */\n protected setValue(value: TValue, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldValue = this.getValue();\n\n // Update property value\n this.value = value;\n\n // Write to UI element (DOM only)\n this.writeValue(value);\n\n // Emit event if not silent\n if (options?.silent === false) {\n const payload = this.getEventPayload(value, oldValue, options.action || 'change');\n this.emit('change', { detail: payload });\n }\n }\n\n /**\n * Reset field to specified value or default value\n *\n * @param value Value to reset to, defaults to defaultValue prop\n * @param options.silent If false, will emit reset event (default: true)\n */\n public reset(value?: TValue, options?: { silent?: boolean }): void {\n const resetValue = value !== undefined ? value : this.defaultValue;\n this.setValue(resetValue as TValue, { ...options, action: 'reset' });\n }\n\n /**\n * Clear the field value\n *\n * @param options.silent If false, will emit clear event (default: true)\n */\n public clear(options?: { silent?: boolean }): void {\n this.setValue('' as TValue, { ...options, action: 'clear' });\n }\n\n /**\n * Handle clear button click\n * Clears the field and dispatches event\n */\n protected onClear(): void {\n this.clear({ silent: false });\n }\n\n /**\n * Handle reset button click\n * Resets to default value and dispatches event\n */\n protected onReset(): void {\n this.reset(undefined, { silent: false });\n }\n}\n\nexport default AeicoField;\nexport type AeicoFieldProps = InferProps<typeof AeicoField>;\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 AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/text-input.css';\n\nclass TextInput extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'text-input';\n\n static props: Props = {\n placeholder: { type: String },\n type: { type: String },\n };\n\n declare placeholder?: string;\n declare type?: string;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'input-container field-body' }, () => {\n this.fieldElement = input({\n id,\n type: this.type || 'text',\n placeholder: this.placeholder || '',\n required: Boolean(this.required),\n '@input': this.boundOnChange,\n });\n\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement && this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n });\n }\n\n /**\n * Write value to the input element (DOM only)\n */\n protected writeValue(value: string): void {\n const strValue = String(value || '');\n\n if (this.fieldElement) {\n this.fieldElement.value = strValue;\n }\n }\n}\n\nTextInput.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-text-input': TextInput;\n }\n}\n\nexport default TextInput;\nexport type TextInputProps = InferProps<typeof TextInput>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/number-input.css';\n\nclass NumberInput extends AeicoField<number> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'number-input';\n\n static props: Props = {\n placeholder: { type: String },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n controls: { type: Boolean },\n };\n\n declare placeholder?: string;\n declare min?: number;\n declare max?: number;\n declare step?: number;\n declare controls?: boolean;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n render() {\n return html(({ div, input, button }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'input-container field-body' }, () => {\n this.fieldElement = input({\n id,\n type: 'number',\n placeholder: this.placeholder || '',\n required: Boolean(this.required),\n disabled: Boolean(this.disabled),\n min: this.min != null ? String(this.min) : undefined,\n max: this.max != null ? String(this.max) : undefined,\n step: this.step != null ? String(this.step) : undefined,\n '@input': this.boundOnChange,\n });\n\n if (this.controls) {\n div({ className: 'number-controls' }, () => {\n button({\n className: 'number-btn number-btn-increment',\n textContent: '+',\n disabled: Boolean(this.disabled),\n '@click': this.boundOnIncrement,\n });\n button({\n className: 'number-btn number-btn-decrement',\n textContent: '-',\n disabled: Boolean(this.disabled),\n '@click': this.boundOnDecrement,\n });\n });\n }\n\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement && this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n });\n }\n\n protected readonly boundOnIncrement = () => {\n const current = this.getValue() || 0;\n const step = this.step ?? 1;\n let next = current + step;\n if (this.max != null && next > this.max) {\n next = this.max;\n }\n this.setValue(next, { silent: false, action: 'change' });\n };\n\n protected readonly boundOnDecrement = () => {\n const current = this.getValue() || 0;\n const step = this.step ?? 1;\n let next = current - step;\n if (this.min != null && next < this.min) {\n next = this.min;\n }\n this.setValue(next, { silent: false, action: 'change' });\n };\n\n /**\n * Get current value as number\n */\n protected getValue(): number {\n if (!this.fieldElement) return 0;\n const val = this.fieldElement.value;\n if (val === '') return 0;\n const num = parseFloat(val);\n return isNaN(num) ? 0 : num;\n }\n\n /**\n * Write value to the input element (DOM only)\n */\n protected writeValue(value: number): void {\n if (this.fieldElement) {\n this.fieldElement.value = value != null ? String(value) : '';\n }\n }\n\n /**\n * Get event payload for change events\n */\n protected getEventPayload(\n value: number,\n oldValue: number,\n action: import('../aeico-field').FieldAction,\n ): Record<string, unknown> {\n return { value, oldValue, action };\n }\n}\n\nNumberInput.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-number-input': NumberInput;\n }\n}\n\nexport default NumberInput;\nexport type NumberInputProps = InferProps<typeof NumberInput>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/textarea.css';\n\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\n\nclass Textarea extends AeicoField {\n protected fieldElement: HTMLTextAreaElement | null = null;\n\n static tagName = 'textarea';\n\n @prop({ type: String })\n accessor placeholder: string | undefined;\n\n @prop({ type: Number })\n accessor rows: number | undefined;\n\n @prop({ type: Number })\n accessor maxlength: number | undefined;\n\n @prop({ type: Number })\n accessor minlength: number | undefined;\n\n @prop({ type: String })\n accessor resize: TextareaResize | undefined;\n\n @prop({ type: Boolean })\n accessor autoResize: boolean = false;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n private readonly _boundOnInput = () => {\n if (this.autoResize && this.fieldElement) {\n this._syncAutoResize(this.fieldElement);\n }\n this.setValue(this.getValue(), { silent: false, action: 'change' });\n };\n\n render() {\n return html(({ div, textarea }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'textarea-container field-body' }, () => {\n this.fieldElement = textarea({\n id,\n placeholder: this.placeholder || '',\n rows: this.rows ?? 3,\n required: Boolean(this.required),\n '@input': this._boundOnInput,\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement) {\n if (this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n if (this.maxlength != null) this.fieldElement.maxLength = this.maxlength;\n if (this.minlength != null) this.fieldElement.minLength = this.minlength;\n this.fieldElement.style.resize = this.autoResize ? 'none' : (this.resize ?? 'vertical');\n if (this.autoResize) {\n this._syncAutoResize(this.fieldElement);\n }\n this._updateClearButtonVisibility();\n }\n });\n }\n\n private _syncAutoResize(ta: HTMLTextAreaElement): void {\n ta.style.height = 'auto';\n ta.style.height = `${ta.scrollHeight}px`;\n }\n\n private _updateClearButtonVisibility(): void {\n if (this.clearBtn && this.fieldElement) {\n this.clearBtn.style.display = this.fieldElement.value.length > 0 ? '' : 'none';\n }\n }\n\n protected writeValue(value: string): void {\n if (this.fieldElement) {\n this.fieldElement.value = String(value || '');\n if (this.autoResize) {\n this._syncAutoResize(this.fieldElement);\n }\n this._updateClearButtonVisibility();\n }\n }\n}\n\nTextarea.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-textarea': Textarea;\n }\n}\n\nexport default Textarea;\nexport type TextareaProps = InferProps<typeof Textarea>;\n", "\uFEFFimport AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type {\n SelectOptionValue,\n SelectOption,\n SelectOptions,\n SelectPosition,\n SelectMultiValue,\n} from './defines';\nimport style from '../styles/components/select.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport SelectOptionElement from './select-option';\nimport '../tag/tag';\nimport { prop } from 'aeico';\n\n/**\n * Select component supporting single and multi-select modes, with options provided via both props and slots.\n * - `options` prop accepts an array of strings or objects with `value` and `label` for programmatic options.\n * - Slot content allows for declarative options using `<ae-select-option>` elements.\n * @example\n * <ae-select placeholder=\"Choose an option\" position=\"bottom\">\n * <ae-select-option value=\"1\" label=\"Option 1\">Option 1</ae-select-option>\n * <ae-select-option value=\"2\" label=\"Option 2\">Option 2</ae-select-option>\n * </ae-select>\n *\n */\nclass Select extends AeicoField<SelectOptionValue | SelectMultiValue> {\n protected fieldElement: HTMLInputElement | null = null;\n private _isOpen = false;\n private _triggerEl: HTMLElement | null = null;\n private _dropdownEl: HTMLElement | null = null;\n private _slotEl: HTMLSlotElement | null = null;\n private _slotOptionData: Array<{ value: string; label: string }> = [];\n private _selectedListEl: HTMLElement | null = null;\n\n static tagName = 'select';\n\n @prop({ type: Boolean, observe: false, reflect: false })\n accessor _expanded: boolean = false;\n\n @prop({ type: Array })\n accessor options: SelectOptions | undefined;\n\n @prop({ type: String })\n accessor position: SelectPosition | undefined;\n\n @prop({ type: String })\n accessor placeholder: string | undefined;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor expandable: boolean = false;\n\n // Override base class value prop to support both string and array (multi-select).\n // Uses field decorator (not accessor) because TypeScript TS2611 disallows overriding\n // a parent class data property (declare value?) with an accessor in a subclass.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override value: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n // Override base class defaultValue so arrays are JSON-serialized to the attribute,\n // matching the value prop's parser/formatter. Without this override, setting\n // defaultValue = ['a', 'b'] would be serialized as String(['a','b']) = \"a,b\",\n // and reset() would restore a single string \"a,b\" instead of the array.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override defaultValue: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n protected writeValue(_value: SelectOptionValue | SelectMultiValue): void {\n // Reactive re-render via this.value prop change handles the display update\n }\n\n protected getValue(): SelectOptionValue | SelectMultiValue {\n if (this.multiple) return this._getMultiValues();\n\n return this.value || '';\n }\n\n private _getMultiValues(): SelectMultiValue {\n if (Array.isArray(this.value)) return this.value;\n if (this.value != null && this.value !== '') return [this.value];\n\n return [];\n }\n\n protected onDisabledChanged(_newValue: boolean): void {\n // disabled is a reactive prop \u2014 render() already picks it up automatically\n }\n\n protected onUpdated(changedProps: Map<string, unknown>): void {\n super.onUpdated(changedProps);\n if (!this.multiple || this.expandable) {\n if (this._expanded) this._expanded = false;\n return;\n }\n const list = this._selectedListEl;\n if (!list) return;\n const overflowing = list.scrollWidth > list.clientWidth + 1;\n if (overflowing !== this._expanded) this._expanded = overflowing;\n }\n\n private _findLabel(value: SelectOptionValue): string {\n const strVal = String(value);\n if (Array.isArray(this.options)) {\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n if (String(opt.value) === strVal) return opt.label;\n } else {\n if (String(opt) === strVal) return strVal;\n }\n }\n }\n\n for (const opt of this._slotOptionData) {\n if (opt.value === strVal) return opt.label;\n }\n\n return strVal;\n }\n\n private _onSlotChange(): void {\n if (!this._slotEl) return;\n const data: Array<{ value: string; label: string }> = [];\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n data.push({\n value: optEl.value ?? el.getAttribute('value') ?? '',\n label: optEl.label || el.textContent?.trim() || '',\n });\n }\n this._slotOptionData = data;\n this.update();\n }\n\n private _toggleDropdown(): void {\n if (this._isOpen) {\n this._closeDropdown();\n } else {\n this._openDropdown();\n }\n }\n\n private _openDropdown(): void {\n this._isOpen = true;\n this._syncOpenState();\n }\n\n private _closeDropdown(): void {\n this._isOpen = false;\n this._syncOpenState();\n }\n\n private _syncOpenState(): void {\n this._triggerEl?.classList.toggle('open', this._isOpen);\n this._dropdownEl?.classList.toggle('open', this._isOpen);\n }\n\n private readonly _handleOutsideClick = (e: Event): void => {\n if (!e.composedPath().includes(this)) {\n this._closeDropdown();\n }\n };\n\n private readonly _handleOptionSelect = (e: Event): void => {\n const { value, label } = (e as CustomEvent<{ value: string; label: string }>).detail;\n if (!this._slotOptionData.find((o) => o.value === value)) {\n this._slotOptionData = [\n ...this._slotOptionData.filter((o) => o.value !== value),\n { value, label },\n ];\n }\n if (this.multiple) {\n const current = this._getMultiValues();\n const idx = current.findIndex((v) => String(v) === value);\n const next: SelectMultiValue =\n idx >= 0 ? current.filter((_, i) => i !== idx) : [...current, value];\n\n this.setValue(next, { silent: false, action: 'change' });\n } else {\n this.setValue(value, { silent: false, action: 'change' });\n this._closeDropdown();\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n this.addEventListener('selectoption', this._handleOptionSelect);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n this.removeEventListener('selectoption', this._handleOptionSelect);\n }\n\n private _syncSlotOptionsSelected(): void {\n if (!this._slotEl) return;\n const multiValues = this._getMultiValues();\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n const optVal = optEl.value ?? el.getAttribute('value') ?? '';\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === optVal)\n : this.value != null && this.value !== '' && String(this.value) === optVal;\n // undefined triggers removeAttribute via reactive setter\n // (null would work too but undefined is type-safe for boolean | undefined)\n optEl.selected = isSelected ? true : undefined;\n }\n }\n\n render() {\n const position = this.position || 'bottom';\n const multiValues = this.multiple ? this._getMultiValues() : [];\n const hasMultiSelection = this.multiple && multiValues.length > 0;\n const selectedLabel =\n !this.multiple && this.value != null && this.value !== ''\n ? this._findLabel(this.value as SelectOptionValue)\n : '';\n const isDisabled = Boolean(this.disabled);\n this._selectedListEl = null;\n\n this._syncSlotOptionsSelected();\n\n return html(({ div, span, slot }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div(\n {\n id,\n 'aria-labelledby': this.label ? `${id}-label` : undefined,\n className: 'container field-body',\n },\n () => {\n this._triggerEl = div(\n {\n className: `trigger${this._isOpen ? ' open' : ''}${isDisabled ? ' disabled' : ''}`,\n '@click': () => {\n if (isDisabled) return;\n\n this._toggleDropdown();\n },\n },\n () => {\n if (this.multiple) {\n if (hasMultiSelection) {\n this._selectedListEl = div(\n {\n className: `selected-list${!this.expandable ? ' selected-list--clipped' : ''}`,\n },\n () => {\n for (const v of multiValues) {\n const lbl = this._findLabel(v);\n tags.aeTag({\n key: `sel-${v}`,\n color: 'default',\n variant: 'faint',\n dismissible: true,\n disabled: isDisabled,\n textContent: lbl,\n '@dismiss': (e: Event) => {\n e.stopPropagation();\n if (isDisabled) return;\n\n const next = multiValues.filter((item) => String(item) !== String(v));\n this.setValue(next, { silent: false, action: 'change' });\n },\n });\n }\n },\n );\n if (!this.expandable && this._expanded) {\n span({ className: 'overflow-indicator', textContent: '\u2026' });\n }\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n } else {\n if (selectedLabel) {\n span({ className: 'value', textContent: selectedLabel });\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n }\n span({ className: 'arrow', textContent: '\u25BE' });\n },\n );\n\n this._dropdownEl = div(\n {\n className: `dropdown position-${position}${this._isOpen ? ' open' : ''}`,\n },\n () => {\n this._renderProgrammaticOptions();\n this._slotEl = slot({\n '@slotchange': () => this._onSlotChange(),\n });\n },\n );\n\n this.renderActionButtons();\n },\n );\n this.renderHelperText();\n this.renderError();\n\n // Visually-hidden input so native form constraint validation works for `required`.\n // type=\"text\" (not \"hidden\") is required \u2014 type=\"hidden\" is exempt from constraint validation.\n const currentValue =\n this.value != null &&\n this.value !== '' &&\n !(Array.isArray(this.value) && this.value.length === 0)\n ? String(this.value)\n : '';\n this.fieldElement = tags.input({\n key: 'validation-input',\n type: 'text',\n 'aria-hidden': 'true',\n tabIndex: -1,\n required: Boolean(this.required),\n value: currentValue,\n style: {\n position: 'absolute',\n width: '0',\n height: '0',\n opacity: '0',\n margin: '0',\n padding: '0',\n border: '0',\n pointerEvents: 'none',\n overflow: 'hidden',\n },\n });\n });\n }\n\n private _renderProgrammaticOptions(): void {\n if (!Array.isArray(this.options)) return;\n\n const { aeSelectOption } = tags;\n const multiValues = this.multiple ? this._getMultiValues() : [];\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt.value))\n : this.value != null && String(opt.value) === String(this.value);\n aeSelectOption({\n key: `opt-${opt.value}`,\n value: String(opt.value),\n label: opt.label,\n textContent: opt.label,\n selected: isSelected ? true : undefined,\n });\n } else {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt))\n : this.value != null && String(opt) === String(this.value);\n aeSelectOption({\n key: `opt-${opt}`,\n value: String(opt),\n textContent: String(opt),\n selected: isSelected ? true : undefined,\n });\n }\n }\n }\n\n private _isSelectOption(option: unknown): option is SelectOption {\n return (\n option !== null &&\n typeof option === 'object' &&\n typeof (option as SelectOption).label === 'string' &&\n (typeof (option as SelectOption).value === 'string' ||\n typeof (option as SelectOption).value === 'number')\n );\n }\n}\n\nSelect.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-select': Select;\n }\n}\n\nexport default Select;\nexport type SelectProps = InferProps<typeof Select>;\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 tagStyle from '../styles/components/tag.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { TagColor, TagSize, TagVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Tag Component\n *\n * An inline label component with optional dismiss button.\n * Supports the same color, variant, and size options as Button.\n *\n * @example\n * ```html\n * <ae-tag color=\"primary\" variant=\"faint\">Label</ae-tag>\n * <ae-tag color=\"success\" variant=\"outlined\" dismissible>Removable</ae-tag>\n * <ae-tag color=\"danger\" size=\"sm\">\n * <ae-icon slot=\"start\" name=\"warning\"></ae-icon>\n * Error\n * </ae-tag>\n * ```\n */\nclass Tag extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, tagStyle];\n\n @prop({ type: String })\n accessor color: TagColor | undefined;\n\n @prop({ type: String })\n accessor variant: TagVariant | undefined;\n\n @prop({ type: String })\n accessor size: TagSize | undefined;\n\n @prop({ type: Boolean })\n accessor dismissible: boolean = false;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor pill: boolean = false;\n\n protected render() {\n return html(({ span, button, slot }) => {\n span({ part: 'tag', className: 'tag' }, () => {\n slot({ name: 'start' });\n span({ className: 'tag-content' }, () => {\n slot();\n });\n slot({ name: 'end' });\n button(\n {\n type: 'button',\n className: 'tag-dismiss',\n 'aria-label': 'dismiss',\n '@click': (e: Event) => {\n e.stopPropagation();\n if (this.disabled) return;\n this.emit('dismiss');\n },\n },\n () => {\n span({ textContent: '\\u00d7' });\n },\n );\n });\n });\n }\n}\n\nTag.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tag': Tag;\n }\n}\n\nexport default Tag;\nexport type TagProps = InferProps<typeof Tag>;\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport style from '../styles/components/select-option.css';\nimport variables from '../styles/variables.css';\nimport { prop } from 'aeico';\n\nclass SelectOption extends AeicoComponent {\n static tagName = 'select-option';\n\n @prop({ type: String })\n accessor value: string | undefined;\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor selected: boolean | undefined = false;\n\n protected static styles = [variables, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('click', this._handleClick);\n }\n\n private _handleClick = (e: Event): void => {\n if (this.disabled) {\n e.stopPropagation();\n\n return;\n }\n\n const displayLabel = this.label || this.textContent?.trim() || '';\n this.emit('selectoption', { detail: { value: this.value ?? '', label: displayLabel } });\n };\n\n render() {\n return html(({ div, slot }) => {\n div({ className: 'option-item' }, () => {\n slot();\n });\n });\n }\n}\n\nSelectOption.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-select-option': SelectOption;\n }\n}\n\nexport default SelectOption;\nexport type SelectOptionProps = InferProps<typeof SelectOption>;\n", "\uFEFFimport AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type { NormalizedOption, SliderMarks, SliderOption, SliderOptions } from './defines';\nimport style from '../styles/components/slider.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport { prop } from 'aeico';\n\nclass Slider extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n private _valueLabel: HTMLSpanElement | null = null;\n private _numberInput: HTMLInputElement | null = null;\n\n private _boundOnRangeInput: () => void;\n private _boundOnNumberInput: () => void;\n\n static tagName = 'slider';\n\n @prop({ type: Array })\n accessor options: SliderOptions = [];\n\n @prop({ type: Boolean })\n accessor percentage = false;\n\n @prop({ type: Number })\n accessor min = 0;\n\n @prop({ type: Number })\n accessor max = 100;\n\n @prop({ type: Number })\n accessor step = 1;\n\n @prop({ type: Boolean })\n accessor editable = false;\n\n @prop({ type: Boolean })\n accessor tracked = false;\n\n @prop({\n type: Array,\n // bare attribute (<ae-slider marks>) \u2192 true; JSON array \u2192 MarkItem[]\n parser: (value: string | null) => {\n if (value === null) return undefined;\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n try {\n return JSON.parse(value);\n } catch {\n return true;\n }\n },\n })\n accessor marks: SliderMarks | undefined;\n\n protected static styles = [variables, sizeCSS, colorCSS, fieldLabelCSS, actionButtonCSS, style];\n\n constructor() {\n super();\n this._boundOnRangeInput = this._onRangeInput.bind(this);\n this._boundOnNumberInput = this._onNumberInput.bind(this);\n }\n\n private _normalizeOptions(): NormalizedOption[] | null {\n if (!Array.isArray(this.options) || this.options.length === 0) return null;\n\n const opts = this.options.map((opt) =>\n this._isSliderOption(opt)\n ? { label: opt.label, value: String(opt.value) }\n : { label: String(opt), value: String(opt) },\n );\n\n // Sort by numeric value if all values are numeric; otherwise keep original order\n const allNumeric = opts.every((o) => o.value !== '' && !isNaN(Number(o.value)));\n\n if (allNumeric) {\n return [...opts]\n .sort((a, b) => Number(a.value) - Number(b.value))\n .map((o) => ({ ...o, rangeValue: Number(o.value) }));\n } else {\n return opts.map((o, i) => ({ ...o, rangeValue: i }));\n }\n }\n\n private _getRangeAttrs(normalized: NormalizedOption[] | null): {\n min: string;\n max: string;\n step: string;\n inOptionsMode: boolean;\n } {\n if (normalized && normalized.length >= 1) {\n const vals = normalized.map((o) => o.rangeValue);\n const min = Math.min(...vals);\n const max = Math.max(...vals);\n\n // Compute step from minimum gap between adjacent sorted values\n const sorted = [...vals].sort((a, b) => a - b);\n let minGap = Infinity;\n for (let i = 1; i < sorted.length; i++) {\n const d = sorted[i] - sorted[i - 1];\n if (d > 0 && d < minGap) minGap = d;\n }\n\n return {\n min: String(min),\n max: String(max),\n step: minGap === Infinity ? '1' : String(minGap),\n inOptionsMode: true,\n };\n }\n\n return {\n min: String(this.min),\n max: String(this.max),\n step: String(this.step),\n inOptionsMode: false,\n };\n }\n\n private _toRangeValue(value: string | undefined, normalized: NormalizedOption[] | null): string {\n if (value == null || value === '') return '';\n if (normalized) {\n const found = normalized.find((o) => o.value === value);\n\n return found !== undefined ? String(found.rangeValue) : '';\n }\n\n return value;\n }\n\n private _fromRangeValue(rv: string, normalized: NormalizedOption[] | null): string {\n if (normalized) {\n const n = Number(rv);\n\n return normalized.find((o) => o.rangeValue === n)?.value ?? normalized[0]?.value ?? rv;\n }\n return rv;\n }\n\n private _displayLabel(value: string | undefined, normalized: NormalizedOption[] | null): string {\n if (value == null || value === '') return '';\n const label = normalized ? (normalized.find((o) => o.value === value)?.label ?? value) : value;\n\n return this.percentage ? `${label}%` : label;\n }\n\n private _maxValueLabelWidth(\n normalized: NormalizedOption[] | null,\n attrs: { min: string; max: string },\n ): string {\n const candidates = normalized\n ? normalized.map((o) => this._displayLabel(o.value, normalized))\n : [this._displayLabel(attrs.min, null), this._displayLabel(attrs.max, null)];\n const maxLen = Math.max(...candidates.map((l) => l.length), 1);\n\n return `${maxLen}ch`;\n }\n\n private _updateTrackFill(): void {\n if (!this.tracked || !this.fieldElement) return;\n const min = Number(this.fieldElement.min);\n const max = Number(this.fieldElement.max);\n const val = Number(this.fieldElement.value);\n const range = max - min || 1;\n const pct = Math.max(0, Math.min(100, ((val - min) / range) * 100));\n this.style.setProperty('--fill-pct', `${pct}%`);\n }\n\n private _getMarksData(\n normalized: NormalizedOption[] | null,\n attrs: { min: string; max: string; inOptionsMode: boolean },\n ): Array<{ value: string; label: string; pct: number }> {\n const minVal = Number(attrs.min);\n const maxVal = Number(attrs.max);\n const range = maxVal - minVal || 1;\n\n const marks = this.marks;\n\n // Custom marks array \u2014 purely visual, no snapping effect\n if (Array.isArray(marks)) {\n const result: Array<{ value: string; label: string; pct: number }> = [];\n for (const m of marks) {\n const isObj = m !== null && typeof m === 'object';\n const numVal = isObj ? (m as { value: number }).value : m;\n if (numVal < minVal || numVal > maxVal) continue;\n const rawLabel = isObj ? (m.label ?? String(numVal)) : String(numVal);\n result.push({\n value: String(numVal),\n label: this.percentage ? `${rawLabel}%` : rawLabel,\n pct: ((numVal - minVal) / range) * 100,\n });\n }\n\n return result;\n }\n\n // marks === true \u2014 auto-generate from options or free-mode endpoints\n if (normalized) {\n return normalized.map((o) => ({\n value: o.value,\n label: this.percentage ? `${o.label}%` : o.label,\n pct: ((o.rangeValue - minVal) / range) * 100,\n }));\n }\n\n // Free mode \u2014 show min and max endpoints only\n return [\n { value: attrs.min, label: this.percentage ? `${minVal}%` : String(minVal), pct: 0 },\n { value: attrs.max, label: this.percentage ? `${maxVal}%` : String(maxVal), pct: 100 },\n ];\n }\n\n protected writeValue(value: string): void {\n const normalized = this._normalizeOptions();\n const rv = this._toRangeValue(value, normalized);\n\n if (this.fieldElement && rv !== '' && this.fieldElement.value !== rv) {\n this.fieldElement.value = rv;\n }\n\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(value, normalized);\n }\n\n // Sync number input only in free mode (options mode disables it)\n if (this._numberInput && !normalized && this._numberInput.value !== rv) {\n this._numberInput.value = rv;\n }\n\n this._updateTrackFill();\n }\n\n protected getValue(): string {\n if (!this.fieldElement) return '';\n\n return this._fromRangeValue(this.fieldElement.value, this._normalizeOptions());\n }\n\n render() {\n const normalized = this._normalizeOptions();\n const attrs = this._getRangeAttrs(normalized);\n\n return html(({ div, input, span }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'range-container field-body' }, () => {\n // Wrap range + optional marks in a column so marks don't push siblings\n div({ key: 'range-wrapper', className: 'range-wrapper' }, () => {\n this.fieldElement = input({\n key: 'range',\n id,\n type: 'range',\n min: attrs.min,\n max: attrs.max,\n step: attrs.step,\n '@input': this._boundOnRangeInput,\n '@change': this.boundOnChange,\n });\n\n if (this.marks) {\n const marksData = this._getMarksData(normalized, attrs);\n div({ key: 'marks', className: 'marks-container' }, () => {\n for (const m of marksData) {\n tags.span(\n {\n key: `mark-${m.value}`,\n className: 'mark',\n style: { left: `${m.pct}%` },\n },\n () => {\n tags.span({ className: 'mark-label', textContent: m.label });\n },\n );\n }\n });\n }\n });\n\n this._valueLabel = span({\n key: 'label',\n className: 'value-label',\n style: { minWidth: this._maxValueLabelWidth(normalized, attrs) },\n textContent: this._displayLabel(this.value, normalized),\n });\n\n // Action buttons first so the number input can be toggled without disrupting button reuse\n this.renderActionButtons();\n\n if (this.editable) {\n this._numberInput = input({\n key: 'number',\n type: 'number',\n className: 'value-input',\n min: attrs.min,\n max: attrs.max,\n step: attrs.step,\n // Disabled in options mode: valid values are discrete, free text makes no sense\n disabled: attrs.inOptionsMode,\n '@input': this._boundOnNumberInput,\n });\n } else {\n this._numberInput = null;\n }\n });\n\n if (this.value != null) this.writeValue(this.value);\n this.renderHelperText();\n this.renderError();\n });\n }\n\n private _onRangeInput(): void {\n if (!this.fieldElement) return;\n\n const normalized = this._normalizeOptions();\n const actualValue = this._fromRangeValue(this.fieldElement.value, normalized);\n\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(actualValue, normalized);\n }\n // Keep number input in sync during drag\n if (this._numberInput && !normalized) {\n this._numberInput.value = this.fieldElement.value;\n }\n\n this._updateTrackFill();\n }\n\n private _onNumberInput(): void {\n if (!this._numberInput || !this.fieldElement) return;\n const v = this._numberInput.value;\n\n if (this.fieldElement.value === v) return;\n\n this.fieldElement.value = v;\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(v, null);\n }\n }\n\n public clear(options?: { silent?: boolean }): void {\n const normalized = this._normalizeOptions();\n const attrs = this._getRangeAttrs(normalized);\n // Reset to the option whose rangeValue === min, or to attrs.min in free mode\n const clearTo = normalized\n ? (normalized.find((o) => String(o.rangeValue) === attrs.min)?.value ??\n normalized[0]?.value ??\n attrs.min)\n : attrs.min;\n this.setValue(clearTo, { ...options, action: 'clear' });\n }\n\n private _isSliderOption(opt: unknown): opt is SliderOption {\n return opt !== null && typeof opt === 'object' && 'label' in opt && 'value' in opt;\n }\n}\n\nSlider.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-slider': Slider;\n }\n}\n\nexport default Slider;\nexport type SliderProps = InferProps<typeof Slider>;\n", "\uFEFFimport AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport styles from '../styles/components/checkbox.css';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'checkbox';\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'checkbox-container field-body', variant: this.variant }, () => {\n div({ className: 'checkbox-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nCheckbox.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-checkbox': Checkbox;\n }\n}\n\nexport default Checkbox;\nexport type CheckboxProps = InferProps<typeof Checkbox>;\n", "\uFEFFimport AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type { ButtonColor, ButtonVariant, ButtonSize } from '../button';\nimport type { RadioGroupMode, RadioGroupOption, RadioGroupOptions } from './defines';\nimport Radio from './radio';\nimport style from '../styles/components/radio-group.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\n\nclass RadioGroup extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n\n private _slotEl: HTMLSlotElement | null = null;\n private _slotOptions: Radio[] = [];\n\n private static _instanceCount = 0;\n private readonly _groupName: string;\n\n static tagName = 'radio-group';\n\n static props: Props = {\n options: { type: Array },\n mode: { type: String },\n color: { type: String },\n variant: { type: String },\n size: { type: String },\n allowEmpty: { type: Boolean },\n actionButtonStyle: { type: String },\n };\n\n declare options?: RadioGroupOptions;\n declare mode?: RadioGroupMode;\n declare color?: ButtonColor;\n declare variant?: ButtonVariant;\n declare size?: ButtonSize;\n declare allowEmpty?: boolean;\n\n protected static styles = [variables, sizeCSS, colorCSS, fieldLabelCSS, actionButtonCSS, style];\n\n constructor() {\n super();\n this._groupName = `rg-${++RadioGroup._instanceCount}`;\n }\n\n private _optLabel(opt: RadioGroupOption): string {\n if (opt !== null && typeof opt === 'object') {\n return String(opt.label);\n }\n return String(opt);\n }\n\n private _optValue(opt: RadioGroupOption): string {\n if (opt !== null && typeof opt === 'object') return String(opt.value);\n return String(opt);\n }\n\n private _allOptions(): Array<{ label: string; value: string; disabled?: boolean }> {\n const from_props = (Array.isArray(this.options) ? this.options : []).map((o) => ({\n label: this._optLabel(o),\n value: this._optValue(o),\n }));\n\n const from_slot = this._slotOptions.map((el) => ({\n label: el.textContent?.trim() || el.value,\n value: el.value,\n disabled: el.disabled,\n }));\n\n return [...from_props, ...from_slot];\n }\n\n private _onSlotChange(): void {\n if (!this._slotEl) return;\n\n this._slotOptions = (this._slotEl.assignedElements({ flatten: true }) as HTMLElement[]).filter(\n (el) => el.tagName.toLowerCase() === 'ae-radio',\n ) as Radio[];\n this.update();\n }\n\n // Single handler for radio inputs \u2014 handles both select and deselect.\n // Only uses `click` (not `change`) because `change` fires before `click`;\n // if we set value in `change`, the `click` handler would see the updated\n // value and immediately deselect.\n private _boundOnRadioClick = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const current = this.value ?? '';\n if (input.value === current) {\n if (this.allowEmpty) {\n input.checked = false;\n this.setValue('', { silent: false, action: 'change' });\n }\n // !allowEmpty: do nothing\n } else {\n this.setValue(input.value, { silent: false, action: 'change' });\n }\n };\n\n private _boundOnButtonClick = (e: Event) => {\n const btn = e.currentTarget as HTMLElement;\n const val = btn.dataset.value ?? '';\n const current = this.value ?? '';\n // Toggle off if clicking already-selected option\n if (val === current) {\n if (this.allowEmpty) {\n this.setValue('', { silent: false, action: 'change' });\n }\n // !allowEmpty: already selected, do nothing\n } else {\n this.setValue(val, { silent: false, action: 'change' });\n }\n };\n\n protected getValue(): string {\n return this.value ?? '';\n }\n\n protected writeValue(_value: string): void {\n // All visual state is driven by builder diff on next render;\n // for native radio inputs we need to sync checked immediately.\n // The render() reads this.value, so update handles the rest.\n }\n\n protected onReset(): void {\n this.setValue(this.defaultValue ?? '', { silent: false, action: 'reset' });\n }\n\n protected onClear(): void {\n this.setValue('', { silent: false, action: 'clear' });\n }\n\n render() {\n const mode = (this.mode as RadioGroupMode) || 'default';\n const opts = this._allOptions();\n const current = this.value ?? '';\n\n return html(({ div, slot }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ id, role: 'group', className: 'rg-container field-body' }, () => {\n if (mode === 'default') {\n this._renderRadio(opts, current);\n this.renderActionButtons();\n } else {\n this._renderButtons(opts, current, mode);\n }\n });\n\n if (mode !== 'default') {\n if (this.allowEmpty) this.renderClearButton();\n this.renderResetButton();\n }\n\n // Hidden slot \u2014 captures <option> light DOM children\n this._slotEl = slot({\n style: { display: 'none' },\n '@slotchange': () => this._onSlotChange(),\n });\n\n this.renderHelperText();\n this.renderError();\n });\n }\n\n private _renderRadio(\n opts: Array<{ label: string; value: string; disabled?: boolean }>,\n current: string,\n ): void {\n const { label, input, span } = tags;\n for (const opt of opts) {\n const isChecked = opt.value === current;\n\n label({ key: `opt-${opt.value}`, className: 'rg-radio-option' }, () => {\n const el = input({\n type: 'radio',\n className: 'rg-radio-input',\n name: this._groupName,\n value: opt.value,\n disabled: Boolean(this.disabled) || Boolean(opt.disabled),\n required: Boolean(this.required),\n '@click': this._boundOnRadioClick,\n });\n // Sync DOM property directly \u2014 setAttribute('checked') doesn't work\n // after user interaction; only the .checked property controls state.\n el.checked = isChecked;\n // Keep fieldElement pointing to first radio for base-class compat\n if (!this.fieldElement) this.fieldElement = el;\n span({ className: 'rg-radio-label', textContent: opt.label });\n });\n }\n }\n\n private _renderButtons(\n opts: Array<{ label: string; value: string; disabled?: boolean }>,\n current: string,\n mode: RadioGroupMode,\n ): void {\n const { button } = tags;\n const count = opts.length;\n for (let i = 0; i < count; i++) {\n const opt = opts[i];\n const isSelected = opt.value === current;\n\n // Position class for button-group border-radius (CSS handles all styling)\n let posClass = '';\n if (mode === 'button-group') {\n if (count === 1) posClass = ' only';\n else if (i === 0) posClass = ' first';\n else if (i === count - 1) posClass = ' last';\n else posClass = ' inner';\n }\n\n button({\n key: `opt-${opt.value}`,\n className: `rg-btn${isSelected ? ' selected' : ''}${posClass}`,\n textContent: opt.label,\n disabled: Boolean(this.disabled) || Boolean(opt.disabled),\n 'data-value': opt.value,\n '@click': this._boundOnButtonClick,\n });\n }\n }\n}\n\nRadioGroup.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-radio-group': RadioGroup;\n }\n}\n\nexport default RadioGroup;\nexport type RadioGroupProps = InferProps<typeof RadioGroup>;\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps, Props } from 'aeico';\n\n/**\n * AeRadio \u2014 structured option element for ae-radio-group.\n *\n * Replaces the native `<option>` approach with a custom element that is\n * fully extensible. Current surface:\n * - `value` \u2014 option value submitted / matched against radio-group value\n * - `disabled` \u2014 disables this individual option (independent of the group)\n * - Light DOM \u2014 label content; can be plain text or rich HTML (icons, etc.)\n *\n * This element has **no shadow DOM** \u2014 it is a pure data / content carrier.\n * ae-radio-group reads its properties and light-DOM content, then renders\n * the appropriate UI (radio input, button, segmented pill, \u2026).\n *\n * @example Plain text options\n * ```html\n * <ae-radio-group mode=\"button\" color=\"primary\" value=\"a\">\n * <ae-radio value=\"a\">Option A</ae-radio>\n * <ae-radio value=\"b\">Option B</ae-radio>\n * <ae-radio value=\"c\" disabled>Option C</ae-radio>\n * </ae-radio-group>\n * ```\n *\n * @example Rich content options (icons)\n * ```html\n * <ae-radio-group mode=\"button\" color=\"primary\" value=\"list\">\n * <ae-radio value=\"list\"><ae-icon name=\"list\"></ae-icon> List</ae-radio>\n * <ae-radio value=\"grid\"><ae-icon name=\"grid\"></ae-icon> Grid</ae-radio>\n * </ae-radio-group>\n * ```\n */\nclass Radio extends AeicoComponent {\n static tagName = 'radio';\n\n /** No shadow DOM \u2014 this element is a transparent data/content carrier. */\n static override useShadowDOM = false;\n\n static override props: Props = {\n value: { type: String },\n disabled: { type: Boolean },\n };\n\n declare value: string;\n declare disabled?: boolean;\n}\n\nRadio.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-radio': Radio;\n }\n}\n\nexport default Radio;\nexport type RadioProps = InferProps<typeof Radio>;\n", "\uFEFFimport AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport type { SwitchIconPlacement } from './defines';\nimport '../icon/icon';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport styles from '../styles/components/switch.css';\n\nclass Switch extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'switch';\n\n @prop({ type: Boolean })\n accessor checked: boolean | undefined;\n\n @prop({ type: Boolean })\n accessor defaultChecked: boolean | undefined;\n\n @prop({ type: String })\n accessor icon: string | undefined;\n\n @prop({ type: String })\n accessor iconChecked: string | undefined;\n\n @prop({ type: String })\n accessor iconPlacement: SwitchIconPlacement | undefined;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input, span, aeIcon }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'switch-container field-body' }, () => {\n div({ className: 'switch-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n const hasIcon = this.icon || this.iconChecked;\n const placement = this.iconPlacement ?? 'knob';\n span({ className: 'toggle-slider' }, () => {\n if (!hasIcon) return;\n if (placement === 'track') {\n span({ className: 'track-icon track-icon-left' }, () => {\n aeIcon({ name: this.iconChecked ?? this.icon! });\n });\n span({ className: 'track-icon track-icon-right' }, () => {\n aeIcon({ name: this.icon ?? this.iconChecked! });\n });\n } else {\n if (this.icon && this.iconChecked) {\n span({ className: 'toggle-knob-icon icon-unchecked' }, () => {\n aeIcon({ name: this.icon! });\n });\n span({ className: 'toggle-knob-icon icon-checked' }, () => {\n aeIcon({ name: this.iconChecked! });\n });\n } else {\n span({ className: 'toggle-knob-icon' }, () => {\n aeIcon({ name: (this.icon ?? this.iconChecked)! });\n });\n }\n }\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nSwitch.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-switch': Switch;\n }\n}\n\nexport default Switch;\nexport type SwitchProps = InferProps<typeof Switch>;\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 type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/breadcrumb.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type BreadcrumbItem from './breadcrumb-item';\n\n/**\n * Breadcrumb Component\n *\n * A navigation trail that shows the user's location in a hierarchy.\n * Automatically injects separators between items and marks the last item\n * as `aria-current=\"page\"`.\n *\n * The separator is configurable via:\n * - `separator` attribute (text, default `/`) \u2014 simple and concise\n * - `slot=\"separator\"` (any element, e.g. `ae-icon`) \u2014 takes priority over the attribute\n *\n * Supports `color` for theming item link colors. The separator intentionally\n * uses a fixed muted color and does NOT respond to the `color` prop.\n *\n * @example\n * ```html\n * <!-- Default separator \"/\" -->\n * <ae-breadcrumb>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item href=\"/docs\">Docs</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Getting Started</ae-breadcrumb-item>\n * </ae-breadcrumb>\n *\n * <!-- Custom text separator -->\n * <ae-breadcrumb separator=\">\">\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current</ae-breadcrumb-item>\n * </ae-breadcrumb>\n *\n * <!-- Icon separator (slot takes priority over separator attribute) -->\n * <ae-breadcrumb>\n * <ae-icon slot=\"separator\" name=\"chevron-right\" size=\"xs\"></ae-icon>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current</ae-breadcrumb-item>\n * </ae-breadcrumb>\n * ```\n */\nclass Breadcrumb extends AeicoComponent {\n static tagName = 'breadcrumb';\n\n protected static styles = [styleVariables, colorCSS, style];\n\n /** Text separator shown between items. Ignored when `slot=\"separator\"` is provided. */\n @prop({ type: String })\n accessor separator: string = '/';\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n private _itemsSlot: HTMLSlotElement | null = null;\n private _sepSlot: HTMLSlotElement | null = null;\n\n protected render() {\n return html(({ nav, ol, slot }) => {\n nav({ 'aria-label': 'breadcrumb', part: 'nav' }, () => {\n ol({ part: 'list', className: 'list' }, () => {\n this._itemsSlot = slot({\n '@slotchange': () => this._syncSeparators(),\n });\n });\n });\n this._sepSlot = slot({\n name: 'separator',\n className: 'sep-template',\n '@slotchange': () => this._syncSeparators(),\n });\n });\n }\n\n protected onUpdated() {\n this._syncSeparators();\n }\n\n private _getItems(): BreadcrumbItem[] {\n return (this._itemsSlot?.assignedElements() ?? []) as BreadcrumbItem[];\n }\n\n private _getSepElement(): Element | null {\n return this._sepSlot?.assignedElements()[0] ?? null;\n }\n\n private _syncSeparators = () => {\n const items = this._getItems();\n const sepEl = this._getSepElement();\n\n items.forEach((item, i) => {\n // Remove previously injected separators to avoid duplicates\n item.querySelectorAll('[data-ae-sep]').forEach((n) => n.remove());\n\n const isLast = i === items.length - 1;\n\n // Mark the last item as the current page for accessibility\n if (isLast) {\n item.setAttribute('aria-current', 'page');\n } else {\n item.removeAttribute('aria-current');\n }\n\n // First item gets no separator\n if (i === 0) return;\n\n const wrapper = document.createElement('span');\n wrapper.setAttribute('slot', 'separator');\n wrapper.setAttribute('data-ae-sep', '');\n wrapper.setAttribute('aria-hidden', 'true');\n\n if (sepEl) {\n // Clone the slotted separator element (e.g. ae-icon)\n wrapper.appendChild(sepEl.cloneNode(true));\n } else {\n // Fall back to text separator\n wrapper.textContent = this.separator;\n }\n\n item.prepend(wrapper);\n });\n };\n}\n\nBreadcrumb.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-breadcrumb': Breadcrumb;\n }\n}\n\nexport default Breadcrumb;\nexport type BreadcrumbProps = InferProps<typeof Breadcrumb>;\n", "\uFEFFimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/breadcrumb-item.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\n\n/**\n * BreadcrumbItem Component\n *\n * A single item in the `ae-breadcrumb` navigation trail.\n * Renders as a link (`<a>`) when `href` is provided, otherwise as plain text.\n * The separator is injected by the parent `ae-breadcrumb`.\n *\n * @example\n * ```html\n * <ae-breadcrumb>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item href=\"/docs\">Docs</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current Page</ae-breadcrumb-item>\n * </ae-breadcrumb>\n * ```\n */\nclass BreadcrumbItem extends AeicoComponent {\n static tagName = 'breadcrumb-item';\n\n protected static styles = [styleVariables, style];\n\n @prop({ type: String })\n accessor href: string | undefined;\n\n protected render() {\n return html(({ li, span, slot, a }) => {\n li({ part: 'item', className: 'item' }, () => {\n span({ part: 'separator', className: 'sep', 'aria-hidden': 'true' }, () => {\n slot({ name: 'separator' });\n });\n span({ part: 'label', className: 'label' }, () => {\n if (this.href) {\n a({ href: this.href, part: 'link' }, () => {\n slot();\n });\n } else {\n slot();\n }\n });\n });\n });\n }\n}\n\nBreadcrumbItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-breadcrumb-item': BreadcrumbItem;\n }\n}\n\nexport default BreadcrumbItem;\nexport type BreadcrumbItemProps = InferProps<typeof BreadcrumbItem>;\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", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport copyButtonStyle from '../styles/components/copy-button.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\n// Ensure ae-icon and ae-tooltip are registered\nimport '../icon/icon';\nimport '../tooltip/tooltip';\nimport type Tooltip from '../tooltip/tooltip';\nimport type { TooltipPlacement } from '../tooltip/defines';\nimport type { CopyButtonColor, CopyButtonSize, CopyButtonVariant } from './defines';\n\nclass CopyButton extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, copyButtonStyle];\n\n @prop({ type: String })\n accessor text: string | undefined;\n\n @prop({ type: String })\n accessor color: CopyButtonColor | undefined;\n\n @prop({ type: String })\n accessor variant: CopyButtonVariant | undefined;\n\n @prop({ type: String })\n accessor size: CopyButtonSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @prop({ type: Number })\n accessor duration: number | undefined;\n\n @prop({ type: String })\n accessor tooltip: string = 'Copy';\n\n @prop({ type: String })\n accessor tooltipCopied: string = 'Copied!';\n\n @prop({ type: String })\n accessor tooltipPlacement: TooltipPlacement = 'top';\n\n private _slotElement: HTMLSlotElement | null = null;\n private _tooltipEl: Tooltip | null = null;\n private _resetTimer: ReturnType<typeof setTimeout> | null = null;\n\n private _getTextToCopy(): string {\n if (this.text != null) return this.text;\n\n const nodes = this._slotElement?.assignedNodes({ flatten: true }) ?? [];\n\n return nodes\n .reduce<string>((text, n) => {\n if (n.nodeType === Node.TEXT_NODE) return text + (n.textContent ?? '');\n\n return text;\n }, '')\n .trim();\n }\n\n private _handleClick = () => {\n if (this.disabled) return;\n\n const textToCopy = this._getTextToCopy();\n\n void navigator.clipboard.writeText(textToCopy).then(() => {\n this.setAttribute('copied', '');\n\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltipCopied;\n this._tooltipEl.open = true;\n }\n\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n }\n const duration = this.duration ?? 2000;\n this._resetTimer = setTimeout(() => {\n this.removeAttribute('copied');\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltip;\n this._tooltipEl.open = false;\n }\n this._resetTimer = null;\n }, duration);\n\n this.dispatchEvent(\n new CustomEvent('copy', {\n bubbles: true,\n composed: true,\n detail: { text: textToCopy },\n }),\n );\n });\n };\n\n protected onUnmounted() {\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n this._resetTimer = null;\n }\n }\n\n protected render() {\n return html(({ aeTooltip, button, span, slot, aeIcon }) => {\n this._tooltipEl = aeTooltip(\n {\n content: this.tooltip,\n placement: this.tooltipPlacement,\n disabled: this.disabled,\n },\n () => {\n button(\n {\n type: 'button',\n disabled: this.disabled,\n part: 'button',\n 'aria-label': this.tooltip,\n 'aria-disabled': this.disabled,\n '@click': this._handleClick,\n },\n () => {\n span({ className: 'icon-copy' }, () => {\n aeIcon({ name: 'copy', size: this.size });\n });\n span({ className: 'icon-check' }, () => {\n aeIcon({ name: 'check', size: this.size });\n });\n this._slotElement = slot();\n },\n );\n },\n );\n });\n }\n}\n\nCopyButton.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-copy-button': CopyButton;\n }\n}\n\nexport default CopyButton;\nexport type CopyButtonProps = InferProps<typeof CopyButton>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport tooltipStyle from '../styles/components/tooltip.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, prop } from 'aeico';\nimport type { TooltipPlacement, TooltipTrigger } from './defines';\n\n/**\n * Tooltip Component\n *\n * A floating label that appears on hover or focus around its trigger content.\n * Wrap any element in `<ae-tooltip>` and provide content via the `content`\n * attribute (plain text) or the `tooltip` named slot (rich HTML).\n *\n * @example\n * ```html\n * <ae-tooltip content=\"Save file\">\n * <ae-button>Save</ae-button>\n * </ae-tooltip>\n *\n * <ae-tooltip placement=\"bottom-start\">\n * <span slot=\"tooltip\"><strong>Bold</strong> tip</span>\n * <ae-icon-button name=\"info\"></ae-icon-button>\n * </ae-tooltip>\n * ```\n */\nclass Tooltip extends AeicoComponent {\n protected static styles = [styleVariables, tooltipStyle];\n\n @prop({ type: String })\n accessor content: string | undefined;\n\n @prop({ type: String })\n accessor placement: TooltipPlacement = 'top';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor trigger: TooltipTrigger = 'hover';\n\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('mouseenter', this._handleMouseEnter);\n this.listen('mouseleave', this._handleMouseLeave);\n this.listen('focusin', this._handleFocusin);\n this.listen('focusout', this._handleFocusout);\n this.listen('click', this._handleClick);\n\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (!e.composedPath().includes(this)) this.open = false;\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 private _handleMouseEnter = () => {\n if (this.trigger !== 'hover') return;\n if (this.disabled) return;\n this.open = true;\n };\n\n private _handleMouseLeave = () => {\n if (this.trigger !== 'hover') return;\n this.open = false;\n };\n\n private _handleFocusin = () => {\n if (this.trigger !== 'hover') return;\n if (this.disabled) return;\n this.open = true;\n };\n\n private _handleFocusout = () => {\n if (this.trigger !== 'hover') return;\n this.open = false;\n };\n\n private _handleClick = () => {\n if (this.trigger !== 'click') return;\n if (this.disabled) return;\n this.open = !this.open;\n };\n\n private _updatePosition() {\n const panel = this.shadowRoot?.querySelector<HTMLElement>('.tooltip-panel');\n if (!panel) return;\n\n const host = this.getBoundingClientRect();\n const panelRect = panel.getBoundingClientRect();\n const gap = 6; // Match --ae-tooltip-gap: 6px\n const pw = panelRect.width;\n const ph = panelRect.height;\n\n let top: number;\n let left: number;\n\n switch (this.placement) {\n case 'top-start':\n top = host.top - ph - gap;\n left = host.left;\n break;\n case 'top-end':\n top = host.top - ph - gap;\n left = host.right - pw;\n break;\n case 'bottom':\n top = host.bottom + gap;\n left = host.left + host.width / 2 - pw / 2;\n break;\n case 'bottom-start':\n top = host.bottom + gap;\n left = host.left;\n break;\n case 'bottom-end':\n top = host.bottom + gap;\n left = host.right - pw;\n break;\n case 'left':\n top = host.top + host.height / 2 - ph / 2;\n left = host.left - pw - gap;\n break;\n case 'right':\n top = host.top + host.height / 2 - ph / 2;\n left = host.right + gap;\n break;\n default: // 'top'\n top = host.top - ph - gap;\n left = host.left + host.width / 2 - pw / 2;\n }\n\n panel.style.top = `${top}px`;\n panel.style.left = `${left}px`;\n }\n\n protected onUpdated(changedProps: Map<string, unknown>) {\n if (changedProps.has('open') && this.open) {\n this._updatePosition();\n }\n }\n\n protected render() {\n return html(({ div, span, slot }) => {\n slot();\n div(\n {\n className: `tooltip-panel placement-${this.placement ?? 'top'}`,\n role: 'tooltip',\n 'aria-hidden': String(!this.open),\n },\n () => {\n slot({ name: 'tooltip' }, () => {\n span({ textContent: this.content ?? '' });\n });\n },\n );\n });\n }\n}\n\nTooltip.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tooltip': Tooltip;\n }\n}\n\nexport type TooltipProps = InferProps<typeof Tooltip>;\nexport default Tooltip;\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 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, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport buttonGroupStyle from '../styles/components/button-group.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { ButtonColor, ButtonVariant, ButtonSize } from '../button';\nimport Button from '../button/button';\nimport DropdownButton from '../dropdown/dropdown-button';\n\n/**\n * ButtonGroup Component\n *\n * Groups multiple `ae-button` elements, propagating shared `variant`, `color`,\n * `size`, and `disabled` props to each child. Supports a `compact` mode that\n * joins buttons into a seamless connected strip (like Bootstrap's button group).\n *\n * @example\n * ```html\n * <!-- Loose group (gap between buttons) -->\n * <ae-button-group variant=\"outlined\" color=\"primary\">\n * <ae-button>One</ae-button>\n * <ae-button>Two</ae-button>\n * <ae-button>Three</ae-button>\n * </ae-button-group>\n *\n * <!-- Compact \u2014 joined strip -->\n * <ae-button-group compact color=\"primary\">\n * <ae-button>Left</ae-button>\n * <ae-button>Middle</ae-button>\n * <ae-button>Right</ae-button>\n * </ae-button-group>\n *\n * <!-- Full-width -->\n * <ae-button-group block color=\"danger\" variant=\"outlined\">\n * <ae-button>Delete</ae-button>\n * <ae-button>Archive</ae-button>\n * </ae-button-group>\n * ```\n */\nclass ButtonGroup extends AeicoComponent {\n static props: Props = {\n variant: { type: String },\n color: { type: String },\n size: { type: String },\n compact: { type: Boolean },\n block: { type: Boolean },\n disabled: { type: Boolean },\n };\n\n protected static styles = [styleVariables, buttonGroupStyle];\n\n declare variant?: ButtonVariant;\n declare color?: ButtonColor;\n declare size?: ButtonSize;\n declare compact?: boolean;\n declare block?: boolean;\n declare disabled?: boolean;\n\n private slotEl: HTMLSlotElement | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.variant === undefined) this.variant = 'filled';\n if (this.color === undefined) this.color = 'default';\n if (this.size === undefined) this.size = 'md';\n }\n\n protected render() {\n return html(({ slot }) => {\n this.slotEl = slot({\n '@slotchange': () => this._syncChildren(),\n });\n this._syncChildren();\n });\n }\n\n private _getButtons(): Array<Button | DropdownButton> {\n if (!this.slotEl) return [];\n\n return (\n this.slotEl.assignedElements({ flatten: true }) as Array<Button | DropdownButton>\n ).filter((el) => {\n const tag = el.tagName.toLowerCase();\n return tag === 'ae-button' || tag === 'ae-dropdown-button';\n });\n }\n\n private _syncChildren() {\n const buttons = this._getButtons();\n const isSmall = this.size === 'xs' || this.size === 'sm';\n const r = isSmall ? 'var(--ae-radius-xs)' : 'var(--ae-radius-sm)';\n\n buttons.forEach((btn: Button | DropdownButton, i) => {\n btn.variant = this.variant;\n btn.color = this.color;\n btn.size = this.size;\n\n if (this.disabled) {\n btn.disabled = true;\n } else {\n btn.disabled = false;\n }\n\n if (this.compact) {\n const isFirst = i === 0;\n const isLast = i === buttons.length - 1;\n\n btn.style.marginLeft = isFirst ? '' : '-1px';\n\n btn.style.setProperty('--_btn-r-tl', isFirst ? r : '0');\n btn.style.setProperty('--_btn-r-bl', isFirst ? r : '0');\n btn.style.setProperty('--_btn-r-tr', isLast ? r : '0');\n btn.style.setProperty('--_btn-r-br', isLast ? r : '0');\n } else {\n btn.style.marginLeft = '';\n this._clearRadius(btn);\n }\n });\n }\n\n private _clearRadius(btn: HTMLElement) {\n btn.style.removeProperty('--_btn-r-tl');\n btn.style.removeProperty('--_btn-r-tr');\n btn.style.removeProperty('--_btn-r-br');\n btn.style.removeProperty('--_btn-r-bl');\n }\n}\n\nButtonGroup.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-button-group': ButtonGroup;\n }\n}\n\nexport default ButtonGroup;\nexport type ButtonGroupProps = InferProps<typeof ButtonGroup>;\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 badgeStyle from '../styles/components/badge.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Badge Component\n *\n * A small inline label for status, category, or count indicators.\n * Supports color, variant, size, and an optional leading/trailing ae-icon slot.\n *\n * @example\n * ```html\n * <ae-badge color=\"primary\">New</ae-badge>\n * <ae-badge variant=\"outlined\" color=\"success\">Active</ae-badge>\n * <ae-badge variant=\"subtle\" color=\"danger\" size=\"sm\">\n * <ae-icon slot=\"start\" name=\"warning\"></ae-icon>\n * Error\n * </ae-badge>\n * ```\n */\nclass Badge extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, badgeStyle];\n\n @prop({ type: String })\n accessor color: BadgeColor = 'default';\n\n @prop({ type: String })\n accessor variant: BadgeVariant = 'filled';\n\n @prop({ type: String })\n accessor size: BadgeSize = 'md';\n\n @prop({ type: Boolean })\n accessor pill: boolean = false;\n\n protected render() {\n return html(({ span, slot }) => {\n span({ part: 'badge', className: 'badge' }, () => {\n slot({ name: 'start' });\n slot();\n slot({ name: 'end' });\n });\n });\n }\n}\n\nBadge.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-badge': Badge;\n }\n}\n\nexport default Badge;\nexport type BadgeProps = InferProps<typeof Badge>;\n", "\uFEFFimport type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport alertStyle from '../styles/components/alert.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { AlertColor, AlertSize, AlertVariant } from './defines';\n\n/**\n * Alert Component\n *\n * A customizable alert/notification component with multiple variants and sizes.\n * Supports dismissible alerts and icon display.\n *\n * @example\n * ```typescript\n * // Using the static create method\n * const alert = Alert.create({\n * variant: 'info',\n * dismissible: true\n * })\n * alert.textContent = 'This is an informational message'\n * document.body.appendChild(alert)\n * ```\n *\n * @example\n * ```html\n * <!-- Using as Web Component -->\n * <ae-alert variant=\"info\">Information message</ae-alert>\n * <ae-alert variant=\"success\" dismissible>Operation successful!</ae-alert>\n * <ae-alert variant=\"warning\" size=\"sm\">Small warning</ae-alert>\n * ```\n */\nclass Alert extends AeicoComponent {\n static props: Props = {\n color: { type: String },\n variant: { type: String },\n size: { type: String },\n dismissible: { type: Boolean },\n invisible: { type: Boolean },\n closeText: { type: String },\n };\n\n protected static useStyles = ['alert'];\n protected static styles = [styleVariables, colorCSS, alertStyle];\n\n declare color?: AlertColor;\n declare variant?: AlertVariant;\n declare size?: AlertSize;\n declare dismissible?: boolean;\n declare invisible?: boolean;\n declare closeText?: string;\n\n protected render() {\n return html(({ div, slot, button, span }) => {\n div(\n {\n className: 'alert',\n role: 'alert',\n part: 'alert',\n style: { display: this.invisible ? 'none' : '' },\n },\n () => {\n slot();\n\n if (this.dismissible) {\n button(\n {\n className: 'alert-close',\n '@click': () => this._handleClose(),\n title: this.closeText || 'Close alert',\n },\n () => {\n span({ 'aria-hidden': 'true', textContent: '\\u00d7' });\n },\n );\n }\n },\n );\n });\n }\n\n show() {\n if (this.invisible) {\n this.invisible = false;\n }\n }\n\n hide() {\n this.invisible = true;\n }\n\n private _handleClose = () => {\n this.emit('alert-close', { detail: { target: this } });\n this.remove();\n };\n}\n\nAlert.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-alert': Alert;\n }\n}\n\nexport default Alert;\nexport type AlertProps = InferProps<typeof Alert>;\n", "\uFEFFimport type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/dialog.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, tags } from 'aeico';\nimport '../icon/icon';\n\nclass Dialog extends AeicoComponent {\n static props: Props = {\n label: { type: String },\n width: { type: String },\n height: { type: String },\n modal: { type: Boolean },\n closable: { type: Boolean },\n header: { type: Boolean },\n closeOnOverlayClick: { type: Boolean },\n };\n\n declare label?: string;\n declare width?: string;\n declare height?: string;\n declare modal?: boolean;\n declare closable?: boolean;\n declare header?: boolean;\n declare closeOnOverlayClick?: boolean;\n\n protected static styles = [styleVariables, style];\n\n private _dialogEl: HTMLDialogElement | null = null;\n private _hasFooter = false;\n\n protected render() {\n return html(({ dialog, div, header, footer, span, button, slot }) => {\n this._dialogEl = dialog(\n {\n '@click': this._handleDialogClick,\n '@close': this._handleNativeClose,\n style: {\n width: this.width || '',\n height: this.height || '',\n },\n },\n () => {\n if (this.header !== false) {\n header({}, () => {\n slot({ name: 'header' }, () => {\n span({ className: 'label', textContent: this.label || '' });\n });\n if (this.closable !== false) {\n const { aeIcon } = tags;\n button(\n {\n className: 'close-btn',\n 'aria-label': 'close',\n '@click': () => this.close(),\n },\n () => {\n aeIcon({ name: 'close' });\n },\n );\n }\n });\n }\n\n div({ className: 'body' }, () => {\n slot();\n });\n\n footer(\n {\n style: { display: this._hasFooter ? '' : 'none' },\n },\n () => {\n slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });\n },\n );\n },\n );\n });\n }\n\n private _handleDialogClick = (e: Event) => {\n const mouseEvent = e as MouseEvent;\n const path = mouseEvent.composedPath();\n\n for (const el of path) {\n if (el instanceof Element && el.hasAttribute('data-close')) {\n this.close();\n return;\n }\n if (el === this._dialogEl) break;\n }\n\n if (this.modal !== false && this.closeOnOverlayClick !== false) {\n if (mouseEvent.target === this._dialogEl) {\n const rect = this._dialogEl!.getBoundingClientRect();\n const outside =\n mouseEvent.clientX < rect.left ||\n mouseEvent.clientX > rect.right ||\n mouseEvent.clientY < rect.top ||\n mouseEvent.clientY > rect.bottom;\n if (outside) {\n this.close();\n }\n }\n }\n };\n\n private _handleNativeClose = () => {\n this.emit('close', { detail: { target: this } });\n };\n\n private _handleFooterSlotChange = (e: Event) => {\n const slotEl = e.target as HTMLSlotElement;\n const hasContent = slotEl.assignedElements().length > 0;\n if (hasContent !== this._hasFooter) {\n this._hasFooter = hasContent;\n this.update();\n }\n };\n\n open() {\n if (!this._dialogEl) return;\n if (this.modal !== false) {\n this._dialogEl.showModal();\n } else {\n this._dialogEl.show();\n }\n this.emit('open', { detail: { target: this } });\n }\n\n close() {\n this._dialogEl?.close();\n }\n\n isOpen(): boolean {\n return this._dialogEl?.open ?? false;\n }\n}\n\nDialog.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dialog': Dialog;\n }\n}\n\nexport default Dialog;\nexport type DialogProps = InferProps<typeof Dialog>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/drawer.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, prop, tags } from 'aeico';\nimport type { DrawerPlacement } from './defines';\nimport '../icon/icon';\n\nclass Drawer extends AeicoComponent {\n protected static styles = [styleVariables, style];\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: String })\n accessor placement: DrawerPlacement | undefined;\n\n @prop({ type: String })\n accessor size: string | undefined;\n\n @prop({ type: Boolean })\n accessor modal: boolean = true;\n\n @prop({ type: Boolean })\n accessor closable: boolean = true;\n\n @prop({ type: Boolean })\n accessor header: boolean = true;\n\n @prop({ type: Boolean })\n accessor closeOnOverlayClick: boolean = true;\n\n private _panelEl: HTMLDivElement | null = null;\n private _hasFooter = false;\n\n protected render() {\n const placement = this.placement || 'right';\n const isVertical = placement === 'top' || placement === 'bottom';\n\n return html(({ div, header, footer, span, button, slot }) => {\n // Backdrop (modal only)\n if (this.modal) {\n div({ className: 'backdrop', '@click': this._handleBackdropClick });\n }\n\n // Panel\n this._panelEl = div(\n {\n className: `panel placement-${placement}`,\n role: 'dialog',\n 'aria-modal': this.modal ? 'true' : 'false',\n 'aria-label': this.label,\n tabindex: '-1',\n '@click': this._handlePanelClick,\n style: {\n [isVertical ? 'height' : 'width']: this.size || '',\n },\n },\n () => {\n // Header\n if (this.header) {\n header({}, () => {\n slot({ name: 'header' }, () => {\n span({ className: 'label', textContent: this.label || '' });\n });\n if (this.closable) {\n const { aeIcon } = tags;\n button(\n {\n className: 'close-btn',\n 'aria-label': 'close',\n '@click': () => this.close(),\n },\n () => {\n aeIcon({ name: 'close' });\n },\n );\n }\n });\n }\n\n // Body\n div({ className: 'body' }, () => {\n slot();\n });\n\n // Footer \u2014 always rendered to capture slotchange, hidden when empty\n footer({ style: { display: this._hasFooter ? '' : 'none' } }, () => {\n slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });\n });\n },\n );\n });\n }\n\n private _handleBackdropClick = () => {\n if (this.closeOnOverlayClick) {\n this.close();\n }\n };\n\n private _handlePanelClick = (e: Event) => {\n const path = (e as MouseEvent).composedPath();\n for (const el of path) {\n if (el instanceof Element && el.hasAttribute('data-close')) {\n this.close();\n return;\n }\n if (el === this._panelEl) break;\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n this.close();\n }\n };\n\n private _handleFooterSlotChange = (e: Event) => {\n const slotEl = e.target as HTMLSlotElement;\n const hasContent = slotEl.assignedElements().length > 0;\n if (hasContent !== this._hasFooter) {\n this._hasFooter = hasContent;\n this.update();\n }\n };\n\n private _closeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n open() {\n clearTimeout(this._closeTimeout!);\n this.removeAttribute('data-closing');\n this.setAttribute('data-open', '');\n document.addEventListener('keydown', this._handleKeydown);\n requestAnimationFrame(() => {\n const btn = this.shadowRoot?.querySelector<HTMLElement>('.close-btn');\n (btn ?? this._panelEl)?.focus();\n });\n this.emit('open', { detail: { target: this } });\n }\n\n close() {\n if (this.hasAttribute('data-closing')) return;\n this.setAttribute('data-closing', '');\n document.removeEventListener('keydown', this._handleKeydown);\n this._closeTimeout = setTimeout(() => {\n this.removeAttribute('data-open');\n this.removeAttribute('data-closing');\n this.emit('close', { detail: { target: this } });\n }, 220);\n }\n\n isOpen(): boolean {\n return this.hasAttribute('data-open') && !this.hasAttribute('data-closing');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n clearTimeout(this._closeTimeout!);\n document.removeEventListener('keydown', this._handleKeydown);\n }\n}\n\nDrawer.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-drawer': Drawer;\n }\n}\n\nexport default Drawer;\nexport type DrawerProps = InferProps<typeof Drawer>;\n", "\uFEFFimport type { InferProps, Props } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { IconColor } from '../icon/defines';\n// Ensure ae-button and ae-icon are registered\nimport '../button/button';\nimport '../icon/icon';\n\nexport type IconButtonVariant = 'filled' | 'outlined' | 'subtle' | 'text';\nexport type IconButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\n/**\n * @deprecated Use `<ae-button>` with an `<ae-icon>` slot instead.\n *\n * ```html\n * <ae-button color=\"primary\"><ae-icon name=\"star\"></ae-icon></ae-button>\n * ```\n */\nclass IconButton extends AeicoComponent {\n static tagName = 'icon-button';\n\n static props: Props = {\n icon: { type: String },\n size: { type: String },\n color: { type: String },\n variant: { type: String },\n disabled: { type: Boolean },\n };\n\n declare icon?: string;\n declare size?: IconButtonSize;\n declare color?: IconColor;\n declare variant?: IconButtonVariant;\n declare disabled?: boolean;\n\n protected static styles = [':host { display: contents; }'];\n\n protected render() {\n return html(({ aeButton, aeIcon }) => {\n aeButton(\n {\n color: this.color,\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n },\n () => {\n aeIcon({ name: this.icon });\n },\n );\n });\n }\n}\n\nIconButton.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-icon-button': IconButton;\n }\n}\n\nexport default IconButton;\nexport type IconButtonProps = InferProps<typeof IconButton>;\n", "\uFEFFimport type { Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport tabsStyle from '../styles/components/tabs.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type Tab from './tab';\nimport type { TabVariant } from './defines';\n\nclass Tabs extends AeicoComponent {\n static props: Props = {\n activeIndex: { type: Number },\n variant: { type: String },\n };\n\n declare activeIndex?: number;\n declare variant?: TabVariant;\n\n protected static styles = [styleVariables, tabsStyle];\n\n private _observer: MutationObserver | null = null;\n\n private get _tabs(): Tab[] {\n return [...this.children].filter(\n (el) => el.tagName.toLowerCase() === 'ae-tab',\n ) as unknown as Tab[];\n }\n\n private get _panels(): HTMLElement[] {\n return [...this.children].filter(\n (el) => el.tagName.toLowerCase() === 'ae-tab-panel',\n ) as HTMLElement[];\n }\n\n private _getPairs(): [Tab, HTMLElement | null][] {\n const tabs = this._tabs;\n const panels = this._panels;\n\n const idMap = new Map<string, HTMLElement>();\n for (const panel of panels) {\n const id = panel.id;\n if (id) idMap.set(id, panel);\n }\n\n const usedPanels = new Set<HTMLElement>();\n const pairs: [Tab, HTMLElement | null][] = [];\n\n // First pass: ID-matched tabs\n for (const tab of tabs) {\n const panelId = tab.panel;\n if (panelId) {\n const panel = idMap.get(panelId) ?? null;\n if (panel) usedPanels.add(panel);\n pairs.push([tab, panel]);\n }\n }\n\n // Second pass: position-matched tabs (no panel attr)\n const unmatchedPanels = panels.filter((p) => !usedPanels.has(p));\n let posIndex = 0;\n for (const tab of tabs) {\n if (!tab.panel) {\n pairs.push([tab, unmatchedPanels[posIndex] ?? null]);\n posIndex++;\n }\n }\n\n return pairs;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._observer = new MutationObserver(() => this.update());\n this._observer.observe(this, { childList: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._observer?.disconnect();\n this._observer = null;\n }\n\n protected onUpdated() {\n this._syncVariant();\n this._syncActive();\n }\n\n private _syncVariant() {\n const variant = this.variant ?? 'text';\n this.setAttribute('variant', variant);\n for (const tab of this._tabs) {\n tab.setAttribute('variant', variant);\n }\n }\n\n private _handleTabClick = (e: Event) => {\n const pairs = this._getPairs();\n const target = e.target as Element;\n const index = pairs.findIndex(([tab]) => tab === target);\n if (index !== -1) this.selectTab(index);\n };\n\n private _syncActive() {\n const activeIndex = this.activeIndex ?? 0;\n const pairs = this._getPairs();\n\n pairs.forEach(([tab, panel], i) => {\n const isActive = i === activeIndex;\n if (isActive) {\n tab.setAttribute('active', '');\n panel?.setAttribute('active', '');\n } else {\n tab.removeAttribute('active');\n panel?.removeAttribute('active');\n }\n });\n }\n\n selectTab(index: number): void {\n const pairs = this._getPairs();\n if (index === (this.activeIndex ?? 0) || index >= pairs.length) return;\n this.activeIndex = index;\n this.emit('change', { detail: { index } });\n }\n\n protected render() {\n return html(({ nav, div, slot }) => {\n nav({ part: 'tab-nav', role: 'tablist', '@_tab-click': this._handleTabClick }, () => {\n slot({ name: 'tab' });\n });\n div({ part: 'panels' }, () => {\n slot();\n });\n });\n }\n}\n\nTabs.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tabs': Tabs;\n }\n}\n\nexport default Tabs;\n", "\uFEFFimport type { Props } from 'aeico';\nimport tabStyle from '../styles/components/tab.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\n\nclass Tab extends AeicoComponent {\n static props: Props = {\n active: { type: Boolean },\n disabled: { type: Boolean },\n panel: { type: String },\n };\n\n declare active?: boolean;\n declare disabled?: boolean;\n declare panel?: string;\n\n protected static styles = [tabStyle];\n\n connectedCallback() {\n this.setAttribute('slot', 'tab');\n super.connectedCallback();\n }\n\n private _handleClick = () => {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tab-click', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n protected render() {\n return html(({ button, slot }) => {\n button(\n {\n part: 'tab',\n type: 'button',\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-disabled': this.disabled,\n disabled: this.disabled,\n '@click': this._handleClick,\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nTab.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tab': Tab;\n }\n}\n\nexport default Tab;\n", "\uFEFFimport tabPanelStyle from '../styles/components/tab-panel.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\n\nclass TabPanel extends AeicoComponent {\n protected static styles = [tabPanelStyle];\n\n protected render() {\n return html(({ slot }) => {\n slot();\n });\n }\n}\n\nTabPanel.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tab-panel': TabPanel;\n }\n}\n\nexport default TabPanel;\n", "\uFEFFimport AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/divider.css';\nimport { prop } from 'aeico';\n/**\n * A simple divider component that can be used to separate content. It supports both horizontal and vertical orientations, as well as customizable thickness and color.\n * @example\n * ```html\n * <ae-divider></ae-divider>\n * <ae-divider vertical></ae-divider>\n * <ae-divider thickness=\"4px\" color=\"primary\"></ae-divider>\n * ```\n * @props\n * - `vertical` (boolean): If true, the divider will be vertical. Default is false (horizontal).\n * - `thickness` (string): Custom thickness for the divider (e.g., \"2px\", \"0.5rem\"). If not provided, it will use the default thickness defined in CSS.\n * - `color` (string): Color variant for the divider (e.g., \"primary\", \"secondary\"). If not provided, it will use the default color defined in CSS.\n *\n * @csspart divider - The main divider element that can be styled.\n *\n * @cssproperty --thickness - Custom property to set the thickness of the divider when the `thickness` prop is used.\n */\nclass Divider extends AeicoComponent {\n static tagName = 'divider';\n\n @prop({ type: Boolean })\n accessor vertical: boolean = false;\n\n @prop({ type: String })\n accessor thickness: string | undefined;\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n protected static styles = [styleVariables, colorCSS, style];\n\n protected render(): void {\n if (this.thickness) {\n this.style.setProperty('--thickness', this.thickness);\n } else {\n this.style.removeProperty('--thickness');\n }\n }\n}\n\nDivider.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-divider': Divider;\n }\n}\n\nexport default Divider;\nexport type DividerProps = InferProps<typeof Divider>;\n", "\uFEFFimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport cardStyle from '../styles/components/card.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n static tagName = 'card';\n\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n", "\uFEFFimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport navbarStyle from '../styles/components/navbar.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { NavbarColor, NavbarAppearance } from './defines';\n\n/**\n * Navbar Component\n *\n * A sticky top navigation bar with three slot regions and built-in\n * mobile hamburger collapse.\n *\n * Slots:\n * - `brand` \u2014 leftmost area, typically a logo or site name link\n * - `start` \u2014 main navigation links / dropdowns\n * - `end` \u2014 right-side actions (login button, avatar, etc.)\n *\n * Slotted `<a>` elements receive default link styling controlled via\n * CSS custom properties. Mark the active link with `aria-current=\"page\"`.\n *\n * @example\n * ```html\n * <ae-navbar color=\"primary\" appearance=\"block\">\n * <a slot=\"brand\" href=\"/\">MyApp</a>\n * <a slot=\"start\" href=\"/\" aria-current=\"page\">Home</a>\n * <a slot=\"start\" href=\"/docs\">Docs</a>\n * <ae-button slot=\"end\" size=\"sm\" variant=\"outlined\">Sign in</ae-button>\n * </ae-navbar>\n * ```\n *\n * @example\n * ```css\n * /* Custom height and transparent background *\\/\n * ae-navbar {\n * --ae-navbar-height: 4rem;\n * --ae-navbar-bg: transparent;\n * --ae-navbar-border-width: 0;\n * --ae-navbar-shadow: 0 1px 8px rgba(0, 0, 0, 0.08);\n * }\n * ```\n */\nclass Navbar extends AeicoComponent {\n static tagName = 'navbar';\n\n protected static styles = [styleVariables, colorCSS, navbarStyle];\n\n /** Background color using the design-system color token set. */\n @prop({ type: String })\n accessor color: NavbarColor | undefined;\n\n /** When true (default), the navbar sticks to the top of the viewport while scrolling. Set to false to let it scroll with the page. */\n @prop({ type: Boolean })\n accessor sticky: boolean = false;\n\n /**\n * Hover style preset for slotted `<a>` links.\n * - `text` \u2014 only the font color changes on hover (default)\n * - `block` \u2014 a subtle filled background block appears on hover\n *\n * Fine-tune further with `--ae-navbar-link-hover-color` /\n * `--ae-navbar-link-hover-bg` CSS variables.\n */\n @prop({ type: String })\n accessor appearance: NavbarAppearance = 'text';\n\n /** Whether the mobile menu is expanded. Reflects as the `open` attribute. */\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n // Close menu when clicking outside the navbar\n this._outsideClickHandler = (e: MouseEvent) => {\n // Event retargeting in shadow DOM means e.target is the host element\n // when the click originates inside the shadow root, so this check is safe.\n if (!this.contains(e.target as Node) && !this.shadowRoot?.contains(e.target as Node)) {\n this._closeMenu();\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 /** Toggle the mobile menu open/closed. */\n toggleMenu(): void {\n this.open = !this.open;\n }\n\n private _handleInnerClick = (e: Event) => {\n if (!this.open) return;\n // Close mobile menu when a slotted <a> link is clicked\n const path = e.composedPath() as Element[];\n if (path.some((el) => (el as HTMLElement).tagName === 'A')) {\n this._closeMenu();\n }\n };\n\n private _toggleMenu = () => {\n this.open = !this.open;\n };\n\n private _closeMenu = () => {\n if (this.open) this.open = false;\n };\n\n protected render() {\n return html(({ div, nav, button, span, slot }) => {\n div({ class: 'inner', '@click': this._handleInnerClick }, () => {\n div({ part: 'brand' }, () => {\n slot({ name: 'brand' });\n });\n nav({ part: 'nav', 'aria-label': 'Main navigation' }, () => {\n div({ part: 'start' }, () => {\n slot({ name: 'start' });\n });\n div({ part: 'end' }, () => {\n slot({ name: 'end' });\n });\n });\n button(\n {\n part: 'hamburger',\n type: 'button',\n 'aria-expanded': String(this.open),\n 'aria-label': 'Toggle navigation',\n '@click': this._toggleMenu,\n },\n () => {\n span({ 'aria-hidden': 'true' });\n span({ 'aria-hidden': 'true' });\n span({ 'aria-hidden': 'true' });\n },\n );\n });\n });\n }\n}\n\nNavbar.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-navbar': Navbar;\n }\n}\n\nexport default Navbar;\nexport type NavbarProps = InferProps<typeof Navbar>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } 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/spinner.css';\nimport type { SpinnerColor, SpinnerSize, SpinnerVariant } from './defines';\n\n/**\n * Spinner \u2014 animated loading indicator.\n *\n * Supports two visual variants: a rotating ring (`border`, default) and\n * three bouncing dots (`dots`). Size and colour are driven by the shared\n * design-token system.\n *\n * @example\n * ```html\n * <ae-spinner></ae-spinner>\n * <ae-spinner variant=\"dots\" color=\"primary\" size=\"lg\"></ae-spinner>\n * <ae-spinner color=\"success\" speed=\"0.5s\" label=\"Saving\u2026\"></ae-spinner>\n * ```\n */\nclass Spinner extends AeicoComponent {\n static tagName = 'spinner';\n\n @prop({ type: String })\n accessor variant: SpinnerVariant = 'border';\n\n @prop({ type: String })\n accessor size: SpinnerSize = 'md';\n\n @prop({ type: String })\n accessor color: SpinnerColor = 'default';\n\n @prop({ type: String })\n accessor label: string = 'Loading\u2026';\n\n @prop({ type: String })\n accessor speed: string | undefined;\n\n protected static styles = [styleVariables, sizeCSS, colorCSS, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'status');\n }\n\n protected render() {\n this.setAttribute('aria-label', this.label);\n\n if (this.speed) {\n this.style.setProperty('--spinner-speed', this.speed);\n } else {\n this.style.removeProperty('--spinner-speed');\n }\n\n const isDots = this.variant === 'dots';\n\n return html(({ span }) => {\n span({ part: 'track', className: 'track', 'aria-hidden': 'true' }, () => {\n if (isDots) {\n span({ className: 'dot' });\n span({ className: 'dot' });\n span({ className: 'dot' });\n }\n });\n });\n }\n}\n\nSpinner.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-spinner': Spinner;\n }\n}\n\nexport default Spinner;\nexport type SpinnerProps = InferProps<typeof Spinner>;\n", "\uFEFFimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport detailStyle from '../styles/components/detail.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { DetailColor, DetailVariant, DetailIconPlacement } from './defines';\n\n/**\n * Detail component that can be used to show/hide additional content.\n *\n * @example\n * ```html\n * <ae-detail summary=\"Click Me\">\n * <ae-icon name=\"plus\" slot=\"expand\"></ae-icon>\n * <ae-icon name=\"minus\" slot=\"collapse\"></ae-icon>\n * Detail.....\n * </ae-detail>\n */\nclass Detail extends AeicoComponent {\n static tagName = 'detail';\n\n protected static styles = [styleVariables, colorCSS, detailStyle];\n\n @prop({ type: String })\n accessor summary: string = '';\n\n @prop({ type: String })\n accessor variant: DetailVariant = 'filled';\n\n @prop({ type: String })\n accessor color: DetailColor = 'default';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor iconPlacement: DetailIconPlacement = 'end';\n\n private _open: boolean = false;\n\n /** Opens the detail panel. */\n open(): void {\n if (this.disabled || this._open) return;\n this._open = true;\n this.toggleAttribute('open', true);\n this.update();\n this.emit('open');\n }\n\n /** Closes the detail panel. */\n close(): void {\n if (!this._open) return;\n this._open = false;\n this.toggleAttribute('open', false);\n this.update();\n this.emit('close');\n }\n\n /** Toggles the detail panel open/closed. */\n toggle(): void {\n if (this._open) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Returns whether the detail panel is currently open. */\n isOpen(): boolean {\n return this._open;\n }\n\n private _handleSummaryClick = (): void => {\n this.toggle();\n };\n\n protected render() {\n return html(({ div, button, span, slot }) => {\n div({ className: 'detail', part: 'detail' }, () => {\n button(\n {\n className: 'summary',\n part: 'summary',\n type: 'button',\n 'aria-expanded': String(this._open),\n disabled: this.disabled || undefined,\n '@click': this._handleSummaryClick,\n },\n () => {\n slot({ name: 'summary' }, () => {\n span({ className: 'label', textContent: this.summary });\n });\n slot({ name: 'expand' });\n slot({ name: 'collapse' });\n },\n );\n div({ className: 'content-outer' }, () => {\n div(\n {\n className: 'content',\n part: 'content',\n role: 'region',\n },\n () => {\n slot();\n },\n );\n });\n });\n });\n }\n}\n\nDetail.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-detail': Detail;\n }\n}\n\nexport default Detail;\nexport type DetailProps = InferProps<typeof Detail>;\nexport type { DetailIconPlacement };\n", "import type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport detailGroupStyle from '../styles/components/detail-group.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type Detail from '../detail/detail';\nimport type { DetailColor, DetailVariant } from '../detail/defines';\n\n/**\n * DetailGroup component \u2014 wraps multiple `ae-detail` elements into an\n * accordion-style group. By default only one item can be open at a time;\n * set `multiple` to allow several items open simultaneously.\n *\n * @example\n * ```html\n * <ae-detail-group>\n * <ae-detail summary=\"Section 1\">Content 1</ae-detail>\n * <ae-detail summary=\"Section 2\">Content 2</ae-detail>\n * <ae-detail summary=\"Section 3\">Content 3</ae-detail>\n * </ae-detail-group>\n * ```\n */\nclass DetailGroup extends AeicoComponent {\n static tagName = 'detail-group';\n\n static props: Props = {\n multiple: { type: Boolean },\n variant: { type: String },\n color: { type: String },\n };\n\n protected static styles = [styleVariables, detailGroupStyle];\n\n declare multiple?: boolean;\n declare variant?: DetailVariant;\n declare color?: DetailColor;\n\n private slotEl: HTMLSlotElement | null = null;\n\n private readonly DETAIL_RADIUS = 6;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('open', this._handleOpen);\n }\n\n private _getDetails(): Detail[] {\n if (!this.slotEl) return [];\n return (this.slotEl.assignedElements({ flatten: true }) as Detail[]).filter(\n (el) => el.tagName.toLowerCase() === 'ae-detail',\n );\n }\n\n private _syncChildren(): void {\n const details = this._getDetails();\n const r = this.DETAIL_RADIUS;\n\n details.forEach((detail, i) => {\n const isFirst = i === 0;\n const isLast = i === details.length - 1;\n\n // Collapse borders between adjacent items\n detail.style.marginTop = isFirst ? '' : '-1px';\n\n // Adjust per-corner radius so only the outer edges of the group keep it\n detail.style.setProperty('--detail-r-tl', isFirst ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-tr', isFirst ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-br', isLast ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-bl', isLast ? `${r}px` : '0');\n\n // Propagate variant / color only when explicitly set on the group\n if (this.variant !== undefined) detail.variant = this.variant;\n if (this.color !== undefined) detail.color = this.color;\n });\n }\n\n private _handleOpen = (event: Event): void => {\n if (this.multiple) return;\n const opened = event.target as Element;\n this._getDetails().forEach((detail) => {\n if (detail !== opened) detail.close();\n });\n };\n\n protected render() {\n return html(({ slot }) => {\n this.slotEl = slot({\n '@slotchange': () => this._syncChildren(),\n });\n this._syncChildren();\n });\n }\n}\n\nDetailGroup.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-detail-group': DetailGroup;\n }\n}\n\nexport default DetailGroup;\nexport type DetailGroupProps = InferProps<typeof DetailGroup>;\n", "import type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/progress-bar.css';\nimport type { ProgressBarColor } from './defines';\n\n/**\n * Progress bars show how far along an ongoing operation is as a horizontal fill.\n * Use them for file uploads, multi-step flows, or any task with measurable progress.\n *\n * @prop {number} value - Completion percentage, automatically clamped to 0\u2013100.\n * @prop {string} label - Accessible label applied as `aria-label` on the track.\n * @prop {'default'|'primary'|'secondary'|'success'|'danger'|'warning'|'info'} color\n * - Preset color variant driven by the shared color system.\n * @prop {boolean} animated - When set, overlays a shimmer sweep animation on the bar.\n *\n * @csspart base - The outermost wrapper `<div>`.\n * @csspart track - The background track `<div>`.\n * @csspart bar - The filled progress `<span>`.\n *\n * @cssproperty [--progress-height=8px] - Height of both the track and the bar.\n * @cssproperty [--progress-bar-color=var(--color-solid)] - Fill color of the bar.\n * When set, takes precedence over the `color` prop entirely.\n */\nclass ProgressBar extends AeicoComponent {\n static tagName = 'progress-bar';\n protected static styles = [styleVariables, colorCSS, style];\n\n @prop({ type: Number })\n accessor value: number = 0;\n\n @prop({ type: String })\n accessor label: string = '';\n\n @prop({ type: String })\n accessor color: ProgressBarColor = 'primary';\n\n @prop({ type: Boolean })\n accessor animated: boolean = false;\n\n protected render() {\n const clamped = Math.min(100, Math.max(0, this.value));\n\n return html(({ div, span }) => {\n div({ part: 'base' }, () => {\n div(\n {\n part: 'track',\n className: 'progress-track',\n role: 'progressbar',\n 'aria-valuenow': String(clamped),\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n ...(this.label ? { 'aria-label': this.label } : {}),\n },\n () => {\n span({\n part: 'bar',\n className: 'progress-bar',\n style: { width: `${clamped}%` },\n });\n },\n );\n });\n });\n }\n}\n\nProgressBar.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-progress-bar': ProgressBar;\n }\n}\n\nexport default ProgressBar;\nexport type ProgressBarProps = InferProps<typeof ProgressBar>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu.css';\nimport variables from '../styles/variables.css';\nimport type { MenuMode, MenuOrientation, MenuSelectDetail, MenuTrigger } from './defines';\n// Ensure ae-menu-item is registered when this module is used\nimport './menu-item';\n\n/**\n * Menu navigation component. Renders a horizontal or vertical menu with\n * optional two-level flyout or inline (accordion) submenus.\n *\n * Two modes:\n * - `flyout` (default) \u2014 submenus open as floating panels (like a nav bar or\n * context menu).\n * - `inline` \u2014 submenus expand in-place (accordion-style sidebar).\n *\n * Emits:\n * - `select` \u2014 `{ detail: { key, label, keyPath } }` when a leaf item is clicked.\n */\nclass Menu extends AeicoComponent {\n static tagName = 'menu';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor mode: MenuMode = 'flyout';\n\n @prop({ type: String })\n accessor orientation: MenuOrientation = 'horizontal';\n\n @prop({ type: String })\n accessor trigger: MenuTrigger = 'click';\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n @prop({ type: Boolean })\n accessor wrapText: boolean = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_menu-item-select', this._handleItemSelect as EventListener);\n }\n\n private _handleItemSelect = (e: CustomEvent<MenuSelectDetail>): void => {\n const { key, label, keyPath } = e.detail;\n // Update visual selection on all leaf items\n this.querySelectorAll('ae-menu-item').forEach((el) => {\n const item = el;\n item.selected = item.key === key && !item.label; // only leaf items\n });\n this.selectedKey = key;\n this.emit('select', { detail: { key, label, keyPath } });\n };\n\n protected render() {\n const isHorizontal = this.orientation === 'horizontal';\n return html(({ div, slot }) => {\n div(\n {\n className: { 'menu-list': true, 'menu-list--horizontal': isHorizontal },\n role: isHorizontal ? 'menubar' : 'menu',\n 'aria-orientation': this.orientation,\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nMenu.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu': Menu;\n }\n}\n\nexport default Menu;\nexport type MenuProps = InferProps<typeof Menu>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu-item.css';\nimport variables from '../styles/variables.css';\nimport type {\n MenuMode,\n MenuOrientation,\n MenuTrigger,\n ParentMenuLike,\n MenuIconPlacement,\n} from './defines';\n\n/**\n * Menu item \u2014 used as a direct child of `<ae-menu>` or nested inside another\n * `<ae-menu-item>` to create a two-level submenu.\n *\n * - **Leaf item**: omit `label`; slot contains the item text.\n * - **Parent item**: set `label` to the trigger text; slot children are\n * `<ae-menu-item>` elements that appear in the submenu panel/section.\n *\n * **Slots (parent items only)**\n * - `expand` \u2014 icon shown when the submenu is closed (default: CSS triangle).\n * - `collapse` \u2014 icon shown when the submenu is open (default: rotated CSS triangle).\n *\n * @example\n * ```html\n * <ae-menu-item label=\"Settings\" icon-placement=\"start\">\n * <ae-icon name=\"chevron-right\" slot=\"expand\"></ae-icon>\n * <ae-icon name=\"chevron-down\" slot=\"collapse\"></ae-icon>\n * <ae-menu-item key=\"profile\">Profile</ae-menu-item>\n * </ae-menu-item>\n * ```\n */\nclass MenuItem extends AeicoComponent {\n static tagName = 'menu-item';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor href: string | undefined;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n @prop({ type: String })\n accessor iconPlacement: MenuIconPlacement = 'end';\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n private _closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // data-depth lets CSS apply depth-specific styles without JS\n const depth = this.parentElement?.closest('ae-menu-item') ? 1 : 0;\n this.dataset.depth = String(depth);\n\n // Hover listeners \u2014 check mode/trigger at runtime\n this.listen('mouseenter', this._handleMouseEnter);\n this.listen('mouseleave', this._handleMouseLeave);\n\n // Outside-click to close flyout panel (not applicable in inline mode)\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (this._mode === 'inline') return;\n if (!e.composedPath().includes(this)) this.open = false;\n };\n\n document.addEventListener('click', this._outsideClickHandler);\n\n // Close own submenu when a leaf inside it is selected (flyout)\n this.listen('_menu-item-select', this._handleChildSelect as EventListener);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._outsideClickHandler) {\n document.removeEventListener('click', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n }\n\n private get _parentMenu(): ParentMenuLike | null {\n return this.closest<ParentMenuLike>('ae-menu');\n }\n\n private get _mode(): MenuMode {\n return this._parentMenu?.mode ?? 'flyout';\n }\n\n private get _orientation(): MenuOrientation {\n return this._parentMenu?.orientation ?? 'horizontal';\n }\n\n private get _trigger(): MenuTrigger {\n return this._parentMenu?.trigger ?? 'click';\n }\n\n private get _wrapText(): boolean {\n return this._parentMenu?.wrapText ?? false;\n }\n\n private get _isParent(): boolean {\n return this.label != null && this.label !== '';\n }\n\n /** Compute flyout panel placement based on depth and parent orientation. */\n private get _panelPlacement(): 'bottom' | 'right' {\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n if (!isNested && this._orientation === 'horizontal') return 'bottom';\n return 'right';\n }\n\n private _isHoverTrigger(): boolean {\n return this._isParent && this._mode === 'flyout' && this._trigger === 'hover';\n }\n\n private _handleMouseEnter = (): void => {\n if (!this._isHoverTrigger()) return;\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n this.open = true;\n };\n\n private _handleMouseLeave = (): void => {\n if (!this._isHoverTrigger()) return;\n this._closeTimer = setTimeout(() => {\n this.open = false;\n this._closeTimer = null;\n }, 150);\n };\n\n private _handleParentClick = (): void => {\n if (this.disabled) return;\n const mode = this._mode;\n const trigger = this._trigger;\n // In hover mode, click should still toggle (accessibility)\n if (mode === 'flyout' && trigger === 'hover') {\n this.open = !this.open;\n return;\n }\n this.open = !this.open;\n };\n\n private _handleLeafClick = (e: Event): void => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n const path = this._buildKeyPath();\n const label = this.textContent?.trim() ?? '';\n this.dispatchEvent(\n new CustomEvent('_menu-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this.key ?? '', label, keyPath: path },\n }),\n );\n };\n\n private _handleChildSelect = (): void => {\n // Close flyout panel after a child leaf is selected\n if (this._mode === 'flyout') {\n this.open = false;\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this.open = false;\n }\n };\n\n private _buildKeyPath(): string[] {\n const path: string[] = [];\n if (this.key) path.unshift(this.key);\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-menu-item') {\n const k = (el as MenuItem).key;\n if (k) path.unshift(k);\n } else if (tag === 'ae-menu') {\n break;\n }\n el = el.parentElement;\n }\n return path;\n }\n\n protected render() {\n const mode = this._mode;\n const panelPlacement = this._panelPlacement;\n const isParent = this._isParent;\n const isInline = mode === 'inline';\n // Arrow direction: inline always shows \u25BA (rotates to \u25BC on open)\n // flyout-bottom shows \u25BC; flyout-right shows \u25BA\n const arrowDir = !isInline && panelPlacement === 'bottom' ? 'bottom' : 'right';\n const wrapText = this._wrapText;\n // Leaf items inside a submenu panel (depth > 0) need different padding\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n\n return html(({ div, button, a, span, slot }) => {\n if (isParent) {\n div({ className: 'item-wrapper' }, () => {\n button(\n {\n type: 'button',\n className: {\n item: true,\n 'item--parent': true,\n 'item--open': this.open,\n 'item--wrap': wrapText,\n },\n disabled: this.disabled,\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(this.open),\n '@click': this._handleParentClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n span({ text: this.label });\n slot({ name: 'expand' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n slot({ name: 'collapse' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n },\n );\n\n if (isInline) {\n div(\n {\n className: { 'submenu-inline': true, open: this.open },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n } else {\n div(\n {\n className: {\n 'submenu-panel': true,\n [`placement-${panelPlacement}`]: true,\n open: this.open,\n },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n }\n });\n } else {\n // Leaf item\n const sharedProps = {\n className: { item: true, 'item--leaf-in-panel': isNested, 'item--wrap': wrapText },\n role: 'menuitem',\n '@click': this._handleLeafClick,\n '@keydown': this._handleKeydown,\n };\n\n if (this.href) {\n a(\n {\n ...sharedProps,\n href: this.disabled ? undefined : this.href,\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n slot();\n },\n );\n } else {\n button(\n {\n ...sharedProps,\n type: 'button',\n disabled: this.disabled,\n },\n () => {\n slot();\n },\n );\n }\n }\n });\n }\n}\n\nMenuItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu-item': MenuItem;\n }\n}\n\nexport default MenuItem;\nexport type MenuItemProps = InferProps<typeof MenuItem>;\nexport type { MenuIconPlacement };\n", "import { html, prop, tags } from 'aeico';\nimport type { InferProps } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport paginationStyle from '../styles/components/pagination.css';\nimport type { PaginationSize, PaginationVariant } from './defines';\nimport '../icon/icon';\n\ntype PageItem = number | 'ellipsis-start' | 'ellipsis-end';\n\n/**\n * Pagination component for navigating between pages of content.\n *\n * @prop {number} page - Current page number (1-indexed). Default: 1.\n * @prop {number} pageSize - Number of items per page. Default: 10.\n * @prop {number} total - Total number of items. Used to compute pageCount when pageCount is not set.\n * @prop {number} pageCount - Total number of pages. Overrides total/pageSize calculation when set.\n * @prop {number} siblingCount - Number of page buttons to show on each side of the current page. Default: 1.\n * @prop {'xs'|'sm'|'md'|'lg'} size - Size variant.\n * @prop {boolean} disabled - Disables all interactive controls.\n * @prop {boolean} simple - Simple mode: shows only prev/next buttons and a page number input.\n * @prop {boolean} showFirstLast - Show dedicated first-page and last-page jump buttons.\n * @prop {'borderless'|'link'} variant - Visual variant. `borderless` removes borders; `link` renders page numbers as plain text links with no borders or backgrounds.\n *\n * @event {CustomEvent<{page: number}>} change - Fired when the page changes.\n *\n * @slot prev - Custom content for the previous-page button (default: chevron-left icon).\n * @slot next - Custom content for the next-page button (default: chevron-right icon).\n * @slot first - Custom content for the first-page button (default: chevrons-left icon). Requires showFirstLast.\n * @slot last - Custom content for the last-page button (default: chevrons-right icon). Requires showFirstLast.\n *\n * @csspart root - The outer <nav> element.\n * @csspart prev - The previous-page button.\n * @csspart next - The next-page button.\n * @csspart first - The first-page button (visible when showFirstLast).\n * @csspart last - The last-page button (visible when showFirstLast).\n * @csspart item - A page number button.\n * @csspart ellipsis - An ellipsis span between page groups.\n * @csspart page-input - The page number input in simple mode.\n * @csspart page-total - The \"/ N\" label in simple mode.\n *\n * @example\n * ```html\n * <ae-pagination total=\"100\" page-size=\"10\" page=\"1\"></ae-pagination>\n * ```\n */\nclass Pagination extends AeicoComponent {\n static tagName = 'pagination';\n\n protected static styles = [styleVariables, sizeCSS, paginationStyle];\n\n @prop({ type: Number })\n accessor page: number = 1;\n\n @prop({ type: Number })\n accessor pageSize: number = 10;\n\n @prop({ type: Number })\n accessor total: number = 0;\n\n @prop({ type: Number })\n accessor pageCount: number | undefined;\n\n @prop({ type: Number })\n accessor siblingCount: number = 1;\n\n @prop({ type: String })\n accessor size: PaginationSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor simple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showFirstLast: boolean = false;\n\n @prop({ type: String })\n accessor variant: PaginationVariant | undefined;\n\n private _simpleInput: HTMLInputElement | null = null;\n\n private get _computedPageCount(): number {\n if (this.pageCount != null) return Math.max(1, this.pageCount);\n const ps = this.pageSize > 0 ? this.pageSize : 10;\n return Math.max(1, Math.ceil(this.total / ps));\n }\n\n private get _currentPage(): number {\n const count = this._computedPageCount;\n return Math.max(1, Math.min(this.page ?? 1, count));\n }\n\n private _getPageItems(): PageItem[] {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const sc = Math.max(0, this.siblingCount ?? 1);\n\n const rangeStart = Math.max(2, page - sc);\n const rangeEnd = Math.min(count - 1, page + sc);\n\n const showLeftEllipsis = rangeStart > 2;\n const showRightEllipsis = rangeEnd < count - 1;\n\n const items: PageItem[] = [];\n\n // First page always shown\n items.push(1);\n\n if (count <= 1) return items;\n\n // Left side\n if (showLeftEllipsis) {\n items.push('ellipsis-start');\n } else {\n for (let i = 2; i < rangeStart; i++) items.push(i);\n }\n\n // Sibling range (bounded to 2..count-1)\n for (let i = rangeStart; i <= rangeEnd; i++) items.push(i);\n\n // Right side\n if (showRightEllipsis) {\n items.push('ellipsis-end');\n } else {\n for (let i = rangeEnd + 1; i < count; i++) items.push(i);\n }\n\n // Last page always shown\n items.push(count);\n\n return items;\n }\n\n private _goToPage(page: number): void {\n const count = this._computedPageCount;\n const next = Math.max(1, Math.min(count, page));\n if (next === this._currentPage) return;\n this.page = next;\n this.emit('change', { detail: { page: this.page } });\n }\n\n private _handleItemClick = (e: Event): void => {\n const btn = e.currentTarget as HTMLElement;\n const p = Number(btn.dataset.page);\n if (!isNaN(p)) this._goToPage(p);\n };\n\n private _handlePrevClick = (): void => {\n this._goToPage(this._currentPage - 1);\n };\n private _handleNextClick = (): void => {\n this._goToPage(this._currentPage + 1);\n };\n private _handleFirstClick = (): void => {\n this._goToPage(1);\n };\n private _handleLastClick = (): void => {\n this._goToPage(this._computedPageCount);\n };\n\n private _handleSimpleInputChange = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n const val = parseInt(input.value, 10);\n if (!isNaN(val)) {\n this._goToPage(val);\n }\n\n input.value = String(this._currentPage);\n };\n\n protected onUpdated(): void {\n if (this._simpleInput) {\n this._simpleInput.value = String(this._currentPage);\n }\n }\n\n private _renderNavBtn(\n name: 'first' | 'prev' | 'next' | 'last',\n iconName: string,\n label: string,\n disabled: boolean,\n onClick: () => void,\n ): void {\n const { button, slot, aeIcon } = tags;\n\n button(\n {\n key: name,\n part: name,\n className: 'nav-btn',\n disabled,\n 'aria-label': label,\n '@click': onClick,\n },\n () => {\n slot({ name }, () => {\n aeIcon({ name: iconName });\n });\n },\n );\n }\n\n private _renderSimpleMode(page: number, count: number, disabled: boolean): void {\n this._simpleInput = tags.input({\n key: 'page-input',\n part: 'page-input',\n type: 'number',\n min: '1',\n max: String(count),\n value: String(page),\n disabled,\n 'aria-label': 'Page number',\n '@change': this._handleSimpleInputChange,\n });\n tags.span({ key: 'page-total', part: 'page-total', textContent: `/ ${count}` });\n }\n\n private _renderPageItems(page: number, disabled: boolean): void {\n for (const item of this._getPageItems()) {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n tags.span({\n key: item,\n part: 'ellipsis',\n className: 'ellipsis',\n 'aria-hidden': 'true',\n textContent: '\u2026',\n });\n } else {\n const isActive = item === page;\n tags.button({\n key: `item-${item}`,\n part: isActive ? 'item item-active' : 'item',\n className: isActive ? 'item active' : 'item',\n disabled,\n 'aria-current': isActive ? 'page' : undefined,\n 'aria-label': `Page ${item}`,\n 'data-page': String(item),\n textContent: String(item),\n '@click': this._handleItemClick,\n });\n }\n }\n }\n\n protected render() {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const disabled = this.disabled;\n const isFirst = page <= 1;\n const isLast = page >= count;\n\n return html(({ nav }) => {\n nav({ part: 'root', role: 'navigation', 'aria-label': 'Pagination' }, () => {\n if (this.showFirstLast)\n this._renderNavBtn(\n 'first',\n 'chevrons-left',\n 'First page',\n disabled || isFirst,\n this._handleFirstClick,\n );\n\n this._renderNavBtn(\n 'prev',\n 'chevron-left',\n 'Previous page',\n disabled || isFirst,\n this._handlePrevClick,\n );\n\n if (this.simple) {\n this._renderSimpleMode(page, count, disabled);\n } else {\n this._renderPageItems(page, disabled);\n }\n\n this._renderNavBtn(\n 'next',\n 'chevron-right',\n 'Next page',\n disabled || isLast,\n this._handleNextClick,\n );\n\n if (this.showFirstLast)\n this._renderNavBtn(\n 'last',\n 'chevrons-right',\n 'Last page',\n disabled || isLast,\n this._handleLastClick,\n );\n });\n });\n }\n}\n\nPagination.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-pagination': Pagination;\n }\n}\n\nexport default Pagination;\nexport type PaginationProps = InferProps<typeof Pagination>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree.css';\nimport variables from '../styles/variables.css';\nimport type { TreeSelectDetail, TreeExpandDetail, TreeCheckDetail } from './defines';\nimport './tree-item';\nimport type TreeItem from './tree-item';\n\n/**\n * Tree component. Renders a hierarchical tree of `<ae-tree-item>` elements.\n *\n * @prop {boolean} checkable - Enable checkbox selection mode with parent-child sync.\n * @prop {boolean} multiple - Allow multi-select (click to toggle). Ignored when checkable.\n * @prop {boolean} showLine - Show dashed connecting lines between items.\n * @prop {boolean} defaultExpandAll - Expand all items on initial connect.\n * @prop {string} selectedKey - Currently selected key (single-select convenience prop).\n *\n * @property {string[]} selectedKeys - Currently selected keys (multi-select).\n * @property {string[]} checkedKeys - Currently checked keys (checkable mode).\n * @property {string[]} expandedKeys - Currently expanded keys.\n *\n * @event {CustomEvent<TreeSelectDetail>} select - Fires when an item is selected/deselected.\n * @event {CustomEvent<TreeExpandDetail>} expand - Fires when an item is expanded/collapsed.\n * @event {CustomEvent<TreeCheckDetail>} check - Fires when an item checkbox changes.\n *\n * @example\n * ```html\n * <ae-tree>\n * <ae-tree-item key=\"1\" label=\"Parent\">\n * <ae-tree-item key=\"1-1\" label=\"Child A\"></ae-tree-item>\n * <ae-tree-item key=\"1-2\" label=\"Child B\"></ae-tree-item>\n * </ae-tree-item>\n * </ae-tree>\n * ```\n */\nclass Tree extends AeicoComponent {\n static tagName = 'tree';\n\n protected static styles = [variables, style];\n\n @prop({ type: Boolean })\n accessor checkable: boolean = false;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showLine: boolean = false;\n\n @prop({ type: Boolean })\n accessor defaultExpandAll: boolean = false;\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n /** Icon name used for the expand/collapse toggle on all items (overridable per item). */\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Currently selected keys (multi-select). Set programmatically. */\n selectedKeys: string[] = [];\n\n /** Currently checked keys (checkable mode). Set programmatically. */\n checkedKeys: string[] = [];\n\n /** Currently expanded keys. Set programmatically. */\n expandedKeys: string[] = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_tree-item-toggle-expand', this._handleItemToggleExpand as EventListener);\n this.listen('_tree-item-select', this._handleItemSelect as EventListener);\n this.listen('_tree-item-check', this._handleItemCheck as EventListener);\n }\n\n private _getAllItems(): TreeItem[] {\n return Array.from(this.querySelectorAll<TreeItem>('ae-tree-item'));\n }\n\n private _getDirectChildren(node: Element): TreeItem[] {\n return Array.from(node.querySelectorAll<TreeItem>(':scope > ae-tree-item'));\n }\n\n private _computeCheckedKeys(): string[] {\n const keys: string[] = [];\n for (const item of this._getAllItems()) {\n if (item.checked && !item.indeterminate) {\n keys.push(item.key ?? '');\n }\n }\n return keys.filter(Boolean);\n }\n\n private _handleItemToggleExpand = (e: CustomEvent<{ key: string }>): void => {\n const node = e.target as TreeItem;\n const newExpanded = !node.expanded;\n node.expanded = newExpanded;\n\n const key = node.key ?? '';\n if (newExpanded) {\n if (!this.expandedKeys.includes(key)) {\n this.expandedKeys = [...this.expandedKeys, key];\n }\n } else {\n this.expandedKeys = this.expandedKeys.filter((k) => k !== key);\n }\n\n this.emit('expand', {\n detail: {\n key,\n expanded: newExpanded,\n expandedKeys: [...this.expandedKeys],\n } satisfies TreeExpandDetail,\n });\n };\n\n private _handleItemSelect = (e: CustomEvent<{ key: string }>): void => {\n const { key } = e.detail;\n\n if (this.multiple) {\n // Toggle selection\n const alreadySelected = this.selectedKeys.includes(key);\n if (alreadySelected) {\n this.selectedKeys = this.selectedKeys.filter((k) => k !== key);\n } else {\n this.selectedKeys = [...this.selectedKeys, key];\n }\n this.selectedKey = this.selectedKeys[this.selectedKeys.length - 1];\n\n // Sync visual state\n this._getAllItems().forEach((item) => {\n item.selected = this.selectedKeys.includes(item.key ?? '');\n });\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n } else {\n // Single select \u2014 deselect all, select target\n const alreadySelected = this.selectedKey === key;\n this._getAllItems().forEach((item) => {\n item.selected = !alreadySelected && item.key === key;\n });\n this.selectedKey = alreadySelected ? undefined : key;\n this.selectedKeys = this.selectedKey ? [this.selectedKey] : [];\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n }\n };\n\n private _handleItemCheck = (e: CustomEvent<{ key: string; checked: boolean }>): void => {\n const { key, checked } = e.detail;\n const sourceNode = e.target as TreeItem;\n\n this._setCheckedRecursive(sourceNode, checked);\n this._syncAncestors(sourceNode);\n this.checkedKeys = this._computeCheckedKeys();\n\n this.emit('check', {\n detail: { key, checked, checkedKeys: [...this.checkedKeys] } satisfies TreeCheckDetail,\n });\n };\n\n private _setCheckedRecursive(node: TreeItem, checked: boolean): void {\n if (node.disabled) return;\n node.checked = checked;\n node.indeterminate = false;\n for (const child of this._getDirectChildren(node)) {\n this._setCheckedRecursive(child, checked);\n }\n }\n\n private _syncAncestors(sourceNode: TreeItem): void {\n let el: Element | null = sourceNode.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n const parent = el as TreeItem;\n const children = this._getDirectChildren(parent).filter((c) => !c.disabled);\n if (children.length === 0) break;\n const checkedCount = children.filter((c) => c.checked && !c.indeterminate).length;\n const indeterminateCount = children.filter((c) => c.indeterminate).length;\n\n if (checkedCount === children.length) {\n parent.checked = true;\n parent.indeterminate = false;\n } else if (checkedCount > 0 || indeterminateCount > 0) {\n parent.checked = false;\n parent.indeterminate = true;\n } else {\n parent.checked = false;\n parent.indeterminate = false;\n }\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n }\n\n protected render() {\n return html(({ div, slot }) => {\n div(\n {\n className: 'tree',\n role: 'tree',\n 'aria-multiselectable': this.multiple ? 'true' : 'false',\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nTree.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree': Tree;\n }\n}\n\nexport default Tree;\nexport type TreeProps = InferProps<typeof Tree>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree-item.css';\nimport variables from '../styles/variables.css';\nimport type { ParentTreeLike } from './defines';\nimport { SVG_NS } from '../utils';\nimport '../icon';\n\nlet _autoKeyCounter = 0;\n\n/**\n * Tree item \u2014 used as a direct child of `<ae-tree>` or nested inside another\n * `<ae-tree-item>` to create a multi-level tree.\n *\n * - **Parent item**: nest `<ae-tree-item>` children inside; an expand toggle is shown.\n * - **Leaf item**: no `<ae-tree-item>` children; no expand toggle is shown.\n *\n * @prop {string} key - Unique identifier for this item.\n * @prop {string} icon - Icon name (uses `<ae-icon>`). Optional.\n * @prop {boolean} disabled - Disables interaction.\n * @prop {boolean} expanded - Whether children are visible.\n * @prop {boolean} selected - Whether this item is visually selected.\n * @prop {boolean} checked - Checkbox state (checkable mode).\n * @prop {boolean} indeterminate - Checkbox partial state (checkable mode, JS-only).\n *\n * @slot default - Child `<ae-tree-item>` elements.\n * @slot label - Custom label content (falls back to the `label` attribute text).\n */\nclass TreeItem extends AeicoComponent {\n static tagName = 'tree-item';\n\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Stable auto-generated key used when `key` prop is not set. */\n private readonly _autoKey = `ae-tree-item-${_autoKeyCounter++}`;\n\n private get _effectiveKey(): string {\n return this.key ?? this._autoKey;\n }\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor expanded: boolean = false;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor checked: boolean = false;\n\n @prop({ type: Boolean })\n accessor indeterminate: boolean = false;\n\n private _checkboxEl: HTMLInputElement | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // Auto-assign slot so users don't need to write slot=\"sub\" manually\n if (\n this.parentElement?.tagName.toLowerCase() === 'ae-tree-item' &&\n !this.hasAttribute('slot')\n ) {\n this.setAttribute('slot', 'sub');\n }\n\n let depth = 0;\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n depth++;\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n this.style.setProperty('--depth', String(depth));\n\n if (this._parentTree?.showLine) {\n this.setAttribute('showline', '');\n }\n }\n\n protected onMounted(): void {\n if (this._parentTree?.defaultExpandAll && this._hasChildren) {\n this.expanded = true;\n }\n }\n\n private get _parentTree(): ParentTreeLike | null {\n return this.closest<ParentTreeLike>('ae-tree');\n }\n\n private get _isCheckable(): boolean {\n return this._parentTree?.checkable ?? false;\n }\n\n private get _hasChildren(): boolean {\n return !!this.querySelector(':scope > ae-tree-item[slot=\"sub\"]');\n }\n\n private _handleExpandClick = (e: Event): void => {\n e.stopPropagation();\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-toggle-expand', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleLabelClick = (): void => {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleCheckChange = (e: Event): void => {\n if (this.disabled) return;\n const input = e.target as HTMLInputElement;\n this.dispatchEvent(\n new CustomEvent('_tree-item-check', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey, checked: input.checked },\n }),\n );\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if ((e.target as HTMLElement).classList.contains('tree-item-label')) {\n this._handleLabelClick();\n }\n }\n if (e.key === 'ArrowRight' && this._hasChildren && !this.expanded) {\n this._handleExpandClick(e);\n }\n if (e.key === 'ArrowLeft' && this.expanded) {\n this._handleExpandClick(e);\n }\n };\n\n protected onUpdated(): void {\n // indeterminate/checked cannot be set correctly via HTML attribute \u2014 must set via JS property\n if (this._checkboxEl) {\n this._checkboxEl.checked = this.checked;\n this._checkboxEl.indeterminate = this.indeterminate;\n }\n }\n\n protected render() {\n const hasChildren = this._hasChildren;\n const isCheckable = this._isCheckable;\n const expandIcon = this.icon ?? this._parentTree?.icon;\n\n return html(({ div, button, span, input, slot, svg, path, aeIcon }) => {\n div(\n {\n className: 'tree-item-content',\n role: 'treeitem',\n 'aria-expanded': hasChildren ? String(this.expanded) : undefined,\n 'aria-selected': String(this.selected),\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n if (hasChildren) {\n button(\n {\n type: 'button',\n className: 'expand-btn',\n tabIndex: -1,\n 'aria-hidden': 'true',\n '@click': this._handleExpandClick,\n },\n () => {\n if (expandIcon) {\n aeIcon({ className: 'expand-icon', name: expandIcon });\n } else {\n svg(\n {\n className: 'expand-icon',\n viewBox: '0 0 10 10',\n 'aria-hidden': 'true',\n xmlns: SVG_NS,\n },\n () => {\n path({ d: 'M2 1l6 4-6 4V1z' });\n },\n );\n }\n },\n );\n } else {\n span({ className: 'expand-placeholder', 'aria-hidden': 'true' });\n }\n\n if (isCheckable) {\n this._checkboxEl = input({\n type: 'checkbox',\n className: 'tree-item-checkbox',\n checked: this.checked,\n disabled: this.disabled,\n tabIndex: -1,\n '@change': this._handleCheckChange,\n });\n }\n\n button(\n {\n type: 'button',\n className: 'tree-item-label',\n disabled: this.disabled,\n '@click': this._handleLabelClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n slot();\n },\n );\n },\n );\n\n div({ className: 'tree-item-children', role: 'group' }, () => {\n slot({ name: 'sub' });\n });\n });\n }\n}\n\nTreeItem.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree-item': TreeItem;\n }\n}\n\nexport default TreeItem;\nexport type TreeItemProps = InferProps<typeof TreeItem>;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,4FAAAA,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;AAA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,oGAAAC,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;AA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",
|
|
3
|
+
"sources": ["css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.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/components/field-label.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/text-input.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/number-input.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/textarea.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/select.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/tag.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/select-option.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/slider.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/checkbox.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/radio-group.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/switch.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/breadcrumb.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/breadcrumb-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/copy-button.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tooltip.css", "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/components/dropdown-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/button-group.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/badge.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/alert.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/dialog.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/drawer.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tabs.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tab.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tab-panel.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/divider.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/card.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/navbar.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/spinner.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/detail.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/detail-group.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/progress-bar.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/menu.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/menu-item.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/pagination.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tree.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/tree-item.css", "../src/index.ts", "../src/aeico-field.ts", "../src/aeico-component.ts", "../src/text-input/text-input.ts", "../src/number-input/number-input.ts", "../src/textarea/textarea.ts", "../src/select/select.ts", "../src/tag/tag.ts", "../src/select/select-option.ts", "../src/slider/slider.ts", "../src/checkbox/checkbox.ts", "../src/radio-group/radio-group.ts", "../src/radio-group/radio.ts", "../src/switch/switch.ts", "../src/utils.ts", "../src/icon/icon.ts", "../src/icon/defines.ts", "../src/icon/registry.ts", "../src/icon/built-in-icons.ts", "../src/breadcrumb/breadcrumb.ts", "../src/breadcrumb/breadcrumb-item.ts", "../src/button/button.ts", "../src/copy-button/copy-button.ts", "../src/tooltip/tooltip.ts", "../src/dropdown/dropdown.ts", "../src/dropdown/dropdown-item.ts", "../src/dropdown/dropdown-button.ts", "../src/button-group/button-group.ts", "../src/badge/badge.ts", "../src/alert/alert.ts", "../src/dialog/dialog.ts", "../src/drawer/drawer.ts", "../src/icon-button/icon-button.ts", "../src/tabs/tabs.ts", "../src/tabs/tab.ts", "../src/tabs/tab-panel.ts", "../src/divider/divider.ts", "../src/card/card.ts", "../src/navbar/navbar.ts", "../src/spinner/spinner.ts", "../src/detail/detail.ts", "../src/detail-group/detail-group.ts", "../src/progress-bar/progress-bar.ts", "../src/menu/menu.ts", "../src/menu/menu-item.ts", "../src/pagination/pagination.ts", "../src/tree/tree.ts", "../src/tree/tree-item.ts"],
|
|
4
|
+
"sourcesContent": ["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([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 --field-label-gap: 4px;\\n --field-label-col-gap: 8px;\\n --field-label-width: 100px;\\n --field-label-font-size: 0.875em;\\n --field-label-color: inherit;\\n --field-required-color: var(--ae-red, #dc3545);\\n --field-helper-color: var(--ae-color-text-muted, #6e6e6e);\\n --field-error-color: var(--ae-red, #dc3545);\\n}\\n\\n:host([label]) {\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n gap: var(--field-label-gap);\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) {\\n display: grid;\\n grid-template-columns: var(--field-label-width) 1fr;\\n column-gap: var(--field-label-col-gap);\\n row-gap: var(--field-label-gap);\\n align-items: center;\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) .field-label {\\n align-self: center;\\n}\\n\\n:host([label][label-placement=\\\"left\\\"]) .field-helper,\\n:host([label][label-placement=\\\"left\\\"]) .field-error {\\n grid-column: 2;\\n}\\n\\n.field-label {\\n font-size: var(--field-label-font-size);\\n color: var(--field-label-color);\\n user-select: none;\\n line-height: 1.4;\\n}\\n\\n.field-required {\\n color: var(--field-required-color);\\n margin-left: 2px;\\n}\\n\\n.field-helper {\\n font-size: 0.8em;\\n color: var(--field-helper-color);\\n line-height: 1.4;\\n}\\n\\n.field-error {\\n font-size: 0.8em;\\n color: var(--field-error-color);\\n line-height: 1.4;\\n}\\n\\n/* Action controls container (integrated style) */\\n.action-controls {\\n display: flex;\\n flex-direction: row;\\n align-items: stretch;\\n margin-left: calc(-1 * var(--field-action-gap, 4px) - 1px);\\n border: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: 0 var(--field-action-border-radius, var(--ae-radius-xs)) var(--field-action-border-radius, var(--ae-radius-xs)) 0;\\n overflow: hidden;\\n flex-shrink: 0;\\n transition: border-color 0.12s;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n position: relative;\\n z-index: 1;\\n align-self: stretch;\\n}\\n\\n.action-controls .action-btn {\\n border: none;\\n background: transparent;\\n color: var(--field-action-color, var(--ae-color-text-muted));\\n font-size: 0.875em;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 0.5em;\\n transition: background 0.12s;\\n}\\n\\n.action-controls .action-btn:hover:not(:disabled) {\\n background: var(--field-action-bg-hover, var(--ae-surface-raised));\\n}\\n\\n.action-controls .action-btn:active:not(:disabled) {\\n background: var(--field-action-bg-focus, var(--ae-surface-raised));\\n}\\n\\n.action-controls .action-btn:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.action-controls .action-btn + .action-btn {\\n border-left: var(--field-action-border-width, 1px) solid var(--field-action-border-color, var(--ae-border-subtle));\\n}\\n\\n.input-container:has(input:focus) ~ .action-controls,\\n.input-container:has(input:focus) .action-controls,\\n.container:has(.trigger.open) ~ .action-controls,\\n.container:has(.trigger.open) .action-controls {\\n border-color: var(--field-action-border-color-focus, var(--ae-border-focus));\\n}\\n\\n.input-container:has(input:hover:not(:focus)) ~ .action-controls,\\n.input-container:has(input:hover:not(:focus)) .action-controls,\\n.container:has(.trigger:hover:not(.disabled)) ~ .action-controls,\\n.container:has(.trigger:hover:not(.disabled)) .action-controls {\\n border-color: var(--field-action-border-color-hover, var(--ae-border-default));\\n}\\n\"", "module.exports = \"/* Action button base styles - shared by clear-btn and reset-btn (standalone mode) */\\n.clear-btn:not(.action-btn),\\n.reset-btn:not(.action-btn) {\\n width: 1.333em;\\n height: 1.333em;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n line-height: 1;\\n}\\n\\n.clear-btn:not(.action-btn) {\\n border-radius: var(--ae-clear-btn-border-radius);\\n background: var(--ae-clear-btn-bg);\\n color: var(--ae-clear-btn-color);\\n transition: var(--ae-clear-btn-transition);\\n}\\n\\n.reset-btn:not(.action-btn) {\\n border-radius: var(--ae-reset-btn-border-radius);\\n background: var(--ae-reset-btn-bg);\\n color: var(--ae-reset-btn-color);\\n transition: var(--ae-reset-btn-transition);\\n}\\n\\n.clear-btn:not(.action-btn):hover {\\n background: var(--ae-clear-btn-bg-hover);\\n color: var(--ae-clear-btn-color-hover);\\n}\\n\\n.reset-btn:not(.action-btn):hover {\\n background: var(--ae-reset-btn-bg-hover);\\n color: var(--ae-reset-btn-color-hover);\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n --input-field-gap: 4px;\\n --input-font-size: 1em;\\n --input-padding: 0.333em 0.583em;\\n --input-border-width: 1px;\\n --input-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.input-container {\\n display: flex;\\n align-items: center;\\n gap: var(--input-field-gap);\\n width: 100%;\\n}\\n\\ninput {\\n flex: 1;\\n min-width: 0;\\n font-size: var(--input-font-size);\\n padding: var(--input-padding);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--input-transition);\\n}\\n\\ninput::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ninput:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([error]) input {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) input:hover:not(:focus),\\n:host([error]) input:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n.input-container:has(.action-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n /* Layout variables */\\n --input-field-gap: 4px;\\n \\n /* Input element variables */\\n --input-font-size: 1em;\\n --input-padding: 0.333em 0.583em;\\n --input-border-width: 1px;\\n --input-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.input-container {\\n display: flex;\\n align-items: center;\\n gap: var(--input-field-gap);\\n width: 100%;\\n}\\n\\ninput {\\n flex: 1;\\n min-width: 0;\\n font-size: var(--input-font-size);\\n padding: var(--input-padding);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--input-transition);\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n\\n/* Hide number spinner arrows in WebKit browsers */\\ninput::-webkit-outer-spin-button,\\ninput::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\ninput::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ninput:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ninput:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n/* Number stepper controls (right side, integrated, horizontal) */\\n.number-controls {\\n display: flex;\\n flex-direction: row;\\n align-items: stretch;\\n margin-left: calc(-1 * var(--input-field-gap) - 1px);\\n border: var(--input-border-width) solid var(--ae-border-subtle);\\n border-radius: 0 var(--ae-border-radius, var(--ae-radius-xs)) var(--ae-border-radius, var(--ae-radius-xs)) 0;\\n overflow: hidden;\\n flex-shrink: 0;\\n transition: var(--input-transition);\\n background: var(--ae-surface-base);\\n position: relative;\\n z-index: 1;\\n align-self: stretch;\\n}\\n\\n.number-btn {\\n border: none;\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 0.875em;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 0.5em;\\n transition: background 0.12s;\\n}\\n\\n.number-btn:hover:not(:disabled) {\\n background: var(--ae-surface-raised);\\n}\\n\\n.number-btn:active:not(:disabled) {\\n background: var(--ae-surface-raised);\\n}\\n\\n.number-btn:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.number-btn-increment {\\n border-right: var(--input-border-width) solid var(--ae-border-subtle);\\n}\\n\\n.input-container:has(input:focus) .number-controls {\\n border-color: var(--ae-border-focus);\\n}\\n\\n.input-container:has(input:hover:not(:focus)) .number-controls {\\n border-color: var(--ae-border-default);\\n}\\n\\n:host(:has(.number-controls)) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n:host(:has(.action-controls)) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.number-controls ~ .action-controls {\\n margin-left: calc(-1 * var(--input-field-gap) - 1px);\\n}\\n\\n.input-container:has(.number-controls):has(.action-controls) .number-controls {\\n border-right: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.number-controls) ~ .action-controls,\\n.input-container:has(.action-controls) .number-controls {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.number-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n.input-container:has(.action-controls) input {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\n\\n:host([error]) input {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) input:hover:not(:focus),\\n:host([error]) input:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n --textarea-font-size: 1em;\\n --textarea-padding: 0.333em 0.583em;\\n --textarea-border-width: 1px;\\n --textarea-transition: border-color 0.12s, background 0.12s;\\n}\\n\\n.textarea-container {\\n display: flex;\\n align-items: flex-start;\\n gap: 4px;\\n width: 100%;\\n}\\n\\ntextarea {\\n flex: 1;\\n min-width: 0;\\n width: 100%;\\n box-sizing: border-box;\\n font-size: var(--textarea-font-size);\\n font-family: inherit;\\n line-height: 1.5;\\n padding: var(--textarea-padding);\\n border: var(--textarea-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n transition: var(--textarea-transition);\\n resize: vertical;\\n}\\n\\ntextarea::placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\ntextarea:focus {\\n outline: none;\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\ntextarea:hover:not(:focus) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\ntextarea:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n resize: none;\\n}\\n\\n/* Error state */\\n:host([error]) textarea {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) textarea:hover:not(:focus),\\n:host([error]) textarea:focus {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n\\n /* Layout variables */\\n --select-field-gap: 2px;\\n\\n /* Trigger variables */\\n --select-font-size: 1em;\\n --select-padding: 0.333em 0.583em;\\n --select-border-width: 1px;\\n --select-transition: border-color 0.12s, background 0.12s;\\n\\n /* Arrow */\\n --select-arrow-size: 0.75em;\\n\\n /* Dropdown */\\n --select-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n --select-dropdown-max-height: 240px;\\n --select-dropdown-z-index: 1000;\\n}\\n\\n.container {\\n display: flex;\\n align-items: center;\\n gap: var(--select-field-gap);\\n width: 100%;\\n position: relative;\\n}\\n\\n.trigger {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 0.333em;\\n font-size: var(--select-font-size);\\n padding: var(--select-padding);\\n border: var(--select-border-width) solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--ae-surface-base);\\n color: var(--ae-color-text-muted);\\n cursor: pointer;\\n transition: var(--select-transition);\\n user-select: none;\\n outline: none;\\n box-sizing: border-box;\\n}\\n\\n.trigger:hover:not(.disabled) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-surface-raised);\\n}\\n\\n.trigger.open {\\n border-color: var(--ae-border-focus);\\n background: var(--ae-surface-raised);\\n}\\n\\n.trigger.disabled {\\n opacity: 0.5;\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n/* Error state */\\n:host([error]) .trigger {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n:host([error]) .trigger:hover:not(.disabled),\\n:host([error]) .trigger.open {\\n border-color: var(--field-error-color, var(--ae-red));\\n}\\n\\n.value {\\n flex: 1;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.placeholder {\\n color: var(--ae-color-text-disabled);\\n}\\n\\n.selected-list {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n flex-wrap: wrap;\\n gap: 4px;\\n align-items: center;\\n padding: 2px 0;\\n}\\n\\n/* Non-expandable (default): single-row, clip overflow */\\n.trigger:has(.selected-list--clipped) {\\n flex-wrap: nowrap;\\n}\\n\\n.selected-list--clipped {\\n flex-wrap: nowrap;\\n overflow: hidden;\\n}\\n\\n.overflow-indicator {\\n flex-shrink: 0;\\n align-self: center;\\n padding: 1px 6px;\\n background: color-mix(in srgb, var(--ae-color-primary) 12%, transparent);\\n color: var(--ae-color-primary);\\n border: 1px solid color-mix(in srgb, var(--ae-color-primary) 30%, transparent);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n font-size: 0.82em;\\n line-height: 1.6;\\n cursor: default;\\n user-select: none;\\n}\\n\\n.arrow {\\n flex-shrink: 0;\\n align-self: center;\\n font-size: var(--select-arrow-size);\\n color: var(--ae-color-text-muted);\\n transition: transform 0.12s;\\n pointer-events: none;\\n line-height: 1;\\n}\\n\\n.trigger.open .arrow {\\n transform: rotate(180deg);\\n}\\n\\n.dropdown {\\n display: none;\\n position: absolute;\\n z-index: var(--select-dropdown-z-index);\\n background: var(--ae-surface-overlay);\\n border: 1px solid var(--ae-border-default);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n box-shadow: var(--select-dropdown-shadow);\\n max-height: var(--select-dropdown-max-height);\\n overflow-y: auto;\\n min-width: 100%;\\n box-sizing: border-box;\\n}\\n\\n.dropdown.open {\\n display: block;\\n}\\n\\n.dropdown.position-bottom {\\n top: 100%;\\n left: 0;\\n margin-top: 2px;\\n}\\n\\n.dropdown.position-top {\\n bottom: 100%;\\n left: 0;\\n margin-bottom: 2px;\\n}\\n\\n.dropdown.position-left {\\n right: 100%;\\n top: 0;\\n margin-right: 2px;\\n}\\n\\n.dropdown.position-right {\\n left: 100%;\\n top: 0;\\n margin-left: 2px;\\n}\\n\\n.container:has(.action-controls) .trigger {\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs)) 0 0 var(--ae-border-radius, var(--ae-radius-xs));\\n}\\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}\\n\\n.tag {\\n display: inline-flex;\\n align-items: center;\\n gap: 4px;\\n font-family: inherit;\\n font-weight: 500;\\n white-space: nowrap;\\n vertical-align: middle;\\n line-height: 1.2;\\n font-size: 1em;\\n padding: 0.15em 0.5em 0.15em 0.6em;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n max-width: 160px;\\n min-width: 0;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .tag {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .tag {\\n background: var(--ae-color-bg-subtle);\\n border-color: var(--ae-color-border-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .tag {\\n background: var(--ae-color-bg-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .tag {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n padding-left: 0;\\n padding-right: 0;\\n}\\n\\n\\n:host([pill]) .tag { border-radius: var(--ae-radius-pill); }\\n\\n.tag-content {\\n flex: 1;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n::slotted(ae-icon) { font-size: 1.1em; }\\n\\n.tag-dismiss {\\n display: none;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n opacity: 0.55;\\n line-height: 1;\\n font-size: 1em;\\n padding: 0 1px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: transparent;\\n border: none;\\n color: inherit;\\n font-family: inherit;\\n transition: opacity 0.1s, background 0.1s;\\n}\\n\\n:host([dismissible]) .tag-dismiss {\\n display: inline-flex;\\n}\\n\\n.tag-dismiss:hover {\\n opacity: 1;\\n background: color-mix(in srgb, currentColor 15%, transparent);\\n}\\n\\n/* disabled: button remains visible but is inert */\\n:host([disabled]) .tag-dismiss {\\n opacity: 0.4;\\n pointer-events: none;\\n cursor: default;\\n}\\n\\n:host([disabled]) .tag {\\n opacity: 0.6;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --option-padding: 0.417em 0.667em;\\n --option-bg: transparent;\\n --option-bg-hover: var(--ae-surface-raised);\\n --option-bg-selected: color-mix(in srgb, var(--ae-color-primary) 12%, transparent);\\n --option-color: var(--ae-color-text-main);\\n --option-color-disabled: var(--ae-color-text-disabled);\\n --option-color-selected: var(--ae-color-primary);\\n --option-font-size: 1em;\\n --option-transition: background 0.1s;\\n}\\n\\n.option-item {\\n padding: var(--option-padding);\\n font-size: var(--option-font-size);\\n color: var(--option-color);\\n background: var(--option-bg);\\n cursor: pointer;\\n transition: var(--option-transition);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n user-select: none;\\n}\\n\\n:host(:hover:not([disabled])) .option-item {\\n background: var(--option-bg-hover);\\n}\\n\\n:host([selected]) .option-item {\\n background: var(--option-bg-selected);\\n color: var(--option-color-selected);\\n}\\n\\n:host([disabled]) .option-item {\\n color: var(--option-color-disabled);\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n}\\n\\n.range-container {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n width: 100%;\\n height: 26px;\\n}\\n\\ninput[type=\\\"range\\\"] {\\n flex: 1;\\n margin: 0;\\n}\\n\\n.input-range,\\n.slider-input,\\ninput[type=\\\"range\\\"] {\\n -webkit-appearance: none;\\n appearance: none;\\n width: 100%;\\n height: 0.333em;\\n border-radius: var(--ae-radius-xs);\\n background: var(--ae-border-subtle);\\n outline: none;\\n cursor: pointer;\\n margin: 0;\\n}\\n\\n.input-range {\\n margin: 10px 0;\\n}\\n\\n.input-range::-webkit-slider-thumb,\\n.slider-input::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n appearance: none;\\n width: 1.167em;\\n height: 1.167em;\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n cursor: pointer;\\n transition: background 0.12s, transform 0.12s;\\n}\\n\\n.input-range::-webkit-slider-thumb:hover,\\n.slider-input::-webkit-slider-thumb:hover,\\ninput[type=\\\"range\\\"]:hover::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.1);\\n}\\n\\n.input-range::-webkit-slider-thumb:active,\\n.slider-input::-webkit-slider-thumb:active,\\ninput[type=\\\"range\\\"]:active::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.2);\\n}\\n\\n.input-range:focus::-webkit-slider-thumb,\\n.slider-input:focus::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus::-webkit-slider-thumb {\\n background: var(--ae-color-solid);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:hover::-webkit-slider-thumb,\\n.slider-input:focus:hover::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus:hover::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:active::-webkit-slider-thumb,\\n.slider-input:focus:active::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:focus:active::-webkit-slider-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range::-moz-range-thumb,\\n.slider-input::-moz-range-thumb,\\ninput[type=\\\"range\\\"]::-moz-range-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n border: none;\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n cursor: pointer;\\n transition: background 0.12s, transform 0.12s;\\n}\\n\\n.input-range::-moz-range-thumb:hover,\\n.slider-input::-moz-range-thumb:hover,\\ninput[type=\\\"range\\\"]:hover::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.1);\\n}\\n\\n.input-range::-moz-range-thumb:active,\\n.slider-input::-moz-range-thumb:active,\\ninput[type=\\\"range\\\"]:active::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n transform: scale(1.2);\\n}\\n\\n.input-range:focus::-moz-range-thumb,\\n.slider-input:focus::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus::-moz-range-thumb {\\n background: var(--ae-color-solid);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:hover::-moz-range-thumb,\\n.slider-input:focus:hover::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus:hover::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:focus:active::-moz-range-thumb,\\n.slider-input:focus:active::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:focus:active::-moz-range-thumb {\\n background: var(--ae-color-solid-hover);\\n outline: none;\\n box-shadow: none;\\n}\\n\\n.input-range:disabled,\\n.slider-input:disabled,\\ninput[type=\\\"range\\\"]:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.input-range:disabled::-webkit-slider-thumb,\\n.slider-input:disabled::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]:disabled::-webkit-slider-thumb {\\n cursor: not-allowed;\\n}\\n\\n.input-range:disabled::-moz-range-thumb,\\n.slider-input:disabled::-moz-range-thumb,\\ninput[type=\\\"range\\\"]:disabled::-moz-range-thumb {\\n cursor: not-allowed;\\n}\\n\\n.value-label {\\n min-width: 14px;\\n text-align: center;\\n font-size: 12px;\\n color: var(--ae-color-text-muted);\\n font-weight: 500;\\n font-variant-numeric: tabular-nums;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.input-range,\\n.slider-input,\\ninput[type=\\\"range\\\"] {\\n height: 0.333em;\\n}\\n\\n.input-range::-webkit-slider-thumb,\\n.slider-input::-webkit-slider-thumb,\\ninput[type=\\\"range\\\"]::-webkit-slider-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n}\\n\\n.input-range::-moz-range-thumb,\\n.slider-input::-moz-range-thumb,\\ninput[type=\\\"range\\\"]::-moz-range-thumb {\\n width: 1.167em;\\n height: 1.167em;\\n}\\n\\n.value-label {\\n font-size: 1em;\\n}\\n\\n.value-input {\\n width: 56px;\\n padding: 0 4px;\\n height: 22px;\\n line-height: 20px;\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: var(--ae-radius-sm);\\n background: transparent;\\n color: var(--ae-color-text);\\n font-size: 12px;\\n text-align: center;\\n outline: none;\\n flex-shrink: 0;\\n box-sizing: border-box;\\n}\\n\\n.value-input:focus {\\n border-color: var(--ae-color-solid);\\n}\\n\\n.value-input:disabled {\\n opacity: 0.4;\\n cursor: not-allowed;\\n}\\n\\n.range-container .action-controls {\\n display: flex;\\n align-self: center;\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--ae-radius-sm);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 22px;\\n box-sizing: border-box;\\n}\\n\\n.range-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 12px;\\n}\\n\\n.range-container:has(.value-input) .action-controls {\\n border-radius: var(--ae-radius-sm) 0 0 var(--ae-radius-sm);\\n}\\n\\n.range-container:has(.action-controls) .value-input {\\n margin-left: -7px;\\n border-radius: 0 var(--ae-radius-sm) var(--ae-radius-sm) 0;\\n}\\n\\n:host([tracked]) .input-range,\\n:host([tracked]) .slider-input,\\n:host([tracked]) input[type=\\\"range\\\"] {\\n background: linear-gradient(\\n to right,\\n var(--ae-color-solid) var(--fill-pct, 0%),\\n var(--ae-border-subtle) var(--fill-pct, 0%)\\n );\\n}\\n\\n.range-wrapper {\\n flex: 1;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n}\\n\\n.range-wrapper input[type=\\\"range\\\"] {\\n width: 100%;\\n flex: none;\\n}\\n\\n.marks-container {\\n position: absolute;\\n top: 100%;\\n left: 7px;\\n right: 7px;\\n height: 18px;\\n margin-top: 2px;\\n overflow: visible;\\n}\\n\\n.mark {\\n position: absolute;\\n transform: translateX(-50%);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n gap: 2px;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.mark::before {\\n content: '';\\n display: block;\\n width: 1px;\\n height: 4px;\\n background: var(--ae-border-default, var(--ae-border-subtle));\\n border-radius: 1px;\\n}\\n\\n.mark-label {\\n font-size: 10px;\\n color: var(--ae-color-text-muted);\\n white-space: nowrap;\\n}\\n\\n:host([marks]) .range-container {\\n padding-bottom: 24px;\\n height: auto;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n flex: 1;\\n min-width: 0;\\n font-size: var(--ae-size-base);\\n --checkbox-field-gap: 4px;\\n --checkbox-size: 1.167em;\\n --checkbox-border-width: 1px;\\n --checkbox-border-color: var(--ae-border-subtle);\\n --checkbox-bg: var(--ae-surface-base);\\n}\\n\\n.checkbox-container {\\n display: flex;\\n align-items: center;\\n gap: var(--checkbox-field-gap);\\n width: 100%;\\n}\\n\\n.checkbox-wrapper {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.field-input {\\n width: var(--checkbox-size);\\n height: var(--checkbox-size);\\n cursor: pointer;\\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\\n border-radius: var(--ae-border-radius, var(--ae-radius-xs));\\n background: var(--checkbox-bg);\\n accent-color: var(--ae-color-solid);\\n margin: 0;\\n flex-shrink: 0;\\n}\\n\\n.field-input:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n:host([error]) .field-input {\\n outline: 2px solid var(--field-error-color, var(--ae-red));\\n outline-offset: 1px;\\n}\\n\\n.checkbox-container .action-controls {\\n display: flex;\\n margin-left: 2px;\\n border: var(--checkbox-border-width) solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--ae-radius-sm);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 1.333em;\\n box-sizing: border-box;\\n}\\n\\n.checkbox-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 0.7em;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--rg-gap, 0.286em);\\n font-size: var(--ae-size-m);\\n\\n --rg-font-size: 1em;\\n --rg-height: 2.286em;\\n --rg-padding: 0.429em 1.071em;\\n --rg-min-width: 4.571em;\\n --rg-radius: 4px;\\n --rg-font-weight: 400;\\n}\\n\\n:host([size=\\\"xs\\\"]) { --rg-radius: 3px; }\\n:host([size=\\\"sm\\\"]) { --rg-radius: 3px; }\\n\\n.rg-container {\\n display: inline-flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 6px;\\n}\\n\\n:host(:not([mode])) .rg-container .action-controls,\\n:host([mode=\\\"default\\\"]) .rg-container .action-controls {\\n display: flex;\\n align-self: center;\\n margin-left: 2px;\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-radius: var(--rg-radius);\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n height: 1.333em;\\n box-sizing: border-box;\\n}\\n\\n:host(:not([mode])) .rg-container .action-controls .action-btn,\\n:host([mode=\\\"default\\\"]) .rg-container .action-controls .action-btn {\\n padding: 0 0.35em;\\n font-size: 0.7em;\\n}\\n\\nslot {\\n display: none;\\n}\\n\\n.rg-radio-option {\\n display: inline-flex;\\n align-items: center;\\n gap: 6px;\\n cursor: pointer;\\n font-size: var(--rg-font-size);\\n color: var(--ae-color-text-main);\\n user-select: none;\\n}\\n\\n.rg-radio-input {\\n width: 14px;\\n height: 14px;\\n accent-color: var(--ae-color-solid, var(--ae-color-primary));\\n cursor: pointer;\\n margin: 0;\\n flex-shrink: 0;\\n}\\n\\n.rg-radio-label {\\n line-height: 1.5;\\n}\\n\\n.rg-btn {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: inherit;\\n font-size: var(--rg-font-size);\\n font-weight: 400;\\n height: var(--rg-height);\\n padding: var(--rg-padding);\\n min-width: var(--rg-min-width);\\n white-space: nowrap;\\n cursor: pointer;\\n user-select: none;\\n transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\\n outline: none;\\n border-radius: var(--rg-radius);\\n\\n background: var(--ae-surface-base);\\n border: 1px solid var(--ae-color-gray-light);\\n color: var(--ae-color-text-muted);\\n}\\n\\n.rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-surface-base-hover);\\n border-color: var(--ae-color-gray-light);\\n color: var(--ae-color-text-main);\\n}\\n\\n.rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n font-weight: 500;\\n box-shadow: 0 1px 4px rgb(from black r g b / 0.22);\\n}\\n\\n.rg-btn.selected:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n border-color: var(--ae-color-solid-hover);\\n}\\n\\n.rg-btn:active:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle-hover);\\n transform: translateY(1px);\\n}\\n\\n.rg-btn:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .rg-btn {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"outlined\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: var(--ae-color-accent);\\n color: var(--ae-color-accent-hover);\\n}\\n:host([variant=\\\"outlined\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .rg-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"subtle\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n}\\n:host([variant=\\\"subtle\\\"]) .rg-btn.selected {\\n background: var(--ae-color-subtle-hover);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n font-weight: 600;\\n box-shadow: none;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .rg-btn:not(.selected) {\\n background: var(--ae-surface-base);\\n border-color: var(--ae-border-default);\\n color: var(--ae-color-text-muted);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-surface-raised);\\n border-color: var(--ae-border-hover);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"button\\\"]) .rg-container {\\n gap: 6px;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-container {\\n gap: 0;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn:not(.first):not(.only) {\\n margin-left: -1px;\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn.first {\\n border-radius: var(--rg-radius) 0 0 var(--rg-radius);\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.inner {\\n border-radius: var(--ae-radius-square);\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.last {\\n border-radius: 0 var(--rg-radius) var(--rg-radius) 0;\\n}\\n:host([mode=\\\"button-group\\\"]) .rg-btn.only {\\n border-radius: var(--rg-radius);\\n}\\n\\n:host([mode=\\\"button-group\\\"]) .rg-btn:hover:not(:disabled),\\n:host([mode=\\\"button-group\\\"]) .rg-btn.selected {\\n position: relative;\\n z-index: 1;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-container {\\n gap: 2px;\\n background: var(--ae-surface-raised);\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: calc(var(--rg-radius) + 2px);\\n padding: 2px;\\n flex-wrap: nowrap;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-text-muted);\\n border-radius: var(--rg-radius);\\n min-width: var(--rg-min-width);\\n box-shadow: none;\\n font-weight: 400;\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn:hover:not(:disabled):not(.selected) {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-secondary, var(--ae-color-text-main));\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: transparent;\\n color: var(--ae-color-on-solid);\\n font-weight: 500;\\n box-shadow: 0 1px 4px rgb(from black r g b / 0.35);\\n}\\n\\n:host([mode=\\\"segmented\\\"]) .rg-btn.selected:hover:not(:disabled) {\\n background: var(--ae-color-solid-hover);\\n}\\n\\n:host([mode=\\\"segmented\\\"]:not([color])) .rg-btn.selected {\\n background: var(--ae-color-gray-lighter);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"segmented\\\"][variant=\\\"outlined\\\"]) .rg-container {\\n border-color: var(--ae-color-border);\\n}\\n:host([mode=\\\"segmented\\\"][variant=\\\"outlined\\\"]) .rg-btn.selected {\\n background: var(--ae-color-solid);\\n border-color: transparent;\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn,\\n:host([mode=\\\"button\\\"]) .clear-btn,\\n:host([mode=\\\"button-group\\\"]) .reset-btn,\\n:host([mode=\\\"button-group\\\"]) .clear-btn,\\n:host([mode=\\\"segmented\\\"]) .reset-btn,\\n:host([mode=\\\"segmented\\\"]) .clear-btn {\\n height: var(--rg-height);\\n width: var(--rg-height);\\n border-radius: var(--rg-radius);\\n font-size: var(--rg-font-size);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn,\\n:host([mode=\\\"button\\\"]) .clear-btn,\\n:host([mode=\\\"button-group\\\"]) .reset-btn,\\n:host([mode=\\\"button-group\\\"]) .clear-btn,\\n:host([mode=\\\"segmented\\\"]) .reset-btn,\\n:host([mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border: 1px solid var(--ae-color-gray-light);\\n color: var(--ae-color-text-muted);\\n}\\n\\n:host([mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: var(--ae-color-gray-lighter);\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: var(--ae-color-gray-lighter);\\n color: var(--ae-color-danger);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .clear-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .clear-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .reset-btn,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"outlined\\\"][mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([variant=\\\"outlined\\\"][mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: var(--ae-color-border-hover);\\n color: var(--ae-color-danger);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .clear-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .clear-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .reset-btn,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .clear-btn {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .reset-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .reset-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .reset-btn:hover {\\n background: var(--ae-border-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"subtle\\\"][mode=\\\"button\\\"]) .clear-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"button-group\\\"]) .clear-btn:hover,\\n:host([variant=\\\"subtle\\\"][mode=\\\"segmented\\\"]) .clear-btn:hover {\\n background: rgb(from var(--ae-red) r g b / 0.10);\\n border-color: transparent;\\n color: var(--ae-color-danger);\\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: block;\\n font-size: var(--ae-size-base);\\n --switch-field-gap: 4px;\\n --toggle-width: 2.667em;\\n --toggle-height: 1.333em;\\n --toggle-slider-size: 1em;\\n --toggle-gap: calc((var(--toggle-height) - var(--toggle-slider-size)) / 2);\\n --toggle-border-radius: calc(var(--toggle-height) / 2);\\n --toggle-bg: var(--ae-color-gray);\\n --toggle-bg-checked: var(--ae-color-solid);\\n --toggle-slider-bg: white;\\n --toggle-transition: 0.2s;\\n}\\n\\n.switch-container {\\n display: flex;\\n align-items: center;\\n gap: var(--switch-field-gap);\\n}\\n\\n.switch-wrapper {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: var(--toggle-width);\\n height: var(--toggle-height);\\n flex-shrink: 0;\\n}\\n\\n.field-input {\\n position: absolute;\\n opacity: 0;\\n width: 100%;\\n height: 100%;\\n cursor: pointer;\\n margin: 0;\\n z-index: 1;\\n border: none;\\n border-radius: var(--ae-radius-square);\\n background: none;\\n accent-color: unset;\\n}\\n\\n.field-input:disabled {\\n cursor: not-allowed;\\n}\\n\\n.toggle-slider {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: var(--toggle-bg);\\n border-radius: var(--toggle-border-radius);\\n transition: var(--toggle-transition);\\n pointer-events: none;\\n}\\n\\n.toggle-slider::before {\\n content: '';\\n position: absolute;\\n height: var(--toggle-slider-size);\\n width: var(--toggle-slider-size);\\n left: var(--toggle-gap);\\n top: var(--toggle-gap);\\n background: var(--toggle-slider-bg);\\n border-radius: var(--ae-radius-circle);\\n transition: var(--toggle-transition);\\n}\\n\\n.field-input:checked + .toggle-slider {\\n background: var(--toggle-bg-checked);\\n}\\n\\n.field-input:checked + .toggle-slider::before {\\n transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));\\n}\\n\\n.field-input:disabled + .toggle-slider {\\n opacity: 0.5;\\n pointer-events: auto;\\n}\\n\\n.toggle-knob-icon ae-icon,\\n.track-icon ae-icon {\\n font-size: var(--toggle-icon-size, calc(var(--toggle-slider-size) * 0.72));\\n width: 1em;\\n height: 1em;\\n}\\n\\n.toggle-knob-icon {\\n position: absolute;\\n height: var(--toggle-slider-size);\\n width: var(--toggle-slider-size);\\n left: var(--toggle-gap);\\n top: var(--toggle-gap);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n color: var(--toggle-knob-icon-color, rgba(0, 0, 0, 0.6));\\n transition: var(--toggle-transition);\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon {\\n transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));\\n}\\n\\n.toggle-knob-icon.icon-checked {\\n opacity: 0;\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon.icon-checked {\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .toggle-knob-icon.icon-unchecked {\\n opacity: 0;\\n}\\n\\n.track-icon {\\n position: absolute;\\n top: var(--toggle-gap);\\n width: var(--toggle-slider-size);\\n height: var(--toggle-slider-size);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n color: var(--toggle-track-icon-color, white);\\n transition: opacity var(--toggle-transition);\\n}\\n\\n.track-icon-left {\\n left: var(--toggle-gap);\\n opacity: 0;\\n}\\n\\n.track-icon-right {\\n right: var(--toggle-gap);\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .track-icon-left {\\n opacity: 1;\\n}\\n\\n.field-input:checked + .toggle-slider .track-icon-right {\\n opacity: 0;\\n}\\n\\n.switch-container:has(.action-controls) .switch-wrapper .toggle-slider {\\n border-radius: var(--toggle-border-radius) 0 0 var(--toggle-border-radius);\\n}\\n\\n.switch-container .action-controls {\\n margin-left: calc(-1 * var(--switch-field-gap) - 1px);\\n border: 1px solid var(--field-action-border-color, var(--ae-border-subtle));\\n border-left: none;\\n border-radius: 0 var(--toggle-border-radius) var(--toggle-border-radius) 0;\\n overflow: hidden;\\n background: var(--field-action-bg, var(--ae-surface-base));\\n transition: border-color 0.12s;\\n height: var(--toggle-height);\\n box-sizing: border-box;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n/* Hide the separator template slot visually */\\n.sep-template {\\n display: none !important;\\n}\\n\\n.list {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n font-size: inherit;\\n line-height: 1.5;\\n}\\n\"", "module.exports = \":host {\\n display: contents;\\n}\\n\\n.item {\\n display: inline-flex;\\n align-items: center;\\n list-style: none;\\n white-space: nowrap;\\n}\\n\\n/* Separator - uses a fixed muted color that does NOT follow the breadcrumb's color prop */\\n.sep {\\n display: inline-flex;\\n align-items: center;\\n color: var(--ae-color-text-muted);\\n padding: 0 0.35em;\\n user-select: none;\\n pointer-events: none;\\n flex-shrink: 0;\\n font-size: 0.85em;\\n}\\n\\n/* Hide separator on the first item */\\n:host(:first-child) .sep,\\n:host(:first-of-type) .sep {\\n display: none;\\n}\\n\\n.label {\\n display: inline-flex;\\n align-items: center;\\n color: var(--ae-color-text-muted);\\n}\\n\\n/* Current page - last item */\\n:host([aria-current=\\\"page\\\"]) .label {\\n color: var(--ae-color-text-main);\\n font-weight: 500;\\n cursor: default;\\n}\\n\\n/* Link items */\\n.label a {\\n color: var(--ae-color-accent, var(--ae-color-text-link));\\n text-decoration: none;\\n outline: none;\\n}\\n\\n.label a:hover {\\n color: var(--ae-color-accent-hover, var(--ae-color-text-link-hover));\\n text-decoration: underline;\\n}\\n\\n.label a:focus-visible {\\n outline: 2px solid var(--ae-color-accent, var(--ae-focus-ring-color));\\n outline-offset: 2px;\\n border-radius: var(--ae-radius-xs);\\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\"", "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 0.571em;\\n font-size: 1em;\\n line-height: 1.5;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n height: 2.286em;\\n width: 2.286em;\\n min-width: unset;\\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/* Hide the fallback-text slot */\\nslot { display: none; }\\n\\n/* Icon visibility */\\n.icon-copy,\\n.icon-check {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n}\\n\\n.icon-copy { opacity: 1; transform: scale(1); }\\n.icon-check { opacity: 0; transform: scale(0.6); }\\n\\n:host([copied]) .icon-copy { opacity: 0; transform: scale(0.6); }\\n:host([copied]) .icon-check { opacity: 1; transform: scale(1); }\\n\\n/* Variants */\\n:host([variant=\\\"outlined\\\"]) button {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\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=\\\"faint\\\"]) button {\\n background: var(--ae-color-subtle);\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"faint\\\"]) 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 {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"subtle\\\"]) button:hover:not(:disabled) {\\n background: var(--ae-color-subtle);\\n color: var(--ae-color-accent-hover);\\n}\\n\\n:host([variant=\\\"text\\\"]) button {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n:host([variant=\\\"text\\\"]) button:hover:not(:disabled) {\\n color: var(--ae-color-accent-hover);\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n position: relative;\\n vertical-align: middle;\\n\\n --ae-tooltip-z-index: 1000;\\n --ae-tooltip-bg: var(--ae-dark, #343a40);\\n --ae-tooltip-color: #fff;\\n --ae-tooltip-padding: 0.3125rem 0.625rem;\\n --ae-tooltip-font-size: 0.8125rem;\\n --ae-tooltip-arrow-size: 5px;\\n --ae-tooltip-gap: 6px;\\n --ae-tooltip-max-width: 20rem;\\n}\\n\\n:host-context([theme=\\\"dark\\\"]) {\\n --ae-tooltip-bg: var(--ae-light, #f8f9fa);\\n --ae-tooltip-color: var(--ae-dark, #343a40);\\n}\\n\\n.tooltip-panel {\\n display: none;\\n position: fixed;\\n z-index: var(--ae-tooltip-z-index);\\n background: var(--ae-tooltip-bg);\\n color: var(--ae-tooltip-color);\\n padding: var(--ae-tooltip-padding);\\n font-size: var(--ae-tooltip-font-size);\\n font-family: inherit;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n line-height: 1.4;\\n white-space: nowrap;\\n max-width: var(--ae-tooltip-max-width);\\n pointer-events: none;\\n box-sizing: border-box;\\n}\\n\\n:host([open]) .tooltip-panel {\\n display: block;\\n}\\n\\n/* Arrow */\\n.tooltip-panel::after {\\n content: '';\\n position: absolute;\\n border: var(--ae-tooltip-arrow-size) solid transparent;\\n pointer-events: none;\\n}\\n\\n.placement-top::after,\\n.placement-top-start::after,\\n.placement-top-end::after {\\n top: 100%;\\n border-top-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-top::after {\\n left: 50%;\\n transform: translateX(-50%);\\n}\\n\\n.placement-top-start::after {\\n left: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-top-end::after {\\n right: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-bottom::after,\\n.placement-bottom-start::after,\\n.placement-bottom-end::after {\\n bottom: 100%;\\n border-bottom-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-bottom::after {\\n left: 50%;\\n transform: translateX(-50%);\\n}\\n\\n.placement-bottom-start::after {\\n left: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-bottom-end::after {\\n right: calc(var(--ae-tooltip-arrow-size) * 2);\\n}\\n\\n.placement-left::after {\\n left: 100%;\\n top: 50%;\\n transform: translateY(-50%);\\n border-left-color: var(--ae-tooltip-bg);\\n}\\n\\n.placement-right::after {\\n right: 100%;\\n top: 50%;\\n transform: translateY(-50%);\\n border-right-color: var(--ae-tooltip-bg);\\n}\\n\"", "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 = \":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 {\\n display: inline-flex;\\n align-items: stretch;\\n gap: 8px;\\n}\\n\\n:host([block]) {\\n display: flex;\\n width: 100%;\\n}\\n\\n:host([block]) ::slotted(ae-button) {\\n flex: 1;\\n}\\n\\n:host([compact]) {\\n gap: 0;\\n /* Reset --ae-border-radius so individual --_btn-r-* corners take effect */\\n --ae-border-radius: initial;\\n}\\n\\n/* Raise hovered/focused button so its border shows above neighbours */\\n:host([compact]) ::slotted(ae-button:hover),\\n:host([compact]) ::slotted(ae-button:focus-within) {\\n position: relative;\\n z-index: 1;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.badge {\\n display: inline-flex;\\n align-items: center;\\n gap: 4px;\\n font-family: inherit;\\n font-weight: 500;\\n white-space: nowrap;\\n vertical-align: middle;\\n line-height: 1.2;\\n font-size: 1em;\\n padding: 0.15em 0.6em;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n/* Default (no [variant]) = filled */\\n\\n/* --- Variants --- */\\n\\n:host([variant=\\\"outlined\\\"]) .badge {\\n background: transparent;\\n border-color: var(--ae-color-border);\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .badge {\\n background: var(--ae-color-bg-subtle);\\n border-color: var(--ae-color-border-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .badge {\\n background: var(--ae-color-bg-subtle);\\n border-color: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .badge {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-accent);\\n padding-left: 0;\\n padding-right: 0;\\n}\\n\\n:host([pill]) .badge {\\n border-radius: var(--ae-radius-pill);\\n}\\n\\n/* Icon slots */\\n::slotted(ae-icon) {\\n font-size: 1.1em;\\n}\\n\"", "module.exports = \".alert {\\n position: relative;\\n padding: 12px 16px;\\n margin-bottom: 12px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n font-size: 12px;\\n line-height: 1.6;\\n background-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n border: 1px solid var(--ae-color-solid);\\n}\\n\\n.alert:last-child {\\n margin-bottom: 0;\\n}\\n\\n/* default color (no [color] attribute) - primary */\\n:host(:not([color])) {\\n --ae-color-solid: var(--ae-color-primary);\\n --ae-color-on-solid: var(--ae-color-text-main);\\n --ae-color-border: var(--ae-color-primary);\\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\\n:host([variant=\\\"faint\\\"]) .alert {\\n background-color: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n border-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .alert {\\n background-color: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n border-color: transparent;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .alert {\\n background-color: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n border-color: var(--ae-color-solid);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .alert {\\n background-color: transparent;\\n color: var(--ae-color-text-subtle);\\n border-color: var(--ae-color-border);\\n}\\n\\n:host([dismissible]) .alert {\\n padding-right: 40px;\\n}\\n\\n:host([icon]) .alert {\\n display: flex;\\n align-items: flex-start;\\n gap: 10px;\\n}\\n\\n:host([icon]) .alert::before {\\n content: '';\\n flex-shrink: 0;\\n width: 16px;\\n height: 16px;\\n margin-top: 2px;\\n}\\n\\n.alert-close {\\n position: absolute;\\n top: 50%;\\n right: 12px;\\n transform: translateY(-50%);\\n background: transparent;\\n border: none;\\n color: inherit;\\n opacity: 0.6;\\n cursor: pointer;\\n padding: 4px;\\n font-size: 18px;\\n line-height: 1;\\n transition: opacity 0.15s;\\n}\\n\\n.alert-close:hover {\\n opacity: 1;\\n}\\n\\n:host([size=\\\"sm\\\"]) .alert {\\n padding: 8px 12px;\\n font-size: 11px;\\n}\\n\\n:host([size=\\\"lg\\\"]) .alert {\\n padding: 16px 20px;\\n font-size: 13px;\\n}\\n\"", "module.exports = \":host {\\n display: contents;\\n}\\n\\ndialog {\\n display: none;\\n flex-direction: column;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n padding: 0;\\n max-width: min(90vw, 600px);\\n max-height: 90vh;\\n background: var(--ae-surface-overlay);\\n color: var(--ae-color-text-main);\\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n}\\n\\ndialog[open] {\\n display: flex;\\n animation: dialog-slide-in 0.2s ease;\\n}\\n\\ndialog::backdrop {\\n background: var(--color-overlay);\\n animation: dialog-backdrop-in 0.2s ease;\\n}\\n\\n@keyframes dialog-backdrop-in {\\n from { opacity: 0; }\\n to { opacity: 1; }\\n}\\n\\n@keyframes dialog-slide-in {\\n from {\\n opacity: 0;\\n transform: scale(0.96) translateY(-8px);\\n }\\n to {\\n opacity: 1;\\n transform: scale(1) translateY(0);\\n }\\n}\\n\\nheader {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 16px 20px;\\n border-bottom: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n.label {\\n flex: 1;\\n font-size: var(--ae-size-m, 1rem);\\n font-weight: 500;\\n margin: 0;\\n color: var(--ae-color-text-main);\\n}\\n\\n.close-btn {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: 28px;\\n height: 28px;\\n padding: 0;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 18px;\\n line-height: 1;\\n cursor: pointer;\\n transition: background 0.15s, color 0.15s;\\n}\\n\\n.close-btn:hover {\\n background: var(--ae-border-subtle);\\n color: var(--ae-color-text-main);\\n}\\n\\n.body {\\n flex: 1;\\n overflow-y: auto;\\n padding: 20px;\\n}\\n\\nfooter {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 8px;\\n padding: 12px 20px;\\n border-top: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n::slotted([data-align-left]) {\\n margin-right: auto;\\n}\\n\"", "module.exports = \":host {\\n display: none;\\n}\\n\\n:host([data-open]) {\\n display: block;\\n position: fixed;\\n inset: 0;\\n z-index: var(--ae-drawer-z-index, 1000);\\n pointer-events: none;\\n}\\n\\n.backdrop {\\n position: absolute;\\n inset: 0;\\n background: var(--color-overlay);\\n animation: drawer-backdrop-in 0.2s ease;\\n pointer-events: auto;\\n}\\n\\n:host([data-closing]) .backdrop {\\n animation: drawer-backdrop-out 0.2s ease forwards;\\n}\\n\\n.panel {\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n background: var(--ae-surface-overlay);\\n color: var(--ae-color-text-main);\\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n outline: none;\\n}\\n\\n.panel.placement-right {\\n inset: 0 0 0 auto;\\n width: var(--ae-drawer-size, 320px);\\n max-width: 100%;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg)) 0 0 var(--ae-border-radius, var(--ae-radius-lg));\\n animation: drawer-slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-right {\\n animation: drawer-slide-out-right 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-left {\\n inset: 0 auto 0 0;\\n width: var(--ae-drawer-size, 320px);\\n max-width: 100%;\\n border-radius: 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0;\\n animation: drawer-slide-in-left 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-left {\\n animation: drawer-slide-out-left 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-top {\\n inset: 0 0 auto 0;\\n height: var(--ae-drawer-size, 320px);\\n max-height: 100%;\\n border-radius: 0 0 var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg));\\n animation: drawer-slide-in-top 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-top {\\n animation: drawer-slide-out-top 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n.panel.placement-bottom {\\n inset: auto 0 0 0;\\n height: var(--ae-drawer-size, 320px);\\n max-height: 100%;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg)) var(--ae-border-radius, var(--ae-radius-lg)) 0 0;\\n animation: drawer-slide-in-bottom 0.25s cubic-bezier(0.16, 1, 0.3, 1);\\n}\\n\\n:host([data-closing]) .panel.placement-bottom {\\n animation: drawer-slide-out-bottom 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;\\n}\\n\\n@keyframes drawer-backdrop-in {\\n from { opacity: 0; }\\n to { opacity: 1; }\\n}\\n\\n@keyframes drawer-backdrop-out {\\n from { opacity: 1; }\\n to { opacity: 0; }\\n}\\n\\n@keyframes drawer-slide-in-right {\\n from { transform: translateX(100%); }\\n to { transform: translateX(0); }\\n}\\n\\n@keyframes drawer-slide-out-right {\\n from { transform: translateX(0); }\\n to { transform: translateX(100%); }\\n}\\n\\n@keyframes drawer-slide-in-left {\\n from { transform: translateX(-100%); }\\n to { transform: translateX(0); }\\n}\\n\\n@keyframes drawer-slide-out-left {\\n from { transform: translateX(0); }\\n to { transform: translateX(-100%); }\\n}\\n\\n@keyframes drawer-slide-in-top {\\n from { transform: translateY(-100%); }\\n to { transform: translateY(0); }\\n}\\n\\n@keyframes drawer-slide-out-top {\\n from { transform: translateY(0); }\\n to { transform: translateY(-100%); }\\n}\\n\\n@keyframes drawer-slide-in-bottom {\\n from { transform: translateY(100%); }\\n to { transform: translateY(0); }\\n}\\n\\n@keyframes drawer-slide-out-bottom {\\n from { transform: translateY(0); }\\n to { transform: translateY(100%); }\\n}\\n\\nheader {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 16px 20px;\\n border-bottom: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n.label {\\n flex: 1;\\n font-size: var(--ae-size-m, 1rem);\\n font-weight: 500;\\n margin: 0;\\n color: var(--ae-color-text-main);\\n}\\n\\n.close-btn {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: 28px;\\n height: 28px;\\n padding: 0;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n background: transparent;\\n color: var(--ae-color-text-muted);\\n font-size: 18px;\\n line-height: 1;\\n cursor: pointer;\\n transition: background 0.15s, color 0.15s;\\n}\\n\\n.close-btn:hover {\\n background: var(--ae-border-subtle);\\n color: var(--ae-color-text-main);\\n}\\n\\n.body {\\n flex: 1;\\n overflow-y: auto;\\n padding: 20px;\\n}\\n\\nfooter {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 8px;\\n padding: 12px 20px;\\n border-top: 1px solid var(--ae-border-subtle);\\n flex-shrink: 0;\\n}\\n\\n::slotted([data-align-left]) {\\n margin-right: auto;\\n}\\n\"", "module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n gap: var(--ae-tabs-gap, 0);\\n overflow: hidden;\\n border: 1px solid transparent;\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n background: transparent;\\n}\\n\\n[part=\\\"tab-nav\\\"] {\\n display: flex;\\n flex-shrink: 0;\\n}\\n\\n[part=\\\"panels\\\"] {\\n flex: 1;\\n overflow: auto;\\n}\\n\\n:host([variant=\\\"filled\\\"]) {\\n border-color: var(--ae-color-gray);\\n background: var(--ae-color-gray);\\n}\\n\\n:host([variant=\\\"filled\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid color-mix(in srgb, var(--ae-color-gray), black 15%);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) {\\n border-color: var(--ae-border-hover);\\n background: transparent;\\n}\\n\\n:host([variant=\\\"outlined\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid var(--ae-border-hover);\\n}\\n\\n:host([variant=\\\"faint\\\"]) {\\n border-color: var(--ae-border-default);\\n background: var(--ae-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid var(--ae-border-default);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) {\\n border-color: transparent;\\n background: var(--ae-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) {\\n border-color: transparent;\\n background: transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) [part=\\\"tab-nav\\\"] {\\n border-bottom: 1px solid transparent;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n cursor: pointer;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n gap: 6px;\\n padding: 8px 16px;\\n background: none;\\n border: none;\\n border-bottom: 2px solid transparent;\\n cursor: pointer;\\n font-size: inherit;\\n font-family: inherit;\\n color: var(--ae-tab-color, #909090);\\n font-size: var(--ae-tab-font-size, inherit);\\n transition: color 0.15s, border-color 0.15s;\\n outline: none;\\n white-space: nowrap;\\n user-select: none;\\n}\\n\\nbutton:hover {\\n color: var(--ae-tab-hover-color, var(--ae-color-primary));\\n}\\n\\nbutton:focus-visible {\\n outline: 2px solid var(--ae-color-primary);\\n outline-offset: -2px;\\n}\\n\\n:host([active]) button {\\n color: var(--ae-tab-active-color, var(--ae-color-primary));\\n border-bottom-color: var(--ae-tab-active-color, var(--ae-color-primary));\\n}\\n\\n:host([disabled]) button {\\n opacity: 0.4;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\"", "module.exports = \":host {\\n display: none;\\n padding: var(--ae-tab-panel-padding, 16px 0);\\n}\\n\\n:host([active]) {\\n display: block;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n width: 100%;\\n height: var(--thickness, 1px);\\n flex-shrink: 0;\\n\\n /* Override color.css default - divider uses the subtle border token when no [color] is set */\\n --ae-color-border: var(--ae-border-default);\\n\\n background: var(--ae-color-border);\\n}\\n\\n:host([vertical]) {\\n display: inline-block;\\n width: var(--thickness, 1px);\\n height: 1lh;\\n vertical-align: middle;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.card {\\n border: 1px solid var(--ae-color-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-lg));\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n overflow: hidden;\\n}\\n\\n:host([variant=\\\"faint\\\"]) .card {\\n border-color: var(--ae-color-border-subtle);\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .card {\\n border-color: transparent;\\n}\\n\\n:host([variant=\\\"filled\\\"]) .card {\\n border-color: var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .card {\\n border-color: var(--ae-color-border);\\n background: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"]) .card {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-text-main);\\n}\\n\\n.header,\\n.footer {\\n display: none;\\n padding: 10px 16px;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n:host([has-header]) .header {\\n display: block;\\n border-bottom: 1px solid var(--ae-color-border-subtle);\\n}\\n\\n:host([has-footer]) .footer {\\n display: block;\\n border-top: 1px solid var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"filled\\\"][has-header]) .header {\\n border-bottom-color: rgba(0, 0, 0, 0.15);\\n}\\n\\n:host([variant=\\\"filled\\\"][has-footer]) .footer {\\n border-top-color: rgba(0, 0, 0, 0.15);\\n}\\n\\n:host([variant=\\\"outlined\\\"][has-header]) .header {\\n border-bottom-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"outlined\\\"][has-footer]) .footer {\\n border-top-color: var(--ae-color-border-subtle);\\n}\\n\\n:host([variant=\\\"text\\\"][has-header]) .header {\\n border-bottom-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"text\\\"][has-footer]) .footer {\\n border-top-color: transparent;\\n color: var(--ae-color-accent);\\n}\\n\\n.body {\\n padding: 16px;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n position: static;\\n top: auto;\\n z-index: var(--ae-navbar-z-index, 100);\\n box-sizing: border-box;\\n height: var(--ae-navbar-height, 3.25rem);\\n border-radius: var(--ae-navbar-radius, 0);\\n\\n background: var(--ae-navbar-bg, var(--ae-surface-base));\\n color: var(--ae-navbar-color, var(--ae-color-text-main));\\n border-bottom: var(--ae-navbar-border-width, 1px) solid var(--ae-navbar-border-color, var(--ae-border-default));\\n box-shadow: var(--ae-navbar-shadow, none);\\n\\n --ae-navbar-radius: 0;\\n --ae-navbar-padding-x: var(--container-padding-x, 1.5rem);\\n --ae-navbar-gap: 0.5rem;\\n --ae-navbar-link-color: inherit;\\n --ae-navbar-link-font-size: inherit;\\n --ae-navbar-link-padding-x: 0.75rem;\\n --ae-navbar-link-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n --ae-navbar-link-hover-color: var(--ae-color-text-link-hover);\\n --ae-navbar-link-hover-bg: transparent;\\n --ae-navbar-link-active-color: var(--ae-color-text-link);\\n --ae-navbar-link-active-font-weight: 600;\\n}\\n\\n:host([sticky]) {\\n position: sticky;\\n top: 0;\\n}\\n\\n:host([color]) {\\n --ae-navbar-bg: var(--ae-color-solid);\\n --ae-navbar-color: var(--ae-color-on-solid);\\n --ae-navbar-border-color: transparent;\\n --ae-navbar-link-hover-color: var(--ae-color-on-solid);\\n --ae-navbar-link-active-color: var(--ae-color-on-solid);\\n}\\n\\n:host([appearance=\\\"block\\\"]) {\\n --ae-navbar-link-hover-bg: var(--ae-color-bg-subtle);\\n --ae-navbar-link-hover-color: inherit;\\n --ae-navbar-link-radius: 0;\\n}\\n\\n:host([color][appearance=\\\"block\\\"]) {\\n --ae-navbar-link-hover-bg: rgba(255, 255, 255, 0.15);\\n --ae-navbar-link-hover-color: var(--ae-color-on-solid);\\n --ae-navbar-link-radius: 0;\\n}\\n\\n.inner {\\n display: flex;\\n align-items: center;\\n height: 100%;\\n padding: 0 var(--ae-navbar-padding-x);\\n gap: var(--ae-navbar-gap);\\n box-sizing: border-box;\\n}\\n\\n[part=\\\"brand\\\"] {\\n flex: 0 0 auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n[part=\\\"nav\\\"] {\\n flex: 1 1 auto;\\n display: flex;\\n align-self: stretch;\\n align-items: stretch;\\n min-width: 0;\\n}\\n\\n[part=\\\"start\\\"],\\n[part=\\\"end\\\"] {\\n flex: 0 0 auto;\\n display: flex;\\n align-self: stretch;\\n}\\n\\n[part=\\\"start\\\"] {\\n align-items: stretch;\\n gap: var(--ae-navbar-start-gap, 0);\\n}\\n\\n[part=\\\"end\\\"] {\\n align-items: center;\\n gap: var(--ae-navbar-end-gap, 0.5rem);\\n margin-left: auto;\\n}\\n\\n[part=\\\"hamburger\\\"] {\\n display: none;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n gap: 5px;\\n flex-shrink: 0;\\n width: var(--ae-navbar-hamburger-size, 2rem);\\n height: var(--ae-navbar-hamburger-size, 2rem);\\n margin-left: auto;\\n padding: 0;\\n background: none;\\n border: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n cursor: pointer;\\n color: var(--ae-navbar-hamburger-color, inherit);\\n}\\n\\n[part=\\\"hamburger\\\"]:hover {\\n background: color-mix(in srgb, currentColor 10%, transparent);\\n}\\n\\n[part=\\\"hamburger\\\"] span {\\n display: block;\\n width: 18px;\\n height: 2px;\\n background: currentColor;\\n border-radius: 1px;\\n transition: transform 0.2s ease, opacity 0.2s ease;\\n}\\n\\n::slotted(a[slot=\\\"brand\\\"]) {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-weight: 700;\\n font-size: 1.05rem;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n::slotted(a[slot=\\\"start\\\"]),\\n::slotted(a[slot=\\\"end\\\"]) {\\n display: inline-flex;\\n align-items: center;\\n height: var(--ae-navbar-height, 3.25rem);\\n padding: 0 var(--ae-navbar-link-padding-x) !important;\\n border-radius: var(--ae-navbar-link-radius);\\n color: var(--ae-navbar-link-color);\\n font-size: var(--ae-navbar-link-font-size);\\n text-decoration: none;\\n white-space: nowrap;\\n transition: color 0.15s ease, background-color 0.15s ease;\\n outline-offset: 2px;\\n}\\n\\n::slotted(a[slot=\\\"start\\\"]:hover),\\n::slotted(a[slot=\\\"end\\\"]:hover) {\\n color: var(--ae-navbar-link-hover-color);\\n background-color: var(--ae-navbar-link-hover-bg);\\n}\\n\\n::slotted(a[slot=\\\"start\\\"][aria-current=\\\"page\\\"]),\\n::slotted(a[slot=\\\"end\\\"][aria-current=\\\"page\\\"]) {\\n color: var(--ae-navbar-link-active-color);\\n font-weight: var(--ae-navbar-link-active-font-weight);\\n}\\n\\n::slotted(ae-dropdown) {\\n align-self: stretch;\\n --dropdown-trigger-height: 100%;\\n --dropdown-trigger-padding-x: var(--ae-navbar-link-padding-x);\\n --dropdown-trigger-color: var(--ae-navbar-link-color);\\n --dropdown-trigger-bg: none;\\n --dropdown-trigger-radius: var(--ae-navbar-link-radius);\\n --dropdown-trigger-font-size: var(--ae-navbar-link-font-size);\\n --dropdown-trigger-hover-color: var(--ae-navbar-link-hover-color);\\n --dropdown-trigger-hover-bg: var(--ae-navbar-link-hover-bg);\\n}\\n\\n@media (max-width: 768px) {\\n [part=\\\"nav\\\"] {\\n display: none;\\n position: absolute;\\n top: 100%;\\n left: 0;\\n right: 0;\\n flex-direction: column;\\n align-items: stretch;\\n gap: 0;\\n padding: 0.5rem 0;\\n background: var(--ae-navbar-mobile-bg, var(--ae-navbar-bg, var(--ae-surface-base)));\\n border-bottom: 1px solid var(--ae-navbar-border-color, var(--ae-border-default));\\n box-shadow: var(--ae-navbar-mobile-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));\\n z-index: 1;\\n }\\n\\n :host([open]) [part=\\\"nav\\\"] {\\n display: flex;\\n }\\n\\n [part=\\\"start\\\"],\\n [part=\\\"end\\\"] {\\n flex-direction: column;\\n align-items: flex-start;\\n align-self: auto;\\n gap: 0;\\n margin-left: 0;\\n width: 100%;\\n }\\n\\n ::slotted(a[slot=\\\"start\\\"]),\\n ::slotted(a[slot=\\\"end\\\"]) {\\n height: auto;\\n width: 100%;\\n padding: 0.75rem var(--ae-navbar-link-padding-x);\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n }\\n\\n [part=\\\"hamburger\\\"] {\\n display: flex;\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(1) {\\n transform: translateY(7px) rotate(45deg);\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(2) {\\n opacity: 0;\\n transform: scaleX(0);\\n }\\n\\n :host([open]) [part=\\\"hamburger\\\"] span:nth-child(3) {\\n transform: translateY(-7px) rotate(-45deg);\\n }\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n vertical-align: middle;\\n --spinner-size: 1.75em;\\n --spinner-thickness: 0.15em;\\n --spinner-speed: 0.75s;\\n}\\n\\n:host([size=\\\"xs\\\"]) { font-size: 0.75rem; }\\n:host([size=\\\"sm\\\"]) { font-size: 0.875rem; }\\n:host([size=\\\"md\\\"]) { font-size: 1rem; }\\n:host([size=\\\"lg\\\"]) { font-size: 1.5rem; }\\n\\n.track {\\n display: inline-block;\\n width: var(--spinner-size);\\n height: var(--spinner-size);\\n border-radius: var(--ae-radius-circle);\\n border: var(--spinner-thickness) solid var(--ae-color-bg-subtle, rgba(0, 0, 0, 0.08));\\n border-top-color: var(--ae-color-solid);\\n animation: ae-spin var(--spinner-speed) linear infinite;\\n box-sizing: border-box;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .track {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: calc(var(--spinner-size) * 0.2);\\n width: auto;\\n height: var(--spinner-size);\\n border: none;\\n border-radius: var(--ae-radius-square);\\n animation: none;\\n background: transparent;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot {\\n display: inline-block;\\n width: calc(var(--spinner-size) * 0.28);\\n height: calc(var(--spinner-size) * 0.28);\\n border-radius: var(--ae-radius-circle);\\n background: var(--ae-color-solid);\\n animation: ae-bounce var(--spinner-speed) ease-in-out infinite;\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot:nth-child(2) {\\n animation-delay: calc(var(--spinner-speed) / 6);\\n}\\n\\n:host([variant=\\\"dots\\\"]) .dot:nth-child(3) {\\n animation-delay: calc(var(--spinner-speed) / 3);\\n}\\n\\n@keyframes ae-spin {\\n to { transform: rotate(360deg); }\\n}\\n\\n@keyframes ae-bounce {\\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.5; }\\n 40% { transform: scale(1); opacity: 1; }\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .track {\\n animation: none;\\n border-top-color: var(--ae-color-solid);\\n opacity: 0.6;\\n }\\n\\n :host([variant=\\\"dots\\\"]) .dot {\\n animation: none;\\n opacity: 0.6;\\n }\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n\\n --detail-radius: 6px;\\n}\\n\\n.detail {\\n border: 1px solid var(--ae-color-solid);\\n border-radius:\\n var(--detail-r-tl, var(--detail-radius))\\n var(--detail-r-tr, var(--detail-radius))\\n var(--detail-r-br, var(--detail-radius))\\n var(--detail-r-bl, var(--detail-radius));\\n color: var(--ae-color-on-solid);\\n background: var(--ae-color-solid);\\n overflow: hidden;\\n}\\n\\n/* variant overrides */\\n:host([variant=\\\"subtle\\\"]) .detail {\\n border-color: transparent;\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"subtle\\\"]) .summary { background: var(--ae-color-bg-subtle); }\\n\\n:host([variant=\\\"faint\\\"]) .detail {\\n border-color: var(--ae-color-border-subtle);\\n background: var(--ae-color-bg-subtle);\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"faint\\\"]) .summary { background: var(--ae-color-bg-subtle); }\\n\\n:host([variant=\\\"text\\\"]) .detail {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-text-main);\\n}\\n\\n:host([variant=\\\"text\\\"]) .summary {\\n background: transparent;\\n}\\n\\n:host([variant=\\\"text\\\"]) .label {\\n color: var(--ae-color-accent);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .detail {\\n border-color: var(--ae-color-solid);\\n background: var(--ae-color-solid);\\n color: var(--ae-color-on-solid);\\n}\\n\\n:host([variant=\\\"filled\\\"]) .summary {\\n background: color-mix(in srgb, var(--ae-color-solid), black 10%);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .detail {\\n border-color: var(--ae-color-border);\\n background: transparent;\\n color: var(--ae-color-text-subtle);\\n}\\n\\n:host([variant=\\\"outlined\\\"]) .summary { background: transparent; }\\n\\n.summary {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n width: 100%;\\n padding: 10px 14px;\\n background: color-mix(in srgb, var(--ae-color-solid), black 10%);\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 500;\\n border: none;\\n cursor: pointer;\\n text-align: left;\\n outline-offset: -2px;\\n user-select: none;\\n}\\n\\n.summary:hover {\\n filter: brightness(0.93);\\n}\\n\\n.summary:focus-visible {\\n outline: 2px solid var(--ae-color-border);\\n}\\n\\nslot[name=\\\"summary\\\"] {\\n display: flex;\\n align-items: center;\\n flex: 1;\\n min-width: 0;\\n}\\n\\n.label {\\n flex: 1;\\n}\\n\\nslot[name=\\\"expand\\\"],\\nslot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n flex-shrink: 0;\\n}\\n\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"expand\\\"],\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"collapse\\\"] {\\n order: -1;\\n}\\n\\nslot[name=\\\"collapse\\\"] {\\n display: none;\\n}\\n\\n:host([open]) slot[name=\\\"expand\\\"] {\\n display: none;\\n}\\n\\n:host([open]) slot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n}\\n\\n.content-outer {\\n display: grid;\\n grid-template-rows: 0fr;\\n transition: grid-template-rows 0.25s ease;\\n}\\n\\n:host([open]) .content-outer {\\n grid-template-rows: 1fr;\\n}\\n\\n.content {\\n overflow: hidden;\\n padding: 0 14px;\\n transition: padding 0.25s ease;\\n}\\n\\n:host([open]) .content {\\n padding: 12px 14px;\\n}\\n\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n/* Raise hovered/focused item so its border shows above neighbours */\\n::slotted(ae-detail:hover),\\n::slotted(ae-detail:focus-within) {\\n position: relative;\\n z-index: 1;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n --progress-height: 8px;\\n}\\n\\n.progress-track {\\n width: 100%;\\n height: var(--progress-height);\\n background: var(--ae-border-subtle);\\n border-radius: calc(var(--progress-height) / 2);\\n overflow: hidden;\\n}\\n\\n.progress-bar {\\n display: block;\\n height: 100%;\\n border-radius: inherit;\\n background: var(--progress-bar-color, var(--ae-color-solid));\\n width: 0%;\\n transition: width 0.35s ease;\\n position: relative;\\n}\\n\\n/* animated: shimmer sweep on top of the solid fill */\\n:host([animated]) .progress-bar::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n border-radius: inherit;\\n background: linear-gradient(\\n 90deg,\\n transparent 0%,\\n rgba(255, 255, 255, 0.35) 50%,\\n transparent 100%\\n );\\n background-size: 200% 100%;\\n animation: progress-shimmer 1.4s linear infinite;\\n}\\n\\n@keyframes progress-shimmer {\\n 0% { background-position: 200% 0; }\\n 100% { background-position: -200% 0; }\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.menu-list {\\n display: flex;\\n flex-direction: column;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n gap: 0;\\n}\\n\\n.menu-list--horizontal {\\n flex-direction: row;\\n align-items: stretch;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n position: relative;\\n\\n --menu-item-height: 2.5rem;\\n --menu-item-padding-x: 0.875rem;\\n --menu-item-font-size: 0.9375rem;\\n --menu-item-color: inherit;\\n --menu-item-color-disabled: var(--ae-color-text-disabled);\\n --menu-item-bg: transparent;\\n --menu-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.05));\\n --menu-item-active-color: var(--ae-color-primary, var(--ae-blue-500));\\n --menu-item-active-border-color: var(--ae-color-primary, var(--ae-blue-500));\\n\\n --submenu-z-index: 1001;\\n --submenu-bg: var(--ae-surface-overlay, #fff);\\n --submenu-border: 1px solid var(--ae-border-default);\\n --submenu-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\\n --submenu-min-width: 10rem;\\n --submenu-padding: 0.25rem 0;\\n}\\n\\n.item {\\n display: inline-flex;\\n align-items: center;\\n gap: 0.4rem;\\n width: 100%;\\n height: var(--menu-item-height);\\n padding: 0 var(--menu-item-padding-x);\\n font-size: var(--menu-item-font-size);\\n font-family: inherit;\\n color: var(--menu-item-color);\\n background: var(--menu-item-bg);\\n border: none;\\n border-bottom: 2px solid transparent;\\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 outline: none;\\n transition: background 0.1s, color 0.1s, border-color 0.1s;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.item--leaf-in-panel {\\n height: auto;\\n padding: 0.5rem var(--menu-item-padding-x);\\n border-bottom: none;\\n}\\n\\n.item--wrap {\\n white-space: normal;\\n height: auto;\\n min-height: var(--menu-item-height);\\n}\\n\\n.item:hover:not(:disabled) {\\n background: var(--menu-item-bg-hover);\\n}\\n\\n.item:focus-visible {\\n background: var(--menu-item-bg-hover);\\n outline: 2px solid var(--menu-item-active-color);\\n outline-offset: -2px;\\n}\\n\\n:host([disabled]) .item,\\n.item:disabled {\\n color: var(--menu-item-color-disabled);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n:host([selected]) .item {\\n color: var(--menu-item-active-color);\\n border-bottom-color: var(--menu-item-active-border-color);\\n}\\n\\n.item-arrow {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n flex-shrink: 0;\\n}\\n\\n.item-arrow--right {\\n border-top: 0.3em solid transparent;\\n border-bottom: 0.3em solid transparent;\\n border-left: 0.3em solid;\\n}\\n\\n.item-arrow--bottom {\\n border-left: 0.3em solid transparent;\\n border-right: 0.3em solid transparent;\\n border-top: 0.3em solid;\\n}\\n\\n.item--open .item-arrow--right {\\n transform: rotate(90deg);\\n}\\n\\nslot[name=\\\"expand\\\"],\\nslot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n margin-inline-start: auto;\\n flex-shrink: 0;\\n}\\n\\nslot[name=\\\"collapse\\\"] {\\n display: none;\\n}\\n\\n.item--open slot[name=\\\"expand\\\"] {\\n display: none;\\n}\\n\\n.item--open slot[name=\\\"collapse\\\"] {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\nslot[name=\\\"collapse\\\"] .item-arrow--right {\\n transform: rotate(90deg);\\n}\\n\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"expand\\\"],\\n:host([icon-placement=\\\"start\\\"]) slot[name=\\\"collapse\\\"] {\\n order: -1;\\n margin-inline-start: 0;\\n}\\n\\n.submenu-panel {\\n display: none;\\n position: absolute;\\n z-index: var(--submenu-z-index);\\n background: var(--submenu-bg);\\n border: var(--submenu-border);\\n border-radius: var(--ae-border-radius, var(--ae-radius-md));\\n box-shadow: var(--submenu-shadow);\\n min-width: var(--submenu-min-width);\\n padding: var(--submenu-padding);\\n box-sizing: border-box;\\n max-width: calc(100vw - 16px);\\n}\\n\\n.submenu-panel.open {\\n display: block;\\n}\\n\\n.submenu-panel.placement-bottom {\\n top: 100%;\\n left: 0;\\n margin-top: 2px;\\n}\\n\\n.submenu-panel.placement-right {\\n top: 0;\\n left: 100%;\\n margin-left: 2px;\\n}\\n\\n.submenu-inline {\\n display: none;\\n padding-left: 1rem;\\n}\\n\\n.submenu-inline.open {\\n display: block;\\n}\\n\"", "module.exports = \":host {\\n display: inline-flex;\\n align-items: center;\\n font-size: var(--ae-size-m);\\n}\\n\\nnav {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n margin: 0;\\n padding: 0;\\n}\\n\\nbutton {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 2em;\\n height: 2em;\\n padding: 0 0.5em;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: 1;\\n cursor: pointer;\\n user-select: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n border: 1px solid var(--ae-border-default);\\n background: transparent;\\n color: var(--ae-color-text-main);\\n transition: background 0.15s, border-color 0.15s, color 0.15s;\\n outline: none;\\n}\\n\\nbutton:focus-visible {\\n box-shadow: 0 0 0 2px var(--ae-focus-ring);\\n border-color: var(--ae-border-focus);\\n}\\n\\nbutton:hover:not(:disabled) {\\n border-color: var(--ae-color-primary);\\n color: var(--ae-color-primary);\\n background: var(--ae-color-primary-bg-subtle);\\n}\\n\\nbutton:active:not(:disabled) {\\n background: color-mix(in srgb, var(--ae-color-primary-bg-subtle), var(--ae-color-primary) 10%);\\n}\\n\\nbutton:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n}\\n\\nbutton.active {\\n background: var(--ae-color-primary);\\n border-color: var(--ae-color-primary);\\n color: white;\\n font-weight: 600;\\n cursor: default;\\n}\\n\\nbutton.active:hover:not(:disabled) {\\n background: var(--ae-color-primary-hover);\\n border-color: var(--ae-color-primary-hover);\\n color: white;\\n}\\n\\nbutton.nav-btn {\\n min-width: 2em;\\n width: 2em;\\n padding: 0;\\n}\\n\\n[part=\\\"ellipsis\\\"] {\\n display: inline-flex;\\n align-items: flex-end;\\n justify-content: center;\\n min-width: 2em;\\n height: 2em;\\n color: var(--ae-color-text-muted);\\n user-select: none;\\n letter-spacing: 0.1em;\\n padding-bottom: 0.2em;\\n}\\n\\ninput[part=\\\"page-input\\\"] {\\n width: 3em;\\n height: 2em;\\n padding: 0 0.4em;\\n text-align: center;\\n border: 1px solid var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-border-radius));\\n font-size: inherit;\\n font-family: inherit;\\n color: var(--ae-color-text-main);\\n background: var(--ae-surface-base);\\n box-shadow: none;\\n -webkit-appearance: none;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n outline: none;\\n transition: border-color 0.15s, box-shadow 0.15s;\\n}\\n\\ninput[part=\\\"page-input\\\"]:hover:not(:disabled) {\\n border-color: var(--ae-border-default);\\n}\\n\\ninput[part=\\\"page-input\\\"]::-webkit-inner-spin-button,\\ninput[part=\\\"page-input\\\"]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\ninput[part=\\\"page-input\\\"]:focus {\\n border-color: var(--ae-border-focus);\\n box-shadow: 0 0 0 2px var(--ae-focus-ring);\\n}\\n\\ninput[part=\\\"page-input\\\"]:disabled {\\n opacity: 0.45;\\n cursor: not-allowed;\\n}\\n\\n[part=\\\"page-total\\\"] {\\n color: var(--ae-color-text-muted);\\n white-space: nowrap;\\n padding: 0 0.25em;\\n line-height: 2em;\\n}\\n\\n/* \u2500\u2500 Borderless variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\\n:host([variant='borderless']) button {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) button:hover:not(:disabled) {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) button.active {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input'] {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input']:hover:not(:disabled) {\\n border-color: transparent;\\n}\\n\\n:host([variant='borderless']) input[part='page-input']:focus {\\n border-color: var(--ae-border-focus);\\n}\\n\\n/* \u2500\u2500 Link variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\\n:host([variant='link']) button {\\n border-color: transparent;\\n background: transparent;\\n}\\n\\n:host([variant='link']) button:hover:not(:disabled) {\\n border-color: transparent;\\n background: transparent;\\n color: var(--ae-color-primary);\\n}\\n\\n:host([variant='link']) button:active:not(:disabled) {\\n background: transparent;\\n}\\n\\n:host([variant='link']) button:focus-visible {\\n border-color: transparent;\\n}\\n\\n:host([variant='link']) button.active {\\n background: transparent;\\n border-color: transparent;\\n color: var(--ae-color-primary);\\n font-weight: 600;\\n}\\n\\n:host([variant='link']) button.active:hover:not(:disabled) {\\n background: transparent;\\n color: var(--ae-color-primary);\\n}\\n\\n:host([variant='link']) input[part='page-input'] {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-subtle);\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n}\\n\\n:host([variant='link']) input[part='page-input']:hover:not(:disabled) {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-default);\\n}\\n\\n:host([variant='link']) input[part='page-input']:focus {\\n border-color: transparent;\\n border-bottom-color: var(--ae-border-focus);\\n box-shadow: none;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n}\\n\\n.tree {\\n display: block;\\n padding: 0.25rem;\\n box-sizing: border-box;\\n user-select: none;\\n}\\n\"", "module.exports = \":host {\\n display: block;\\n --ae-tree-indent: 1.25rem;\\n --tree-item-height: 2rem;\\n --tree-item-font-size: 0.9375rem;\\n --tree-item-color: var(--ae-color-text-main, #343a40);\\n --tree-item-color-disabled: var(--ae-color-text-disabled, #bbb);\\n --tree-item-bg-hover: var(--ae-surface-raised, rgba(0, 0, 0, 0.04));\\n --tree-item-bg-selected: var(--ae-color-primary-bg-subtle, rgba(14, 99, 156, 0.08));\\n --tree-item-color-selected: var(--ae-color-primary, #0e639c);\\n --tree-item-line-color: var(--ae-border-default, rgba(0, 0, 0, 0.15));\\n --tree-item-expand-size: 1rem;\\n}\\n\\n.tree-item-content {\\n display: flex;\\n align-items: center;\\n gap: 0.25rem;\\n height: var(--tree-item-height);\\n padding-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem);\\n padding-right: 0.5rem;\\n font-size: var(--tree-item-font-size);\\n color: var(--tree-item-color);\\n cursor: pointer;\\n user-select: none;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n transition: background 0.1s, color 0.1s;\\n box-sizing: border-box;\\n}\\n\\n.tree-item-content:hover {\\n background: var(--tree-item-bg-hover);\\n}\\n\\n.expand-btn {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--tree-item-expand-size);\\n height: var(--tree-item-expand-size);\\n padding: 0;\\n border: none;\\n background: transparent;\\n color: inherit;\\n cursor: pointer;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n transition: transform 0.18s;\\n outline: none;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.expand-btn:focus-visible {\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: 1px;\\n}\\n\\n.expand-btn svg,\\n.expand-btn ae-icon {\\n display: block;\\n width: 0.625rem;\\n height: 0.625rem;\\n fill: currentColor;\\n transition: transform 0.18s;\\n}\\n\\n/* ae-icon uses font-size for its internal sizing */\\n.expand-btn ae-icon,\\n.expand-placeholder ae-icon {\\n font-size: 0.625rem;\\n}\\n\\n:host([expanded]) .expand-btn svg,\\n:host([expanded]) .expand-btn ae-icon {\\n transform: rotate(90deg);\\n}\\n\\n/* Leaf placeholder keeps alignment consistent */\\n.expand-placeholder {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--tree-item-expand-size);\\n height: var(--tree-item-expand-size);\\n}\\n\\n.tree-item-checkbox {\\n flex-shrink: 0;\\n width: 0.875rem;\\n height: 0.875rem;\\n margin: 0;\\n cursor: pointer;\\n accent-color: var(--ae-color-primary, #0e639c);\\n}\\n\\n.tree-item-label {\\n display: inline-flex;\\n align-items: center;\\n flex: 1;\\n min-width: 0;\\n height: 100%;\\n padding: 0 0.25rem;\\n border: none;\\n background: transparent;\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n cursor: pointer;\\n outline: none;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n\\n.tree-item-label:focus-visible {\\n outline: 2px solid var(--ae-color-primary, #0e639c);\\n outline-offset: -2px;\\n border-radius: var(--ae-border-radius, var(--ae-radius-sm));\\n}\\n\\n:host([selected]) .tree-item-content {\\n background: var(--tree-item-bg-selected);\\n color: var(--tree-item-color-selected);\\n}\\n\\n:host([disabled]) .tree-item-content {\\n color: var(--tree-item-color-disabled);\\n cursor: not-allowed;\\n}\\n\\n:host([disabled]) .tree-item-content * {\\n pointer-events: none;\\n}\\n\\n.tree-item-children {\\n display: none;\\n}\\n\\n:host([expanded]) .tree-item-children {\\n display: block;\\n}\\n\\n:host([showline]) .tree-item-children {\\n margin-left: calc(var(--ae-tree-indent) * var(--depth, 0) + 0.25rem + calc(var(--tree-item-expand-size) / 2));\\n padding-left: calc(var(--ae-tree-indent) - calc(var(--tree-item-expand-size) / 2));\\n border-left: 1px dashed var(--tree-item-line-color);\\n}\\n\"", "/**\n * Components module exports\n *\n * All Aeico Web Components are available here for on-demand registration.\n * Import only the components you need to keep your bundle size small.\n *\n * @example\n * ```typescript\n * import { SelectField, RangeField, Button } from 'aeico/components'\n *\n * // Manually register components\n * SelectField.define()\n * RangeField.define()\n * Button.define()\n *\n * // Or use with custom names\n * SelectField.define('my-select')\n * ```\n *\n * @example\n * ```typescript\n * // Use the static create method for programmatic creation\n * import { Button } from 'aeico/components'\n *\n * const button = Button.create({\n * variant: 'primary',\n * size: 'md'\n * })\n * button.textContent = 'Click me'\n * document.body.appendChild(button)\n * ```\n */\n\n// Field components\nexport { default as TextInput } from './text-input';\nexport { default as NumberInput } from './number-input';\nexport { default as Textarea, type TextareaResize } from './textarea';\nexport { default as Select } from './select';\nexport { default as Slider } from './slider';\nexport { default as Checkbox } from './checkbox';\nexport { default as RadioGroup } from './radio-group';\nexport { Radio } from './radio-group';\nexport { default as Switch } from './switch';\n\n// UI components\nexport { default as Breadcrumb, BreadcrumbItem } from './breadcrumb';\nexport { default as Button } from './button';\nexport { default as CopyButton } from './copy-button';\nexport { default as Dropdown, DropdownItem, DropdownButton } from './dropdown';\nexport { default as ButtonGroup } from './button-group';\nexport { default as Badge } from './badge';\nexport { default as Tag } from './tag';\nexport { default as Alert } from './alert';\nexport { default as Dialog } from './dialog';\nexport { default as Drawer } from './drawer';\nexport { default as Icon } from './icon/icon';\nexport { default as IconRegistry } from './icon/registry';\nexport { default as IconButton } from './icon-button';\nexport { Tabs, Tab, TabPanel } from './tabs';\nexport { default as Divider } from './divider';\nexport { default as Card } from './card';\nexport { default as Navbar } from './navbar';\nexport { default as Spinner } from './spinner';\nexport { default as Detail } from './detail';\nexport { default as DetailGroup } from './detail-group';\nexport { default as ProgressBar } from './progress-bar';\nexport { Menu, MenuItem } from './menu';\nexport { default as Tooltip } from './tooltip';\nexport { default as Pagination } from './pagination';\nexport { Tree, TreeItem } from './tree';\n\n// Component types\nexport type { SelectProps, SelectOption, SelectOptions, SelectOptionValue } from './select';\nexport type { SliderProps, SliderOption, SliderOptions, SliderOptionValue } from './slider';\nexport type { CheckboxProps, CheckboxVariant } from './checkbox';\nexport type {\n RadioGroupProps,\n RadioGroupMode,\n RadioGroupOption,\n RadioGroupOptions,\n} from './radio-group';\nexport type { RadioProps } from './radio-group';\nexport type { SwitchProps } from './switch';\nexport type { TextInputProps } from './text-input';\nexport type { NumberInputProps } from './number-input';\nexport type { TextareaProps } from './textarea';\nexport type { ButtonProps, ButtonColor, ButtonSize, ButtonVariant } from './button';\nexport type { ButtonGroupProps } from './button-group';\nexport type { PaginationProps, PaginationSize } from './pagination';\nexport type { AlertProps, AlertColor, AlertSize, AlertVariant } from './alert';\nexport type { BadgeProps, BadgeColor, BadgeSize, BadgeVariant } from './badge';\nexport type { TagProps, TagColor, TagSize, TagVariant } from './tag';\nexport type { DialogProps } from './dialog';\nexport type { DrawerProps, DrawerPlacement } from './drawer';\nexport type { IconProps, IconSize, IconColor, IconDefinition, IconRegistryData } from './icon';\nexport type { ProgressBarProps, ProgressBarColor } from './progress-bar';\nexport type { IconButtonProps, IconButtonVariant, IconButtonSize } from './icon-button';\nexport type { DividerProps } from './divider';\nexport type { CardProps, CardVariant, CardColor } from './card';\nexport type { NavbarProps, NavbarColor, NavbarAppearance } from './navbar';\nexport type { DetailProps, DetailVariant, DetailColor } from './detail';\nexport type {\n MenuProps,\n MenuItemProps,\n MenuMode,\n MenuOrientation,\n MenuTrigger,\n MenuSelectDetail,\n} from './menu';\nexport type { TooltipProps, TooltipPlacement, TooltipTrigger } from './tooltip';\nexport type {\n TreeProps,\n TreeItemProps,\n TreeSelectDetail,\n TreeExpandDetail,\n TreeCheckDetail,\n} from './tree';\n", "import type { InferProps, Props, Watchers } from 'aeico';\nimport { tags } from 'aeico';\nimport AeicoComponent from './aeico-component';\n\nexport type FieldAction = 'clear' | 'reset' | 'change';\nexport type FieldElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\nexport type ActionButtonStyle = 'standalone' | 'integrated';\n\n/**\n * Base class for form field components\n *\n * Provides common functionality for field components including:\n * - Theme support\n * - i18n integration (via Localizable mixin)\n * - Reset button management\n * - Value management\n * - Common configuration handling\n */\nclass AeicoField<TValue = string> extends AeicoComponent {\n /**\n * Define base field properties (extends AeicoElement properties)\n */\n static props: Props = {\n value: { type: String },\n defaultValue: { type: String },\n resettable: { type: Boolean },\n resetText: { type: String },\n resetTitle: { type: String },\n clearable: { type: Boolean },\n clearText: { type: String },\n clearTitle: { type: String },\n actionButtonStyle: { type: String },\n size: { type: String },\n disabled: { type: Boolean },\n label: { type: String },\n labelPlacement: { type: String },\n required: { type: Boolean },\n helperText: { type: String },\n error: { type: String },\n };\n\n /**\n * Property watchers\n */\n static watchers: Watchers = {\n disabled: 'onDisabledChanged',\n error: 'onErrorChanged',\n };\n\n private static _fieldIdCounter = 0;\n private readonly _fieldId: string;\n\n constructor() {\n super();\n this._fieldId = `ae-field-${++AeicoField._fieldIdCounter}`;\n }\n\n /**\n * The underlying form control element (input, select, etc.)\n * Subclasses should set this to their specific element\n */\n protected fieldElement: FieldElement | null = null;\n\n protected resetBtn: HTMLButtonElement | null = null;\n protected clearBtn: HTMLButtonElement | null = null;\n\n protected readonly boundOnChange = () =>\n this.setValue(this.getValue(), { silent: false, action: 'change' });\n\n protected readonly boundOnReset = () => this.onReset();\n protected readonly boundOnClear = () => this.onClear();\n\n // Declare reactive properties for TypeScript\n declare value?: TValue;\n declare defaultValue?: TValue | string;\n declare resettable?: boolean;\n declare resetText?: string;\n declare resetTitle?: string;\n declare clearable?: boolean;\n declare clearText?: string;\n declare clearTitle?: string;\n declare actionButtonStyle?: ActionButtonStyle;\n declare size?: string;\n declare disabled?: boolean;\n declare label?: string;\n declare labelPlacement?: 'top' | 'left';\n declare required?: boolean;\n declare helperText?: string;\n declare error?: string;\n\n /**\n * Lifecycle: Component connected to DOM\n */\n connectedCallback() {\n super.connectedCallback();\n }\n\n /**\n * Lifecycle: Component disconnected from DOM\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n /**\n * Render action buttons (clear/reset) using this.builder.\n * Must be called from within a build() callback.\n */\n protected renderActionButtons(force: boolean = false) {\n const style = this.actionButtonStyle || 'integrated';\n const hasActions = force || this.clearable || this.resettable;\n\n if (hasActions && style === 'integrated') {\n tags.div({ className: 'action-controls' }, () => {\n this.renderClearButton(force);\n this.renderResetButton(force);\n });\n } else {\n this.renderClearButton(force);\n this.renderResetButton(force);\n }\n }\n\n protected renderResetButton(force: boolean = false) {\n const { button } = tags;\n const style = this.actionButtonStyle || 'integrated';\n\n if (force || this.resettable) {\n const className = style === 'integrated' ? 'reset-btn action-btn' : 'reset-btn';\n this.resetBtn = button({\n className,\n textContent: this.resetText || '\u21BA',\n title: this.resetTitle || '\u21BA',\n '@click': this.boundOnReset,\n });\n }\n }\n\n protected renderClearButton(force: boolean = false) {\n const { button } = tags;\n const style = this.actionButtonStyle || 'integrated';\n\n if (force || this.clearable) {\n const className = style === 'integrated' ? 'clear-btn action-btn' : 'clear-btn';\n this.clearBtn = button({\n className,\n textContent: this.clearText || '\u2715',\n title: this.clearTitle || '\u2715',\n '@click': this.boundOnClear,\n });\n }\n }\n\n /**\n * Returns a stable unique ID for this field instance,\n * used to associate <label htmlFor> with the underlying input.\n */\n protected getFieldId(): string {\n return this._fieldId;\n }\n\n /**\n * Renders a <label> element when the `label` prop is set.\n * Call this as the first statement inside the render() html() callback.\n * @param fieldId - The id to set on the underlying form control element (pass to input via id prop)\n */\n protected renderLabel(fieldId: string): void {\n if (!this.label) return;\n const { span } = tags;\n tags.label({ id: `${fieldId}-label`, className: 'field-label', for: fieldId }, () => {\n span({ textContent: this.label! });\n if (this.required) {\n span({ className: 'field-required', 'aria-hidden': 'true', textContent: ' *' });\n }\n });\n }\n\n /**\n * Renders helper text below the field. Hidden when `error` is set.\n * Call this after the field-body div in render().\n */\n protected renderHelperText(): void {\n if (!this.helperText || this.error) return;\n const { span } = tags;\n span({ className: 'field-helper', textContent: this.helperText });\n }\n\n /**\n * Renders an error message below the field when `error` is set.\n * Call this after renderHelperText() in render().\n */\n protected renderError(): void {\n if (!this.error) return;\n const { span } = tags;\n span({ className: 'field-error', textContent: this.error });\n }\n\n /**\n * Watcher for disabled property\n */\n protected onDisabledChanged(newValue: boolean) {\n if (this.fieldElement) {\n (this.fieldElement as HTMLInputElement | HTMLSelectElement).disabled = Boolean(newValue);\n }\n }\n\n /**\n * Watcher for error property - syncs aria-invalid on the field element\n */\n protected onErrorChanged(newValue: string | undefined): void {\n if (this.fieldElement) {\n if (newValue) {\n this.fieldElement.setAttribute('aria-invalid', 'true');\n } else {\n this.fieldElement.removeAttribute('aria-invalid');\n }\n }\n }\n\n /**\n * Lifecycle: called after every render update.\n * Keeps aria-invalid on fieldElement in sync regardless of watcher timing.\n */\n protected onUpdated(_changedProps: Map<string, unknown>): void {\n if (!this.fieldElement) return;\n if (this.error) {\n this.fieldElement.setAttribute('aria-invalid', 'true');\n } else {\n this.fieldElement.removeAttribute('aria-invalid');\n }\n }\n\n /**\n * Returns true if the field passes constraint validation.\n * Delegates to the underlying fieldElement when available;\n * falls back to a manual required-check otherwise.\n */\n public checkValidity(): boolean {\n if (this.fieldElement) {\n return this.fieldElement.checkValidity();\n }\n if (this.required) {\n const v = this.value;\n return v !== undefined && v !== '' && v !== null;\n }\n return true;\n }\n\n /**\n * Reports validity, showing the browser's built-in validation UI when possible.\n */\n public reportValidity(): boolean {\n if (this.fieldElement) {\n return this.fieldElement.reportValidity();\n }\n return this.checkValidity();\n }\n\n /**\n * Render the field component\n * Override in subclass to provide custom rendering\n */\n render(): void {\n // Default implementation - subclasses can override\n }\n\n /**\n * Get current value from the field element\n * Default implementation returns the value property of fieldElement\n * Override in subclasses if needed (e.g., checkbox uses checked instead of value)\n *\n * @returns Current field value\n */\n protected getValue(): TValue {\n return (this.fieldElement?.value || '') as TValue;\n }\n\n /**\n * Write value to the underlying UI element and sync props\n * Subclasses must override this to update their specific UI element\n *\n * @param _value New value to write to the element\n */\n protected writeValue(_value: TValue): void {\n // Base implementation - subclasses override\n }\n\n /**\n * Get event payload for change events\n * Override in subclasses to customize event data (e.g., { checked, oldChecked } for checkbox)\n *\n * @param value New value\n * @param oldValue Previous value\n * @param action Action type\n * @returns Event payload object\n */\n protected getEventPayload(\n value: TValue,\n oldValue: TValue,\n action: FieldAction,\n ): Record<string, unknown> {\n return { value, oldValue, action };\n }\n\n /**\n * Update field value programmatically (internal method)\n * Subclasses should provide type-safe public wrappers (e.g., change() method)\n *\n * @param value New value\n * @param options.silent If true, won't emit change event (default: true)\n * @param options.action Action type for the event (default: 'change')\n */\n protected setValue(value: TValue, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldValue = this.getValue();\n\n // Update property value\n this.value = value;\n\n // Write to UI element (DOM only)\n this.writeValue(value);\n\n // Emit event if not silent\n if (options?.silent === false) {\n const payload = this.getEventPayload(value, oldValue, options.action || 'change');\n this.emit('change', { detail: payload });\n }\n }\n\n /**\n * Reset field to specified value or default value\n *\n * @param value Value to reset to, defaults to defaultValue prop\n * @param options.silent If false, will emit reset event (default: true)\n */\n public reset(value?: TValue, options?: { silent?: boolean }): void {\n const resetValue = value !== undefined ? value : this.defaultValue;\n this.setValue(resetValue as TValue, { ...options, action: 'reset' });\n }\n\n /**\n * Clear the field value\n *\n * @param options.silent If false, will emit clear event (default: true)\n */\n public clear(options?: { silent?: boolean }): void {\n this.setValue('' as TValue, { ...options, action: 'clear' });\n }\n\n /**\n * Handle clear button click\n * Clears the field and dispatches event\n */\n protected onClear(): void {\n this.clear({ silent: false });\n }\n\n /**\n * Handle reset button click\n * Resets to default value and dispatches event\n */\n protected onReset(): void {\n this.reset(undefined, { silent: false });\n }\n}\n\nexport default AeicoField;\nexport type AeicoFieldProps = InferProps<typeof AeicoField>;\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 AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/text-input.css';\n\nclass TextInput extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n\n static props: Props = {\n placeholder: { type: String },\n type: { type: String },\n };\n\n declare placeholder?: string;\n declare type?: string;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'input-container field-body' }, () => {\n this.fieldElement = input({\n id,\n type: this.type || 'text',\n placeholder: this.placeholder || '',\n required: Boolean(this.required),\n '@input': this.boundOnChange,\n });\n\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement && this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n });\n }\n\n /**\n * Write value to the input element (DOM only)\n */\n protected writeValue(value: string): void {\n const strValue = String(value || '');\n\n if (this.fieldElement) {\n this.fieldElement.value = strValue;\n }\n }\n}\n\nTextInput.define('text-input');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-text-input': TextInput;\n }\n}\n\nexport default TextInput;\nexport type TextInputProps = InferProps<typeof TextInput>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/number-input.css';\n\nclass NumberInput extends AeicoField<number> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static props: Props = {\n placeholder: { type: String },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n controls: { type: Boolean },\n };\n\n declare placeholder?: string;\n declare min?: number;\n declare max?: number;\n declare step?: number;\n declare controls?: boolean;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n render() {\n return html(({ div, input, button }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'input-container field-body' }, () => {\n this.fieldElement = input({\n id,\n type: 'number',\n placeholder: this.placeholder || '',\n required: Boolean(this.required),\n disabled: Boolean(this.disabled),\n min: this.min != null ? String(this.min) : undefined,\n max: this.max != null ? String(this.max) : undefined,\n step: this.step != null ? String(this.step) : undefined,\n '@input': this.boundOnChange,\n });\n\n if (this.controls) {\n div({ className: 'number-controls' }, () => {\n button({\n className: 'number-btn number-btn-increment',\n textContent: '+',\n disabled: Boolean(this.disabled),\n '@click': this.boundOnIncrement,\n });\n button({\n className: 'number-btn number-btn-decrement',\n textContent: '-',\n disabled: Boolean(this.disabled),\n '@click': this.boundOnDecrement,\n });\n });\n }\n\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement && this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n });\n }\n\n protected readonly boundOnIncrement = () => {\n const current = this.getValue() || 0;\n const step = this.step ?? 1;\n let next = current + step;\n if (this.max != null && next > this.max) {\n next = this.max;\n }\n this.setValue(next, { silent: false, action: 'change' });\n };\n\n protected readonly boundOnDecrement = () => {\n const current = this.getValue() || 0;\n const step = this.step ?? 1;\n let next = current - step;\n if (this.min != null && next < this.min) {\n next = this.min;\n }\n this.setValue(next, { silent: false, action: 'change' });\n };\n\n /**\n * Get current value as number\n */\n protected getValue(): number {\n if (!this.fieldElement) return 0;\n const val = this.fieldElement.value;\n if (val === '') return 0;\n const num = parseFloat(val);\n return isNaN(num) ? 0 : num;\n }\n\n /**\n * Write value to the input element (DOM only)\n */\n protected writeValue(value: number): void {\n if (this.fieldElement) {\n this.fieldElement.value = value != null ? String(value) : '';\n }\n }\n\n /**\n * Get event payload for change events\n */\n protected getEventPayload(\n value: number,\n oldValue: number,\n action: import('../aeico-field').FieldAction,\n ): Record<string, unknown> {\n return { value, oldValue, action };\n }\n}\n\nNumberInput.define('number-input');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-number-input': NumberInput;\n }\n}\n\nexport default NumberInput;\nexport type NumberInputProps = InferProps<typeof NumberInput>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport style from '../styles/components/textarea.css';\n\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\n\nclass Textarea extends AeicoField {\n protected fieldElement: HTMLTextAreaElement | null = null;\n\n @prop({ type: String })\n accessor placeholder: string | undefined;\n\n @prop({ type: Number })\n accessor rows: number | undefined;\n\n @prop({ type: Number })\n accessor maxlength: number | undefined;\n\n @prop({ type: Number })\n accessor minlength: number | undefined;\n\n @prop({ type: String })\n accessor resize: TextareaResize | undefined;\n\n @prop({ type: Boolean })\n accessor autoResize: boolean = false;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n private readonly _boundOnInput = () => {\n if (this.autoResize && this.fieldElement) {\n this._syncAutoResize(this.fieldElement);\n }\n this.setValue(this.getValue(), { silent: false, action: 'change' });\n };\n\n render() {\n return html(({ div, textarea }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'textarea-container field-body' }, () => {\n this.fieldElement = textarea({\n id,\n placeholder: this.placeholder || '',\n rows: this.rows ?? 3,\n required: Boolean(this.required),\n '@input': this._boundOnInput,\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n\n if (this.fieldElement) {\n if (this.value != null) {\n this.fieldElement.value = String(this.value);\n }\n if (this.maxlength != null) this.fieldElement.maxLength = this.maxlength;\n if (this.minlength != null) this.fieldElement.minLength = this.minlength;\n this.fieldElement.style.resize = this.autoResize ? 'none' : (this.resize ?? 'vertical');\n if (this.autoResize) {\n this._syncAutoResize(this.fieldElement);\n }\n this._updateClearButtonVisibility();\n }\n });\n }\n\n private _syncAutoResize(ta: HTMLTextAreaElement): void {\n ta.style.height = 'auto';\n ta.style.height = `${ta.scrollHeight}px`;\n }\n\n private _updateClearButtonVisibility(): void {\n if (this.clearBtn && this.fieldElement) {\n this.clearBtn.style.display = this.fieldElement.value.length > 0 ? '' : 'none';\n }\n }\n\n protected writeValue(value: string): void {\n if (this.fieldElement) {\n this.fieldElement.value = String(value || '');\n if (this.autoResize) {\n this._syncAutoResize(this.fieldElement);\n }\n this._updateClearButtonVisibility();\n }\n }\n}\n\nTextarea.define('textarea');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-textarea': Textarea;\n }\n}\n\nexport default Textarea;\nexport type TextareaProps = InferProps<typeof Textarea>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type {\n SelectOptionValue,\n SelectOption,\n SelectOptions,\n SelectPosition,\n SelectMultiValue,\n} from './defines';\nimport style from '../styles/components/select.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport SelectOptionElement from './select-option';\nimport '../tag/tag';\nimport { prop } from 'aeico';\n\n/**\n * Select component supporting single and multi-select modes, with options provided via both props and slots.\n * - `options` prop accepts an array of strings or objects with `value` and `label` for programmatic options.\n * - Slot content allows for declarative options using `<ae-select-option>` elements.\n * @example\n * <ae-select placeholder=\"Choose an option\" position=\"bottom\">\n * <ae-select-option value=\"1\" label=\"Option 1\">Option 1</ae-select-option>\n * <ae-select-option value=\"2\" label=\"Option 2\">Option 2</ae-select-option>\n * </ae-select>\n *\n */\nclass Select extends AeicoField<SelectOptionValue | SelectMultiValue> {\n protected fieldElement: HTMLInputElement | null = null;\n private _isOpen = false;\n private _triggerEl: HTMLElement | null = null;\n private _dropdownEl: HTMLElement | null = null;\n private _slotEl: HTMLSlotElement | null = null;\n private _slotOptionData: Array<{ value: string; label: string }> = [];\n private _selectedListEl: HTMLElement | null = null;\n\n @prop({ type: Boolean, observe: false, reflect: false })\n accessor _expanded: boolean = false;\n\n @prop({ type: Array })\n accessor options: SelectOptions | undefined;\n\n @prop({ type: String })\n accessor position: SelectPosition | undefined;\n\n @prop({ type: String })\n accessor placeholder: string | undefined;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor expandable: boolean = false;\n\n // Override base class value prop to support both string and array (multi-select).\n // Uses field decorator (not accessor) because TypeScript TS2611 disallows overriding\n // a parent class data property (declare value?) with an accessor in a subclass.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override value: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n // Override base class defaultValue so arrays are JSON-serialized to the attribute,\n // matching the value prop's parser/formatter. Without this override, setting\n // defaultValue = ['a', 'b'] would be serialized as String(['a','b']) = \"a,b\",\n // and reset() would restore a single string \"a,b\" instead of the array.\n @prop({\n type: String,\n parser: (v) => {\n if (v === null || v === undefined) return undefined;\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n },\n formatter: (v) => {\n if (v === null || v === undefined) return '';\n if (Array.isArray(v)) return JSON.stringify(v);\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return String(v);\n },\n })\n override defaultValue: SelectOptionValue | SelectMultiValue | undefined = undefined;\n\n protected static styles = [variables, sizeCSS, fieldLabelCSS, actionButtonCSS, style];\n\n protected writeValue(_value: SelectOptionValue | SelectMultiValue): void {\n // Reactive re-render via this.value prop change handles the display update\n }\n\n protected getValue(): SelectOptionValue | SelectMultiValue {\n if (this.multiple) return this._getMultiValues();\n\n return this.value || '';\n }\n\n private _getMultiValues(): SelectMultiValue {\n if (Array.isArray(this.value)) return this.value;\n if (this.value != null && this.value !== '') return [this.value];\n\n return [];\n }\n\n protected onDisabledChanged(_newValue: boolean): void {\n // disabled is a reactive prop - render() already picks it up automatically\n }\n\n protected onUpdated(changedProps: Map<string, unknown>): void {\n super.onUpdated(changedProps);\n if (!this.multiple || this.expandable) {\n if (this._expanded) this._expanded = false;\n return;\n }\n const list = this._selectedListEl;\n if (!list) return;\n const overflowing = list.scrollWidth > list.clientWidth + 1;\n if (overflowing !== this._expanded) this._expanded = overflowing;\n }\n\n private _findLabel(value: SelectOptionValue): string {\n const strVal = String(value);\n if (Array.isArray(this.options)) {\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n if (String(opt.value) === strVal) return opt.label;\n } else {\n if (String(opt) === strVal) return strVal;\n }\n }\n }\n\n for (const opt of this._slotOptionData) {\n if (opt.value === strVal) return opt.label;\n }\n\n return strVal;\n }\n\n private _onSlotChange(): void {\n if (!this._slotEl) return;\n const data: Array<{ value: string; label: string }> = [];\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n data.push({\n value: optEl.value ?? el.getAttribute('value') ?? '',\n label: optEl.label || el.textContent?.trim() || '',\n });\n }\n this._slotOptionData = data;\n this.update();\n }\n\n private _toggleDropdown(): void {\n if (this._isOpen) {\n this._closeDropdown();\n } else {\n this._openDropdown();\n }\n }\n\n private _openDropdown(): void {\n this._isOpen = true;\n this._syncOpenState();\n }\n\n private _closeDropdown(): void {\n this._isOpen = false;\n this._syncOpenState();\n }\n\n private _syncOpenState(): void {\n this._triggerEl?.classList.toggle('open', this._isOpen);\n this._dropdownEl?.classList.toggle('open', this._isOpen);\n }\n\n private readonly _handleOutsideClick = (e: Event): void => {\n if (!e.composedPath().includes(this)) {\n this._closeDropdown();\n }\n };\n\n private readonly _handleOptionSelect = (e: Event): void => {\n const { value, label } = (e as CustomEvent<{ value: string; label: string }>).detail;\n if (!this._slotOptionData.find((o) => o.value === value)) {\n this._slotOptionData = [\n ...this._slotOptionData.filter((o) => o.value !== value),\n { value, label },\n ];\n }\n if (this.multiple) {\n const current = this._getMultiValues();\n const idx = current.findIndex((v) => String(v) === value);\n const next: SelectMultiValue =\n idx >= 0 ? current.filter((_, i) => i !== idx) : [...current, value];\n\n this.setValue(next, { silent: false, action: 'change' });\n } else {\n this.setValue(value, { silent: false, action: 'change' });\n this._closeDropdown();\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n this.addEventListener('selectoption', this._handleOptionSelect);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n this.removeEventListener('selectoption', this._handleOptionSelect);\n }\n\n private _syncSlotOptionsSelected(): void {\n if (!this._slotEl) return;\n const multiValues = this._getMultiValues();\n for (const el of this._slotEl.assignedElements({ flatten: true })) {\n if (el.tagName.toLowerCase() !== 'ae-select-option') continue;\n const optEl = el as SelectOptionElement;\n const optVal = optEl.value ?? el.getAttribute('value') ?? '';\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === optVal)\n : this.value != null && this.value !== '' && String(this.value) === optVal;\n // undefined triggers removeAttribute via reactive setter\n // (null would work too but undefined is type-safe for boolean | undefined)\n optEl.selected = isSelected ? true : undefined;\n }\n }\n\n render() {\n const position = this.position || 'bottom';\n const multiValues = this.multiple ? this._getMultiValues() : [];\n const hasMultiSelection = this.multiple && multiValues.length > 0;\n const selectedLabel =\n !this.multiple && this.value != null && this.value !== ''\n ? this._findLabel(this.value as SelectOptionValue)\n : '';\n const isDisabled = Boolean(this.disabled);\n this._selectedListEl = null;\n\n this._syncSlotOptionsSelected();\n\n return html(({ div, span, slot }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div(\n {\n id,\n 'aria-labelledby': this.label ? `${id}-label` : undefined,\n className: 'container field-body',\n },\n () => {\n this._triggerEl = div(\n {\n className: `trigger${this._isOpen ? ' open' : ''}${isDisabled ? ' disabled' : ''}`,\n '@click': () => {\n if (isDisabled) return;\n\n this._toggleDropdown();\n },\n },\n () => {\n if (this.multiple) {\n if (hasMultiSelection) {\n this._selectedListEl = div(\n {\n className: `selected-list${!this.expandable ? ' selected-list--clipped' : ''}`,\n },\n () => {\n for (const v of multiValues) {\n const lbl = this._findLabel(v);\n tags.aeTag({\n key: `sel-${v}`,\n color: 'default',\n variant: 'faint',\n dismissible: true,\n disabled: isDisabled,\n textContent: lbl,\n '@dismiss': (e: Event) => {\n e.stopPropagation();\n if (isDisabled) return;\n\n const next = multiValues.filter((item) => String(item) !== String(v));\n this.setValue(next, { silent: false, action: 'change' });\n },\n });\n }\n },\n );\n if (!this.expandable && this._expanded) {\n span({ className: 'overflow-indicator', textContent: '\u2026' });\n }\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n } else {\n if (selectedLabel) {\n span({ className: 'value', textContent: selectedLabel });\n } else {\n span({ className: 'value placeholder', textContent: this.placeholder || '' });\n }\n }\n span({ className: 'arrow', textContent: '\u25BE' });\n },\n );\n\n this._dropdownEl = div(\n {\n className: `dropdown position-${position}${this._isOpen ? ' open' : ''}`,\n },\n () => {\n this._renderProgrammaticOptions();\n this._slotEl = slot({\n '@slotchange': () => this._onSlotChange(),\n });\n },\n );\n\n this.renderActionButtons();\n },\n );\n this.renderHelperText();\n this.renderError();\n\n // Visually-hidden input so native form constraint validation works for `required`.\n // type=\"text\" (not \"hidden\") is required - type=\"hidden\" is exempt from constraint validation.\n const currentValue =\n this.value != null &&\n this.value !== '' &&\n !(Array.isArray(this.value) && this.value.length === 0)\n ? String(this.value)\n : '';\n this.fieldElement = tags.input({\n key: 'validation-input',\n type: 'text',\n 'aria-hidden': 'true',\n tabIndex: -1,\n required: Boolean(this.required),\n value: currentValue,\n style: {\n position: 'absolute',\n width: '0',\n height: '0',\n opacity: '0',\n margin: '0',\n padding: '0',\n border: '0',\n pointerEvents: 'none',\n overflow: 'hidden',\n },\n });\n });\n }\n\n private _renderProgrammaticOptions(): void {\n if (!Array.isArray(this.options)) return;\n\n const { aeSelectOption } = tags;\n const multiValues = this.multiple ? this._getMultiValues() : [];\n for (const opt of this.options) {\n if (this._isSelectOption(opt)) {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt.value))\n : this.value != null && String(opt.value) === String(this.value);\n aeSelectOption({\n key: `opt-${opt.value}`,\n value: String(opt.value),\n label: opt.label,\n textContent: opt.label,\n selected: isSelected ? true : undefined,\n });\n } else {\n const isSelected = this.multiple\n ? multiValues.some((v) => String(v) === String(opt))\n : this.value != null && String(opt) === String(this.value);\n aeSelectOption({\n key: `opt-${opt}`,\n value: String(opt),\n textContent: String(opt),\n selected: isSelected ? true : undefined,\n });\n }\n }\n }\n\n private _isSelectOption(option: unknown): option is SelectOption {\n return (\n option !== null &&\n typeof option === 'object' &&\n typeof (option as SelectOption).label === 'string' &&\n (typeof (option as SelectOption).value === 'string' ||\n typeof (option as SelectOption).value === 'number')\n );\n }\n}\n\nSelect.define('select');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-select': Select;\n }\n}\n\nexport default Select;\nexport type SelectProps = InferProps<typeof Select>;\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 tagStyle from '../styles/components/tag.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { TagColor, TagSize, TagVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Tag Component\n *\n * An inline label component with optional dismiss button.\n * Supports the same color, variant, and size options as Button.\n *\n * @example\n * ```html\n * <ae-tag color=\"primary\" variant=\"faint\">Label</ae-tag>\n * <ae-tag color=\"success\" variant=\"outlined\" dismissible>Removable</ae-tag>\n * <ae-tag color=\"danger\" size=\"sm\">\n * <ae-icon slot=\"start\" name=\"warning\"></ae-icon>\n * Error\n * </ae-tag>\n * ```\n */\nclass Tag extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, tagStyle];\n\n @prop({ type: String })\n accessor color: TagColor | undefined;\n\n @prop({ type: String })\n accessor variant: TagVariant | undefined;\n\n @prop({ type: String })\n accessor size: TagSize | undefined;\n\n @prop({ type: Boolean })\n accessor dismissible: boolean = false;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor pill: boolean = false;\n\n protected render() {\n return html(({ span, button, slot }) => {\n span({ part: 'tag', className: 'tag' }, () => {\n slot({ name: 'start' });\n span({ className: 'tag-content' }, () => {\n slot();\n });\n slot({ name: 'end' });\n button(\n {\n type: 'button',\n className: 'tag-dismiss',\n 'aria-label': 'dismiss',\n '@click': (e: Event) => {\n e.stopPropagation();\n if (this.disabled) return;\n this.emit('dismiss');\n },\n },\n () => {\n span({ textContent: '\\u00d7' });\n },\n );\n });\n });\n }\n}\n\nTag.define('tag');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tag': Tag;\n }\n}\n\nexport default Tag;\nexport type TagProps = InferProps<typeof Tag>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html } from 'aeico';\nimport style from '../styles/components/select-option.css';\nimport variables from '../styles/variables.css';\nimport { prop } from 'aeico';\n\nclass SelectOption extends AeicoComponent {\n @prop({ type: String })\n accessor value: string | undefined;\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor selected: boolean | undefined = false;\n\n protected static styles = [variables, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('click', this._handleClick);\n }\n\n private _handleClick = (e: Event): void => {\n if (this.disabled) {\n e.stopPropagation();\n\n return;\n }\n\n const displayLabel = this.label || this.textContent?.trim() || '';\n this.emit('selectoption', { detail: { value: this.value ?? '', label: displayLabel } });\n };\n\n render() {\n return html(({ div, slot }) => {\n div({ className: 'option-item' }, () => {\n slot();\n });\n });\n }\n}\n\nSelectOption.define('select-option');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-select-option': SelectOption;\n }\n}\n\nexport default SelectOption;\nexport type SelectOptionProps = InferProps<typeof SelectOption>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type { NormalizedOption, SliderMarks, SliderOption, SliderOptions } from './defines';\nimport style from '../styles/components/slider.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport { prop } from 'aeico';\n\nclass Slider extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n private _valueLabel: HTMLSpanElement | null = null;\n private _numberInput: HTMLInputElement | null = null;\n\n private _boundOnRangeInput: () => void;\n private _boundOnNumberInput: () => void;\n\n @prop({ type: Array })\n accessor options: SliderOptions = [];\n\n @prop({ type: Boolean })\n accessor percentage = false;\n\n @prop({ type: Number })\n accessor min = 0;\n\n @prop({ type: Number })\n accessor max = 100;\n\n @prop({ type: Number })\n accessor step = 1;\n\n @prop({ type: Boolean })\n accessor editable = false;\n\n @prop({ type: Boolean })\n accessor tracked = false;\n\n @prop({\n type: Array,\n parser: (value: string | null) => {\n if (value === null) return undefined;\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n try {\n return JSON.parse(value);\n } catch {\n return true;\n }\n },\n })\n accessor marks: SliderMarks | undefined;\n\n protected static styles = [variables, sizeCSS, colorCSS, fieldLabelCSS, actionButtonCSS, style];\n\n constructor() {\n super();\n this._boundOnRangeInput = this._onRangeInput.bind(this);\n this._boundOnNumberInput = this._onNumberInput.bind(this);\n }\n\n private _normalizeOptions(): NormalizedOption[] | null {\n if (!Array.isArray(this.options) || this.options.length === 0) return null;\n\n const opts = this.options.map((opt) =>\n this._isSliderOption(opt)\n ? { label: opt.label, value: String(opt.value) }\n : { label: String(opt), value: String(opt) },\n );\n\n // Sort by numeric value if all values are numeric; otherwise keep original order\n const allNumeric = opts.every((o) => o.value !== '' && !isNaN(Number(o.value)));\n\n if (allNumeric) {\n return [...opts]\n .sort((a, b) => Number(a.value) - Number(b.value))\n .map((o) => ({ ...o, rangeValue: Number(o.value) }));\n } else {\n return opts.map((o, i) => ({ ...o, rangeValue: i }));\n }\n }\n\n private _getRangeAttrs(normalized: NormalizedOption[] | null): {\n min: string;\n max: string;\n step: string;\n inOptionsMode: boolean;\n } {\n if (normalized && normalized.length >= 1) {\n const vals = normalized.map((o) => o.rangeValue);\n const min = Math.min(...vals);\n const max = Math.max(...vals);\n\n // Compute step from minimum gap between adjacent sorted values\n const sorted = [...vals].sort((a, b) => a - b);\n let minGap = Infinity;\n for (let i = 1; i < sorted.length; i++) {\n const d = sorted[i] - sorted[i - 1];\n if (d > 0 && d < minGap) minGap = d;\n }\n\n return {\n min: String(min),\n max: String(max),\n step: minGap === Infinity ? '1' : String(minGap),\n inOptionsMode: true,\n };\n }\n\n return {\n min: String(this.min),\n max: String(this.max),\n step: String(this.step),\n inOptionsMode: false,\n };\n }\n\n private _toRangeValue(value: string | undefined, normalized: NormalizedOption[] | null): string {\n if (value == null || value === '') return '';\n if (normalized) {\n const found = normalized.find((o) => o.value === value);\n\n return found !== undefined ? String(found.rangeValue) : '';\n }\n\n return value;\n }\n\n private _fromRangeValue(rv: string, normalized: NormalizedOption[] | null): string {\n if (normalized) {\n const n = Number(rv);\n\n return normalized.find((o) => o.rangeValue === n)?.value ?? normalized[0]?.value ?? rv;\n }\n return rv;\n }\n\n private _displayLabel(value: string | undefined, normalized: NormalizedOption[] | null): string {\n if (value == null || value === '') return '';\n const label = normalized ? (normalized.find((o) => o.value === value)?.label ?? value) : value;\n\n return this.percentage ? `${label}%` : label;\n }\n\n private _maxValueLabelWidth(\n normalized: NormalizedOption[] | null,\n attrs: { min: string; max: string },\n ): string {\n const candidates = normalized\n ? normalized.map((o) => this._displayLabel(o.value, normalized))\n : [this._displayLabel(attrs.min, null), this._displayLabel(attrs.max, null)];\n const maxLen = Math.max(...candidates.map((l) => l.length), 1);\n\n return `${maxLen}ch`;\n }\n\n private _updateTrackFill(): void {\n if (!this.tracked || !this.fieldElement) return;\n const min = Number(this.fieldElement.min);\n const max = Number(this.fieldElement.max);\n const val = Number(this.fieldElement.value);\n const range = max - min || 1;\n const pct = Math.max(0, Math.min(100, ((val - min) / range) * 100));\n this.style.setProperty('--fill-pct', `${pct}%`);\n }\n\n private _getMarksData(\n normalized: NormalizedOption[] | null,\n attrs: { min: string; max: string; inOptionsMode: boolean },\n ): Array<{ value: string; label: string; pct: number }> {\n const minVal = Number(attrs.min);\n const maxVal = Number(attrs.max);\n const range = maxVal - minVal || 1;\n\n const marks = this.marks;\n\n // Custom marks array - purely visual, no snapping effect\n if (Array.isArray(marks)) {\n const result: Array<{ value: string; label: string; pct: number }> = [];\n for (const m of marks) {\n const isObj = m !== null && typeof m === 'object';\n const numVal = isObj ? (m as { value: number }).value : m;\n if (numVal < minVal || numVal > maxVal) continue;\n const rawLabel = isObj ? (m.label ?? String(numVal)) : String(numVal);\n result.push({\n value: String(numVal),\n label: this.percentage ? `${rawLabel}%` : rawLabel,\n pct: ((numVal - minVal) / range) * 100,\n });\n }\n\n return result;\n }\n\n // marks === true - auto-generate from options or free-mode endpoints\n if (normalized) {\n return normalized.map((o) => ({\n value: o.value,\n label: this.percentage ? `${o.label}%` : o.label,\n pct: ((o.rangeValue - minVal) / range) * 100,\n }));\n }\n\n // Free mode - show min and max endpoints only\n return [\n { value: attrs.min, label: this.percentage ? `${minVal}%` : String(minVal), pct: 0 },\n { value: attrs.max, label: this.percentage ? `${maxVal}%` : String(maxVal), pct: 100 },\n ];\n }\n\n protected writeValue(value: string): void {\n const normalized = this._normalizeOptions();\n const rv = this._toRangeValue(value, normalized);\n\n if (this.fieldElement && rv !== '' && this.fieldElement.value !== rv) {\n this.fieldElement.value = rv;\n }\n\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(value, normalized);\n }\n\n // Sync number input only in free mode (options mode disables it)\n if (this._numberInput && !normalized && this._numberInput.value !== rv) {\n this._numberInput.value = rv;\n }\n\n this._updateTrackFill();\n }\n\n protected getValue(): string {\n if (!this.fieldElement) return '';\n\n return this._fromRangeValue(this.fieldElement.value, this._normalizeOptions());\n }\n\n render() {\n const normalized = this._normalizeOptions();\n const attrs = this._getRangeAttrs(normalized);\n\n return html(({ div, input, span }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'range-container field-body' }, () => {\n // Wrap range + optional marks in a column so marks don't push siblings\n div({ key: 'range-wrapper', className: 'range-wrapper' }, () => {\n this.fieldElement = input({\n key: 'range',\n id,\n type: 'range',\n min: attrs.min,\n max: attrs.max,\n step: attrs.step,\n '@input': this._boundOnRangeInput,\n '@change': this.boundOnChange,\n });\n\n if (this.marks) {\n const marksData = this._getMarksData(normalized, attrs);\n div({ key: 'marks', className: 'marks-container' }, () => {\n for (const m of marksData) {\n tags.span(\n {\n key: `mark-${m.value}`,\n className: 'mark',\n style: { left: `${m.pct}%` },\n },\n () => {\n tags.span({ className: 'mark-label', textContent: m.label });\n },\n );\n }\n });\n }\n });\n\n this._valueLabel = span({\n key: 'label',\n className: 'value-label',\n style: { minWidth: this._maxValueLabelWidth(normalized, attrs) },\n textContent: this._displayLabel(this.value, normalized),\n });\n\n // Action buttons first so the number input can be toggled without disrupting button reuse\n this.renderActionButtons();\n\n if (this.editable) {\n this._numberInput = input({\n key: 'number',\n type: 'number',\n className: 'value-input',\n min: attrs.min,\n max: attrs.max,\n step: attrs.step,\n // Disabled in options mode: valid values are discrete, free text makes no sense\n disabled: attrs.inOptionsMode,\n '@input': this._boundOnNumberInput,\n });\n } else {\n this._numberInput = null;\n }\n });\n\n if (this.value != null) this.writeValue(this.value);\n this.renderHelperText();\n this.renderError();\n });\n }\n\n private _onRangeInput(): void {\n if (!this.fieldElement) return;\n\n const normalized = this._normalizeOptions();\n const actualValue = this._fromRangeValue(this.fieldElement.value, normalized);\n\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(actualValue, normalized);\n }\n // Keep number input in sync during drag\n if (this._numberInput && !normalized) {\n this._numberInput.value = this.fieldElement.value;\n }\n\n this._updateTrackFill();\n }\n\n private _onNumberInput(): void {\n if (!this._numberInput || !this.fieldElement) return;\n const v = this._numberInput.value;\n\n if (this.fieldElement.value === v) return;\n\n this.fieldElement.value = v;\n if (this._valueLabel) {\n this._valueLabel.textContent = this._displayLabel(v, null);\n }\n }\n\n public clear(options?: { silent?: boolean }): void {\n const normalized = this._normalizeOptions();\n const attrs = this._getRangeAttrs(normalized);\n // Reset to the option whose rangeValue === min, or to attrs.min in free mode\n const clearTo = normalized\n ? (normalized.find((o) => String(o.rangeValue) === attrs.min)?.value ??\n normalized[0]?.value ??\n attrs.min)\n : attrs.min;\n this.setValue(clearTo, { ...options, action: 'clear' });\n }\n\n private _isSliderOption(opt: unknown): opt is SliderOption {\n return opt !== null && typeof opt === 'object' && 'label' in opt && 'value' in opt;\n }\n}\n\nSlider.define('slider');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-slider': Slider;\n }\n}\n\nexport default Slider;\nexport type SliderProps = InferProps<typeof Slider>;\n", "import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport styles from '../styles/components/checkbox.css';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'checkbox-container field-body', variant: this.variant }, () => {\n div({ className: 'checkbox-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nCheckbox.define('checkbox');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-checkbox': Checkbox;\n }\n}\n\nexport default Checkbox;\nexport type CheckboxProps = InferProps<typeof Checkbox>;\n", "import AeicoField from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html, tags } from 'aeico';\nimport type { ButtonColor, ButtonVariant, ButtonSize } from '../button';\nimport type { RadioGroupMode, RadioGroupOption, RadioGroupOptions } from './defines';\nimport Radio from './radio';\nimport style from '../styles/components/radio-group.css';\nimport variables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\n\nclass RadioGroup extends AeicoField {\n protected fieldElement: HTMLInputElement | null = null;\n\n private _slotEl: HTMLSlotElement | null = null;\n private _slotOptions: Radio[] = [];\n\n private static _instanceCount = 0;\n private readonly _groupName: string;\n\n static props: Props = {\n options: { type: Array },\n mode: { type: String },\n color: { type: String },\n variant: { type: String },\n size: { type: String },\n allowEmpty: { type: Boolean },\n actionButtonStyle: { type: String },\n };\n\n declare options?: RadioGroupOptions;\n declare mode?: RadioGroupMode;\n declare color?: ButtonColor;\n declare variant?: ButtonVariant;\n declare size?: ButtonSize;\n declare allowEmpty?: boolean;\n\n protected static styles = [variables, sizeCSS, colorCSS, fieldLabelCSS, actionButtonCSS, style];\n\n constructor() {\n super();\n this._groupName = `rg-${++RadioGroup._instanceCount}`;\n }\n\n private _optLabel(opt: RadioGroupOption): string {\n if (opt !== null && typeof opt === 'object') {\n return String(opt.label);\n }\n return String(opt);\n }\n\n private _optValue(opt: RadioGroupOption): string {\n if (opt !== null && typeof opt === 'object') return String(opt.value);\n return String(opt);\n }\n\n private _allOptions(): Array<{ label: string; value: string; disabled?: boolean }> {\n const from_props = (Array.isArray(this.options) ? this.options : []).map((o) => ({\n label: this._optLabel(o),\n value: this._optValue(o),\n }));\n\n const from_slot = this._slotOptions.map((el) => ({\n label: el.textContent?.trim() || el.value,\n value: el.value,\n disabled: el.disabled,\n }));\n\n return [...from_props, ...from_slot];\n }\n\n private _onSlotChange(): void {\n if (!this._slotEl) return;\n\n this._slotOptions = (this._slotEl.assignedElements({ flatten: true }) as HTMLElement[]).filter(\n (el) => el.tagName.toLowerCase() === 'ae-radio',\n ) as Radio[];\n this.update();\n }\n\n // Single handler for radio inputs - handles both select and deselect.\n // Only uses `click` (not `change`) because `change` fires before `click`;\n // if we set value in `change`, the `click` handler would see the updated\n // value and immediately deselect.\n private _boundOnRadioClick = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const current = this.value ?? '';\n if (input.value === current) {\n if (this.allowEmpty) {\n input.checked = false;\n this.setValue('', { silent: false, action: 'change' });\n }\n // !allowEmpty: do nothing\n } else {\n this.setValue(input.value, { silent: false, action: 'change' });\n }\n };\n\n private _boundOnButtonClick = (e: Event) => {\n const btn = e.currentTarget as HTMLElement;\n const val = btn.dataset.value ?? '';\n const current = this.value ?? '';\n // Toggle off if clicking already-selected option\n if (val === current) {\n if (this.allowEmpty) {\n this.setValue('', { silent: false, action: 'change' });\n }\n // !allowEmpty: already selected, do nothing\n } else {\n this.setValue(val, { silent: false, action: 'change' });\n }\n };\n\n protected getValue(): string {\n return this.value ?? '';\n }\n\n protected writeValue(_value: string): void {\n // All visual state is driven by builder diff on next render;\n // for native radio inputs we need to sync checked immediately.\n // The render() reads this.value, so update handles the rest.\n }\n\n protected onReset(): void {\n this.setValue(this.defaultValue ?? '', { silent: false, action: 'reset' });\n }\n\n protected onClear(): void {\n this.setValue('', { silent: false, action: 'clear' });\n }\n\n render() {\n const mode = (this.mode as RadioGroupMode) || 'default';\n const opts = this._allOptions();\n const current = this.value ?? '';\n\n return html(({ div, slot }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ id, role: 'group', className: 'rg-container field-body' }, () => {\n if (mode === 'default') {\n this._renderRadio(opts, current);\n this.renderActionButtons();\n } else {\n this._renderButtons(opts, current, mode);\n }\n });\n\n if (mode !== 'default') {\n if (this.allowEmpty) this.renderClearButton();\n this.renderResetButton();\n }\n\n // Hidden slot - captures <option> light DOM children\n this._slotEl = slot({\n style: { display: 'none' },\n '@slotchange': () => this._onSlotChange(),\n });\n\n this.renderHelperText();\n this.renderError();\n });\n }\n\n private _renderRadio(\n opts: Array<{ label: string; value: string; disabled?: boolean }>,\n current: string,\n ): void {\n const { label, input, span } = tags;\n for (const opt of opts) {\n const isChecked = opt.value === current;\n\n label({ key: `opt-${opt.value}`, className: 'rg-radio-option' }, () => {\n const el = input({\n type: 'radio',\n className: 'rg-radio-input',\n name: this._groupName,\n value: opt.value,\n disabled: Boolean(this.disabled) || Boolean(opt.disabled),\n required: Boolean(this.required),\n '@click': this._boundOnRadioClick,\n });\n // Sync DOM property directly - setAttribute('checked') doesn't work\n // after user interaction; only the .checked property controls state.\n el.checked = isChecked;\n // Keep fieldElement pointing to first radio for base-class compat\n if (!this.fieldElement) this.fieldElement = el;\n span({ className: 'rg-radio-label', textContent: opt.label });\n });\n }\n }\n\n private _renderButtons(\n opts: Array<{ label: string; value: string; disabled?: boolean }>,\n current: string,\n mode: RadioGroupMode,\n ): void {\n const { button } = tags;\n const count = opts.length;\n for (let i = 0; i < count; i++) {\n const opt = opts[i];\n const isSelected = opt.value === current;\n\n // Position class for button-group border-radius (CSS handles all styling)\n let posClass = '';\n if (mode === 'button-group') {\n if (count === 1) posClass = ' only';\n else if (i === 0) posClass = ' first';\n else if (i === count - 1) posClass = ' last';\n else posClass = ' inner';\n }\n\n button({\n key: `opt-${opt.value}`,\n className: `rg-btn${isSelected ? ' selected' : ''}${posClass}`,\n textContent: opt.label,\n disabled: Boolean(this.disabled) || Boolean(opt.disabled),\n 'data-value': opt.value,\n '@click': this._boundOnButtonClick,\n });\n }\n }\n}\n\nRadioGroup.define('radio-group');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-radio-group': RadioGroup;\n }\n}\n\nexport default RadioGroup;\nexport type RadioGroupProps = InferProps<typeof RadioGroup>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps, Props } from 'aeico';\n\n/**\n * AeRadio - structured option element for ae-radio-group.\n *\n * Replaces the native `<option>` approach with a custom element that is\n * fully extensible. Current surface:\n * - `value` - option value submitted / matched against radio-group value\n * - `disabled` - disables this individual option (independent of the group)\n * - Light DOM - label content; can be plain text or rich HTML (icons, etc.)\n *\n * This element has **no shadow DOM** - it is a pure data / content carrier.\n * ae-radio-group reads its properties and light-DOM content, then renders\n * the appropriate UI (radio input, button, segmented pill, \u2026).\n *\n * @example Plain text options\n * ```html\n * <ae-radio-group mode=\"button\" color=\"primary\" value=\"a\">\n * <ae-radio value=\"a\">Option A</ae-radio>\n * <ae-radio value=\"b\">Option B</ae-radio>\n * <ae-radio value=\"c\" disabled>Option C</ae-radio>\n * </ae-radio-group>\n * ```\n *\n * @example Rich content options (icons)\n * ```html\n * <ae-radio-group mode=\"button\" color=\"primary\" value=\"list\">\n * <ae-radio value=\"list\"><ae-icon name=\"list\"></ae-icon> List</ae-radio>\n * <ae-radio value=\"grid\"><ae-icon name=\"grid\"></ae-icon> Grid</ae-radio>\n * </ae-radio-group>\n * ```\n */\nclass Radio extends AeicoComponent {\n /** No shadow DOM - this element is a transparent data/content carrier. */\n static override useShadowDOM = false;\n\n static override props: Props = {\n value: { type: String },\n disabled: { type: Boolean },\n };\n\n declare value: string;\n declare disabled?: boolean;\n}\n\nRadio.define('radio');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-radio': Radio;\n }\n}\n\nexport default Radio;\nexport type RadioProps = InferProps<typeof Radio>;\n", "import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport type { SwitchIconPlacement } from './defines';\nimport '../icon/icon';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport fieldLabelCSS from '../styles/components/field-label.css';\nimport actionButtonCSS from '../styles/components/action-button.css';\nimport styles from '../styles/components/switch.css';\n\nclass Switch extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n @prop({ type: Boolean })\n accessor checked: boolean | undefined;\n\n @prop({ type: Boolean })\n accessor defaultChecked: boolean | undefined;\n\n @prop({ type: String })\n accessor icon: string | undefined;\n\n @prop({ type: String })\n accessor iconChecked: string | undefined;\n\n @prop({ type: String })\n accessor iconPlacement: SwitchIconPlacement | undefined;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input, span, aeIcon }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'switch-container field-body' }, () => {\n div({ className: 'switch-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n const hasIcon = this.icon || this.iconChecked;\n const placement = this.iconPlacement ?? 'knob';\n span({ className: 'toggle-slider' }, () => {\n if (!hasIcon) return;\n if (placement === 'track') {\n span({ className: 'track-icon track-icon-left' }, () => {\n aeIcon({ name: this.iconChecked ?? this.icon! });\n });\n span({ className: 'track-icon track-icon-right' }, () => {\n aeIcon({ name: this.icon ?? this.iconChecked! });\n });\n } else {\n if (this.icon && this.iconChecked) {\n span({ className: 'toggle-knob-icon icon-unchecked' }, () => {\n aeIcon({ name: this.icon! });\n });\n span({ className: 'toggle-knob-icon icon-checked' }, () => {\n aeIcon({ name: this.iconChecked! });\n });\n } else {\n span({ className: 'toggle-knob-icon' }, () => {\n aeIcon({ name: (this.icon ?? this.iconChecked)! });\n });\n }\n }\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nSwitch.define('switch');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-switch': Switch;\n }\n}\n\nexport default Switch;\nexport type SwitchProps = InferProps<typeof Switch>;\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 type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/breadcrumb.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type BreadcrumbItem from './breadcrumb-item';\n\n/**\n * Breadcrumb Component\n *\n * A navigation trail that shows the user's location in a hierarchy.\n * Automatically injects separators between items and marks the last item\n * as `aria-current=\"page\"`.\n *\n * The separator is configurable via:\n * - `separator` attribute (text, default `/`) - simple and concise\n * - `slot=\"separator\"` (any element, e.g. `ae-icon`) - takes priority over the attribute\n *\n * Supports `color` for theming item link colors. The separator intentionally\n * uses a fixed muted color and does NOT respond to the `color` prop.\n *\n * @example\n * ```html\n * <!-- Default separator \"/\" -->\n * <ae-breadcrumb>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item href=\"/docs\">Docs</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Getting Started</ae-breadcrumb-item>\n * </ae-breadcrumb>\n *\n * <!-- Custom text separator -->\n * <ae-breadcrumb separator=\">\">\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current</ae-breadcrumb-item>\n * </ae-breadcrumb>\n *\n * <!-- Icon separator (slot takes priority over separator attribute) -->\n * <ae-breadcrumb>\n * <ae-icon slot=\"separator\" name=\"chevron-right\" size=\"xs\"></ae-icon>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current</ae-breadcrumb-item>\n * </ae-breadcrumb>\n * ```\n */\nclass Breadcrumb extends AeicoComponent {\n protected static styles = [styleVariables, colorCSS, style];\n\n /** Text separator shown between items. Ignored when `slot=\"separator\"` is provided. */\n @prop({ type: String })\n accessor separator: string = '/';\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n private _itemsSlot: HTMLSlotElement | null = null;\n private _sepSlot: HTMLSlotElement | null = null;\n\n protected render() {\n return html(({ nav, ol, slot }) => {\n nav({ 'aria-label': 'breadcrumb', part: 'nav' }, () => {\n ol({ part: 'list', className: 'list' }, () => {\n this._itemsSlot = slot({\n '@slotchange': () => this._syncSeparators(),\n });\n });\n });\n this._sepSlot = slot({\n name: 'separator',\n className: 'sep-template',\n '@slotchange': () => this._syncSeparators(),\n });\n });\n }\n\n protected onUpdated() {\n this._syncSeparators();\n }\n\n private _getItems(): BreadcrumbItem[] {\n return (this._itemsSlot?.assignedElements() ?? []) as BreadcrumbItem[];\n }\n\n private _getSepElement(): Element | null {\n return this._sepSlot?.assignedElements()[0] ?? null;\n }\n\n private _syncSeparators = () => {\n const items = this._getItems();\n const sepEl = this._getSepElement();\n\n items.forEach((item, i) => {\n // Remove previously injected separators to avoid duplicates\n item.querySelectorAll('[data-ae-sep]').forEach((n) => n.remove());\n\n const isLast = i === items.length - 1;\n\n // Mark the last item as the current page for accessibility\n if (isLast) {\n item.setAttribute('aria-current', 'page');\n } else {\n item.removeAttribute('aria-current');\n }\n\n // First item gets no separator\n if (i === 0) return;\n\n const wrapper = document.createElement('span');\n wrapper.setAttribute('slot', 'separator');\n wrapper.setAttribute('data-ae-sep', '');\n wrapper.setAttribute('aria-hidden', 'true');\n\n if (sepEl) {\n // Clone the slotted separator element (e.g. ae-icon)\n wrapper.appendChild(sepEl.cloneNode(true));\n } else {\n // Fall back to text separator\n wrapper.textContent = this.separator;\n }\n\n item.prepend(wrapper);\n });\n };\n}\n\nBreadcrumb.define('breadcrumb');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-breadcrumb': Breadcrumb;\n }\n}\n\nexport default Breadcrumb;\nexport type BreadcrumbProps = InferProps<typeof Breadcrumb>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/breadcrumb-item.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\n\n/**\n * BreadcrumbItem Component\n *\n * A single item in the `ae-breadcrumb` navigation trail.\n * Renders as a link (`<a>`) when `href` is provided, otherwise as plain text.\n * The separator is injected by the parent `ae-breadcrumb`.\n *\n * @example\n * ```html\n * <ae-breadcrumb>\n * <ae-breadcrumb-item href=\"/\">Home</ae-breadcrumb-item>\n * <ae-breadcrumb-item href=\"/docs\">Docs</ae-breadcrumb-item>\n * <ae-breadcrumb-item>Current Page</ae-breadcrumb-item>\n * </ae-breadcrumb>\n * ```\n */\nclass BreadcrumbItem extends AeicoComponent {\n protected static styles = [styleVariables, style];\n\n @prop({ type: String })\n accessor href: string | undefined;\n\n protected render() {\n return html(({ li, span, slot, a }) => {\n li({ part: 'item', className: 'item' }, () => {\n span({ part: 'separator', className: 'sep', 'aria-hidden': 'true' }, () => {\n slot({ name: 'separator' });\n });\n span({ part: 'label', className: 'label' }, () => {\n if (this.href) {\n a({ href: this.href, part: 'link' }, () => {\n slot();\n });\n } else {\n slot();\n }\n });\n });\n });\n }\n}\n\nBreadcrumbItem.define('breadcrumb-item');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-breadcrumb-item': BreadcrumbItem;\n }\n}\n\nexport default BreadcrumbItem;\nexport type BreadcrumbItemProps = InferProps<typeof BreadcrumbItem>;\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", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport colorCSS from '../styles/color.css';\nimport copyButtonStyle from '../styles/components/copy-button.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\n// Ensure ae-icon and ae-tooltip are registered\nimport '../icon/icon';\nimport '../tooltip/tooltip';\nimport type Tooltip from '../tooltip/tooltip';\nimport type { TooltipPlacement } from '../tooltip/defines';\nimport type { CopyButtonColor, CopyButtonSize, CopyButtonVariant } from './defines';\n\nclass CopyButton extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, copyButtonStyle];\n\n @prop({ type: String })\n accessor text: string | undefined;\n\n @prop({ type: String })\n accessor color: CopyButtonColor | undefined;\n\n @prop({ type: String })\n accessor variant: CopyButtonVariant | undefined;\n\n @prop({ type: String })\n accessor size: CopyButtonSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @prop({ type: Number })\n accessor duration: number | undefined;\n\n @prop({ type: String })\n accessor tooltip: string = 'Copy';\n\n @prop({ type: String })\n accessor tooltipCopied: string = 'Copied!';\n\n @prop({ type: String })\n accessor tooltipPlacement: TooltipPlacement = 'top';\n\n private _slotElement: HTMLSlotElement | null = null;\n private _tooltipEl: Tooltip | null = null;\n private _resetTimer: ReturnType<typeof setTimeout> | null = null;\n\n private _getTextToCopy(): string {\n if (this.text != null) return this.text;\n\n const nodes = this._slotElement?.assignedNodes({ flatten: true }) ?? [];\n\n return nodes\n .reduce<string>((text, n) => {\n if (n.nodeType === Node.TEXT_NODE) return text + (n.textContent ?? '');\n\n return text;\n }, '')\n .trim();\n }\n\n private _handleClick = () => {\n if (this.disabled) return;\n\n const textToCopy = this._getTextToCopy();\n\n void navigator.clipboard.writeText(textToCopy).then(() => {\n this.setAttribute('copied', '');\n\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltipCopied;\n this._tooltipEl.open = true;\n }\n\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n }\n const duration = this.duration ?? 2000;\n this._resetTimer = setTimeout(() => {\n this.removeAttribute('copied');\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltip;\n this._tooltipEl.open = false;\n }\n this._resetTimer = null;\n }, duration);\n\n this.dispatchEvent(\n new CustomEvent('copy', {\n bubbles: true,\n composed: true,\n detail: { text: textToCopy },\n }),\n );\n });\n };\n\n protected onUnmounted() {\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n this._resetTimer = null;\n }\n }\n\n protected render() {\n return html(({ aeTooltip, button, span, slot, aeIcon }) => {\n this._tooltipEl = aeTooltip(\n {\n content: this.tooltip,\n placement: this.tooltipPlacement,\n disabled: this.disabled,\n },\n () => {\n button(\n {\n type: 'button',\n disabled: this.disabled,\n part: 'button',\n 'aria-label': this.tooltip,\n 'aria-disabled': this.disabled,\n '@click': this._handleClick,\n },\n () => {\n span({ className: 'icon-copy' }, () => {\n aeIcon({ name: 'copy', size: this.size });\n });\n span({ className: 'icon-check' }, () => {\n aeIcon({ name: 'check', size: this.size });\n });\n this._slotElement = slot();\n },\n );\n },\n );\n });\n }\n}\n\nCopyButton.define('copy-button');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-copy-button': CopyButton;\n }\n}\n\nexport default CopyButton;\nexport type CopyButtonProps = InferProps<typeof CopyButton>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport tooltipStyle from '../styles/components/tooltip.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, prop } from 'aeico';\nimport type { TooltipPlacement, TooltipTrigger } from './defines';\n\n/**\n * Tooltip Component\n *\n * A floating label that appears on hover or focus around its trigger content.\n * Wrap any element in `<ae-tooltip>` and provide content via the `content`\n * attribute (plain text) or the `tooltip` named slot (rich HTML).\n *\n * @example\n * ```html\n * <ae-tooltip content=\"Save file\">\n * <ae-button>Save</ae-button>\n * </ae-tooltip>\n *\n * <ae-tooltip placement=\"bottom-start\">\n * <span slot=\"tooltip\"><strong>Bold</strong> tip</span>\n * <ae-icon-button name=\"info\"></ae-icon-button>\n * </ae-tooltip>\n * ```\n */\nclass Tooltip extends AeicoComponent {\n protected static styles = [styleVariables, tooltipStyle];\n\n @prop({ type: String })\n accessor content: string | undefined;\n\n @prop({ type: String })\n accessor placement: TooltipPlacement = 'top';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor trigger: TooltipTrigger = 'hover';\n\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('mouseenter', this._handleMouseEnter);\n this.listen('mouseleave', this._handleMouseLeave);\n this.listen('focusin', this._handleFocusin);\n this.listen('focusout', this._handleFocusout);\n this.listen('click', this._handleClick);\n\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (!e.composedPath().includes(this)) this.open = false;\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 private _handleMouseEnter = () => {\n if (this.trigger !== 'hover') return;\n if (this.disabled) return;\n this.open = true;\n };\n\n private _handleMouseLeave = () => {\n if (this.trigger !== 'hover') return;\n this.open = false;\n };\n\n private _handleFocusin = () => {\n if (this.trigger !== 'hover') return;\n if (this.disabled) return;\n this.open = true;\n };\n\n private _handleFocusout = () => {\n if (this.trigger !== 'hover') return;\n this.open = false;\n };\n\n private _handleClick = () => {\n if (this.trigger !== 'click') return;\n if (this.disabled) return;\n this.open = !this.open;\n };\n\n private _updatePosition() {\n const panel = this.shadowRoot?.querySelector<HTMLElement>('.tooltip-panel');\n if (!panel) return;\n\n const host = this.getBoundingClientRect();\n const panelRect = panel.getBoundingClientRect();\n const gap = 6; // Match --ae-tooltip-gap: 6px\n const pw = panelRect.width;\n const ph = panelRect.height;\n\n let top: number;\n let left: number;\n\n switch (this.placement) {\n case 'top-start':\n top = host.top - ph - gap;\n left = host.left;\n break;\n case 'top-end':\n top = host.top - ph - gap;\n left = host.right - pw;\n break;\n case 'bottom':\n top = host.bottom + gap;\n left = host.left + host.width / 2 - pw / 2;\n break;\n case 'bottom-start':\n top = host.bottom + gap;\n left = host.left;\n break;\n case 'bottom-end':\n top = host.bottom + gap;\n left = host.right - pw;\n break;\n case 'left':\n top = host.top + host.height / 2 - ph / 2;\n left = host.left - pw - gap;\n break;\n case 'right':\n top = host.top + host.height / 2 - ph / 2;\n left = host.right + gap;\n break;\n default: // 'top'\n top = host.top - ph - gap;\n left = host.left + host.width / 2 - pw / 2;\n }\n\n panel.style.top = `${top}px`;\n panel.style.left = `${left}px`;\n }\n\n protected onUpdated(changedProps: Map<string, unknown>) {\n if (changedProps.has('open') && this.open) {\n this._updatePosition();\n }\n }\n\n protected render() {\n return html(({ div, span, slot }) => {\n slot();\n div(\n {\n className: `tooltip-panel placement-${this.placement ?? 'top'}`,\n role: 'tooltip',\n 'aria-hidden': String(!this.open),\n },\n () => {\n slot({ name: 'tooltip' }, () => {\n span({ textContent: this.content ?? '' });\n });\n },\n );\n });\n }\n}\n\nTooltip.define('tooltip');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tooltip': Tooltip;\n }\n}\n\nexport type TooltipProps = InferProps<typeof Tooltip>;\nexport default Tooltip;\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", "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, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport buttonGroupStyle from '../styles/components/button-group.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { ButtonColor, ButtonVariant, ButtonSize } from '../button';\nimport Button from '../button/button';\nimport DropdownButton from '../dropdown/dropdown-button';\n\n/**\n * ButtonGroup Component\n *\n * Groups multiple `ae-button` elements, propagating shared `variant`, `color`,\n * `size`, and `disabled` props to each child. Supports a `compact` mode that\n * joins buttons into a seamless connected strip (like Bootstrap's button group).\n *\n * @example\n * ```html\n * <!-- Loose group (gap between buttons) -->\n * <ae-button-group variant=\"outlined\" color=\"primary\">\n * <ae-button>One</ae-button>\n * <ae-button>Two</ae-button>\n * <ae-button>Three</ae-button>\n * </ae-button-group>\n *\n * <!-- Compact - joined strip -->\n * <ae-button-group compact color=\"primary\">\n * <ae-button>Left</ae-button>\n * <ae-button>Middle</ae-button>\n * <ae-button>Right</ae-button>\n * </ae-button-group>\n *\n * <!-- Full-width -->\n * <ae-button-group block color=\"danger\" variant=\"outlined\">\n * <ae-button>Delete</ae-button>\n * <ae-button>Archive</ae-button>\n * </ae-button-group>\n * ```\n */\nclass ButtonGroup extends AeicoComponent {\n static props: Props = {\n variant: { type: String },\n color: { type: String },\n size: { type: String },\n compact: { type: Boolean },\n block: { type: Boolean },\n disabled: { type: Boolean },\n };\n\n protected static styles = [styleVariables, buttonGroupStyle];\n\n declare variant?: ButtonVariant;\n declare color?: ButtonColor;\n declare size?: ButtonSize;\n declare compact?: boolean;\n declare block?: boolean;\n declare disabled?: boolean;\n\n private slotEl: HTMLSlotElement | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.variant === undefined) this.variant = 'filled';\n if (this.color === undefined) this.color = 'default';\n if (this.size === undefined) this.size = 'md';\n }\n\n protected render() {\n return html(({ slot }) => {\n this.slotEl = slot({\n '@slotchange': () => this._syncChildren(),\n });\n this._syncChildren();\n });\n }\n\n private _getButtons(): Array<Button | DropdownButton> {\n if (!this.slotEl) return [];\n\n return (\n this.slotEl.assignedElements({ flatten: true }) as Array<Button | DropdownButton>\n ).filter((el) => {\n const tag = el.tagName.toLowerCase();\n return tag === 'ae-button' || tag === 'ae-dropdown-button';\n });\n }\n\n private _syncChildren() {\n const buttons = this._getButtons();\n const isSmall = this.size === 'xs' || this.size === 'sm';\n const r = isSmall ? 'var(--ae-radius-xs)' : 'var(--ae-radius-sm)';\n\n buttons.forEach((btn: Button | DropdownButton, i) => {\n btn.variant = this.variant;\n btn.color = this.color;\n btn.size = this.size;\n\n if (this.disabled) {\n btn.disabled = true;\n } else {\n btn.disabled = false;\n }\n\n if (this.compact) {\n const isFirst = i === 0;\n const isLast = i === buttons.length - 1;\n\n btn.style.marginLeft = isFirst ? '' : '-1px';\n\n btn.style.setProperty('--_btn-r-tl', isFirst ? r : '0');\n btn.style.setProperty('--_btn-r-bl', isFirst ? r : '0');\n btn.style.setProperty('--_btn-r-tr', isLast ? r : '0');\n btn.style.setProperty('--_btn-r-br', isLast ? r : '0');\n } else {\n btn.style.marginLeft = '';\n this._clearRadius(btn);\n }\n });\n }\n\n private _clearRadius(btn: HTMLElement) {\n btn.style.removeProperty('--_btn-r-tl');\n btn.style.removeProperty('--_btn-r-tr');\n btn.style.removeProperty('--_btn-r-br');\n btn.style.removeProperty('--_btn-r-bl');\n }\n}\n\nButtonGroup.define('button-group');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-button-group': ButtonGroup;\n }\n}\n\nexport default ButtonGroup;\nexport type ButtonGroupProps = InferProps<typeof ButtonGroup>;\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 badgeStyle from '../styles/components/badge.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './defines';\nimport { prop } from 'aeico';\n\n/**\n * Badge Component\n *\n * A small inline label for status, category, or count indicators.\n * Supports color, variant, size, and an optional leading/trailing ae-icon slot.\n *\n * @example\n * ```html\n * <ae-badge color=\"primary\">New</ae-badge>\n * <ae-badge variant=\"outlined\" color=\"success\">Active</ae-badge>\n * <ae-badge variant=\"subtle\" color=\"danger\" size=\"sm\">\n * <ae-icon slot=\"start\" name=\"warning\"></ae-icon>\n * Error\n * </ae-badge>\n * ```\n */\nclass Badge extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, badgeStyle];\n\n @prop({ type: String })\n accessor color: BadgeColor = 'default';\n\n @prop({ type: String })\n accessor variant: BadgeVariant = 'filled';\n\n @prop({ type: String })\n accessor size: BadgeSize = 'md';\n\n @prop({ type: Boolean })\n accessor pill: boolean = false;\n\n protected render() {\n return html(({ span, slot }) => {\n span({ part: 'badge', className: 'badge' }, () => {\n slot({ name: 'start' });\n slot();\n slot({ name: 'end' });\n });\n });\n }\n}\n\nBadge.define('badge');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-badge': Badge;\n }\n}\n\nexport default Badge;\nexport type BadgeProps = InferProps<typeof Badge>;\n", "import type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport alertStyle from '../styles/components/alert.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { AlertColor, AlertSize, AlertVariant } from './defines';\n\n/**\n * Alert Component\n *\n * A customizable alert/notification component with multiple variants and sizes.\n * Supports dismissible alerts and icon display.\n *\n * @example\n * ```typescript\n * // Using the static create method\n * const alert = Alert.create({\n * variant: 'info',\n * dismissible: true\n * })\n * alert.textContent = 'This is an informational message'\n * document.body.appendChild(alert)\n * ```\n *\n * @example\n * ```html\n * <!-- Using as Web Component -->\n * <ae-alert variant=\"info\">Information message</ae-alert>\n * <ae-alert variant=\"success\" dismissible>Operation successful!</ae-alert>\n * <ae-alert variant=\"warning\" size=\"sm\">Small warning</ae-alert>\n * ```\n */\nclass Alert extends AeicoComponent {\n static props: Props = {\n color: { type: String },\n variant: { type: String },\n size: { type: String },\n dismissible: { type: Boolean },\n invisible: { type: Boolean },\n closeText: { type: String },\n };\n\n protected static useStyles = ['alert'];\n protected static styles = [styleVariables, colorCSS, alertStyle];\n\n declare color?: AlertColor;\n declare variant?: AlertVariant;\n declare size?: AlertSize;\n declare dismissible?: boolean;\n declare invisible?: boolean;\n declare closeText?: string;\n\n protected render() {\n return html(({ div, slot, button, span }) => {\n div(\n {\n className: 'alert',\n role: 'alert',\n part: 'alert',\n style: { display: this.invisible ? 'none' : '' },\n },\n () => {\n slot();\n\n if (this.dismissible) {\n button(\n {\n className: 'alert-close',\n '@click': () => this._handleClose(),\n title: this.closeText || 'Close alert',\n },\n () => {\n span({ 'aria-hidden': 'true', textContent: '\\u00d7' });\n },\n );\n }\n },\n );\n });\n }\n\n show() {\n if (this.invisible) {\n this.invisible = false;\n }\n }\n\n hide() {\n this.invisible = true;\n }\n\n private _handleClose = () => {\n this.emit('alert-close', { detail: { target: this } });\n this.remove();\n };\n}\n\nAlert.define('alert');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-alert': Alert;\n }\n}\n\nexport default Alert;\nexport type AlertProps = InferProps<typeof Alert>;\n", "import type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/dialog.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, tags } from 'aeico';\nimport '../icon/icon';\n\nclass Dialog extends AeicoComponent {\n static props: Props = {\n label: { type: String },\n width: { type: String },\n height: { type: String },\n modal: { type: Boolean },\n closable: { type: Boolean },\n header: { type: Boolean },\n closeOnOverlayClick: { type: Boolean },\n };\n\n declare label?: string;\n declare width?: string;\n declare height?: string;\n declare modal?: boolean;\n declare closable?: boolean;\n declare header?: boolean;\n declare closeOnOverlayClick?: boolean;\n\n protected static styles = [styleVariables, style];\n\n private _dialogEl: HTMLDialogElement | null = null;\n private _hasFooter = false;\n\n protected render() {\n return html(({ dialog, div, header, footer, span, button, slot }) => {\n this._dialogEl = dialog(\n {\n '@click': this._handleDialogClick,\n '@close': this._handleNativeClose,\n style: {\n width: this.width || '',\n height: this.height || '',\n },\n },\n () => {\n if (this.header !== false) {\n header({}, () => {\n slot({ name: 'header' }, () => {\n span({ className: 'label', textContent: this.label || '' });\n });\n if (this.closable !== false) {\n const { aeIcon } = tags;\n button(\n {\n className: 'close-btn',\n 'aria-label': 'close',\n '@click': () => this.close(),\n },\n () => {\n aeIcon({ name: 'close' });\n },\n );\n }\n });\n }\n\n div({ className: 'body' }, () => {\n slot();\n });\n\n footer(\n {\n style: { display: this._hasFooter ? '' : 'none' },\n },\n () => {\n slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });\n },\n );\n },\n );\n });\n }\n\n private _handleDialogClick = (e: Event) => {\n const mouseEvent = e as MouseEvent;\n const path = mouseEvent.composedPath();\n\n for (const el of path) {\n if (el instanceof Element && el.hasAttribute('data-close')) {\n this.close();\n return;\n }\n if (el === this._dialogEl) break;\n }\n\n if (this.modal !== false && this.closeOnOverlayClick !== false) {\n if (mouseEvent.target === this._dialogEl) {\n const rect = this._dialogEl!.getBoundingClientRect();\n const outside =\n mouseEvent.clientX < rect.left ||\n mouseEvent.clientX > rect.right ||\n mouseEvent.clientY < rect.top ||\n mouseEvent.clientY > rect.bottom;\n if (outside) {\n this.close();\n }\n }\n }\n };\n\n private _handleNativeClose = () => {\n this.emit('close', { detail: { target: this } });\n };\n\n private _handleFooterSlotChange = (e: Event) => {\n const slotEl = e.target as HTMLSlotElement;\n const hasContent = slotEl.assignedElements().length > 0;\n if (hasContent !== this._hasFooter) {\n this._hasFooter = hasContent;\n this.update();\n }\n };\n\n open() {\n if (!this._dialogEl) return;\n if (this.modal !== false) {\n this._dialogEl.showModal();\n } else {\n this._dialogEl.show();\n }\n this.emit('open', { detail: { target: this } });\n }\n\n close() {\n this._dialogEl?.close();\n }\n\n isOpen(): boolean {\n return this._dialogEl?.open ?? false;\n }\n}\n\nDialog.define('dialog');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dialog': Dialog;\n }\n}\n\nexport default Dialog;\nexport type DialogProps = InferProps<typeof Dialog>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport style from '../styles/components/drawer.css';\nimport AeicoComponent from '../aeico-component';\nimport { html, prop, tags } from 'aeico';\nimport type { DrawerPlacement } from './defines';\nimport '../icon/icon';\n\nclass Drawer extends AeicoComponent {\n protected static styles = [styleVariables, style];\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: String })\n accessor placement: DrawerPlacement | undefined;\n\n @prop({ type: String })\n accessor size: string | undefined;\n\n @prop({ type: Boolean })\n accessor modal: boolean = true;\n\n @prop({ type: Boolean })\n accessor closable: boolean = true;\n\n @prop({ type: Boolean })\n accessor header: boolean = true;\n\n @prop({ type: Boolean })\n accessor closeOnOverlayClick: boolean = true;\n\n private _panelEl: HTMLDivElement | null = null;\n private _hasFooter = false;\n\n protected render() {\n const placement = this.placement || 'right';\n const isVertical = placement === 'top' || placement === 'bottom';\n\n return html(({ div, header, footer, span, button, slot }) => {\n // Backdrop (modal only)\n if (this.modal) {\n div({ className: 'backdrop', '@click': this._handleBackdropClick });\n }\n\n // Panel\n this._panelEl = div(\n {\n className: `panel placement-${placement}`,\n role: 'dialog',\n 'aria-modal': this.modal ? 'true' : 'false',\n 'aria-label': this.label,\n tabindex: '-1',\n '@click': this._handlePanelClick,\n style: {\n [isVertical ? 'height' : 'width']: this.size || '',\n },\n },\n () => {\n // Header\n if (this.header) {\n header({}, () => {\n slot({ name: 'header' }, () => {\n span({ className: 'label', textContent: this.label || '' });\n });\n if (this.closable) {\n const { aeIcon } = tags;\n button(\n {\n className: 'close-btn',\n 'aria-label': 'close',\n '@click': () => this.close(),\n },\n () => {\n aeIcon({ name: 'close' });\n },\n );\n }\n });\n }\n\n // Body\n div({ className: 'body' }, () => {\n slot();\n });\n\n // Footer - always rendered to capture slotchange, hidden when empty\n footer({ style: { display: this._hasFooter ? '' : 'none' } }, () => {\n slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });\n });\n },\n );\n });\n }\n\n private _handleBackdropClick = () => {\n if (this.closeOnOverlayClick) {\n this.close();\n }\n };\n\n private _handlePanelClick = (e: Event) => {\n const path = (e as MouseEvent).composedPath();\n for (const el of path) {\n if (el instanceof Element && el.hasAttribute('data-close')) {\n this.close();\n return;\n }\n if (el === this._panelEl) break;\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n this.close();\n }\n };\n\n private _handleFooterSlotChange = (e: Event) => {\n const slotEl = e.target as HTMLSlotElement;\n const hasContent = slotEl.assignedElements().length > 0;\n if (hasContent !== this._hasFooter) {\n this._hasFooter = hasContent;\n this.update();\n }\n };\n\n private _closeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n open() {\n clearTimeout(this._closeTimeout!);\n this.removeAttribute('data-closing');\n this.setAttribute('data-open', '');\n document.addEventListener('keydown', this._handleKeydown);\n requestAnimationFrame(() => {\n const btn = this.shadowRoot?.querySelector<HTMLElement>('.close-btn');\n (btn ?? this._panelEl)?.focus();\n });\n this.emit('open', { detail: { target: this } });\n }\n\n close() {\n if (this.hasAttribute('data-closing')) return;\n this.setAttribute('data-closing', '');\n document.removeEventListener('keydown', this._handleKeydown);\n this._closeTimeout = setTimeout(() => {\n this.removeAttribute('data-open');\n this.removeAttribute('data-closing');\n this.emit('close', { detail: { target: this } });\n }, 220);\n }\n\n isOpen(): boolean {\n return this.hasAttribute('data-open') && !this.hasAttribute('data-closing');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n clearTimeout(this._closeTimeout!);\n document.removeEventListener('keydown', this._handleKeydown);\n }\n}\n\nDrawer.define('drawer');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-drawer': Drawer;\n }\n}\n\nexport default Drawer;\nexport type DrawerProps = InferProps<typeof Drawer>;\n", "import type { InferProps, Props } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { IconColor } from '../icon/defines';\n// Ensure ae-button and ae-icon are registered\nimport '../button/button';\nimport '../icon/icon';\n\nexport type IconButtonVariant = 'filled' | 'outlined' | 'subtle' | 'text';\nexport type IconButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\n/**\n * @deprecated Use `<ae-button>` with an `<ae-icon>` slot instead.\n *\n * ```html\n * <ae-button color=\"primary\"><ae-icon name=\"star\"></ae-icon></ae-button>\n * ```\n */\nclass IconButton extends AeicoComponent {\n static props: Props = {\n icon: { type: String },\n size: { type: String },\n color: { type: String },\n variant: { type: String },\n disabled: { type: Boolean },\n };\n\n declare icon?: string;\n declare size?: IconButtonSize;\n declare color?: IconColor;\n declare variant?: IconButtonVariant;\n declare disabled?: boolean;\n\n protected static styles = [':host { display: contents; }'];\n\n protected render() {\n return html(({ aeButton, aeIcon }) => {\n aeButton(\n {\n color: this.color,\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n },\n () => {\n aeIcon({ name: this.icon });\n },\n );\n });\n }\n}\n\nIconButton.define('icon-button');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-icon-button': IconButton;\n }\n}\n\nexport default IconButton;\nexport type IconButtonProps = InferProps<typeof IconButton>;\n", "import type { Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport tabsStyle from '../styles/components/tabs.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type Tab from './tab';\nimport type { TabVariant } from './defines';\n\nclass Tabs extends AeicoComponent {\n static props: Props = {\n activeIndex: { type: Number },\n variant: { type: String },\n };\n\n declare activeIndex?: number;\n declare variant?: TabVariant;\n\n protected static styles = [styleVariables, tabsStyle];\n\n private _observer: MutationObserver | null = null;\n\n private get _tabs(): Tab[] {\n return [...this.children].filter(\n (el) => el.tagName.toLowerCase() === 'ae-tab',\n ) as unknown as Tab[];\n }\n\n private get _panels(): HTMLElement[] {\n return [...this.children].filter(\n (el) => el.tagName.toLowerCase() === 'ae-tab-panel',\n ) as HTMLElement[];\n }\n\n private _getPairs(): [Tab, HTMLElement | null][] {\n const tabs = this._tabs;\n const panels = this._panels;\n\n const idMap = new Map<string, HTMLElement>();\n for (const panel of panels) {\n const id = panel.id;\n if (id) idMap.set(id, panel);\n }\n\n const usedPanels = new Set<HTMLElement>();\n const pairs: [Tab, HTMLElement | null][] = [];\n\n // First pass: ID-matched tabs\n for (const tab of tabs) {\n const panelId = tab.panel;\n if (panelId) {\n const panel = idMap.get(panelId) ?? null;\n if (panel) usedPanels.add(panel);\n pairs.push([tab, panel]);\n }\n }\n\n // Second pass: position-matched tabs (no panel attr)\n const unmatchedPanels = panels.filter((p) => !usedPanels.has(p));\n let posIndex = 0;\n for (const tab of tabs) {\n if (!tab.panel) {\n pairs.push([tab, unmatchedPanels[posIndex] ?? null]);\n posIndex++;\n }\n }\n\n return pairs;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._observer = new MutationObserver(() => this.update());\n this._observer.observe(this, { childList: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._observer?.disconnect();\n this._observer = null;\n }\n\n protected onUpdated() {\n this._syncVariant();\n this._syncActive();\n }\n\n private _syncVariant() {\n const variant = this.variant ?? 'text';\n this.setAttribute('variant', variant);\n for (const tab of this._tabs) {\n tab.setAttribute('variant', variant);\n }\n }\n\n private _handleTabClick = (e: Event) => {\n const pairs = this._getPairs();\n const target = e.target as Element;\n const index = pairs.findIndex(([tab]) => tab === target);\n if (index !== -1) this.selectTab(index);\n };\n\n private _syncActive() {\n const activeIndex = this.activeIndex ?? 0;\n const pairs = this._getPairs();\n\n pairs.forEach(([tab, panel], i) => {\n const isActive = i === activeIndex;\n if (isActive) {\n tab.setAttribute('active', '');\n panel?.setAttribute('active', '');\n } else {\n tab.removeAttribute('active');\n panel?.removeAttribute('active');\n }\n });\n }\n\n selectTab(index: number): void {\n const pairs = this._getPairs();\n if (index === (this.activeIndex ?? 0) || index >= pairs.length) return;\n this.activeIndex = index;\n this.emit('change', { detail: { index } });\n }\n\n protected render() {\n return html(({ nav, div, slot }) => {\n nav({ part: 'tab-nav', role: 'tablist', '@_tab-click': this._handleTabClick }, () => {\n slot({ name: 'tab' });\n });\n div({ part: 'panels' }, () => {\n slot();\n });\n });\n }\n}\n\nTabs.define('tabs');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tabs': Tabs;\n }\n}\n\nexport default Tabs;\n", "import type { Props } from 'aeico';\nimport tabStyle from '../styles/components/tab.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\n\nclass Tab extends AeicoComponent {\n static props: Props = {\n active: { type: Boolean },\n disabled: { type: Boolean },\n panel: { type: String },\n };\n\n declare active?: boolean;\n declare disabled?: boolean;\n declare panel?: string;\n\n protected static styles = [tabStyle];\n\n connectedCallback() {\n this.setAttribute('slot', 'tab');\n super.connectedCallback();\n }\n\n private _handleClick = () => {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tab-click', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n protected render() {\n return html(({ button, slot }) => {\n button(\n {\n part: 'tab',\n type: 'button',\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-disabled': this.disabled,\n disabled: this.disabled,\n '@click': this._handleClick,\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nTab.define('tab');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tab': Tab;\n }\n}\n\nexport default Tab;\n", "import tabPanelStyle from '../styles/components/tab-panel.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\n\nclass TabPanel extends AeicoComponent {\n protected static styles = [tabPanelStyle];\n\n protected render() {\n return html(({ slot }) => {\n slot();\n });\n }\n}\n\nTabPanel.define('tab-panel');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tab-panel': TabPanel;\n }\n}\n\nexport default TabPanel;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/divider.css';\nimport { prop } from 'aeico';\n/**\n * A simple divider component that can be used to separate content. It supports both horizontal and vertical orientations, as well as customizable thickness and color.\n * @example\n * ```html\n * <ae-divider></ae-divider>\n * <ae-divider vertical></ae-divider>\n * <ae-divider thickness=\"4px\" color=\"primary\"></ae-divider>\n * ```\n * @props\n * - `vertical` (boolean): If true, the divider will be vertical. Default is false (horizontal).\n * - `thickness` (string): Custom thickness for the divider (e.g., \"2px\", \"0.5rem\"). If not provided, it will use the default thickness defined in CSS.\n * - `color` (string): Color variant for the divider (e.g., \"primary\", \"secondary\"). If not provided, it will use the default color defined in CSS.\n *\n * @csspart divider - The main divider element that can be styled.\n *\n * @cssproperty --thickness - Custom property to set the thickness of the divider when the `thickness` prop is used.\n */\nclass Divider extends AeicoComponent {\n @prop({ type: Boolean })\n accessor vertical: boolean = false;\n\n @prop({ type: String })\n accessor thickness: string | undefined;\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n protected static styles = [styleVariables, colorCSS, style];\n\n protected render(): void {\n if (this.thickness) {\n this.style.setProperty('--thickness', this.thickness);\n } else {\n this.style.removeProperty('--thickness');\n }\n }\n}\n\nDivider.define('divider');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-divider': Divider;\n }\n}\n\nexport default Divider;\nexport type DividerProps = InferProps<typeof Divider>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport cardStyle from '../styles/components/card.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.define('card');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport navbarStyle from '../styles/components/navbar.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { NavbarColor, NavbarAppearance } from './defines';\n\n/**\n * Navbar Component\n *\n * A sticky top navigation bar with three slot regions and built-in\n * mobile hamburger collapse.\n *\n * Slots:\n * - `brand` - leftmost area, typically a logo or site name link\n * - `start` - main navigation links / dropdowns\n * - `end` - right-side actions (login button, avatar, etc.)\n *\n * Slotted `<a>` elements receive default link styling controlled via\n * CSS custom properties. Mark the active link with `aria-current=\"page\"`.\n *\n * @example\n * ```html\n * <ae-navbar color=\"primary\" appearance=\"block\">\n * <a slot=\"brand\" href=\"/\">MyApp</a>\n * <a slot=\"start\" href=\"/\" aria-current=\"page\">Home</a>\n * <a slot=\"start\" href=\"/docs\">Docs</a>\n * <ae-button slot=\"end\" size=\"sm\" variant=\"outlined\">Sign in</ae-button>\n * </ae-navbar>\n * ```\n *\n * @example\n * ```css\n * /* Custom height and transparent background *\\/\n * ae-navbar {\n * --ae-navbar-height: 4rem;\n * --ae-navbar-bg: transparent;\n * --ae-navbar-border-width: 0;\n * --ae-navbar-shadow: 0 1px 8px rgba(0, 0, 0, 0.08);\n * }\n * ```\n */\nclass Navbar extends AeicoComponent {\n protected static styles = [styleVariables, colorCSS, navbarStyle];\n\n /** Background color using the design-system color token set. */\n @prop({ type: String })\n accessor color: NavbarColor | undefined;\n\n /** When true (default), the navbar sticks to the top of the viewport while scrolling. Set to false to let it scroll with the page. */\n @prop({ type: Boolean })\n accessor sticky: boolean = false;\n\n /**\n * Hover style preset for slotted `<a>` links.\n * - `text` - only the font color changes on hover (default)\n * - `block` - a subtle filled background block appears on hover\n *\n * Fine-tune further with `--ae-navbar-link-hover-color` /\n * `--ae-navbar-link-hover-bg` CSS variables.\n */\n @prop({ type: String })\n accessor appearance: NavbarAppearance = 'text';\n\n /** Whether the mobile menu is expanded. Reflects as the `open` attribute. */\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n // Close menu when clicking outside the navbar\n this._outsideClickHandler = (e: MouseEvent) => {\n // Event retargeting in shadow DOM means e.target is the host element\n // when the click originates inside the shadow root, so this check is safe.\n if (!this.contains(e.target as Node) && !this.shadowRoot?.contains(e.target as Node)) {\n this._closeMenu();\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 /** Toggle the mobile menu open/closed. */\n toggleMenu(): void {\n this.open = !this.open;\n }\n\n private _handleInnerClick = (e: Event) => {\n if (!this.open) return;\n // Close mobile menu when a slotted <a> link is clicked\n const path = e.composedPath() as Element[];\n if (path.some((el) => (el as HTMLElement).tagName === 'A')) {\n this._closeMenu();\n }\n };\n\n private _toggleMenu = () => {\n this.open = !this.open;\n };\n\n private _closeMenu = () => {\n if (this.open) this.open = false;\n };\n\n protected render() {\n return html(({ div, nav, button, span, slot }) => {\n div({ class: 'inner', '@click': this._handleInnerClick }, () => {\n div({ part: 'brand' }, () => {\n slot({ name: 'brand' });\n });\n nav({ part: 'nav', 'aria-label': 'Main navigation' }, () => {\n div({ part: 'start' }, () => {\n slot({ name: 'start' });\n });\n div({ part: 'end' }, () => {\n slot({ name: 'end' });\n });\n });\n button(\n {\n part: 'hamburger',\n type: 'button',\n 'aria-expanded': String(this.open),\n 'aria-label': 'Toggle navigation',\n '@click': this._toggleMenu,\n },\n () => {\n span({ 'aria-hidden': 'true' });\n span({ 'aria-hidden': 'true' });\n span({ 'aria-hidden': 'true' });\n },\n );\n });\n });\n }\n}\n\nNavbar.define('navbar');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-navbar': Navbar;\n }\n}\n\nexport default Navbar;\nexport type NavbarProps = InferProps<typeof Navbar>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } 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/spinner.css';\nimport type { SpinnerColor, SpinnerSize, SpinnerVariant } from './defines';\n\n/**\n * Spinner - animated loading indicator.\n *\n * Supports two visual variants: a rotating ring (`border`, default) and\n * three bouncing dots (`dots`). Size and colour are driven by the shared\n * design-token system.\n *\n * @example\n * ```html\n * <ae-spinner></ae-spinner>\n * <ae-spinner variant=\"dots\" color=\"primary\" size=\"lg\"></ae-spinner>\n * <ae-spinner color=\"success\" speed=\"0.5s\" label=\"Saving\u2026\"></ae-spinner>\n * ```\n */\nclass Spinner extends AeicoComponent {\n @prop({ type: String })\n accessor variant: SpinnerVariant = 'border';\n\n @prop({ type: String })\n accessor size: SpinnerSize = 'md';\n\n @prop({ type: String })\n accessor color: SpinnerColor = 'default';\n\n @prop({ type: String })\n accessor label: string = 'Loading\u2026';\n\n @prop({ type: String })\n accessor speed: string | undefined;\n\n protected static styles = [styleVariables, sizeCSS, colorCSS, style];\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'status');\n }\n\n protected render() {\n this.setAttribute('aria-label', this.label);\n\n if (this.speed) {\n this.style.setProperty('--spinner-speed', this.speed);\n } else {\n this.style.removeProperty('--spinner-speed');\n }\n\n const isDots = this.variant === 'dots';\n\n return html(({ span }) => {\n span({ part: 'track', className: 'track', 'aria-hidden': 'true' }, () => {\n if (isDots) {\n span({ className: 'dot' });\n span({ className: 'dot' });\n span({ className: 'dot' });\n }\n });\n });\n }\n}\n\nSpinner.define('spinner');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-spinner': Spinner;\n }\n}\n\nexport default Spinner;\nexport type SpinnerProps = InferProps<typeof Spinner>;\n", "import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport detailStyle from '../styles/components/detail.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\nimport type { DetailColor, DetailVariant, DetailIconPlacement } from './defines';\n\n/**\n * Detail component that can be used to show/hide additional content.\n *\n * @example\n * ```html\n * <ae-detail summary=\"Click Me\">\n * <ae-icon name=\"plus\" slot=\"expand\"></ae-icon>\n * <ae-icon name=\"minus\" slot=\"collapse\"></ae-icon>\n * Detail.....\n * </ae-detail>\n */\nclass Detail extends AeicoComponent {\n protected static styles = [styleVariables, colorCSS, detailStyle];\n\n @prop({ type: String })\n accessor summary: string = '';\n\n @prop({ type: String })\n accessor variant: DetailVariant = 'filled';\n\n @prop({ type: String })\n accessor color: DetailColor = 'default';\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor iconPlacement: DetailIconPlacement = 'end';\n\n private _open: boolean = false;\n\n /** Opens the detail panel. */\n open(): void {\n if (this.disabled || this._open) return;\n this._open = true;\n this.toggleAttribute('open', true);\n this.update();\n this.emit('open');\n }\n\n /** Closes the detail panel. */\n close(): void {\n if (!this._open) return;\n this._open = false;\n this.toggleAttribute('open', false);\n this.update();\n this.emit('close');\n }\n\n /** Toggles the detail panel open/closed. */\n toggle(): void {\n if (this._open) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Returns whether the detail panel is currently open. */\n isOpen(): boolean {\n return this._open;\n }\n\n private _handleSummaryClick = (): void => {\n this.toggle();\n };\n\n protected render() {\n return html(({ div, button, span, slot }) => {\n div({ className: 'detail', part: 'detail' }, () => {\n button(\n {\n className: 'summary',\n part: 'summary',\n type: 'button',\n 'aria-expanded': String(this._open),\n disabled: this.disabled || undefined,\n '@click': this._handleSummaryClick,\n },\n () => {\n slot({ name: 'summary' }, () => {\n span({ className: 'label', textContent: this.summary });\n });\n slot({ name: 'expand' });\n slot({ name: 'collapse' });\n },\n );\n div({ className: 'content-outer' }, () => {\n div(\n {\n className: 'content',\n part: 'content',\n role: 'region',\n },\n () => {\n slot();\n },\n );\n });\n });\n });\n }\n}\n\nDetail.define('detail');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-detail': Detail;\n }\n}\n\nexport default Detail;\nexport type DetailProps = InferProps<typeof Detail>;\nexport type { DetailIconPlacement };\n", "import type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css';\nimport detailGroupStyle from '../styles/components/detail-group.css';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type Detail from '../detail/detail';\nimport type { DetailColor, DetailVariant } from '../detail/defines';\n\n/**\n * DetailGroup component - wraps multiple `ae-detail` elements into an\n * accordion-style group. By default only one item can be open at a time;\n * set `multiple` to allow several items open simultaneously.\n *\n * @example\n * ```html\n * <ae-detail-group>\n * <ae-detail summary=\"Section 1\">Content 1</ae-detail>\n * <ae-detail summary=\"Section 2\">Content 2</ae-detail>\n * <ae-detail summary=\"Section 3\">Content 3</ae-detail>\n * </ae-detail-group>\n * ```\n */\nclass DetailGroup extends AeicoComponent {\n static props: Props = {\n multiple: { type: Boolean },\n variant: { type: String },\n color: { type: String },\n };\n\n protected static styles = [styleVariables, detailGroupStyle];\n\n declare multiple?: boolean;\n declare variant?: DetailVariant;\n declare color?: DetailColor;\n\n private slotEl: HTMLSlotElement | null = null;\n\n private readonly DETAIL_RADIUS = 6;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('open', this._handleOpen);\n }\n\n private _getDetails(): Detail[] {\n if (!this.slotEl) return [];\n return (this.slotEl.assignedElements({ flatten: true }) as Detail[]).filter(\n (el) => el.tagName.toLowerCase() === 'ae-detail',\n );\n }\n\n private _syncChildren(): void {\n const details = this._getDetails();\n const r = this.DETAIL_RADIUS;\n\n details.forEach((detail, i) => {\n const isFirst = i === 0;\n const isLast = i === details.length - 1;\n\n // Collapse borders between adjacent items\n detail.style.marginTop = isFirst ? '' : '-1px';\n\n // Adjust per-corner radius so only the outer edges of the group keep it\n detail.style.setProperty('--detail-r-tl', isFirst ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-tr', isFirst ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-br', isLast ? `${r}px` : '0');\n detail.style.setProperty('--detail-r-bl', isLast ? `${r}px` : '0');\n\n // Propagate variant / color only when explicitly set on the group\n if (this.variant !== undefined) detail.variant = this.variant;\n if (this.color !== undefined) detail.color = this.color;\n });\n }\n\n private _handleOpen = (event: Event): void => {\n if (this.multiple) return;\n const opened = event.target as Element;\n this._getDetails().forEach((detail) => {\n if (detail !== opened) detail.close();\n });\n };\n\n protected render() {\n return html(({ slot }) => {\n this.slotEl = slot({\n '@slotchange': () => this._syncChildren(),\n });\n this._syncChildren();\n });\n }\n}\n\nDetailGroup.define('detail-group');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-detail-group': DetailGroup;\n }\n}\n\nexport default DetailGroup;\nexport type DetailGroupProps = InferProps<typeof DetailGroup>;\n", "import type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport styleVariables from '../styles/variables.css';\nimport colorCSS from '../styles/color.css';\nimport style from '../styles/components/progress-bar.css';\nimport type { ProgressBarColor } from './defines';\n\n/**\n * Progress bars show how far along an ongoing operation is as a horizontal fill.\n * Use them for file uploads, multi-step flows, or any task with measurable progress.\n *\n * @prop {number} value - Completion percentage, automatically clamped to 0\u2013100.\n * @prop {string} label - Accessible label applied as `aria-label` on the track.\n * @prop {'default'|'primary'|'secondary'|'success'|'danger'|'warning'|'info'} color\n * - Preset color variant driven by the shared color system.\n * @prop {boolean} animated - When set, overlays a shimmer sweep animation on the bar.\n *\n * @csspart base - The outermost wrapper `<div>`.\n * @csspart track - The background track `<div>`.\n * @csspart bar - The filled progress `<span>`.\n *\n * @cssproperty [--progress-height=8px] - Height of both the track and the bar.\n * @cssproperty [--progress-bar-color=var(--color-solid)] - Fill color of the bar.\n * When set, takes precedence over the `color` prop entirely.\n */\nclass ProgressBar extends AeicoComponent {\n protected static styles = [styleVariables, colorCSS, style];\n\n @prop({ type: Number })\n accessor value: number = 0;\n\n @prop({ type: String })\n accessor label: string = '';\n\n @prop({ type: String })\n accessor color: ProgressBarColor = 'primary';\n\n @prop({ type: Boolean })\n accessor animated: boolean = false;\n\n protected render() {\n const clamped = Math.min(100, Math.max(0, this.value));\n\n return html(({ div, span }) => {\n div({ part: 'base' }, () => {\n div(\n {\n part: 'track',\n className: 'progress-track',\n role: 'progressbar',\n 'aria-valuenow': String(clamped),\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n ...(this.label ? { 'aria-label': this.label } : {}),\n },\n () => {\n span({\n part: 'bar',\n className: 'progress-bar',\n style: { width: `${clamped}%` },\n });\n },\n );\n });\n });\n }\n}\n\nProgressBar.define('progress-bar');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-progress-bar': ProgressBar;\n }\n}\n\nexport default ProgressBar;\nexport type ProgressBarProps = InferProps<typeof ProgressBar>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu.css';\nimport variables from '../styles/variables.css';\nimport type { MenuMode, MenuOrientation, MenuSelectDetail, MenuTrigger } from './defines';\n// Ensure ae-menu-item is registered when this module is used\nimport './menu-item';\n\n/**\n * Menu navigation component. Renders a horizontal or vertical menu with\n * optional two-level flyout or inline (accordion) submenus.\n *\n * Two modes:\n * - `flyout` (default) - submenus open as floating panels (like a nav bar or\n * context menu).\n * - `inline` - submenus expand in-place (accordion-style sidebar).\n *\n * Emits:\n * - `select` - `{ detail: { key, label, keyPath } }` when a leaf item is clicked.\n */\nclass Menu extends AeicoComponent {\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor mode: MenuMode = 'flyout';\n\n @prop({ type: String })\n accessor orientation: MenuOrientation = 'horizontal';\n\n @prop({ type: String })\n accessor trigger: MenuTrigger = 'click';\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n @prop({ type: Boolean })\n accessor wrapText: boolean = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_menu-item-select', this._handleItemSelect as EventListener);\n }\n\n private _handleItemSelect = (e: CustomEvent<MenuSelectDetail>): void => {\n const { key, label, keyPath } = e.detail;\n // Update visual selection on all leaf items\n this.querySelectorAll('ae-menu-item').forEach((el) => {\n const item = el;\n item.selected = item.key === key && !item.label; // only leaf items\n });\n this.selectedKey = key;\n this.emit('select', { detail: { key, label, keyPath } });\n };\n\n protected render() {\n const isHorizontal = this.orientation === 'horizontal';\n return html(({ div, slot }) => {\n div(\n {\n className: { 'menu-list': true, 'menu-list--horizontal': isHorizontal },\n role: isHorizontal ? 'menubar' : 'menu',\n 'aria-orientation': this.orientation,\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nMenu.define('menu');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu': Menu;\n }\n}\n\nexport default Menu;\nexport type MenuProps = InferProps<typeof Menu>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/menu-item.css';\nimport variables from '../styles/variables.css';\nimport type {\n MenuMode,\n MenuOrientation,\n MenuTrigger,\n ParentMenuLike,\n MenuIconPlacement,\n} from './defines';\n\n/**\n * Menu item - used as a direct child of `<ae-menu>` or nested inside another\n * `<ae-menu-item>` to create a two-level submenu.\n *\n * - **Leaf item**: omit `label`; slot contains the item text.\n * - **Parent item**: set `label` to the trigger text; slot children are\n * `<ae-menu-item>` elements that appear in the submenu panel/section.\n *\n * **Slots (parent items only)**\n * - `expand` - icon shown when the submenu is closed (default: CSS triangle).\n * - `collapse` - icon shown when the submenu is open (default: rotated CSS triangle).\n *\n * @example\n * ```html\n * <ae-menu-item label=\"Settings\" icon-placement=\"start\">\n * <ae-icon name=\"chevron-right\" slot=\"expand\"></ae-icon>\n * <ae-icon name=\"chevron-down\" slot=\"collapse\"></ae-icon>\n * <ae-menu-item key=\"profile\">Profile</ae-menu-item>\n * </ae-menu-item>\n * ```\n */\nclass MenuItem extends AeicoComponent {\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor label: string | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: String })\n accessor href: string | undefined;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor open: boolean = false;\n\n @prop({ type: String })\n accessor iconPlacement: MenuIconPlacement = 'end';\n\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n private _closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // data-depth lets CSS apply depth-specific styles without JS\n const depth = this.parentElement?.closest('ae-menu-item') ? 1 : 0;\n this.dataset.depth = String(depth);\n\n // Hover listeners - check mode/trigger at runtime\n this.listen('mouseenter', this._handleMouseEnter);\n this.listen('mouseleave', this._handleMouseLeave);\n\n // Outside-click to close flyout panel (not applicable in inline mode)\n this._outsideClickHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (this._mode === 'inline') return;\n if (!e.composedPath().includes(this)) this.open = false;\n };\n\n document.addEventListener('click', this._outsideClickHandler);\n\n // Close own submenu when a leaf inside it is selected (flyout)\n this.listen('_menu-item-select', this._handleChildSelect as EventListener);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._outsideClickHandler) {\n document.removeEventListener('click', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n }\n\n private get _parentMenu(): ParentMenuLike | null {\n return this.closest<ParentMenuLike>('ae-menu');\n }\n\n private get _mode(): MenuMode {\n return this._parentMenu?.mode ?? 'flyout';\n }\n\n private get _orientation(): MenuOrientation {\n return this._parentMenu?.orientation ?? 'horizontal';\n }\n\n private get _trigger(): MenuTrigger {\n return this._parentMenu?.trigger ?? 'click';\n }\n\n private get _wrapText(): boolean {\n return this._parentMenu?.wrapText ?? false;\n }\n\n private get _isParent(): boolean {\n return this.label != null && this.label !== '';\n }\n\n /** Compute flyout panel placement based on depth and parent orientation. */\n private get _panelPlacement(): 'bottom' | 'right' {\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n if (!isNested && this._orientation === 'horizontal') return 'bottom';\n return 'right';\n }\n\n private _isHoverTrigger(): boolean {\n return this._isParent && this._mode === 'flyout' && this._trigger === 'hover';\n }\n\n private _handleMouseEnter = (): void => {\n if (!this._isHoverTrigger()) return;\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n this.open = true;\n };\n\n private _handleMouseLeave = (): void => {\n if (!this._isHoverTrigger()) return;\n this._closeTimer = setTimeout(() => {\n this.open = false;\n this._closeTimer = null;\n }, 150);\n };\n\n private _handleParentClick = (): void => {\n if (this.disabled) return;\n const mode = this._mode;\n const trigger = this._trigger;\n // In hover mode, click should still toggle (accessibility)\n if (mode === 'flyout' && trigger === 'hover') {\n this.open = !this.open;\n return;\n }\n this.open = !this.open;\n };\n\n private _handleLeafClick = (e: Event): void => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n const path = this._buildKeyPath();\n const label = this.textContent?.trim() ?? '';\n this.dispatchEvent(\n new CustomEvent('_menu-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this.key ?? '', label, keyPath: path },\n }),\n );\n };\n\n private _handleChildSelect = (): void => {\n // Close flyout panel after a child leaf is selected\n if (this._mode === 'flyout') {\n this.open = false;\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this.open = false;\n }\n };\n\n private _buildKeyPath(): string[] {\n const path: string[] = [];\n if (this.key) path.unshift(this.key);\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-menu-item') {\n const k = (el as MenuItem).key;\n if (k) path.unshift(k);\n } else if (tag === 'ae-menu') {\n break;\n }\n el = el.parentElement;\n }\n return path;\n }\n\n protected render() {\n const mode = this._mode;\n const panelPlacement = this._panelPlacement;\n const isParent = this._isParent;\n const isInline = mode === 'inline';\n // Arrow direction: inline always shows \u25BA (rotates to \u25BC on open)\n // flyout-bottom shows \u25BC; flyout-right shows \u25BA\n const arrowDir = !isInline && panelPlacement === 'bottom' ? 'bottom' : 'right';\n const wrapText = this._wrapText;\n // Leaf items inside a submenu panel (depth > 0) need different padding\n const isNested = !!this.parentElement?.closest('ae-menu-item');\n\n return html(({ div, button, a, span, slot }) => {\n if (isParent) {\n div({ className: 'item-wrapper' }, () => {\n button(\n {\n type: 'button',\n className: {\n item: true,\n 'item--parent': true,\n 'item--open': this.open,\n 'item--wrap': wrapText,\n },\n disabled: this.disabled,\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(this.open),\n '@click': this._handleParentClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n span({ text: this.label });\n slot({ name: 'expand' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n slot({ name: 'collapse' }, () => {\n span({ className: `item-arrow item-arrow--${arrowDir}`, 'aria-hidden': 'true' });\n });\n },\n );\n\n if (isInline) {\n div(\n {\n className: { 'submenu-inline': true, open: this.open },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n } else {\n div(\n {\n className: {\n 'submenu-panel': true,\n [`placement-${panelPlacement}`]: true,\n open: this.open,\n },\n role: 'menu',\n },\n () => {\n slot();\n },\n );\n }\n });\n } else {\n // Leaf item\n const sharedProps = {\n className: { item: true, 'item--leaf-in-panel': isNested, 'item--wrap': wrapText },\n role: 'menuitem',\n '@click': this._handleLeafClick,\n '@keydown': this._handleKeydown,\n };\n\n if (this.href) {\n a(\n {\n ...sharedProps,\n href: this.disabled ? undefined : this.href,\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n slot();\n },\n );\n } else {\n button(\n {\n ...sharedProps,\n type: 'button',\n disabled: this.disabled,\n },\n () => {\n slot();\n },\n );\n }\n }\n });\n }\n}\n\nMenuItem.define('menu-item');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-menu-item': MenuItem;\n }\n}\n\nexport default MenuItem;\nexport type MenuItemProps = InferProps<typeof MenuItem>;\nexport type { MenuIconPlacement };\n", "import { html, prop, tags } from 'aeico';\nimport type { InferProps } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport styleVariables from '../styles/variables.css';\nimport sizeCSS from '../styles/size.css';\nimport paginationStyle from '../styles/components/pagination.css';\nimport type { PaginationSize, PaginationVariant } from './defines';\nimport '../icon/icon';\n\ntype PageItem = number | 'ellipsis-start' | 'ellipsis-end';\n\n/**\n * Pagination component for navigating between pages of content.\n *\n * @prop {number} page - Current page number (1-indexed). Default: 1.\n * @prop {number} pageSize - Number of items per page. Default: 10.\n * @prop {number} total - Total number of items. Used to compute pageCount when pageCount is not set.\n * @prop {number} pageCount - Total number of pages. Overrides total/pageSize calculation when set.\n * @prop {number} siblingCount - Number of page buttons to show on each side of the current page. Default: 1.\n * @prop {'xs'|'sm'|'md'|'lg'} size - Size variant.\n * @prop {boolean} disabled - Disables all interactive controls.\n * @prop {boolean} simple - Simple mode: shows only prev/next buttons and a page number input.\n * @prop {boolean} showFirstLast - Show dedicated first-page and last-page jump buttons.\n * @prop {'borderless'|'link'} variant - Visual variant. `borderless` removes borders; `link` renders page numbers as plain text links with no borders or backgrounds.\n *\n * @event {CustomEvent<{page: number}>} change - Fired when the page changes.\n *\n * @slot prev - Custom content for the previous-page button (default: chevron-left icon).\n * @slot next - Custom content for the next-page button (default: chevron-right icon).\n * @slot first - Custom content for the first-page button (default: chevrons-left icon). Requires showFirstLast.\n * @slot last - Custom content for the last-page button (default: chevrons-right icon). Requires showFirstLast.\n *\n * @csspart root - The outer <nav> element.\n * @csspart prev - The previous-page button.\n * @csspart next - The next-page button.\n * @csspart first - The first-page button (visible when showFirstLast).\n * @csspart last - The last-page button (visible when showFirstLast).\n * @csspart item - A page number button.\n * @csspart ellipsis - An ellipsis span between page groups.\n * @csspart page-input - The page number input in simple mode.\n * @csspart page-total - The \"/ N\" label in simple mode.\n *\n * @example\n * ```html\n * <ae-pagination total=\"100\" page-size=\"10\" page=\"1\"></ae-pagination>\n * ```\n */\nclass Pagination extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, paginationStyle];\n\n @prop({ type: Number })\n accessor page: number = 1;\n\n @prop({ type: Number })\n accessor pageSize: number = 10;\n\n @prop({ type: Number })\n accessor total: number = 0;\n\n @prop({ type: Number })\n accessor pageCount: number | undefined;\n\n @prop({ type: Number })\n accessor siblingCount: number = 1;\n\n @prop({ type: String })\n accessor size: PaginationSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor simple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showFirstLast: boolean = false;\n\n @prop({ type: String })\n accessor variant: PaginationVariant | undefined;\n\n private _simpleInput: HTMLInputElement | null = null;\n\n private get _computedPageCount(): number {\n if (this.pageCount != null) return Math.max(1, this.pageCount);\n const ps = this.pageSize > 0 ? this.pageSize : 10;\n return Math.max(1, Math.ceil(this.total / ps));\n }\n\n private get _currentPage(): number {\n const count = this._computedPageCount;\n return Math.max(1, Math.min(this.page ?? 1, count));\n }\n\n private _getPageItems(): PageItem[] {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const sc = Math.max(0, this.siblingCount ?? 1);\n\n const rangeStart = Math.max(2, page - sc);\n const rangeEnd = Math.min(count - 1, page + sc);\n\n const showLeftEllipsis = rangeStart > 2;\n const showRightEllipsis = rangeEnd < count - 1;\n\n const items: PageItem[] = [];\n\n // First page always shown\n items.push(1);\n\n if (count <= 1) return items;\n\n // Left side\n if (showLeftEllipsis) {\n items.push('ellipsis-start');\n } else {\n for (let i = 2; i < rangeStart; i++) items.push(i);\n }\n\n // Sibling range (bounded to 2..count-1)\n for (let i = rangeStart; i <= rangeEnd; i++) items.push(i);\n\n // Right side\n if (showRightEllipsis) {\n items.push('ellipsis-end');\n } else {\n for (let i = rangeEnd + 1; i < count; i++) items.push(i);\n }\n\n // Last page always shown\n items.push(count);\n\n return items;\n }\n\n private _goToPage(page: number): void {\n const count = this._computedPageCount;\n const next = Math.max(1, Math.min(count, page));\n if (next === this._currentPage) return;\n this.page = next;\n this.emit('change', { detail: { page: this.page } });\n }\n\n private _handleItemClick = (e: Event): void => {\n const btn = e.currentTarget as HTMLElement;\n const p = Number(btn.dataset.page);\n if (!isNaN(p)) this._goToPage(p);\n };\n\n private _handlePrevClick = (): void => {\n this._goToPage(this._currentPage - 1);\n };\n private _handleNextClick = (): void => {\n this._goToPage(this._currentPage + 1);\n };\n private _handleFirstClick = (): void => {\n this._goToPage(1);\n };\n private _handleLastClick = (): void => {\n this._goToPage(this._computedPageCount);\n };\n\n private _handleSimpleInputChange = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n const val = parseInt(input.value, 10);\n if (!isNaN(val)) {\n this._goToPage(val);\n }\n\n input.value = String(this._currentPage);\n };\n\n protected onUpdated(): void {\n if (this._simpleInput) {\n this._simpleInput.value = String(this._currentPage);\n }\n }\n\n private _renderNavBtn(\n name: 'first' | 'prev' | 'next' | 'last',\n iconName: string,\n label: string,\n disabled: boolean,\n onClick: () => void,\n ): void {\n const { button, slot, aeIcon } = tags;\n\n button(\n {\n key: name,\n part: name,\n className: 'nav-btn',\n disabled,\n 'aria-label': label,\n '@click': onClick,\n },\n () => {\n slot({ name }, () => {\n aeIcon({ name: iconName });\n });\n },\n );\n }\n\n private _renderSimpleMode(page: number, count: number, disabled: boolean): void {\n this._simpleInput = tags.input({\n key: 'page-input',\n part: 'page-input',\n type: 'number',\n min: '1',\n max: String(count),\n value: String(page),\n disabled,\n 'aria-label': 'Page number',\n '@change': this._handleSimpleInputChange,\n });\n tags.span({ key: 'page-total', part: 'page-total', textContent: `/ ${count}` });\n }\n\n private _renderPageItems(page: number, disabled: boolean): void {\n for (const item of this._getPageItems()) {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n tags.span({\n key: item,\n part: 'ellipsis',\n className: 'ellipsis',\n 'aria-hidden': 'true',\n textContent: '\u2026',\n });\n } else {\n const isActive = item === page;\n tags.button({\n key: `item-${item}`,\n part: isActive ? 'item item-active' : 'item',\n className: isActive ? 'item active' : 'item',\n disabled,\n 'aria-current': isActive ? 'page' : undefined,\n 'aria-label': `Page ${item}`,\n 'data-page': String(item),\n textContent: String(item),\n '@click': this._handleItemClick,\n });\n }\n }\n }\n\n protected render() {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const disabled = this.disabled;\n const isFirst = page <= 1;\n const isLast = page >= count;\n\n return html(({ nav }) => {\n nav({ part: 'root', role: 'navigation', 'aria-label': 'Pagination' }, () => {\n if (this.showFirstLast)\n this._renderNavBtn(\n 'first',\n 'chevrons-left',\n 'First page',\n disabled || isFirst,\n this._handleFirstClick,\n );\n\n this._renderNavBtn(\n 'prev',\n 'chevron-left',\n 'Previous page',\n disabled || isFirst,\n this._handlePrevClick,\n );\n\n if (this.simple) {\n this._renderSimpleMode(page, count, disabled);\n } else {\n this._renderPageItems(page, disabled);\n }\n\n this._renderNavBtn(\n 'next',\n 'chevron-right',\n 'Next page',\n disabled || isLast,\n this._handleNextClick,\n );\n\n if (this.showFirstLast)\n this._renderNavBtn(\n 'last',\n 'chevrons-right',\n 'Last page',\n disabled || isLast,\n this._handleLastClick,\n );\n });\n });\n }\n}\n\nPagination.define('pagination');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-pagination': Pagination;\n }\n}\n\nexport default Pagination;\nexport type PaginationProps = InferProps<typeof Pagination>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree.css';\nimport variables from '../styles/variables.css';\nimport type { TreeSelectDetail, TreeExpandDetail, TreeCheckDetail } from './defines';\nimport './tree-item';\nimport type TreeItem from './tree-item';\n\n/**\n * Tree component. Renders a hierarchical tree of `<ae-tree-item>` elements.\n *\n * @prop {boolean} checkable - Enable checkbox selection mode with parent-child sync.\n * @prop {boolean} multiple - Allow multi-select (click to toggle). Ignored when checkable.\n * @prop {boolean} showLine - Show dashed connecting lines between items.\n * @prop {boolean} defaultExpandAll - Expand all items on initial connect.\n * @prop {string} selectedKey - Currently selected key (single-select convenience prop).\n *\n * @property {string[]} selectedKeys - Currently selected keys (multi-select).\n * @property {string[]} checkedKeys - Currently checked keys (checkable mode).\n * @property {string[]} expandedKeys - Currently expanded keys.\n *\n * @event {CustomEvent<TreeSelectDetail>} select - Fires when an item is selected/deselected.\n * @event {CustomEvent<TreeExpandDetail>} expand - Fires when an item is expanded/collapsed.\n * @event {CustomEvent<TreeCheckDetail>} check - Fires when an item checkbox changes.\n *\n * @example\n * ```html\n * <ae-tree>\n * <ae-tree-item key=\"1\" label=\"Parent\">\n * <ae-tree-item key=\"1-1\" label=\"Child A\"></ae-tree-item>\n * <ae-tree-item key=\"1-2\" label=\"Child B\"></ae-tree-item>\n * </ae-tree-item>\n * </ae-tree>\n * ```\n */\nclass Tree extends AeicoComponent {\n protected static styles = [variables, style];\n\n @prop({ type: Boolean })\n accessor checkable: boolean = false;\n\n @prop({ type: Boolean })\n accessor multiple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showLine: boolean = false;\n\n @prop({ type: Boolean })\n accessor defaultExpandAll: boolean = false;\n\n @prop({ type: String })\n accessor selectedKey: string | undefined;\n\n /** Icon name used for the expand/collapse toggle on all items (overridable per item). */\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Currently selected keys (multi-select). Set programmatically. */\n selectedKeys: string[] = [];\n\n /** Currently checked keys (checkable mode). Set programmatically. */\n checkedKeys: string[] = [];\n\n /** Currently expanded keys. Set programmatically. */\n expandedKeys: string[] = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.listen('_tree-item-toggle-expand', this._handleItemToggleExpand as EventListener);\n this.listen('_tree-item-select', this._handleItemSelect as EventListener);\n this.listen('_tree-item-check', this._handleItemCheck as EventListener);\n }\n\n private _getAllItems(): TreeItem[] {\n return Array.from(this.querySelectorAll<TreeItem>('ae-tree-item'));\n }\n\n private _getDirectChildren(node: Element): TreeItem[] {\n return Array.from(node.querySelectorAll<TreeItem>(':scope > ae-tree-item'));\n }\n\n private _computeCheckedKeys(): string[] {\n const keys: string[] = [];\n for (const item of this._getAllItems()) {\n if (item.checked && !item.indeterminate) {\n keys.push(item.key ?? '');\n }\n }\n return keys.filter(Boolean);\n }\n\n private _handleItemToggleExpand = (e: CustomEvent<{ key: string }>): void => {\n const node = e.target as TreeItem;\n const newExpanded = !node.expanded;\n node.expanded = newExpanded;\n\n const key = node.key ?? '';\n if (newExpanded) {\n if (!this.expandedKeys.includes(key)) {\n this.expandedKeys = [...this.expandedKeys, key];\n }\n } else {\n this.expandedKeys = this.expandedKeys.filter((k) => k !== key);\n }\n\n this.emit('expand', {\n detail: {\n key,\n expanded: newExpanded,\n expandedKeys: [...this.expandedKeys],\n } satisfies TreeExpandDetail,\n });\n };\n\n private _handleItemSelect = (e: CustomEvent<{ key: string }>): void => {\n const { key } = e.detail;\n\n if (this.multiple) {\n // Toggle selection\n const alreadySelected = this.selectedKeys.includes(key);\n if (alreadySelected) {\n this.selectedKeys = this.selectedKeys.filter((k) => k !== key);\n } else {\n this.selectedKeys = [...this.selectedKeys, key];\n }\n this.selectedKey = this.selectedKeys[this.selectedKeys.length - 1];\n\n // Sync visual state\n this._getAllItems().forEach((item) => {\n item.selected = this.selectedKeys.includes(item.key ?? '');\n });\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n } else {\n // Single select - deselect all, select target\n const alreadySelected = this.selectedKey === key;\n this._getAllItems().forEach((item) => {\n item.selected = !alreadySelected && item.key === key;\n });\n this.selectedKey = alreadySelected ? undefined : key;\n this.selectedKeys = this.selectedKey ? [this.selectedKey] : [];\n\n this.emit('select', {\n detail: {\n key,\n selected: !alreadySelected,\n selectedKeys: [...this.selectedKeys],\n } satisfies TreeSelectDetail,\n });\n }\n };\n\n private _handleItemCheck = (e: CustomEvent<{ key: string; checked: boolean }>): void => {\n const { key, checked } = e.detail;\n const sourceNode = e.target as TreeItem;\n\n this._setCheckedRecursive(sourceNode, checked);\n this._syncAncestors(sourceNode);\n this.checkedKeys = this._computeCheckedKeys();\n\n this.emit('check', {\n detail: { key, checked, checkedKeys: [...this.checkedKeys] } satisfies TreeCheckDetail,\n });\n };\n\n private _setCheckedRecursive(node: TreeItem, checked: boolean): void {\n if (node.disabled) return;\n node.checked = checked;\n node.indeterminate = false;\n for (const child of this._getDirectChildren(node)) {\n this._setCheckedRecursive(child, checked);\n }\n }\n\n private _syncAncestors(sourceNode: TreeItem): void {\n let el: Element | null = sourceNode.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n const parent = el as TreeItem;\n const children = this._getDirectChildren(parent).filter((c) => !c.disabled);\n if (children.length === 0) break;\n const checkedCount = children.filter((c) => c.checked && !c.indeterminate).length;\n const indeterminateCount = children.filter((c) => c.indeterminate).length;\n\n if (checkedCount === children.length) {\n parent.checked = true;\n parent.indeterminate = false;\n } else if (checkedCount > 0 || indeterminateCount > 0) {\n parent.checked = false;\n parent.indeterminate = true;\n } else {\n parent.checked = false;\n parent.indeterminate = false;\n }\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n }\n\n protected render() {\n return html(({ div, slot }) => {\n div(\n {\n className: 'tree',\n role: 'tree',\n 'aria-multiselectable': this.multiple ? 'true' : 'false',\n },\n () => {\n slot();\n },\n );\n });\n }\n}\n\nTree.define('tree');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree': Tree;\n }\n}\n\nexport default Tree;\nexport type TreeProps = InferProps<typeof Tree>;\n", "import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport { html, prop } from 'aeico';\nimport style from '../styles/components/tree-item.css';\nimport variables from '../styles/variables.css';\nimport type { ParentTreeLike } from './defines';\nimport { SVG_NS } from '../utils';\nimport '../icon';\n\nlet _autoKeyCounter = 0;\n\n/**\n * Tree item - used as a direct child of `<ae-tree>` or nested inside another\n * `<ae-tree-item>` to create a multi-level tree.\n *\n * - **Parent item**: nest `<ae-tree-item>` children inside; an expand toggle is shown.\n * - **Leaf item**: no `<ae-tree-item>` children; no expand toggle is shown.\n *\n * @prop {string} key - Unique identifier for this item.\n * @prop {string} icon - Icon name (uses `<ae-icon>`). Optional.\n * @prop {boolean} disabled - Disables interaction.\n * @prop {boolean} expanded - Whether children are visible.\n * @prop {boolean} selected - Whether this item is visually selected.\n * @prop {boolean} checked - Checkbox state (checkable mode).\n * @prop {boolean} indeterminate - Checkbox partial state (checkable mode, JS-only).\n *\n * @slot default - Child `<ae-tree-item>` elements.\n * @slot label - Custom label content (falls back to the `label` attribute text).\n */\nclass TreeItem extends AeicoComponent {\n protected static styles = [variables, style];\n\n @prop({ type: String })\n accessor key: string | undefined;\n\n @prop({ type: String })\n accessor icon: string | undefined;\n\n /** Stable auto-generated key used when `key` prop is not set. */\n private readonly _autoKey = `ae-tree-item-${_autoKeyCounter++}`;\n\n private get _effectiveKey(): string {\n return this.key ?? this._autoKey;\n }\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor expanded: boolean = false;\n\n @prop({ type: Boolean })\n accessor selected: boolean = false;\n\n @prop({ type: Boolean })\n accessor checked: boolean = false;\n\n @prop({ type: Boolean })\n accessor indeterminate: boolean = false;\n\n private _checkboxEl: HTMLInputElement | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n\n // Auto-assign slot so users don't need to write slot=\"sub\" manually\n if (\n this.parentElement?.tagName.toLowerCase() === 'ae-tree-item' &&\n !this.hasAttribute('slot')\n ) {\n this.setAttribute('slot', 'sub');\n }\n\n let depth = 0;\n let el: Element | null = this.parentElement;\n while (el) {\n const tag = el.tagName.toLowerCase();\n if (tag === 'ae-tree-item') {\n depth++;\n } else if (tag === 'ae-tree') {\n break;\n }\n el = el.parentElement;\n }\n this.style.setProperty('--depth', String(depth));\n\n if (this._parentTree?.showLine) {\n this.setAttribute('showline', '');\n }\n }\n\n protected onMounted(): void {\n if (this._parentTree?.defaultExpandAll && this._hasChildren) {\n this.expanded = true;\n }\n }\n\n private get _parentTree(): ParentTreeLike | null {\n return this.closest<ParentTreeLike>('ae-tree');\n }\n\n private get _isCheckable(): boolean {\n return this._parentTree?.checkable ?? false;\n }\n\n private get _hasChildren(): boolean {\n return !!this.querySelector(':scope > ae-tree-item[slot=\"sub\"]');\n }\n\n private _handleExpandClick = (e: Event): void => {\n e.stopPropagation();\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-toggle-expand', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleLabelClick = (): void => {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent('_tree-item-select', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey },\n }),\n );\n };\n\n private _handleCheckChange = (e: Event): void => {\n if (this.disabled) return;\n const input = e.target as HTMLInputElement;\n this.dispatchEvent(\n new CustomEvent('_tree-item-check', {\n bubbles: true,\n composed: true,\n detail: { key: this._effectiveKey, checked: input.checked },\n }),\n );\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if ((e.target as HTMLElement).classList.contains('tree-item-label')) {\n this._handleLabelClick();\n }\n }\n if (e.key === 'ArrowRight' && this._hasChildren && !this.expanded) {\n this._handleExpandClick(e);\n }\n if (e.key === 'ArrowLeft' && this.expanded) {\n this._handleExpandClick(e);\n }\n };\n\n protected onUpdated(): void {\n // indeterminate/checked cannot be set correctly via HTML attribute - must set via JS property\n if (this._checkboxEl) {\n this._checkboxEl.checked = this.checked;\n this._checkboxEl.indeterminate = this.indeterminate;\n }\n }\n\n protected render() {\n const hasChildren = this._hasChildren;\n const isCheckable = this._isCheckable;\n const expandIcon = this.icon ?? this._parentTree?.icon;\n\n return html(({ div, button, span, input, slot, svg, path, aeIcon }) => {\n div(\n {\n className: 'tree-item-content',\n role: 'treeitem',\n 'aria-expanded': hasChildren ? String(this.expanded) : undefined,\n 'aria-selected': String(this.selected),\n 'aria-disabled': this.disabled ? 'true' : undefined,\n },\n () => {\n if (hasChildren) {\n button(\n {\n type: 'button',\n className: 'expand-btn',\n tabIndex: -1,\n 'aria-hidden': 'true',\n '@click': this._handleExpandClick,\n },\n () => {\n if (expandIcon) {\n aeIcon({ className: 'expand-icon', name: expandIcon });\n } else {\n svg(\n {\n className: 'expand-icon',\n viewBox: '0 0 10 10',\n 'aria-hidden': 'true',\n xmlns: SVG_NS,\n },\n () => {\n path({ d: 'M2 1l6 4-6 4V1z' });\n },\n );\n }\n },\n );\n } else {\n span({ className: 'expand-placeholder', 'aria-hidden': 'true' });\n }\n\n if (isCheckable) {\n this._checkboxEl = input({\n type: 'checkbox',\n className: 'tree-item-checkbox',\n checked: this.checked,\n disabled: this.disabled,\n tabIndex: -1,\n '@change': this._handleCheckChange,\n });\n }\n\n button(\n {\n type: 'button',\n className: 'tree-item-label',\n disabled: this.disabled,\n '@click': this._handleLabelClick,\n '@keydown': this._handleKeydown,\n },\n () => {\n slot();\n },\n );\n },\n );\n\n div({ className: 'tree-item-children', role: 'group' }, () => {\n slot({ name: 'sub' });\n });\n });\n }\n}\n\nTreeItem.define('tree-item');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-tree-item': TreeItem;\n }\n}\n\nexport default TreeItem;\nexport type TreeItemProps = InferProps<typeof TreeItem>;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,4FAAAA,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;AAA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,oGAAAC,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;AA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",
|
|
6
6
|
"names": ["exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "import_aeico", "style", "_value", "import_aeico", "variables", "sizeCSS", "fieldLabelCSS", "actionButtonCSS", "style", "import_aeico", "import_variables", "import_size", "import_field_label", "import_action_button", "variables", "sizeCSS", "fieldLabelCSS", "actionButtonCSS", "style", "import_aeico", "import_variables", "import_size", "import_field_label", "import_action_button", "variables", "sizeCSS", "fieldLabelCSS", "actionButtonCSS", "style", "import_aeico", "import_variables", "import_size", "import_field_label", "import_action_button", "import_variables", "import_size", "import_aeico", "_a", "_init", "styleVariables", "sizeCSS", "colorCSS", "tagStyle", "import_aeico", "_placeholder_dec", "_a", "_init", "_placeholder", "_value", "variables", "sizeCSS", "fieldLabelCSS", "actionButtonCSS", "style", "import_aeico", "import_variables", "_disabled_dec", "_value_dec", "_a", "_init", "_disabled", "variables", "style", "import_aeico", "import_variables", "import_size", "import_color", "import_field_label", "import_action_button", "_options_dec", "_a", "_init", "_options", "variables", "sizeCSS", "colorCSS", "fieldLabelCSS", "actionButtonCSS", "style", "import_aeico", "import_variables", "import_size", "import_color", "import_field_label", "import_action_button", "styleVariables", "sizeCSS", "colorCSS", "fieldLabelCSS", "actionButtonCSS", "styles", "import_aeico", "import_variables", "import_size", "import_color", "import_field_label", "import_action_button", "variables", "sizeCSS", "colorCSS", "fieldLabelCSS", "actionButtonCSS", "style", "_value", "import_aeico", "import_aeico", "import_variables", "import_size", "import_color", "styleVariables", "sizeCSS", "colorCSS", "style", "import_variables", "import_size", "import_color", "import_field_label", "import_action_button", "_a", "_init", "styleVariables", "sizeCSS", "colorCSS", "fieldLabelCSS", "actionButtonCSS", "styles", "import_variables", "import_color", "import_aeico", "_color_dec", "_a", "_init", "_color", "styleVariables", "colorCSS", "style", "import_variables", "import_aeico", "_a", "_init", "styleVariables", "style", "import_variables", "import_size", "import_color", "import_aeico", "_disabled_dec", "_size_dec", "_variant_dec", "_color_dec", "_a", "_init", "styleVariables", "sizeCSS", "colorCSS", "buttonStyle", "import_variables", "import_size", "import_color", "import_aeico", "import_variables", "import_aeico", "_disabled_dec", "_a", "_init", "_disabled", "styleVariables", "tooltipStyle", "_disabled_dec", "_size_dec", "_variant_dec", "_color_dec", "_a", "_init", "_color", "_variant", "_size", "_disabled", "styleVariables", "sizeCSS", "colorCSS", "copyButtonStyle", "import_aeico", "import_variables", "import_aeico", "import_variables", "_active_dec", "_checked_dec", "_type_dec", "_href_dec", "_disabled_dec", "_value_dec", "_a", "_init", "_value", "_disabled", "_href", "_checked", "variables", "style", "_label_dec", "_disabled_dec", "_open_dec", "_placement_dec", "_a", "_init", "_placement", "_open", "_disabled", "_label", "variables", "style", "import_aeico", "_closeOnSelect_dec", "_placement_dec", "_disabled_dec", "_size_dec", "_color_dec", "_variant_dec", "_a", "_init", "_variant", "_color", "_size", "_disabled", "_placement", "_closeOnSelect", "import_variables", "import_aeico", "styleVariables", "buttonGroupStyle", "import_variables", "import_size", "import_color", "import_aeico", "_pill_dec", "_size_dec", "_variant_dec", "_color_dec", "_a", "_init", "_color", "_variant", "_size", "_pill", "styleVariables", "sizeCSS", "colorCSS", "badgeStyle", "import_variables", "import_color", "import_aeico", "styleVariables", "colorCSS", "alertStyle", "import_variables", "import_aeico", "styleVariables", "style", "import_variables", "import_aeico", "_size_dec", "_placement_dec", "_label_dec", "_a", "_init", "_label", "_placement", "_size", "styleVariables", "style", "import_aeico", "import_variables", "import_aeico", "styleVariables", "tabsStyle", "import_aeico", "tabStyle", "import_aeico", "tabPanelStyle", "import_variables", "import_color", "import_aeico", "_color_dec", "_a", "_init", "_color", "styleVariables", "colorCSS", "style", "import_variables", "import_color", "import_aeico", "_variant_dec", "_color_dec", "_a", "_init", "_color", "_variant", "styleVariables", "colorCSS", "cardStyle", "import_variables", "import_color", "import_aeico", "_open_dec", "_color_dec", "_a", "_init", "_color", "_open", "styleVariables", "colorCSS", "navbarStyle", "import_aeico", "import_variables", "import_size", "import_color", "_label_dec", "_color_dec", "_size_dec", "_variant_dec", "_a", "_init", "_variant", "_size", "_color", "_label", "styleVariables", "sizeCSS", "colorCSS", "style", "import_variables", "import_color", "import_aeico", "_iconPlacement_dec", "_disabled_dec", "_color_dec", "_variant_dec", "_a", "_init", "_variant", "_color", "_disabled", "_iconPlacement", "styleVariables", "colorCSS", "detailStyle", "import_variables", "import_aeico", "styleVariables", "detailGroupStyle", "import_aeico", "import_variables", "import_color", "_color_dec", "_label_dec", "_value_dec", "_a", "_init", "_value", "_label", "_color", "styleVariables", "colorCSS", "style", "import_aeico", "import_variables", "import_aeico", "import_variables", "_iconPlacement_dec", "_open_dec", "_selected_dec", "_href_dec", "_disabled_dec", "_label_dec", "_a", "_init", "_label", "_disabled", "_href", "_selected", "_open", "_iconPlacement", "variables", "style", "_trigger_dec", "_a", "_init", "_trigger", "variables", "style", "import_aeico", "import_variables", "import_size", "_variant_dec", "_disabled_dec", "_size_dec", "_a", "_init", "_size", "_disabled", "_variant", "styleVariables", "sizeCSS", "paginationStyle", "import_aeico", "import_variables", "import_aeico", "import_variables", "_checked_dec", "_selected_dec", "_disabled_dec", "_icon_dec", "_key_dec", "_a", "_init", "_key", "_icon", "_disabled", "_selected", "_checked", "variables", "style", "_icon_dec", "_selectedKey_dec", "_multiple_dec", "_a", "_init", "_multiple", "_selectedKey", "_icon", "variables", "style"]
|
|
7
7
|
}
|