@aurodesignsystem-dev/auro-formkit 0.0.0-pr1514.0 → 0.0.0-pr1514.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) 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 +263 -140
  18. package/components/datepicker/demo/index.min.js +263 -140
  19. package/components/datepicker/dist/auro-calendar.d.ts +30 -5
  20. package/components/datepicker/dist/index.js +263 -140
  21. package/components/datepicker/dist/registered.js +263 -140
  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 +701 -399
  28. package/components/form/demo/getting-started.min.js +701 -399
  29. package/components/form/demo/index.min.js +701 -399
  30. package/components/form/demo/registerDemoDeps.min.js +701 -399
  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.md +86 -0
  45. package/components/select/demo/customize.min.js +187 -63
  46. package/components/select/demo/getting-started.min.js +189 -110
  47. package/components/select/demo/index.min.js +187 -63
  48. package/components/select/demo/keyboard-behavior.md +18 -4
  49. package/components/select/dist/auro-select.d.ts +20 -8
  50. package/components/select/dist/index.js +187 -63
  51. package/components/select/dist/registered.js +187 -63
  52. package/custom-elements.json +2170 -1954
  53. 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 = '202606291631';
12352
+ var formkitVersion$8 = '202606292034';
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
 
@@ -23825,9 +23855,9 @@ var snowflakeStyle = i$4`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
23825
23855
 
23826
23856
  var snowflakeColors = i$4`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
23827
23857
 
23828
- 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}`;
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%}: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-visible{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px;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 = '202606291631';
26606
+ var formkitVersion$2$1 = '202606292034';
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}}
@@ -26678,6 +26708,15 @@ class AuroCalendar extends RangeDatepicker {
26678
26708
  */
26679
26709
  this.activeCellDate = null;
26680
26710
 
26711
+ /**
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.
26716
+ * @private
26717
+ */
26718
+ this._activeCell = null;
26719
+
26681
26720
  /**
26682
26721
  * Whether the #calendarGrid wrapper currently has focus.
26683
26722
  * Used to determine whether the visualFocus ring should be shown.
@@ -27189,6 +27228,9 @@ class AuroCalendar extends RangeDatepicker {
27189
27228
  });
27190
27229
 
27191
27230
  this.activeCellDate = date;
27231
+ // Cache so scrollToActiveCell can scroll without re-querying all cells
27232
+ // on every arrow keypress.
27233
+ this._activeCell = newActiveCell;
27192
27234
 
27193
27235
  // Apply activeCell ring only when the grid currently has focus.
27194
27236
  if (newActiveCell && this._gridHasFocus) {
@@ -27646,6 +27688,9 @@ class AuroCalendar extends RangeDatepicker {
27646
27688
  this.handleCellFocused({ detail: { date: fallback.day.date } });
27647
27689
  }
27648
27690
  }
27691
+ // Scroll AFTER the cross-month setActiveCell so the freshly
27692
+ // activated cell is what gets scrolled into view.
27693
+ this.scrollToActiveCell();
27649
27694
  // Re-focus grid wrapper after month change re-render
27650
27695
  this.focusActiveCell();
27651
27696
  });
@@ -27686,6 +27731,9 @@ class AuroCalendar extends RangeDatepicker {
27686
27731
  this.handleCellFocused({ detail: { date: nearest.day.date } });
27687
27732
  }
27688
27733
  }
27734
+ // Scroll AFTER the cross-month setActiveCell so the freshly
27735
+ // activated cell is what gets scrolled into view.
27736
+ this.scrollToActiveCell();
27689
27737
  this.focusActiveCell();
27690
27738
  });
27691
27739
  }
@@ -27720,6 +27768,8 @@ class AuroCalendar extends RangeDatepicker {
27720
27768
  const targetCell = allCells[targetIndex];
27721
27769
  this.setActiveCell(targetCell.day.date);
27722
27770
  this.scrollToActiveCell();
27771
+ // Match the cross-month branches: keep DOM focus on the grid wrapper
27772
+ // so subsequent arrow keys continue to land on this handler.
27723
27773
  this.focusActiveCell();
27724
27774
  } else if (direction === 'next' && this.showNextMonthBtn) {
27725
27775
  // Navigate to next month and focus the computed next date.
@@ -27741,7 +27791,6 @@ class AuroCalendar extends RangeDatepicker {
27741
27791
  const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
27742
27792
  if (target) {
27743
27793
  this.setActiveCell(target.day.date);
27744
- this.focusActiveCell();
27745
27794
  } else {
27746
27795
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
27747
27796
  // `cells[length - 1]` would land on the end of the new month,
@@ -27749,9 +27798,10 @@ class AuroCalendar extends RangeDatepicker {
27749
27798
  const fallback = this.pickNearestCell(cells, nextTs, 'next');
27750
27799
  if (fallback) {
27751
27800
  this.setActiveCell(fallback.day.date);
27752
- this.focusActiveCell();
27753
27801
  }
27754
27802
  }
27803
+ this.scrollToActiveCell();
27804
+ this.focusActiveCell();
27755
27805
  });
27756
27806
  } else if (direction === 'prev' && this.showPrevMonthBtn) {
27757
27807
  // Navigate to previous month and focus the computed previous date.
@@ -27770,7 +27820,6 @@ class AuroCalendar extends RangeDatepicker {
27770
27820
  const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
27771
27821
  if (target) {
27772
27822
  this.setActiveCell(target.day.date);
27773
- this.focusActiveCell();
27774
27823
  } else {
27775
27824
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
27776
27825
  // `cells[0]` would land on the start of the previous month, far
@@ -27778,9 +27827,10 @@ class AuroCalendar extends RangeDatepicker {
27778
27827
  const fallback = this.pickNearestCell(cells, prevTs, 'prev');
27779
27828
  if (fallback) {
27780
27829
  this.setActiveCell(fallback.day.date);
27781
- this.focusActiveCell();
27782
27830
  }
27783
27831
  }
27832
+ this.scrollToActiveCell();
27833
+ this.focusActiveCell();
27784
27834
  });
27785
27835
  }
27786
27836
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
@@ -27813,7 +27863,6 @@ class AuroCalendar extends RangeDatepicker {
27813
27863
  const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
27814
27864
  if (target) {
27815
27865
  this.setActiveCell(target.day.date);
27816
- this.focusActiveCell();
27817
27866
  } else {
27818
27867
  // Same nearest-by-date fallback handleGridKeyDown uses — the
27819
27868
  // old direction-based `cells[0]`/`cells[length-1]` clamp
@@ -27821,9 +27870,10 @@ class AuroCalendar extends RangeDatepicker {
27821
27870
  const nearest = this.pickNearestCell(cells, targetDate, navDirection);
27822
27871
  if (nearest) {
27823
27872
  this.setActiveCell(nearest.day.date);
27824
- this.focusActiveCell();
27825
27873
  }
27826
27874
  }
27875
+ this.scrollToActiveCell();
27876
+ this.focusActiveCell();
27827
27877
  });
27828
27878
  }
27829
27879
  }
@@ -28024,11 +28074,28 @@ class AuroCalendar extends RangeDatepicker {
28024
28074
  }
28025
28075
 
28026
28076
  /**
28027
- * Scrolls the calendar to ensure the active cell is visible.
28028
- * Targets the cell itself (not its month) so that same-month vertical
28029
- * navigation in mobile fullscreen where a single month can exceed the
28030
- * viewport height scrolls to the target row. `block: 'nearest'` is a
28031
- * no-op when the cell is already in view, preserving desktop behavior.
28077
+ * Scrolls the calendar so the active cell is visible.
28078
+ *
28079
+ * Walks the flat tree (rendered, slot-aware) outward from the active
28080
+ * cell's button and calls `scrollBy` on every vertically-scrollable
28081
+ * ancestor by whatever delta still separates the cell from that
28082
+ * ancestor's viewport. Native `scrollIntoView` is not used because the
28083
+ * cell sits inside multiple nested scroll containers (the dropdown bib's
28084
+ * `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
28085
+ * scrolls one of them on its own, leaving the cell short of the
28086
+ * viewport in mobile fullscreen.
28087
+ *
28088
+ * Uses `behavior: 'auto'` (the spec's universally-supported non-animated
28089
+ * value) so each `scrollBy` resolves synchronously and the next
28090
+ * iteration's `getBoundingClientRect` reads post-scroll positions
28091
+ * accurately. This also satisfies `prefers-reduced-motion` users — the
28092
+ * scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
28093
+ * is effectively instant.
28094
+ *
28095
+ * The active cell is looked up from the cache populated by
28096
+ * `setActiveCell`. On a cache miss (stale or absent) the cache is
28097
+ * refreshed from a single full scan so subsequent calls stay on the
28098
+ * fast path.
28032
28099
  * @private
