@aurodesignsystem-dev/auro-formkit 0.0.0-pr1588.1 → 0.0.0-pr1590.0

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 (46) hide show
  1. package/components/checkbox/demo/customize.min.js +4 -9
  2. package/components/checkbox/demo/getting-started.min.js +4 -9
  3. package/components/checkbox/demo/index.min.js +4 -9
  4. package/components/checkbox/dist/index.js +4 -9
  5. package/components/checkbox/dist/registered.js +4 -9
  6. package/components/combobox/demo/customize.min.js +40 -6
  7. package/components/combobox/demo/getting-started.min.js +40 -6
  8. package/components/combobox/demo/index.min.js +40 -6
  9. package/components/combobox/dist/index.js +40 -6
  10. package/components/combobox/dist/registered.js +40 -6
  11. package/components/counter/demo/customize.min.js +2 -2
  12. package/components/counter/demo/index.min.js +2 -2
  13. package/components/counter/dist/index.js +2 -2
  14. package/components/counter/dist/registered.js +2 -2
  15. package/components/datepicker/demo/customize.min.js +39 -5
  16. package/components/datepicker/demo/index.min.js +39 -5
  17. package/components/datepicker/dist/index.js +39 -5
  18. package/components/datepicker/dist/registered.js +39 -5
  19. package/components/dropdown/demo/customize.min.js +1 -1
  20. package/components/dropdown/demo/getting-started.min.js +38 -4
  21. package/components/dropdown/demo/index.min.js +1 -1
  22. package/components/dropdown/dist/index.js +1 -1
  23. package/components/dropdown/dist/registered.js +1 -1
  24. package/components/form/demo/customize.min.js +129 -40
  25. package/components/form/demo/getting-started.min.js +129 -40
  26. package/components/form/demo/index.min.js +129 -40
  27. package/components/form/demo/registerDemoDeps.min.js +129 -40
  28. package/components/input/demo/css-only.md +2 -2
  29. package/components/input/demo/customize.md +2 -2
  30. package/components/input/demo/customize.min.js +37 -3
  31. package/components/input/demo/getting-started.min.js +37 -3
  32. package/components/input/demo/index.min.js +37 -3
  33. package/components/input/demo/why-input.md +2 -3
  34. package/components/input/dist/index.js +37 -3
  35. package/components/input/dist/registered.js +37 -3
  36. package/components/radio/demo/customize.min.js +4 -10
  37. package/components/radio/demo/getting-started.min.js +4 -10
  38. package/components/radio/demo/index.min.js +4 -10
  39. package/components/radio/dist/index.js +4 -10
  40. package/components/radio/dist/registered.js +4 -10
  41. package/components/select/demo/customize.min.js +3 -5
  42. package/components/select/demo/getting-started.min.js +3 -5
  43. package/components/select/demo/index.min.js +3 -5
  44. package/components/select/dist/index.js +3 -5
  45. package/components/select/dist/registered.js +3 -5
  46. package/package.json +1 -1
@@ -11934,6 +11934,18 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11934
11934
  cardIcon: 'cc-dinersclub',
11935
11935
  maskFormat: "0000 000000 0000"
11936
11936
  },
11937
+ {
11938
+ // JCB is variable length (16-19 digits), like UnionPay, so it reuses the
11939
+ // formatMinLength/formatLength range machinery. The 35 prefix overlaps no
11940
+ // other brand (Amex is 34|37, Diners is 30[0-5]|36|38).
11941
+ name: 'JCB',
11942
+ regex: /^(?<num>35)\d{0}/u,
11943
+ formatMinLength: 19,
11944
+ formatLength: 23,
11945
+ errorMessage: CreditCardValidationMessage,
11946
+ cardIcon: 'cc-jcb',
11947
+ maskFormat: "0000 0000 0000 0000 000"
11948
+ },
11937
11949
  {
11938
11950
  name: 'Visa',
11939
11951
  regex: /^(?<num>4)\d{0}/u,
@@ -11965,6 +11977,20 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11965
11977
  errorMessage: CreditCardValidationMessage,
11966
11978
  cardIcon: 'cc-discover',
11967
11979
  maskFormat: "0000 0000 0000 0000"
11980
+ },
11981
+ {
11982
+ // China UnionPay is variable length (16-19 digits). It must come after
11983
+ // Discover so the last-match-wins loop below gives its 62 prefix
11984
+ // precedence over the generic `6` that resolves to Discover. 81 is used
11985
+ // by UnionPay cards issued outside mainland China and overlaps no other
11986
+ // brand. 60 is intentionally excluded (it overlaps real Discover 6011).
11987
+ name: 'China UnionPay',
11988
+ regex: /^(?<num>62|81)\d{0}/u,
11989
+ formatMinLength: 19,
11990
+ formatLength: 23,
11991
+ errorMessage: CreditCardValidationMessage,
11992
+ cardIcon: 'cc-unionpay',
11993
+ maskFormat: "0000 0000 0000 0000 000"
11968
11994
  }
