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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/components/bibtemplate/dist/index.js +1 -1
  2. package/components/bibtemplate/dist/registered.js +1 -1
  3. package/components/checkbox/demo/customize.min.js +1 -1
  4. package/components/checkbox/demo/getting-started.min.js +1 -1
  5. package/components/checkbox/demo/index.min.js +1 -1
  6. package/components/checkbox/dist/index.js +1 -1
  7. package/components/checkbox/dist/registered.js +1 -1
  8. package/components/combobox/demo/customize.min.js +121 -97
  9. package/components/combobox/demo/getting-started.min.js +121 -97
  10. package/components/combobox/demo/index.min.js +121 -97
  11. package/components/combobox/dist/index.js +120 -96
  12. package/components/combobox/dist/registered.js +120 -96
  13. package/components/counter/demo/customize.min.js +11 -3
  14. package/components/counter/demo/index.min.js +11 -3
  15. package/components/counter/dist/index.js +11 -3
  16. package/components/counter/dist/registered.js +11 -3
  17. package/components/datepicker/demo/customize.min.js +224 -119
  18. package/components/datepicker/demo/index.min.js +224 -119
  19. package/components/datepicker/dist/auro-calendar.d.ts +24 -7
  20. package/components/datepicker/dist/index.js +224 -119
  21. package/components/datepicker/dist/registered.js +224 -119
  22. package/components/dropdown/demo/customize.min.js +2 -1
  23. package/components/dropdown/demo/getting-started.min.js +2 -1
  24. package/components/dropdown/demo/index.min.js +2 -1
  25. package/components/dropdown/dist/index.js +2 -1
  26. package/components/dropdown/dist/registered.js +2 -1
  27. package/components/form/demo/customize.min.js +662 -378
  28. package/components/form/demo/getting-started.min.js +662 -378
  29. package/components/form/demo/index.min.js +662 -378
  30. package/components/form/demo/registerDemoDeps.min.js +662 -378
  31. package/components/input/demo/api.md +5 -5
  32. package/components/input/demo/customize.md +8 -8
  33. package/components/input/demo/customize.min.js +116 -93
  34. package/components/input/demo/getting-started.min.js +116 -93
  35. package/components/input/demo/index.min.js +116 -93
  36. package/components/input/dist/base-input.d.ts +33 -44
  37. package/components/input/dist/index.js +129 -94
  38. package/components/input/dist/registered.js +116 -93
  39. package/components/radio/demo/customize.min.js +1 -1
  40. package/components/radio/demo/getting-started.min.js +1 -1
  41. package/components/radio/demo/index.min.js +1 -1
  42. package/components/radio/dist/index.js +1 -1
  43. package/components/radio/dist/registered.js +1 -1
  44. package/components/select/demo/customize.min.js +187 -63
  45. package/components/select/demo/getting-started.min.js +187 -63
  46. package/components/select/demo/index.min.js +187 -63
  47. package/components/select/demo/keyboard-behavior.md +18 -4
  48. package/components/select/dist/auro-select.d.ts +20 -8
  49. package/components/select/dist/index.js +187 -63
  50. package/components/select/dist/registered.js +187 -63
  51. package/custom-elements.json +1940 -1734
  52. package/package.json +1 -1
@@ -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 = '202606291727';
13393
+ var formkitVersion$8 = '202606291930';
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
 
@@ -24868,7 +24898,7 @@ var snowflakeColors = i$6`:host([layout=snowflake]) [auro-dropdown]:not(:is([err
24868
24898
 
24869
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%}.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}`;
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{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:unset}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
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 = '202606291727';
27647
+ var formkitVersion$2$1 = '202606291930';
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}}
@@ -27720,8 +27750,10 @@ class AuroCalendar extends RangeDatepicker {
27720
27750
  this.activeCellDate = null;
27721
27751
 
27722
27752
  /**
27723
- * Cached reference to the active cell host, set by setActiveCell.
27724
- * Lets scrollToActiveCell skip a full cell scan on each arrow key.
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.
27725
27757
  * @private
27726
27758
  */
27727
27759
  this._activeCell = null;
@@ -28697,6 +28729,9 @@ class AuroCalendar extends RangeDatepicker {
28697
28729
  this.handleCellFocused({ detail: { date: fallback.day.date } });
28698
28730
  }
28699
28731
  }
28732
+ // Scroll AFTER the cross-month setActiveCell so the freshly
28733
+ // activated cell is what gets scrolled into view.
28734
+ this.scrollToActiveCell();
28700
28735
  // Re-focus grid wrapper after month change re-render
28701
28736
  this.focusActiveCell();
28702
28737
  });
@@ -28737,6 +28772,9 @@ class AuroCalendar extends RangeDatepicker {
28737
28772
  this.handleCellFocused({ detail: { date: nearest.day.date } });
28738
28773
  }
28739
28774
  }
28775
+ // Scroll AFTER the cross-month setActiveCell so the freshly
28776
+ // activated cell is what gets scrolled into view.
28777
+ this.scrollToActiveCell();
28740
28778
  this.focusActiveCell();
28741
28779
  });
28742
28780
  }