28033
28100
  * @returns {void}
28034
28101
  */
@@ -28037,22 +28104,70 @@ class AuroCalendar extends RangeDatepicker {
28037
28104
  return;
28038
28105
  }
28039
28106
 
28040
-
28041
- /* eslint-disable function-paren-newline */
28042
- const activeCell = this.getAllFocusableCells().find(
28043
- (cell) => cell.day && cell.day.date === this.activeCellDate
28044
- );
28045
- /* eslint-enable function-paren-newline */
28046
-
28107
+ // Prefer the cell cached by setActiveCell so arrow-key navigation does
28108
+ // not rebuild the full cell list on every keypress. Fall back to a
28109
+ // lookup when the cache is stale (e.g. detached after month re-render)
28110
+ // or absent (scrollToActiveCell called without a prior setActiveCell);
28111
+ // refresh the cache on the fallback path so a subsequent call reuses it.
28112
+ const activeDate = this.activeCellDate;
28113
+ const cached = this._activeCell;
28114
+ const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
28115
+ let activeCell = null;
28116
+ if (cacheFresh) {
28117
+ activeCell = cached;
28118
+ } else {
28119
+ activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
28120
+ this._activeCell = activeCell || null;
28121
+ }
28047
28122
  if (!activeCell) {
28048
28123
  return;
28049
28124
  }
28050
28125
 
28051
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
28052
- activeCell.scrollIntoView({
28053
- block: 'nearest',
28054
- behavior: prefersReducedMotion ? 'instant' : 'smooth'
28055
- });
28126
+ // Scroll the button inside the cell — it has concrete dimensions,
28127
+ // which avoids quirks when the cell host has display: inline / contents
28128
+ // / flex-without-explicit-size.
28129
+ const target = activeCell._cachedButton ||
28130
+ activeCell.shadowRoot?.querySelector('button.day') ||
28131
+ activeCell;
28132
+
28133
+ // parentNode follows the authored DOM tree and steps over shadow roots
28134
+ // via slot projection. A slotted element's visual parent is its
28135
+ // assignedSlot's parent (inside the host's shadow tree), not the host
28136
+ // itself. Without this hop, the walk skips right past #bodyContainer
28137
+ // and <dialog> and finds no scrollable ancestor at all.
28138
+ const flatParent = (current) => {
28139
+ if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
28140
+ return current.host || null;
28141
+ }
28142
+ if (current.assignedSlot) {
28143
+ return current.assignedSlot.parentNode;
28144
+ }
28145
+ return current.parentNode;
28146
+ };
28147
+
28148
+ let node = flatParent(target);
28149
+ while (node && node !== document && node !== window) {
28150
+ if (node.nodeType === Node.ELEMENT_NODE) {
28151
+ const { overflowY } = window.getComputedStyle(node);
28152
+ if (overflowY === 'auto' || overflowY === 'scroll') {
28153
+ const targetRect = target.getBoundingClientRect();
28154
+ const scrollerRect = node.getBoundingClientRect();
28155
+ let delta = 0;
28156
+ if (targetRect.top < scrollerRect.top) {
28157
+ delta = targetRect.top - scrollerRect.top;
28158
+ } else if (targetRect.bottom > scrollerRect.bottom) {
28159
+ delta = targetRect.bottom - scrollerRect.bottom;
28160
+ }
28161
+ if (delta !== 0) {
28162
+ node.scrollBy({
28163
+ top: delta,
28164
+ behavior: 'auto'
28165
+ });
28166
+ }
28167
+ }
28168
+ }
28169
+ node = flatParent(node);
28170
+ }
28056
28171
  }
