@aurodesignsystem-dev/auro-formkit 0.0.0-pr1514.3 → 0.0.0-pr1514.5

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 (52) hide show
  1. package/components/bibtemplate/dist/index.js +1 -1
  2. package/components/bibtemplate/dist/registered.js +1 -1
  3. package/components/checkbox/demo/customize.min.js +1 -1
  4. package/components/checkbox/demo/getting-started.min.js +1 -1
  5. package/components/checkbox/demo/index.min.js +1 -1
  6. package/components/checkbox/dist/index.js +1 -1
  7. package/components/checkbox/dist/registered.js +1 -1
  8. package/components/combobox/demo/customize.min.js +121 -97
  9. package/components/combobox/demo/getting-started.min.js +121 -97
  10. package/components/combobox/demo/index.min.js +121 -97
  11. package/components/combobox/dist/index.js +120 -96
  12. package/components/combobox/dist/registered.js +120 -96
  13. package/components/counter/demo/customize.min.js +11 -3
  14. package/components/counter/demo/index.min.js +11 -3
  15. package/components/counter/dist/index.js +11 -3
  16. package/components/counter/dist/registered.js +11 -3
  17. package/components/datepicker/demo/customize.min.js +224 -119
  18. package/components/datepicker/demo/index.min.js +224 -119
  19. package/components/datepicker/dist/auro-calendar.d.ts +24 -7
  20. package/components/datepicker/dist/index.js +224 -119
  21. package/components/datepicker/dist/registered.js +224 -119
  22. package/components/dropdown/demo/customize.min.js +2 -1
  23. package/components/dropdown/demo/getting-started.min.js +2 -1
  24. package/components/dropdown/demo/index.min.js +2 -1
  25. package/components/dropdown/dist/index.js +2 -1
  26. package/components/dropdown/dist/registered.js +2 -1
  27. package/components/form/demo/customize.min.js +662 -378
  28. package/components/form/demo/getting-started.min.js +662 -378
  29. package/components/form/demo/index.min.js +662 -378
  30. package/components/form/demo/registerDemoDeps.min.js +662 -378
  31. package/components/input/demo/api.md +5 -5
  32. package/components/input/demo/customize.md +8 -8
  33. package/components/input/demo/customize.min.js +116 -93
  34. package/components/input/demo/getting-started.min.js +116 -93
  35. package/components/input/demo/index.min.js +116 -93
  36. package/components/input/dist/base-input.d.ts +33 -44
  37. package/components/input/dist/index.js +129 -94
  38. package/components/input/dist/registered.js +116 -93
  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.min.js +187 -63
  45. package/components/select/demo/getting-started.min.js +187 -63
  46. package/components/select/demo/index.min.js +187 -63
  47. package/components/select/demo/keyboard-behavior.md +18 -4
  48. package/components/select/dist/auro-select.d.ts +20 -8
  49. package/components/select/dist/index.js +187 -63
  50. package/components/select/dist/registered.js +187 -63
  51. package/custom-elements.json +1940 -1734
  52. package/package.json +1 -1
@@ -10456,6 +10456,13 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
10456
10456
  * @returns {string | undefined}
10457
10457
  */
10458
10458
  toFormattedValue(valueObject, format) {
10459
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
10460
+ // `format` argument has to fail gracefully rather than throw on
10461
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
10462
+ // as "no format → no display value".
10463
+ if (!format) {
10464
+ return undefined;
10465
+ }
10459
10466
  const normalizedFormat = format.toLowerCase();
10460
10467
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10461
10468
 
@@ -10606,79 +10613,18 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
10606
10613
  constructor() {
10607
10614
  super();
10608
10615
 
10609
- this.appearance = "default";
10610
- this.disabled = false;
10611
- this.layout = 'classic';
10612
- this.locale = 'en-US';
10613
- this.max = undefined;
10614
- this._maxObject = undefined;
10615
- this.maxLength = undefined;
10616
- this.min = undefined;
10617
- this._minObject = undefined;
10618
- this.minLength = undefined;
10619
- this.required = false;
10620
- this.onDark = false;
10621
- this.setCustomValidityForType = undefined;
10622
- this.size = 'lg';
10623
- this.shape = 'classic';
10624
- this.value = undefined;
10625
- this._valueObject = undefined;
10626
-
10627
- this._initializePrivateDefaults();
10628
- }
10629
-
10630
- /**
10631
- * Internal Defaults.
10632
- * @private
10633
- * @returns {void}
10634
- */
10635
- _initializePrivateDefaults() {
10616
+ // Single-source initialization. Alphabetized so duplicate or stale
10617
+ // defaults are immediately obvious on a diff. Every field is assigned
10618
+ // exactly once here (previously the constructor + the old
10619
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
10620
+ // fields and double-allocated `util` and `validation`, discarding the
10621
+ // first instance). `validation` is now allocated exactly once; `util`
10622
+ // is seeded here with an en-US default and then rebuilt in
10623
+ // `connectedCallback` once the consumer-resolved locale is available,
10624
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
10625
+ // during its own update cycle sees a populated util instance.
10636
10626
  this.activeLabel = false;
10637
- this.appearance = "default";
10638
- this.icon = false;
10639
- this.disabled = false;
10640
- this.dvInputOnly = false;
10641
- this.hideLabelVisually = false;
10642
- this.max = undefined;
10643
- this.maxLength = undefined;
10644
- this.min = undefined;
10645
- this.minLength = undefined;
10646
- this.noValidate = false;
10647
- this.onDark = false;
10648
- this.required = false;
10649
- this.setCustomValidityForType = undefined;
10650
-
10651
- // Used for storing raw values returned from input mask.
10652
- this._rawMaskValue = undefined;
10653
-
10654
- /**
10655
- * @private
10656
- */
10657
- this.layout = 'classic';
10658
-
10659
- /**
10660
- * @private
10661
- */
10662
- this.shape = 'classic';
10663
-
10664
- /**
10665
- * @private
10666
- */
10667
- this.size = 'lg';
10668
-
10669
- this.touched = false;
10670
- this.util = new AuroInputUtilities$3({
10671
- locale: "en-US",
10672
- format: this.format
10673
- });
10674
- this.validation = new AuroFormValidation$7();
10675
- this.inputIconName = undefined;
10676
- this.showPassword = false;
10677
- this.validationCCLength = undefined;
10678
- this.hasValue = false;
10679
- this.label = 'Input label is undefined';
10680
-
10681
-
10627
+ /** @private */
10682
10628
  this.allowedInputTypes = [
10683
10629
  "text",
10684
10630
  "number",
@@ -10687,7 +10633,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
10687
10633
  "credit-card",
10688
10634
  "tel"
10689
10635
  ];
10690
- this.icon = false;
10636
+ this.appearance = "default";
10637
+ /** @private */
10691
10638
  this.dateFormatMap = {
10692
10639
  'mm/dd/yyyy': 'dateMMDDYYYY',
10693
10640
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -10704,27 +10651,57 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
10704
10651
  'dd/mm': 'dateDDMM',
10705
10652
  'mm/dd': 'dateMMDD'
10706
10653
  };
10654
+ this.disabled = false;
10655
+ /** @private */
10707
10656
  this.domHandler = new DomHandler$3();
10708
10657
  this.dvInputOnly = false;
10709
10658
  this.hasValue = false;
10659
+ this.hideLabelVisually = false;
10660
+ this.icon = false;
10661
+ /** @private */
10710
10662
  this.inputIconName = undefined;
10663
+ /** @private */
10711
10664
  this.label = 'Input label is undefined';
10665
+ this.layout = 'classic';
10666
+ this.locale = 'en-US';
10667
+ this.max = undefined;
10668
+ this._maxObject = undefined;
10669
+ this.maxLength = undefined;
10670
+ this.min = undefined;
10671
+ this._minObject = undefined;
10672
+ this.minLength = undefined;
10712
10673
  this.noValidate = false;
10713
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
10674
+ this.onDark = false;
10675
+ // Raw values returned from the input mask before model normalization.
10676
+ this._rawMaskValue = undefined;
10677
+ this.required = false;
10678
+ this.setCustomValidityForType = undefined;
10679
+ // Credit Card is intentionally excluded — its mask manages the cursor
10680
+ // itself, and listing it here caused cursor placement issues in Safari.
10681
+ /** @private */
10714
10682
  this.setSelectionInputTypes = [
10715
10683
  "text",
10716
10684
  "password",
10717
10685
  "email"
10718
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
10686
+ ];
10687
+ this.shape = 'classic';
10688
+ /** @private */
10719
10689
  this.showPassword = false;
10690
+ this.size = 'lg';
10720
10691
  this.touched = false;
10692
+ /** @private */
10721
10693
  this.uniqueId = new UniqueId$2().create();
10694
+ /** @private */
10722
10695
  this.util = new AuroInputUtilities$3({
10723
10696
  locale: this.locale,
10724
10697
  format: this.format
10725
10698
  });
10699
+ /** @private */
10726
10700
  this.validation = new AuroFormValidation$7();
10701
+ /** @private */
10727
10702
  this.validationCCLength = undefined;
10703
+ this.value = undefined;
10704
+ this._valueObject = undefined;
10728
10705
  }
10729
10706
 
10730
10707
  // function to define props used within the scope of this component
@@ -11272,6 +11249,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11272
11249
 
11273
11250
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
11274
11251
 
11252
+ // Normalize the format token to lowercase so case-mixed values supplied
11253
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
11254
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
11255
+ // format silently misses the map and leaves `setCustomValidityForType`
11256
+ // unset.
11257
+ if (this.format) {
11258
+ this.format = this.format.toLowerCase();
11259
+ }
11260
+
11275
11261
  // use validity message override if declared when initializing the component
11276
11262
  if (this.hasAttribute('setCustomValidity')) {
11277
11263
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -11705,6 +11691,38 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11705
11691
  this.touched = true;
11706
11692
  this.validation.validate(this);
11707
11693
  }
11694
+
11695
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
11696
+ // update that can re-render the input and reset the native cursor; we
11697
+ // capture the caret position before that update commits and restore it
11698
+ // via `setSelectionRange` once the update has flushed. Gated on
11699
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
11700
+ // formatter manages the cursor itself) doesn't get a competing write.
11701
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
11702
+ // on input types that don't support text selection (number, email in
11703
+ // some browsers) throws InvalidStateError, which would crash all input
11704
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
11705
+ // the gated types currently support it, since the list is a public
11706
+ // property a consumer could mutate.
11707
+ if (this.setSelectionInputTypes.includes(this.type)) {
11708
+ let selectionStart;
11709
+ try {
11710
+ selectionStart = this.inputElement.selectionStart;
11711
+ } catch (error) { // eslint-disable-line no-unused-vars
11712
+ return;
11713
+ }
11714
+ if (typeof selectionStart !== 'number') {
11715
+ return;
11716
+ }
11717
+ this.updateComplete.then(() => {
11718
+ try {
11719
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
11720
+ } catch (error) { // eslint-disable-line no-unused-vars
11721
+ // Some input types (number/email in certain UAs) throw on
11722
+ // setSelectionRange; swallow and let the native cursor stand.
11723
+ }
11724
+ });
11725
+ }
11708
11726
  }