@@ -28771,7 +28809,6 @@ class AuroCalendar extends RangeDatepicker {
28771
28809
  const targetCell = allCells[targetIndex];
28772
28810
  this.setActiveCell(targetCell.day.date);
28773
28811
  this.scrollToActiveCell();
28774
- this.focusActiveCell();
28775
28812
  } else if (direction === 'next' && this.showNextMonthBtn) {
28776
28813
  // Navigate to next month and focus the computed next date.
28777
28814
  // Using the target date (fromDate + 1 day) instead of cells[0]
@@ -28792,7 +28829,6 @@ class AuroCalendar extends RangeDatepicker {
28792
28829
  const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
28793
28830
  if (target) {
28794
28831
  this.setActiveCell(target.day.date);
28795
- this.focusActiveCell();
28796
28832
  } else {
28797
28833
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
28798
28834
  // `cells[length - 1]` would land on the end of the new month,
@@ -28800,9 +28836,10 @@ class AuroCalendar extends RangeDatepicker {
28800
28836
  const fallback = this.pickNearestCell(cells, nextTs, 'next');
28801
28837
  if (fallback) {
28802
28838
  this.setActiveCell(fallback.day.date);
28803
- this.focusActiveCell();
28804
28839
  }
28805
28840
  }
28841
+ this.scrollToActiveCell();
28842
+ this.focusActiveCell();
28806
28843
  });
28807
28844
  } else if (direction === 'prev' && this.showPrevMonthBtn) {
28808
28845
  // Navigate to previous month and focus the computed previous date.
@@ -28821,7 +28858,6 @@ class AuroCalendar extends RangeDatepicker {
28821
28858
  const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
28822
28859
  if (target) {
28823
28860
  this.setActiveCell(target.day.date);
28824
- this.focusActiveCell();
28825
28861
  } else {
28826
28862
  // Same nearest-by-date fallback handleGridKeyDown uses — direct
28827
28863
  // `cells[0]` would land on the start of the previous month, far
@@ -28829,9 +28865,10 @@ class AuroCalendar extends RangeDatepicker {
28829
28865
  const fallback = this.pickNearestCell(cells, prevTs, 'prev');
28830
28866
  if (fallback) {
28831
28867
  this.setActiveCell(fallback.day.date);
28832
- this.focusActiveCell();
28833
28868
  }
28834
28869
  }
28870
+ this.scrollToActiveCell();
28871
+ this.focusActiveCell();
28835
28872
  });
28836
28873
  }
28837
28874
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
@@ -28864,7 +28901,6 @@ class AuroCalendar extends RangeDatepicker {
28864
28901
  const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
28865
28902
  if (target) {
28866
28903
  this.setActiveCell(target.day.date);
28867
- this.focusActiveCell();
28868
28904
  } else {
28869
28905
  // Same nearest-by-date fallback handleGridKeyDown uses — the
28870
28906
  // old direction-based `cells[0]`/`cells[length-1]` clamp
@@ -28872,9 +28908,10 @@ class AuroCalendar extends RangeDatepicker {
28872
28908
  const nearest = this.pickNearestCell(cells, targetDate, navDirection);
28873
28909
  if (nearest) {
28874
28910
  this.setActiveCell(nearest.day.date);
28875
- this.focusActiveCell();
28876
28911
  }
28877
28912
  }
28913
+ this.scrollToActiveCell();
28914
+ this.focusActiveCell();
28878
28915
  });
28879
28916
  }
28880
28917
  }
@@ -29075,11 +29112,26 @@ class AuroCalendar extends RangeDatepicker {
29075
29112
  }
29076
29113
 
29077
29114
  /**
29078
- * Scrolls the calendar to ensure the active cell is visible.
29079
- * Targets the cell itself (not its month) so that same-month vertical
29080
- * navigation in mobile fullscreen where a single month can exceed the
29081
- * viewport height scrolls to the target row. `block: 'nearest'` is a
29082
- * no-op when the cell is already in view, preserving desktop behavior.
29115
+ * Scrolls the calendar so the active cell is visible.
29116
+ *
29117
+ * Walks the flat tree (rendered, slot-aware) outward from the active
29118
+ * cell's button and calls `scrollBy` on every vertically-scrollable
29119
+ * ancestor by whatever delta still separates the cell from that
29120
+ * ancestor's viewport. Native `scrollIntoView` is not used because the
29121
+ * cell sits inside multiple nested scroll containers (the dropdown bib's
29122
+ * `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
29123
+ * scrolls one of them on its own, leaving the cell short of the
29124
+ * viewport in mobile fullscreen.
29125
+ *
29126
+ * Uses `behavior: 'instant'` so each `scrollBy` resolves synchronously,
29127
+ * letting the next iteration's `getBoundingClientRect` read post-scroll
29128
+ * positions accurately. This also satisfies `prefers-reduced-motion`
29129
+ * users by avoiding scroll animation altogether.
29130
+ *
29131
+ * The active cell is looked up from the cache populated by
29132
+ * `setActiveCell`. On a cache miss (stale or absent) the cache is
29133
+ * refreshed from a single full scan so subsequent calls stay on the
29134
+ * fast path.
29083
29135
  * @private
29084
29136
  * @returns {void}
29085
29137
  */
@@ -29107,11 +29159,51 @@ class AuroCalendar extends RangeDatepicker {
29107
29159
  return;
29108
29160
  }
29109
29161
 
