@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.2
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/components/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
- package/components/bibtemplate/dist/index.js +9 -1
- package/components/bibtemplate/dist/registered.js +9 -1
- package/components/checkbox/demo/css-only.html +57 -0
- package/components/checkbox/demo/css-only.md +146 -0
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/demo/pages.json +1 -1
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/demo/why-checkbox.html +57 -0
- package/components/checkbox/demo/why-checkbox.md +86 -0
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/css-only.html +57 -0
- package/components/combobox/demo/css-only.md +209 -0
- package/components/combobox/demo/customize.min.js +250 -16
- package/components/combobox/demo/getting-started.min.js +250 -16
- package/components/combobox/demo/index.min.js +250 -16
- package/components/combobox/demo/pages.json +1 -1
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/demo/why-combobox.html +57 -0
- package/components/combobox/demo/why-combobox.md +113 -0
- package/components/combobox/dist/index.js +250 -16
- package/components/combobox/dist/registered.js +250 -16
- package/components/counter/demo/css-only.html +57 -0
- package/components/counter/demo/css-only.md +184 -0
- package/components/counter/demo/customize.min.js +249 -15
- package/components/counter/demo/index.min.js +249 -15
- package/components/counter/demo/keyboard-behavior.md +1 -0
- package/components/counter/demo/pages.json +1 -1
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/demo/why-counter.html +57 -0
- package/components/counter/demo/why-counter.md +108 -0
- package/components/counter/dist/index.js +10 -2
- package/components/counter/dist/registered.js +10 -2
- package/components/datepicker/demo/accessibility.md +54 -3
- package/components/datepicker/demo/api.md +63 -53
- package/components/datepicker/demo/css-only.html +57 -0
- package/components/datepicker/demo/css-only.md +151 -0
- package/components/datepicker/demo/customize.html +2 -0
- package/components/datepicker/demo/customize.js +19 -0
- package/components/datepicker/demo/customize.md +56 -0
- package/components/datepicker/demo/customize.min.js +36147 -0
- package/components/datepicker/demo/design.md +3 -1
- package/components/datepicker/demo/index.js +5 -1
- package/components/datepicker/demo/index.md +104 -15
- package/components/datepicker/demo/index.min.js +2485 -261
- package/components/datepicker/demo/keyboard-behavior.md +201 -2
- package/components/datepicker/demo/pages.json +1 -1
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +21 -12
- package/components/datepicker/demo/why-datepicker.html +57 -0
- package/components/datepicker/demo/why-datepicker.md +133 -0
- package/components/datepicker/dist/index.js +2348 -211
- package/components/datepicker/dist/registered.js +2348 -211
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +113 -13
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +38 -1
- package/components/datepicker/dist/src/auro-calendar.d.ts +258 -0
- package/components/datepicker/dist/src/auro-datepicker.d.ts +141 -41
- package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
- package/components/dropdown/demo/accessibility.md +11 -0
- package/components/dropdown/demo/api.md +1 -0
- package/components/dropdown/demo/css-only.html +57 -0
- package/components/dropdown/demo/css-only.md +219 -0
- package/components/dropdown/demo/customize.md +3 -0
- package/components/dropdown/demo/customize.min.js +239 -13
- package/components/dropdown/demo/getting-started.min.js +239 -13
- package/components/dropdown/demo/index.min.js +239 -13
- package/components/dropdown/demo/keyboard-behavior.md +1 -0
- package/components/dropdown/demo/pages.json +1 -1
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/demo/why-dropdown.html +57 -0
- package/components/dropdown/demo/why-dropdown.md +97 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +34 -1
- package/components/dropdown/dist/index.js +239 -13
- package/components/dropdown/dist/registered.js +239 -13
- package/components/form/demo/css-only.html +57 -0
- package/components/form/demo/css-only.md +156 -0
- package/components/form/demo/customize.min.js +3098 -259
- package/components/form/demo/getting-started.min.js +3098 -259
- package/components/form/demo/index.min.js +3098 -259
- package/components/form/demo/pages.json +1 -1
- package/components/form/demo/registerDemoDeps.min.js +3098 -259
- package/components/form/demo/styles.min.css +1 -1
- package/components/form/demo/why-form.html +57 -0
- package/components/form/demo/why-form.md +101 -0
- package/components/input/demo/css-only.html +57 -0
- package/components/input/demo/css-only.md +199 -0
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/demo/pages.json +1 -1
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/demo/why-input.html +57 -0
- package/components/input/demo/why-input.md +121 -0
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/css-only.html +57 -0
- package/components/menu/demo/css-only.md +166 -0
- package/components/menu/demo/pages.json +1 -1
- package/components/menu/demo/styles.min.css +1 -1
- package/components/menu/demo/why-menu.html +57 -0
- package/components/menu/demo/why-menu.md +104 -0
- package/components/radio/demo/css-only.html +57 -0
- package/components/radio/demo/css-only.md +151 -0
- package/components/radio/demo/customize.min.js +1764 -0
- package/components/radio/demo/demo-support.min.js +55807 -0
- package/components/radio/demo/getting-started.js +1 -1
- package/components/radio/demo/getting-started.md +1 -1
- package/components/radio/demo/getting-started.min.js +1783 -0
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/demo/pages.json +1 -1
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/demo/why-radio.html +57 -0
- package/components/radio/demo/why-radio.md +92 -0
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/css-only.html +57 -0
- package/components/select/demo/css-only.md +203 -0
- package/components/select/demo/customize.min.js +249 -15
- package/components/select/demo/getting-started.min.js +249 -15
- package/components/select/demo/index.min.js +249 -15
- package/components/select/demo/keyboard-behavior.md +1 -0
- package/components/select/demo/pages.json +1 -1
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/demo/why-select.html +57 -0
- package/components/select/demo/why-select.md +128 -0
- package/components/select/dist/index.js +249 -15
- package/components/select/dist/registered.js +249 -15
- package/custom-elements.json +1171 -92
- package/package.json +8 -8
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<auro-header level="1" id="overview">Why auro-select?</auro-header>
|
|
2
|
+
<p>The native <code><select></code> element is one of the most difficult HTML elements to style, has no support for rich option content, and behaves inconsistently across browsers. <code>auro-select</code> provides a fully styled, accessible, and feature-rich replacement.</p>
|
|
3
|
+
<auro-header level="2" id="accessibility">Accessibility</auro-header>
|
|
4
|
+
<p>Native <code><select></code> has basic accessibility, but the dropdown behavior, keyboard navigation, and screen reader announcements vary between browsers and platforms.</p>
|
|
5
|
+
<p><code>auro-select</code> provides:</p>
|
|
6
|
+
<ul>
|
|
7
|
+
<li><strong>ARIA combobox pattern</strong> — The trigger uses <code>role="combobox"</code> with <code>aria-expanded</code>, <code>aria-controls</code>, and <code>aria-activedescendant</code> for proper screen reader semantics.</li>
|
|
8
|
+
<li><strong>Full keyboard navigation</strong> — Arrow Up/Down navigate options (with Alt modifier for jumping to first/last), Enter selects, Escape closes, Home/End jump to boundaries, Tab closes and advances focus.</li>
|
|
9
|
+
<li><strong>Screen reader announcements</strong> — <code>aria-live="polite"</code> announces selections, <code>aria-live="assertive"</code> announces validation errors. Each option carries <code>aria-setsize</code> and <code>aria-posinset</code> for position context.</li>
|
|
10
|
+
<li><strong>Active descendant</strong> — Focus stays on the trigger while arrow keys highlight options, so screen readers announce the highlighted option without disrupting focus.</li>
|
|
11
|
+
</ul>
|
|
12
|
+
<auro-header level="2" id="richOptionContent">Rich option content</auro-header>
|
|
13
|
+
<p><code><option></code> elements accept only plain text. There is no native way to add icons, secondary text, or nested groups.</p>
|
|
14
|
+
<p><code>auro-select</code> uses <code>auro-menu</code> internally, enabling:</p>
|
|
15
|
+
<ul>
|
|
16
|
+
<li>Full HTML content in each option (icons, descriptions, badges)</li>
|
|
17
|
+
<li>Nested option groups for hierarchical organization</li>
|
|
18
|
+
<li>Checkmark indicators for the selected option</li>
|
|
19
|
+
<li>Option sizing (sm, md) for different information density</li>
|
|
20
|
+
</ul>
|
|
21
|
+
<auro-header level="2" id="multiselect">Multi-select</auro-header>
|
|
22
|
+
<p>Native <code><select multiple></code> renders a scrollable list box — a UI pattern widely regarded as confusing. Users must Ctrl+click to select multiple items, and there is no checkmark or visual feedback.</p>
|
|
23
|
+
<p><code>auro-select</code> with <code>multiSelect</code> provides:</p>
|
|
24
|
+
<ul>
|
|
25
|
+
<li>A dropdown trigger that stays closed between selections</li>
|
|
26
|
+
<li>Checkmarks on each selected option</li>
|
|
27
|
+
<li>A JSON-stringified array value for easy consumption</li>
|
|
28
|
+
<li><code>clearSelection()</code> to reset all selections</li>
|
|
29
|
+
</ul>
|
|
30
|
+
<auro-header level="2" id="responsiveLayout">Responsive layout</auro-header>
|
|
31
|
+
<p>Native <code><select></code> renders a browser-controlled popup that cannot be repositioned, resized, or presented differently on mobile.</p>
|
|
32
|
+
<p><code>auro-select</code> adapts to the viewport:</p>
|
|
33
|
+
<ul>
|
|
34
|
+
<li><strong>Desktop</strong> — Options appear in a positioned dropdown using Floating UI, with configurable placement, offset, flip, shift, and auto-placement</li>
|
|
35
|
+
<li><strong>Mobile</strong> — Options open in a fullscreen dialog below a configurable breakpoint (<code>fullscreenBreakpoint</code>)</li>
|
|
36
|
+
<li><strong>Width control</strong> — <code>matchWidth</code> sizes the dropdown to the trigger, <code>flexMenuWidth</code> lets it size independently</li>
|
|
37
|
+
</ul>
|
|
38
|
+
<auro-header level="2" id="validation">Validation</auro-header>
|
|
39
|
+
<p>Native <code><select></code> validation is limited to <code>required</code>. Error messages are browser-controlled.</p>
|
|
40
|
+
<p><code>auro-select</code> integrates with the Auro form validation system:</p>
|
|
41
|
+
<ul>
|
|
42
|
+
<li>Required field validation with custom messaging</li>
|
|
43
|
+
<li>Custom error messages per validity state (<code>setCustomValidityCustomError</code>, <code>setCustomValidityValueMissing</code>)</li>
|
|
44
|
+
<li><code>noValidate</code> to disable auto-validation on blur</li>
|
|
45
|
+
<li>Error display via the <code>helpText</code> slot</li>
|
|
46
|
+
<li>Dispatches <code>auroFormElement-validated</code> events for parent form coordination</li>
|
|
47
|
+
</ul>
|
|
48
|
+
<auro-header level="2" id="displayValueCustomization">Display value customization</auro-header>
|
|
49
|
+
<p>Native <code><select></code> always shows the selected option's text. There is no way to display a formatted or alternative representation.</p>
|
|
50
|
+
<p><code>auro-select</code> provides:</p>
|
|
51
|
+
<ul>
|
|
52
|
+
<li>A <code>displayValue</code> slot for custom HTML rendering of the selected value</li>
|
|
53
|
+
<li>A <code>valueText</code> slot for formatted text display</li>
|
|
54
|
+
<li>A <code>placeholder</code> slot (or attribute) for empty-state messaging</li>
|
|
55
|
+
<li><code>forceDisplayValue</code> to always show the custom display slot</li>
|
|
56
|
+
</ul>
|
|
57
|
+
<auro-header level="2" id="designSystemIntegration">Design system integration</auro-header>
|
|
58
|
+
<p>Native <code><select></code> styling is notoriously difficult. The dropdown arrow, option list, and selected value display are all browser-controlled and resist CSS customization.</p>
|
|
59
|
+
<p><code>auro-select</code> is built with the Auro Design System:</p>
|
|
60
|
+
<ul>
|
|
61
|
+
<li>Three layout options: classic, emphasized, snowflake</li>
|
|
62
|
+
<li>Shape variants: box, pill, pill-left, pill-right</li>
|
|
63
|
+
<li>Size options (lg, xl for emphasized layout)</li>
|
|
64
|
+
<li>Light and dark theme support (<code>appearance</code>)</li>
|
|
65
|
+
<li>CSS <code>::part()</code> selectors (<code>dropdownTrigger</code>, <code>dropdownChevron</code>, <code>dropdownSize</code>, <code>helpText</code>)</li>
|
|
66
|
+
</ul>
|
|
67
|
+
<auro-header level="2" id="summary">Summary</auro-header>
|
|
68
|
+
<table>
|
|
69
|
+
<thead>
|
|
70
|
+
<tr>
|
|
71
|
+
<th>Capability</th>
|
|
72
|
+
<th><code><select></code></th>
|
|
73
|
+
<th><code>auro-select</code></th>
|
|
74
|
+
</tr>
|
|
75
|
+
</thead>
|
|
76
|
+
<tbody>
|
|
77
|
+
<tr>
|
|
78
|
+
<td>Styleable dropdown</td>
|
|
79
|
+
<td>No (browser-controlled)</td>
|
|
80
|
+
<td>Fully styled</td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<td>Rich HTML in options</td>
|
|
84
|
+
<td>Plain text only</td>
|
|
85
|
+
<td>Full HTML (icons, groups, descriptions)</td>
|
|
86
|
+
</tr>
|
|
87
|
+
<tr>
|
|
88
|
+
<td>Multi-select UX</td>
|
|
89
|
+
<td>Ctrl+click list box</td>
|
|
90
|
+
<td>Checkmark dropdown</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td>Keyboard navigation</td>
|
|
94
|
+
<td>Basic</td>
|
|
95
|
+
<td>Full (arrows, Alt+arrows, Home/End)</td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr>
|
|
98
|
+
<td>Screen reader announcements</td>
|
|
99
|
+
<td>Varies by browser</td>
|
|
100
|
+
<td>Consistent ARIA live regions</td>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td>Mobile fullscreen</td>
|
|
104
|
+
<td>No</td>
|
|
105
|
+
<td>Automatic at breakpoint</td>
|
|
106
|
+
</tr>
|
|
107
|
+
<tr>
|
|
108
|
+
<td>Viewport-aware positioning</td>
|
|
109
|
+
<td>No</td>
|
|
110
|
+
<td>Floating UI with flip/shift/auto</td>
|
|
111
|
+
</tr>
|
|
112
|
+
<tr>
|
|
113
|
+
<td>Custom validation messages</td>
|
|
114
|
+
<td>Browser-controlled</td>
|
|
115
|
+
<td>Per-constraint custom messages</td>
|
|
116
|
+
</tr>
|
|
117
|
+
<tr>
|
|
118
|
+
<td>Display value customization</td>
|
|
119
|
+
<td>No</td>
|
|
120
|
+
<td><code>displayValue</code> and <code>valueText</code> slots</td>
|
|
121
|
+
</tr>
|
|
122
|
+
<tr>
|
|
123
|
+
<td>Theming</td>
|
|
124
|
+
<td>No</td>
|
|
125
|
+
<td>Three layouts + appearance modes</td>
|
|
126
|
+
</tr>
|
|
127
|
+
</tbody>
|
|
128
|
+
</table>
|
|
@@ -4215,7 +4215,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
4215
4215
|
});
|
|
4216
4216
|
}
|
|
4217
4217
|
|
|
4218
|
-
var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
4218
|
+
var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
4219
4219
|
|
|
4220
4220
|
var colorCss$2 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
4221
4221
|
|
|
@@ -4846,7 +4846,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
4846
4846
|
}
|
|
4847
4847
|
};
|
|
4848
4848
|
|
|
4849
|
-
var formkitVersion$1 = '
|
|
4849
|
+
var formkitVersion$1 = '202606081904';
|
|
4850
4850
|
|
|
4851
4851
|
class AuroElement extends LitElement {
|
|
4852
4852
|
static get properties() {
|
|
@@ -5026,6 +5026,7 @@ class AuroDropdown extends AuroElement {
|
|
|
5026
5026
|
_intializeDefaults() {
|
|
5027
5027
|
this.appearance = 'default';
|
|
5028
5028
|
this.chevron = false;
|
|
5029
|
+
this.desktopModal = false;
|
|
5029
5030
|
this.disabled = false;
|
|
5030
5031
|
this.disableKeyboardHandling = false;
|
|
5031
5032
|
this.error = false;
|
|
@@ -5206,6 +5207,14 @@ class AuroDropdown extends AuroElement {
|
|
|
5206
5207
|
reflect: true
|
|
5207
5208
|
},
|
|
5208
5209
|
|
|
5210
|
+
/**
|
|
5211
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
5212
|
+
*/
|
|
5213
|
+
desktopModal: {
|
|
5214
|
+
type: Boolean,
|
|
5215
|
+
reflect: true
|
|
5216
|
+
},
|
|
5217
|
+
|
|
5209
5218
|
/**
|
|
5210
5219
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
5211
5220
|
*/
|
|
@@ -5493,6 +5502,15 @@ class AuroDropdown extends AuroElement {
|
|
|
5493
5502
|
|
|
5494
5503
|
disconnectedCallback() {
|
|
5495
5504
|
super.disconnectedCallback();
|
|
5505
|
+
this._clearPageInert();
|
|
5506
|
+
if (this._bibTabHandler) {
|
|
5507
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5508
|
+
this._bibTabHandler = undefined;
|
|
5509
|
+
}
|
|
5510
|
+
if (this.focusTrap) {
|
|
5511
|
+
this.focusTrap.disconnect();
|
|
5512
|
+
this.focusTrap = undefined;
|
|
5513
|
+
}
|
|
5496
5514
|
if (this.floater) {
|
|
5497
5515
|
this.floater.hideBib('disconnect');
|
|
5498
5516
|
this.floater.disconnect();
|
|
@@ -5520,19 +5538,45 @@ class AuroDropdown extends AuroElement {
|
|
|
5520
5538
|
if (this.isPopoverVisible) {
|
|
5521
5539
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
5522
5540
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
5523
|
-
|
|
5524
|
-
this.
|
|
5541
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5542
|
+
this.updateFocusTrap();
|
|
5543
|
+
|
|
5544
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
5545
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5546
|
+
this._setPageInert();
|
|
5547
|
+
}
|
|
5525
5548
|
} else {
|
|
5526
5549
|
this.bibElement.value.close();
|
|
5550
|
+
this._clearPageInert();
|
|
5527
5551
|
}
|
|
5528
5552
|
}
|
|
5529
5553
|
|
|
5530
5554
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5531
5555
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5532
5556
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5533
|
-
const useModal = this.isBibFullscreen;
|
|
5534
5557
|
this.bibElement.value.close();
|
|
5535
|
-
this.bibElement.value.open(
|
|
5558
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5559
|
+
|
|
5560
|
+
// Re-initialize focus management for the new strategy
|
|
5561
|
+
this.updateFocusTrap();
|
|
5562
|
+
|
|
5563
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
5564
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5565
|
+
this._setPageInert();
|
|
5566
|
+
} else {
|
|
5567
|
+
this._clearPageInert();
|
|
5568
|
+
}
|
|
5569
|
+
}
|
|
5570
|
+
|
|
5571
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
5572
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
5573
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
5574
|
+
this.updateFocusTrap();
|
|
5575
|
+
if (this.desktopModal) {
|
|
5576
|
+
this._setPageInert();
|
|
5577
|
+
} else {
|
|
5578
|
+
this._clearPageInert();
|
|
5579
|
+
}
|
|
5536
5580
|
}
|
|
5537
5581
|
}
|
|
5538
5582
|
|
|
@@ -5542,8 +5586,14 @@ class AuroDropdown extends AuroElement {
|
|
|
5542
5586
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
5543
5587
|
*/
|
|
5544
5588
|
handleDropdownToggle(event) {
|
|
5545
|
-
this.updateFocusTrap();
|
|
5546
5589
|
this.isPopoverVisible = event.detail.expanded;
|
|
5590
|
+
|
|
5591
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
5592
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
5593
|
+
if (!this.isPopoverVisible) {
|
|
5594
|
+
this.updateFocusTrap();
|
|
5595
|
+
}
|
|
5596
|
+
|
|
5547
5597
|
const eventType = event.detail.eventType || "unknown";
|
|
5548
5598
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
5549
5599
|
this.trigger.focus();
|
|
@@ -5642,19 +5692,194 @@ class AuroDropdown extends AuroElement {
|
|
|
5642
5692
|
* @private
|
|
5643
5693
|
*/
|
|
5644
5694
|
updateFocusTrap() {
|
|
5695
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
5696
|
+
// to prevent duplicate listeners on repeated calls.
|
|
5697
|
+
if (this._bibTabHandler) {
|
|
5698
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5699
|
+
this._bibTabHandler = undefined;
|
|
5700
|
+
}
|
|
5701
|
+
|
|
5702
|
+
if (this.focusTrap) {
|
|
5703
|
+
this.focusTrap.disconnect();
|
|
5704
|
+
this.focusTrap = undefined;
|
|
5705
|
+
}
|
|
5706
|
+
|
|
5645
5707
|
if (this.isPopoverVisible) {
|
|
5646
5708
|
if (!this.isBibFullscreen) {
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
|
|
5709
|
+
if (this.desktopModal) {
|
|
5710
|
+
// Desktop modal: trap focus only within the bib content.
|
|
5711
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
5712
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
5713
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
5714
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
5715
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
5716
|
+
// within the bib's focusable elements.
|
|
5717
|
+
this._bibTabHandler = (event) => {
|
|
5718
|
+
if (event.key !== 'Tab') {
|
|
5719
|
+
return;
|
|
5720
|
+
}
|
|
5721
|
+
|
|
5722
|
+
// Collect focusable elements from the bib content.
|
|
5723
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5724
|
+
|
|
5725
|
+
// Fallback: try from slotted content directly
|
|
5726
|
+
if (!focusables.length) {
|
|
5727
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
5728
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
5729
|
+
|
|
5730
|
+
for (const node of assignedNodes) {
|
|
5731
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
5732
|
+
focusables.push(...getFocusableElements(node));
|
|
5733
|
+
}
|
|
5734
|
+
}
|
|
5735
|
+
}
|
|
5736
|
+
|
|
5737
|
+
if (!focusables.length) {
|
|
5738
|
+
return;
|
|
5739
|
+
}
|
|
5740
|
+
|
|
5741
|
+
event.preventDefault();
|
|
5742
|
+
|
|
5743
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
5744
|
+
|
|
5745
|
+
// Walk the active element chain through shadow roots
|
|
5746
|
+
const actives = this._getActiveElements();
|
|
5747
|
+
|
|
5748
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
5749
|
+
|
|
5750
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
5751
|
+
// Focus is not on a known element — move to first/last
|
|
5752
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
5753
|
+
}
|
|
5754
|
+
|
|
5755
|
+
// Try each element in order, skipping any that can't receive focus
|
|
5756
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
5757
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
5758
|
+
let nextIdx = idx + direction;
|
|
5759
|
+
|
|
5760
|
+
// Wrap around
|
|
5761
|
+
if (nextIdx < 0) {
|
|
5762
|
+
nextIdx = focusables.length - 1;
|
|
5763
|
+
} else if (nextIdx >= focusables.length) {
|
|
5764
|
+
nextIdx = 0;
|
|
5765
|
+
}
|
|
5766
|
+
|
|
5767
|
+
focusables[nextIdx].focus();
|
|
5768
|
+
|
|
5769
|
+
// Verify focus actually moved to the target
|
|
5770
|
+
const newActives = this._getActiveElements();
|
|
5771
|
+
|
|
5772
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
5773
|
+
return;
|
|
5774
|
+
}
|
|
5775
|
+
|
|
5776
|
+
// Focus didn't stick — skip this element and try the next
|
|
5777
|
+
idx = nextIdx;
|
|
5778
|
+
}
|
|
5779
|
+
};
|
|
5780
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
5781
|
+
|
|
5782
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
5783
|
+
requestAnimationFrame(() => {
|
|
5784
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5785
|
+
if (focusables.length) {
|
|
5786
|
+
focusables[0].focus();
|
|
5787
|
+
}
|
|
5788
|
+
});
|
|
5789
|
+
} else {
|
|
5790
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
5791
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5792
|
+
this.focusTrap.focusFirstElement();
|
|
5793
|
+
}
|
|
5650
5794
|
}
|
|
5651
5795
|
// Fullscreen: showModal() provides native focus trapping
|
|
5796
|
+
}
|
|
5797
|
+
}
|
|
5798
|
+
|
|
5799
|
+
/**
|
|
5800
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
5801
|
+
* @private
|
|
5802
|
+
* @returns {Array<HTMLElement>}
|
|
5803
|
+
*/
|
|
5804
|
+
_getActiveElements() {
|
|
5805
|
+
let { activeElement } = document;
|
|
5806
|
+
const actives = [activeElement];
|
|
5807
|
+
|
|
5808
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
5809
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
5810
|
+
actives.push(activeElement);
|
|
5811
|
+
}
|
|
5812
|
+
|
|
5813
|
+
return actives;
|
|
5814
|
+
}
|
|
5815
|
+
|
|
5816
|
+
/**
|
|
5817
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
5818
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
5819
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
5820
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
5821
|
+
* to ensure all page content outside the host subtree is inert.
|
|
5822
|
+
* @private
|
|
5823
|
+
*/
|
|
5824
|
+
_setPageInert() {
|
|
5825
|
+
if (this._inertSiblings) {
|
|
5652
5826
|
return;
|
|
5653
5827
|
}
|
|
5654
5828
|
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5829
|
+
this._inertSiblings = [];
|
|
5830
|
+
|
|
5831
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
5832
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
5833
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
5834
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
5835
|
+
let host = this;
|
|
5836
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
5837
|
+
host = host.getRootNode().host;
|
|
5838
|
+
}
|
|
5839
|
+
|
|
5840
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
5841
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
5842
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
5843
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
5844
|
+
let current = host;
|
|
5845
|
+
while (current.parentElement) {
|
|
5846
|
+
const parent = current.parentElement;
|
|
5847
|
+
for (const sibling of parent.children) {
|
|
5848
|
+
if (sibling !== current) {
|
|
5849
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
5850
|
+
if (count === 0) {
|
|
5851
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
5852
|
+
}
|
|
5853
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
5854
|
+
sibling.inert = true;
|
|
5855
|
+
this._inertSiblings.push(sibling);
|
|
5856
|
+
}
|
|
5857
|
+
}
|
|
5858
|
+
current = parent;
|
|
5859
|
+
}
|
|
5860
|
+
}
|
|
5861
|
+
|
|
5862
|
+
/**
|
|
5863
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
5864
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
5865
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
5866
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
5867
|
+
* @private
|
|
5868
|
+
*/
|
|
5869
|
+
_clearPageInert() {
|
|
5870
|
+
if (this._inertSiblings) {
|
|
5871
|
+
for (const sibling of this._inertSiblings) {
|
|
5872
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
5873
|
+
if (count <= 0) {
|
|
5874
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
5875
|
+
delete sibling.dataset.auroInertCount;
|
|
5876
|
+
delete sibling.dataset.auroInertWas;
|
|
5877
|
+
sibling.inert = wasInert;
|
|
5878
|
+
} else {
|
|
5879
|
+
sibling.dataset.auroInertCount = String(count);
|
|
5880
|
+
}
|
|
5881
|
+
}
|
|
5882
|
+
this._inertSiblings = undefined;
|
|
5658
5883
|
}
|
|
5659
5884
|
}
|
|
5660
5885
|
|
|
@@ -5893,6 +6118,7 @@ class AuroDropdown extends AuroElement {
|
|
|
5893
6118
|
shape="${this.shape}"
|
|
5894
6119
|
?data-show="${this.isPopoverVisible}"
|
|
5895
6120
|
?isfullscreen="${this.isBibFullscreen}"
|
|
6121
|
+
?desktopmodal="${this.desktopModal}"
|
|
5896
6122
|
.dialogLabel="${this.bibDialogLabel}"
|
|
5897
6123
|
${ref(this.bibElement)}
|
|
5898
6124
|
>
|
|
@@ -6260,6 +6486,14 @@ class AuroBibtemplate extends LitElement {
|
|
|
6260
6486
|
large: {
|
|
6261
6487
|
type: Boolean,
|
|
6262
6488
|
reflect: true
|
|
6489
|
+
},
|
|
6490
|
+
|
|
6491
|
+
/**
|
|
6492
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
6493
|
+
*/
|
|
6494
|
+
showFooter: {
|
|
6495
|
+
type: Boolean,
|
|
6496
|
+
reflect: true
|
|
6263
6497
|
}
|
|
6264
6498
|
};
|
|
6265
6499
|
}
|
|
@@ -6362,7 +6596,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
6362
6596
|
<slot></slot>
|
|
6363
6597
|
</div>
|
|
6364
6598
|
|
|
6365
|
-
${this.isFullscreen ? html`
|
|
6599
|
+
${this.isFullscreen || this.showFooter ? html`
|
|
6366
6600
|
<div id="footerContainer">
|
|
6367
6601
|
<slot name="footer"></slot>
|
|
6368
6602
|
</div>` : null}
|
|
@@ -6599,7 +6833,7 @@ class AuroHelpText extends LitElement {
|
|
|
6599
6833
|
}
|
|
6600
6834
|
}
|
|
6601
6835
|
|
|
6602
|
-
var formkitVersion = '
|
|
6836
|
+
var formkitVersion = '202606081904';
|
|
6603
6837
|
|
|
6604
6838
|
var styleCss = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
6605
6839
|
|