@aurodesignsystem-dev/auro-formkit 0.0.0-pr1514.1 → 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 +262 -134
  18. package/components/datepicker/demo/index.min.js +262 -134
  19. package/components/datepicker/dist/auro-calendar.d.ts +30 -5
  20. package/components/datepicker/dist/index.js +262 -134
  21. package/components/datepicker/dist/registered.js +262 -134
  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 +700 -393
  28. package/components/form/demo/getting-started.min.js +700 -393
  29. package/components/form/demo/index.min.js +700 -393
  30. package/components/form/demo/registerDemoDeps.min.js +700 -393
  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 +1945 -1729
  53. package/package.json +1 -1
@@ -11497,6 +11497,13 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
11497
11497
  * @returns {string | undefined}
11498
11498
  */
11499
11499
  toFormattedValue(valueObject, format) {
11500
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
11501
+ // `format` argument has to fail gracefully rather than throw on
11502
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
11503
+ // as "no format → no display value".
11504
+ if (!format) {
11505
+ return undefined;
11506
+ }
11500
11507
  const normalizedFormat = format.toLowerCase();
11501
11508
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
11502
11509
 
@@ -11647,79 +11654,18 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11647
11654
  constructor() {
11648
11655
  super();
11649
11656
 
11650
- this.appearance = "default";
11651
- this.disabled = false;
11652
- this.layout = 'classic';
11653
- this.locale = 'en-US';
11654
- this.max = undefined;
11655
- this._maxObject = undefined;
11656
- this.maxLength = undefined;
11657
- this.min = undefined;
11658
- this._minObject = undefined;
11659
- this.minLength = undefined;
11660
- this.required = false;
11661
- this.onDark = false;
11662
- this.setCustomValidityForType = undefined;
11663
- this.size = 'lg';
11664
- this.shape = 'classic';
11665
- this.value = undefined;
11666
- this._valueObject = undefined;
11667
-
11668
- this._initializePrivateDefaults();
11669
- }
11670
-
11671
- /**
11672
- * Internal Defaults.
11673
- * @private
11674
- * @returns {void}
11675
- */
11676
- _initializePrivateDefaults() {
11657
+ // Single-source initialization. Alphabetized so duplicate or stale
11658
+ // defaults are immediately obvious on a diff. Every field is assigned
11659
+ // exactly once here (previously the constructor + the old
11660
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
11661
+ // fields and double-allocated `util` and `validation`, discarding the
11662
+ // first instance). `validation` is now allocated exactly once; `util`
11663
+ // is seeded here with an en-US default and then rebuilt in
11664
+ // `connectedCallback` once the consumer-resolved locale is available,
11665
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
11666
+ // during its own update cycle sees a populated util instance.
11677
11667
  this.activeLabel = false;
11678
- this.appearance = "default";
11679
- this.icon = false;
11680
- this.disabled = false;
11681
- this.dvInputOnly = false;
11682
- this.hideLabelVisually = false;
11683
- this.max = undefined;
11684
- this.maxLength = undefined;
11685
- this.min = undefined;
11686
- this.minLength = undefined;
11687
- this.noValidate = false;
11688
- this.onDark = false;
11689
- this.required = false;
11690
- this.setCustomValidityForType = undefined;
11691
-
11692
- // Used for storing raw values returned from input mask.
11693
- this._rawMaskValue = undefined;
11694
-
11695
- /**
11696
- * @private
11697
- */
11698
- this.layout = 'classic';
11699
-
11700
- /**
11701
- * @private
11702
- */
11703
- this.shape = 'classic';
11704
-
11705
- /**
11706
- * @private
11707
- */
11708
- this.size = 'lg';
11709
-
11710
- this.touched = false;
11711
- this.util = new AuroInputUtilities$3({
11712
- locale: "en-US",
11713
- format: this.format
11714
- });
11715
- this.validation = new AuroFormValidation$7();
11716
- this.inputIconName = undefined;
11717
- this.showPassword = false;
11718
- this.validationCCLength = undefined;
11719
- this.hasValue = false;
11720
- this.label = 'Input label is undefined';
11721
-
11722
-
11668
+ /** @private */
11723
11669
  this.allowedInputTypes = [
11724
11670
  "text",
11725
11671
  "number",
@@ -11728,7 +11674,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11728
11674
  "credit-card",
11729
11675
  "tel"
11730
11676
  ];
11731
- this.icon = false;
11677
+ this.appearance = "default";
11678
+ /** @private */
11732
11679
  this.dateFormatMap = {
11733
11680
  'mm/dd/yyyy': 'dateMMDDYYYY',
11734
11681
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -11745,27 +11692,57 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11745
11692
  'dd/mm': 'dateDDMM',
11746
11693
  'mm/dd': 'dateMMDD'
11747
11694
  };
11695
+ this.disabled = false;
11696
+ /** @private */
11748
11697
  this.domHandler = new DomHandler$3();
11749
11698
  this.dvInputOnly = false;
11750
11699
  this.hasValue = false;
11700
+ this.hideLabelVisually = false;
11701
+ this.icon = false;
11702
+ /** @private */
11751
11703
  this.inputIconName = undefined;
11704
+ /** @private */
11752
11705
  this.label = 'Input label is undefined';
11706
+ this.layout = 'classic';
11707
+ this.locale = 'en-US';
11708
+ this.max = undefined;
11709
+ this._maxObject = undefined;
11710
+ this.maxLength = undefined;
11711
+ this.min = undefined;
11712
+ this._minObject = undefined;
11713
+ this.minLength = undefined;
11753
11714
  this.noValidate = false;
11754
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
11715
+ this.onDark = false;
11716
+ // Raw values returned from the input mask before model normalization.
11717
+ this._rawMaskValue = undefined;
11718
+ this.required = false;
11719
+ this.setCustomValidityForType = undefined;
11720
+ // Credit Card is intentionally excluded — its mask manages the cursor
11721
+ // itself, and listing it here caused cursor placement issues in Safari.
11722
+ /** @private */
11755
11723
  this.setSelectionInputTypes = [
11756
11724
  "text",
11757
11725
  "password",
11758
11726
  "email"
11759
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
11727
+ ];
11728
+ this.shape = 'classic';
11729
+ /** @private */
11760
11730
  this.showPassword = false;
11731
+ this.size = 'lg';
11761
11732
  this.touched = false;
11733
+ /** @private */
11762
11734
  this.uniqueId = new UniqueId$2().create();
11735
+ /** @private */
11763
11736
  this.util = new AuroInputUtilities$3({
11764
11737
  locale: this.locale,
11765
11738
  format: this.format
11766
11739
  });
11740
+ /** @private */
11767
11741
  this.validation = new AuroFormValidation$7();
11742
+ /** @private */
11768
11743
  this.validationCCLength = undefined;
11744
+ this.value = undefined;
11745
+ this._valueObject = undefined;
11769
11746
  }
11770
11747
 
11771
11748
  // function to define props used within the scope of this component
@@ -12313,6 +12290,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12313
12290
 
12314
12291
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
12315
12292
 
12293
+ // Normalize the format token to lowercase so case-mixed values supplied
12294
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
12295
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
12296
+ // format silently misses the map and leaves `setCustomValidityForType`
12297
+ // unset.
12298
+ if (this.format) {
12299
+ this.format = this.format.toLowerCase();
12300
+ }
12301
+
12316
12302
  // use validity message override if declared when initializing the component
12317
12303
  if (this.hasAttribute('setCustomValidity')) {
12318
12304
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -12746,6 +12732,38 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
12746
12732
  this.touched = true;
12747
12733
  this.validation.validate(this);
12748
12734
  }
12735
+
12736
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
12737
+ // update that can re-render the input and reset the native cursor; we
12738
+ // capture the caret position before that update commits and restore it
12739
+ // via `setSelectionRange` once the update has flushed. Gated on
12740
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
12741
+ // formatter manages the cursor itself) doesn't get a competing write.
12742
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
12743
+ // on input types that don't support text selection (number, email in
12744
+ // some browsers) throws InvalidStateError, which would crash all input
12745
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
12746
+ // the gated types currently support it, since the list is a public
12747
+ // property a consumer could mutate.
12748
+ if (this.setSelectionInputTypes.includes(this.type)) {
12749
+ let selectionStart;
12750
+ try {
12751
+ selectionStart = this.inputElement.selectionStart;
12752
+ } catch (error) { // eslint-disable-line no-unused-vars
12753
+ return;
12754
+ }
12755
+ if (typeof selectionStart !== 'number') {
12756
+ return;
12757
+ }
12758
+ this.updateComplete.then(() => {
12759
+ try {
12760
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
12761
+ } catch (error) { // eslint-disable-line no-unused-vars
12762
+ // Some input types (number/email in certain UAs) throw on
12763
+ // setSelectionRange; swallow and let the native cursor stand.
12764
+ }
12765
+ });
12766
+ }
12749
12767
  }
12750
12768
 