29110
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
29111
- activeCell.scrollIntoView({
29112
- block: 'nearest',
29113
- behavior: prefersReducedMotion ? 'auto' : 'smooth'
29114
- });
29162
+ // Scroll the button inside the cell — it has concrete dimensions,
29163
+ // which avoids quirks when the cell host has display: inline / contents
29164
+ // / flex-without-explicit-size.
29165
+ const target = activeCell._cachedButton ||
29166
+ activeCell.shadowRoot?.querySelector('button.day') ||
29167
+ activeCell;
29168
+
29169
+ // parentNode follows the authored DOM tree and steps over shadow roots
29170
+ // via slot projection. A slotted element's visual parent is its
29171
+ // assignedSlot's parent (inside the host's shadow tree), not the host
29172
+ // itself. Without this hop, the walk skips right past #bodyContainer
29173
+ // and <dialog> and finds no scrollable ancestor at all.
29174
+ const flatParent = (current) => {
29175
+ if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
29176
+ return current.host || null;
29177
+ }
29178
+ if (current.assignedSlot) {
29179
+ return current.assignedSlot.parentNode;
29180
+ }
29181
+ return current.parentNode;
29182
+ };
29183
+
29184
+ let node = flatParent(target);
29185
+ while (node && node !== document && node !== window) {
29186
+ if (node.nodeType === Node.ELEMENT_NODE) {
29187
+ const { overflowY } = window.getComputedStyle(node);
29188
+ if (overflowY === 'auto' || overflowY === 'scroll') {
29189
+ const targetRect = target.getBoundingClientRect();
29190
+ const scrollerRect = node.getBoundingClientRect();
29191
+ let delta = 0;
29192
+ if (targetRect.top < scrollerRect.top) {
29193
+ delta = targetRect.top - scrollerRect.top;
29194
+ } else if (targetRect.bottom > scrollerRect.bottom) {
29195
+ delta = targetRect.bottom - scrollerRect.bottom;
29196
+ }
29197
+ if (delta !== 0) {
29198
+ node.scrollBy({
29199
+ top: delta,
29200
+ behavior: 'instant'
29201
+ });
29202
+ }
29203
+ }
29204
+ }
29205
+ node = flatParent(node);
29206
+ }
29115
29207
  }
29116
29208
 
29117
29209
  /**
@@ -33299,7 +33391,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
33299
33391
  }
33300
33392
  };
33301
33393
 
33302
- var formkitVersion$1$3 = '202606291727';
33394
+ var formkitVersion$1$3 = '202606291930';
33303
33395
 
33304
33396
  let AuroElement$2$2 = class AuroElement extends i$3 {
33305
33397
  static get properties() {
@@ -34571,6 +34663,7 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
34571
34663
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
34572
34664
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
34573
34665
  aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
34666
+ aria-haspopup="${o$4(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
34574
34667
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
34575
34668
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
34576
34669
  @focusin="${this.handleFocusin}"
@@ -45017,6 +45110,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
45017
45110
  * @returns {string | undefined}
45018
45111
  */
