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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/components/bibtemplate/dist/index.js +1 -1
  2. package/components/bibtemplate/dist/registered.js +1 -1
  3. package/components/checkbox/demo/customize.min.js +1 -1
  4. package/components/checkbox/demo/getting-started.min.js +1 -1
  5. package/components/checkbox/demo/index.min.js +1 -1
  6. package/components/checkbox/dist/index.js +1 -1
  7. package/components/checkbox/dist/registered.js +1 -1
  8. package/components/combobox/demo/customize.min.js +121 -97
  9. package/components/combobox/demo/getting-started.min.js +121 -97
  10. package/components/combobox/demo/index.min.js +121 -97
  11. package/components/combobox/dist/index.js +120 -96
  12. package/components/combobox/dist/registered.js +120 -96
  13. package/components/counter/demo/customize.min.js +11 -3
  14. package/components/counter/demo/index.min.js +11 -3
  15. package/components/counter/dist/index.js +11 -3
  16. package/components/counter/dist/registered.js +11 -3
  17. package/components/datepicker/demo/customize.min.js +263 -140
  18. package/components/datepicker/demo/index.min.js +263 -140
  19. package/components/datepicker/dist/auro-calendar.d.ts +30 -5
  20. package/components/datepicker/dist/index.js +263 -140
  21. package/components/datepicker/dist/registered.js +263 -140
  22. package/components/dropdown/demo/customize.min.js +2 -1
  23. package/components/dropdown/demo/getting-started.min.js +2 -1
  24. package/components/dropdown/demo/index.min.js +2 -1
  25. package/components/dropdown/dist/index.js +2 -1
  26. package/components/dropdown/dist/registered.js +2 -1
  27. package/components/form/demo/customize.min.js +701 -399
  28. package/components/form/demo/getting-started.min.js +701 -399
  29. package/components/form/demo/index.min.js +701 -399
  30. package/components/form/demo/registerDemoDeps.min.js +701 -399
  31. package/components/input/demo/api.md +5 -5
  32. package/components/input/demo/customize.md +8 -8
  33. package/components/input/demo/customize.min.js +116 -93
  34. package/components/input/demo/getting-started.min.js +116 -93
  35. package/components/input/demo/index.min.js +116 -93
  36. package/components/input/dist/base-input.d.ts +33 -44
  37. package/components/input/dist/index.js +129 -94
  38. package/components/input/dist/registered.js +116 -93
  39. package/components/radio/demo/customize.min.js +1 -1
  40. package/components/radio/demo/getting-started.min.js +1 -1
  41. package/components/radio/demo/index.min.js +1 -1
  42. package/components/radio/dist/index.js +1 -1
  43. package/components/radio/dist/registered.js +1 -1
  44. package/components/select/demo/customize.md +86 -0
  45. package/components/select/demo/customize.min.js +187 -63
  46. package/components/select/demo/getting-started.min.js +189 -110
  47. package/components/select/demo/index.min.js +187 -63
  48. package/components/select/demo/keyboard-behavior.md +18 -4
  49. package/components/select/dist/auro-select.d.ts +20 -8
  50. package/components/select/dist/index.js +187 -63
  51. package/components/select/dist/registered.js +187 -63
  52. package/custom-elements.json +2170 -1954
  53. package/package.json +1 -1
@@ -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 = '202606291631';
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 = '202606291631';
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,22 +29145,70 @@ class AuroCalendar extends RangeDatepicker {
29078
29145
  return;
29079
29146
  }
29080
29147
 
29081
-
29082
- /* eslint-disable function-paren-newline */
29083
- const activeCell = this.getAllFocusableCells().find(
29084
- (cell) => cell.day && cell.day.date === this.activeCellDate
29085
- );
29086
- /* eslint-enable function-paren-newline */
29087
-
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.
29153
+ const activeDate = this.activeCellDate;
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
+ }
29088
29163
  if (!activeCell) {
29089
29164
  return;
29090
29165
  }
29091
29166
 
29092
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
29093
- activeCell.scrollIntoView({
29094
- block: 'nearest',
29095
- behavior: prefersReducedMotion ? 'instant' : 'smooth'
29096
- });
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
+ }
29097
29212
  }
