@aurodesignsystem-dev/auro-formkit 0.0.0-pr1574.0 → 0.0.0-pr1576.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.md +40 -0
  7. package/components/combobox/demo/customize.min.js +256 -17
  8. package/components/combobox/demo/getting-started.min.js +256 -17
  9. package/components/combobox/demo/index.min.js +256 -17
  10. package/components/combobox/dist/index.js +3 -3
  11. package/components/combobox/dist/registered.js +3 -3
  12. package/components/counter/demo/customize.min.js +3 -3
  13. package/components/counter/demo/index.min.js +3 -3
  14. package/components/counter/dist/index.js +3 -3
  15. package/components/counter/dist/registered.js +3 -3
  16. package/components/datepicker/demo/customize.min.js +3 -3
  17. package/components/datepicker/demo/index.min.js +3 -3
  18. package/components/datepicker/dist/index.js +3 -3
  19. package/components/datepicker/dist/registered.js +3 -3
  20. package/components/dropdown/demo/customize.min.js +1 -1
  21. package/components/dropdown/demo/getting-started.min.js +1 -1
  22. package/components/dropdown/demo/index.min.js +1 -1
  23. package/components/dropdown/dist/index.js +1 -1
  24. package/components/dropdown/dist/registered.js +1 -1
  25. package/components/form/demo/customize.min.js +267 -28
  26. package/components/form/demo/getting-started.min.js +267 -28
  27. package/components/form/demo/index.min.js +267 -28
  28. package/components/form/demo/registerDemoDeps.min.js +267 -28
  29. package/components/input/demo/customize.min.js +1 -1
  30. package/components/input/demo/getting-started.min.js +1 -1
  31. package/components/input/demo/index.min.js +1 -1
  32. package/components/input/dist/index.js +1 -1
  33. package/components/input/dist/registered.js +1 -1
  34. package/components/menu/demo/index.min.js +253 -14
  35. package/components/menu/dist/auro-menu-utils.d.ts +30 -0
  36. package/components/menu/dist/auro-menu.d.ts +23 -0
  37. package/components/menu/dist/index.js +253 -14
  38. package/components/menu/dist/registered.js +253 -14
  39. package/components/radio/demo/customize.min.js +1 -1
  40. package/components/radio/demo/getting-started.min.js +1 -1
  41. package/components/radio/demo/index.min.js +1 -1
  42. package/components/radio/dist/index.js +1 -1
  43. package/components/radio/dist/registered.js +1 -1
  44. package/components/select/demo/customize.md +72 -0
  45. package/components/select/demo/customize.min.js +255 -16
  46. package/components/select/demo/getting-started.min.js +255 -16
  47. package/components/select/demo/index.min.js +255 -16
  48. package/components/select/dist/index.js +2 -2
  49. package/components/select/dist/registered.js +2 -2
  50. package/custom-elements.json +1617 -1513
  51. package/package.json +1 -1
@@ -4992,7 +4992,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4992
4992
  }
4993
4993
  };
4994
4994
 
4995
- var formkitVersion$2 = '202607272111';
4995
+ var formkitVersion$2 = '202608040326';
4996
4996
 
4997
4997
  let AuroElement$2 = class AuroElement extends i$3 {
4998
4998
  static get properties() {
@@ -18681,7 +18681,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18681
18681
  }
18682
18682
  };
18683
18683
 
18684
- var formkitVersion$1 = '202607272111';
18684
+ var formkitVersion$1 = '202608040326';
18685
18685
 
18686
18686
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18687
18687
  // See LICENSE in the project root for license information.
@@ -19837,7 +19837,7 @@ class AuroBibtemplate extends i$3 {
19837
19837
  }
19838
19838
  }
19839
19839
 
19840
- var formkitVersion = '202607272111';
19840
+ var formkitVersion = '202608040326';
19841
19841
 
19842
19842
  var styleCss$3 = i$6`.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}`;
19843
19843
 
@@ -22270,6 +22270,107 @@ function isSelectableByValue(option) {
22270
22270
  !option.hasAttribute('static');
22271
22271
  }
22272
22272
 