11709
11727
 
11710
11728
  /**
@@ -12331,7 +12349,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12331
12349
  }
12332
12350
  };
12333
12351
 
12334
- var formkitVersion$8 = '202606291727';
12352
+ var formkitVersion$8 = '202606291930';
12335
12353
 
12336
12354
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12337
12355
  // See LICENSE in the project root for license information.
@@ -12834,6 +12852,7 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
12834
12852
  <${this.buttonTag}
12835
12853
  @click="${this.handleClickShowPassword}"
12836
12854
  appearance="${this.onDark ? 'inverse' : this.appearance}"
12855
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
12837
12856
  class="notificationBtn passwordBtn"
12838
12857
  shape="circle"
12839
12858
  size="sm"
@@ -12907,25 +12926,29 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
12907
12926
  * @returns {html} - Returns HTML for the help text and error message.
12908
12927
  */
12909
12928
  renderHtmlHelpText() {
12929
+ // Single `<p>` with stable identity across validity transitions —
12930
+ // previously two distinct templates (valid vs invalid) caused Lit to
12931
+ // replace the node entirely on a flip, and VoiceOver wouldn't
12932
+ // re-announce because the live-region element it was watching had been
12933
+ // removed and a new one inserted. Keeping one node means the `role`,
12934
+ // `aria-live`, and text content all change in-place, which AT does
12935
+ // observe and announce.
12936
+ const isError = this.validity && this.validity !== 'valid';
12910
12937
  return u$d`
12911
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
12912
- ? u$d`
12913
- <${this.helpTextTag}
12914
- appearance="${this.onDark ? 'inverse' : this.appearance}">
12915
- <p id="${this.uniqueId}" part="helpText">
12916
- <slot name="helpText">${this.getHelpText()}</slot>
12917
- </p>
12918
- </${this.helpTextTag}>
12919
- `
12920
- : u$d`
12921
- <${this.helpTextTag} error
12922
- appearance="${this.onDark ? 'inverse' : this.appearance}">
12923
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
12924
- ${this.errorMessage}
12925
- </p>
12926
- </${this.helpTextTag}>
12927
- `
12928
- }
12938
+ <${this.helpTextTag}
12939
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
12940
+ ?error=${isError}>
12941
+ <p
12942
+ id="${this.uniqueId}"
12943
+ part="helpText"
12944
+ role="${o$4(isError ? 'alert' : undefined)}"
12945
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
12946
+ ${isError
12947
+ ? this.errorMessage
12948
+ : u$d`<slot name="helpText">${this.getHelpText()}</slot>`
12949
+ }
12950
+ </p>
12951
+ </${this.helpTextTag}>
12929
12952
  `;
12930
12953
  }
12931
12954
 
@@ -23566,6 +23589,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
23566
23589
  * @returns {string | undefined}
23567
23590
  */
23568
23591
  toFormattedValue(valueObject, format) {
23592
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
23593
+ // `format` argument has to fail gracefully rather than throw on
23594
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
23595
+ // as "no format → no display value".
23596
+ if (!format) {
23597
+ return undefined;
23598
+ }
23569
23599
  const normalizedFormat = format.toLowerCase();
23570
23600
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
23571
23601
 
@@ -23827,7 +23857,7 @@ var snowflakeColors = i$4`:host([layout=snowflake]) [auro-dropdown]:not(:is([err
23827
23857
 
23828
23858
  var styleCss$7$1 = i$4`.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
23829
23859
 
23830
- var colorCss$7$1 = i$4`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
23860
+ var colorCss$7$1 = i$4`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:unset}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
23831
23861
 
23832
23862
  var styleCss$6$1 = i$4`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:376px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
23833
23863
 
@@ -26178,7 +26208,7 @@ class CalendarUtilities {
26178
26208
 
26179
26209
  var colorCss$4$2 = i$4`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
26180
26210
 
26181
- var styleCss$4$3 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
26211
+ var styleCss$4$3 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
26182
26212
 
26183
26213
  var tokenCss$4 = i$4`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
26184
26214
 
@@ -26573,7 +26603,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
26573
26603
  }
26574
26604
  };
26575
26605
 
26576
- var formkitVersion$2$1 = '202606291727';
26606
+ var formkitVersion$2$1 = '202606291930';
26577
26607
 
26578
26608
  let l$1$2 = 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$2 = 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$1$2 = 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$1$3=i$4`: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}
26579
26609
  `,u$4$2=i$4`.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}}
@@ -26679,8 +26709,10 @@ class AuroCalendar extends RangeDatepicker {
26679
26709
  this.activeCellDate = null;
26680
26710
 
26681
26711
  /**
26682
- * Cached reference to the active cell host, set by setActiveCell.
26683
- * Lets scrollToActiveCell skip a full cell scan on each arrow key.
26712
+ * Cached reference to the active cell host. Set by setActiveCell and
26713
+ * refreshed by scrollToActiveCell when its cache check misses (stale
26714
+ * or missing). Lets scrollToActiveCell skip a full cell scan on each
26715
+ * arrow key.
26684
26716
  * @private
26685
26717
  */
26686
26718
  this._activeCell = null;
@@ -27656,6 +27688,9 @@ class AuroCalendar extends RangeDatepicker {
27656
27688
  this.handleCellFocused({ detail: { date: fallback.day.date } });
27657
27689
  }
27658
27690
  }
27691
+ // Scroll AFTER the cross-month setActiveCell so the freshly
27692
+ // activated cell is what gets scrolled into view.
27693
+ this.scrollToActiveCell();
27659
27694
  // Re-focus grid wrapper after month change re-render
27660
27695
  this.focusActiveCell();
27661
27696
  });
@@ -27696,6 +27731,9 @@ class AuroCalendar extends RangeDatepicker {
27696
27731
  this.handleCellFocused({ detail: { date: nearest.day.date } });
27697
27732
  }
27698
27733
  }
27734
+ // Scroll AFTER the cross-month setActiveCell so the freshly
27735
+ // activated cell is what gets scrolled into view.
27736
+ this.scrollToActiveCell();
27699
27737
  this.focusActiveCell();
27700
27738
  });
27701
27739
  }