28057
28172
 
28058
28173
  /**
@@ -28342,7 +28457,7 @@ class AuroCalendar extends RangeDatepicker {
28342
28457
  </div>
28343
28458
  </div>
28344
28459
 
28345
- <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
28460
+ <div class="calendarWrapper">
28346
28461
  <div class="calendarNavButtons">
28347
28462
  ${this.showPrevMonthBtn ? u$d`
28348
28463
  <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
@@ -32240,7 +32355,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32240
32355
  }
32241
32356
  };
32242
32357
 
32243
- var formkitVersion$1$3 = '202606291631';
32358
+ var formkitVersion$1$3 = '202606292034';
32244
32359
 
32245
32360
  let AuroElement$2$2 = class AuroElement extends i$2 {
32246
32361
  static get properties() {
@@ -33512,6 +33627,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
33512
33627
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
33513
33628
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
33514
33629
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
33630
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
33515
33631
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
33516
33632
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
33517
33633
  @focusin="${this.handleFocusin}"
@@ -43958,6 +44074,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
43958
44074
  * @returns {string | undefined}
43959
44075
  */
43960
44076
  toFormattedValue(valueObject, format) {
44077
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
44078
+ // `format` argument has to fail gracefully rather than throw on
44079
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
44080
+ // as "no format → no display value".
44081
+ if (!format) {
44082
+ return undefined;
44083
+ }
43961
44084
  const normalizedFormat = format.toLowerCase();
43962
44085
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
43963
44086
 
@@ -44108,79 +44231,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44108
44231
  constructor() {
44109
44232
  super();
44110
44233
 
44111
- this.appearance = "default";
44112
- this.disabled = false;
44113
- this.layout = 'classic';
44114
- this.locale = 'en-US';
44115
- this.max = undefined;
44116
- this._maxObject = undefined;
44117
- this.maxLength = undefined;
44118
- this.min = undefined;
44119
- this._minObject = undefined;
44120
- this.minLength = undefined;
44121
- this.required = false;
44122
- this.onDark = false;
44123
- this.setCustomValidityForType = undefined;
44124
- this.size = 'lg';
44125
- this.shape = 'classic';
44126
- this.value = undefined;
44127
- this._valueObject = undefined;
44128
-
44129
- this._initializePrivateDefaults();
44130
- }
44131
-
44132
- /**
44133
- * Internal Defaults.
44134
- * @private
44135
- * @returns {void}
44136
- */
44137
- _initializePrivateDefaults() {
44234
+ // Single-source initialization. Alphabetized so duplicate or stale
44235
+ // defaults are immediately obvious on a diff. Every field is assigned
44236
+ // exactly once here (previously the constructor + the old
44237
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
44238
+ // fields and double-allocated `util` and `validation`, discarding the
44239
+ // first instance). `validation` is now allocated exactly once; `util`
44240
+ // is seeded here with an en-US default and then rebuilt in
44241
+ // `connectedCallback` once the consumer-resolved locale is available,
44242
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
44243
+ // during its own update cycle sees a populated util instance.
44138
44244
  this.activeLabel = false;
44139
- this.appearance = "default";
44140
- this.icon = false;
44141
- this.disabled = false;
44142
- this.dvInputOnly = false;
44143
- this.hideLabelVisually = false;
44144
- this.max = undefined;
44145
- this.maxLength = undefined;
44146
- this.min = undefined;
44147
- this.minLength = undefined;
44148
- this.noValidate = false;
44149
- this.onDark = false;
44150
- this.required = false;
44151
- this.setCustomValidityForType = undefined;
44152
-
44153
- // Used for storing raw values returned from input mask.
44154
- this._rawMaskValue = undefined;
44155
-
44156
- /**
44157
- * @private
44158
- */
44159
- this.layout = 'classic';
44160
-
44161
- /**
44162
- * @private
44163
- */
44164
- this.shape = 'classic';
44165
-
44166
- /**
44167
- * @private
44168
- */
44169
- this.size = 'lg';
44170
-
44171
- this.touched = false;
44172
- this.util = new AuroInputUtilities$2({
44173
- locale: "en-US",
44174
- format: this.format
44175
- });
44176
- this.validation = new AuroFormValidation$6();
44177
- this.inputIconName = undefined;
44178
- this.showPassword = false;
44179
- this.validationCCLength = undefined;
44180
- this.hasValue = false;
44181
- this.label = 'Input label is undefined';
44182
-
44183
-
44245
+ /** @private */
44184
44246
  this.allowedInputTypes = [
44185
44247
  "text",
44186
44248
  "number",
@@ -44189,7 +44251,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44189
44251
  "credit-card",
44190
44252
  "tel"
44191
44253
  ];
44192
- this.icon = false;
44254
+ this.appearance = "default";
44255
+ /** @private */
44193
44256
  this.dateFormatMap = {
44194
44257
  'mm/dd/yyyy': 'dateMMDDYYYY',
44195
44258
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -44206,27 +44269,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44206
44269
  'dd/mm': 'dateDDMM',
44207
44270
  'mm/dd': 'dateMMDD'
44208
44271
  };
44272
+ this.disabled = false;
44273
+ /** @private */
44209
44274
  this.domHandler = new DomHandler$2();
44210
44275
  this.dvInputOnly = false;
44211
44276
  this.hasValue = false;
44277
+ this.hideLabelVisually = false;
44278
+ this.icon = false;
44279
+ /** @private */
44212
44280
  this.inputIconName = undefined;
44281
+ /** @private */
44213
44282
  this.label = 'Input label is undefined';
44283
+ this.layout = 'classic';
44284
+ this.locale = 'en-US';
44285
+ this.max = undefined;
44286
+ this._maxObject = undefined;
44287
+ this.maxLength = undefined;
44288
+ this.min = undefined;
44289
+ this._minObject = undefined;
44290
+ this.minLength = undefined;
44214
44291
  this.noValidate = false;
44215
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
44292
+ this.onDark = false;
44293
+ // Raw values returned from the input mask before model normalization.
44294
+ this._rawMaskValue = undefined;
44295
+ this.required = false;
44296
+ this.setCustomValidityForType = undefined;
44297
+ // Credit Card is intentionally excluded — its mask manages the cursor
44298
+ // itself, and listing it here caused cursor placement issues in Safari.
44299
+ /** @private */
44216
44300
  this.setSelectionInputTypes = [
44217
44301
  "text",
44218
44302
  "password",
44219
44303
  "email"
44220
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
44304
+ ];
44305
+ this.shape = 'classic';
44306
+ /** @private */
44221
44307
  this.showPassword = false;
44308
+ this.size = 'lg';
44222
44309
  this.touched = false;
44310
+ /** @private */
44223
44311
  this.uniqueId = new UniqueId$1().create();
44312
+ /** @private */
44224
44313
  this.util = new AuroInputUtilities$2({
44225
44314
  locale: this.locale,
44226
44315
  format: this.format
44227
44316
  });
44317
+ /** @private */
44228
44318
  this.validation = new AuroFormValidation$6();
44319
+ /** @private */
44229
44320
  this.validationCCLength = undefined;
44321
+ this.value = undefined;
44322
+ this._valueObject = undefined;
44230
44323
  }
44231
44324
 
44232
44325
  // function to define props used within the scope of this component
@@ -44774,6 +44867,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
44774
44867
 
44775
44868
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
44776
44869
 
44870
+ // Normalize the format token to lowercase so case-mixed values supplied
44871
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
44872
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
44873
+ // format silently misses the map and leaves `setCustomValidityForType`
44874
+ // unset.
44875
+ if (this.format) {
44876
+ this.format = this.format.toLowerCase();
44877
+ }
44878
+
44777
44879
  // use validity message override if declared when initializing the component
44778
44880
  if (this.hasAttribute('setCustomValidity')) {
44779
44881
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -45207,6 +45309,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45207
45309
  this.touched = true;
45208
45310
  this.validation.validate(this);
45209
45311
  }
45312
+
45313
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
45314
+ // update that can re-render the input and reset the native cursor; we
45315
+ // capture the caret position before that update commits and restore it
45316
+ // via `setSelectionRange` once the update has flushed. Gated on
45317
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
45318
+ // formatter manages the cursor itself) doesn't get a competing write.
45319
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
45320
+ // on input types that don't support text selection (number, email in
45321
+ // some browsers) throws InvalidStateError, which would crash all input
45322
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
45323
+ // the gated types currently support it, since the list is a public
45324
+ // property a consumer could mutate.
45325
+ if (this.setSelectionInputTypes.includes(this.type)) {
45326
+ let selectionStart;
45327
+ try {
45328
+ selectionStart = this.inputElement.selectionStart;
45329
+ } catch (error) { // eslint-disable-line no-unused-vars
45330
+ return;
45331
+ }
45332
+ if (typeof selectionStart !== 'number') {
45333
+ return;
45334
+ }
45335
+ this.updateComplete.then(() => {
45336
+ try {
45337
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
45338
+ } catch (error) { // eslint-disable-line no-unused-vars
45339
+ // Some input types (number/email in certain UAs) throw on
45340
+ // setSelectionRange; swallow and let the native cursor stand.
45341
+ }
45342
+ });
45343
+ }
45210
45344
  }