22273
+ /* eslint-disable no-underscore-dangle */
22274
+ /**
22275
+ * Resolves the single selected option for a given `value`, preferring the
22276
+ * option tracked by `selectedKey` (a user-initiated selection) over a
22277
+ * first-by-value match. When multiple options share the same `value`, matching
22278
+ * by `value` alone cannot distinguish which one the user picked; the key
22279
+ * disambiguates it.
22280
+ *
22281
+ * The key is trusted only when it still resolves to an option whose `value`
22282
+ * matches the requested `value`. If the key is stale (option removed) or the
22283
+ * value was changed programmatically, resolution falls back to value matching —
22284
+ * preserving backward-compatible behavior for preselection and `selectByValue`.
22285
+ * @private
22286
+ * @param {Array<HTMLElement>} items - The menu's flat option list.
22287
+ * @param {string} value - The value to resolve.
22288
+ * @param {string|undefined} selectedKey - The `_optionKey` of the user-selected option, if any.
22289
+ * @returns {HTMLElement|undefined} The resolved option, or undefined when none match.
22290
+ */
22291
+ function resolveSelectedOption(items, value, selectedKey) {
22292
+ if (!items) {
22293
+ return undefined;
22294
+ }
22295
+
22296
+ if (selectedKey !== undefined) {
22297
+ const keyed = items.find((item) => item._optionKey === selectedKey);
22298
+ if (keyed && isSelectableByValue(keyed) && keyed.value === value) {
22299
+ return keyed;
22300
+ }
22301
+ // Key exists but the option is gone or its value no longer matches — fall
22302
+ // through to value-based matching.
22303
+ }
22304
+
22305
+ return items.find((item) => isSelectableByValue(item) && item.value === value);
22306
+ }
22307
+
22308
+ /**
22309
+ * Resolves the selected options for a multi-select `value` array, preferring
22310
+ * options tracked by `selectedKeys` (user-initiated selections) and falling
22311
+ * back to value matching for any values not resolved by key. The result is
22312
+ * always sorted into DOM order regardless of selection sequence.
22313
+ * @private
22314
+ * @param {Array<HTMLElement>} items - The menu's flat option list.
22315
+ * @param {Array<string>} valueArray - The selected values.
22316
+ * @param {Array<string>|undefined} selectedKeys - The `_optionKey`s of the user-selected options, if any.
22317
+ * @returns {Array<HTMLElement>} The resolved options in DOM order.
22318
+ */
22319
+ function resolveSelectedOptions(items, valueArray, selectedKeys) {
22320
+ if (!items) {
22321
+ return [];
22322
+ }
22323
+
22324
+ const resolved = [];
22325
+
22326
+ // Track how many of each value are still available to resolve. A value that
22327
+ // appears N times in `valueArray` may be satisfied at most N times total across
22328
+ // the key pass and the value fallback below — matching by count, not presence,
22329
+ // on BOTH passes. This stops a duplicate value from being over-resolved: e.g.
22330
+ // two keyed options that both carry `SEA` cannot both match a single requested
22331
+ // `SEA` (which happens when `value` is set directly without clearing
22332
+ // `_selectedKey`, so more keys survive than the value set now asks for).
22333
+ const remaining = new Map();
22334
+ valueArray.forEach((val) => remaining.set(val, (remaining.get(val) || 0) + 1));
22335
+
22336
+ // Resolve by key first: trust a key only when its option is still selectable
22337
+ // and there is still an unmatched occurrence of its value in the request set.
22338
+ if (Array.isArray(selectedKeys)) {
22339
+ selectedKeys.forEach((key) => {
22340
+ const keyed = items.find((item) => item._optionKey === key);
22341
+ if (keyed && isSelectableByValue(keyed) && (remaining.get(keyed.value) || 0) > 0 && !resolved.includes(keyed)) {
22342
+ resolved.push(keyed);
22343
+ remaining.set(keyed.value, remaining.get(keyed.value) - 1);
22344
+ }
22345
+ });
22346
+ }
22347
+
22348
+ // Fall back to value matching for the occurrences not resolved by key. Iterate
22349
+ // the leftover per-value counts so a value that appears twice but was only
22350
+ // resolved once by key still matches its remaining occurrence(s).
22351
+ remaining.forEach((count, val) => {
22352
+ for (let occurrence = 0; occurrence < count; occurrence += 1) {
22353
+ const option = items.find((item) => isSelectableByValue(item) && item.value === val && !resolved.includes(item));
22354
+ if (option) {
22355
+ resolved.push(option);
22356
+ }
22357
+ }
22358
+ });
22359
+
22360
+ // Always return in DOM order so display is consistent regardless of the order
22361
+ // keys/values were selected. Every resolved option came from `items`, so an
22362
+ // O(1) index lookup mirrors `_sortSelectedByDomOrder` and avoids the O(n)
22363
+ // `items.indexOf` per comparison for large combobox option sets.
22364
+ const indexMap = new Map(items.map((item, index) => [
22365
+ item,
22366
+ index
22367
+ ]));
22368
+ resolved.sort((optionA, optionB) => indexMap.get(optionA) - indexMap.get(optionB));
22369
+
22370
+ return resolved;
22371
+ }
22372
+ /* eslint-enable no-underscore-dangle */
22373
+
22273
22374
  /**
22274
22375
  * Helper method to dispatch custom events.
22275
22376
  * @param {HTMLElement} element - Element to dispatch event from.
@@ -22295,6 +22396,14 @@ function dispatchMenuEvent(element, eventName, detail = null) {
22295
22396
  // See LICENSE in the project root for license information.
22296
22397
 
22297
22398
 
22399
+ /**
22400
+ * Monotonically increasing counter used to give each menu instance a unique
22401
+ * `_menuInstanceId` prefix. Auto-generating the id (rather than using a random
22402
+ * string) keeps option keys deterministic and collision-free across menus.
22403
+ * @private
22404
+ */
22405
+ let menuInstanceIdCounter = 0;
22406
+
22298
22407
 