29098
29213
 
29099
29214
  /**
@@ -29383,7 +29498,7 @@ class AuroCalendar extends RangeDatepicker {
29383
29498
  </div>
29384
29499
  </div>
29385
29500
 
29386
- <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
29501
+ <div class="calendarWrapper">
29387
29502
  <div class="calendarNavButtons">
29388
29503
  ${this.showPrevMonthBtn ? u$c`
29389
29504
  <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
@@ -33281,7 +33396,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33281
33396
  }
33282
33397
  };
33283
33398
 
33284
- var formkitVersion$1$3 = '202606291631';
33399
+ var formkitVersion$1$3 = '202606292034';
33285
33400
 
33286
33401
  let AuroElement$2$2 = class AuroElement extends i$3 {
33287
33402
  static get properties() {
@@ -34553,6 +34668,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34553
34668
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
34554
34669
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
34555
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)}"
34556
34672
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
34557
34673
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
34558
34674
  @focusin="${this.handleFocusin}"
@@ -44999,6 +45115,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
44999
45115
  * @returns {string | undefined}
45000
45116
  */
45001
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
+ }
45002
45125
  const normalizedFormat = format.toLowerCase();
45003
45126
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
45004
45127
 
@@ -45149,79 +45272,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45149
45272
  constructor() {
45150
45273
  super();
45151
45274
 
45152
- this.appearance = "default";
45153
- this.disabled = false;
45154
- this.layout = 'classic';
45155
- this.locale = 'en-US';
45156
- this.max = undefined;
45157
- this._maxObject = undefined;
45158
- this.maxLength = undefined;
45159
- this.min = undefined;
45160
- this._minObject = undefined;
45161
- this.minLength = undefined;
45162
- this.required = false;
45163
- this.onDark = false;
45164
- this.setCustomValidityForType = undefined;
45165
- this.size = 'lg';
45166
- this.shape = 'classic';
45167
- this.value = undefined;
45168
- this._valueObject = undefined;
45169
-
45170
- this._initializePrivateDefaults();
45171
- }
45172
-
45173
- /**
45174
- * Internal Defaults.
45175
- * @private
45176
- * @returns {void}
45177
- */
45178
- _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.
45179
45285
  this.activeLabel = false;
45180
- this.appearance = "default";
45181
- this.icon = false;
45182
- this.disabled = false;
45183
- this.dvInputOnly = false;
45184
- this.hideLabelVisually = false;
45185
- this.max = undefined;
45186
- this.maxLength = undefined;
45187
- this.min = undefined;
45188
- this.minLength = undefined;
45189
- this.noValidate = false;
45190
- this.onDark = false;
45191
- this.required = false;
45192
- this.setCustomValidityForType = undefined;
45193
-
45194
- // Used for storing raw values returned from input mask.
45195
- this._rawMaskValue = undefined;
45196
-
45197
- /**
45198
- * @private
45199
- */
45200
- this.layout = 'classic';
45201
-
45202
- /**
45203
- * @private
45204
- */
45205
- this.shape = 'classic';
45206
-
45207
- /**
45208
- * @private
45209
- */
45210
- this.size = 'lg';
45211
-
45212
- this.touched = false;
45213
- this.util = new AuroInputUtilities$2({
45214
- locale: "en-US",
45215
- format: this.format
45216
- });
45217
- this.validation = new AuroFormValidation$6();
45218
- this.inputIconName = undefined;
45219
- this.showPassword = false;
45220
- this.validationCCLength = undefined;
45221
- this.hasValue = false;
45222
- this.label = 'Input label is undefined';
45223
-
45224
-
45286
+ /** @private */
45225
45287
  this.allowedInputTypes = [
45226
45288
  "text",
45227
45289
  "number",
@@ -45230,7 +45292,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45230
45292
  "credit-card",
45231
45293
  "tel"
45232
45294
  ];