45211
45345
 
45212
45346
  /**
@@ -45833,7 +45967,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
45833
45967
  }
45834
45968
  };
45835
45969
 
45836
- var formkitVersion$7 = '202606291631';
45970
+ var formkitVersion$7 = '202606292034';
45837
45971
 
45838
45972
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
45839
45973
  // See LICENSE in the project root for license information.
@@ -46336,6 +46470,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46336
46470
  <${this.buttonTag}
46337
46471
  @click="${this.handleClickShowPassword}"
46338
46472
  appearance="${this.onDark ? 'inverse' : this.appearance}"
46473
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
46339
46474
  class="notificationBtn passwordBtn"
46340
46475
  shape="circle"
46341
46476
  size="sm"
@@ -46409,25 +46544,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46409
46544
  * @returns {html} - Returns HTML for the help text and error message.
46410
46545
  */
46411
46546
  renderHtmlHelpText() {
46547
+ // Single `<p>` with stable identity across validity transitions —
46548
+ // previously two distinct templates (valid vs invalid) caused Lit to
46549
+ // replace the node entirely on a flip, and VoiceOver wouldn't
46550
+ // re-announce because the live-region element it was watching had been
46551
+ // removed and a new one inserted. Keeping one node means the `role`,
46552
+ // `aria-live`, and text content all change in-place, which AT does
46553
+ // observe and announce.
46554
+ const isError = this.validity && this.validity !== 'valid';
46412
46555
  return u$d`
46413
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
46414
- ? u$d`
46415
- <${this.helpTextTag}
46416
- appearance="${this.onDark ? 'inverse' : this.appearance}">
46417
- <p id="${this.uniqueId}" part="helpText">
46418
- <slot name="helpText">${this.getHelpText()}</slot>
46419
- </p>
46420
- </${this.helpTextTag}>
46421
- `
46422
- : u$d`
46423
- <${this.helpTextTag} error
46424
- appearance="${this.onDark ? 'inverse' : this.appearance}">
46425
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
46426
- ${this.errorMessage}
46427
- </p>
46428
- </${this.helpTextTag}>
46429
- `
46430
- }
46556
+ <${this.helpTextTag}
46557
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
46558
+ ?error=${isError}>
46559
+ <p
46560
+ id="${this.uniqueId}"
46561
+ part="helpText"
46562
+ role="${o$4(isError ? 'alert' : undefined)}"
46563
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
46564
+ ${isError
46565
+ ? this.errorMessage
46566
+ : u$d`<slot name="helpText">${this.getHelpText()}</slot>`
46567
+ }
46568
+ </p>
46569
+ </${this.helpTextTag}>
46431
46570
  `;
46432
46571
  }