45019
45112
  toFormattedValue(valueObject, format) {
45113
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
45114
+ // `format` argument has to fail gracefully rather than throw on
45115
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
45116
+ // as "no format → no display value".
45117
+ if (!format) {
45118
+ return undefined;
45119
+ }
45020
45120
  const normalizedFormat = format.toLowerCase();
45021
45121
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
45022
45122
 
@@ -45167,79 +45267,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45167
45267
  constructor() {
45168
45268
  super();
45169
45269
 
45170
- this.appearance = "default";
45171
- this.disabled = false;
45172
- this.layout = 'classic';
45173
- this.locale = 'en-US';
45174
- this.max = undefined;
45175
- this._maxObject = undefined;
45176
- this.maxLength = undefined;
45177
- this.min = undefined;
45178
- this._minObject = undefined;
45179
- this.minLength = undefined;
45180
- this.required = false;
45181
- this.onDark = false;
45182
- this.setCustomValidityForType = undefined;
45183
- this.size = 'lg';
45184
- this.shape = 'classic';
45185
- this.value = undefined;
45186
- this._valueObject = undefined;
45187
-
45188
- this._initializePrivateDefaults();
45189
- }
45190
-
45191
- /**
45192
- * Internal Defaults.
45193
- * @private
45194
- * @returns {void}
45195
- */
45196
- _initializePrivateDefaults() {
45270
+ // Single-source initialization. Alphabetized so duplicate or stale
45271
+ // defaults are immediately obvious on a diff. Every field is assigned
45272
+ // exactly once here (previously the constructor + the old
45273
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
45274
+ // fields and double-allocated `util` and `validation`, discarding the
45275
+ // first instance). `validation` is now allocated exactly once; `util`
45276
+ // is seeded here with an en-US default and then rebuilt in
45277
+ // `connectedCallback` once the consumer-resolved locale is available,
45278
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
45279
+ // during its own update cycle sees a populated util instance.
45197
45280
  this.activeLabel = false;
45198
- this.appearance = "default";
45199
- this.icon = false;
45200
- this.disabled = false;
45201
- this.dvInputOnly = false;
45202
- this.hideLabelVisually = false;
45203
- this.max = undefined;
45204
- this.maxLength = undefined;
45205
- this.min = undefined;
45206
- this.minLength = undefined;
45207
- this.noValidate = false;
45208
- this.onDark = false;
45209
- this.required = false;
45210
- this.setCustomValidityForType = undefined;
45211
-
45212
- // Used for storing raw values returned from input mask.
45213
- this._rawMaskValue = undefined;
45214
-
45215
- /**
45216
- * @private
45217
- */
45218
- this.layout = 'classic';
45219
-
45220
- /**
45221
- * @private
45222
- */
45223
- this.shape = 'classic';
45224
-
45225
- /**
45226
- * @private
45227
- */
45228
- this.size = 'lg';
45229
-
45230
- this.touched = false;
45231
- this.util = new AuroInputUtilities$2({
45232
- locale: "en-US",
45233
- format: this.format
45234
- });
45235
- this.validation = new AuroFormValidation$6();
45236
- this.inputIconName = undefined;
45237
- this.showPassword = false;
45238
- this.validationCCLength = undefined;
45239
- this.hasValue = false;
45240
- this.label = 'Input label is undefined';
45241
-
45242
-
45281
+ /** @private */
45243
45282
  this.allowedInputTypes = [
45244
45283
  "text",
45245
45284
  "number",
@@ -45248,7 +45287,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45248
45287
  "credit-card",
45249
45288
  "tel"
45250
45289
  ];
45251
- this.icon = false;
45290
+ this.appearance = "default";
45291
+ /** @private */
45252
45292
  this.dateFormatMap = {
45253
45293
  'mm/dd/yyyy': 'dateMMDDYYYY',
45254
45294
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -45265,27 +45305,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45265
45305
  'dd/mm': 'dateDDMM',
45266
45306
  'mm/dd': 'dateMMDD'
45267
45307
  };
45308
+ this.disabled = false;
45309
+ /** @private */
45268
45310
  this.domHandler = new DomHandler$2();
45269
45311
  this.dvInputOnly = false;
45270
45312
  this.hasValue = false;
45313
+ this.hideLabelVisually = false;
45314
+ this.icon = false;
45315
+ /** @private */
45271
45316
  this.inputIconName = undefined;
45317
+ /** @private */
45272
45318
  this.label = 'Input label is undefined';
45319
+ this.layout = 'classic';
45320
+ this.locale = 'en-US';
45321
+ this.max = undefined;
45322
+ this._maxObject = undefined;
45323
+ this.maxLength = undefined;
45324
+ this.min = undefined;
45325
+ this._minObject = undefined;
45326
+ this.minLength = undefined;
45273
45327
  this.noValidate = false;
45274
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
45328
+ this.onDark = false;
45329
+ // Raw values returned from the input mask before model normalization.
45330
+ this._rawMaskValue = undefined;
45331
+ this.required = false;
45332
+ this.setCustomValidityForType = undefined;
45333
+ // Credit Card is intentionally excluded — its mask manages the cursor
45334
+ // itself, and listing it here caused cursor placement issues in Safari.
45335
+ /** @private */
45275
45336
  this.setSelectionInputTypes = [
45276
45337
  "text",
45277
45338
  "password",
45278
45339
  "email"
45279
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
45340
+ ];
45341
+ this.shape = 'classic';
45342
+ /** @private */
45280
45343
  this.showPassword = false;
45344
+ this.size = 'lg';
45281
45345
  this.touched = false;
45346
+ /** @private */
45282
45347
  this.uniqueId = new UniqueId$1().create();
45348
+ /** @private */
45283
45349
  this.util = new AuroInputUtilities$2({
45284
45350
  locale: this.locale,
45285
45351
  format: this.format
45286
45352
  });
45353
+ /** @private */
45287
45354
  this.validation = new AuroFormValidation$6();
45355
+ /** @private */
45288
45356
  this.validationCCLength = undefined;
45357
+ this.value = undefined;
45358
+ this._valueObject = undefined;
45289
45359
  }
45290
45360
 
45291
45361
  // function to define props used within the scope of this component
@@ -45833,6 +45903,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45833
45903
 
45834
45904
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
45835
45905
 
45906
+ // Normalize the format token to lowercase so case-mixed values supplied
45907
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
45908
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
45909
+ // format silently misses the map and leaves `setCustomValidityForType`
45910
+ // unset.
45911
+ if (this.format) {
45912
+ this.format = this.format.toLowerCase();
45913
+ }
45914
+
45836
45915
  // use validity message override if declared when initializing the component
45837
45916
  if (this.hasAttribute('setCustomValidity')) {
45838
45917
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -46266,6 +46345,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
46266
46345
  this.touched = true;
46267
46346
  this.validation.validate(this);
46268
46347
  }
46348
+
46349
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
46350
+ // update that can re-render the input and reset the native cursor; we
46351
+ // capture the caret position before that update commits and restore it
46352
+ // via `setSelectionRange` once the update has flushed. Gated on
46353
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
46354
+ // formatter manages the cursor itself) doesn't get a competing write.
46355
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
46356
+ // on input types that don't support text selection (number, email in
46357
+ // some browsers) throws InvalidStateError, which would crash all input
46358
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
46359
+ // the gated types currently support it, since the list is a public
46360
+ // property a consumer could mutate.
46361
+ if (this.setSelectionInputTypes.includes(this.type)) {
46362
+ let selectionStart;
46363
+ try {
46364
+ selectionStart = this.inputElement.selectionStart;
46365
+ } catch (error) { // eslint-disable-line no-unused-vars
46366
+ return;
46367
+ }
46368
+ if (typeof selectionStart !== 'number') {
46369
+ return;
46370
+ }
46371
+ this.updateComplete.then(() => {
46372
+ try {
46373
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
46374
+ } catch (error) { // eslint-disable-line no-unused-vars
46375
+ // Some input types (number/email in certain UAs) throw on
46376
+ // setSelectionRange; swallow and let the native cursor stand.
46377
+ }
46378
+ });
46379
+ }
46269
46380
  }
46270
46381
 
46271
46382
  /**
@@ -46892,7 +47003,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
46892
47003
  }
46893
47004
  };
46894
47005
 
46895
- var formkitVersion$7 = '202606291727';
47006
+ var formkitVersion$7 = '202606291930';
46896
47007
 
46897
47008
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46898
47009
  // See LICENSE in the project root for license information.
@@ -47395,6 +47506,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47395
47506
  <${this.buttonTag}
47396
47507
  @click="${this.handleClickShowPassword}"
47397
47508
  appearance="${this.onDark ? 'inverse' : this.appearance}"
47509
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
47398
47510
  class="notificationBtn passwordBtn"
47399
47511
  shape="circle"
47400
47512
  size="sm"
@@ -47468,25 +47580,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
47468
47580
  * @returns {html} - Returns HTML for the help text and error message.
47469
47581
  */