12751
12769
  /**
@@ -13372,7 +13390,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
13372
13390
  }
13373
13391
  };
13374
13392
 
13375
- var formkitVersion$8 = '202606291643';
13393
+ var formkitVersion$8 = '202606292034';
13376
13394
 
13377
13395
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13378
13396
  // See LICENSE in the project root for license information.
@@ -13875,6 +13893,7 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
13875
13893
  <${this.buttonTag}
13876
13894
  @click="${this.handleClickShowPassword}"
13877
13895
  appearance="${this.onDark ? 'inverse' : this.appearance}"
13896
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
13878
13897
  class="notificationBtn passwordBtn"
13879
13898
  shape="circle"
13880
13899
  size="sm"
@@ -13948,25 +13967,29 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
13948
13967
  * @returns {html} - Returns HTML for the help text and error message.
13949
13968
  */
13950
13969
  renderHtmlHelpText() {
13970
+ // Single `<p>` with stable identity across validity transitions —
13971
+ // previously two distinct templates (valid vs invalid) caused Lit to
13972
+ // replace the node entirely on a flip, and VoiceOver wouldn't
13973
+ // re-announce because the live-region element it was watching had been
13974
+ // removed and a new one inserted. Keeping one node means the `role`,
13975
+ // `aria-live`, and text content all change in-place, which AT does
13976
+ // observe and announce.
13977
+ const isError = this.validity && this.validity !== 'valid';
13951
13978
  return u$c`
13952
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
13953
- ? u$c`
13954
- <${this.helpTextTag}
13955
- appearance="${this.onDark ? 'inverse' : this.appearance}">
13956
- <p id="${this.uniqueId}" part="helpText">
13957
- <slot name="helpText">${this.getHelpText()}</slot>
13958
- </p>
13959
- </${this.helpTextTag}>
13960
- `
13961
- : u$c`
13962
- <${this.helpTextTag} error
13963
- appearance="${this.onDark ? 'inverse' : this.appearance}">
13964
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
13965
- ${this.errorMessage}
13966
- </p>
13967
- </${this.helpTextTag}>
13968
- `
13969
- }
13979
+ <${this.helpTextTag}
13980
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
13981
+ ?error=${isError}>
13982
+ <p
13983
+ id="${this.uniqueId}"
13984
+ part="helpText"
13985
+ role="${o$4(isError ? 'alert' : undefined)}"
13986
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
13987
+ ${isError
13988
+ ? this.errorMessage
13989
+ : u$c`<slot name="helpText">${this.getHelpText()}</slot>`
13990
+ }
13991
+ </p>
13992
+ </${this.helpTextTag}>
13970
13993
  `;
13971
13994
  }
13972
13995
 
@@ -24607,6 +24630,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
24607
24630
  * @returns {string | undefined}
24608
24631
  */
24609
24632
  toFormattedValue(valueObject, format) {
24633
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
24634
+ // `format` argument has to fail gracefully rather than throw on
24635
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
24636
+ // as "no format → no display value".
24637
+ if (!format) {
24638
+ return undefined;
24639
+ }
24610
24640
  const normalizedFormat = format.toLowerCase();
24611
24641
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
24612
24642
 
@@ -24866,9 +24896,9 @@ var snowflakeStyle = i$6`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
24866
24896
 
24867
24897
  var snowflakeColors = i$6`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
24868
24898
 
24869
- var styleCss$7$1 = i$6`.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}`;
24899
+ var styleCss$7$1 = i$6`.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}`;
24870
24900
 
24871
- var colorCss$7$1 = i$6`.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)}}`;
24901
+ var colorCss$7$1 = i$6`.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)}}`;
24872
24902
 
24873
24903
  var styleCss$6$1 = i$6`: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)}`;
24874
24904
 
@@ -27219,7 +27249,7 @@ class CalendarUtilities {
27219
27249
 
27220
27250
  var colorCss$4$2 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
27221
27251
 
27222
- var styleCss$4$3 = i$6`#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)}`;
27252
+ var styleCss$4$3 = i$6`#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)}`;
27223
27253
 
27224
27254
  var tokenCss$4 = i$6`: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)}`;
27225
27255
 
@@ -27614,7 +27644,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
27614
27644
  }
27615
27645
  };
27616
27646
 
27617
- var formkitVersion$2$1 = '202606291643';
27647
+ var formkitVersion$2$1 = '202606292034';
27618
27648
 
27619
27649
  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$2`${s$3(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$6`: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}
27620
27650
  `,u$4$2=i$6`.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}}