46433
46572
 
@@ -46574,6 +46713,15 @@ function formatISODate(isoStr, format) {
46574
46713
  try {
46575
46714
  const date = dateFormatter$2.stringToDateInstance(isoStr);
46576
46715
 
46716
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
46717
+ // and `null` for non-string input — it does NOT throw. Without this
46718
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
46719
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
46720
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
46721
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
46722
+ return undefined;
46723
+ }
46724
+
46577
46725
  const year = String(date.getFullYear()).padStart(4, '0');
46578
46726
  const month = String(date.getMonth() + 1).padStart(2, '0');
46579
46727
  const day = String(date.getDate()).padStart(2, '0');
@@ -46584,7 +46732,10 @@ function formatISODate(isoStr, format) {
46584
46732
  replace(/mm/iu, month).
46585
46733
  replace(/dd/iu, day);
46586
46734
  } catch (err) {
46587
- // If the input string is not a valid date, return undefined
46735
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
46736
+ // (inside `stringToDateInstance`) could throw on pathological input
46737
+ // future-library-versions might introduce. Treat any thrown error as
46738
+ // "not a valid date" and return undefined.
46588
46739
  return undefined;
46589
46740
  }
46590
46741
  }
@@ -48293,11 +48444,14 @@ class AuroDatePicker extends AuroElement$5 {
48293
48444
  this.calendar.announceSelection(announcement);
48294
48445
  }, 500);
48295
48446
 
48296
- // On mobile fullscreen, scroll the month list so the active cell's
48297
- // month is visible. Without this, the list stays scrolled to the
48298
- // calendarStartDate month which may be far from the active cell.
48299
- if (this.dropdown.isBibFullscreen) {
48447
+ // On mobile fullscreen or when an explicit focusDate change has
48448
+ // requested a forced scroll on the next render scroll the active
48449
+ // cell into view. Doing this here (after activeCellDate has been
48450
+ // resolved by the rAF loop above) prevents a no-op scroll that
48451
+ // would happen if we tried to scroll before the cell was set.
48452
+ if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
48300
48453
  this.calendar.scrollToActiveCell();
48454
+ this.forceScrollOnNextMobileCalendarRender = false;
48301
48455
  }
48302
48456
  } else if (attempts < MAX_ATTEMPTS) {
48303
48457
  requestAnimationFrame(tryFocus);
@@ -48421,18 +48575,10 @@ class AuroDatePicker extends AuroElement$5 {
48421
48575
  }
48422
48576
  }
48423
48577
 
48424
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
48425
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
48426
-
48427
- // Since the calendar is not rendered until the dropdown is opened,
48428
- // and the auroDropdown-toggled event fires before the popover is actually open,
48429
- // we need to wait until the next frame to ensure the calendar is fully rendered
48430
- // and the area we're trying to scroll to is present in the DOM.
48431
- setTimeout(() => {
48432
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
48433
- this.forceScrollOnNextMobileCalendarRender = false;
48434
- }, 0);
48435
- }
48578
+ // Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
48579
+ // happens inside focusActiveCellWhenReady() once activeCellDate has
48580
+ // been resolved by its rAF wait — not here in a setTimeout(0), which
48581
+ // fired before the active date was set and silently no-op'd.
48436
48582
  }, { signal });
48437
48583
 
48438
48584
  // Handle responsive strategy changes while the dropdown is open
@@ -50688,7 +50834,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
50688
50834
  }
50689
50835
  };
50690
50836
 
50691
- var formkitVersion$1$2 = '202606291631';
50837
+ var formkitVersion$1$2 = '202606292034';
50692
50838
 
50693
50839
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
50694
50840
  // See LICENSE in the project root for license information.
@@ -55016,7 +55162,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55016
55162
  }
55017
55163
  };
55018
55164
 
55019
- var formkitVersion$6 = '202606291631';
55165
+ var formkitVersion$6 = '202606292034';
55020
55166
 
55021
55167
  let AuroElement$1$2 = class AuroElement extends i$2 {
55022
55168
  static get properties() {
@@ -56288,6 +56434,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56288
56434
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
56289
56435
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
56290
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)}"
56291
56438
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
56292
56439
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
56293
56440
  @focusin="${this.handleFocusin}"
@@ -56414,7 +56561,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
56414
56561
 
56415
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)}`;
56416
56563
 
56417
- 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)}`;
56418
56565
 