@@ -27730,7 +27768,6 @@ class AuroCalendar extends RangeDatepicker {
27730
27768
  const targetCell = allCells[targetIndex];
27731
27769
  this.setActiveCell(targetCell.day.date);
27732
27770
  this.scrollToActiveCell();
27733
- this.focusActiveCell();
27734
27771
  } else if (direction === 'next' && this.showNextMonthBtn) {
27735
27772
  // Navigate to next month and focus the computed next date.
27736
27773
  // Using the target date (fromDate + 1 day) instead of cells[0]
@@ -27751,7 +27788,6 @@ class AuroCalendar extends RangeDatepicker {
27751
27788
  const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
27752
27789
  if (target) {
27753
27790
  this.setActiveCell(target.day.date);
27754
- this.focusActiveCell();
27755
27791
  } else {
27756
27792
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
27757
27793
  // `cells[length - 1]` would land on the end of the new month,
@@ -27759,9 +27795,10 @@ class AuroCalendar extends RangeDatepicker {
27759
27795
  const fallback = this.pickNearestCell(cells, nextTs, 'next');
27760
27796
  if (fallback) {
27761
27797
  this.setActiveCell(fallback.day.date);
27762
- this.focusActiveCell();
27763
27798
  }
27764
27799
  }
27800
+ this.scrollToActiveCell();
27801
+ this.focusActiveCell();
27765
27802
  });
27766
27803
  } else if (direction === 'prev' && this.showPrevMonthBtn) {
27767
27804
  // Navigate to previous month and focus the computed previous date.
@@ -27780,7 +27817,6 @@ class AuroCalendar extends RangeDatepicker {
27780
27817
  const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
27781
27818
  if (target) {
27782
27819
  this.setActiveCell(target.day.date);
27783
- this.focusActiveCell();
27784
27820
  } else {
27785
27821
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
27786
27822
  // `cells[0]` would land on the start of the previous month, far
@@ -27788,9 +27824,10 @@ class AuroCalendar extends RangeDatepicker {
27788
27824
  const fallback = this.pickNearestCell(cells, prevTs, 'prev');
27789
27825
  if (fallback) {
27790
27826
  this.setActiveCell(fallback.day.date);
27791
- this.focusActiveCell();
27792
27827
  }
27793
27828
  }
27829
+ this.scrollToActiveCell();
27830
+ this.focusActiveCell();
27794
27831
  });
27795
27832
  }
27796
27833
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
@@ -27823,7 +27860,6 @@ class AuroCalendar extends RangeDatepicker {
27823
27860
  const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
27824
27861
  if (target) {
27825
27862
  this.setActiveCell(target.day.date);
27826
- this.focusActiveCell();
27827
27863
  } else {
27828
27864
  // Same nearest-by-date fallback handleGridKeyDown uses — the
27829
27865
  // old direction-based `cells[0]`/`cells[length-1]` clamp
@@ -27831,9 +27867,10 @@ class AuroCalendar extends RangeDatepicker {
27831
27867
  const nearest = this.pickNearestCell(cells, targetDate, navDirection);
27832
27868
  if (nearest) {
27833
27869
  this.setActiveCell(nearest.day.date);
27834
- this.focusActiveCell();
27835
27870
  }
27836
27871
  }
27872
+ this.scrollToActiveCell();
27873
+ this.focusActiveCell();
27837
27874
  });
27838
27875
  }
27839
27876
  }
@@ -28034,11 +28071,26 @@ class AuroCalendar extends RangeDatepicker {
28034
28071
  }
28035
28072
 
28036
28073
  /**
28037
- * Scrolls the calendar to ensure the active cell is visible.
28038
- * Targets the cell itself (not its month) so that same-month vertical
28039
- * navigation in mobile fullscreen where a single month can exceed the
28040
- * viewport height scrolls to the target row. `block: 'nearest'` is a
28041
- * no-op when the cell is already in view, preserving desktop behavior.
28074
+ * Scrolls the calendar so the active cell is visible.
28075
+ *
28076
+ * Walks the flat tree (rendered, slot-aware) outward from the active
28077
+ * cell's button and calls `scrollBy` on every vertically-scrollable
28078
+ * ancestor by whatever delta still separates the cell from that
28079
+ * ancestor's viewport. Native `scrollIntoView` is not used because the
28080
+ * cell sits inside multiple nested scroll containers (the dropdown bib's
28081
+ * `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
28082
+ * scrolls one of them on its own, leaving the cell short of the
28083
+ * viewport in mobile fullscreen.
28084
+ *
28085
+ * Uses `behavior: 'instant'` so each `scrollBy` resolves synchronously,
28086
+ * letting the next iteration's `getBoundingClientRect` read post-scroll
28087
+ * positions accurately. This also satisfies `prefers-reduced-motion`
28088
+ * users by avoiding scroll animation altogether.
28089
+ *
28090
+ * The active cell is looked up from the cache populated by
28091
+ * `setActiveCell`. On a cache miss (stale or absent) the cache is
28092
+ * refreshed from a single full scan so subsequent calls stay on the
28093
+ * fast path.
28042
28094
  * @private
28043
28095
  * @returns {void}
28044
28096
  */
@@ -28066,11 +28118,51 @@ class AuroCalendar extends RangeDatepicker {
28066
28118
  return;
28067
28119
  }
28068
28120
 
28069
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
28070
- activeCell.scrollIntoView({
28071
- block: 'nearest',
28072
- behavior: prefersReducedMotion ? 'auto' : 'smooth'
28073
- });
28121
+ // Scroll the button inside the cell — it has concrete dimensions,
28122
+ // which avoids quirks when the cell host has display: inline / contents
28123
+ // / flex-without-explicit-size.
28124
+ const target = activeCell._cachedButton ||
28125
+ activeCell.shadowRoot?.querySelector('button.day') ||
28126
+ activeCell;
28127
+
28128
+ // parentNode follows the authored DOM tree and steps over shadow roots
28129
+ // via slot projection. A slotted element's visual parent is its
28130
+ // assignedSlot's parent (inside the host's shadow tree), not the host
28131
+ // itself. Without this hop, the walk skips right past #bodyContainer
28132
+ // and <dialog> and finds no scrollable ancestor at all.
28133
+ const flatParent = (current) => {
28134
+ if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
28135
+ return current.host || null;
28136
+ }
28137
+ if (current.assignedSlot) {
28138
+ return current.assignedSlot.parentNode;
28139
+ }
28140
+ return current.parentNode;
28141
+ };
28142
+
28143
+ let node = flatParent(target);
28144
+ while (node && node !== document && node !== window) {
28145
+ if (node.nodeType === Node.ELEMENT_NODE) {
28146
+ const { overflowY } = window.getComputedStyle(node);
28147
+ if (overflowY === 'auto' || overflowY === 'scroll') {
28148
+ const targetRect = target.getBoundingClientRect();
28149
+ const scrollerRect = node.getBoundingClientRect();
28150
+ let delta = 0;
28151
+ if (targetRect.top < scrollerRect.top) {
28152
+ delta = targetRect.top - scrollerRect.top;
28153
+ } else if (targetRect.bottom > scrollerRect.bottom) {
28154
+ delta = targetRect.bottom - scrollerRect.bottom;
28155
+ }
28156
+ if (delta !== 0) {
28157
+ node.scrollBy({
28158
+ top: delta,
28159
+ behavior: 'instant'
28160
+ });
28161
+ }
28162
+ }
28163
+ }
28164
+ node = flatParent(node);
28165
+ }
28074
28166
  }
28075
28167
 
28076
28168
  /**
@@ -32258,7 +32350,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32258
32350
  }
32259
32351
  };
32260
32352
 
32261
- var formkitVersion$1$3 = '202606291727';
32353
+ var formkitVersion$1$3 = '202606291930';
32262
32354
 
32263
32355
  let AuroElement$2$2 = class AuroElement extends i$2 {
32264
32356
  static get properties() {
@@ -33530,6 +33622,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33530
33622
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
33531
33623
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
33532
33624
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
33625
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
33533
33626
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
33534
33627
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
33535
33628
  @focusin="${this.handleFocusin}"
@@ -43976,6 +44069,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
43976
44069
  * @returns {string | undefined}
43977
44070
  */