@@ -27719,6 +27749,15 @@ class AuroCalendar extends RangeDatepicker {
27719
27749
  */
27720
27750
  this.activeCellDate = null;
27721
27751
 
27752
+ /**
27753
+ * Cached reference to the active cell host. Set by setActiveCell and
27754
+ * refreshed by scrollToActiveCell when its cache check misses (stale
27755
+ * or missing). Lets scrollToActiveCell skip a full cell scan on each
27756
+ * arrow key.
27757
+ * @private
27758
+ */
27759
+ this._activeCell = null;
27760
+
27722
27761
  /**
27723
27762
  * Whether the #calendarGrid wrapper currently has focus.
27724
27763
  * Used to determine whether the visualFocus ring should be shown.
@@ -28230,6 +28269,9 @@ class AuroCalendar extends RangeDatepicker {
28230
28269
  });
28231
28270
 
28232
28271
  this.activeCellDate = date;
28272
+ // Cache so scrollToActiveCell can scroll without re-querying all cells
28273
+ // on every arrow keypress.
28274
+ this._activeCell = newActiveCell;
28233
28275
 
28234
28276
  // Apply activeCell ring only when the grid currently has focus.
28235
28277
  if (newActiveCell && this._gridHasFocus) {
@@ -28687,6 +28729,9 @@ class AuroCalendar extends RangeDatepicker {
28687
28729
  this.handleCellFocused({ detail: { date: fallback.day.date } });
28688
28730
  }
28689
28731
  }
28732
+ // Scroll AFTER the cross-month setActiveCell so the freshly
28733
+ // activated cell is what gets scrolled into view.
28734
+ this.scrollToActiveCell();
28690
28735
  // Re-focus grid wrapper after month change re-render
28691
28736
  this.focusActiveCell();
28692
28737
  });
@@ -28727,6 +28772,9 @@ class AuroCalendar extends RangeDatepicker {
28727
28772
  this.handleCellFocused({ detail: { date: nearest.day.date } });
28728
28773
  }
28729
28774
  }
28775
+ // Scroll AFTER the cross-month setActiveCell so the freshly
28776
+ // activated cell is what gets scrolled into view.
28777
+ this.scrollToActiveCell();
28730
28778
  this.focusActiveCell();
28731
28779
  });
28732
28780
  }
@@ -28761,6 +28809,8 @@ class AuroCalendar extends RangeDatepicker {
28761
28809
  const targetCell = allCells[targetIndex];
28762
28810
  this.setActiveCell(targetCell.day.date);
28763
28811
  this.scrollToActiveCell();
28812
+ // Match the cross-month branches: keep DOM focus on the grid wrapper
28813
+ // so subsequent arrow keys continue to land on this handler.
28764
28814
  this.focusActiveCell();
28765
28815
  } else if (direction === 'next' && this.showNextMonthBtn) {
28766
28816
  // Navigate to next month and focus the computed next date.
@@ -28782,7 +28832,6 @@ class AuroCalendar extends RangeDatepicker {
28782
28832
  const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
28783
28833
  if (target) {
28784
28834
  this.setActiveCell(target.day.date);
28785
- this.focusActiveCell();
28786
28835
  } else {
28787
28836
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
28788
28837
  // `cells[length - 1]` would land on the end of the new month,
@@ -28790,9 +28839,10 @@ class AuroCalendar extends RangeDatepicker {
28790
28839
  const fallback = this.pickNearestCell(cells, nextTs, 'next');
28791
28840
  if (fallback) {
28792
28841
  this.setActiveCell(fallback.day.date);
28793
- this.focusActiveCell();
28794
28842
  }
28795
28843
  }
28844
+ this.scrollToActiveCell();
28845
+ this.focusActiveCell();
28796
28846
  });
28797
28847
  } else if (direction === 'prev' && this.showPrevMonthBtn) {
28798
28848
  // Navigate to previous month and focus the computed previous date.
@@ -28811,7 +28861,6 @@ class AuroCalendar extends RangeDatepicker {
28811
28861
  const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
28812
28862
  if (target) {
28813
28863
  this.setActiveCell(target.day.date);
28814
- this.focusActiveCell();
28815
28864
  } else {
28816
28865
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
28817
28866
  // `cells[0]` would land on the start of the previous month, far
@@ -28819,9 +28868,10 @@ class AuroCalendar extends RangeDatepicker {
28819
28868
  const fallback = this.pickNearestCell(cells, prevTs, 'prev');
28820
28869
  if (fallback) {
28821
28870
  this.setActiveCell(fallback.day.date);
28822
- this.focusActiveCell();
28823
28871
  }
28824
28872
  }
28873
+ this.scrollToActiveCell();
28874
+ this.focusActiveCell();
28825
28875
  });
28826
28876
  }
28827
28877
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
@@ -28854,7 +28904,6 @@ class AuroCalendar extends RangeDatepicker {
28854
28904
  const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
28855
28905
  if (target) {
28856
28906
  this.setActiveCell(target.day.date);
28857
- this.focusActiveCell();
28858
28907
  } else {
28859
28908
  // Same nearest-by-date fallback handleGridKeyDown uses — the
28860
28909
  // old direction-based `cells[0]`/`cells[length-1]` clamp
@@ -28862,9 +28911,10 @@ class AuroCalendar extends RangeDatepicker {
28862
28911
  const nearest = this.pickNearestCell(cells, targetDate, navDirection);
28863
28912
  if (nearest) {
28864
28913
  this.setActiveCell(nearest.day.date);
28865
- this.focusActiveCell();
28866
28914
  }
28867
28915
  }
28916
+ this.scrollToActiveCell();
28917
+ this.focusActiveCell();
28868
28918
  });
28869
28919
  }
28870
28920
  }
@@ -29065,11 +29115,28 @@ class AuroCalendar extends RangeDatepicker {
29065
29115
  }
29066
29116
 
29067
29117
  /**
29068
- * Scrolls the calendar to ensure the active cell is visible.
29069
- * Targets the cell itself (not its month) so that same-month vertical
29070
- * navigation in mobile fullscreen where a single month can exceed the
29071
- * viewport height scrolls to the target row. `block: 'nearest'` is a
29072
- * no-op when the cell is already in view, preserving desktop behavior.
29118
+ * Scrolls the calendar so the active cell is visible.
29119
+ *
29120
+ * Walks the flat tree (rendered, slot-aware) outward from the active
29121
+ * cell's button and calls `scrollBy` on every vertically-scrollable
29122
+ * ancestor by whatever delta still separates the cell from that
29123
+ * ancestor's viewport. Native `scrollIntoView` is not used because the
29124
+ * cell sits inside multiple nested scroll containers (the dropdown bib's
29125
+ * `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
29126
+ * scrolls one of them on its own, leaving the cell short of the
29127
+ * viewport in mobile fullscreen.
29128
+ *
29129
+ * Uses `behavior: 'auto'` (the spec's universally-supported non-animated
29130
+ * value) so each `scrollBy` resolves synchronously and the next
29131
+ * iteration's `getBoundingClientRect` reads post-scroll positions
29132
+ * accurately. This also satisfies `prefers-reduced-motion` users — the
29133
+ * scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
29134
+ * is effectively instant.
29135
+ *
29136
+ * The active cell is looked up from the cache populated by
29137
+ * `setActiveCell`. On a cache miss (stale or absent) the cache is
29138
+ * refreshed from a single full scan so subsequent calls stay on the
29139
+ * fast path.
29073
29140
  * @private
29074
29141
  * @returns {void}
29075
29142
  */
@@ -29078,17 +29145,70 @@ class AuroCalendar extends RangeDatepicker {
29078
29145
  return;
29079
29146
  }
29080
29147
 
29148
+ // Prefer the cell cached by setActiveCell so arrow-key navigation does
29149
+ // not rebuild the full cell list on every keypress. Fall back to a
29150
+ // lookup when the cache is stale (e.g. detached after month re-render)
29151
+ // or absent (scrollToActiveCell called without a prior setActiveCell);
29152
+ // refresh the cache on the fallback path so a subsequent call reuses it.
29081
29153
  const activeDate = this.activeCellDate;
29082
- const activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
29154
+ const cached = this._activeCell;
29155
+ const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
29156
+ let activeCell = null;
29157
+ if (cacheFresh) {
29158
+ activeCell = cached;
29159
+ } else {
29160
+ activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
29161
+ this._activeCell = activeCell || null;
29162
+ }
29083
29163
  if (!activeCell) {
29084
29164
  return;
29085
29165
  }
29086
29166
 
29087
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
29088
- activeCell.scrollIntoView({
29089
- block: 'nearest',
29090
- behavior: prefersReducedMotion ? 'auto' : 'smooth'
29091
- });
29167
+ // Scroll the button inside the cell — it has concrete dimensions,
29168
+ // which avoids quirks when the cell host has display: inline / contents
29169
+ // / flex-without-explicit-size.
29170
+ const target = activeCell._cachedButton ||
29171
+ activeCell.shadowRoot?.querySelector('button.day') ||
29172
+ activeCell;
29173
+
29174
+ // parentNode follows the authored DOM tree and steps over shadow roots
29175
+ // via slot projection. A slotted element's visual parent is its
29176
+ // assignedSlot's parent (inside the host's shadow tree), not the host
29177
+ // itself. Without this hop, the walk skips right past #bodyContainer
29178
+ // and <dialog> and finds no scrollable ancestor at all.
29179
+ const flatParent = (current) => {
29180
+ if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
29181
+ return current.host || null;
29182
+ }
29183
+ if (current.assignedSlot) {
29184
+ return current.assignedSlot.parentNode;
29185
+ }
29186
+ return current.parentNode;
29187
+ };
29188
+
29189
+ let node = flatParent(target);
29190
+ while (node && node !== document && node !== window) {
29191
+ if (node.nodeType === Node.ELEMENT_NODE) {
29192
+ const { overflowY } = window.getComputedStyle(node);
29193
+ if (overflowY === 'auto' || overflowY === 'scroll') {
29194
+ const targetRect = target.getBoundingClientRect();
29195
+ const scrollerRect = node.getBoundingClientRect();
29196
+ let delta = 0;
29197
+ if (targetRect.top < scrollerRect.top) {
29198
+ delta = targetRect.top - scrollerRect.top;
29199
+ } else if (targetRect.bottom > scrollerRect.bottom) {
29200
+ delta = targetRect.bottom - scrollerRect.bottom;
29201
+ }
29202
+ if (delta !== 0) {
29203
+ node.scrollBy({
29204
+ top: delta,
29205
+ behavior: 'auto'
29206
+ });
29207
+ }
29208
+ }
29209
+ }
29210
+ node = flatParent(node);
29211
+ }
29092
29212
  }
29093
29213
 
29094
29214
  /**
@@ -29378,7 +29498,7 @@ class AuroCalendar extends RangeDatepicker {
29378
29498
  </div>
29379
29499
  </div>
29380
29500
 
29381
- <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
29501
+ <div class="calendarWrapper">
29382
29502
  <div class="calendarNavButtons">
29383
29503
  ${this.showPrevMonthBtn ? u$c`
29384
29504
  <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
@@ -33276,7 +33396,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33276
33396
  }
33277
33397
  };
33278
33398
 
33279
- var formkitVersion$1$3 = '202606291643';
33399
+ var formkitVersion$1$3 = '202606292034';
33280
33400
 
33281
33401
  let AuroElement$2$2 = class AuroElement extends i$3 {
33282
33402
  static get properties() {
@@ -34548,6 +34668,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34548
34668
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
34549
34669
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
34550
34670
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
34671
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
34551
34672
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
34552
34673
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
34553
34674
  @focusin="${this.handleFocusin}"
@@ -44994,6 +45115,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
44994
45115
  * @returns {string | undefined}
44995
45116
  */
