@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,209 @@
|
|
|
1
|
+
<auro-header level="1">CSS only with native input and datalist</auro-header>
|
|
2
|
+
<p>For situations where the <code><auro-combobox></code> web component cannot be used, a native HTML <code><input type="text"></code> paired with a <code><datalist></code> element can be styled with the Auro Design System tokens to approximate the visual appearance of <code>auro-combobox</code>. Unlike <auro-hyperlink href="https://auro.alaskaair.com/components/auro/hyperlink/css-only" target="_blank">auro-hyperlink</auro-hyperlink>, <auro-hyperlink href="https://alaskaairlines.github.io/WebCoreStyleSheets/" target="_blank">Web Core Style Sheets</auro-hyperlink> does not provide a prebuilt <code>.combobox</code> class, so the styling must be authored manually using Auro design tokens.</p>
|
|
3
|
+
<auro-header level="2">Styling a native input with datalist</auro-header>
|
|
4
|
+
<p>The native input can be restyled with the Auro design tokens published by <auro-hyperlink href="https://alaskaairlines.github.io/WebCoreStyleSheets/" target="_blank">@aurodesignsystem/design-tokens</auro-hyperlink>. The pattern below replicates the size, border, and focus-state colors used by the <code>auro-combobox</code> trigger input.</p>
|
|
5
|
+
<pre><code>@import "./node_modules/@aurodesignsystem/design-tokens/dist/tokens/CSSCustomProperties.css";
|
|
6
|
+
|
|
7
|
+
.combobox {
|
|
8
|
+
display: inline-block;
|
|
9
|
+
position: relative;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.combobox-label {
|
|
14
|
+
display: block;
|
|
15
|
+
font-size: var(--ds-size-150, 0.75rem);
|
|
16
|
+
color: var(--ds-color-text-secondary-default, #6e767f);
|
|
17
|
+
margin-bottom: var(--ds-size-50, 0.25rem);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.combobox-input {
|
|
21
|
+
appearance: none;
|
|
22
|
+
-webkit-appearance: none;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: var(--ds-size-600, 3rem);
|
|
25
|
+
padding: 0 var(--ds-size-200, 1rem);
|
|
26
|
+
font-size: var(--ds-size-200, 1rem);
|
|
27
|
+
color: var(--ds-color-text-primary-default, #00256c);
|
|
28
|
+
background-color: var(--ds-color-container-primary-default, #ffffff);
|
|
29
|
+
border: 1px solid var(--ds-color-border-ui-default, #6e767f);
|
|
30
|
+
border-radius: var(--ds-border-radius, 4px);
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.combobox-input:focus-visible {
|
|
35
|
+
outline: 2px solid var(--ds-color-border-active-default, #01426a);
|
|
36
|
+
outline-offset: 2px;
|
|
37
|
+
border-color: var(--ds-color-border-active-default, #01426a);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.combobox-input:disabled {
|
|
41
|
+
cursor: not-allowed;
|
|
42
|
+
opacity: 0.5;
|
|
43
|
+
background-color: var(--ds-color-container-disabled-default, #f2f3f5);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.combobox-input[aria-invalid="true"] {
|
|
47
|
+
border-color: var(--ds-color-border-error-default, #d23153);
|
|
48
|
+
}</code></pre>
|
|
49
|
+
<auro-header level="3">Basic combobox</auro-header>
|
|
50
|
+
<p>Apply the <code>.combobox-input</code> class to a native <code><input type="text"></code> element and reference a <code><datalist></code> via the <code>list</code> attribute:</p>
|
|
51
|
+
<pre><code><label class="combobox">
|
|
52
|
+
<span class="combobox-label">Departure airport</span>
|
|
53
|
+
<input
|
|
54
|
+
type="text"
|
|
55
|
+
class="combobox-input"
|
|
56
|
+
name="departure"
|
|
57
|
+
list="airport-options"
|
|
58
|
+
autocomplete="off" />
|
|
59
|
+
<datalist id="airport-options">
|
|
60
|
+
<option value="Seattle (SEA)"></option>
|
|
61
|
+
<option value="Portland (PDX)"></option>
|
|
62
|
+
<option value="San Francisco (SFO)"></option>
|
|
63
|
+
<option value="Los Angeles (LAX)"></option>
|
|
64
|
+
</datalist>
|
|
65
|
+
</label></code></pre>
|
|
66
|
+
<auro-header level="3">Required combobox in a form</auro-header>
|
|
67
|
+
<p>Use the native <code>required</code> attribute to enforce that a value is entered before form submission:</p>
|
|
68
|
+
<pre><code><form>
|
|
69
|
+
<label class="combobox">
|
|
70
|
+
<span class="combobox-label">Destination</span>
|
|
71
|
+
<input
|
|
72
|
+
type="text"
|
|
73
|
+
class="combobox-input"
|
|
74
|
+
name="destination"
|
|
75
|
+
list="destination-options"
|
|
76
|
+
required
|
|
77
|
+
autocomplete="off" />
|
|
78
|
+
<datalist id="destination-options">
|
|
79
|
+
<option value="Anchorage (ANC)"></option>
|
|
80
|
+
<option value="Fairbanks (FAI)"></option>
|
|
81
|
+
<option value="Juneau (JNU)"></option>
|
|
82
|
+
</datalist>
|
|
83
|
+
</label>
|
|
84
|
+
<button type="submit">Search</button>
|
|
85
|
+
</form></code></pre>
|
|
86
|
+
<auro-header level="2">What you lose without auro-combobox</auro-header>
|
|
87
|
+
<p>While the CSS above replicates the <strong>visual styling</strong> of the <code>auro-combobox</code> trigger, the following functionality built into the <code>auro-combobox</code> web component is <strong>not available</strong> when using plain HTML with a <code><datalist></code>:</p>
|
|
88
|
+
<auro-header level="3">Filter vs. suggestion behavior</auro-header>
|
|
89
|
+
<p><code>auro-combobox</code> exposes a <code>behavior</code> attribute (<code>"filter"</code> or <code>"suggestion"</code>) that controls whether the user must select a menu option or may submit a freeform typed value. Native <code><datalist></code> always behaves like suggestion mode — there is no way to require the user to choose from the list without writing custom JavaScript to compare the input value against the option set.</p>
|
|
90
|
+
<auro-header level="3">Custom filtering and matching</auro-header>
|
|
91
|
+
<p><code>auro-combobox</code> filters options against the typed value and supports a <code>suggest</code> attribute on each menu option for additional matching keywords, plus <code>persistent</code>, <code>static</code>, and <code>nomatch</code> options that change how the list reacts to input. <code><datalist></code> matching is browser-controlled, varies across browsers, and cannot be extended with synonyms, persistent items, or a "no match" placeholder.</p>
|
|
92
|
+
<auro-header level="3">Highlighted match text</auro-header>
|
|
93
|
+
<p><code>auro-combobox</code> passes the typed value to <code>auro-menu</code> as a <code>matchWord</code> so the matching substring is visually highlighted in each option. Native <code><datalist></code> renders options using the browser's default UI with no control over typography, highlight color, or layout of the option content.</p>
|
|
94
|
+
<auro-header level="3">Custom validation messages</auro-header>
|
|
95
|
+
<p><code>auro-combobox</code> exposes <code>setCustomValidity</code>, <code>setCustomValidityCustomError</code>, <code>setCustomValidityValueMissing</code>, and <code>setCustomValidityValueMissingFilter</code> for fully customizable error messages per validity state, including a distinct message for "did not pick a value from the list" when <code>behavior="filter"</code>. Native inputs surface browser-controlled validation messages that cannot be customized beyond a single <code>setCustomValidity()</code> string.</p>
|
|
96
|
+
<auro-header level="3">Touched-state tracking</auro-header>
|
|
97
|
+
<p><code>auro-combobox</code> tracks a <code>touched</code> state so validation errors only appear after the user has interacted with the field. Native inputs have no built-in touched concept — you must implement focus/blur tracking yourself to avoid showing errors on initial render.</p>
|
|
98
|
+
<auro-header level="3">Keyboard navigation and ARIA</auro-header>
|
|
99
|
+
<p><code>auro-combobox</code> implements the WAI-ARIA combobox pattern: <code>role="combobox"</code> on the input, <code>aria-expanded</code>, <code>aria-controls</code>, <code>aria-activedescendant</code>, and <code>aria-setsize</code>/<code>aria-posinset</code> on each option, plus arrow-key navigation, Home/End, Escape to close, and Enter to select. <code><datalist></code> exposes none of these hooks — keyboard behavior is whatever the browser provides, and the experience differs substantially between Chrome, Safari, and Firefox.</p>
|
|
100
|
+
<auro-header level="3">Screen reader announcements</auro-header>
|
|
101
|
+
<p><code>auro-combobox</code> dispatches live-region announcements when an option becomes active ("Seattle, not selected, 1 of 5") and when an option is selected, including special handling for fullscreen dialog mode where the trigger is inert. <code><datalist></code> announcements depend entirely on the assistive technology and browser combination.</p>
|
|
102
|
+
<auro-header level="3">Mobile fullscreen presentation</auro-header>
|
|
103
|
+
<p><code>auro-combobox</code> automatically switches to a fullscreen dialog at a configurable <code>fullscreenBreakpoint</code> for mobile-friendly input, including iOS virtual keyboard retention logic so the keyboard stays visible across the trigger-to-dialog transition. Native <code><datalist></code> renders an inline dropdown on every device with no fullscreen mode.</p>
|
|
104
|
+
<auro-header level="3">Rich option content and display value</auro-header>
|
|
105
|
+
<p><code>auro-combobox</code> works with <code>auro-menuoption</code> elements that can contain markup, icons, and a <code>displayValue</code> slot that lets the visible trigger content differ from the underlying value (paired with <code>persistInput</code> for advanced filter UIs). <code><datalist></code> options are plain strings — no markup, no icons, and the visible value always equals the submitted value.</p>
|
|
106
|
+
<auro-header level="3">Coordinated value and option-selected state</auro-header>
|
|
107
|
+
<p><code>auro-combobox</code> exposes both <code>value</code> (the selected option's value) and <code>optionSelected</code> (a reference to the chosen <code>auro-menuoption</code> element), and fires <code>input</code> and <code>inputValue</code> events with structured detail. With native HTML, you only get the input's string value — there is no concept of which datalist option the user picked because the browser does not report it.</p>
|
|
108
|
+
<auro-header level="3">Form integration events</auro-header>
|
|
109
|
+
<p><code>auro-combobox</code> dispatches <code>auroFormElement-validated</code> events so parent <code>auro-form</code> elements can coordinate validation across all child fields. Native inputs participate in form submission but do not emit the structured validation events that the Auro form system expects.</p>
|
|
110
|
+
<auro-header level="3">Reset behavior</auro-header>
|
|
111
|
+
<p><code>auro-combobox</code> provides <code>reset()</code> and <code>clear()</code> methods that clear the input, menu selection, validation state, and touched flag in one call. With native HTML, you must clear the input value and separately reset any custom validation state you are tracking.</p>
|
|
112
|
+
<auro-header level="3">Layouts, shapes, and sizes</auro-header>
|
|
113
|
+
<p><code>auro-combobox</code> supports <code>layout</code> (<code>classic</code>, <code>emphasized</code>, <code>snowflake</code>), <code>shape</code>, and <code>size</code> attributes that coordinate the appearance of the trigger, dropdown, and menu options together. With native HTML, every variant must be authored from scratch and the dropdown UI cannot be restyled at all.</p>
|
|
114
|
+
<auro-header level="3">Multi-brand theming</auro-header>
|
|
115
|
+
<p><code>auro-combobox</code> consumes Auro design tokens through its component logic, so it automatically picks up brand-specific theming when token packages are swapped. A CSS-only input is tied to whichever tokens were imported at author time and will not respond to runtime theme switching the way the web component does. The browser-rendered <code><datalist></code> popup cannot be themed at all.</p>
|
|
116
|
+
<auro-header level="2">Summary</auro-header>
|
|
117
|
+
<table>
|
|
118
|
+
<thead>
|
|
119
|
+
<tr>
|
|
120
|
+
<th>Feature</th>
|
|
121
|
+
<th>Native <code><input list></code> + <code><datalist></code> with Auro tokens</th>
|
|
122
|
+
<th><code>auro-combobox</code></th>
|
|
123
|
+
</tr>
|
|
124
|
+
</thead>
|
|
125
|
+
<tbody>
|
|
126
|
+
<tr>
|
|
127
|
+
<td>Design-system-aligned trigger styling</td>
|
|
128
|
+
<td>Manual (author-written CSS)</td>
|
|
129
|
+
<td>Built-in</td>
|
|
130
|
+
</tr>
|
|
131
|
+
<tr>
|
|
132
|
+
<td>Styled dropdown / option list</td>
|
|
133
|
+
<td>Browser-controlled, not styleable</td>
|
|
134
|
+
<td>Fully themed via <code>auro-menu</code></td>
|
|
135
|
+
</tr>
|
|
136
|
+
<tr>
|
|
137
|
+
<td>Filter vs. suggestion behavior</td>
|
|
138
|
+
<td>Suggestion only</td>
|
|
139
|
+
<td><code>behavior="filter" | "suggestion"</code></td>
|
|
140
|
+
</tr>
|
|
141
|
+
<tr>
|
|
142
|
+
<td>Custom match keywords / persistent / nomatch options</td>
|
|
143
|
+
<td>Not supported</td>
|
|
144
|
+
<td>Built-in option attributes</td>
|
|
145
|
+
</tr>
|
|
146
|
+
<tr>
|
|
147
|
+
<td>Highlighted match text</td>
|
|
148
|
+
<td>Not supported</td>
|
|
149
|
+
<td>Built-in via <code>matchWord</code></td>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td>Custom validation messages</td>
|
|
153
|
+
<td>Limited to <code>setCustomValidity()</code></td>
|
|
154
|
+
<td>Per-constraint custom messages</td>
|
|
155
|
+
</tr>
|
|
156
|
+
<tr>
|
|
157
|
+
<td>Touched-state tracking</td>
|
|
158
|
+
<td>Manual</td>
|
|
159
|
+
<td>Automatic</td>
|
|
160
|
+
</tr>
|
|
161
|
+
<tr>
|
|
162
|
+
<td>ARIA combobox pattern</td>
|
|
163
|
+
<td>Inconsistent across browsers</td>
|
|
164
|
+
<td>Full WAI-ARIA combobox implementation</td>
|
|
165
|
+
</tr>
|
|
166
|
+
<tr>
|
|
167
|
+
<td>Screen reader option announcements</td>
|
|
168
|
+
<td>Browser-dependent</td>
|
|
169
|
+
<td>Live-region announcements</td>
|
|
170
|
+
</tr>
|
|
171
|
+
<tr>
|
|
172
|
+
<td>Mobile fullscreen mode</td>
|
|
173
|
+
<td>Not supported</td>
|
|
174
|
+
<td><code>fullscreenBreakpoint</code> attribute</td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr>
|
|
177
|
+
<td>Rich option content / display value</td>
|
|
178
|
+
<td>Plain strings only</td>
|
|
179
|
+
<td><code>auro-menuoption</code> + <code>displayValue</code> slot</td>
|
|
180
|
+
</tr>
|
|
181
|
+
<tr>
|
|
182
|
+
<td><code>optionSelected</code> reference</td>
|
|
183
|
+
<td>Not available</td>
|
|
184
|
+
<td>Exposed as a property</td>
|
|
185
|
+
</tr>
|
|
186
|
+
<tr>
|
|
187
|
+
<td>Form validation events</td>
|
|
188
|
+
<td>Not supported</td>
|
|
189
|
+
<td><code>auroFormElement-validated</code></td>
|
|
190
|
+
</tr>
|
|
191
|
+
<tr>
|
|
192
|
+
<td>Reset / clear</td>
|
|
193
|
+
<td>Manual</td>
|
|
194
|
+
<td><code>reset()</code> and <code>clear()</code> methods</td>
|
|
195
|
+
</tr>
|
|
196
|
+
<tr>
|
|
197
|
+
<td>Layout, shape, size variants</td>
|
|
198
|
+
<td>Manual CSS</td>
|
|
199
|
+
<td><code>layout</code>, <code>shape</code>, <code>size</code> attributes</td>
|
|
200
|
+
</tr>
|
|
201
|
+
<tr>
|
|
202
|
+
<td>Multi-brand theming</td>
|
|
203
|
+
<td>Static (import-time tokens)</td>
|
|
204
|
+
<td>Full (design tokens + component logic)</td>
|
|
205
|
+
</tr>
|
|
206
|
+
</tbody>
|
|
207
|
+
</table>
|
|
208
|
+
<auro-header level="2">Recommendation</auro-header>
|
|
209
|
+
<p>Use <code>auro-combobox</code> whenever possible. Fall back to a CSS-styled native <code><input list></code> with a <code><datalist></code> only in environments where custom elements are not supported or when integrating with third-party systems that require plain HTML — and be prepared to accept browser-controlled dropdown styling, inconsistent keyboard and screen reader behavior, and the loss of filter-mode validation, match highlighting, fullscreen presentation, and structured form integration.</p>
|
|
@@ -4225,7 +4225,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
4225
4225
|
});
|
|
4226
4226
|
}
|
|
4227
4227
|
|
|
4228
|
-
var styleCss$2$1 = i$7`: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}`;
|
|
4228
|
+
var styleCss$2$1 = i$7`: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}`;
|
|
4229
4229
|
|
|
4230
4230
|
var colorCss$2$1 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
4231
4231
|
|
|
@@ -4856,7 +4856,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
|
|
|
4856
4856
|
}
|
|
4857
4857
|
};
|
|
4858
4858
|
|
|
4859
|
-
var formkitVersion$2 = '
|
|
4859
|
+
var formkitVersion$2 = '202606081904';
|
|
4860
4860
|
|
|
4861
4861
|
let AuroElement$2 = class AuroElement extends i$4 {
|
|
4862
4862
|
static get properties() {
|
|
@@ -5036,6 +5036,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5036
5036
|
_intializeDefaults() {
|
|
5037
5037
|
this.appearance = 'default';
|
|
5038
5038
|
this.chevron = false;
|
|
5039
|
+
this.desktopModal = false;
|
|
5039
5040
|
this.disabled = false;
|
|
5040
5041
|
this.disableKeyboardHandling = false;
|
|
5041
5042
|
this.error = false;
|
|
@@ -5216,6 +5217,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5216
5217
|
reflect: true
|
|
5217
5218
|
},
|
|
5218
5219
|
|
|
5220
|
+
/**
|
|
5221
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
5222
|
+
*/
|
|
5223
|
+
desktopModal: {
|
|
5224
|
+
type: Boolean,
|
|
5225
|
+
reflect: true
|
|
5226
|
+
},
|
|
5227
|
+
|
|
5219
5228
|
/**
|
|
5220
5229
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
5221
5230
|
*/
|
|
@@ -5503,6 +5512,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5503
5512
|
|
|
5504
5513
|
disconnectedCallback() {
|
|
5505
5514
|
super.disconnectedCallback();
|
|
5515
|
+
this._clearPageInert();
|
|
5516
|
+
if (this._bibTabHandler) {
|
|
5517
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5518
|
+
this._bibTabHandler = undefined;
|
|
5519
|
+
}
|
|
5520
|
+
if (this.focusTrap) {
|
|
5521
|
+
this.focusTrap.disconnect();
|
|
5522
|
+
this.focusTrap = undefined;
|
|
5523
|
+
}
|
|
5506
5524
|
if (this.floater) {
|
|
5507
5525
|
this.floater.hideBib('disconnect');
|
|
5508
5526
|
this.floater.disconnect();
|
|
@@ -5530,19 +5548,45 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5530
5548
|
if (this.isPopoverVisible) {
|
|
5531
5549
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
5532
5550
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
5533
|
-
|
|
5534
|
-
this.
|
|
5551
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5552
|
+
this.updateFocusTrap();
|
|
5553
|
+
|
|
5554
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
5555
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5556
|
+
this._setPageInert();
|
|
5557
|
+
}
|
|
5535
5558
|
} else {
|
|
5536
5559
|
this.bibElement.value.close();
|
|
5560
|
+
this._clearPageInert();
|
|
5537
5561
|
}
|
|
5538
5562
|
}
|
|
5539
5563
|
|
|
5540
5564
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5541
5565
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5542
5566
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5543
|
-
const useModal = this.isBibFullscreen;
|
|
5544
5567
|
this.bibElement.value.close();
|
|
5545
|
-
this.bibElement.value.open(
|
|
5568
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5569
|
+
|
|
5570
|
+
// Re-initialize focus management for the new strategy
|
|
5571
|
+
this.updateFocusTrap();
|
|
5572
|
+
|
|
5573
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
5574
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5575
|
+
this._setPageInert();
|
|
5576
|
+
} else {
|
|
5577
|
+
this._clearPageInert();
|
|
5578
|
+
}
|
|
5579
|
+
}
|
|
5580
|
+
|
|
5581
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
5582
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
5583
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
5584
|
+
this.updateFocusTrap();
|
|
5585
|
+
if (this.desktopModal) {
|
|
5586
|
+
this._setPageInert();
|
|
5587
|
+
} else {
|
|
5588
|
+
this._clearPageInert();
|
|
5589
|
+
}
|
|
5546
5590
|
}
|
|
5547
5591
|
}
|
|
5548
5592
|
|
|
@@ -5552,8 +5596,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5552
5596
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
5553
5597
|
*/
|
|
5554
5598
|
handleDropdownToggle(event) {
|
|
5555
|
-
this.updateFocusTrap();
|
|
5556
5599
|
this.isPopoverVisible = event.detail.expanded;
|
|
5600
|
+
|
|
5601
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
5602
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
5603
|
+
if (!this.isPopoverVisible) {
|
|
5604
|
+
this.updateFocusTrap();
|
|
5605
|
+
}
|
|
5606
|
+
|
|
5557
5607
|
const eventType = event.detail.eventType || "unknown";
|
|
5558
5608
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
5559
5609
|
this.trigger.focus();
|
|
@@ -5652,19 +5702,194 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5652
5702
|
* @private
|
|
5653
5703
|
*/
|
|
5654
5704
|
updateFocusTrap() {
|
|
5705
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
5706
|
+
// to prevent duplicate listeners on repeated calls.
|
|
5707
|
+
if (this._bibTabHandler) {
|
|
5708
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5709
|
+
this._bibTabHandler = undefined;
|
|
5710
|
+
}
|
|
5711
|
+
|
|
5712
|
+
if (this.focusTrap) {
|
|
5713
|
+
this.focusTrap.disconnect();
|
|
5714
|
+
this.focusTrap = undefined;
|
|
5715
|
+
}
|
|
5716
|
+
|
|
5655
5717
|
if (this.isPopoverVisible) {
|
|
5656
5718
|
if (!this.isBibFullscreen) {
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5719
|
+
if (this.desktopModal) {
|
|
5720
|
+
// Desktop modal: trap focus only within the bib content.
|
|
5721
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
5722
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
5723
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
5724
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
5725
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
5726
|
+
// within the bib's focusable elements.
|
|
5727
|
+
this._bibTabHandler = (event) => {
|
|
5728
|
+
if (event.key !== 'Tab') {
|
|
5729
|
+
return;
|
|
5730
|
+
}
|
|
5731
|
+
|
|
5732
|
+
// Collect focusable elements from the bib content.
|
|
5733
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5734
|
+
|
|
5735
|
+
// Fallback: try from slotted content directly
|
|
5736
|
+
if (!focusables.length) {
|
|
5737
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
5738
|
+
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
5739
|
+
|
|
5740
|
+
for (const node of assignedNodes) {
|
|
5741
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
5742
|
+
focusables.push(...getFocusableElements(node));
|
|
5743
|
+
}
|
|
5744
|
+
}
|
|
5745
|
+
}
|
|
5746
|
+
|
|
5747
|
+
if (!focusables.length) {
|
|
5748
|
+
return;
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5751
|
+
event.preventDefault();
|
|
5752
|
+
|
|
5753
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
5754
|
+
|
|
5755
|
+
// Walk the active element chain through shadow roots
|
|
5756
|
+
const actives = this._getActiveElements();
|
|
5757
|
+
|
|
5758
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
5759
|
+
|
|
5760
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
5761
|
+
// Focus is not on a known element — move to first/last
|
|
5762
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5765
|
+
// Try each element in order, skipping any that can't receive focus
|
|
5766
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
5767
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
5768
|
+
let nextIdx = idx + direction;
|
|
5769
|
+
|
|
5770
|
+
// Wrap around
|
|
5771
|
+
if (nextIdx < 0) {
|
|
5772
|
+
nextIdx = focusables.length - 1;
|
|
5773
|
+
} else if (nextIdx >= focusables.length) {
|
|
5774
|
+
nextIdx = 0;
|
|
5775
|
+
}
|
|
5776
|
+
|
|
5777
|
+
focusables[nextIdx].focus();
|
|
5778
|
+
|
|
5779
|
+
// Verify focus actually moved to the target
|
|
5780
|
+
const newActives = this._getActiveElements();
|
|
5781
|
+
|
|
5782
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
5783
|
+
return;
|
|
5784
|
+
}
|
|
5785
|
+
|
|
5786
|
+
// Focus didn't stick — skip this element and try the next
|
|
5787
|
+
idx = nextIdx;
|
|
5788
|
+
}
|
|
5789
|
+
};
|
|
5790
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
5791
|
+
|
|
5792
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
5793
|
+
requestAnimationFrame(() => {
|
|
5794
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5795
|
+
if (focusables.length) {
|
|
5796
|
+
focusables[0].focus();
|
|
5797
|
+
}
|
|
5798
|
+
});
|
|
5799
|
+
} else {
|
|
5800
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
5801
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5802
|
+
this.focusTrap.focusFirstElement();
|
|
5803
|
+
}
|
|
5660
5804
|
}
|
|
5661
5805
|
// Fullscreen: showModal() provides native focus trapping
|
|
5806
|
+
}
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5809
|
+
/**
|
|
5810
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
5811
|
+
* @private
|
|
5812
|
+
* @returns {Array<HTMLElement>}
|
|
5813
|
+
*/
|
|
5814
|
+
_getActiveElements() {
|
|
5815
|
+
let { activeElement } = document;
|
|
5816
|
+
const actives = [activeElement];
|
|
5817
|
+
|
|
5818
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
5819
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
5820
|
+
actives.push(activeElement);
|
|
5821
|
+
}
|
|
5822
|
+
|
|
5823
|
+
return actives;
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5826
|
+
/**
|
|
5827
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
5828
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
5829
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
5830
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
5831
|
+
* to ensure all page content outside the host subtree is inert.
|
|
5832
|
+
* @private
|
|
5833
|
+
*/
|
|
5834
|
+
_setPageInert() {
|
|
5835
|
+
if (this._inertSiblings) {
|
|
5662
5836
|
return;
|
|
5663
5837
|
}
|
|
5664
5838
|
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5839
|
+
this._inertSiblings = [];
|
|
5840
|
+
|
|
5841
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
5842
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
5843
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
5844
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
5845
|
+
let host = this;
|
|
5846
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
5847
|
+
host = host.getRootNode().host;
|
|
5848
|
+
}
|
|
5849
|
+
|
|
5850
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
5851
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
5852
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
5853
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
5854
|
+
let current = host;
|
|
5855
|
+
while (current.parentElement) {
|
|
5856
|
+
const parent = current.parentElement;
|
|
5857
|
+
for (const sibling of parent.children) {
|
|
5858
|
+
if (sibling !== current) {
|
|
5859
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
5860
|
+
if (count === 0) {
|
|
5861
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
5862
|
+
}
|
|
5863
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
5864
|
+
sibling.inert = true;
|
|
5865
|
+
this._inertSiblings.push(sibling);
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
current = parent;
|
|
5869
|
+
}
|
|
5870
|
+
}
|
|
5871
|
+
|
|
5872
|
+
/**
|
|
5873
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
5874
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
5875
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
5876
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
5877
|
+
* @private
|
|
5878
|
+
*/
|
|
5879
|
+
_clearPageInert() {
|
|
5880
|
+
if (this._inertSiblings) {
|
|
5881
|
+
for (const sibling of this._inertSiblings) {
|
|
5882
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
5883
|
+
if (count <= 0) {
|
|
5884
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
5885
|
+
delete sibling.dataset.auroInertCount;
|
|
5886
|
+
delete sibling.dataset.auroInertWas;
|
|
5887
|
+
sibling.inert = wasInert;
|
|
5888
|
+
} else {
|
|
5889
|
+
sibling.dataset.auroInertCount = String(count);
|
|
5890
|
+
}
|
|
5891
|
+
}
|
|
5892
|
+
this._inertSiblings = undefined;
|
|
5668
5893
|
}
|
|
5669
5894
|
}
|
|
5670
5895
|
|
|
@@ -5903,6 +6128,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5903
6128
|
shape="${this.shape}"
|
|
5904
6129
|
?data-show="${this.isPopoverVisible}"
|
|
5905
6130
|
?isfullscreen="${this.isBibFullscreen}"
|
|
6131
|
+
?desktopmodal="${this.desktopModal}"
|
|
5906
6132
|
.dialogLabel="${this.bibDialogLabel}"
|
|
5907
6133
|
${n$2(this.bibElement)}
|
|
5908
6134
|
>
|
|
@@ -18114,7 +18340,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
|
|
|
18114
18340
|
}
|
|
18115
18341
|
};
|
|
18116
18342
|
|
|
18117
|
-
var formkitVersion$1 = '
|
|
18343
|
+
var formkitVersion$1 = '202606081904';
|
|
18118
18344
|
|
|
18119
18345
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
18120
18346
|
// See LICENSE in the project root for license information.
|
|
@@ -19120,6 +19346,14 @@ class AuroBibtemplate extends i$4 {
|
|
|
19120
19346
|
large: {
|
|
19121
19347
|
type: Boolean,
|
|
19122
19348
|
reflect: true
|
|
19349
|
+
},
|
|
19350
|
+
|
|
19351
|
+
/**
|
|
19352
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
19353
|
+
*/
|
|
19354
|
+
showFooter: {
|
|
19355
|
+
type: Boolean,
|
|
19356
|
+
reflect: true
|
|
19123
19357
|
}
|
|
19124
19358
|
};
|
|
19125
19359
|
}
|
|
@@ -19222,7 +19456,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
19222
19456
|
<slot></slot>
|
|
19223
19457
|
</div>
|
|
19224
19458
|
|
|
19225
|
-
${this.isFullscreen ? u$7`
|
|
19459
|
+
${this.isFullscreen || this.showFooter ? u$7`
|
|
19226
19460
|
<div id="footerContainer">
|
|
19227
19461
|
<slot name="footer"></slot>
|
|
19228
19462
|
</div>` : null}
|
|
@@ -19231,7 +19465,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
19231
19465
|
}
|
|
19232
19466
|
}
|
|
19233
19467
|
|
|
19234
|
-
var formkitVersion = '
|
|
19468
|
+
var formkitVersion = '202606081904';
|
|
19235
19469
|
|
|
19236
19470
|
var styleCss$3 = i$7`.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}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
19237
19471
|
|