56419
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)}`;
56420
56567
 
@@ -57420,6 +57567,13 @@ class AuroCounterGroup extends AuroElement$4 {
57420
57567
  */
57421
57568
  configureDropdownCounters() {
57422
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
+
57423
57577
  this.dropdown.requestUpdate();
57424
57578
 
57425
57579
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -58956,7 +59110,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
58956
59110
  }
58957
59111
  };
58958
59112
 
58959
- var formkitVersion$5 = '202606291631';
59113
+ var formkitVersion$5 = '202606292034';
58960
59114
 
58961
59115
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
58962
59116
  // See LICENSE in the project root for license information.
@@ -60706,7 +60860,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
60706
60860
  }
60707
60861
  };
60708
60862
 
60709
- var formkitVersion$4 = '202606291631';
60863
+ var formkitVersion$4 = '202606292034';
60710
60864
 
60711
60865
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
60712
60866
  // See LICENSE in the project root for license information.
@@ -65921,7 +66075,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
65921
66075
  }
65922
66076
  };
65923
66077
 
65924
- var formkitVersion$2 = '202606291631';
66078
+ var formkitVersion$2 = '202606292034';
65925
66079
 
65926
66080
  let AuroElement$2$1 = class AuroElement extends i$2 {
65927
66081
  static get properties() {
@@ -67193,6 +67347,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
67193
67347
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
67194
67348
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
67195
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)}"
67196
67351
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
67197
67352
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
67198
67353
  @focusin="${this.handleFocusin}"
@@ -77639,6 +77794,13 @@ class AuroInputUtilities {
77639
77794
  * @returns {string | undefined}
77640
77795
  */
77641
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
+ }
77642
77804
  const normalizedFormat = format.toLowerCase();
77643
77805
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
77644
77806
 
@@ -77789,79 +77951,18 @@ class BaseInput extends AuroElement$1$1 {
77789
77951
  constructor() {
77790
77952
  super();
77791
77953
 
77792
- this.appearance = "default";
77793
- this.disabled = false;
77794
- this.layout = 'classic';
77795
- this.locale = 'en-US';
77796
- this.max = undefined;
77797
- this._maxObject = undefined;
77798
- this.maxLength = undefined;
77799
- this.min = undefined;
77800
- this._minObject = undefined;
77801
- this.minLength = undefined;
77802
- this.required = false;
77803
- this.onDark = false;
77804
- this.setCustomValidityForType = undefined;
77805
- this.size = 'lg';
77806
- this.shape = 'classic';
77807
- this.value = undefined;
77808
- this._valueObject = undefined;
77809
-
77810
- this._initializePrivateDefaults();
77811
- }
77812
-
77813
- /**
77814
- * Internal Defaults.
77815
- * @private
77816
- * @returns {void}
77817
- */
77818
- _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.
77819
77964
  this.activeLabel = false;
77820
- this.appearance = "default";
77821
- this.icon = false;
77822
- this.disabled = false;
77823
- this.dvInputOnly = false;
77824
- this.hideLabelVisually = false;
77825
- this.max = undefined;
77826
- this.maxLength = undefined;
77827
- this.min = undefined;
77828
- this.minLength = undefined;
77829
- this.noValidate = false;
77830
- this.onDark = false;
77831
- this.required = false;
77832
- this.setCustomValidityForType = undefined;
77833
-
77834
- // Used for storing raw values returned from input mask.
77835
- this._rawMaskValue = undefined;
77836
-
77837
- /**
77838
- * @private
77839
- */
77840
- this.layout = 'classic';
77841
-
77842
- /**
77843
- * @private
77844
- */
77845
- this.shape = 'classic';
77846
-
77847
- /**
77848
- * @private
77849
- */
77850
- this.size = 'lg';
77851
-
77852
- this.touched = false;
77853
- this.util = new AuroInputUtilities({
77854
- locale: "en-US",
77855
- format: this.format
77856
- });
77857
- this.validation = new AuroFormValidation$2();
77858
- this.inputIconName = undefined;
77859
- this.showPassword = false;
77860
- this.validationCCLength = undefined;
77861
- this.hasValue = false;
77862
- this.label = 'Input label is undefined';
77863
-
77864
-
77965
+ /** @private */
77865
77966
  this.allowedInputTypes = [
77866
77967
  "text",
77867
77968
  "number",
@@ -77870,7 +77971,8 @@ class BaseInput extends AuroElement$1$1 {
77870
77971
  "credit-card",
77871
77972
  "tel"
77872
77973
  ];
77873
- this.icon = false;
77974
+ this.appearance = "default";
77975
+ /** @private */
77874
77976
  this.dateFormatMap = {
77875
77977
  'mm/dd/yyyy': 'dateMMDDYYYY',
77876
77978
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -77887,27 +77989,57 @@ class BaseInput extends AuroElement$1$1 {
77887
77989
  'dd/mm': 'dateDDMM',
77888
77990
  'mm/dd': 'dateMMDD'
77889
77991
  };
77992
+ this.disabled = false;
77993
+ /** @private */
77890
77994
  this.domHandler = new DomHandler();
77891
77995
  this.dvInputOnly = false;
77892
77996
  this.hasValue = false;
77997
+ this.hideLabelVisually = false;
77998
+ this.icon = false;
77999
+ /** @private */
77893
78000
  this.inputIconName = undefined;
78001
+ /** @private */
77894
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;
77895
78011
  this.noValidate = false;
77896
- 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 */
77897
78020
  this.setSelectionInputTypes = [
77898
78021
  "text",
77899
78022
  "password",
77900
78023
  "email"
77901
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
78024
+ ];
78025
+ this.shape = 'classic';
78026
+ /** @private */
77902
78027
  this.showPassword = false;
78028
+ this.size = 'lg';
77903
78029
  this.touched = false;
78030
+ /** @private */
77904
78031
  this.uniqueId = new UniqueId().create();
78032
+ /** @private */
77905
78033
  this.util = new AuroInputUtilities({
77906
78034
  locale: this.locale,
77907
78035
  format: this.format
77908
78036
  });
78037
+ /** @private */
77909
78038
  this.validation = new AuroFormValidation$2();
78039
+ /** @private */
77910
78040
  this.validationCCLength = undefined;
78041
+ this.value = undefined;
78042
+ this._valueObject = undefined;
77911
78043
  }
77912
78044
 
77913
78045
  // function to define props used within the scope of this component
@@ -78455,6 +78587,15 @@ class BaseInput extends AuroElement$1$1 {
78455
78587
 
78456
78588
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
78457
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
+
78458
78599
  // use validity message override if declared when initializing the component
78459
78600
  if (this.hasAttribute('setCustomValidity')) {
78460
78601
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -78888,6 +79029,38 @@ class BaseInput extends AuroElement$1$1 {
78888
79029
  this.touched = true;
78889
79030
  this.validation.validate(this);
78890
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
+ }
78891
79064
  }
78892
79065
 
78893
79066
  /**
@@ -79514,7 +79687,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
79514
79687
  }
79515
79688
  };
79516
79689
 
79517
- var formkitVersion$1$1 = '202606291631';
79690
+ var formkitVersion$1$1 = '202606292034';
79518
79691
 
79519
79692
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
79520
79693
  // See LICENSE in the project root for license information.
@@ -80017,6 +80190,7 @@ class AuroInput extends BaseInput {
80017
80190
  <${this.buttonTag}
80018
80191
  @click="${this.handleClickShowPassword}"
80019
80192
  appearance="${this.onDark ? 'inverse' : this.appearance}"
80193
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
80020
80194
  class="notificationBtn passwordBtn"
80021
80195
  shape="circle"
80022
80196
  size="sm"
@@ -80090,25 +80264,29 @@ class AuroInput extends BaseInput {
80090
80264
  * @returns {html} - Returns HTML for the help text and error message.
80091
80265
  */
80092
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';
80093
80275
  return u$d`