47470
47582
  renderHtmlHelpText() {
47583
+ // Single `<p>` with stable identity across validity transitions —
47584
+ // previously two distinct templates (valid vs invalid) caused Lit to
47585
+ // replace the node entirely on a flip, and VoiceOver wouldn't
47586
+ // re-announce because the live-region element it was watching had been
47587
+ // removed and a new one inserted. Keeping one node means the `role`,
47588
+ // `aria-live`, and text content all change in-place, which AT does
47589
+ // observe and announce.
47590
+ const isError = this.validity && this.validity !== 'valid';
47471
47591
  return u$c`
47472
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
47473
- ? u$c`
47474
- <${this.helpTextTag}
47475
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47476
- <p id="${this.uniqueId}" part="helpText">
47477
- <slot name="helpText">${this.getHelpText()}</slot>
47478
- </p>
47479
- </${this.helpTextTag}>
47480
- `
47481
- : u$c`
47482
- <${this.helpTextTag} error
47483
- appearance="${this.onDark ? 'inverse' : this.appearance}">
47484
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
47485
- ${this.errorMessage}
47486
- </p>
47487
- </${this.helpTextTag}>
47488
- `
47489
- }
47592
+ <${this.helpTextTag}
47593
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
47594
+ ?error=${isError}>
47595
+ <p
47596
+ id="${this.uniqueId}"
47597
+ part="helpText"
47598
+ role="${o$4(isError ? 'alert' : undefined)}"
47599
+ aria-live="${o$4(isError ? 'assertive' : undefined)}">
47600
+ ${isError
47601
+ ? this.errorMessage
47602
+ : u$c`<slot name="helpText">${this.getHelpText()}</slot>`
47603
+ }
47604
+ </p>
47605
+ </${this.helpTextTag}>
47490
47606
  `;
47491
47607
  }
47492
47608
 
@@ -47633,6 +47749,15 @@ function formatISODate(isoStr, format) {
47633
47749
  try {
47634
47750
  const date = dateFormatter$2.stringToDateInstance(isoStr);
47635
47751
 
47752
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
47753
+ // and `null` for non-string input — it does NOT throw. Without this
47754
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
47755
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
47756
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
47757
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
47758
+ return undefined;
47759
+ }
47760
+
47636
47761
  const year = String(date.getFullYear()).padStart(4, '0');
47637
47762
  const month = String(date.getMonth() + 1).padStart(2, '0');
47638
47763
  const day = String(date.getDate()).padStart(2, '0');
@@ -47643,7 +47768,10 @@ function formatISODate(isoStr, format) {
47643
47768
  replace(/mm/iu, month).
47644
47769
  replace(/dd/iu, day);
47645
47770
  } catch (err) {
47646
- // If the input string is not a valid date, return undefined
47771
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
47772
+ // (inside `stringToDateInstance`) could throw on pathological input
47773
+ // future-library-versions might introduce. Treat any thrown error as
47774
+ // "not a valid date" and return undefined.
47647
47775
  return undefined;
47648
47776
  }
47649
47777
  }
@@ -49488,8 +49616,8 @@ class AuroDatePicker extends AuroElement$5 {
49488
49616
  // we need to wait until the next frame to ensure the calendar is fully rendered
49489
49617
  // and the area we're trying to scroll to is present in the DOM.
49490
49618
  setTimeout(() => {
49491
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
49492
49619
  this.forceScrollOnNextMobileCalendarRender = false;
49620
+ this.calendar.scrollToActiveCell();
49493
49621
  }, 0);
49494
49622
  }
49495
49623
  }, { signal });
@@ -51747,7 +51875,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
51747
51875
  }
51748
51876
  };
51749
51877
 
51750
- var formkitVersion$1$2 = '202606291727';
51878
+ var formkitVersion$1$2 = '202606291930';
51751
51879
 
51752
51880
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51753
51881
  // See LICENSE in the project root for license information.
@@ -56075,7 +56203,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
56075
56203
  }
56076
56204
  };
56077
56205
 
56078
- var formkitVersion$6 = '202606291727';
56206
+ var formkitVersion$6 = '202606291930';
56079
56207
 
56080
56208
  let AuroElement$1$2 = class AuroElement extends i$3 {
56081
56209
  static get properties() {
@@ -57347,6 +57475,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57347
57475
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
57348
57476
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
57349
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)}"
57350
57479
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
57351
57480
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
57352
57481
  @focusin="${this.handleFocusin}"
@@ -57473,7 +57602,7 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
57473
57602
 
57474
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)}`;
57475
57604
 
57476
- 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)}`;
57477
57606
 