44996
45117
  toFormattedValue(valueObject, format) {
45118
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
45119
+ // `format` argument has to fail gracefully rather than throw on
45120
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
45121
+ // as "no format → no display value".
45122
+ if (!format) {
45123
+ return undefined;
45124
+ }
44997
45125
  const normalizedFormat = format.toLowerCase();
44998
45126
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
44999
45127
 
@@ -45144,79 +45272,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45144
45272
  constructor() {
45145
45273
  super();
45146
45274
 
45147
- this.appearance = "default";
45148
- this.disabled = false;
45149
- this.layout = 'classic';
45150
- this.locale = 'en-US';
45151
- this.max = undefined;
45152
- this._maxObject = undefined;
45153
- this.maxLength = undefined;
45154
- this.min = undefined;
45155
- this._minObject = undefined;
45156
- this.minLength = undefined;
45157
- this.required = false;
45158
- this.onDark = false;
45159
- this.setCustomValidityForType = undefined;
45160
- this.size = 'lg';
45161
- this.shape = 'classic';
45162
- this.value = undefined;
45163
- this._valueObject = undefined;
45164
-
45165
- this._initializePrivateDefaults();
45166
- }
45167
-
45168
- /**
45169
- * Internal Defaults.
45170
- * @private
45171
- * @returns {void}
45172
- */
45173
- _initializePrivateDefaults() {
45275
+ // Single-source initialization. Alphabetized so duplicate or stale
45276
+ // defaults are immediately obvious on a diff. Every field is assigned
45277
+ // exactly once here (previously the constructor + the old
45278
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
45279
+ // fields and double-allocated `util` and `validation`, discarding the
45280
+ // first instance). `validation` is now allocated exactly once; `util`
45281
+ // is seeded here with an en-US default and then rebuilt in
45282
+ // `connectedCallback` once the consumer-resolved locale is available,
45283
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
45284
+ // during its own update cycle sees a populated util instance.
45174
45285
  this.activeLabel = false;
45175
- this.appearance = "default";
45176
- this.icon = false;
45177
- this.disabled = false;
45178
- this.dvInputOnly = false;
45179
- this.hideLabelVisually = false;
45180
- this.max = undefined;
45181
- this.maxLength = undefined;
45182
- this.min = undefined;
45183
- this.minLength = undefined;
45184
- this.noValidate = false;
45185
- this.onDark = false;
45186
- this.required = false;
45187
- this.setCustomValidityForType = undefined;
45188
-
45189
- // Used for storing raw values returned from input mask.
45190
- this._rawMaskValue = undefined;
45191
-
45192
- /**
45193
- * @private
45194
- */
45195
- this.layout = 'classic';
45196
-
45197
- /**
45198
- * @private
45199
- */
45200
- this.shape = 'classic';
45201
-
45202
- /**
45203
- * @private
45204
- */
45205
- this.size = 'lg';
45206
-
45207
- this.touched = false;
45208
- this.util = new AuroInputUtilities$2({
45209
- locale: "en-US",
45210
- format: this.format
45211
- });
45212
- this.validation = new AuroFormValidation$6();
45213
- this.inputIconName = undefined;
45214
- this.showPassword = false;
45215
- this.validationCCLength = undefined;
45216
- this.hasValue = false;
45217
- this.label = 'Input label is undefined';
45218
-
45219
-
45286
+ /** @private */
45220
45287
  this.allowedInputTypes = [
45221
45288
  "text",
45222
45289
  "number",
@@ -45225,7 +45292,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45225
45292
  "credit-card",
45226
45293
  "tel"
45227
45294
  ];
45228
- this.icon = false;
45295
+ this.appearance = "default";
45296
+ /** @private */
45229
45297
  this.dateFormatMap = {
45230
45298
  'mm/dd/yyyy': 'dateMMDDYYYY',
45231
45299
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -45242,27 +45310,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45242
45310
  'dd/mm': 'dateDDMM',
45243
45311
  'mm/dd': 'dateMMDD'
45244
45312
  };
45313
+ this.disabled = false;
45314
+ /** @private */
45245
45315
  this.domHandler = new DomHandler$2();
45246
45316
  this.dvInputOnly = false;
45247
45317
  this.hasValue = false;
45318
+ this.hideLabelVisually = false;
45319
+ this.icon = false;
45320
+ /** @private */
45248
45321
  this.inputIconName = undefined;
45322
+ /** @private */
45249
45323
  this.label = 'Input label is undefined';
45324
+ this.layout = 'classic';
45325
+ this.locale = 'en-US';
45326
+ this.max = undefined;
45327
+ this._maxObject = undefined;
45328
+ this.maxLength = undefined;
45329
+ this.min = undefined;
45330
+ this._minObject = undefined;
45331
+ this.minLength = undefined;
45250
45332
  this.noValidate = false;
45251
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
45333
+ this.onDark = false;
45334
+ // Raw values returned from the input mask before model normalization.
45335
+ this._rawMaskValue = undefined;
45336
+ this.required = false;
45337
+ this.setCustomValidityForType = undefined;
45338
+ // Credit Card is intentionally excluded — its mask manages the cursor
45339
+ // itself, and listing it here caused cursor placement issues in Safari.
45340
+ /** @private */
45252
45341
  this.setSelectionInputTypes = [
45253
45342
  "text",
45254
45343
  "password",
45255
45344
  "email"
45256
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
45345
+ ];
45346
+ this.shape = 'classic';
45347
+ /** @private */
45257
45348
  this.showPassword = false;
45349
+ this.size = 'lg';
45258
45350
  this.touched = false;
45351
+ /** @private */
45259
45352
  this.uniqueId = new UniqueId$1().create();
45353
+ /** @private */
45260
45354
  this.util = new AuroInputUtilities$2({
45261
45355
  locale: this.locale,
45262
45356
  format: this.format
45263
45357
  });
45358
+ /** @private */
45264
45359
  this.validation = new AuroFormValidation$6();
45360
+ /** @private */
45265
45361
  this.validationCCLength = undefined;
45362
+ this.value = undefined;
45363
+ this._valueObject = undefined;
45266
45364
  }
45267
45365
 
45268
45366
  // function to define props used within the scope of this component
@@ -45810,6 +45908,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45810
45908
 
45811
45909
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
45812
45910
 
45911
+ // Normalize the format token to lowercase so case-mixed values supplied
45912
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
45913
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
45914
+ // format silently misses the map and leaves `setCustomValidityForType`
45915
+ // unset.
45916
+ if (this.format) {
45917
+ this.format = this.format.toLowerCase();
45918
+ }
45919
+
45813
45920
  // use validity message override if declared when initializing the component
45814
45921
  if (this.hasAttribute('setCustomValidity')) {
45815
45922
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -46243,6 +46350,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46243
46350
  this.touched = true;
46244
46351
  this.validation.validate(this);
46245
46352
  }
46353
+
46354
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
46355
+ // update that can re-render the input and reset the native cursor; we
46356
+ // capture the caret position before that update commits and restore it
46357
+ // via `setSelectionRange` once the update has flushed. Gated on
46358
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
46359
+ // formatter manages the cursor itself) doesn't get a competing write.
46360
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
46361
+ // on input types that don't support text selection (number, email in
46362
+ // some browsers) throws InvalidStateError, which would crash all input
46363
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
46364
+ // the gated types currently support it, since the list is a public
46365
+ // property a consumer could mutate.
46366
+ if (this.setSelectionInputTypes.includes(this.type)) {
46367
+ let selectionStart;
46368
+ try {
46369
+ selectionStart = this.inputElement.selectionStart;
46370
+ } catch (error) { // eslint-disable-line no-unused-vars
46371
+ return;
46372
+ }
46373
+ if (typeof selectionStart !== 'number') {
46374
+ return;
46375
+ }
46376
+ this.updateComplete.then(() => {
46377
+ try {
46378
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
46379
+ } catch (error) { // eslint-disable-line no-unused-vars
46380
+ // Some input types (number/email in certain UAs) throw on
46381
+ // setSelectionRange; swallow and let the native cursor stand.
46382
+ }
46383
+ });
46384
+ }
46246
46385
  }
46247
46386
 
46248
46387
  /**
@@ -46869,7 +47008,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
46869
47008
  }
46870
47009
  };
46871
47010
 
46872
- var formkitVersion$7 = '202606291643';
47011
+ var formkitVersion$7 = '202606292034';
46873
47012
 
46874
47013
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46875
47014
  // See LICENSE in the project root for license information.
@@ -47372,6 +47511,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47372
47511
  <${this.buttonTag}
47373
47512
  @click="${this.handleClickShowPassword}"
47374
47513
  appearance="${this.onDark ? 'inverse' : this.appearance}"
47514
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
47375
47515
  class="notificationBtn passwordBtn"
47376
47516
  shape="circle"
47377
47517
  size="sm"
@@ -47445,25 +47585,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47445
47585
  * @returns {html} - Returns HTML for the help text and error message.
47446
47586
  */
47447
47587
  renderHtmlHelpText() {
47588
+ // Single `<p>` with stable identity across validity transitions —
47589
+ // previously two distinct templates (valid vs invalid) caused Lit to
47590
+ // replace the node entirely on a flip, and VoiceOver wouldn't
47591
+ // re-announce because the live-region element it was watching had been
47592
+ // removed and a new one inserted. Keeping one node means the `role`,
47593
+ // `aria-live`, and text content all change in-place, which AT does
47594
+ // observe and announce.
47595
+ const isError = this.validity && this.validity !== 'valid';
47448
47596
  return u$c`
47449
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
47450
- ? u$c`
47451
- <${this.helpTextTag}
47452
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47453
- <p id="${this.uniqueId}" part="helpText">
47454
- <slot name="helpText">${this.getHelpText()}</slot>
47455
- </p>
47456
- </${this.helpTextTag}>
47457
- `
47458
- : u$c`
47459
- <${this.helpTextTag} error
47460
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47461
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
47462
- ${this.errorMessage}
47463
- </p>
47464
- </${this.helpTextTag}>
47465
- `
47466
- }
47597
+ <${this.helpTextTag}
47598
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
47599
+ ?error=${isError}>
47600
+ <p
47601
+ id="${this.uniqueId}"
47602
+ part="helpText"
47603
+ role="${o$4(isError ? 'alert' : undefined)}"
47604
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
47605
+ ${isError
47606
+ ? this.errorMessage
47607
+ : u$c`<slot name="helpText">${this.getHelpText()}</slot>`
47608
+ }
47609
+ </p>
47610
+ </${this.helpTextTag}>
47467
47611
  `;
47468
47612
  }