80094
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
80095
- ? u$d`
80096
- <${this.helpTextTag}
80097
- appearance="${this.onDark ? 'inverse' : this.appearance}">
80098
- <p id="${this.uniqueId}" part="helpText">
80099
- <slot name="helpText">${this.getHelpText()}</slot>
80100
- </p>
80101
- </${this.helpTextTag}>
80102
- `
80103
- : u$d`
80104
- <${this.helpTextTag} error
80105
- appearance="${this.onDark ? 'inverse' : this.appearance}">
80106
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
80107
- ${this.errorMessage}
80108
- </p>
80109
- </${this.helpTextTag}>
80110
- `
80111
- }
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}>
80112
80290
  `;
80113
80291
  }
80114
80292
 
@@ -80240,7 +80418,7 @@ class AuroInput extends BaseInput {
80240
80418
 
80241
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)}`;
80242
80420
 
80243
- 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)}`;
80244
80422
 
80245
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)}`;
80246
80424
 
@@ -80635,7 +80813,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
80635
80813
  }
80636
80814
  };
80637
80815
 
80638
- var formkitVersion$3 = '202606291631';
80816
+ var formkitVersion$3 = '202606292034';
80639
80817
 
80640
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}`;
80641
80819
 
@@ -85448,19 +85626,28 @@ const selectKeyboardStrategy = {
85448
85626
  },
85449
85627
 
85450
85628
  End(component, evt, ctx) {
85451
- if (!ctx.isExpanded) {
85452
- return;
85453
- }
85454
85629
  evt.preventDefault();
85455
85630
  evt.stopPropagation();
85456
85631
  // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
85457
85632
  const lastOption = getEnabledOptions(component.menu).pop();
85458
- if (lastOption) {
85459
- 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();
85460
85643
  }
85461
85644
  },
85462
85645
 
85463
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.
85464
85651
  evt.preventDefault();
85465
85652
  evt.stopPropagation();
85466
85653
  if (!ctx.isExpanded) {
@@ -85471,14 +85658,16 @@ const selectKeyboardStrategy = {
85471
85658
  },
85472
85659
 
85473
85660
  Home(component, evt, ctx) {
85474
- if (!ctx.isExpanded) {
85475
- return;
85476
- }
85477
85661
  evt.preventDefault();
85478
85662
  evt.stopPropagation();
85479
85663
  const [firstOption] = getEnabledOptions(component.menu);
85480
- if (firstOption) {
85481
- 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();
85482
85671
  }
85483
85672
  },
85484
85673
 
@@ -89426,7 +89615,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
89426
89615
  }
89427
89616
  };
89428
89617
 
89429
- var formkitVersion$1 = '202606291631';
89618
+ var formkitVersion$1 = '202606292034';
89430
89619
 
89431
89620
  class AuroElement extends i$2 {
89432
89621
  static get properties() {
@@ -90698,6 +90887,7 @@ class AuroDropdown extends AuroElement {
90698
90887
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
90699
90888
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
90700
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)}"
90701
90891
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
90702
90892
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
90703
90893
  @focusin="${this.handleFocusin}"
@@ -90824,7 +91014,7 @@ class AuroDropdown extends AuroElement {
90824
91014
 
90825
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)}`;
90826
91016
 
90827
- 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)}`;
90828
91018
 
90829
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)}`;
90830
91020
 
@@ -91447,7 +91637,7 @@ class AuroHelpText extends i$2 {
91447
91637
  }
91448
91638
  }
91449
91639
 
91450
- var formkitVersion = '202606291631';
91640
+ var formkitVersion = '202606292034';
91451
91641
 