45233
- this.icon = false;
45295
+ this.appearance = "default";
45296
+ /** @private */
45234
45297
  this.dateFormatMap = {
45235
45298
  'mm/dd/yyyy': 'dateMMDDYYYY',
45236
45299
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -45247,27 +45310,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45247
45310
  'dd/mm': 'dateDDMM',
45248
45311
  'mm/dd': 'dateMMDD'
45249
45312
  };
45313
+ this.disabled = false;
45314
+ /** @private */
45250
45315
  this.domHandler = new DomHandler$2();
45251
45316
  this.dvInputOnly = false;
45252
45317
  this.hasValue = false;
45318
+ this.hideLabelVisually = false;
45319
+ this.icon = false;
45320
+ /** @private */
45253
45321
  this.inputIconName = undefined;
45322
+ /** @private */
45254
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;
45255
45332
  this.noValidate = false;
45256
- 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 */
45257
45341
  this.setSelectionInputTypes = [
45258
45342
  "text",
45259
45343
  "password",
45260
45344
  "email"
45261
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
45345
+ ];
45346
+ this.shape = 'classic';
45347
+ /** @private */
45262
45348
  this.showPassword = false;
45349
+ this.size = 'lg';
45263
45350
  this.touched = false;
45351
+ /** @private */
45264
45352
  this.uniqueId = new UniqueId$1().create();
45353
+ /** @private */
45265
45354
  this.util = new AuroInputUtilities$2({
45266
45355
  locale: this.locale,
45267
45356
  format: this.format
45268
45357
  });
45358
+ /** @private */
45269
45359
  this.validation = new AuroFormValidation$6();
45360
+ /** @private */
45270
45361
  this.validationCCLength = undefined;
45362
+ this.value = undefined;
45363
+ this._valueObject = undefined;
45271
45364
  }
45272
45365
 
45273
45366
  // function to define props used within the scope of this component
@@ -45815,6 +45908,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45815
45908
 
45816
45909
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
45817
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
+
45818
45920
  // use validity message override if declared when initializing the component
45819
45921
  if (this.hasAttribute('setCustomValidity')) {
45820
45922
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -46248,6 +46350,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46248
46350
  this.touched = true;
46249
46351
  this.validation.validate(this);
46250
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
+ }
46251
46385
  }
46252
46386
 
46253
46387
  /**
@@ -46874,7 +47008,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
46874
47008
  }
46875
47009
  };
46876
47010
 
46877
- var formkitVersion$7 = '202606291631';
47011
+ var formkitVersion$7 = '202606292034';
46878
47012
 
46879
47013
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46880
47014
  // See LICENSE in the project root for license information.
@@ -47377,6 +47511,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47377
47511
  <${this.buttonTag}
47378
47512
  @click="${this.handleClickShowPassword}"
47379
47513
  appearance="${this.onDark ? 'inverse' : this.appearance}"
47514
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
47380
47515
  class="notificationBtn passwordBtn"
47381
47516
  shape="circle"
47382
47517
  size="sm"
@@ -47450,25 +47585,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47450
47585
  * @returns {html} - Returns HTML for the help text and error message.
47451
47586
  */
47452
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';
47453
47596
  return u$c`
47454
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
47455
- ? u$c`
47456
- <${this.helpTextTag}
47457
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47458
- <p id="${this.uniqueId}" part="helpText">
47459
- <slot name="helpText">${this.getHelpText()}</slot>
47460
- </p>
47461
- </${this.helpTextTag}>
47462
- `
47463
- : u$c`
47464
- <${this.helpTextTag} error
47465
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47466
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
47467
- ${this.errorMessage}
47468
- </p>
47469
- </${this.helpTextTag}>
47470
- `
47471
- }
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}>
47472
47611
  `;
47473
47612
  }
47474
47613
 