43978
44071
  toFormattedValue(valueObject, format) {
44072
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
44073
+ // `format` argument has to fail gracefully rather than throw on
44074
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
44075
+ // as "no format → no display value".
44076
+ if (!format) {
44077
+ return undefined;
44078
+ }
43979
44079
  const normalizedFormat = format.toLowerCase();
43980
44080
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
43981
44081
 
@@ -44126,79 +44226,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44126
44226
  constructor() {
44127
44227
  super();
44128
44228
 
44129
- this.appearance = "default";
44130
- this.disabled = false;
44131
- this.layout = 'classic';
44132
- this.locale = 'en-US';
44133
- this.max = undefined;
44134
- this._maxObject = undefined;
44135
- this.maxLength = undefined;
44136
- this.min = undefined;
44137
- this._minObject = undefined;
44138
- this.minLength = undefined;
44139
- this.required = false;
44140
- this.onDark = false;
44141
- this.setCustomValidityForType = undefined;
44142
- this.size = 'lg';
44143
- this.shape = 'classic';
44144
- this.value = undefined;
44145
- this._valueObject = undefined;
44146
-
44147
- this._initializePrivateDefaults();
44148
- }
44149
-
44150
- /**
44151
- * Internal Defaults.
44152
- * @private
44153
- * @returns {void}
44154
- */
44155
- _initializePrivateDefaults() {
44229
+ // Single-source initialization. Alphabetized so duplicate or stale
44230
+ // defaults are immediately obvious on a diff. Every field is assigned
44231
+ // exactly once here (previously the constructor + the old
44232
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
44233
+ // fields and double-allocated `util` and `validation`, discarding the
44234
+ // first instance). `validation` is now allocated exactly once; `util`
44235
+ // is seeded here with an en-US default and then rebuilt in
44236
+ // `connectedCallback` once the consumer-resolved locale is available,
44237
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
44238
+ // during its own update cycle sees a populated util instance.
44156
44239
  this.activeLabel = false;
44157
- this.appearance = "default";
44158
- this.icon = false;
44159
- this.disabled = false;
44160
- this.dvInputOnly = false;
44161
- this.hideLabelVisually = false;
44162
- this.max = undefined;
44163
- this.maxLength = undefined;
44164
- this.min = undefined;
44165
- this.minLength = undefined;
44166
- this.noValidate = false;
44167
- this.onDark = false;
44168
- this.required = false;
44169
- this.setCustomValidityForType = undefined;
44170
-
44171
- // Used for storing raw values returned from input mask.
44172
- this._rawMaskValue = undefined;
44173
-
44174
- /**
44175
- * @private
44176
- */
44177
- this.layout = 'classic';
44178
-
44179
- /**
44180
- * @private
44181
- */
44182
- this.shape = 'classic';
44183
-
44184
- /**
44185
- * @private
44186
- */
44187
- this.size = 'lg';
44188
-
44189
- this.touched = false;
44190
- this.util = new AuroInputUtilities$2({
44191
- locale: "en-US",
44192
- format: this.format
44193
- });
44194
- this.validation = new AuroFormValidation$6();
44195
- this.inputIconName = undefined;
44196
- this.showPassword = false;
44197
- this.validationCCLength = undefined;
44198
- this.hasValue = false;
44199
- this.label = 'Input label is undefined';
44200
-
44201
-
44240
+ /** @private */
44202
44241
  this.allowedInputTypes = [
44203
44242
  "text",
44204
44243
  "number",
@@ -44207,7 +44246,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44207
44246
  "credit-card",
44208
44247
  "tel"
44209
44248
  ];
44210
- this.icon = false;
44249
+ this.appearance = "default";
44250
+ /** @private */
44211
44251
  this.dateFormatMap = {
44212
44252
  'mm/dd/yyyy': 'dateMMDDYYYY',
44213
44253
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -44224,27 +44264,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44224
44264
  'dd/mm': 'dateDDMM',
44225
44265
  'mm/dd': 'dateMMDD'
44226
44266
  };
44267
+ this.disabled = false;
44268
+ /** @private */
44227
44269
  this.domHandler = new DomHandler$2();
44228
44270
  this.dvInputOnly = false;
44229
44271
  this.hasValue = false;
44272
+ this.hideLabelVisually = false;
44273
+ this.icon = false;
44274
+ /** @private */
44230
44275
  this.inputIconName = undefined;
44276
+ /** @private */
44231
44277
  this.label = 'Input label is undefined';
44278
+ this.layout = 'classic';
44279
+ this.locale = 'en-US';
44280
+ this.max = undefined;
44281
+ this._maxObject = undefined;
44282
+ this.maxLength = undefined;
44283
+ this.min = undefined;
44284
+ this._minObject = undefined;
44285
+ this.minLength = undefined;
44232
44286
  this.noValidate = false;
44233
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
44287
+ this.onDark = false;
44288
+ // Raw values returned from the input mask before model normalization.
44289
+ this._rawMaskValue = undefined;
44290
+ this.required = false;
44291
+ this.setCustomValidityForType = undefined;
44292
+ // Credit Card is intentionally excluded — its mask manages the cursor
44293
+ // itself, and listing it here caused cursor placement issues in Safari.
44294
+ /** @private */
44234
44295
  this.setSelectionInputTypes = [
44235
44296
  "text",
44236
44297
  "password",
44237
44298
  "email"
44238
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
44299
+ ];
44300
+ this.shape = 'classic';
44301
+ /** @private */
44239
44302
  this.showPassword = false;
44303
+ this.size = 'lg';
44240
44304
  this.touched = false;
44305
+ /** @private */
44241
44306
  this.uniqueId = new UniqueId$1().create();
44307
+ /** @private */
44242
44308
  this.util = new AuroInputUtilities$2({
44243
44309
  locale: this.locale,
44244
44310
  format: this.format
44245
44311
  });
44312
+ /** @private */
44246
44313
  this.validation = new AuroFormValidation$6();
44314
+ /** @private */
44247
44315
  this.validationCCLength = undefined;
44316
+ this.value = undefined;
44317
+ this._valueObject = undefined;
44248
44318
  }
44249
44319
 
44250
44320
  // function to define props used within the scope of this component
@@ -44792,6 +44862,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44792
44862
 
44793
44863
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
44794
44864
 
44865
+ // Normalize the format token to lowercase so case-mixed values supplied
44866
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
44867
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
44868
+ // format silently misses the map and leaves `setCustomValidityForType`
44869
+ // unset.
44870
+ if (this.format) {
44871
+ this.format = this.format.toLowerCase();
44872
+ }
44873
+
44795
44874
  // use validity message override if declared when initializing the component
44796
44875
  if (this.hasAttribute('setCustomValidity')) {
44797
44876
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -45225,6 +45304,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45225
45304
  this.touched = true;
45226
45305
  this.validation.validate(this);
45227
45306
  }
45307
+
45308
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
45309
+ // update that can re-render the input and reset the native cursor; we
45310
+ // capture the caret position before that update commits and restore it
45311
+ // via `setSelectionRange` once the update has flushed. Gated on
45312
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
45313
+ // formatter manages the cursor itself) doesn't get a competing write.
45314
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
45315
+ // on input types that don't support text selection (number, email in
45316
+ // some browsers) throws InvalidStateError, which would crash all input
45317
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
45318
+ // the gated types currently support it, since the list is a public
45319
+ // property a consumer could mutate.
45320
+ if (this.setSelectionInputTypes.includes(this.type)) {
45321
+ let selectionStart;
45322
+ try {
45323
+ selectionStart = this.inputElement.selectionStart;
45324
+ } catch (error) { // eslint-disable-line no-unused-vars
45325
+ return;
45326
+ }
45327
+ if (typeof selectionStart !== 'number') {
45328
+ return;
45329
+ }
45330
+ this.updateComplete.then(() => {
45331
+ try {
45332
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
45333
+ } catch (error) { // eslint-disable-line no-unused-vars
45334
+ // Some input types (number/email in certain UAs) throw on
45335
+ // setSelectionRange; swallow and let the native cursor stand.
45336
+ }
45337
+ });
45338
+ }
45228
45339
  }
45229
45340
 
45230
45341
  /**
@@ -45851,7 +45962,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
45851
45962
  }
45852
45963
  };
45853
45964
 
45854
- var formkitVersion$7 = '202606291727';
45965
+ var formkitVersion$7 = '202606291930';
45855
45966
 
45856
45967
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
45857
45968
  // See LICENSE in the project root for license information.
@@ -46354,6 +46465,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46354
46465
  <${this.buttonTag}
46355
46466
  @click="${this.handleClickShowPassword}"
46356
46467
  appearance="${this.onDark ? 'inverse' : this.appearance}"
46468
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
46357
46469
  class="notificationBtn passwordBtn"
46358
46470
  shape="circle"
46359
46471
  size="sm"
@@ -46427,25 +46539,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46427
46539
  * @returns {html} - Returns HTML for the help text and error message.
46428
46540
  */