11969
11995
  ];
11970
11996
 
@@ -11982,7 +12008,12 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
11982
12008
  }
11983
12009
  });
11984
12010
 
11985
- this.validationCCLength = type.formatLength;
12011
+ // Variable-length brands (both min and max defined, e.g. UnionPay) validate
12012
+ // against the minimum masked length so shorter-but-valid entries are not
12013
+ // flagged tooShort. Fixed-length brands keep their single formatLength.
12014
+ this.validationCCLength = type.formatMinLength && type.formatLength
12015
+ ? type.formatMinLength
12016
+ : type.formatLength;
11986
12017
 
11987
12018
  return type;
11988
12019
  }
@@ -12341,7 +12372,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
12341
12372
  }
12342
12373
  };
12343
12374
 
12344
- var formkitVersion$8 = '202608192007';
12375
+ var formkitVersion$8 = '202608201808';
12345
12376
 
12346
12377
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12347
12378
  // See LICENSE in the project root for license information.
@@ -12763,7 +12794,10 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
12763
12794
  */
12764
12795
  definePattern() {
12765
12796
  if (this.type === 'credit-card' && !this.noValidate && this.maxLength) {
12766
- return `.{${this.maxLength},${this.maxLength}}`;
12797
+ // Variable-length brands (e.g. UnionPay) set minLength, so accept a range;
12798
+ // fixed-length brands leave minLength undefined and keep an exact length.
12799
+ const minPatternLength = this.minLength || this.maxLength;
12800
+ return `.{${minPatternLength},${this.maxLength}}`;
12767
12801
  }
12768
12802
 
12769
12803
  return this.pattern;
@@ -26793,7 +26827,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
26793
26827
  }
26794
26828
  };
26795
26829
 
26796
- var formkitVersion$2$1 = '202608192007';
26830
+ var formkitVersion$2$1 = '202608201808';
26797
26831
 