91452
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}`;
91453
91643
 
@@ -91779,14 +91969,6 @@ class AuroSelect extends AuroElement$1 {
91779
91969
  reflect: true
91780
91970
  },
91781
91971
 
91782
- /**
91783
- * @private
91784
- */
91785
- options: {
91786
- type: Array,
91787
- state: true
91788
- },
91789
-
91790
91972
  /**
91791
91973
  * Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
91792
91974
  * @type {HTMLElement|Array<HTMLElement>}
@@ -92074,16 +92256,68 @@ class AuroSelect extends AuroElement$1 {
92074
92256
  this.dropdown.dropdownWidth = this.customBibWidth;
92075
92257
  }
92076
92258
 
92077
- // Pass label text to the dropdown bib for accessible dialog naming
92078
- const labelElement = this.querySelector('span[slot="label"]');
92079
- if (labelElement) {
92080
- this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
92081
- }
92259
+ this._syncLabelText();
92082
92260
 
92083
92261
  // Exposes the CSS parts from the dropdown for styling
92084
92262
  this.dropdown.exposeCssParts();
92085
92263
  }
92086
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
+
92087
92321
  /**
92088
92322
  * This will register this element with the browser.
92089
92323
  * @param {string} [name="auro-select"] - The name of element that you want to register to.
@@ -92234,11 +92468,7 @@ class AuroSelect extends AuroElement$1 {
92234
92468
  this.updateMenuShapeSize();
92235
92469
  this.setMenuValue(this.value);
92236
92470
 
92237
- // Set accessible name on the menu for screen readers based on the label slot content
92238
- const labelElement = this.querySelector('[slot="label"]');
92239
- if (labelElement) {
92240
- this.menu.setAttribute('aria-label', labelElement.textContent.trim());
92241
- }
92471
+ this._syncLabelText();
92242
92472
 
92243
92473
  if (this.multiSelect) {
92244
92474
  this.menu.multiSelect = this.multiSelect;
@@ -92250,8 +92480,21 @@ class AuroSelect extends AuroElement$1 {
92250
92480
  if (typeof this.menu.initItems === 'function') {
92251
92481
  this.menu.initItems();
92252
92482
  }
92253
- this.options = this.menu.options;
92254
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
+
92255
92498
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
92256
92499
 
92257
92500
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
@@ -92270,11 +92513,26 @@ class AuroSelect extends AuroElement$1 {
92270
92513
  this.dropdown.setActiveDescendant(this.optionActive);
92271
92514
  }
92272
92515
 
92273
- // Announce the active option for screen readers
92274
- 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')) {
92275
92525
  const optionText = this.optionActive.textContent.trim();
92276
- const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
92277
- 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
+ }
92278
92536
  }
92279
92537
 
92280
92538
  if (this.dropdown.isPopoverVisible) {
@@ -92283,6 +92541,7 @@ class AuroSelect extends AuroElement$1 {
92283
92541
  });
92284
92542
 
92285
92543
  this.menu.addEventListener('auroMenu-selectedOption', () => {
92544
+ const previousSelected = this.optionSelected;
92286
92545
 
92287
92546
  // Update the displayed value
92288
92547
  this.updateDisplayedValue();
@@ -92302,13 +92561,32 @@ class AuroSelect extends AuroElement$1 {
92302
92561
  this.dropdown.trigger.focus();
92303
92562
  }
92304
92563
 
92305
- // Announce the selection after the dropdown closes so it isn't
92306
- // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
92307
- const selectedValue = this.menu.currentLabel;
92308
- const announcementDelay = 300;
92309
- setTimeout(() => {
92310
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
92311
- }, 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
+ }
92312
92590
  });
92313
92591
  }
92314
92592
 
@@ -92406,24 +92684,32 @@ class AuroSelect extends AuroElement$1 {
92406
92684
 
92407
92685
  this.typeaheadBuffer += key;
92408
92686
 
92409
- 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));
92410
92693
 
92411
- let match = null;
92694
+ const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
92412
92695
  if (isRepeatedChar) {
92413
92696
  const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
92414
92697
  if (matches.length) {
92415
92698
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
92416
92699
  match = matches[cycleIndex];
92417
92700
  }
92418
- } else {
92419
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
92420
92701
  }
92421
92702
 
92703
+ // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
92422
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);
92423
92710
  if (!this.dropdown.isPopoverVisible) {
92424
92711
  this.dropdown.show();
92425
92712
  }
92426
- this.menu.updateActiveOption(match);
92427
92713
  }
92428
92714
  }
92429
92715
 
@@ -92540,6 +92826,28 @@ class AuroSelect extends AuroElement$1 {
92540
92826
  disconnectedCallback() {
92541
92827
  super.disconnectedCallback();
92542
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
+ }
92543
92851
  }
92544
92852
 
92545
92853
  // lifecycle runs only after the element's DOM has been updated the first time
@@ -92550,6 +92858,7 @@ class AuroSelect extends AuroElement$1 {
92550
92858
  this.configureDropdown();
92551
92859
  this.configureMenu();
92552
92860
  this.configureSelect();
92861
+ this._observeLabelChanges();
92553
92862
  }
92554
92863
 
92555
92864
  setMenuValue(value) {
@@ -92682,25 +92991,18 @@ class AuroSelect extends AuroElement$1 {
92682
92991
  * @private
92683
92992
  */
92684
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
+
92685
93000
  const selectedOption = event.target.options[event.target.selectedIndex];
92686
93001
  if (!selectedOption) return;
92687
93002
  const selectedValue = selectedOption.value;
92688
93003
 
92689
- if (this.multiSelect) {
92690
- const currentArray = this.menu.value || [];
92691
-
92692
- if (!currentArray.includes(selectedValue)) {
92693
- this.value = JSON.stringify([
92694
- ...currentArray,
92695
- selectedValue
92696
- ]);
92697
- }
92698
- } else {
92699
- const currentValue = this.value;
92700
-
92701
- if (currentValue !== selectedValue) {
92702
- this.value = selectedValue;
92703
- }
93004
+ if (this.value !== selectedValue) {
93005
+ this.value = selectedValue;
92704
93006
  }
92705
93007
  }
92706
93008