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/radio-group.cjs
CHANGED
|
@@ -120,7 +120,7 @@ var require_variables = __commonJS({
|
|
|
120
120
|
--ae-cyan-800: color-mix(in srgb, var(--ae-cyan) 40%, black);
|
|
121
121
|
--ae-cyan-900: color-mix(in srgb, var(--ae-cyan) 20%, black);
|
|
122
122
|
|
|
123
|
-
/* Gray (neutral
|
|
123
|
+
/* Gray (neutral - base #6e6e6e) */
|
|
124
124
|
--ae-gray-100: color-mix(in srgb, var(--ae-gray) 20%, white);
|
|
125
125
|
--ae-gray-200: color-mix(in srgb, var(--ae-gray) 40%, white);
|
|
126
126
|
--ae-gray-300: color-mix(in srgb, var(--ae-gray) 60%, white);
|
|
@@ -131,7 +131,7 @@ var require_variables = __commonJS({
|
|
|
131
131
|
--ae-gray-800: color-mix(in srgb, var(--ae-gray) 40%, black);
|
|
132
132
|
--ae-gray-900: color-mix(in srgb, var(--ae-gray) 20%, black);
|
|
133
133
|
|
|
134
|
-
/* Slate (blue-gray
|
|
134
|
+
/* Slate (blue-gray - base #64748b, used for 'secondary') */
|
|
135
135
|
--ae-slate-100: color-mix(in srgb, var(--ae-slate) 20%, white);
|
|
136
136
|
--ae-slate-200: color-mix(in srgb, var(--ae-slate) 40%, white);
|
|
137
137
|
--ae-slate-300: color-mix(in srgb, var(--ae-slate) 60%, white);
|
|
@@ -167,7 +167,7 @@ var require_variables = __commonJS({
|
|
|
167
167
|
|
|
168
168
|
:root,
|
|
169
169
|
:host {
|
|
170
|
-
/* Hover / active mix (light default
|
|
170
|
+
/* Hover / active mix (light default - overridden in \xA7 6 dark) */
|
|
171
171
|
--ae-color-mix-hover: black 10%;
|
|
172
172
|
--ae-color-mix-active: black 20%;
|
|
173
173
|
|
|
@@ -201,7 +201,7 @@ var require_variables = __commonJS({
|
|
|
201
201
|
--ae-color-info-active: color-mix(in srgb, var(--ae-color-info), var(--ae-color-mix-active));
|
|
202
202
|
--ae-color-info-disabled: color-mix(in srgb, var(--ae-cyan) 50%, var(--ae-gray-500));
|
|
203
203
|
|
|
204
|
-
/* Secondary (Slate)
|
|
204
|
+
/* Secondary (Slate) - base differs per theme, overridden in \xA7 6 dark */
|
|
205
205
|
--ae-color-secondary: var(--ae-slate-500);
|
|
206
206
|
--ae-color-secondary-hover: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-hover));
|
|
207
207
|
--ae-color-secondary-active: color-mix(in srgb, var(--ae-color-secondary), var(--ae-color-mix-active));
|
|
@@ -217,7 +217,7 @@ var require_variables = __commonJS({
|
|
|
217
217
|
:host {
|
|
218
218
|
color-scheme: light;
|
|
219
219
|
|
|
220
|
-
/* Gray UI aliases
|
|
220
|
+
/* Gray UI aliases - lighter palette steps for elements on white background */
|
|
221
221
|
--ae-color-gray-dark: var(--ae-gray-400);
|
|
222
222
|
--ae-color-gray: var(--ae-gray-300);
|
|
223
223
|
--ae-color-gray-light: var(--ae-gray-200);
|
|
@@ -249,7 +249,7 @@ var require_variables = __commonJS({
|
|
|
249
249
|
--ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.30);
|
|
250
250
|
--ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.15);
|
|
251
251
|
|
|
252
|
-
/* Subtle intent tokens
|
|
252
|
+
/* Subtle intent tokens - light context */
|
|
253
253
|
--ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.08);
|
|
254
254
|
--ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.40);
|
|
255
255
|
--ae-color-primary-text-emphasis: var(--ae-blue-700);
|
|
@@ -280,7 +280,7 @@ var require_variables = __commonJS({
|
|
|
280
280
|
--ae-color-dark-bg-subtle: var(--ae-dark-100); /* opaque on white: ~#d6d8d9 */
|
|
281
281
|
--ae-color-dark-border-subtle: var(--ae-dark-300); /* opaque on white: ~#85898c */
|
|
282
282
|
|
|
283
|
-
/* Component tokens
|
|
283
|
+
/* Component tokens - light defaults */
|
|
284
284
|
--ae-action-btn-bg: var(--ae-gray-200);
|
|
285
285
|
--ae-action-btn-bg-hover: var(--ae-color-primary);
|
|
286
286
|
--ae-action-btn-color: var(--ae-gray-600);
|
|
@@ -315,14 +315,12 @@ var require_variables = __commonJS({
|
|
|
315
315
|
--ae-size-3xs: round(calc(var(--ae-size-2xs) / 1.125), 1px); /* 10px */
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
/* Border-radius tokens
|
|
318
|
+
/* Border-radius tokens - shared across all components */
|
|
319
319
|
:root,
|
|
320
320
|
:host {
|
|
321
321
|
/**
|
|
322
322
|
* Unified border-radius hook for all components.
|
|
323
323
|
*
|
|
324
|
-
* Not set by default \u2014 each component falls back to its own --ae-radius-*
|
|
325
|
-
* token (e.g. button \u2192 sm, card \u2192 lg, input \u2192 xs).
|
|
326
324
|
*
|
|
327
325
|
* Usage:
|
|
328
326
|
* :root { --ae-border-radius: 0; } // global: all components square
|
|
@@ -344,7 +342,7 @@ var require_variables = __commonJS({
|
|
|
344
342
|
--ae-radius-circle: 50%;
|
|
345
343
|
}
|
|
346
344
|
|
|
347
|
-
/* Layout tokens
|
|
345
|
+
/* Layout tokens - defined on :root so all light DOM elements can use them */
|
|
348
346
|
:root,
|
|
349
347
|
:host {
|
|
350
348
|
--container-max-width: 1280px;
|
|
@@ -357,18 +355,18 @@ var require_variables = __commonJS({
|
|
|
357
355
|
:host-context([theme="dark"]) {
|
|
358
356
|
color-scheme: dark;
|
|
359
357
|
|
|
360
|
-
/* Hover / active
|
|
358
|
+
/* Hover / active - slightly gentler on dark backgrounds */
|
|
361
359
|
--ae-color-mix-hover: black 8%;
|
|
362
360
|
--ae-color-mix-active: black 16%;
|
|
363
361
|
|
|
364
|
-
/* Gray UI aliases
|
|
362
|
+
/* Gray UI aliases - darker palette steps for elements on dark background */
|
|
365
363
|
--ae-color-gray-dark: var(--ae-gray-800);
|
|
366
364
|
--ae-color-gray: var(--ae-gray-700);
|
|
367
365
|
--ae-color-gray-light: var(--ae-gray-600);
|
|
368
366
|
--ae-color-gray-lighter: var(--ae-gray-500);
|
|
369
367
|
--ae-color-gray-lightest: var(--ae-gray-400);
|
|
370
368
|
|
|
371
|
-
/* Secondary
|
|
369
|
+
/* Secondary - deeper base on dark background */
|
|
372
370
|
--ae-color-secondary: var(--ae-slate-700);
|
|
373
371
|
--ae-color-secondary-text: var(--ae-slate-300);
|
|
374
372
|
|
|
@@ -397,7 +395,7 @@ var require_variables = __commonJS({
|
|
|
397
395
|
--ae-focus-ring: rgb(from var(--ae-blue) r g b / 0.25);
|
|
398
396
|
--ae-focus-ring-sm: rgb(from var(--ae-blue) r g b / 0.10);
|
|
399
397
|
|
|
400
|
-
/* Subtle intent tokens
|
|
398
|
+
/* Subtle intent tokens - dark context (more alpha, lighter text-emphasis) */
|
|
401
399
|
--ae-color-primary-bg-subtle: rgb(from var(--ae-blue) r g b / 0.10);
|
|
402
400
|
--ae-color-primary-border-subtle: rgb(from var(--ae-blue) r g b / 0.30);
|
|
403
401
|
--ae-color-primary-text-emphasis: var(--ae-blue-300);
|
|
@@ -428,7 +426,7 @@ var require_variables = __commonJS({
|
|
|
428
426
|
--ae-color-dark-bg-subtle: rgb(from var(--ae-dark) r g b / 0.30);
|
|
429
427
|
--ae-color-dark-border-subtle: rgb(from var(--ae-dark) r g b / 0.50);
|
|
430
428
|
|
|
431
|
-
/* Component tokens
|
|
429
|
+
/* Component tokens - dark overrides */
|
|
432
430
|
--ae-action-btn-bg: var(--ae-color-gray);
|
|
433
431
|
--ae-action-btn-bg-hover: color-mix(in srgb, var(--ae-blue) 25%, var(--ae-gray-800));
|
|
434
432
|
--ae-action-btn-color: var(--ae-gray-400);
|
|
@@ -464,7 +462,7 @@ var require_field_label = __commonJS({
|
|
|
464
462
|
// css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css
|
|
465
463
|
var require_action_button = __commonJS({
|
|
466
464
|
"css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css"(exports2, module2) {
|
|
467
|
-
module2.exports = "/* Action button base styles
|
|
465
|
+
module2.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";
|
|
468
466
|
}
|
|
469
467
|
});
|
|
470
468
|
|
|
@@ -482,19 +480,12 @@ var import_aeico2 = require("aeico");
|
|
|
482
480
|
|
|
483
481
|
// src/aeico-component.ts
|
|
484
482
|
var import_aeico = require("aeico");
|
|
485
|
-
|
|
486
|
-
// src/utils.ts
|
|
487
|
-
function toKebab(str) {
|
|
488
|
-
const cleaned = str.replace(/^[_\d]+/, "");
|
|
489
|
-
return cleaned.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
// src/aeico-component.ts
|
|
493
483
|
var TAG_NAME_PREFIX = "ae";
|
|
494
484
|
var AeicoComponent = class extends import_aeico.AeicoElement {
|
|
495
|
-
static
|
|
496
|
-
const
|
|
497
|
-
|
|
485
|
+
static define(name) {
|
|
486
|
+
const prefix = `${TAG_NAME_PREFIX}-`;
|
|
487
|
+
const tagName = name.startsWith(prefix) ? name : `${prefix}${name}`;
|
|
488
|
+
super.define(tagName);
|
|
498
489
|
}
|
|
499
490
|
};
|
|
500
491
|
var aeico_component_default = AeicoComponent;
|
|
@@ -649,7 +640,7 @@ var AeicoField = class _AeicoField extends aeico_component_default {
|
|
|
649
640
|
}
|
|
650
641
|
}
|
|
651
642
|
/**
|
|
652
|
-
* Watcher for error property
|
|
643
|
+
* Watcher for error property - syncs aria-invalid on the field element
|
|
653
644
|
*/
|
|
654
645
|
onErrorChanged(newValue) {
|
|
655
646
|
if (this.fieldElement) {
|
|
@@ -798,7 +789,6 @@ var RadioGroup = class _RadioGroup extends aeico_field_default {
|
|
|
798
789
|
_slotOptions = [];
|
|
799
790
|
static _instanceCount = 0;
|
|
800
791
|
_groupName;
|
|
801
|
-
static tagName = "radio-group";
|
|
802
792
|
static props = {
|
|
803
793
|
options: { type: Array },
|
|
804
794
|
mode: { type: String },
|
|
@@ -842,7 +832,7 @@ var RadioGroup = class _RadioGroup extends aeico_field_default {
|
|
|
842
832
|
);
|
|
843
833
|
this.update();
|
|
844
834
|
}
|
|
845
|
-
// Single handler for radio inputs
|
|
835
|
+
// Single handler for radio inputs - handles both select and deselect.
|
|
846
836
|
// Only uses `click` (not `change`) because `change` fires before `click`;
|
|
847
837
|
// if we set value in `change`, the `click` handler would see the updated
|
|
848
838
|
// value and immediately deselect.
|
|
@@ -952,20 +942,19 @@ var RadioGroup = class _RadioGroup extends aeico_field_default {
|
|
|
952
942
|
}
|
|
953
943
|
}
|
|
954
944
|
};
|
|
955
|
-
RadioGroup.
|
|
945
|
+
RadioGroup.define("radio-group");
|
|
956
946
|
var radio_group_default = RadioGroup;
|
|
957
947
|
|
|
958
948
|
// src/radio-group/radio.ts
|
|
959
949
|
var Radio = class extends aeico_component_default {
|
|
960
|
-
|
|
961
|
-
/** No shadow DOM — this element is a transparent data/content carrier. */
|
|
950
|
+
/** No shadow DOM - this element is a transparent data/content carrier. */
|
|
962
951
|
static useShadowDOM = false;
|
|
963
952
|
static props = {
|
|
964
953
|
value: { type: String },
|
|
965
954
|
disabled: { type: Boolean }
|
|
966
955
|
};
|
|
967
956
|
};
|
|
968
|
-
Radio.
|
|
957
|
+
Radio.define("radio");
|
|
969
958
|
var radio_default = Radio;
|
|
970
959
|
// Annotate the CommonJS export names for ESM import in node:
|
|
971
960
|
0 && (module.exports = {
|
package/dist/radio-group.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/components/radio-group.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/variables.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/size.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/color.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/field-label.css", "css-inline:/home/runner/work/aeico-components/aeico-components/src/styles/components/action-button.css", "../src/radio-group/index.ts", "../src/aeico-field.ts", "../src/aeico-component.ts", "../src/
|
|
4
|
-
"sourcesContent": ["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 = \":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 --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 --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\"", "export { default, default as RadioGroup } from './radio-group';\nexport type { RadioGroupProps } from './radio-group';\nexport type { RadioGroupMode, RadioGroupOption, RadioGroupOptions } from './defines';\nexport { default as Radio } from './radio';\nexport type { RadioProps } from './radio';\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, 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"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,yGAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA,4FAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
|
|
3
|
+
"sources": ["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/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/color.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", "../src/radio-group/index.ts", "../src/aeico-field.ts", "../src/aeico-component.ts", "../src/radio-group/radio-group.ts", "../src/radio-group/radio.ts"],
|
|
4
|
+
"sourcesContent": ["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 = \":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 --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 --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\"", "export { default, default as RadioGroup } from './radio-group';\nexport type { RadioGroupProps } from './radio-group';\nexport type { RadioGroupMode, RadioGroupOption, RadioGroupOptions } from './defines';\nexport { default as Radio } from './radio';\nexport type { RadioProps } from './radio';\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, 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"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,yGAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA,4FAAAC,UAAAC,SAAA;AAAA,IAAAA,QAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
|
|
6
6
|
"names": ["exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "import_aeico", "style", "import_aeico", "variables", "sizeCSS", "colorCSS", "fieldLabelCSS", "actionButtonCSS", "style"]
|
|
7
7
|
}
|