47469
47613
 
@@ -47610,6 +47754,15 @@ function formatISODate(isoStr, format) {
47610
47754
  try {
47611
47755
  const date = dateFormatter$2.stringToDateInstance(isoStr);
47612
47756
 
47757
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
47758
+ // and `null` for non-string input — it does NOT throw. Without this
47759
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
47760
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
47761
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
47762
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
47763
+ return undefined;
47764
+ }
47765
+
47613
47766
  const year = String(date.getFullYear()).padStart(4, '0');
47614
47767
  const month = String(date.getMonth() + 1).padStart(2, '0');
47615
47768
  const day = String(date.getDate()).padStart(2, '0');
@@ -47620,7 +47773,10 @@ function formatISODate(isoStr, format) {
47620
47773
  replace(/mm/iu, month).
47621
47774
  replace(/dd/iu, day);
47622
47775
  } catch (err) {
47623
- // If the input string is not a valid date, return undefined
47776
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
47777
+ // (inside `stringToDateInstance`) could throw on pathological input
47778
+ // future-library-versions might introduce. Treat any thrown error as
47779
+ // "not a valid date" and return undefined.
47624
47780
  return undefined;
47625
47781
  }
47626
47782
  }
@@ -49329,11 +49485,14 @@ class AuroDatePicker extends AuroElement$5 {
49329
49485
  this.calendar.announceSelection(announcement);
49330
49486
  }, 500);
49331
49487
 
49332
- // On mobile fullscreen, scroll the month list so the active cell's
49333
- // month is visible. Without this, the list stays scrolled to the
49334
- // calendarStartDate month which may be far from the active cell.
49335
- if (this.dropdown.isBibFullscreen) {
49488
+ // On mobile fullscreen or when an explicit focusDate change has
49489
+ // requested a forced scroll on the next render scroll the active
49490
+ // cell into view. Doing this here (after activeCellDate has been
49491
+ // resolved by the rAF loop above) prevents a no-op scroll that
49492
+ // would happen if we tried to scroll before the cell was set.
49493
+ if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
49336
49494
  this.calendar.scrollToActiveCell();
49495
+ this.forceScrollOnNextMobileCalendarRender = false;
49337
49496
  }
49338
49497
  } else if (attempts < MAX_ATTEMPTS) {
49339
49498
  requestAnimationFrame(tryFocus);
@@ -49457,18 +49616,10 @@ class AuroDatePicker extends AuroElement$5 {
49457
49616
  }
49458
49617
  }
49459
49618
 
49460
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
49461
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
49462
-
49463
- // Since the calendar is not rendered until the dropdown is opened,
49464
- // and the auroDropdown-toggled event fires before the popover is actually open,
49465
- // we need to wait until the next frame to ensure the calendar is fully rendered
49466
- // and the area we're trying to scroll to is present in the DOM.
49467
- setTimeout(() => {
49468
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
49469
- this.forceScrollOnNextMobileCalendarRender = false;
49470
- }, 0);
49471
- }
49619
+ // Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
49620
+ // happens inside focusActiveCellWhenReady() once activeCellDate has
49621
+ // been resolved by its rAF wait — not here in a setTimeout(0), which
49622
+ // fired before the active date was set and silently no-op'd.
49472
49623
  }, { signal });
49473
49624
 
49474
49625
  // Handle responsive strategy changes while the dropdown is open
@@ -51724,7 +51875,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
51724
51875
  }
51725
51876
  };
51726
51877
 
51727
- var formkitVersion$1$2 = '202606291643';
51878
+ var formkitVersion$1$2 = '202606292034';
51728
51879
 
51729
51880
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51730
51881
  // See LICENSE in the project root for license information.
@@ -56052,7 +56203,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56052
56203
  }
56053
56204
  };
56054
56205
 
56055
- var formkitVersion$6 = '202606291643';
56206
+ var formkitVersion$6 = '202606292034';
56056
56207
 
56057
56208
  let AuroElement$1$2 = class AuroElement extends i$3 {
56058
56209
  static get properties() {
@@ -57324,6 +57475,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57324
57475
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
57325
57476
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
57326
57477
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
57478
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
57327
57479
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
57328
57480
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
57329
57481
  @focusin="${this.handleFocusin}"
@@ -57450,7 +57602,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57450
57602
 
57451
57603
  var colorCss$1$6 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
57452
57604
 
57453
- var styleCss$1$6 = i$6`#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)}`;
57605
+ var styleCss$1$6 = i$6`#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)}`;
57454
57606
 
57455
57607
  var tokenCss$3 = i$6`: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)}`;
57456
57608
 
@@ -58456,6 +58608,13 @@ class AuroCounterGroup extends AuroElement$4 {
58456
58608
  */
58457
58609
  configureDropdownCounters() {
58458
58610
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
58611
+
58612
+ // Counter rows are slotted into the bib through multiple shadow roots
58613
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
58614
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
58615
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
58616
+ this.dropdown.noHideOnThisFocusLoss = true;
58617
+
58459
58618
  this.dropdown.requestUpdate();
58460
58619
 
58461
58620
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -59992,7 +60151,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
59992
60151
  }
59993
60152
  };
59994
60153
 
59995
- var formkitVersion$5 = '202606291643';
60154
+ var formkitVersion$5 = '202606292034';
59996
60155
 
59997
60156
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
59998
60157
  // See LICENSE in the project root for license information.
@@ -61742,7 +61901,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
61742
61901
  }
61743
61902
  };
61744
61903
 
61745
- var formkitVersion$4 = '202606291643';
61904
+ var formkitVersion$4 = '202606292034';
61746
61905
 
61747
61906
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61748
61907
  // See LICENSE in the project root for license information.
@@ -66957,7 +67116,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
66957
67116
  }
66958
67117
  };
66959
67118
 
66960
- var formkitVersion$2 = '202606291643';
67119
+ var formkitVersion$2 = '202606292034';
66961
67120
 