@@ -47615,6 +47754,15 @@ function formatISODate(isoStr, format) {
47615
47754
  try {
47616
47755
  const date = dateFormatter$2.stringToDateInstance(isoStr);
47617
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
+
47618
47766
  const year = String(date.getFullYear()).padStart(4, '0');
47619
47767
  const month = String(date.getMonth() + 1).padStart(2, '0');
47620
47768
  const day = String(date.getDate()).padStart(2, '0');
@@ -47625,7 +47773,10 @@ function formatISODate(isoStr, format) {
47625
47773
  replace(/mm/iu, month).
47626
47774
  replace(/dd/iu, day);
47627
47775
  } catch (err) {
47628
- // 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.
47629
47780
  return undefined;
47630
47781
  }
47631
47782
  }
@@ -49334,11 +49485,14 @@ class AuroDatePicker extends AuroElement$5 {
49334
49485
  this.calendar.announceSelection(announcement);
49335
49486
  }, 500);
49336
49487
 
49337
- // On mobile fullscreen, scroll the month list so the active cell's
49338
- // month is visible. Without this, the list stays scrolled to the
49339
- // calendarStartDate month which may be far from the active cell.
49340
- 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) {
49341
49494
  this.calendar.scrollToActiveCell();
49495
+ this.forceScrollOnNextMobileCalendarRender = false;
49342
49496
  }
49343
49497
  } else if (attempts < MAX_ATTEMPTS) {
49344
49498
  requestAnimationFrame(tryFocus);
@@ -49462,18 +49616,10 @@ class AuroDatePicker extends AuroElement$5 {
49462
49616
  }
49463
49617
  }
49464
49618
 
49465
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
49466
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
49467
-
49468
- // Since the calendar is not rendered until the dropdown is opened,
49469
- // and the auroDropdown-toggled event fires before the popover is actually open,
49470
- // we need to wait until the next frame to ensure the calendar is fully rendered
49471
- // and the area we're trying to scroll to is present in the DOM.
49472
- setTimeout(() => {
49473
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
49474
- this.forceScrollOnNextMobileCalendarRender = false;
49475
- }, 0);
49476
- }
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.
49477
49623
  }, { signal });
49478
49624
 
49479
49625
  // Handle responsive strategy changes while the dropdown is open
@@ -51729,7 +51875,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
51729
51875
  }
51730
51876
  };
51731
51877
 
51732
- var formkitVersion$1$2 = '202606291631';
51878
+ var formkitVersion$1$2 = '202606292034';
51733
51879
 
51734
51880
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51735
51881
  // See LICENSE in the project root for license information.
@@ -56057,7 +56203,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56057
56203
  }
56058
56204
  };
56059
56205
 
56060
- var formkitVersion$6 = '202606291631';
56206
+ var formkitVersion$6 = '202606292034';
56061
56207
 
56062
56208
  let AuroElement$1$2 = class AuroElement extends i$3 {
56063
56209
  static get properties() {
@@ -57329,6 +57475,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57329
57475
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
57330
57476
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
57331
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)}"
57332
57479
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
57333
57480
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
57334
57481
  @focusin="${this.handleFocusin}"
@@ -57455,7 +57602,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57455
57602
 
57456
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)}`;
57457
57604
 
57458
- 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)}`;
57459
57606
 