46429
46541
  renderHtmlHelpText() {
46542
+ // Single `<p>` with stable identity across validity transitions —
46543
+ // previously two distinct templates (valid vs invalid) caused Lit to
46544
+ // replace the node entirely on a flip, and VoiceOver wouldn't
46545
+ // re-announce because the live-region element it was watching had been
46546
+ // removed and a new one inserted. Keeping one node means the `role`,
46547
+ // `aria-live`, and text content all change in-place, which AT does
46548
+ // observe and announce.
46549
+ const isError = this.validity && this.validity !== 'valid';
46430
46550
  return u$d`
46431
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
46432
- ? u$d`
46433
- <${this.helpTextTag}
46434
- appearance="${this.onDark ? 'inverse' : this.appearance}">
46435
- <p id="${this.uniqueId}" part="helpText">
46436
- <slot name="helpText">${this.getHelpText()}</slot>
46437
- </p>
46438
- </${this.helpTextTag}>
46439
- `
46440
- : u$d`
46441
- <${this.helpTextTag} error
46442
- appearance="${this.onDark ? 'inverse' : this.appearance}">
46443
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
46444
- ${this.errorMessage}
46445
- </p>
46446
- </${this.helpTextTag}>
46447
- `
46448
- }
46551
+ <${this.helpTextTag}
46552
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
46553
+ ?error=${isError}>
46554
+ <p
46555
+ id="${this.uniqueId}"
46556
+ part="helpText"
46557
+ role="${o$4(isError ? 'alert' : undefined)}"
46558
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
46559
+ ${isError
46560
+ ? this.errorMessage
46561
+ : u$d`<slot name="helpText">${this.getHelpText()}</slot>`
46562
+ }
46563
+ </p>
46564
+ </${this.helpTextTag}>
46449
46565
  `;
46450
46566
  }
46451
46567
 
@@ -46592,6 +46708,15 @@ function formatISODate(isoStr, format) {
46592
46708
  try {
46593
46709
  const date = dateFormatter$2.stringToDateInstance(isoStr);
46594
46710
 
46711
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
46712
+ // and `null` for non-string input — it does NOT throw. Without this
46713
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
46714
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
46715
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
46716
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
46717
+ return undefined;
46718
+ }
46719
+
46595
46720
  const year = String(date.getFullYear()).padStart(4, '0');
46596
46721
  const month = String(date.getMonth() + 1).padStart(2, '0');
46597
46722
  const day = String(date.getDate()).padStart(2, '0');
@@ -46602,7 +46727,10 @@ function formatISODate(isoStr, format) {
46602
46727
  replace(/mm/iu, month).
46603
46728
  replace(/dd/iu, day);
46604
46729
  } catch (err) {
46605
- // If the input string is not a valid date, return undefined
46730
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
46731
+ // (inside `stringToDateInstance`) could throw on pathological input
46732
+ // future-library-versions might introduce. Treat any thrown error as
46733
+ // "not a valid date" and return undefined.
46606
46734
  return undefined;
46607
46735
  }
46608
46736
  }
@@ -48447,8 +48575,8 @@ class AuroDatePicker extends AuroElement$5 {
48447
48575
  // we need to wait until the next frame to ensure the calendar is fully rendered
48448
48576
  // and the area we're trying to scroll to is present in the DOM.
48449
48577
  setTimeout(() => {
48450
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
48451
48578
  this.forceScrollOnNextMobileCalendarRender = false;
48579
+ this.calendar.scrollToActiveCell();
48452
48580
  }, 0);
48453
48581
  }
48454
48582
  }, { signal });
@@ -50706,7 +50834,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
50706
50834
  }
50707
50835
  };
50708
50836
 
50709
- var formkitVersion$1$2 = '202606291727';
50837
+ var formkitVersion$1$2 = '202606291930';
50710
50838
 
50711
50839
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
50712
50840
  // See LICENSE in the project root for license information.
@@ -55034,7 +55162,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55034
55162
  }
55035
55163
  };
55036
55164
 
55037
- var formkitVersion$6 = '202606291727';
55165
+ var formkitVersion$6 = '202606291930';
55038
55166
 
55039
55167
  let AuroElement$1$2 = class AuroElement extends i$2 {
55040
55168
  static get properties() {
@@ -56306,6 +56434,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56306
56434
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
56307
56435
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
56308
56436
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
56437
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
56309
56438
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
56310
56439
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
56311
56440
  @focusin="${this.handleFocusin}"
@@ -56432,7 +56561,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56432
56561
 
56433
56562
  var colorCss$1$6 = i$4`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
56434
56563
 
56435
- var styleCss$1$6 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
56564
+ var styleCss$1$6 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
56436
56565
 
56437
56566
  var tokenCss$3 = i$4`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
56438
56567
 
@@ -57438,6 +57567,13 @@ class AuroCounterGroup extends AuroElement$4 {
57438
57567
  */
57439
57568
  configureDropdownCounters() {
57440
57569
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
57570
+
57571
+ // Counter rows are slotted into the bib through multiple shadow roots
57572
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
57573
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
57574
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
57575
+ this.dropdown.noHideOnThisFocusLoss = true;
57576
+
57441
57577
  this.dropdown.requestUpdate();
57442
57578
 
57443
57579
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -58974,7 +59110,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
58974
59110
  }
58975
59111
  };
58976
59112
 
58977
- var formkitVersion$5 = '202606291727';
59113
+ var formkitVersion$5 = '202606291930';
58978
59114
 
58979
59115
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
58980
59116
  // See LICENSE in the project root for license information.
@@ -60724,7 +60860,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
60724
60860
  }
60725
60861
  };
60726
60862
 
60727
- var formkitVersion$4 = '202606291727';
60863
+ var formkitVersion$4 = '202606291930';
60728
60864
 
60729
60865
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
60730
60866
  // See LICENSE in the project root for license information.
@@ -65939,7 +66075,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
65939
66075
  }
65940
66076
  };
65941
66077
 
65942
- var formkitVersion$2 = '202606291727';
66078
+ var formkitVersion$2 = '202606291930';
65943
66079
 