66962
67121
  let AuroElement$2$1 = class AuroElement extends i$3 {
66963
67122
  static get properties() {
@@ -68229,6 +68388,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
68229
68388
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
68230
68389
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
68231
68390
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
68391
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
68232
68392
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
68233
68393
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
68234
68394
  @focusin="${this.handleFocusin}"
@@ -78675,6 +78835,13 @@ class AuroInputUtilities {
78675
78835
  * @returns {string | undefined}
78676
78836
  */
78677
78837
  toFormattedValue(valueObject, format) {
78838
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
78839
+ // `format` argument has to fail gracefully rather than throw on
78840
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
78841
+ // as "no format → no display value".
78842
+ if (!format) {
78843
+ return undefined;
78844
+ }
78678
78845
  const normalizedFormat = format.toLowerCase();
78679
78846
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
78680
78847
 
@@ -78825,79 +78992,18 @@ class BaseInput extends AuroElement$1$1 {
78825
78992
  constructor() {
78826
78993
  super();
78827
78994
 
78828
- this.appearance = "default";
78829
- this.disabled = false;
78830
- this.layout = 'classic';
78831
- this.locale = 'en-US';
78832
- this.max = undefined;
78833
- this._maxObject = undefined;
78834
- this.maxLength = undefined;
78835
- this.min = undefined;
78836
- this._minObject = undefined;
78837
- this.minLength = undefined;
78838
- this.required = false;
78839
- this.onDark = false;
78840
- this.setCustomValidityForType = undefined;
78841
- this.size = 'lg';
78842
- this.shape = 'classic';
78843
- this.value = undefined;
78844
- this._valueObject = undefined;
78845
-
78846
- this._initializePrivateDefaults();
78847
- }
78848
-
78849
- /**
78850
- * Internal Defaults.
78851
- * @private
78852
- * @returns {void}
78853
- */
78854
- _initializePrivateDefaults() {
78995
+ // Single-source initialization. Alphabetized so duplicate or stale
78996
+ // defaults are immediately obvious on a diff. Every field is assigned
78997
+ // exactly once here (previously the constructor + the old
78998
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
78999
+ // fields and double-allocated `util` and `validation`, discarding the
79000
+ // first instance). `validation` is now allocated exactly once; `util`
79001
+ // is seeded here with an en-US default and then rebuilt in
79002
+ // `connectedCallback` once the consumer-resolved locale is available,
79003
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
79004
+ // during its own update cycle sees a populated util instance.
78855
79005
  this.activeLabel = false;
78856
- this.appearance = "default";
78857
- this.icon = false;
78858
- this.disabled = false;
78859
- this.dvInputOnly = false;
78860
- this.hideLabelVisually = false;
78861
- this.max = undefined;
78862
- this.maxLength = undefined;
78863
- this.min = undefined;
78864
- this.minLength = undefined;
78865
- this.noValidate = false;
78866
- this.onDark = false;
78867
- this.required = false;
78868
- this.setCustomValidityForType = undefined;
78869
-
78870
- // Used for storing raw values returned from input mask.
78871
- this._rawMaskValue = undefined;
78872
-
78873
- /**
78874
- * @private
78875
- */
78876
- this.layout = 'classic';
78877
-
78878
- /**
78879
- * @private
78880
- */
78881
- this.shape = 'classic';
78882
-
78883
- /**
78884
- * @private
78885
- */
78886
- this.size = 'lg';
78887
-
78888
- this.touched = false;
78889
- this.util = new AuroInputUtilities({
78890
- locale: "en-US",
78891
- format: this.format
78892
- });
78893
- this.validation = new AuroFormValidation$2();
78894
- this.inputIconName = undefined;
78895
- this.showPassword = false;
78896
- this.validationCCLength = undefined;
78897
- this.hasValue = false;
78898
- this.label = 'Input label is undefined';
78899
-
78900
-
79006
+ /** @private */
78901
79007
  this.allowedInputTypes = [
78902
79008
  "text",
78903
79009
  "number",
@@ -78906,7 +79012,8 @@ class BaseInput extends AuroElement$1$1 {
78906
79012
  "credit-card",
78907
79013
  "tel"
78908
79014
  ];
78909
- this.icon = false;
79015
+ this.appearance = "default";
79016
+ /** @private */
78910
79017
  this.dateFormatMap = {
78911
79018
  'mm/dd/yyyy': 'dateMMDDYYYY',
78912
79019
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -78923,27 +79030,57 @@ class BaseInput extends AuroElement$1$1 {
78923
79030
  'dd/mm': 'dateDDMM',
78924
79031
  'mm/dd': 'dateMMDD'
78925
79032
  };
79033
+ this.disabled = false;
79034
+ /** @private */
78926
79035
  this.domHandler = new DomHandler();
78927
79036
  this.dvInputOnly = false;
78928
79037
  this.hasValue = false;
79038
+ this.hideLabelVisually = false;
79039
+ this.icon = false;
79040
+ /** @private */
78929
79041
  this.inputIconName = undefined;
79042
+ /** @private */
78930
79043
  this.label = 'Input label is undefined';
79044
+ this.layout = 'classic';
79045
+ this.locale = 'en-US';
79046
+ this.max = undefined;
79047
+ this._maxObject = undefined;
79048
+ this.maxLength = undefined;
79049
+ this.min = undefined;
79050
+ this._minObject = undefined;
79051
+ this.minLength = undefined;
78931
79052
  this.noValidate = false;
78932
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
79053
+ this.onDark = false;
79054
+ // Raw values returned from the input mask before model normalization.
79055
+ this._rawMaskValue = undefined;
79056
+ this.required = false;
79057
+ this.setCustomValidityForType = undefined;
79058
+ // Credit Card is intentionally excluded — its mask manages the cursor
79059
+ // itself, and listing it here caused cursor placement issues in Safari.
79060
+ /** @private */
78933
79061
  this.setSelectionInputTypes = [
78934
79062
  "text",
78935
79063
  "password",
78936
79064
  "email"
78937
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
79065
+ ];
79066
+ this.shape = 'classic';
79067
+ /** @private */
78938
79068
  this.showPassword = false;
79069
+ this.size = 'lg';
78939
79070
  this.touched = false;
79071
+ /** @private */
78940
79072
  this.uniqueId = new UniqueId().create();
79073
+ /** @private */
78941
79074
  this.util = new AuroInputUtilities({
78942
79075
  locale: this.locale,
78943
79076
  format: this.format
78944
79077
  });
79078
+ /** @private */
78945
79079
  this.validation = new AuroFormValidation$2();
79080
+ /** @private */
78946
79081
  this.validationCCLength = undefined;
79082
+ this.value = undefined;
79083
+ this._valueObject = undefined;
78947
79084
  }
78948
79085
 
78949
79086
  // function to define props used within the scope of this component
@@ -79491,6 +79628,15 @@ class BaseInput extends AuroElement$1$1 {
79491
79628
 
79492
79629
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
79493
79630
 
79631
+ // Normalize the format token to lowercase so case-mixed values supplied
79632
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
79633
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
79634
+ // format silently misses the map and leaves `setCustomValidityForType`
79635
+ // unset.
79636
+ if (this.format) {
79637
+ this.format = this.format.toLowerCase();
79638
+ }
79639
+
79494
79640
  // use validity message override if declared when initializing the component
79495
79641
  if (this.hasAttribute('setCustomValidity')) {
79496
79642
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -79924,6 +80070,38 @@ class BaseInput extends AuroElement$1$1 {
79924
80070
  this.touched = true;
79925
80071
  this.validation.validate(this);
79926
80072
  }
80073
+
80074
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
80075
+ // update that can re-render the input and reset the native cursor; we
80076
+ // capture the caret position before that update commits and restore it
80077
+ // via `setSelectionRange` once the update has flushed. Gated on
80078
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
80079
+ // formatter manages the cursor itself) doesn't get a competing write.
80080
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
80081
+ // on input types that don't support text selection (number, email in
80082
+ // some browsers) throws InvalidStateError, which would crash all input
80083
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
80084
+ // the gated types currently support it, since the list is a public
80085
+ // property a consumer could mutate.
80086
+ if (this.setSelectionInputTypes.includes(this.type)) {
80087
+ let selectionStart;
80088
+ try {
80089
+ selectionStart = this.inputElement.selectionStart;
80090
+ } catch (error) { // eslint-disable-line no-unused-vars
80091
+ return;
80092
+ }
80093
+ if (typeof selectionStart !== 'number') {
80094
+ return;
80095
+ }
80096
+ this.updateComplete.then(() => {
80097
+ try {
80098
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
80099
+ } catch (error) { // eslint-disable-line no-unused-vars
80100
+ // Some input types (number/email in certain UAs) throw on
80101
+ // setSelectionRange; swallow and let the native cursor stand.
80102
+ }
80103
+ });
80104
+ }
79927
80105
  }
79928
80106
 
79929
80107
  /**
@@ -80550,7 +80728,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80550
80728
  }
80551
80729
  };
80552
80730
 
80553
- var formkitVersion$1$1 = '202606291643';
80731
+ var formkitVersion$1$1 = '202606292034';
80554
80732
 
80555
80733
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80556
80734
  // See LICENSE in the project root for license information.
@@ -81053,6 +81231,7 @@ class AuroInput extends BaseInput {
81053
81231
  <${this.buttonTag}
81054
81232
  @click="${this.handleClickShowPassword}"
81055
81233
  appearance="${this.onDark ? 'inverse' : this.appearance}"
81234
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
81056
81235
  class="notificationBtn passwordBtn"
81057
81236
  shape="circle"
81058
81237
  size="sm"
@@ -81126,25 +81305,29 @@ class AuroInput extends BaseInput {
81126
81305
  * @returns {html} - Returns HTML for the help text and error message.
81127
81306
  */
81128
81307
  renderHtmlHelpText() {
81308
+ // Single `<p>` with stable identity across validity transitions —
81309
+ // previously two distinct templates (valid vs invalid) caused Lit to
81310
+ // replace the node entirely on a flip, and VoiceOver wouldn't
81311
+ // re-announce because the live-region element it was watching had been
81312
+ // removed and a new one inserted. Keeping one node means the `role`,
81313
+ // `aria-live`, and text content all change in-place, which AT does
81314
+ // observe and announce.
81315
+ const isError = this.validity && this.validity !== 'valid';
81129
81316
  return u$c`
81130
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
81131
- ? u$c`
81132
- <${this.helpTextTag}
81133
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81134
- <p id="${this.uniqueId}" part="helpText">
81135
- <slot name="helpText">${this.getHelpText()}</slot>
81136
- </p>
81137
- </${this.helpTextTag}>
81138
- `
81139
- : u$c`
81140
- <${this.helpTextTag} error
81141
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81142
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
81143
- ${this.errorMessage}
81144
- </p>
81145
- </${this.helpTextTag}>
81146
- `
81147
- }
81317
+ <${this.helpTextTag}
81318
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
81319
+ ?error=${isError}>
81320
+ <p
81321
+ id="${this.uniqueId}"
81322
+ part="helpText"
81323
+ role="${o$4(isError ? 'alert' : undefined)}"
81324
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
81325
+ ${isError
81326
+ ? this.errorMessage
81327
+ : u$c`<slot name="helpText">${this.getHelpText()}</slot>`
81328
+ }
81329
+ </p>
81330
+ </${this.helpTextTag}>
81148
81331
  `;
81149
81332
  }
81150
81333
 
@@ -81276,7 +81459,7 @@ class AuroInput extends BaseInput {
81276
81459
 
81277
81460
  var colorCss$1$3 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
81278
81461
 
81279
- var styleCss$2$2 = i$6`#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)}`;
81462
+ var styleCss$2$2 = i$6`#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)}`;
81280
81463
 
81281
81464
  var tokenCss$1 = i$6`: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)}`;
81282
81465
 
@@ -81671,7 +81854,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
81671
81854
  }
81672
81855
  };
81673
81856
 
81674
- var formkitVersion$3 = '202606291643';
81857
+ var formkitVersion$3 = '202606292034';
81675
81858
 
81676
81859
  var styleCss$1$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
81677
81860
 
@@ -86484,19 +86667,28 @@ const selectKeyboardStrategy = {
86484
86667
  },
86485
86668
 
86486
86669
  End(component, evt, ctx) {
86487
- if (!ctx.isExpanded) {
86488
- return;
86489
- }
86490
86670
  evt.preventDefault();
86491
86671
  evt.stopPropagation();
86492
86672
  // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
86493
86673
  const lastOption = getEnabledOptions(component.menu).pop();
86494
- if (lastOption) {
86495
- component.menu.updateActiveOption(lastOption);
86674
+ if (!lastOption) {
86675
+ return;
86676
+ }
86677
+ // Pre-stash before show() so the auroDropdown-toggled handler's
86678
+ // `!optionActive` guard short-circuits the firstActive/selected fallback —
86679
+ // otherwise show() synchronously fires the handler and writes
86680
+ // aria-activedescendant once before we overwrite it.
86681
+ component.menu.updateActiveOption(lastOption);
86682
+ if (!ctx.isExpanded) {
86683
+ component.dropdown.show();
86496
86684
  }
86497
86685
  },
86498
86686
 
86499
86687
  Enter(component, evt, ctx) {
86688
+ // Prevent the keypress from bubbling to parent containers (e.g., forms)
86689
+ // which could interpret Enter as a submit. Matches APG select-only combobox
86690
+ // and native <select> behavior: Enter opens the listbox when closed, selects
86691
+ // the active option when open — it does not submit a parent form.
86500
86692
  evt.preventDefault();
86501
86693
  evt.stopPropagation();
86502
86694
  if (!ctx.isExpanded) {
@@ -86507,14 +86699,16 @@ const selectKeyboardStrategy = {
86507
86699
  },
86508
86700
 
86509
86701
  Home(component, evt, ctx) {
86510
- if (!ctx.isExpanded) {
86511
- return;
86512
- }
86513
86702
  evt.preventDefault();
86514
86703
  evt.stopPropagation();
86515
86704
  const [firstOption] = getEnabledOptions(component.menu);
86516
- if (firstOption) {
86517
- component.menu.updateActiveOption(firstOption);
86705
+ if (!firstOption) {
86706
+ return;
86707
+ }
86708
+ // See End() for why this must run before show().
86709
+ component.menu.updateActiveOption(firstOption);
86710
+ if (!ctx.isExpanded) {
86711
+ component.dropdown.show();
86518
86712
  }
86519
86713
  },
86520
86714
 
@@ -90462,7 +90656,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90462
90656
  }
90463
90657
  };
90464
90658
 
90465
- var formkitVersion$1 = '202606291643';
90659
+ var formkitVersion$1 = '202606292034';
90466
90660
 
90467
90661
  class AuroElement extends i$3 {
90468
90662
  static get properties() {
@@ -91734,6 +91928,7 @@ class AuroDropdown extends AuroElement {
91734
91928
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
91735
91929
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
91736
91930
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
91931
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
91737
91932
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
91738
91933
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
91739
91934
  @focusin="${this.handleFocusin}"
@@ -91860,7 +92055,7 @@ class AuroDropdown extends AuroElement {
91860
92055
 
91861
92056
  var colorCss$1 = i$6`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
91862
92057
 
91863
- var styleCss$2 = i$6`#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)}`;
92058
+ var styleCss$2 = i$6`#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)}`;
91864
92059
 
91865
92060
  var tokenCss = i$6`: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)}`;
91866
92061
 
@@ -92483,7 +92678,7 @@ class AuroHelpText extends i$3 {
92483
92678
  }
92484
92679
  }
92485
92680
 
92486
- var formkitVersion = '202606291643';
92681
+ var formkitVersion = '202606292034';
92487
92682
 
92488
92683
  var styleCss = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.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}`;
92489
92684
 
@@ -92815,14 +93010,6 @@ class AuroSelect extends AuroElement$1 {
92815
93010
  reflect: true
92816
93011
  },
92817
93012
 
92818
- /**
92819
- * @private
92820
- */
92821
- options: {
92822
- type: Array,
92823
- state: true
92824
- },
92825
-
92826
93013
  /**
92827
93014
  * Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
92828
93015
  * @type {HTMLElement|Array<HTMLElement>}
@@ -93110,16 +93297,68 @@ class AuroSelect extends AuroElement$1 {
93110
93297
  this.dropdown.dropdownWidth = this.customBibWidth;
93111
93298
  }
93112
93299
 
93113
- // Pass label text to the dropdown bib for accessible dialog naming
93114
- const labelElement = this.querySelector('span[slot="label"]');
93115
- if (labelElement) {
93116
- this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
93117
- }
93300
+ this._syncLabelText();
93118
93301
 
93119
93302
  // Exposes the CSS parts from the dropdown for styling
93120
93303
  this.dropdown.exposeCssParts();
93121
93304
  }
93122
93305
 
93306
+ /**
93307
+ * Reads the current label slot text and pushes it to the dropdown bib
93308
+ * (for dialog naming) and the menu (for listbox aria-label). Safe to call
93309
+ * before either child has been wired up — each branch self-guards.
93310
+ * @private
93311
+ */
93312
+ _syncLabelText() {
93313
+ const labelElement = this.querySelector('[slot="label"]');
93314
+ const text = labelElement ? labelElement.textContent.trim() : '';
93315
+ if (this.dropdown) {
93316
+ this.dropdown.bibDialogLabel = text || undefined;
93317
+ }
93318
+ if (this.menu) {
93319
+ if (text) {
93320
+ this.menu.setAttribute('aria-label', text);
93321
+ } else {
93322
+ this.menu.removeAttribute('aria-label');
93323
+ }
93324
+ }
93325
+ }
93326
+
93327
+ /**
93328
+ * Keeps the dialog/menu accessible names in sync when consumers mutate the
93329
+ * label slot at runtime (e.g., i18n locale swap). `slotchange` alone is
93330
+ * insufficient — it doesn't fire when textContent of an already-assigned
93331
+ * slotted node changes, which is the common case. We scope the observer to
93332
+ * the label node itself (not the whole host subtree) so option-content
93333
+ * mutations don't trigger label re-syncs, and re-target on `slotchange`
93334
+ * when consumers add or replace the label element.
93335
+ * @private
93336
+ */
93337
+ _observeLabelChanges() {
93338
+ if (this._labelObserver) return;
93339
+ this._labelObserver = new MutationObserver(() => this._syncLabelText());
93340
+
93341
+ const retarget = () => {
93342
+ this._labelObserver.disconnect();
93343
+ const labelElement = this.querySelector('[slot="label"]');
93344
+ if (labelElement) {
93345
+ this._labelObserver.observe(labelElement, {
93346
+ childList: true,
93347
+ subtree: true,
93348
+ characterData: true
93349
+ });
93350
+ }
93351
+ this._syncLabelText();
93352
+ };
93353
+
93354
+ retarget();
93355
+
93356
+ this._retargetLabelObserver = retarget;
93357
+ this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
93358
+ slot.addEventListener('slotchange', retarget);
93359
+ });
93360
+ }
93361
+
93123
93362
  /**
93124
93363
  * This will register this element with the browser.
93125
93364
  * @param {string} [name="auro-select"] - The name of element that you want to register to.
@@ -93270,11 +93509,7 @@ class AuroSelect extends AuroElement$1 {
93270
93509
  this.updateMenuShapeSize();
93271
93510
  this.setMenuValue(this.value);
93272
93511
 
93273
- // Set accessible name on the menu for screen readers based on the label slot content
93274
- const labelElement = this.querySelector('[slot="label"]');
93275
- if (labelElement) {
93276
- this.menu.setAttribute('aria-label', labelElement.textContent.trim());
93277
- }
93512
+ this._syncLabelText();
93278
93513
 
93279
93514
  if (this.multiSelect) {
93280
93515
  this.menu.multiSelect = this.multiSelect;
@@ -93286,8 +93521,21 @@ class AuroSelect extends AuroElement$1 {
93286
93521
  if (typeof this.menu.initItems === 'function') {
93287
93522
  this.menu.initItems();
93288
93523
  }
93289
- this.options = this.menu.options;
93290
93524
  this.updateOptionPositions();
93525
+ // renderNativeSelect reads this.menu.options, which the parent doesn't
93526
+ // observe — request an update so the hidden native <option> list reflects
93527
+ // the menu's options after initItems populates them.
93528
+ this.requestUpdate();
93529
+
93530
+ // Keep aria-setsize/aria-posinset (and the native <option> list) in sync
93531
+ // when the menu re-initializes its items — e.g., slotchange, async/lazy
93532
+ // loads, value-triggered re-init. Without this, stale set-size is
93533
+ // announced and the native select goes stale after dynamic mutations.
93534
+ this.menu.addEventListener('auroMenu-optionsChange', () => {
93535
+ this.updateOptionPositions();
93536
+ this.requestUpdate();
93537
+ });
93538
+
93291
93539
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
93292
93540
 
93293
93541
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
@@ -93306,11 +93554,26 @@ class AuroSelect extends AuroElement$1 {
93306
93554
  this.dropdown.setActiveDescendant(this.optionActive);
93307
93555
  }
93308
93556
 
93309
- // Announce the active option for screen readers
93310
- if (this.optionActive) {
93557
+ // Live-region announce only for [not selected] options. For activations
93558
+ // on an already-selected option — auto-activation on bib open, arrow
93559
+ // navigation back to the selection, or click in multiSelect — rely on
93560
+ // aria-activedescendant + aria-selected="true" to convey state per the
93561
+ // WAI-ARIA listbox pattern. This is intentional, not limited to the
93562
+ // initial activation on open: it also prevents a duplicate "X, selected"
93563
+ // when Enter on the active+selected option re-fires
93564
+ // auroMenu-selectedOption (see 03b289e39).
93565
+ if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
93311
93566
  const optionText = this.optionActive.textContent.trim();
93312
- const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
93313
- announceToScreenReader(this._getAnnouncementRoot(), `${optionText}${selectedState}`);
93567
+ const message = `${optionText}, not selected`;
93568
+ if (this.dropdown.isPopoverVisible) {
93569
+ announceToScreenReader(this._getAnnouncementRoot(), message);
93570
+ } else {
93571
+ // Typeahead-on-closed fires this event before `show()` flips
93572
+ // isPopoverVisible. Defer so the announcement targets the bib's
93573
+ // live region once the fullscreen <dialog> opens — otherwise it
93574
+ // lands in the host root, which is inert under the active modal.
93575
+ queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
93576
+ }
93314
93577
  }
93315
93578
 
93316
93579
  if (this.dropdown.isPopoverVisible) {
@@ -93319,6 +93582,7 @@ class AuroSelect extends AuroElement$1 {
93319
93582
  });
93320
93583
 
93321
93584
  this.menu.addEventListener('auroMenu-selectedOption', () => {
93585
+ const previousSelected = this.optionSelected;
93322
93586
 
93323
93587
  // Update the displayed value
93324
93588
  this.updateDisplayedValue();
@@ -93338,13 +93602,32 @@ class AuroSelect extends AuroElement$1 {
93338
93602
  this.dropdown.trigger.focus();
93339
93603
  }
93340
93604
 
93341
- // Announce the selection after the dropdown closes so it isn't
93342
- // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
93343
- const selectedValue = this.menu.currentLabel;
93344
- const announcementDelay = 300;
93345
- setTimeout(() => {
93346
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
93347
- }, announcementDelay);
93605
+ // Describe the actual change. In multiSelect, currentLabel is the
93606
+ // concatenated remaining list — announcing "{list}, selected" after a
93607
+ // deselect would falsely claim every remaining label was just added.
93608
+ // Diff previous vs next to recover the toggled option.
93609
+ let announcement = '';
93610
+ if (this.multiSelect) {
93611
+ const prev = Array.isArray(previousSelected) ? previousSelected : [];
93612
+ const removed = prev.find((opt) => !nextSelected.includes(opt));
93613
+ const added = nextSelected.find((opt) => !prev.includes(opt));
93614
+ if (removed) {
93615
+ announcement = `${removed.textContent.trim()}, not selected`;
93616
+ } else if (added) {
93617
+ announcement = `${added.textContent.trim()}, selected`;
93618
+ }
93619
+ } else {
93620
+ announcement = `${this.menu.currentLabel}, selected`;
93621
+ }
93622
+
93623
+ // Delay so the utterance isn't overridden by VoiceOver's "collapsed"
93624
+ // announcement from aria-expanded when the dropdown closes.
93625
+ if (announcement) {
93626
+ const announcementDelay = 300;
93627
+ setTimeout(() => {
93628
+ announceToScreenReader(this._getAnnouncementRoot(), announcement);
93629
+ }, announcementDelay);
93630
+ }
93348
93631
  });
93349
93632
  }
93350
93633
 
@@ -93442,24 +93725,32 @@ class AuroSelect extends AuroElement$1 {
93442
93725
 
93443
93726
  this.typeaheadBuffer += key;
93444
93727
 
93445
- const isRepeatedChar = this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
93728
+ // Prefer the literal buffer as a prefix per WAI-ARIA APG ("focus moves to the
93729
+ // next item with a name that starts with the string of characters typed").
93730
+ // Only fall back to single-char cycling when the repeated buffer has no
93731
+ // longer prefix match — e.g. "aa" cycles through ["Apple", "Apricot"] only
93732
+ // because no option starts with "aa".
93733
+ let match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
93446
93734
 
93447
- let match = null;
93735
+ const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
93448
93736
  if (isRepeatedChar) {
93449
93737
  const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
93450
93738
  if (matches.length) {
93451
93739
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
93452
93740
  match = matches[cycleIndex];
93453
93741
  }
93454
- } else {
93455
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
93456
93742
  }
93457
93743
 
93744
+ // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
93458
93745
  if (match) {
93746
+ // Pre-stash the match so the auroDropdown-toggled handler's `!optionActive`
93747
+ // guard short-circuits and skips the firstActive/selected fallback —
93748
+ // otherwise show() synchronously fires the handler, which writes
93749
+ // aria-activedescendant once before we overwrite it.
93750
+ this.menu.updateActiveOption(match);
93459
93751
  if (!this.dropdown.isPopoverVisible) {
93460
93752
  this.dropdown.show();
93461
93753
  }
93462
- this.menu.updateActiveOption(match);
93463
93754
  }
93464
93755
  }
93465
93756
 
@@ -93576,6 +93867,28 @@ class AuroSelect extends AuroElement$1 {
93576
93867
  disconnectedCallback() {
93577
93868
  super.disconnectedCallback();
93578
93869
  this._clearTypeaheadBuffer();
93870
+ if (this._labelObserver) {
93871
+ this._labelObserver.disconnect();
93872
+ this._labelObserver = null;
93873
+ }
93874
+ if (this._retargetLabelObserver && this.shadowRoot) {
93875
+ this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
93876
+ slot.removeEventListener('slotchange', this._retargetLabelObserver);
93877
+ });
93878
+ this._retargetLabelObserver = null;
93879
+ }
93880
+ }
93881
+
93882
+ connectedCallback() {
93883
+ super.connectedCallback();
93884
+ // Regression guard: firstUpdated() fires once per instance, so the label
93885
+ // observer setup it triggers does NOT re-run on reconnect. After a
93886
+ // disconnect+reconnect (reparent, SPA route swap), runtime label mutations
93887
+ // would silently stop syncing menu aria-label / dropdown.bibDialogLabel
93888
+ // unless we re-wire the observer here.
93889
+ if (this.hasUpdated) {
93890
+ this._observeLabelChanges();
93891
+ }
93579
93892
  }
93580
93893
 
93581
93894
  // lifecycle runs only after the element's DOM has been updated the first time
@@ -93586,6 +93899,7 @@ class AuroSelect extends AuroElement$1 {
93586
93899
  this.configureDropdown();
93587
93900
  this.configureMenu();
93588
93901
  this.configureSelect();
93902
+ this._observeLabelChanges();
93589
93903
  }
93590
93904
 
93591
93905
  setMenuValue(value) {
@@ -93718,25 +94032,18 @@ class AuroSelect extends AuroElement$1 {
93718
94032
  * @private
93719
94033
  */
93720
94034
  _handleNativeSelectChange(event) {
94035
+ // Hidden native <select> has no `multiple` attribute, so any change it fires
94036
+ // is a single raw value — applying it in multiSelect mode would collapse the
94037
+ // JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
94038
+ // form control even with aria-hidden/tabindex=-1.
94039
+ if (this.multiSelect) return;
94040
+
93721
94041
  const selectedOption = event.target.options[event.target.selectedIndex];
93722
94042
  if (!selectedOption) return;
93723
94043
  const selectedValue = selectedOption.value;
93724
94044
 
93725
- if (this.multiSelect) {
93726
- const currentArray = this.menu.value || [];
93727
-
93728
- if (!currentArray.includes(selectedValue)) {
93729
- this.value = JSON.stringify([
93730
- ...currentArray,
93731
- selectedValue
93732
- ]);
93733
- }
93734
- } else {
93735
- const currentValue = this.value;
93736
-
93737
- if (currentValue !== selectedValue) {
93738
- this.value = selectedValue;
93739
- }
94045
+ if (this.value !== selectedValue) {
94046
+ this.value = selectedValue;
93740
94047
  }
93741
94048
  }
93742
94049