57478
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)}`;
57479
57608
 
@@ -58479,6 +58608,13 @@ class AuroCounterGroup extends AuroElement$4 {
58479
58608
  */
58480
58609
  configureDropdownCounters() {
58481
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
+
58482
58618
  this.dropdown.requestUpdate();
58483
58619
 
58484
58620
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -60015,7 +60151,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
60015
60151
  }
60016
60152
  };
60017
60153
 
60018
- var formkitVersion$5 = '202606291727';
60154
+ var formkitVersion$5 = '202606291930';
60019
60155
 
60020
60156
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
60021
60157
  // See LICENSE in the project root for license information.
@@ -61765,7 +61901,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
61765
61901
  }
61766
61902
  };
61767
61903
 
61768
- var formkitVersion$4 = '202606291727';
61904
+ var formkitVersion$4 = '202606291930';
61769
61905
 
61770
61906
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61771
61907
  // See LICENSE in the project root for license information.
@@ -66980,7 +67116,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
66980
67116
  }
66981
67117
  };
66982
67118
 
66983
- var formkitVersion$2 = '202606291727';
67119
+ var formkitVersion$2 = '202606291930';
66984
67120
 
66985
67121
  let AuroElement$2$1 = class AuroElement extends i$3 {
66986
67122
  static get properties() {
@@ -68252,6 +68388,7 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
68252
68388
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
68253
68389
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
68254
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)}"
68255
68392
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
68256
68393
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
68257
68394
  @focusin="${this.handleFocusin}"
@@ -78698,6 +78835,13 @@ class AuroInputUtilities {
78698
78835
  * @returns {string | undefined}
78699
78836
  */
78700
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
+ }
78701
78845
  const normalizedFormat = format.toLowerCase();
78702
78846
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
78703
78847
 
@@ -78848,79 +78992,18 @@ class BaseInput extends AuroElement$1$1 {
78848
78992
  constructor() {
78849
78993
  super();
78850
78994
 
78851
- this.appearance = "default";
78852
- this.disabled = false;
78853
- this.layout = 'classic';
78854
- this.locale = 'en-US';
78855
- this.max = undefined;
78856
- this._maxObject = undefined;
78857
- this.maxLength = undefined;
78858
- this.min = undefined;
78859
- this._minObject = undefined;
78860
- this.minLength = undefined;
78861
- this.required = false;
78862
- this.onDark = false;
78863
- this.setCustomValidityForType = undefined;
78864
- this.size = 'lg';
78865
- this.shape = 'classic';
78866
- this.value = undefined;
78867
- this._valueObject = undefined;
78868
-
78869
- this._initializePrivateDefaults();
78870
- }
78871
-
78872
- /**
78873
- * Internal Defaults.
78874
- * @private
78875
- * @returns {void}
78876
- */
78877
- _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.
78878
79005
  this.activeLabel = false;
78879
- this.appearance = "default";
78880
- this.icon = false;
78881
- this.disabled = false;
78882
- this.dvInputOnly = false;
78883
- this.hideLabelVisually = false;
78884
- this.max = undefined;
78885
- this.maxLength = undefined;
78886
- this.min = undefined;
78887
- this.minLength = undefined;
78888
- this.noValidate = false;
78889
- this.onDark = false;
78890
- this.required = false;
78891
- this.setCustomValidityForType = undefined;
78892
-
78893
- // Used for storing raw values returned from input mask.
78894
- this._rawMaskValue = undefined;
78895
-
78896
- /**
78897
- * @private
78898
- */
78899
- this.layout = 'classic';
78900
-
78901
- /**
78902
- * @private
78903
- */
78904
- this.shape = 'classic';
78905
-
78906
- /**
78907
- * @private
78908
- */
78909
- this.size = 'lg';
78910
-
78911
- this.touched = false;
78912
- this.util = new AuroInputUtilities({
78913
- locale: "en-US",
78914
- format: this.format
78915
- });
78916
- this.validation = new AuroFormValidation$2();
78917
- this.inputIconName = undefined;
78918
- this.showPassword = false;
78919
- this.validationCCLength = undefined;
78920
- this.hasValue = false;
78921
- this.label = 'Input label is undefined';
78922
-
78923
-
79006
+ /** @private */
78924
79007
  this.allowedInputTypes = [
78925
79008
  "text",
78926
79009
  "number",
@@ -78929,7 +79012,8 @@ class BaseInput extends AuroElement$1$1 {
78929
79012
  "credit-card",
78930
79013
  "tel"
78931
79014
  ];
78932
- this.icon = false;
79015
+ this.appearance = "default";
79016
+ /** @private */
78933
79017
  this.dateFormatMap = {
78934
79018
  'mm/dd/yyyy': 'dateMMDDYYYY',
78935
79019
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -78946,27 +79030,57 @@ class BaseInput extends AuroElement$1$1 {
78946
79030
  'dd/mm': 'dateDDMM',
78947
79031
  'mm/dd': 'dateMMDD'
78948
79032
  };
79033
+ this.disabled = false;
79034
+ /** @private */
78949
79035
  this.domHandler = new DomHandler();
78950
79036
  this.dvInputOnly = false;
78951
79037
  this.hasValue = false;
79038
+ this.hideLabelVisually = false;
79039
+ this.icon = false;
79040
+ /** @private */
78952
79041
  this.inputIconName = undefined;
79042
+ /** @private */
78953
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;
78954
79052
  this.noValidate = false;
78955
- 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 */
78956
79061
  this.setSelectionInputTypes = [
78957
79062
  "text",
78958
79063
  "password",
78959
79064
  "email"
78960
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
79065
+ ];
79066
+ this.shape = 'classic';
79067
+ /** @private */
78961
79068
  this.showPassword = false;
79069
+ this.size = 'lg';
78962
79070
  this.touched = false;
79071
+ /** @private */
78963
79072
  this.uniqueId = new UniqueId().create();
79073
+ /** @private */
78964
79074
  this.util = new AuroInputUtilities({
78965
79075
  locale: this.locale,
78966
79076
  format: this.format
78967
79077
  });
79078
+ /** @private */
78968
79079
  this.validation = new AuroFormValidation$2();
79080
+ /** @private */
78969
79081
  this.validationCCLength = undefined;
79082
+ this.value = undefined;
79083
+ this._valueObject = undefined;
78970
79084
  }
78971
79085
 
78972
79086
  // function to define props used within the scope of this component
@@ -79514,6 +79628,15 @@ class BaseInput extends AuroElement$1$1 {
79514
79628
 
79515
79629
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
79516
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
+
79517
79640
  // use validity message override if declared when initializing the component
79518
79641
  if (this.hasAttribute('setCustomValidity')) {
79519
79642
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -79947,6 +80070,38 @@ class BaseInput extends AuroElement$1$1 {
79947
80070
  this.touched = true;
79948
80071
  this.validation.validate(this);
79949
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
+ }
79950
80105
  }
79951
80106
 
79952
80107
  /**
@@ -80573,7 +80728,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
80573
80728
  }
80574
80729
  };
80575
80730
 
80576
- var formkitVersion$1$1 = '202606291727';
80731
+ var formkitVersion$1$1 = '202606291930';
80577
80732
 
80578
80733
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80579
80734
  // See LICENSE in the project root for license information.
@@ -81076,6 +81231,7 @@ class AuroInput extends BaseInput {
81076
81231
  <${this.buttonTag}
81077
81232
  @click="${this.handleClickShowPassword}"
81078
81233
  appearance="${this.onDark ? 'inverse' : this.appearance}"
81234
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
81079
81235
  class="notificationBtn passwordBtn"
81080
81236
  shape="circle"
81081
81237
  size="sm"
@@ -81149,25 +81305,29 @@ class AuroInput extends BaseInput {
81149
81305
  * @returns {html} - Returns HTML for the help text and error message.
81150
81306
  */
81151
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';
81152
81316
  return u$c`