22299
22408
  /**
22300
22409
  * The `auro-menu` element provides users a way to select from a list of options.
@@ -22369,6 +22478,8 @@ class AuroMenu extends AuroElement {
22369
22478
  /**
22370
22479
  * @private
22371
22480
  */
22481
+ menuInstanceIdCounter += 1;
22482
+
22372
22483
  Object.assign(this, {
22373
22484
  // Root-level menu (true) or a nested submenu (false)
22374
22485
  rootMenu: true,
@@ -22378,6 +22489,21 @@ class AuroMenu extends AuroElement {
22378
22489
  nestingSpacer: '<span class="nestingSpacer"></span>',
22379
22490
  // Loading indicator for slot elements
22380
22491
  loadingSlots: null,
22492
+ // Unique id for this menu instance; prefixes every auto-generated option
22493
+ // key so keys never collide across menus in the same document.
22494
+ _menuInstanceId: `menu-${menuInstanceIdCounter}`,
22495
+ // Monotonically increasing counter for option key generation. Never
22496
+ // resets, so a key is never reused within this instance's lifetime.
22497
+ _optionKeyCounter: 0,
22498
+ // Key(s) of the option(s) the user has actively selected. A single string
22499
+ // in single-select, an array in multi-select, undefined when nothing is
22500
+ // user-selected. Used to disambiguate options that share a `value`.
22501
+ _selectedKey: undefined,
22502
+ // True only for the one updated() cycle following a user selection, so
22503
+ // reconciliation trusts `_selectedKey`. A `value` change from a consumer's
22504
+ // direct property assignment leaves this false, dropping the stale key so
22505
+ // reconciliation falls back to first-by-value (see updated()).
22506
+ _valueChangeFromSelection: false,
22381
22507
  });
22382
22508
  }
22383
22509
 
@@ -22597,6 +22723,13 @@ class AuroMenu extends AuroElement {
22597
22723
  return;
22598
22724
  }
22599
22725
 
22726
+ // A programmatic value set carries no positional intent, so drop any
22727
+ // `_selectedKey` left over from a prior user click. This makes reconciliation
22728
+ // in updated() fall back to first-by-value (single) / value-in-DOM-order
22729
+ // (multi), matching the documented contract for programmatic selection even
22730
+ // when a stale key would still resolve to a duplicate-value option.
22731
+ this._selectedKey = undefined;
22732
+
22600
22733
  // `value` is a String property; stringify arrays so attribute reflection and `formattedValue` parsing stay correct.