57460
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)}`;
57461
57608
 
@@ -58461,6 +58608,13 @@ class AuroCounterGroup extends AuroElement$4 {
58461
58608
  */
58462
58609
  configureDropdownCounters() {
58463
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
+
58464
58618
  this.dropdown.requestUpdate();
58465
58619
 
58466
58620
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -59997,7 +60151,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
59997
60151
  }
59998
60152
  };
59999
60153
 
60000
- var formkitVersion$5 = '202606291631';
60154
+ var formkitVersion$5 = '202606292034';
60001
60155
 
60002
60156
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60003
60157
  // See LICENSE in the project root for license information.
@@ -61747,7 +61901,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
61747
61901
  }
61748
61902
  };
61749
61903
 
61750
- var formkitVersion$4 = '202606291631';
61904
+ var formkitVersion$4 = '202606292034';
61751
61905
 
61752
61906
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61753
61907
  // See LICENSE in the project root for license information.
@@ -66962,7 +67116,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
66962
67116
  }
66963
67117
  };
66964
67118
 
66965
- var formkitVersion$2 = '202606291631';
67119
+ var formkitVersion$2 = '202606292034';
66966
67120
 
66967
67121
  let AuroElement$2$1 = class AuroElement extends i$3 {
66968
67122
  static get properties() {
@@ -68234,6 +68388,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
68234
68388
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
68235
68389
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
68236
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)}"
68237
68392
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
68238
68393
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
68239
68394
  @focusin="${this.handleFocusin}"
@@ -78680,6 +78835,13 @@ class AuroInputUtilities {
78680
78835
  * @returns {string | undefined}
78681
78836
  */
78682
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
+ }
78683
78845
  const normalizedFormat = format.toLowerCase();
78684
78846
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
78685
78847
 
@@ -78830,79 +78992,18 @@ class BaseInput extends AuroElement$1$1 {
78830
78992
  constructor() {
78831
78993
  super();
78832
78994
 
78833
- this.appearance = "default";
78834
- this.disabled = false;
78835
- this.layout = 'classic';
78836
- this.locale = 'en-US';
78837
- this.max = undefined;
78838
- this._maxObject = undefined;
78839
- this.maxLength = undefined;
78840
- this.min = undefined;
78841
- this._minObject = undefined;
78842
- this.minLength = undefined;
78843
- this.required = false;
78844
- this.onDark = false;
78845
- this.setCustomValidityForType = undefined;
78846
- this.size = 'lg';
78847
- this.shape = 'classic';
78848
- this.value = undefined;
78849
- this._valueObject = undefined;
78850
-
78851
- this._initializePrivateDefaults();
78852
- }
78853
-
78854
- /**
78855
- * Internal Defaults.
78856
- * @private
78857
- * @returns {void}
78858
- */
78859
- _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.
78860
79005
  this.activeLabel = false;
78861
- this.appearance = "default";
78862
- this.icon = false;
78863
- this.disabled = false;
78864
- this.dvInputOnly = false;
78865
- this.hideLabelVisually = false;
78866
- this.max = undefined;
78867
- this.maxLength = undefined;
78868
- this.min = undefined;
78869
- this.minLength = undefined;
78870
- this.noValidate = false;
78871
- this.onDark = false;
78872
- this.required = false;
78873
- this.setCustomValidityForType = undefined;
78874
-
78875
- // Used for storing raw values returned from input mask.
78876
- this._rawMaskValue = undefined;
78877
-
78878
- /**
78879
- * @private
78880
- */
78881
- this.layout = 'classic';
78882
-
78883
- /**
78884
- * @private
78885
- */
78886
- this.shape = 'classic';
78887
-
78888
- /**
78889
- * @private
78890
- */
78891
- this.size = 'lg';
78892
-
78893
- this.touched = false;
78894
- this.util = new AuroInputUtilities({
78895
- locale: "en-US",
78896
- format: this.format
78897
- });
78898
- this.validation = new AuroFormValidation$2();
78899
- this.inputIconName = undefined;
78900
- this.showPassword = false;
78901
- this.validationCCLength = undefined;
78902
- this.hasValue = false;
78903
- this.label = 'Input label is undefined';
78904
-
78905
-
79006
+ /** @private */
78906
79007
  this.allowedInputTypes = [
78907
79008
  "text",
78908
79009
  "number",
@@ -78911,7 +79012,8 @@ class BaseInput extends AuroElement$1$1 {
78911
79012
  "credit-card",
78912
79013
  "tel"
78913
79014
  ];
78914
- this.icon = false;
79015
+ this.appearance = "default";
79016
+ /** @private */
78915
79017
  this.dateFormatMap = {
78916
79018
  'mm/dd/yyyy': 'dateMMDDYYYY',
78917
79019
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -78928,27 +79030,57 @@ class BaseInput extends AuroElement$1$1 {
78928
79030
  'dd/mm': 'dateDDMM',
78929
79031
  'mm/dd': 'dateMMDD'
78930
79032
  };
79033
+ this.disabled = false;
79034
+ /** @private */
78931
79035
  this.domHandler = new DomHandler();
78932
79036
  this.dvInputOnly = false;
78933
79037
  this.hasValue = false;
79038
+ this.hideLabelVisually = false;
79039
+ this.icon = false;
79040
+ /** @private */
78934
79041
  this.inputIconName = undefined;
79042
+ /** @private */
78935
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;
78936
79052
  this.noValidate = false;
78937
- 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 */
78938
79061
  this.setSelectionInputTypes = [
78939
79062
  "text",
78940
79063
  "password",
78941
79064
  "email"
78942
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
79065
+ ];
79066
+ this.shape = 'classic';
79067
+ /** @private */
78943
79068
  this.showPassword = false;
79069
+ this.size = 'lg';
78944
79070
  this.touched = false;
79071
+ /** @private */
78945
79072
  this.uniqueId = new UniqueId().create();
79073
+ /** @private */
78946
79074
  this.util = new AuroInputUtilities({
78947
79075
  locale: this.locale,
78948
79076
  format: this.format
78949
79077
  });
79078
+ /** @private */
78950
79079
  this.validation = new AuroFormValidation$2();
79080
+ /** @private */
78951
79081
  this.validationCCLength = undefined;
79082
+ this.value = undefined;
79083
+ this._valueObject = undefined;
78952
79084
  }
78953
79085
 
78954
79086
  // function to define props used within the scope of this component
@@ -79496,6 +79628,15 @@ class BaseInput extends AuroElement$1$1 {
79496
79628
 
79497
79629
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
79498
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
+
79499
79640
  // use validity message override if declared when initializing the component
79500
79641
  if (this.hasAttribute('setCustomValidity')) {
79501
79642
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -79929,6 +80070,38 @@ class BaseInput extends AuroElement$1$1 {
79929
80070
  this.touched = true;
79930
80071
  this.validation.validate(this);
79931
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
+ }
79932
80105
  }
79933
80106
 
79934
80107
  /**
@@ -80555,7 +80728,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80555
80728
  }
80556
80729
  };
80557
80730
 
80558
- var formkitVersion$1$1 = '202606291631';
80731
+ var formkitVersion$1$1 = '202606292034';
80559
80732
 
80560
80733
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80561
80734
  // See LICENSE in the project root for license information.
@@ -81058,6 +81231,7 @@ class AuroInput extends BaseInput {
81058
81231
  <${this.buttonTag}
81059
81232
  @click="${this.handleClickShowPassword}"
81060
81233
  appearance="${this.onDark ? 'inverse' : this.appearance}"
81234
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
81061
81235
  class="notificationBtn passwordBtn"
81062
81236
  shape="circle"
81063
81237
  size="sm"
@@ -81131,25 +81305,29 @@ class AuroInput extends BaseInput {
81131
81305
  * @returns {html} - Returns HTML for the help text and error message.
81132
81306
  */
81133
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';
81134
81316
  return u$c`