81153
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
81154
- ? u$c`
81155
- <${this.helpTextTag}
81156
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81157
- <p id="${this.uniqueId}" part="helpText">
81158
- <slot name="helpText">${this.getHelpText()}</slot>
81159
- </p>
81160
- </${this.helpTextTag}>
81161
- `
81162
- : u$c`
81163
- <${this.helpTextTag} error
81164
- appearance="${this.onDark ? 'inverse' : this.appearance}">
81165
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
81166
- ${this.errorMessage}
81167
- </p>
81168
- </${this.helpTextTag}>
81169
- `
81170
- }
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}>
81171
81331
  `;
81172
81332
  }
81173
81333
 
@@ -81299,7 +81459,7 @@ class AuroInput extends BaseInput {
81299
81459
 
81300
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)}`;
81301
81461
 
81302
- 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)}`;
81303
81463
 
81304
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)}`;
81305
81465
 
@@ -81694,7 +81854,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
81694
81854
  }
81695
81855
  };
81696
81856
 
81697
- var formkitVersion$3 = '202606291727';
81857
+ var formkitVersion$3 = '202606291930';
81698
81858
 
81699
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}`;
81700
81860
 
@@ -86507,19 +86667,28 @@ const selectKeyboardStrategy = {
86507
86667
  },
86508
86668
 
86509
86669
  End(component, evt, ctx) {
86510
- if (!ctx.isExpanded) {
86511
- return;
86512
- }
86513
86670
  evt.preventDefault();
86514
86671
  evt.stopPropagation();
86515
86672
  // `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
86516
86673
  const lastOption = getEnabledOptions(component.menu).pop();
86517
- if (lastOption) {
86518
- 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();
86519
86684
  }
86520
86685
  },
86521
86686
 
86522
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.
86523
86692
  evt.preventDefault();
86524
86693
  evt.stopPropagation();
86525
86694
  if (!ctx.isExpanded) {
@@ -86530,14 +86699,16 @@ const selectKeyboardStrategy = {
86530
86699
  },
86531
86700
 
86532
86701
  Home(component, evt, ctx) {
86533
- if (!ctx.isExpanded) {
86534
- return;
86535
- }
86536
86702
  evt.preventDefault();
86537
86703
  evt.stopPropagation();
86538
86704
  const [firstOption] = getEnabledOptions(component.menu);
86539
- if (firstOption) {
86540
- 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();
86541
86712
  }
86542
86713
  },
86543
86714
 
@@ -90485,7 +90656,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
90485
90656
  }
90486
90657
  };
90487
90658
 
90488
- var formkitVersion$1 = '202606291727';
90659
+ var formkitVersion$1 = '202606291930';
90489
90660
 
90490
90661
  class AuroElement extends i$3 {
90491
90662
  static get properties() {
@@ -91757,6 +91928,7 @@ class AuroDropdown extends AuroElement {
91757
91928
  role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
91758
91929
  aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
91759
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)}"
91760
91932
  aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
91761
91933
  aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
91762
91934
  @focusin="${this.handleFocusin}"
@@ -91883,7 +92055,7 @@ class AuroDropdown extends AuroElement {
91883
92055
 
91884
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)}`;
91885
92057
 
91886
- 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)}`;
91887
92059
 
91888
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)}`;
91889
92061
 
@@ -92506,7 +92678,7 @@ class AuroHelpText extends i$3 {
92506
92678
  }
92507
92679
  }
92508
92680
 
92509
- var formkitVersion = '202606291727';
92681
+ var formkitVersion = '202606291930';
92510
92682
 
92511
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}`;
92512
92684
 
@@ -92838,14 +93010,6 @@ class AuroSelect extends AuroElement$1 {
92838
93010
  reflect: true
92839
93011
  },
92840
93012
 