22601
22734
  this.value = Array.isArray(value) ? JSON.stringify(value) : value;
22602
22735
  }
@@ -22644,6 +22777,17 @@ class AuroMenu extends AuroElement {
22644
22777
  updated(changedProperties) {
22645
22778
  super.updated(changedProperties);
22646
22779
 
22780
+ // Consume the selection-driven flag for THIS cycle up front. Clearing it
22781
+ // unconditionally — not only inside the `value` branch below — prevents it
22782
+ // from lingering `true` when a selection produces a serialized `value`
22783
+ // byte-identical to the current one, in which case Lit schedules no
22784
+ // `value`-change cycle to consume it. A lingering flag would misclassify a
22785
+ // later consumer's programmatic `value` set as selection-driven and keep a
22786
+ // stale `_selectedKey`. The reconcile path below re-sets the instance flag
22787
+ // after this point, so its intentional cross-cycle hand-off still works.
22788
+ const valueChangeFromSelection = this._valueChangeFromSelection;
22789
+ this._valueChangeFromSelection = false;
22790
+
22647
22791
  // Single source of truth for 'auroMenu-selectedOption'. Selection handlers
22648
22792
  // mutate optionSelected and let Lit's update cycle dispatch here; the prior
22649
22793
  // .value comparison missed multi-select array changes and combined with the
@@ -22667,6 +22811,17 @@ class AuroMenu extends AuroElement {
22667
22811
  this.initItems();
22668
22812
  }
22669
22813
 
22814
+ // Distinguish a selection-driven `value` change (a user click, which set
22815
+ // the flag in handleSelectState / _sortSelectedByDomOrder) from a
22816
+ // programmatic assignment by a consumer. A programmatic set carries no
22817
+ // positional intent, so drop any leftover `_selectedKey` and let
22818
+ // reconciliation fall back to first-by-value (single) / value-in-DOM-order
22819
+ // (multi) — the same contract selectByValue() guarantees, even when a
22820
+ // stale key would otherwise still resolve to a duplicate-value option.
22821
+ if (!valueChangeFromSelection) {
22822
+ this._selectedKey = undefined;
22823
+ }
22824
+
22670
22825
  // Set when reconciliation reassigns `value` below. That reassignment schedules a
22671
22826
  // second updated() cycle, so the `event`-attribute dispatch is deferred to that
22672
22827
  // cycle to avoid firing option custom events twice on the same selection.
@@ -22684,7 +22839,10 @@ class AuroMenu extends AuroElement {
22684
22839
  // Defensive default: `formattedValue` can be undefined for unexpected value types,
22685
22840
  // and calling `.includes` on undefined would throw during reconciliation.
22686
22841
  const valueArray = this.formattedValue || [];
22687
- const matchingOptions = this.items ? this.items.filter((item) => isSelectableByValue(item) && valueArray.includes(item.value)) : [];
22842
+ // Resolve by key first (the user's exact picks), then fall back to
22843
+ // value matching for any values not resolved by key — so pre-selection
22844
+ // and programmatic value sets keep working. Result is DOM-ordered.
22845
+ const matchingOptions = resolveSelectedOptions(this.items, valueArray, this._selectedKey);
22688
22846
  newSelected = matchingOptions.length > 0 ? matchingOptions : undefined;
22689
22847
 
22690
22848
  // Reconcile `value` with the selectable set. Drop only entries whose option is
@@ -22697,6 +22855,12 @@ class AuroMenu extends AuroElement {
22697
22855
  : [];
22698
22856
  if (rejectedValues.length > 0) {
22699
22857
  const reconciled = valueArray.filter((val) => !rejectedValues.includes(val));
22858
+ // This is an internal correction, not a consumer's programmatic set,
22859
+ // so preserve the selection-driven flag through the re-entrant
22860
+ // updated() cycle it schedules. Otherwise that cycle would treat the
22861
+ // reassignment as programmatic and drop `_selectedKey` mid-cascade,
22862
+ // flipping resolution and looping.
22863
+ this._valueChangeFromSelection = true;
22700
22864
  this.value = serializeMultiSelectValue(reconciled);
22701
22865
  valueReconciled = true;
22702
22866
  }
@@ -22708,7 +22872,11 @@ class AuroMenu extends AuroElement {
22708
22872
  // `hidden` is intentionally NOT excluded: the combobox toggles
22709
22873
  // `hidden` as its type-ahead filter, so a filtered-out option is
22710
22874
  // still a valid programmatic selection.
22711
- const matchingOption = this.items ? this.items.find((item) => isSelectableByValue(item) && item.value === this.value) : undefined;
22875
+ // Prefer the option the user actually selected (tracked by
22876
+ // `_selectedKey`) so a click on the second of two options sharing a
22877
+ // `value` resolves back to that exact element instead of the first
22878
+ // value match. Falls back to first-by-value for programmatic sets.
22879
+ const matchingOption = resolveSelectedOption(this.items, this.value, this._selectedKey);
22712
22880
 
22713
22881
  if (matchingOption) {
22714
22882
  newSelected = matchingOption;
@@ -22936,6 +23104,14 @@ class AuroMenu extends AuroElement {
22936
23104
  }
22937
23105
  });
22938
23106
 
23107
+ // Assign private keys once items are populated. Only the root menu assigns
23108
+ // keys: its `items` is a deep query that already includes nested submenu
23109
+ // options, so a single pass keys the entire tree. Nested menus skip this
23110
+ // and inherit keys from the root.
23111
+ if (this.rootMenu) {
23112
+ this._assignOptionKeys();
23113
+ }
23114
+
22939
23115
  if (this.noCheckmark) {
22940
23116
  this.updateItemsState(new Map([
22941
23117
  [
@@ -22952,6 +23128,31 @@ class AuroMenu extends AuroElement {
22952
23128
  }));
22953
23129
  }
22954
23130
 
23131
+ /**
23132
+ * Assigns a private, auto-generated unique key (`_optionKey`) to each menu
23133
+ * option that does not already have one. Keys are internal state on the
23134
+ * element instance — never reflected as an attribute or exposed publicly —
23135
+ * and let selection tracking distinguish options that share the same `value`.
23136
+ *
23137
+ * The `_optionKey === undefined` guard makes this idempotent: options keep the
23138
+ * key they were first assigned across re-renders and slot changes, and if a
23139
+ * nested menu's lifecycle runs a pass before the root, options simply wait for
23140
+ * the root to key them (or keep whatever key they already hold).
23141
+ * @private
23142
+ */
23143
+ _assignOptionKeys() {
23144
+ if (!this.items) {
23145
+ return;
23146
+ }
23147
+
23148
+ this.items.forEach((option) => {
23149
+ if (option._optionKey === undefined) {
23150
+ this._optionKeyCounter += 1;
23151
+ option._optionKey = `${this._menuInstanceId}-${this._optionKeyCounter}`;
23152
+ }
23153
+ });
23154
+ }
23155
+
22955
23156
  // Logic Methods
22956
23157
 
22957
23158
  /**
@@ -22961,24 +23162,28 @@ class AuroMenu extends AuroElement {
22961
23162
  */
22962
23163
  handleSelectState(option) {
22963
23164
  if (this.multiSelect) {
22964
- const currentValue = this.formattedValue || [];
22965
23165
  const currentSelected = this.optionSelected || [];
22966
23166
 
22967
- if (!currentValue.includes(option.value)) {
22968
- this.value = serializeMultiSelectValue([
22969
- ...currentValue,
22970
- option.value
22971
- ]);
22972
- }
22973
23167
  if (!currentSelected.includes(option)) {
22974
23168
  this.optionSelected = [
22975
23169
  ...currentSelected,
22976
23170
  option
22977
23171
  ];
22978
23172
  }
23173
+
23174
+ // Re-sort by DOM order and rebuild `_selectedKey`/`value` from the
23175
+ // selected set so display order stays consistent with the menu, not with
23176
+ // click order.
23177
+ this._sortSelectedByDomOrder();
22979
23178
  } else {
22980
23179
  this.value = option.value;
22981
23180
  this.optionSelected = option;
23181
+ // Track the specific option the user selected so the value→option
23182
+ // reconciliation in updated() resolves back to this exact element even
23183
+ // when another option shares the same `value`.
23184
+ this._selectedKey = option._optionKey;
23185
+ // Mark this `value` change as selection-driven so updated() trusts the key.
23186
+ this._valueChangeFromSelection = true;
22982
23187
  }
22983
23188
 
22984
23189
  this._index = this.items.indexOf(option);
@@ -22991,18 +23196,22 @@ class AuroMenu extends AuroElement {
22991
23196
  */
22992
23197
  handleDeselectState(option) {
22993
23198
  if (this.multiSelect) {
22994
- // Remove this option from array; an empty result collapses `value` to undefined.
22995
- const newFormattedValue = (this.formattedValue || []).filter((val) => val !== option.value);
22996
- this.value = serializeMultiSelectValue(newFormattedValue);
22997
-
22998
- this.optionSelected = this.optionSelected.filter((val) => val !== option);
23199
+ // Remove this exact element from the selection (identity, not value — two
23200
+ // options can share a `value`), then rebuild `value`/`_selectedKey` from
23201
+ // the remaining set in DOM order. An empty result collapses to undefined.
23202
+ this.optionSelected = this.optionSelected.filter((selected) => selected !== option);
22999
23203
  if (this.optionSelected.length === 0) {
23000
23204
  this.optionSelected = undefined;
23205
+ this._selectedKey = undefined;
23206
+ this.value = undefined;
23207
+ } else {
23208
+ this._sortSelectedByDomOrder();
23001
23209
  }
23002
23210
  } else {
23003
23211
  // For single-select: Back to undefined when deselected
23004
23212
  this.value = undefined;
23005
23213
  this.optionSelected = undefined;
23214
+ this._selectedKey = undefined;
23006
23215
  }
23007
23216
 
23008
23217
  // Update the index tracking
@@ -23026,9 +23235,38 @@ class AuroMenu extends AuroElement {
23026
23235
  clearSelection() {
23027
23236
  this.optionSelected = undefined;
23028
23237
  this.value = undefined;
23238
+ this._selectedKey = undefined;
23029
23239
  this._index = -1;
23030
23240
  }
23031
23241
 
23242
+ /**
23243
+ * Re-sorts the multi-select selection into DOM order and rebuilds the derived
23244
+ * `_selectedKey` and `value` from `optionSelected`. Selection is always stored
23245
+ * and serialized in the order options appear in the menu, never in click
23246
+ * order — so selecting C then A yields `[A, C]`.
23247
+ * @private
23248
+ */
23249
+ _sortSelectedByDomOrder() {
23250
+ if (!this.multiSelect || !Array.isArray(this.optionSelected) || !this.items) {
23251
+ return;
23252
+ }
23253
+
23254
+ const indexMap = new Map(this.items.map((item, index) => [
23255
+ item,
23256
+ index
23257
+ ]));
23258
+
23259
+ // Sort any element no longer in `items` (a stale selection left over from a
23260
+ // dynamic rebuild that the consumer has not cleared) to the END rather than
23261
+ // the front, so it never displaces a live option to the head of the
23262
+ // serialized order. Value reconciliation drops it on the next updated() cycle.
23263
+ this.optionSelected.sort((optionA, optionB) => (indexMap.get(optionA) ?? this.items.length) - (indexMap.get(optionB) ?? this.items.length));
23264
+ this._selectedKey = this.optionSelected.map((option) => option._optionKey);
23265
+ this.value = serializeMultiSelectValue(this.optionSelected.map((option) => option.value));
23266
+ // Mark this `value` change as selection-driven so updated() trusts the keys.
23267
+ this._valueChangeFromSelection = true;
23268
+ }
23269
+
23032
23270
  /**
23033
23271
  * Resets the menu to its initial state.
23034
23272
  * This is the only way to return value to undefined.
@@ -23038,6 +23276,7 @@ class AuroMenu extends AuroElement {
23038
23276
  // Reset to undefined - initial state
23039
23277
  this.value = undefined;
23040
23278
  this.optionSelected = undefined;
23279
+ this._selectedKey = undefined;
23041
23280
  this._index = -1;
23042
23281
 
23043
23282
  // Clear active option state so a follow-up open/navigation starts fresh
@@ -4910,7 +4910,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4910
4910
  }
4911
4911
  };
4912
4912
 
4913
- var formkitVersion$2 = '202607272111';
4913
+ var formkitVersion$2 = '202608040326';
4914
4914
 
4915
4915
  let AuroElement$2 = class AuroElement extends LitElement {
4916
4916
  static get properties() {
@@ -18592,7 +18592,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18592
18592
  }
18593
18593
  };
18594
18594
 
18595
- var formkitVersion$1 = '202607272111';
18595
+ var formkitVersion$1 = '202608040326';
18596
18596
 
18597
18597
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18598
18598
  // See LICENSE in the project root for license information.
@@ -19748,7 +19748,7 @@ class AuroBibtemplate extends LitElement {
19748
19748
  }
19749
19749
  }
19750
19750
 
19751
- var formkitVersion = '202607272111';
19751
+ var formkitVersion = '202608040326';
19752
19752
 
19753
19753
  var styleCss$1 = 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}: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}`;
19754
19754
 
@@ -4910,7 +4910,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4910
4910
  }
4911
4911
  };
4912
4912
 
4913
- var formkitVersion$2 = '202607272111';
4913
+ var formkitVersion$2 = '202608040326';
4914
4914
 
4915
4915
  let AuroElement$2 = class AuroElement extends LitElement {
4916
4916
  static get properties() {
@@ -18592,7 +18592,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18592
18592
  }
18593
18593
  };
18594
18594
 
18595
- var formkitVersion$1 = '202607272111';
18595
+ var formkitVersion$1 = '202608040326';
18596
18596
 
18597
18597
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18598
18598
  // See LICENSE in the project root for license information.
@@ -19748,7 +19748,7 @@ class AuroBibtemplate extends LitElement {
19748
19748
  }
19749
19749
  }
19750
19750
 
19751
- var formkitVersion = '202607272111';
19751
+ var formkitVersion = '202608040326';
19752
19752
 
19753
19753
  var styleCss$1 = 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}: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}`;
19754
19754
 
@@ -1117,7 +1117,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1117
1117
  }
1118
1118
  };
1119
1119
 
1120
- var formkitVersion$1 = '202607272111';
1120
+ var formkitVersion$1 = '202608040326';
1121
1121
 
1122
1122
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1123
1123
  // See LICENSE in the project root for license information.
@@ -1522,7 +1522,7 @@ class AuroCounter extends i$2 {
1522
1522
  aria-valuemax="${this.max}"
1523
1523
  aria-valuemin="${this.min}"
1524
1524
  aria-valuenow="${this.value}"
1525
- aria-valuetext="'${this.value !== undefined ? this.value : this.min}'"
1525
+ aria-valuetext="${this.value !== undefined ? this.value : this.min}"
1526
1526
  role="spinbutton"
1527
1527
  tabindex="${this.disabled ? '-1' : '0'}"
1528
1528
  >
@@ -5288,7 +5288,7 @@ class AuroHelpText extends i$2 {
5288
5288
  }
5289
5289
  }
5290
5290
 
5291
- var formkitVersion = '202607272111';
5291
+ var formkitVersion = '202608040326';
5292
5292
 
5293
5293
  let AuroElement$1 = class AuroElement extends i$2 {
5294
5294
  static get properties() {
@@ -1117,7 +1117,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1117
1117
  }
1118
1118
  };
1119
1119
 
1120
- var formkitVersion$1 = '202607272111';
1120
+ var formkitVersion$1 = '202608040326';
1121
1121
 
1122
1122
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1123
1123
  // See LICENSE in the project root for license information.
@@ -1522,7 +1522,7 @@ class AuroCounter extends i$2 {
1522
1522
  aria-valuemax="${this.max}"
1523
1523
  aria-valuemin="${this.min}"
1524
1524
  aria-valuenow="${this.value}"
1525
- aria-valuetext="'${this.value !== undefined ? this.value : this.min}'"
1525
+ aria-valuetext="${this.value !== undefined ? this.value : this.min}"
1526
1526
  role="spinbutton"
1527
1527
  tabindex="${this.disabled ? '-1' : '0'}"
1528
1528
  >
@@ -5288,7 +5288,7 @@ class AuroHelpText extends i$2 {
5288
5288
  }
5289
5289
  }
5290
5290
 
5291
- var formkitVersion = '202607272111';
5291
+ var formkitVersion = '202608040326';
5292
5292
 
5293
5293
  let AuroElement$1 = class AuroElement extends i$2 {
5294
5294
  static get properties() {
@@ -1067,7 +1067,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1067
1067
  }
1068
1068
  };
1069
1069
 
1070
- var formkitVersion$1 = '202607272111';
1070
+ var formkitVersion$1 = '202608040326';
1071
1071
 
1072
1072
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1073
1073
  // See LICENSE in the project root for license information.
@@ -1472,7 +1472,7 @@ class AuroCounter extends LitElement {
1472
1472
  aria-valuemax="${this.max}"
1473
1473
  aria-valuemin="${this.min}"
1474
1474
  aria-valuenow="${this.value}"
1475
- aria-valuetext="'${this.value !== undefined ? this.value : this.min}'"
1475
+ aria-valuetext="${this.value !== undefined ? this.value : this.min}"
1476
1476
  role="spinbutton"
1477
1477
  tabindex="${this.disabled ? '-1' : '0'}"
1478
1478
  >
@@ -5220,7 +5220,7 @@ class AuroHelpText extends LitElement {
5220
5220
  }
5221
5221
  }
5222
5222
 
5223
- var formkitVersion = '202607272111';
5223
+ var formkitVersion = '202608040326';
5224
5224
 
5225
5225
  let AuroElement$1 = class AuroElement extends LitElement {
5226
5226
  static get properties() {
@@ -1067,7 +1067,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1067
1067
  }
1068
1068
  };
1069
1069
 
1070
- var formkitVersion$1 = '202607272111';
1070
+ var formkitVersion$1 = '202608040326';
1071
1071
 
1072
1072
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1073
1073
  // See LICENSE in the project root for license information.
@@ -1472,7 +1472,7 @@ class AuroCounter extends LitElement {
1472
1472
  aria-valuemax="${this.max}"
1473
1473
  aria-valuemin="${this.min}"
1474
1474
  aria-valuenow="${this.value}"
1475
- aria-valuetext="'${this.value !== undefined ? this.value : this.min}'"
1475
+ aria-valuetext="${this.value !== undefined ? this.value : this.min}"
1476
1476
  role="spinbutton"
1477
1477
  tabindex="${this.disabled ? '-1' : '0'}"
1478
1478
  >
@@ -5220,7 +5220,7 @@ class AuroHelpText extends LitElement {
5220
5220
  }
5221
5221
  }
5222
5222
 
5223
- var formkitVersion = '202607272111';
5223
+ var formkitVersion = '202608040326';
5224
5224
 
5225
5225
  let AuroElement$1 = class AuroElement extends LitElement {
5226
5226
  static get properties() {
@@ -13717,7 +13717,7 @@ class AuroBibtemplate extends i$1 {
13717
13717
  }
13718
13718
  }
13719
13719
 
13720
- var formkitVersion$2 = '202607272111';
13720
+ var formkitVersion$2 = '202608040326';
13721
13721
 
13722
13722
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
13723
13723
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .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, 450);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, 450);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, .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, .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, .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, .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, .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, .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(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -19472,7 +19472,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
19472
19472
  }
19473
19473
  };
19474
19474
 
19475
- var formkitVersion$1 = '202607272111';
19475
+ var formkitVersion$1 = '202608040326';
19476
19476
 
19477
19477
  let AuroElement$2 = class AuroElement extends i$1 {
19478
19478
  static get properties() {
@@ -33161,7 +33161,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
33161
33161
  }
33162
33162
  };
33163
33163
 
33164
- var formkitVersion = '202607272111';
33164
+ var formkitVersion = '202608040326';
33165
33165
 
33166
33166
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
33167
33167
  // See LICENSE in the project root for license information.