81135
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
81136
- ? u$c`
81137
- <${this.helpTextTag}
81138
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81139
- <p id="${this.uniqueId}" part="helpText">
81140
- <slot name="helpText">${this.getHelpText()}</slot>
81141
- </p>
81142
- </${this.helpTextTag}>
81143
- `
81144
- : u$c`
81145
- <${this.helpTextTag} error
81146
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81147
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
81148
- ${this.errorMessage}
81149
- </p>
81150
- </${this.helpTextTag}>
81151
- `
81152
- }
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}>
81153
81331
  `;
81154
81332
  }
81155
81333
 
@@ -81281,7 +81459,7 @@ class AuroInput extends BaseInput {
81281
81459
 
81282
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)}`;
81283
81461
 
81284
- 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)}`;
81285
81463
 
81286
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)}`;
81287
81465
 
@@ -81676,7 +81854,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
81676
81854
  }
81677
81855
  };
81678
81856
 
81679
- var formkitVersion$3 = '202606291631';
81857
+ var formkitVersion$3 = '202606292034';
81680
81858
 
81681
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}`;
81682
81860
 
@@ -86489,19 +86667,28 @@ const selectKeyboardStrategy = {
86489
86667
  },
86490
86668
 
86491
86669
  End(component, evt, ctx) {
86492
- if (!ctx.isExpanded) {
86493
- return;
86494
- }
86495
86670
  evt.preventDefault();
86496
86671
  evt.stopPropagation();
86497
86672
  // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
86498
86673
  const lastOption = getEnabledOptions(component.menu).pop();
86499
- if (lastOption) {
86500
- 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();
86501
86684
  }
86502
86685
  },
86503
86686
 
86504
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.
86505
86692
  evt.preventDefault();
86506
86693
  evt.stopPropagation();
86507
86694
  if (!ctx.isExpanded) {
@@ -86512,14 +86699,16 @@ const selectKeyboardStrategy = {
86512
86699
  },
86513
86700
 
86514
86701
  Home(component, evt, ctx) {
86515
- if (!ctx.isExpanded) {
86516
- return;
86517
- }
86518
86702
  evt.preventDefault();
86519
86703
  evt.stopPropagation();
86520
86704
  const [firstOption] = getEnabledOptions(component.menu);
86521
- if (firstOption) {
86522
- 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();
86523
86712
  }
86524
86713
  },
86525
86714
 
@@ -90467,7 +90656,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90467
90656
  }
90468
90657
  };
90469
90658
 
90470
- var formkitVersion$1 = '202606291631';
90659
+ var formkitVersion$1 = '202606292034';
90471
90660
 
90472
90661
  class AuroElement extends i$3 {
90473
90662
  static get properties() {
@@ -91739,6 +91928,7 @@ class AuroDropdown extends AuroElement {
91739
91928
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
91740
91929
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
91741
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)}"
91742
91932
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
91743
91933
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
91744
91934
  @focusin="${this.handleFocusin}"
@@ -91865,7 +92055,7 @@ class AuroDropdown extends AuroElement {
91865
92055
 
91866
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)}`;
91867
92057
 