26798
26832
  let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$4`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
26799
26833
  `,u$4$2=i$4`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -32524,7 +32558,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
32524
32558
  }
32525
32559
  };
32526
32560
 
32527
- var formkitVersion$1$3 = '202608192007';
32561
+ var formkitVersion$1$3 = '202608201808';
32528
32562
 
32529
32563
  let AuroElement$2$2 = class AuroElement extends i$2 {
32530
32564
  static get properties() {
@@ -45810,6 +45844,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45810
45844
  cardIcon: 'cc-dinersclub',
45811
45845
  maskFormat: "0000 000000 0000"
45812
45846
  },
45847
+ {
45848
+ // JCB is variable length (16-19 digits), like UnionPay, so it reuses the
45849
+ // formatMinLength/formatLength range machinery. The 35 prefix overlaps no
45850
+ // other brand (Amex is 34|37, Diners is 30[0-5]|36|38).
45851
+ name: 'JCB',
45852
+ regex: /^(?<num>35)\d{0}/u,
45853
+ formatMinLength: 19,
45854
+ formatLength: 23,
45855
+ errorMessage: CreditCardValidationMessage,
45856
+ cardIcon: 'cc-jcb',
45857
+ maskFormat: "0000 0000 0000 0000 000"
45858
+ },
45813
45859
  {
45814
45860
  name: 'Visa',
45815
45861
  regex: /^(?<num>4)\d{0}/u,
@@ -45841,6 +45887,20 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45841
45887
  errorMessage: CreditCardValidationMessage,
45842
45888
  cardIcon: 'cc-discover',
45843
45889
  maskFormat: "0000 0000 0000 0000"
45890
+ },
45891
+ {
45892
+ // China UnionPay is variable length (16-19 digits). It must come after
45893
+ // Discover so the last-match-wins loop below gives its 62 prefix
45894
+ // precedence over the generic `6` that resolves to Discover. 81 is used
45895
+ // by UnionPay cards issued outside mainland China and overlaps no other
45896
+ // brand. 60 is intentionally excluded (it overlaps real Discover 6011).
45897
+ name: 'China UnionPay',
45898
+ regex: /^(?<num>62|81)\d{0}/u,
45899
+ formatMinLength: 19,
45900
+ formatLength: 23,
45901
+ errorMessage: CreditCardValidationMessage,
45902
+ cardIcon: 'cc-unionpay',
45903
+ maskFormat: "0000 0000 0000 0000 000"
45844
45904
  }
45845
45905
  ];
45846
45906
 
@@ -45858,7 +45918,12 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
45858
45918
  }
45859
45919
  });
45860
45920
 
45861
- this.validationCCLength = type.formatLength;
45921
+ // Variable-length brands (both min and max defined, e.g. UnionPay) validate
45922
+ // against the minimum masked length so shorter-but-valid entries are not
45923
+ // flagged tooShort. Fixed-length brands keep their single formatLength.
45924
+ this.validationCCLength = type.formatMinLength && type.formatLength
45925
+ ? type.formatMinLength
45926
+ : type.formatLength;
45862
45927
 
45863
45928
  return type;
45864
45929
  }
@@ -46217,7 +46282,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
46217
46282
  }
46218
46283
  };
46219
46284
 
46220
- var formkitVersion$7 = '202608192007';
46285
+ var formkitVersion$7 = '202608201808';
46221
46286
 
46222
46287
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
46223
46288
  // See LICENSE in the project root for license information.
@@ -46639,7 +46704,10 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
46639
46704
  */
46640
46705
  definePattern() {
46641
46706
  if (this.type === 'credit-card' && !this.noValidate && this.maxLength) {
46642
- return `.{${this.maxLength},${this.maxLength}}`;
46707
+ // Variable-length brands (e.g. UnionPay) set minLength, so accept a range;
46708
+ // fixed-length brands leave minLength undefined and keep an exact length.
46709
+ const minPatternLength = this.minLength || this.maxLength;
46710
+ return `.{${minPatternLength},${this.maxLength}}`;
46643
46711
  }
46644
46712
 
46645
46713
  return this.pattern;
@@ -51219,7 +51287,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
51219
51287
  }
51220
51288
  };
51221
51289
 
51222
- var formkitVersion$1$2 = '202608192007';
51290
+ var formkitVersion$1$2 = '202608201808';
51223
51291
 
51224
51292
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
51225
51293
  // See LICENSE in the project root for license information.
@@ -55372,7 +55440,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
55372
55440
  }
55373
55441
  };
55374
55442
 
55375
- var formkitVersion$6 = '202608192007';
55443
+ var formkitVersion$6 = '202608201808';
55376
55444
 
55377
55445
  let AuroElement$1$2 = class AuroElement extends i$2 {
55378
55446
  static get properties() {
@@ -59435,7 +59503,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
59435
59503
  }
59436
59504
  };
59437
59505
 
59438
- var formkitVersion$5 = '202608192007';
59506
+ var formkitVersion$5 = '202608201808';
59439
59507
 
59440
59508
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
59441
59509
  // See LICENSE in the project root for license information.
@@ -59681,9 +59749,7 @@ class AuroRadioGroup extends i$2 {
59681
59749
 
59682
59750
  this.optionSelected = event.target;
59683
59751
 
59684
- if (!this.noValidate) {
59685
- this.validation.validate(this, this.optionSelected !== undefined);
59686
- }
59752
+ this.validation.validate(this, this.optionSelected !== undefined);
59687
59753
  }
59688
59754
 
59689
59755
  /**
@@ -59693,9 +59759,7 @@ class AuroRadioGroup extends i$2 {
59693
59759
  */
59694
59760
  handleRadioBlur() {
59695
59761
  this.touched = true;
59696
- if (!this.noValidate) {
59697
- this.validation.validate(this);
59698
- }
59762
+ this.validation.validate(this);
59699
59763
  }
59700
59764
 
59701
59765
  /**
@@ -59871,9 +59935,7 @@ class AuroRadioGroup extends i$2 {
59871
59935
  this.value = event.target.value;
59872
59936
  this.optionSelected = event.target;
59873
59937
 
59874
- if (!this.noValidate) {
59875
- this.validation.validate(this);
59876
- }
59938
+ this.validation.validate(this);
59877
59939
  }
59878
59940
 
59879
59941
  /**
@@ -61206,7 +61268,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
61206
61268
  }
61207
61269
  };
61208
61270
 
61209
- var formkitVersion$4 = '202608192007';
61271
+ var formkitVersion$4 = '202608201808';
61210
61272
 
61211
61273
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
61212
61274
  // See LICENSE in the project root for license information.
@@ -61426,9 +61488,7 @@ class AuroCheckboxGroup extends i$2 {
61426
61488
  composed: true,
61427
61489
  }));
61428
61490
 
61429
- if (!this.noValidate) {
61430
- this.validate(true);
61431
- }
61491
+ this.validate(true);
61432
61492
  }
61433
61493
 
61434
61494
  firstUpdated() {
@@ -61439,14 +61499,11 @@ class AuroCheckboxGroup extends i$2 {
61439
61499
  const checkFocusWithin = function(evt) {
61440
61500
  if (document.auroCheckboxGroupActive && !document.auroCheckboxGroupActive.contains(evt.target)) {
61441
61501
  // if focus has left the group, cleanup and validate
61442
- const group = document.auroCheckboxGroupActive;
61443
- group.focusWithin = false;
61502
+ document.auroCheckboxGroupActive.focusWithin = false;
61444
61503
  window.removeEventListener('focusin', checkFocusWithin);
61445
61504
  document.removeEventListener('click', checkFocusWithin);
61446
61505
  // execute the validation
61447
- if (!group.noValidate) {
61448
- group.validation.validate(group);
61449
- }
61506
+ document.auroCheckboxGroupActive.validation.validate(document.auroCheckboxGroupActive);
61450
61507
  }
61451
61508
  };
61452
61509
 
@@ -66530,7 +66587,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
66530
66587
  }
66531
66588
  };
66532
66589
 
66533
- var formkitVersion$2 = '202608192007';
66590
+ var formkitVersion$2 = '202608201808';
66534
66591
 
66535
66592
  let AuroElement$2$1 = class AuroElement extends i$2 {
66536
66593
  static get properties() {
@@ -79816,6 +79873,18 @@ class BaseInput extends AuroElement$1$1 {
79816
79873
  cardIcon: 'cc-dinersclub',
79817
79874
  maskFormat: "0000 000000 0000"
79818
79875
  },
79876
+ {
79877
+ // JCB is variable length (16-19 digits), like UnionPay, so it reuses the
79878
+ // formatMinLength/formatLength range machinery. The 35 prefix overlaps no
79879
+ // other brand (Amex is 34|37, Diners is 30[0-5]|36|38).
79880
+ name: 'JCB',
79881
+ regex: /^(?<num>35)\d{0}/u,
79882
+ formatMinLength: 19,
79883
+ formatLength: 23,
79884
+ errorMessage: CreditCardValidationMessage,
79885
+ cardIcon: 'cc-jcb',
79886
+ maskFormat: "0000 0000 0000 0000 000"
79887
+ },
79819
79888
  {
79820
79889
  name: 'Visa',
79821
79890
  regex: /^(?<num>4)\d{0}/u,
@@ -79847,6 +79916,20 @@ class BaseInput extends AuroElement$1$1 {
79847
79916
  errorMessage: CreditCardValidationMessage,
79848
79917
  cardIcon: 'cc-discover',
79849
79918
  maskFormat: "0000 0000 0000 0000"
79919
+ },
79920
+ {
79921
+ // China UnionPay is variable length (16-19 digits). It must come after
79922
+ // Discover so the last-match-wins loop below gives its 62 prefix
79923
+ // precedence over the generic `6` that resolves to Discover. 81 is used
79924
+ // by UnionPay cards issued outside mainland China and overlaps no other
79925
+ // brand. 60 is intentionally excluded (it overlaps real Discover 6011).
79926
+ name: 'China UnionPay',
79927
+ regex: /^(?<num>62|81)\d{0}/u,
79928
+ formatMinLength: 19,
79929
+ formatLength: 23,
79930
+ errorMessage: CreditCardValidationMessage,
79931
+ cardIcon: 'cc-unionpay',
79932
+ maskFormat: "0000 0000 0000 0000 000"
79850
79933
  }
79851
79934
  ];
79852
79935
 
@@ -79864,7 +79947,12 @@ class BaseInput extends AuroElement$1$1 {
79864
79947
  }
79865
79948
  });
79866
79949
 
79867
- this.validationCCLength = type.formatLength;
79950
+ // Variable-length brands (both min and max defined, e.g. UnionPay) validate
79951
+ // against the minimum masked length so shorter-but-valid entries are not
79952
+ // flagged tooShort. Fixed-length brands keep their single formatLength.
79953
+ this.validationCCLength = type.formatMinLength && type.formatLength
79954
+ ? type.formatMinLength
79955
+ : type.formatLength;
79868
79956
 
79869
79957
  return type;
79870
79958
  }
@@ -80223,7 +80311,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
80223
80311
  }
80224
80312
  };
80225
80313
 
80226
- var formkitVersion$1$1 = '202608192007';
80314
+ var formkitVersion$1$1 = '202608201808';
80227
80315
 
80228
80316
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
80229
80317
  // See LICENSE in the project root for license information.
@@ -80645,7 +80733,10 @@ class AuroInput extends BaseInput {
80645
80733
  */
80646
80734
  definePattern() {
80647
80735
  if (this.type === 'credit-card' && !this.noValidate && this.maxLength) {
80648
- return `.{${this.maxLength},${this.maxLength}}`;
80736
+ // Variable-length brands (e.g. UnionPay) set minLength, so accept a range;
80737
+ // fixed-length brands leave minLength undefined and keep an exact length.
80738
+ const minPatternLength = this.minLength || this.maxLength;
80739
+ return `.{${minPatternLength},${this.maxLength}}`;
80649
80740
  }
80650
80741
 
80651
80742
  return this.pattern;
@@ -81399,7 +81490,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
81399
81490
  }
81400
81491
  };
81401
81492
 
81402
- var formkitVersion$3 = '202608192007';
81493
+ var formkitVersion$3 = '202608201808';
81403
81494
 
81404
81495
  var styleCss$1$3 = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
81405
81496
 
@@ -83094,7 +83185,7 @@ class AuroCombobox extends AuroElement$3 {
83094
83185
  // and validating against the pre-selection value flashes a stale error
83095
83186
  // between mousedown and mouseup. The next focusout fires after the
83096
83187
  // dropdown closes and validates against the post-selection value.
83097
- if (!this.noValidate && !this.componentHasFocus && !this._inFullscreenTransition && !this.dropdownOpen) {
83188
+ if (!this.componentHasFocus && !this._inFullscreenTransition && !this.dropdownOpen) {
83098
83189
  this.validate();
83099
83190
  }
83100
83191
  });
@@ -90599,7 +90690,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
90599
90690
  }
90600
90691
  };
90601
90692
 
90602
- var formkitVersion$1 = '202608192007';
90693
+ var formkitVersion$1 = '202608201808';
90603
90694
 
90604
90695
  class AuroElement extends i$2 {
90605
90696
  static get properties() {
@@ -92710,7 +92801,7 @@ class AuroHelpText extends i$2 {
92710
92801
  }
92711
92802
  }
92712
92803
 
92713
- var formkitVersion = '202608192007';
92804
+ var formkitVersion = '202608201808';
92714
92805
 
92715
92806
  var styleCss = i$4`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer{max-width:100%}.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%;box-sizing:border-box;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{overflow:hidden;height:auto;text-overflow:ellipsis;white-space:nowrap}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}`;
92716
92807
 
@@ -93707,9 +93798,7 @@ class AuroSelect extends AuroElement$1 {
93707
93798
  this.addEventListener('focusin', this.handleFocusin);
93708
93799
 
93709
93800
  this.addEventListener('blur', () => {
93710
- if (!this.noValidate) {
93711
- this.validate();
93712
- }
93801
+ this.validate();
93713
93802
  this.hasFocus = false;
93714
93803
  this._clearTypeaheadBuffer();
93715
93804
  });
@@ -83,7 +83,7 @@
83
83
  <auro-header level="3">Input masking</auro-header>
84
84
  <p><code>auro-input</code> integrates IMask to apply format patterns as the user types — for example <code>format="(###) ###-####"</code> for phone numbers or <code>format="mm/dd/yyyy"</code> for dates. Native inputs have no concept of input masks, so you must integrate a third-party masking library and manage cursor position, paste handling, and value reconciliation yourself.</p>
85
85
  <auro-header level="3">Credit-card formatting and detection</auro-header>
86
- <p><code>auro-input</code> with <code>type="credit-card"</code> auto-detects Visa, Mastercard, American Express, Discover, Diners Club, and Alaska Airlines cards from the first digits, applies the correct digit grouping (e.g., 4-4-4-4 for Visa, 4-6-5 for Amex), displays the matching card brand icon, and validates with the Luhn algorithm. None of this is available natively.</p>
86
+ <p><code>auro-input</code> with <code>type="credit-card"</code> auto-detects Visa, Mastercard, American Express, Discover, Diners Club, JCB, China UnionPay, and Alaska Airlines cards from the first digits, applies the correct digit grouping (e.g., 4-4-4-4 for Visa, 4-6-5 for Amex), and displays the matching card brand icon. None of this is available natively.</p>
87
87
  <auro-header level="3">Password show/hide toggle</auro-header>
88
88
  <p><code>auro-input</code> with <code>type="password"</code> includes an accessible show/hide toggle with customizable ARIA labels via the <code>ariaLabel.password.show</code> and <code>ariaLabel.password.hide</code> slots. A native password input only masks the value — you must build the toggle button, swap the <code>type</code> attribute, and manage its accessible name yourself.</p>
89
89
  <auro-header level="3">Clear button</auro-header>
@@ -131,7 +131,7 @@
131
131
  <tr>
132
132
  <td>Credit-card detection and formatting</td>
133
133
  <td>Not supported</td>
134
- <td>Auto-detect with icon and Luhn check</td>
134
+ <td>Auto-detect with icon</td>
135
135
  </tr>
136
136
  <tr>
137
137
  <td>Password show/hide toggle</td>
@@ -30,7 +30,7 @@
30
30
  <auro-anchorlink fluid href="#min" class="level2 body-xs">Min</auro-anchorlink>
31
31
  <auro-anchorlink fluid href="#minLength" class="level2 body-xs">Min Length</auro-anchorlink>
32
32
  <auro-anchorlink fluid href="#name" class="level2 body-xs">Name</auro-anchorlink>
33
- <auro-anchorlink fluid href="#noValidate" class="level2 body-xs">No Validation</auro-anchorlink>
33
+ <auro-anchorlink fluid href="#noValidate" class="level2 body-xs">No Validate</auro-anchorlink>
34
34
  <auro-anchorlink fluid href="#pattern" class="level2 body-xs">Pattern</auro-anchorlink>
35
35
  <auro-anchorlink fluid href="#readonly" class="level2 body-xs">Readonly</auro-anchorlink>
36
36
  <auro-anchorlink fluid href="#required" class="level2 body-xs">Required</auro-anchorlink>
@@ -1042,7 +1042,7 @@
1042
1042
  &lt;/auro-input&gt;</code></pre>
1043
1043
  <!-- AURO-GENERATED-CONTENT:END -->
1044
1044
  </auro-accordion>
1045
- <auro-header level="3" id="noValidate">noValidate</auro-header>
1045
+ <auro-header level="3" id="noValidate">No Validate</auro-header>
1046
1046
  <p>For use cases where the field is <code>required</code>, but live validation is not wanted, use the <code>noValidate</code> attribute.</p>
1047
1047
  <div class="exampleWrapper">
1048
1048
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=../apiExamples/no-validate.html) -->
@@ -11863,6 +11863,18 @@ class BaseInput extends AuroElement {
11863
11863
  cardIcon: 'cc-dinersclub',
11864
11864
  maskFormat: "0000 000000 0000"
11865
11865
  },
11866
+ {
11867
+ // JCB is variable length (16-19 digits), like UnionPay, so it reuses the
11868
+ // formatMinLength/formatLength range machinery. The 35 prefix overlaps no
11869
+ // other brand (Amex is 34|37, Diners is 30[0-5]|36|38).
11870
+ name: 'JCB',
11871
+ regex: /^(?<num>35)\d{0}/u,
11872
+ formatMinLength: 19,
11873
+ formatLength: 23,
11874
+ errorMessage: CreditCardValidationMessage,
11875
+ cardIcon: 'cc-jcb',
11876
+ maskFormat: "0000 0000 0000 0000 000"
11877
+ },
11866
11878
  {
11867
11879
  name: 'Visa',
11868
11880
  regex: /^(?<num>4)\d{0}/u,
@@ -11894,6 +11906,20 @@ class BaseInput extends AuroElement {
11894
11906
  errorMessage: CreditCardValidationMessage,
11895
11907
  cardIcon: 'cc-discover',
11896
11908
  maskFormat: "0000 0000 0000 0000"
11909
+ },
11910
+ {
11911
+ // China UnionPay is variable length (16-19 digits). It must come after
11912
+ // Discover so the last-match-wins loop below gives its 62 prefix
11913
+ // precedence over the generic `6` that resolves to Discover. 81 is used
11914
+ // by UnionPay cards issued outside mainland China and overlaps no other
11915
+ // brand. 60 is intentionally excluded (it overlaps real Discover 6011).
11916
+ name: 'China UnionPay',
11917
+ regex: /^(?<num>62|81)\d{0}/u,
11918
+ formatMinLength: 19,
11919
+ formatLength: 23,
11920
+ errorMessage: CreditCardValidationMessage,
11921
+ cardIcon: 'cc-unionpay',
11922
+ maskFormat: "0000 0000 0000 0000 000"
11897
11923
  }
11898
11924
  ];
11899
11925
 
@@ -11911,7 +11937,12 @@ class BaseInput extends AuroElement {
11911
11937
  }
11912
11938
  });
11913
11939
 
11914
- this.validationCCLength = type.formatLength;
11940
+ // Variable-length brands (both min and max defined, e.g. UnionPay) validate
11941
+ // against the minimum masked length so shorter-but-valid entries are not
11942
+ // flagged tooShort. Fixed-length brands keep their single formatLength.
11943
+ this.validationCCLength = type.formatMinLength && type.formatLength
11944
+ ? type.formatMinLength
11945
+ : type.formatLength;
11915
11946
 
11916
11947
  return type;
11917
11948
  }
@@ -12270,7 +12301,7 @@ class AuroHelpText extends i$3 {
12270
12301
  }
12271
12302
  }
12272
12303
 
12273
- var formkitVersion = '202608192007';
12304
+ var formkitVersion = '202608201808';
12274
12305
 
12275
12306
  /**
12276
12307
  * @license
@@ -12704,7 +12735,10 @@ class AuroInput extends BaseInput {
12704
12735
  */
12705
12736
  definePattern() {
12706
12737
  if (this.type === 'credit-card' && !this.noValidate && this.maxLength) {
12707
- return `.{${this.maxLength},${this.maxLength}}`;
12738
+ // Variable-length brands (e.g. UnionPay) set minLength, so accept a range;
12739
+ // fixed-length brands leave minLength undefined and keep an exact length.
12740
+ const minPatternLength = this.minLength || this.maxLength;
12741
+ return `.{${minPatternLength},${this.maxLength}}`;
12708
12742
  }
12709
12743
 
12710
12744
  return this.pattern;
@@ -11863,6 +11863,18 @@ class BaseInput extends AuroElement {
11863
11863
  cardIcon: 'cc-dinersclub',
11864
11864
  maskFormat: "0000 000000 0000"
11865
11865
  },
11866
+ {
11867
+ // JCB is variable length (16-19 digits), like UnionPay, so it reuses the
11868
+ // formatMinLength/formatLength range machinery. The 35 prefix overlaps no
11869
+ // other brand (Amex is 34|37, Diners is 30[0-5]|36|38).
11870
+ name: 'JCB',
11871
+ regex: /^(?<num>35)\d{0}/u,
11872
+ formatMinLength: 19,
11873
+ formatLength: 23,
11874
+ errorMessage: CreditCardValidationMessage,
11875
+ cardIcon: 'cc-jcb',
11876
+ maskFormat: "0000 0000 0000 0000 000"
11877
+ },
11866
11878
  {
11867
11879
  name: 'Visa',
11868
11880
  regex: /^(?<num>4)\d{0}/u,
@@ -11894,6 +11906,20 @@ class BaseInput extends AuroElement {
11894
11906
  errorMessage: CreditCardValidationMessage,
11895
11907
  cardIcon: 'cc-discover',
11896
11908
  maskFormat: "0000 0000 0000 0000"
11909
+ },
11910
+ {
11911
+ // China UnionPay is variable length (16-19 digits). It must come after
11912
+ // Discover so the last-match-wins loop below gives its 62 prefix
11913
+ // precedence over the generic `6` that resolves to Discover. 81 is used
11914
+ // by UnionPay cards issued outside mainland China and overlaps no other
11915
+ // brand. 60 is intentionally excluded (it overlaps real Discover 6011).
11916
+ name: 'China UnionPay',
11917
+ regex: /^(?<num>62|81)\d{0}/u,
11918
+ formatMinLength: 19,
11919
+ formatLength: 23,
11920
+ errorMessage: CreditCardValidationMessage,
11921
+ cardIcon: 'cc-unionpay',
11922
+ maskFormat: "0000 0000 0000 0000 000"
11897
11923
  }
11898
11924
  ];
11899
11925
 
@@ -11911,7 +11937,12 @@ class BaseInput extends AuroElement {
11911
11937
  }
11912
11938
  });
11913
11939
 
11914
- this.validationCCLength = type.formatLength;
11940
+ // Variable-length brands (both min and max defined, e.g. UnionPay) validate
11941
+ // against the minimum masked length so shorter-but-valid entries are not
11942
+ // flagged tooShort. Fixed-length brands keep their single formatLength.
11943
+ this.validationCCLength = type.formatMinLength && type.formatLength
11944
+ ? type.formatMinLength
11945
+ : type.formatLength;
11915
11946
 
11916
11947
  return type;
11917
11948
  }
@@ -12270,7 +12301,7 @@ class AuroHelpText extends i$3 {
12270
12301
  }
12271
12302
  }
12272
12303
 
12273
- var formkitVersion = '202608192007';
12304
+ var formkitVersion = '202608201808';
12274
12305
 
12275
12306
  /**
12276
12307
  * @license
@@ -12704,7 +12735,10 @@ class AuroInput extends BaseInput {
12704
12735
  */
12705
12736
  definePattern() {
12706
12737
  if (this.type === 'credit-card' && !this.noValidate && this.maxLength) {
12707
- return `.{${this.maxLength},${this.maxLength}}`;
12738
+ // Variable-length brands (e.g. UnionPay) set minLength, so accept a range;
12739
+ // fixed-length brands leave minLength undefined and keep an exact length.
12740
+ const minPatternLength = this.minLength || this.maxLength;
12741
+ return `.{${minPatternLength},${this.maxLength}}`;
12708
12742
  }
12709
12743
 
12710
12744
  return this.pattern;