65944
66080
  let AuroElement$2$1 = class AuroElement extends i$2 {
65945
66081
  static get properties() {
@@ -67211,6 +67347,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67211
67347
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
67212
67348
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
67213
67349
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
67350
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
67214
67351
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
67215
67352
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
67216
67353
  @focusin="${this.handleFocusin}"
@@ -77657,6 +77794,13 @@ class AuroInputUtilities {
77657
77794
  * @returns {string | undefined}
77658
77795
  */
77659
77796
  toFormattedValue(valueObject, format) {
77797
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
77798
+ // `format` argument has to fail gracefully rather than throw on
77799
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
77800
+ // as "no format → no display value".
77801
+ if (!format) {
77802
+ return undefined;
77803
+ }
77660
77804
  const normalizedFormat = format.toLowerCase();
77661
77805
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
77662
77806
 
@@ -77807,79 +77951,18 @@ class BaseInput extends AuroElement$1$1 {
77807
77951
  constructor() {
77808
77952
  super();
77809
77953
 
77810
- this.appearance = "default";
77811
- this.disabled = false;
77812
- this.layout = 'classic';
77813
- this.locale = 'en-US';
77814
- this.max = undefined;
77815
- this._maxObject = undefined;
77816
- this.maxLength = undefined;
77817
- this.min = undefined;
77818
- this._minObject = undefined;
77819
- this.minLength = undefined;
77820
- this.required = false;
77821
- this.onDark = false;
77822
- this.setCustomValidityForType = undefined;
77823
- this.size = 'lg';
77824
- this.shape = 'classic';
77825
- this.value = undefined;
77826
- this._valueObject = undefined;
77827
-
77828
- this._initializePrivateDefaults();
77829
- }
77830
-
77831
- /**
77832
- * Internal Defaults.
77833
- * @private
77834
- * @returns {void}
77835
- */
77836
- _initializePrivateDefaults() {
77954
+ // Single-source initialization. Alphabetized so duplicate or stale
77955
+ // defaults are immediately obvious on a diff. Every field is assigned
77956
+ // exactly once here (previously the constructor + the old
77957
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
77958
+ // fields and double-allocated `util` and `validation`, discarding the
77959
+ // first instance). `validation` is now allocated exactly once; `util`
77960
+ // is seeded here with an en-US default and then rebuilt in
77961
+ // `connectedCallback` once the consumer-resolved locale is available,
77962
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
77963
+ // during its own update cycle sees a populated util instance.
77837
77964
  this.activeLabel = false;
77838
- this.appearance = "default";
77839
- this.icon = false;
77840
- this.disabled = false;
77841
- this.dvInputOnly = false;
77842
- this.hideLabelVisually = false;
77843
- this.max = undefined;
77844
- this.maxLength = undefined;
77845
- this.min = undefined;
77846
- this.minLength = undefined;
77847
- this.noValidate = false;
77848
- this.onDark = false;
77849
- this.required = false;
77850
- this.setCustomValidityForType = undefined;
77851
-
77852
- // Used for storing raw values returned from input mask.
77853
- this._rawMaskValue = undefined;
77854
-
77855
- /**
77856
- * @private
77857
- */
77858
- this.layout = 'classic';
77859
-
77860
- /**
77861
- * @private
77862
- */
77863
- this.shape = 'classic';
77864
-
77865
- /**
77866
- * @private
77867
- */
77868
- this.size = 'lg';
77869
-
77870
- this.touched = false;
77871
- this.util = new AuroInputUtilities({
77872
- locale: "en-US",
77873
- format: this.format
77874
- });
77875
- this.validation = new AuroFormValidation$2();
77876
- this.inputIconName = undefined;
77877
- this.showPassword = false;
77878
- this.validationCCLength = undefined;
77879
- this.hasValue = false;
77880
- this.label = 'Input label is undefined';
77881
-
77882
-
77965
+ /** @private */
77883
77966
  this.allowedInputTypes = [
77884
77967
  "text",
77885
77968
  "number",
@@ -77888,7 +77971,8 @@ class BaseInput extends AuroElement$1$1 {
77888
77971
  "credit-card",
77889
77972
  "tel"
77890
77973
  ];
77891
- this.icon = false;
77974
+ this.appearance = "default";
77975
+ /** @private */
77892
77976
  this.dateFormatMap = {
77893
77977
  'mm/dd/yyyy': 'dateMMDDYYYY',
77894
77978
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -77905,27 +77989,57 @@ class BaseInput extends AuroElement$1$1 {
77905
77989
  'dd/mm': 'dateDDMM',
77906
77990
  'mm/dd': 'dateMMDD'
77907
77991
  };
77992
+ this.disabled = false;
77993
+ /** @private */
77908
77994
  this.domHandler = new DomHandler();
77909
77995
  this.dvInputOnly = false;
77910
77996
  this.hasValue = false;
77997
+ this.hideLabelVisually = false;
77998
+ this.icon = false;
77999
+ /** @private */
77911
78000
  this.inputIconName = undefined;
78001
+ /** @private */
77912
78002
  this.label = 'Input label is undefined';
78003
+ this.layout = 'classic';
78004
+ this.locale = 'en-US';
78005
+ this.max = undefined;
78006
+ this._maxObject = undefined;
78007
+ this.maxLength = undefined;
78008
+ this.min = undefined;
78009
+ this._minObject = undefined;
78010
+ this.minLength = undefined;
77913
78011
  this.noValidate = false;
77914
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
78012
+ this.onDark = false;
78013
+ // Raw values returned from the input mask before model normalization.
78014
+ this._rawMaskValue = undefined;
78015
+ this.required = false;
78016
+ this.setCustomValidityForType = undefined;
78017
+ // Credit Card is intentionally excluded — its mask manages the cursor
78018
+ // itself, and listing it here caused cursor placement issues in Safari.
78019
+ /** @private */
77915
78020
  this.setSelectionInputTypes = [
77916
78021
  "text",
77917
78022
  "password",
77918
78023
  "email"
77919
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
78024
+ ];
78025
+ this.shape = 'classic';
78026
+ /** @private */
77920
78027
  this.showPassword = false;
78028
+ this.size = 'lg';
77921
78029
  this.touched = false;
78030
+ /** @private */
77922
78031
  this.uniqueId = new UniqueId().create();
78032
+ /** @private */
77923
78033
  this.util = new AuroInputUtilities({
77924
78034
  locale: this.locale,
77925
78035
  format: this.format
77926
78036
  });
78037
+ /** @private */
77927
78038
  this.validation = new AuroFormValidation$2();
78039
+ /** @private */
77928
78040
  this.validationCCLength = undefined;
78041
+ this.value = undefined;
78042
+ this._valueObject = undefined;
77929
78043
  }
77930
78044
 
77931
78045
  // function to define props used within the scope of this component
@@ -78473,6 +78587,15 @@ class BaseInput extends AuroElement$1$1 {
78473
78587
 
78474
78588
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
78475
78589
 
78590
+ // Normalize the format token to lowercase so case-mixed values supplied
78591
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
78592
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
78593
+ // format silently misses the map and leaves `setCustomValidityForType`
78594
+ // unset.
78595
+ if (this.format) {
78596
+ this.format = this.format.toLowerCase();
78597
+ }
78598
+
78476
78599
  // use validity message override if declared when initializing the component
78477
78600
  if (this.hasAttribute('setCustomValidity')) {
78478
78601
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -78906,6 +79029,38 @@ class BaseInput extends AuroElement$1$1 {
78906
79029
  this.touched = true;
78907
79030
  this.validation.validate(this);
78908
79031
  }
79032
+
79033
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
79034
+ // update that can re-render the input and reset the native cursor; we
79035
+ // capture the caret position before that update commits and restore it
79036
+ // via `setSelectionRange` once the update has flushed. Gated on
79037
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
79038
+ // formatter manages the cursor itself) doesn't get a competing write.
79039
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
79040
+ // on input types that don't support text selection (number, email in
79041
+ // some browsers) throws InvalidStateError, which would crash all input
79042
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
79043
+ // the gated types currently support it, since the list is a public
79044
+ // property a consumer could mutate.
79045
+ if (this.setSelectionInputTypes.includes(this.type)) {
79046
+ let selectionStart;
79047
+ try {
79048
+ selectionStart = this.inputElement.selectionStart;
79049
+ } catch (error) { // eslint-disable-line no-unused-vars
79050
+ return;
79051
+ }
79052
+ if (typeof selectionStart !== 'number') {
79053
+ return;
79054
+ }
79055
+ this.updateComplete.then(() => {
79056
+ try {
79057
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
79058
+ } catch (error) { // eslint-disable-line no-unused-vars
79059
+ // Some input types (number/email in certain UAs) throw on
79060
+ // setSelectionRange; swallow and let the native cursor stand.
79061
+ }
79062
+ });
79063
+ }
78909
79064
  }
78910
79065
 
78911
79066
  /**
@@ -79532,7 +79687,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
79532
79687
  }
79533
79688
  };
79534
79689
 
79535
- var formkitVersion$1$1 = '202606291727';
79690
+ var formkitVersion$1$1 = '202606291930';
79536
79691
 
79537
79692
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
79538
79693
  // See LICENSE in the project root for license information.
@@ -80035,6 +80190,7 @@ class AuroInput extends BaseInput {
80035
80190
  <${this.buttonTag}
80036
80191
  @click="${this.handleClickShowPassword}"
80037
80192
  appearance="${this.onDark ? 'inverse' : this.appearance}"
80193
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
80038
80194
  class="notificationBtn passwordBtn"
80039
80195
  shape="circle"
80040
80196
  size="sm"
@@ -80108,25 +80264,29 @@ class AuroInput extends BaseInput {
80108
80264
  * @returns {html} - Returns HTML for the help text and error message.
80109
80265
  */
80110
80266
  renderHtmlHelpText() {
80267
+ // Single `<p>` with stable identity across validity transitions —
80268
+ // previously two distinct templates (valid vs invalid) caused Lit to
80269
+ // replace the node entirely on a flip, and VoiceOver wouldn't
80270
+ // re-announce because the live-region element it was watching had been
80271
+ // removed and a new one inserted. Keeping one node means the `role`,
80272
+ // `aria-live`, and text content all change in-place, which AT does
80273
+ // observe and announce.
80274
+ const isError = this.validity && this.validity !== 'valid';
80111
80275
  return u$d`
80112
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
80113
- ? u$d`
80114
- <${this.helpTextTag}
80115
- appearance="${this.onDark ? 'inverse' : this.appearance}">
80116
- <p id="${this.uniqueId}" part="helpText">
80117
- <slot name="helpText">${this.getHelpText()}</slot>
80118
- </p>
80119
- </${this.helpTextTag}>
80120
- `
80121
- : u$d`
80122
- <${this.helpTextTag} error
80123
- appearance="${this.onDark ? 'inverse' : this.appearance}">
80124
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
80125
- ${this.errorMessage}
80126
- </p>
80127
- </${this.helpTextTag}>
80128
- `
80129
- }
80276
+ <${this.helpTextTag}
80277
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
80278
+ ?error=${isError}>
80279
+ <p
80280
+ id="${this.uniqueId}"
80281
+ part="helpText"
80282
+ role="${o$4(isError ? 'alert' : undefined)}"
80283
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
80284
+ ${isError
80285
+ ? this.errorMessage
80286
+ : u$d`<slot name="helpText">${this.getHelpText()}</slot>`
80287
+ }
80288
+ </p>
80289
+ </${this.helpTextTag}>
80130
80290
  `;
80131
80291
  }
80132
80292
 
@@ -80258,7 +80418,7 @@ class AuroInput extends BaseInput {
80258
80418
 
80259
80419
  var colorCss$1$3 = i$4`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
80260
80420
 
80261
- var styleCss$2$2 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
80421
+ var styleCss$2$2 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
80262
80422
 
80263
80423
  var tokenCss$1 = i$4`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
80264
80424
 
@@ -80653,7 +80813,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
80653
80813
  }
80654
80814
  };
80655
80815
 
80656
- var formkitVersion$3 = '202606291727';
80816
+ var formkitVersion$3 = '202606291930';
80657
80817
 
80658
80818
  var styleCss$1$3 = i$4`.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}`;
80659
80819
 
@@ -85466,19 +85626,28 @@ const selectKeyboardStrategy = {
85466
85626
  },
85467
85627
 
85468
85628
  End(component, evt, ctx) {
85469
- if (!ctx.isExpanded) {
85470
- return;
85471
- }
85472
85629
  evt.preventDefault();
85473
85630
  evt.stopPropagation();
85474
85631
  // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
85475
85632
  const lastOption = getEnabledOptions(component.menu).pop();
85476
- if (lastOption) {
85477
- component.menu.updateActiveOption(lastOption);
85633
+ if (!lastOption) {
85634
+ return;
85635
+ }
85636
+ // Pre-stash before show() so the auroDropdown-toggled handler's
85637
+ // `!optionActive` guard short-circuits the firstActive/selected fallback —
85638
+ // otherwise show() synchronously fires the handler and writes
85639
+ // aria-activedescendant once before we overwrite it.
85640
+ component.menu.updateActiveOption(lastOption);
85641
+ if (!ctx.isExpanded) {
85642
+ component.dropdown.show();
85478
85643
  }
85479
85644
  },
85480
85645
 
85481
85646
  Enter(component, evt, ctx) {
85647
+ // Prevent the keypress from bubbling to parent containers (e.g., forms)
85648
+ // which could interpret Enter as a submit. Matches APG select-only combobox
85649
+ // and native <select> behavior: Enter opens the listbox when closed, selects
85650
+ // the active option when open — it does not submit a parent form.
85482
85651
  evt.preventDefault();
85483
85652
  evt.stopPropagation();
85484
85653
  if (!ctx.isExpanded) {
@@ -85489,14 +85658,16 @@ const selectKeyboardStrategy = {
85489
85658
  },
85490
85659
 
85491
85660
  Home(component, evt, ctx) {
85492
- if (!ctx.isExpanded) {
85493
- return;
85494
- }
85495
85661
  evt.preventDefault();
85496
85662
  evt.stopPropagation();
85497
85663
  const [firstOption] = getEnabledOptions(component.menu);
85498
- if (firstOption) {
85499
- component.menu.updateActiveOption(firstOption);
85664
+ if (!firstOption) {
85665
+ return;
85666
+ }
85667
+ // See End() for why this must run before show().
85668
+ component.menu.updateActiveOption(firstOption);
85669
+ if (!ctx.isExpanded) {
85670
+ component.dropdown.show();
85500
85671
  }
85501
85672
  },
85502
85673
 
@@ -89444,7 +89615,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
89444
89615
  }
89445
89616
  };
89446
89617
 
89447
- var formkitVersion$1 = '202606291727';
89618
+ var formkitVersion$1 = '202606291930';
89448
89619
 
89449
89620
  class AuroElement extends i$2 {
89450
89621
  static get properties() {
@@ -90716,6 +90887,7 @@ class AuroDropdown extends AuroElement {
90716
90887
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
90717
90888
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
90718
90889
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
90890
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
90719
90891
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
90720
90892
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
90721
90893
  @focusin="${this.handleFocusin}"
@@ -90842,7 +91014,7 @@ class AuroDropdown extends AuroElement {
90842
91014
 
90843
91015
  var colorCss$1 = i$4`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
90844
91016
 
90845
- var styleCss$2 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
91017
+ var styleCss$2 = i$4`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
90846
91018
 
90847
91019
  var tokenCss = i$4`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
90848
91020
 
@@ -91465,7 +91637,7 @@ class AuroHelpText extends i$2 {
91465
91637
  }
91466
91638
  }
91467
91639
 
91468
- var formkitVersion = '202606291727';
91640
+ var formkitVersion = '202606291930';
91469
91641
 
91470
91642
  var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
91471
91643
 
@@ -91797,14 +91969,6 @@ class AuroSelect extends AuroElement$1 {
91797
91969
  reflect: true
91798
91970
  },
91799
91971
 
91800
- /**
91801
- * @private
91802
- */
91803
- options: {
91804
- type: Array,
91805
- state: true
91806
- },
91807
-
91808
91972
  /**
91809
91973
  * Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
91810
91974
  * @type {HTMLElement|Array<HTMLElement>}
@@ -92092,16 +92256,68 @@ class AuroSelect extends AuroElement$1 {
92092
92256
  this.dropdown.dropdownWidth = this.customBibWidth;
92093
92257
  }
92094
92258
 
92095
- // Pass label text to the dropdown bib for accessible dialog naming
92096
- const labelElement = this.querySelector('span[slot="label"]');
92097
- if (labelElement) {
92098
- this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
92099
- }
92259
+ this._syncLabelText();
92100
92260
 
92101
92261
  // Exposes the CSS parts from the dropdown for styling
92102
92262
  this.dropdown.exposeCssParts();
92103
92263
  }
92104
92264
 
92265
+ /**
92266
+ * Reads the current label slot text and pushes it to the dropdown bib
92267
+ * (for dialog naming) and the menu (for listbox aria-label). Safe to call
92268
+ * before either child has been wired up — each branch self-guards.
92269
+ * @private
92270
+ */
92271
+ _syncLabelText() {
92272
+ const labelElement = this.querySelector('[slot="label"]');
92273
+ const text = labelElement ? labelElement.textContent.trim() : '';
92274
+ if (this.dropdown) {
92275
+ this.dropdown.bibDialogLabel = text || undefined;
92276
+ }
92277
+ if (this.menu) {
92278
+ if (text) {
92279
+ this.menu.setAttribute('aria-label', text);
92280
+ } else {
92281
+ this.menu.removeAttribute('aria-label');
92282
+ }
92283
+ }
92284
+ }
92285
+
92286
+ /**
92287
+ * Keeps the dialog/menu accessible names in sync when consumers mutate the
92288
+ * label slot at runtime (e.g., i18n locale swap). `slotchange` alone is
92289
+ * insufficient — it doesn't fire when textContent of an already-assigned
92290
+ * slotted node changes, which is the common case. We scope the observer to
92291
+ * the label node itself (not the whole host subtree) so option-content
92292
+ * mutations don't trigger label re-syncs, and re-target on `slotchange`
92293
+ * when consumers add or replace the label element.
92294
+ * @private
92295
+ */
92296
+ _observeLabelChanges() {
92297
+ if (this._labelObserver) return;
92298
+ this._labelObserver = new MutationObserver(() => this._syncLabelText());
92299
+
92300
+ const retarget = () => {
92301
+ this._labelObserver.disconnect();
92302
+ const labelElement = this.querySelector('[slot="label"]');
92303
+ if (labelElement) {
92304
+ this._labelObserver.observe(labelElement, {
92305
+ childList: true,
92306
+ subtree: true,
92307
+ characterData: true
92308
+ });
92309
+ }
92310
+ this._syncLabelText();
92311
+ };
92312
+
92313
+ retarget();
92314
+
92315
+ this._retargetLabelObserver = retarget;
92316
+ this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
92317
+ slot.addEventListener('slotchange', retarget);
92318
+ });
92319
+ }
92320
+
92105
92321
  /**
92106
92322
  * This will register this element with the browser.
92107
92323
  * @param {string} [name="auro-select"] - The name of element that you want to register to.
@@ -92252,11 +92468,7 @@ class AuroSelect extends AuroElement$1 {
92252
92468
  this.updateMenuShapeSize();
92253
92469
  this.setMenuValue(this.value);
92254
92470
 
92255
- // Set accessible name on the menu for screen readers based on the label slot content
92256
- const labelElement = this.querySelector('[slot="label"]');
92257
- if (labelElement) {
92258
- this.menu.setAttribute('aria-label', labelElement.textContent.trim());
92259
- }
92471
+ this._syncLabelText();
92260
92472
 
92261
92473
  if (this.multiSelect) {
92262
92474
  this.menu.multiSelect = this.multiSelect;
@@ -92268,8 +92480,21 @@ class AuroSelect extends AuroElement$1 {
92268
92480
  if (typeof this.menu.initItems === 'function') {
92269
92481
  this.menu.initItems();
92270
92482
  }
92271
- this.options = this.menu.options;
92272
92483
  this.updateOptionPositions();
92484
+ // renderNativeSelect reads this.menu.options, which the parent doesn't
92485
+ // observe — request an update so the hidden native <option> list reflects
92486
+ // the menu's options after initItems populates them.
92487
+ this.requestUpdate();
92488
+
92489
+ // Keep aria-setsize/aria-posinset (and the native <option> list) in sync
92490
+ // when the menu re-initializes its items — e.g., slotchange, async/lazy
92491
+ // loads, value-triggered re-init. Without this, stale set-size is
92492
+ // announced and the native select goes stale after dynamic mutations.
92493
+ this.menu.addEventListener('auroMenu-optionsChange', () => {
92494
+ this.updateOptionPositions();
92495
+ this.requestUpdate();
92496
+ });
92497
+
92273
92498
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
92274
92499
 
92275
92500
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
@@ -92288,11 +92513,26 @@ class AuroSelect extends AuroElement$1 {
92288
92513
  this.dropdown.setActiveDescendant(this.optionActive);
92289
92514
  }
92290
92515
 
92291
- // Announce the active option for screen readers
92292
- if (this.optionActive) {
92516
+ // Live-region announce only for [not selected] options. For activations
92517
+ // on an already-selected option — auto-activation on bib open, arrow
92518
+ // navigation back to the selection, or click in multiSelect — rely on
92519
+ // aria-activedescendant + aria-selected="true" to convey state per the
92520
+ // WAI-ARIA listbox pattern. This is intentional, not limited to the
92521
+ // initial activation on open: it also prevents a duplicate "X, selected"
92522
+ // when Enter on the active+selected option re-fires
92523
+ // auroMenu-selectedOption (see 03b289e39).
92524
+ if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
92293
92525
  const optionText = this.optionActive.textContent.trim();
92294
- const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
92295
- announceToScreenReader(this._getAnnouncementRoot(), `${optionText}${selectedState}`);
92526
+ const message = `${optionText}, not selected`;
92527
+ if (this.dropdown.isPopoverVisible) {
92528
+ announceToScreenReader(this._getAnnouncementRoot(), message);
92529
+ } else {
92530
+ // Typeahead-on-closed fires this event before `show()` flips
92531
+ // isPopoverVisible. Defer so the announcement targets the bib's
92532
+ // live region once the fullscreen <dialog> opens — otherwise it
92533
+ // lands in the host root, which is inert under the active modal.
92534
+ queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
92535
+ }
92296
92536
  }
92297
92537
 
92298
92538
  if (this.dropdown.isPopoverVisible) {
@@ -92301,6 +92541,7 @@ class AuroSelect extends AuroElement$1 {
92301
92541
  });
92302
92542
 
92303
92543
  this.menu.addEventListener('auroMenu-selectedOption', () => {
92544
+ const previousSelected = this.optionSelected;
92304
92545
 
92305
92546
  // Update the displayed value
92306
92547
  this.updateDisplayedValue();
@@ -92320,13 +92561,32 @@ class AuroSelect extends AuroElement$1 {
92320
92561
  this.dropdown.trigger.focus();
92321
92562
  }
92322
92563
 
92323
- // Announce the selection after the dropdown closes so it isn't
92324
- // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
92325
- const selectedValue = this.menu.currentLabel;
92326
- const announcementDelay = 300;
92327
- setTimeout(() => {
92328
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
92329
- }, announcementDelay);
92564
+ // Describe the actual change. In multiSelect, currentLabel is the
92565
+ // concatenated remaining list — announcing "{list}, selected" after a
92566
+ // deselect would falsely claim every remaining label was just added.
92567
+ // Diff previous vs next to recover the toggled option.
92568
+ let announcement = '';
92569
+ if (this.multiSelect) {
92570
+ const prev = Array.isArray(previousSelected) ? previousSelected : [];
92571
+ const removed = prev.find((opt) => !nextSelected.includes(opt));
92572
+ const added = nextSelected.find((opt) => !prev.includes(opt));
92573
+ if (removed) {
92574
+ announcement = `${removed.textContent.trim()}, not selected`;
92575
+ } else if (added) {
92576
+ announcement = `${added.textContent.trim()}, selected`;
92577
+ }
92578
+ } else {
92579
+ announcement = `${this.menu.currentLabel}, selected`;
92580
+ }
92581
+
92582
+ // Delay so the utterance isn't overridden by VoiceOver's "collapsed"
92583
+ // announcement from aria-expanded when the dropdown closes.
92584
+ if (announcement) {
92585
+ const announcementDelay = 300;
92586
+ setTimeout(() => {
92587
+ announceToScreenReader(this._getAnnouncementRoot(), announcement);
92588
+ }, announcementDelay);
92589
+ }
92330
92590
  });
92331
92591
  }
92332
92592
 
@@ -92424,24 +92684,32 @@ class AuroSelect extends AuroElement$1 {
92424
92684
 
92425
92685
  this.typeaheadBuffer += key;
92426
92686
 
92427
- const isRepeatedChar = this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
92687
+ // Prefer the literal buffer as a prefix per WAI-ARIA APG ("focus moves to the
92688
+ // next item with a name that starts with the string of characters typed").
92689
+ // Only fall back to single-char cycling when the repeated buffer has no
92690
+ // longer prefix match — e.g. "aa" cycles through ["Apple", "Apricot"] only
92691
+ // because no option starts with "aa".
92692
+ let match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
92428
92693
 
92429
- let match = null;
92694
+ const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
92430
92695
  if (isRepeatedChar) {
92431
92696
  const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
92432
92697
  if (matches.length) {
92433
92698
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
92434
92699
  match = matches[cycleIndex];
92435
92700
  }
92436
- } else {
92437
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
92438
92701
  }
92439
92702
 
92703
+ // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
92440
92704
  if (match) {
92705
+ // Pre-stash the match so the auroDropdown-toggled handler's `!optionActive`
92706
+ // guard short-circuits and skips the firstActive/selected fallback —
92707
+ // otherwise show() synchronously fires the handler, which writes
92708
+ // aria-activedescendant once before we overwrite it.
92709
+ this.menu.updateActiveOption(match);
92441
92710
  if (!this.dropdown.isPopoverVisible) {
92442
92711
  this.dropdown.show();
92443
92712
  }
92444
- this.menu.updateActiveOption(match);
92445
92713
  }
92446
92714
  }
92447
92715
 
@@ -92558,6 +92826,28 @@ class AuroSelect extends AuroElement$1 {
92558
92826
  disconnectedCallback() {
92559
92827
  super.disconnectedCallback();
92560
92828
  this._clearTypeaheadBuffer();
92829
+ if (this._labelObserver) {
92830
+ this._labelObserver.disconnect();
92831
+ this._labelObserver = null;
92832
+ }
92833
+ if (this._retargetLabelObserver && this.shadowRoot) {
92834
+ this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
92835
+ slot.removeEventListener('slotchange', this._retargetLabelObserver);
92836
+ });
92837
+ this._retargetLabelObserver = null;
92838
+ }
92839
+ }
92840
+
92841
+ connectedCallback() {
92842
+ super.connectedCallback();
92843
+ // Regression guard: firstUpdated() fires once per instance, so the label
92844
+ // observer setup it triggers does NOT re-run on reconnect. After a
92845
+ // disconnect+reconnect (reparent, SPA route swap), runtime label mutations
92846
+ // would silently stop syncing menu aria-label / dropdown.bibDialogLabel
92847
+ // unless we re-wire the observer here.
92848
+ if (this.hasUpdated) {
92849
+ this._observeLabelChanges();
92850
+ }
92561
92851
  }
92562
92852
 
92563
92853
  // lifecycle runs only after the element's DOM has been updated the first time
@@ -92568,6 +92858,7 @@ class AuroSelect extends AuroElement$1 {
92568
92858
  this.configureDropdown();
92569
92859
  this.configureMenu();
92570
92860
  this.configureSelect();
92861
+ this._observeLabelChanges();
92571
92862
  }
92572
92863
 
92573
92864
  setMenuValue(value) {
@@ -92700,25 +92991,18 @@ class AuroSelect extends AuroElement$1 {
92700
92991
  * @private
92701
92992
  */
92702
92993
  _handleNativeSelectChange(event) {
92994
+ // Hidden native <select> has no `multiple` attribute, so any change it fires
92995
+ // is a single raw value — applying it in multiSelect mode would collapse the
92996
+ // JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
92997
+ // form control even with aria-hidden/tabindex=-1.
92998
+ if (this.multiSelect) return;
92999
+
92703
93000
  const selectedOption = event.target.options[event.target.selectedIndex];
92704
93001
  if (!selectedOption) return;
92705
93002
  const selectedValue = selectedOption.value;
92706
93003
 
92707
- if (this.multiSelect) {
92708
- const currentArray = this.menu.value || [];
92709
-
92710
- if (!currentArray.includes(selectedValue)) {
92711
- this.value = JSON.stringify([
92712
- ...currentArray,
92713
- selectedValue
92714
- ]);
92715
- }
92716
- } else {
92717
- const currentValue = this.value;
92718
-
92719
- if (currentValue !== selectedValue) {
92720
- this.value = selectedValue;
92721
- }
93004
+ if (this.value !== selectedValue) {
93005
+ this.value = selectedValue;
92722
93006
  }
92723
93007
  }
92724
93008