91868
- 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)}`;
91869
92059
 
91870
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)}`;
91871
92061
 
@@ -92488,7 +92678,7 @@ class AuroHelpText extends i$3 {
92488
92678
  }
92489
92679
  }
92490
92680
 
92491
- var formkitVersion = '202606291631';
92681
+ var formkitVersion = '202606292034';
92492
92682
 
92493
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}`;
92494
92684
 
@@ -92820,14 +93010,6 @@ class AuroSelect extends AuroElement$1 {
92820
93010
  reflect: true
92821
93011
  },
92822
93012
 
92823
- /**
92824
- * @private
92825
- */
92826
- options: {
92827
- type: Array,
92828
- state: true
92829
- },
92830
-
92831
93013
  /**
92832
93014
  * Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
92833
93015
  * @type {HTMLElement|Array<HTMLElement>}
@@ -93115,16 +93297,68 @@ class AuroSelect extends AuroElement$1 {
93115
93297
  this.dropdown.dropdownWidth = this.customBibWidth;
93116
93298
  }
93117
93299
 
93118
- // Pass label text to the dropdown bib for accessible dialog naming
93119
- const labelElement = this.querySelector('span[slot="label"]');
93120
- if (labelElement) {
93121
- this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
93122
- }
93300
+ this._syncLabelText();
93123
93301
 
93124
93302
  // Exposes the CSS parts from the dropdown for styling
93125
93303
  this.dropdown.exposeCssParts();
93126
93304
  }
93127
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
+
93128
93362
  /**
93129
93363
  * This will register this element with the browser.
93130
93364
  * @param {string} [name="auro-select"] - The name of element that you want to register to.
@@ -93275,11 +93509,7 @@ class AuroSelect extends AuroElement$1 {
93275
93509
  this.updateMenuShapeSize();
93276
93510
  this.setMenuValue(this.value);
93277
93511
 
93278
- // Set accessible name on the menu for screen readers based on the label slot content
93279
- const labelElement = this.querySelector('[slot="label"]');
93280
- if (labelElement) {
93281
- this.menu.setAttribute('aria-label', labelElement.textContent.trim());
93282
- }
93512
+ this._syncLabelText();
93283
93513
 
93284
93514
  if (this.multiSelect) {
93285
93515
  this.menu.multiSelect = this.multiSelect;
@@ -93291,8 +93521,21 @@ class AuroSelect extends AuroElement$1 {
93291
93521
  if (typeof this.menu.initItems === 'function') {
93292
93522
  this.menu.initItems();
93293
93523
  }
93294
- this.options = this.menu.options;
93295
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
+
93296
93539
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
93297
93540
 
93298
93541
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
@@ -93311,11 +93554,26 @@ class AuroSelect extends AuroElement$1 {
93311
93554
  this.dropdown.setActiveDescendant(this.optionActive);
93312
93555
  }
93313
93556
 
93314
- // Announce the active option for screen readers
93315
- 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')) {
93316
93566
  const optionText = this.optionActive.textContent.trim();
93317
- const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
93318
- 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
+ }
93319
93577
  }
93320
93578
 
93321
93579
  if (this.dropdown.isPopoverVisible) {
@@ -93324,6 +93582,7 @@ class AuroSelect extends AuroElement$1 {
93324
93582
  });
93325
93583
 
93326
93584
  this.menu.addEventListener('auroMenu-selectedOption', () => {
93585
+ const previousSelected = this.optionSelected;
93327
93586
 
93328
93587
  // Update the displayed value
93329
93588
  this.updateDisplayedValue();
@@ -93343,13 +93602,32 @@ class AuroSelect extends AuroElement$1 {
93343
93602
  this.dropdown.trigger.focus();
93344
93603
  }
93345
93604
 
93346
- // Announce the selection after the dropdown closes so it isn't
93347
- // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
93348
- const selectedValue = this.menu.currentLabel;
93349
- const announcementDelay = 300;
93350
- setTimeout(() => {
93351
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
93352
- }, 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
+ }
93353
93631
  });
93354
93632
  }
93355
93633
 
@@ -93447,24 +93725,32 @@ class AuroSelect extends AuroElement$1 {
93447
93725
 
93448
93726
  this.typeaheadBuffer += key;
93449
93727
 
93450
- 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));
93451
93734
 
93452
- let match = null;
93735
+ const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
93453
93736
  if (isRepeatedChar) {
93454
93737
  const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
93455
93738
  if (matches.length) {
93456
93739
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
93457
93740
  match = matches[cycleIndex];
93458
93741
  }
93459
- } else {
93460
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
93461
93742
  }
93462
93743
 
93744
+ // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
93463
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);
93464
93751
  if (!this.dropdown.isPopoverVisible) {
93465
93752
  this.dropdown.show();
93466
93753
  }
93467
- this.menu.updateActiveOption(match);
93468
93754
  }
93469
93755
  }
93470
93756
 
@@ -93581,6 +93867,28 @@ class AuroSelect extends AuroElement$1 {
93581
93867
  disconnectedCallback() {
93582
93868
  super.disconnectedCallback();
93583
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
+ }
93584
93892
  }
93585
93893
 
93586
93894
  // lifecycle runs only after the element's DOM has been updated the first time
@@ -93591,6 +93899,7 @@ class AuroSelect extends AuroElement$1 {
93591
93899
  this.configureDropdown();
93592
93900
  this.configureMenu();
93593
93901
  this.configureSelect();
93902
+ this._observeLabelChanges();
93594
93903
  }
93595
93904
 
93596
93905
  setMenuValue(value) {
@@ -93723,25 +94032,18 @@ class AuroSelect extends AuroElement$1 {
93723
94032
  * @private
93724
94033
  */
93725
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
+
93726
94041
  const selectedOption = event.target.options[event.target.selectedIndex];
93727
94042
  if (!selectedOption) return;
93728
94043
  const selectedValue = selectedOption.value;
93729
94044
 
93730
- if (this.multiSelect) {
93731
- const currentArray = this.menu.value || [];
93732
-
93733
- if (!currentArray.includes(selectedValue)) {
93734
- this.value = JSON.stringify([
93735
- ...currentArray,
93736
- selectedValue
93737
- ]);
93738
- }
93739
- } else {
93740
- const currentValue = this.value;
93741
-
93742
- if (currentValue !== selectedValue) {
93743
- this.value = selectedValue;
93744
- }
94045
+ if (this.value !== selectedValue) {
94046
+ this.value = selectedValue;
93745
94047
  }
93746
94048
  }
93747
94049