92841
- /**
92842
- * @private
92843
- */
92844
- options: {
92845
- type: Array,
92846
- state: true
92847
- },
92848
-
92849
93013
  /**
92850
93014
  * Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
92851
93015
  * @type {HTMLElement|Array<HTMLElement>}
@@ -93133,16 +93297,68 @@ class AuroSelect extends AuroElement$1 {
93133
93297
  this.dropdown.dropdownWidth = this.customBibWidth;
93134
93298
  }
93135
93299
 
93136
- // Pass label text to the dropdown bib for accessible dialog naming
93137
- const labelElement = this.querySelector('span[slot="label"]');
93138
- if (labelElement) {
93139
- this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
93140
- }
93300
+ this._syncLabelText();
93141
93301
 
93142
93302
  // Exposes the CSS parts from the dropdown for styling
93143
93303
  this.dropdown.exposeCssParts();
93144
93304
  }
93145
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
+
93146
93362
  /**
93147
93363
  * This will register this element with the browser.
93148
93364
  * @param {string} [name="auro-select"] - The name of element that you want to register to.
@@ -93293,11 +93509,7 @@ class AuroSelect extends AuroElement$1 {
93293
93509
  this.updateMenuShapeSize();
93294
93510
  this.setMenuValue(this.value);
93295
93511
 
93296
- // Set accessible name on the menu for screen readers based on the label slot content
93297
- const labelElement = this.querySelector('[slot="label"]');
93298
- if (labelElement) {
93299
- this.menu.setAttribute('aria-label', labelElement.textContent.trim());
93300
- }
93512
+ this._syncLabelText();
93301
93513
 
93302
93514
  if (this.multiSelect) {
93303
93515
  this.menu.multiSelect = this.multiSelect;
@@ -93309,8 +93521,21 @@ class AuroSelect extends AuroElement$1 {
93309
93521
  if (typeof this.menu.initItems === 'function') {
93310
93522
  this.menu.initItems();
93311
93523
  }
93312
- this.options = this.menu.options;
93313
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
+
93314
93539
  this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
93315
93540
 
93316
93541
  this.menu.addEventListener("auroMenu-selectValueFailure", () => {
@@ -93329,11 +93554,26 @@ class AuroSelect extends AuroElement$1 {
93329
93554
  this.dropdown.setActiveDescendant(this.optionActive);
93330
93555
  }
93331
93556
 
93332
- // Announce the active option for screen readers
93333
- 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')) {
93334
93566
  const optionText = this.optionActive.textContent.trim();
93335
- const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
93336
- 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
+ }
93337
93577
  }
93338
93578
 
93339
93579
  if (this.dropdown.isPopoverVisible) {
@@ -93342,6 +93582,7 @@ class AuroSelect extends AuroElement$1 {
93342
93582
  });
93343
93583
 
93344
93584
  this.menu.addEventListener('auroMenu-selectedOption', () => {
93585
+ const previousSelected = this.optionSelected;
93345
93586
 
93346
93587
  // Update the displayed value
93347
93588
  this.updateDisplayedValue();
@@ -93361,13 +93602,32 @@ class AuroSelect extends AuroElement$1 {
93361
93602
  this.dropdown.trigger.focus();
93362
93603
  }
93363
93604
 
93364
- // Announce the selection after the dropdown closes so it isn't
93365
- // overridden by VoiceOver's "collapsed" announcement from aria-expanded.
93366
- const selectedValue = this.menu.currentLabel;
93367
- const announcementDelay = 300;
93368
- setTimeout(() => {
93369
- announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
93370
- }, 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
+ }
93371
93631
  });
93372
93632
  }
93373
93633
 
@@ -93465,24 +93725,32 @@ class AuroSelect extends AuroElement$1 {
93465
93725
 
93466
93726
  this.typeaheadBuffer += key;
93467
93727
 
93468
- 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));
93469
93734
 
93470
- let match = null;
93735
+ const isRepeatedChar = !match && this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
93471
93736
  if (isRepeatedChar) {
93472
93737
  const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
93473
93738
  if (matches.length) {
93474
93739
  const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
93475
93740
  match = matches[cycleIndex];
93476
93741
  }
93477
- } else {
93478
- match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
93479
93742
  }
93480
93743
 
93744
+ // Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
93481
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);
93482
93751
  if (!this.dropdown.isPopoverVisible) {
93483
93752
  this.dropdown.show();
93484
93753
  }
93485
- this.menu.updateActiveOption(match);
93486
93754
  }
93487
93755
  }
93488
93756
 
@@ -93599,6 +93867,28 @@ class AuroSelect extends AuroElement$1 {
93599
93867
  disconnectedCallback() {
93600
93868
  super.disconnectedCallback();
93601
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
+ }
93602
93892
  }
93603
93893
 
93604
93894
  // lifecycle runs only after the element's DOM has been updated the first time
@@ -93609,6 +93899,7 @@ class AuroSelect extends AuroElement$1 {
93609
93899
  this.configureDropdown();
93610
93900
  this.configureMenu();
93611
93901
  this.configureSelect();
93902
+ this._observeLabelChanges();
93612
93903
  }
93613
93904
 
93614
93905
  setMenuValue(value) {
@@ -93741,25 +94032,18 @@ class AuroSelect extends AuroElement$1 {
93741
94032
  * @private
93742
94033
  */
93743
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
+
93744
94041
  const selectedOption = event.target.options[event.target.selectedIndex];
93745
94042
  if (!selectedOption) return;
93746
94043
  const selectedValue = selectedOption.value;
93747
94044
 
93748
- if (this.multiSelect) {
93749
- const currentArray = this.menu.value || [];
93750
-
93751
- if (!currentArray.includes(selectedValue)) {
93752
- this.value = JSON.stringify([
93753
- ...currentArray,
93754
- selectedValue
93755
- ]);
93756
- }
93757
- } else {
93758
- const currentValue = this.value;
93759
-
93760
- if (currentValue !== selectedValue) {
93761
- this.value = selectedValue;
93762
- }
94045
+ if (this.value !== selectedValue) {
94046
+ this.value = selectedValue;
93763
94047
  }
93764
94048
  }
93765
94049