@aurodesignsystem-dev/auro-formkit 0.0.0-pr740.9 → 0.0.0-pr750.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 (94) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +6 -0
  2. package/components/bibtemplate/dist/index.js +25 -1
  3. package/components/bibtemplate/dist/registered.js +25 -1
  4. package/components/checkbox/demo/api.html +16 -10
  5. package/components/checkbox/demo/api.min.js +23 -16
  6. package/components/checkbox/demo/index.html +16 -10
  7. package/components/checkbox/demo/index.min.js +23 -16
  8. package/components/checkbox/demo/readme.html +16 -9
  9. package/components/checkbox/dist/index.js +23 -16
  10. package/components/checkbox/dist/registered.js +23 -16
  11. package/components/combobox/demo/api.html +16 -10
  12. package/components/combobox/demo/api.md +12 -6
  13. package/components/combobox/demo/api.min.js +442 -148
  14. package/components/combobox/demo/index.html +16 -10
  15. package/components/combobox/demo/index.min.js +442 -148
  16. package/components/combobox/demo/readme.html +16 -9
  17. package/components/combobox/dist/index.js +405 -136
  18. package/components/combobox/dist/registered.js +405 -136
  19. package/components/counter/demo/api.html +17 -10
  20. package/components/counter/demo/api.md +140 -7
  21. package/components/counter/demo/api.min.js +1171 -1016
  22. package/components/counter/demo/index.html +17 -10
  23. package/components/counter/demo/index.md +86 -0
  24. package/components/counter/demo/index.min.js +1171 -1016
  25. package/components/counter/demo/readme.html +16 -9
  26. package/components/counter/dist/auro-counter-group.d.ts +64 -23
  27. package/components/counter/dist/auro-counter.d.ts +10 -0
  28. package/components/counter/dist/index.js +1171 -1016
  29. package/components/counter/dist/registered.js +1171 -1016
  30. package/components/datepicker/demo/api.html +16 -10
  31. package/components/datepicker/demo/api.min.js +403 -123
  32. package/components/datepicker/demo/index.html +16 -10
  33. package/components/datepicker/demo/index.min.js +403 -123
  34. package/components/datepicker/demo/readme.html +16 -9
  35. package/components/datepicker/dist/auro-datepicker.d.ts +6 -0
  36. package/components/datepicker/dist/index.js +403 -123
  37. package/components/datepicker/dist/registered.js +403 -123
  38. package/components/dropdown/demo/api.html +16 -10
  39. package/components/dropdown/demo/api.md +77 -269
  40. package/components/dropdown/demo/api.min.js +336 -96
  41. package/components/dropdown/demo/index.html +16 -10
  42. package/components/dropdown/demo/index.md +45 -363
  43. package/components/dropdown/demo/index.min.js +336 -96
  44. package/components/dropdown/demo/readme.html +16 -9
  45. package/components/dropdown/dist/auro-dropdown.d.ts +35 -67
  46. package/components/dropdown/dist/auro-dropdownBib.d.ts +0 -6
  47. package/components/dropdown/dist/index.js +336 -96
  48. package/components/dropdown/dist/registered.js +336 -96
  49. package/components/form/demo/api.html +16 -9
  50. package/components/form/demo/autocomplete.html +19 -3
  51. package/components/form/demo/index.html +16 -9
  52. package/components/form/demo/readme.html +16 -9
  53. package/components/form/demo/working.html +19 -13
  54. package/components/helptext/dist/index.js +1 -1
  55. package/components/helptext/dist/registered.js +1 -1
  56. package/components/input/demo/api.html +16 -10
  57. package/components/input/demo/api.md +1 -1
  58. package/components/input/demo/api.min.js +14 -14
  59. package/components/input/demo/index.html +16 -10
  60. package/components/input/demo/index.min.js +14 -14
  61. package/components/input/demo/readme.html +16 -9
  62. package/components/input/dist/base-input.d.ts +1 -1
  63. package/components/input/dist/index.js +14 -14
  64. package/components/input/dist/registered.js +14 -14
  65. package/components/menu/demo/api.html +16 -32
  66. package/components/menu/demo/api.md +1 -1
  67. package/components/menu/demo/api.min.js +37 -12
  68. package/components/menu/demo/index.html +16 -10
  69. package/components/menu/demo/index.min.js +37 -12
  70. package/components/menu/demo/readme.html +16 -9
  71. package/components/menu/dist/auro-menu.d.ts +13 -2
  72. package/components/menu/dist/index.js +37 -12
  73. package/components/menu/dist/registered.js +37 -12
  74. package/components/radio/demo/api.html +16 -10
  75. package/components/radio/demo/api.md +0 -1
  76. package/components/radio/demo/api.min.js +61 -76
  77. package/components/radio/demo/index.html +16 -10
  78. package/components/radio/demo/index.min.js +61 -76
  79. package/components/radio/demo/readme.html +16 -9
  80. package/components/radio/dist/auro-radio.d.ts +8 -11
  81. package/components/radio/dist/index.js +61 -76
  82. package/components/radio/dist/registered.js +61 -76
  83. package/components/select/demo/api.html +16 -10
  84. package/components/select/demo/api.js +0 -2
  85. package/components/select/demo/api.md +53 -51
  86. package/components/select/demo/api.min.js +520 -358
  87. package/components/select/demo/index.html +16 -11
  88. package/components/select/demo/index.md +6 -158
  89. package/components/select/demo/index.min.js +520 -346
  90. package/components/select/demo/readme.html +16 -9
  91. package/components/select/dist/auro-select.d.ts +33 -8
  92. package/components/select/dist/index.js +483 -334
  93. package/components/select/dist/registered.js +483 -334
  94. package/package.json +26 -25
@@ -631,9 +631,9 @@ let AuroLibraryRuntimeUtils$8 = class AuroLibraryRuntimeUtils {
631
631
  }
632
632
  };
633
633
 
634
- var styleCss$a = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}:host([fluid]) .auro-button,:host([fluid=true]) .auro-button{min-width:auto;width:100%}:host([variant=flat]){display:inline-block}::slotted(svg){vertical-align:middle}slot{pointer-events:none}.auro-button{position:relative;padding:0 var(--ds-size-300, 1.5rem);cursor:pointer;border-width:1px;border-style:solid;border-radius:var(--ds-border-radius, 0.375rem);overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap;min-height:var(--ds-size-600, 3rem);max-height:var(--ds-size-600, 3rem);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ds-size-100, 0.5rem);margin:0;-webkit-touch-callout:none;-webkit-user-select:none;transition:padding 300ms ease-out}.auro-button:active{transform:scale(0.95)}.auro-button:focus-visible,.auro-button:focus{outline:none;outline-style:solid;outline-width:var(--ds-size-50, 0.25rem);outline-offset:calc(var(--ds-size-50, 0.25rem)*-1)}.auro-button:focus-visible:not([variant=secondary]):not([variant=tertiary]),.auro-button:focus:not([variant=secondary]):not([variant=tertiary]){outline-width:calc(var(--ds-size-50, 0.25rem) - 1px)}.auro-button.loading{cursor:not-allowed}.auro-button.loading *:not([auro-loader]){visibility:hidden}@media screen and (min-width: 576px){.auro-button{min-width:8.75rem;width:auto}}.auro-button:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=secondary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=ghost]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark][variant=secondary]:disabled{cursor:not-allowed;transform:unset}@media(hover: hover){.auro-button[onDark][variant=tertiary]:active,.auro-button[onDark][variant=tertiary]:hover{box-shadow:none}}.auro-button[onDark][variant=tertiary]:active{box-shadow:none}.auro-button[onDark][variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button.icon-only ::slotted(:not(auro-icon):not([auro-icon])){display:none}.auro-button--slim{min-width:unset;min-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem));max-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem))}.auro-button--iconOnly{padding:0 var(--ds-size-100, 0.5rem);border-radius:100px;min-width:unset;height:var(--ds-size-600, 3rem);width:var(--ds-size-500, 2.5rem)}.auro-button--iconOnly ::slotted(auro-icon),.auro-button--iconOnly ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--iconOnly:not(.auro-button--rounded):focus-visible:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]),.auro-button--iconOnly:not(.auro-button--rounded):focus:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]){outline-width:1px;outline-offset:-2px}.auro-button--iconOnlySlim{padding:0 var(--ds-size-50, 0.25rem);height:calc(var(--ds-size-400, 2rem) + var(--ds-size-50, 0.25rem));width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-50, 0.25rem))}.auro-button--iconOnlySlim ::slotted(auro-icon),.auro-button--iconOnlySlim ::slotted([auro-icon]){--ds-auro-icon-size:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, 0.25rem))}.auro-button--rounded{border-radius:100px;box-shadow:var(--ds-elevation-300, 0px 0px 15px rgba(0, 0, 0, 0.2));height:var(--ds-size-500, 2.5rem);min-width:unset;transition:padding 300ms ease-out,outline 0ms,outline-offset 0ms}.auro-button--rounded ::slotted(auro-icon),.auro-button--rounded ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--rounded:focus-visible:not([variant=flat]):after,.auro-button--rounded:focus:not([variant=flat]):after{border-radius:100px}:host([size=xs]) .wrapper:focus-visible,:host([size=xs]) .wrapper:focus{outline-width:1px;outline-offset:-2px}:host([rounded]) .textSlot{transition:opacity 300ms ease-in;opacity:1}:host([rounded][iconOnly]) .textSlot{opacity:0}:host([rounded][iconOnly]) .textWrapper{display:none}:host([rounded][iconOnly]) .auro-button{min-width:unset;padding:unset;width:var(--ds-size-600, 3rem)}[auro-loader]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}`;
634
+ var styleCss$b = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}:host([fluid]) .auro-button,:host([fluid=true]) .auro-button{min-width:auto;width:100%}:host([variant=flat]){display:inline-block}::slotted(svg){vertical-align:middle}slot{pointer-events:none}.auro-button{position:relative;padding:0 var(--ds-size-300, 1.5rem);cursor:pointer;border-width:1px;border-style:solid;border-radius:var(--ds-border-radius, 0.375rem);overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap;min-height:var(--ds-size-600, 3rem);max-height:var(--ds-size-600, 3rem);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ds-size-100, 0.5rem);margin:0;-webkit-touch-callout:none;-webkit-user-select:none;transition:padding 300ms ease-out}.auro-button:active{transform:scale(0.95)}.auro-button:focus-visible,.auro-button:focus{outline:none;outline-style:solid;outline-width:var(--ds-size-50, 0.25rem);outline-offset:calc(var(--ds-size-50, 0.25rem)*-1)}.auro-button:focus-visible:not([variant=secondary]):not([variant=tertiary]),.auro-button:focus:not([variant=secondary]):not([variant=tertiary]){outline-width:calc(var(--ds-size-50, 0.25rem) - 1px)}.auro-button.loading{cursor:not-allowed}.auro-button.loading *:not([auro-loader]){visibility:hidden}@media screen and (min-width: 576px){.auro-button{min-width:8.75rem;width:auto}}.auro-button:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=secondary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=ghost]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark][variant=secondary]:disabled{cursor:not-allowed;transform:unset}@media(hover: hover){.auro-button[onDark][variant=tertiary]:active,.auro-button[onDark][variant=tertiary]:hover{box-shadow:none}}.auro-button[onDark][variant=tertiary]:active{box-shadow:none}.auro-button[onDark][variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button.icon-only ::slotted(:not(auro-icon):not([auro-icon])){display:none}.auro-button--slim{min-width:unset;min-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem));max-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem))}.auro-button--iconOnly{padding:0 var(--ds-size-100, 0.5rem);border-radius:100px;min-width:unset;height:var(--ds-size-600, 3rem);width:var(--ds-size-500, 2.5rem)}.auro-button--iconOnly ::slotted(auro-icon),.auro-button--iconOnly ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--iconOnly:not(.auro-button--rounded):focus-visible:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]),.auro-button--iconOnly:not(.auro-button--rounded):focus:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]){outline-width:1px;outline-offset:-2px}.auro-button--iconOnlySlim{padding:0 var(--ds-size-50, 0.25rem);height:calc(var(--ds-size-400, 2rem) + var(--ds-size-50, 0.25rem));width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-50, 0.25rem))}.auro-button--iconOnlySlim ::slotted(auro-icon),.auro-button--iconOnlySlim ::slotted([auro-icon]){--ds-auro-icon-size:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, 0.25rem))}.auro-button--rounded{border-radius:100px;box-shadow:var(--ds-elevation-300, 0px 0px 15px rgba(0, 0, 0, 0.2));height:var(--ds-size-500, 2.5rem);min-width:unset;transition:padding 300ms ease-out,outline 0ms,outline-offset 0ms}.auro-button--rounded ::slotted(auro-icon),.auro-button--rounded ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--rounded:focus-visible:not([variant=flat]):after,.auro-button--rounded:focus:not([variant=flat]):after{border-radius:100px}:host([size=xs]) .wrapper:focus-visible,:host([size=xs]) .wrapper:focus{outline-width:1px;outline-offset:-2px}:host([rounded]) .textSlot{transition:opacity 300ms ease-in;opacity:1}:host([rounded][iconOnly]) .textSlot{opacity:0}:host([rounded][iconOnly]) .textWrapper{display:none}:host([rounded][iconOnly]) .auro-button{min-width:unset;padding:unset;width:var(--ds-size-600, 3rem)}[auro-loader]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}`;
635
635
 
636
- var colorCss$9 = i$5`[auro-loader]{color:var(--ds-auro-button-loader-color)}.auro-button{-webkit-tap-highlight-color:var(--ds-auro-button-tap-color);color:var(--ds-auro-button-text-color);background-color:var(--ds-auro-button-container-color);background-image:linear-gradient(var(--ds-auro-button-container-image), var(--ds-auro-button-container-image));border-color:var(--ds-auro-button-border-color)}.auro-button:not([variant=secondary]):not([variant=tertiary]):focus-visible{outline-color:var(--ds-auro-button-border-inset-color)}.auro-button:not([ondark]):active:not(:disabled),.auro-button:not([ondark]):hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-hover, #00274a)}.auro-button:not([ondark]):disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-disabled, #acc9e2)}.auro-button:not([ondark])[variant=secondary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text, #01426a)}.auro-button:not([ondark])[variant=secondary]:active:not(:disabled),.auro-button:not([ondark])[variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-hover, #00274a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-hover, #00274a)}.auro-button:not([ondark])[variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=secondary]:disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-disabled, #cfe0ef);--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text, #01426a)}.auro-button:not([ondark])[variant=tertiary]:active:not(:disabled),.auro-button:not([ondark])[variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=tertiary]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text, #01426a)}.auro-button:not([ondark])[variant=ghost]:active:not(:disabled),.auro-button:not([ondark])[variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=ghost]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=flat]{color:var(--ds-advanced-color-button-flat-text, #676767);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:active:not(:disabled),.auro-button:not([ondark])[variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-hover, #525252);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-disabled, #d0d0d0);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a)}.auro-button[ondark]:active:not(:disabled),.auro-button[ondark]:hover:not(:disabled){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-hover, #ebf3f9);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9)}.auro-button[ondark]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]:disabled{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=secondary]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:active:not(:disabled),.auro-button[ondark][variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse-disabled, #dddddd)}.auro-button[ondark][variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:active:not(:disabled),.auro-button[ondark][variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:active:not(:disabled),.auro-button[ondark][variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05))}.auro-button[ondark][variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=flat]{color:var(--ds-advanced-color-button-flat-text-inverse, #ffffff);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:active:not(:disabled),.auro-button[ondark][variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-inverse-hover, #adadad);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-inverse-disabled, #7e8894);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
636
+ var colorCss$a = i$5`[auro-loader]{color:var(--ds-auro-button-loader-color)}.auro-button{-webkit-tap-highlight-color:var(--ds-auro-button-tap-color);color:var(--ds-auro-button-text-color);background-color:var(--ds-auro-button-container-color);background-image:linear-gradient(var(--ds-auro-button-container-image), var(--ds-auro-button-container-image));border-color:var(--ds-auro-button-border-color)}.auro-button:not([variant=secondary]):not([variant=tertiary]):focus-visible{outline-color:var(--ds-auro-button-border-inset-color)}.auro-button:not([ondark]):active:not(:disabled),.auro-button:not([ondark]):hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-hover, #00274a)}.auro-button:not([ondark]):disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-disabled, #acc9e2)}.auro-button:not([ondark])[variant=secondary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text, #01426a)}.auro-button:not([ondark])[variant=secondary]:active:not(:disabled),.auro-button:not([ondark])[variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-hover, #00274a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-hover, #00274a)}.auro-button:not([ondark])[variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=secondary]:disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-disabled, #cfe0ef);--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text, #01426a)}.auro-button:not([ondark])[variant=tertiary]:active:not(:disabled),.auro-button:not([ondark])[variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=tertiary]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text, #01426a)}.auro-button:not([ondark])[variant=ghost]:active:not(:disabled),.auro-button:not([ondark])[variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=ghost]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=flat]{color:var(--ds-advanced-color-button-flat-text, #676767);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:active:not(:disabled),.auro-button:not([ondark])[variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-hover, #525252);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-disabled, #d0d0d0);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a)}.auro-button[ondark]:active:not(:disabled),.auro-button[ondark]:hover:not(:disabled){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-hover, #ebf3f9);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9)}.auro-button[ondark]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]:disabled{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=secondary]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:active:not(:disabled),.auro-button[ondark][variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse-disabled, #dddddd)}.auro-button[ondark][variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:active:not(:disabled),.auro-button[ondark][variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:active:not(:disabled),.auro-button[ondark][variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05))}.auro-button[ondark][variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=flat]{color:var(--ds-advanced-color-button-flat-text-inverse, #ffffff);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:active:not(:disabled),.auro-button[ondark][variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-inverse-hover, #adadad);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-inverse-disabled, #7e8894);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
637
637
 
638
638
  var tokensCss$7 = i$5`:host(:not([onDark])){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-tap-color:transparent}:host([onDark]){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-tap-color:transparent}`;
639
639
 
@@ -709,9 +709,9 @@ let AuroLibraryRuntimeUtils$7 = class AuroLibraryRuntimeUtils {
709
709
  }
710
710
  };
711
711
 
712
- var styleCss$9 = i$5`: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}: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:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.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(0deg)}100%{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{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{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%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
712
+ var styleCss$a = i$5`: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}: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:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.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(0deg)}100%{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{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{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%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
713
713
 
714
- var colorCss$8 = i$5`: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]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--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}`;
714
+ var colorCss$9 = i$5`: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]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--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}`;
715
715
 
716
716
  var tokensCss$6 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
717
717
 
@@ -789,8 +789,8 @@ let AuroLoader$1 = class AuroLoader extends i$2 {
789
789
 
790
790
  static get styles() {
791
791
  return [
792
- i$5`${styleCss$9}`,
793
- i$5`${colorCss$8}`,
792
+ i$5`${styleCss$a}`,
793
+ i$5`${colorCss$9}`,
794
794
  i$5`${tokensCss$6}`
795
795
  ];
796
796
  }
@@ -943,8 +943,8 @@ let AuroButton$1 = class AuroButton extends AuroElement$5 {
943
943
  static get styles() {
944
944
  return [
945
945
  tokensCss$7,
946
- styleCss$a,
947
- colorCss$9,
946
+ styleCss$b,
947
+ colorCss$a,
948
948
  shapeSize$1
949
949
  ];
950
950
  }
@@ -1315,7 +1315,7 @@ const cacheFetch$2 = (uri, options = {}) => {
1315
1315
  return _fetchMap$2.get(uri);
1316
1316
  };
1317
1317
 
1318
- var styleCss$8 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
1318
+ var styleCss$9 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
1319
1319
 
1320
1320
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1321
1321
  // See LICENSE in the project root for license information.
@@ -1358,7 +1358,7 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$4 {
1358
1358
 
1359
1359
  static get styles() {
1360
1360
  return i$5`
1361
- ${styleCss$8}
1361
+ ${styleCss$9}
1362
1362
  `;
1363
1363
  }
1364
1364
 
@@ -1401,7 +1401,7 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$4 {
1401
1401
 
1402
1402
  var tokensCss$5 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
1403
1403
 
1404
- var colorCss$7 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
1404
+ var colorCss$8 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
1405
1405
 
1406
1406
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1407
1407
  // See LICENSE in the project root for license information.
@@ -1560,8 +1560,8 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
1560
1560
  return [
1561
1561
  super.styles,
1562
1562
  i$5`${tokensCss$5}`,
1563
- i$5`${styleCss$8}`,
1564
- i$5`${colorCss$7}`
1563
+ i$5`${styleCss$9}`,
1564
+ i$5`${colorCss$8}`
1565
1565
  ];
1566
1566
  }
1567
1567
 
@@ -2122,19 +2122,19 @@ class AuroFormValidation {
2122
2122
  {
2123
2123
  check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
2124
2124
  validity: 'tooShort',
2125
- message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
2125
+ message: e => e.getAttribute('setCustomValidityTooShort') || e.setCustomValidity || ''
2126
2126
  },
2127
2127
  {
2128
2128
  check: (e) => e.value?.length > e.maxLength,
2129
2129
  validity: 'tooLong',
2130
- message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
2130
+ message: e => e.getAttribute('setCustomValidityTooLong') || e.setCustomValidity || ''
2131
2131
  }
2132
2132
  ],
2133
2133
  pattern: [
2134
2134
  {
2135
2135
  check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
2136
2136
  validity: 'patternMismatch',
2137
- message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
2137
+ message: e => e.getAttribute('setCustomValidityPatternMismatch') || e.setCustomValidity || ''
2138
2138
  }
2139
2139
  ]
2140
2140
  },
@@ -2329,10 +2329,10 @@ class AuroFormValidation {
2329
2329
  if (!hasValue && elem.required && elem.touched) {
2330
2330
  elem.validity = 'valueMissing';
2331
2331
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
2332
- } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
2332
+ } else if (hasValue && this.runtimeUtils.elementMatch(elem, 'auro-input')) {
2333
2333
  this.validateType(elem);
2334
2334
  this.validateElementAttributes(elem);
2335
- } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
2335
+ } else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
2336
2336
  this.validateElementAttributes(elem);
2337
2337
  }
2338
2338
  }
@@ -2450,9 +2450,217 @@ var plusIcon = {"role":"img","color":"currentColor","title":"","desc":"","width"
2450
2450
 
2451
2451
  var minusIcon = {"role":"img","color":"currentColor","title":"","desc":"","width":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","height":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","xmlns":"http://www.w3.org/2000/svg","xmlns_xlink":"http://www.w3.org/1999/xlink","viewBox":"0 0 24 24","path":"/icons","style":"ico_squareLarge","type":"icon","name":"minus-lg","category":"interface","deprecated":true,"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" class=\"ico_squareLarge\" data-deprecated=\"true\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><path d=\"M5.75 12.75h12.5a.75.75 0 1 0 0-1.5H5.75a.75.75 0 1 0 0 1.5\"/></svg>"};
2452
2452
 
2453
- var colorCss$6 = i$5`.label{color:var(--ds-auro-counter-label-text-color)}[name=description]::slotted(*){color:var(--ds-auro-counter-description-text-color)}.controlIcon{color:var(--ds-auro-counter-icon-color)}.quantityWrapper{background-color:var(--ds-auro-counter-control-background-color);color:var(--ds-auro-counter-quantity-text-color)}:host::part(counterControl):focus-visible{outline-color:var(--ds-auro-counter-control-border-color)}[disabled],:host([disabled]){--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}[onDark],:host([onDark]){--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-control-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-counter-control-background-color: var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-counter-icon-color: var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}[onDark][disabled],:host([onDark][disabled]){--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}`;
2453
+ var colorCss$7 = i$5`.label{color:var(--ds-auro-counter-label-text-color)}[name=description]::slotted(*){color:var(--ds-auro-counter-description-text-color)}.controlIcon{color:var(--ds-auro-counter-icon-color)}.quantityWrapper{background-color:var(--ds-auro-counter-control-background-color);color:var(--ds-auro-counter-quantity-text-color)}:host::part(counterControl):focus-visible{outline-color:var(--ds-auro-counter-control-border-color)}[disabled],:host([disabled]){--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}[onDark],:host([onDark]){--ds-auro-counter-description-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-counter-control-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-counter-control-background-color: var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-counter-icon-color: var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}[onDark][disabled],:host([onDark][disabled]){--ds-auro-counter-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-quantity-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-counter-icon-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}`;
2454
+
2455
+ var styleCss$8 = i$5`.counter{display:flex;align-items:center;justify-content:space-between;column-gap:var(--ds-size-150, 0.75rem)}.content{display:flex;flex-flow:column}[name=description]::slotted(*){display:block;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}.quantityWrapper{width:var(--ds-size-400, 2rem);height:calc(var(--ds-size-25, 0.125rem) + var(--ds-size-400, 2rem));align-content:center;cursor:default;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px;text-align:center}:host{position:relative}:host::part(counterControl){display:flex;border-radius:var(--ds-size-500, 2.5rem);line-height:0;touch-action:manipulation}:host::part(counterControl):focus-visible{outline-offset:0;outline-style:solid;outline-width:var(--ds-size-25, 0.125rem)}:host::part(controlMinus){--ds-auro-counter-control-border-radius: var(--ds-size-500, 2.5rem) 0 0 var(--ds-size-500, 2.5rem);--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host::part(controlPlus){--ds-auro-counter-control-border-radius: 0 var(--ds-size-500, 2.5rem) var(--ds-size-500, 2.5rem) 0;--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem)}auro-counter-button{display:flex}`;
2456
+
2457
+ var colorCss$6 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
2458
+
2459
+ var styleCss$7 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
2460
+
2461
+ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
2462
+
2463
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
2464
+ // See LICENSE in the project root for license information.
2465
+
2466
+ // ---------------------------------------------------------------------
2467
+
2468
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
2469
+
2470
+ let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
2471
+
2472
+ /* eslint-disable jsdoc/require-param */
2473
+
2474
+ /**
2475
+ * This will register a new custom element with the browser.
2476
+ * @param {String} name - The name of the custom element.
2477
+ * @param {Object} componentClass - The class to register as a custom element.
2478
+ * @returns {void}
2479
+ */
2480
+ registerComponent(name, componentClass) {
2481
+ if (!customElements.get(name)) {
2482
+ customElements.define(name, class extends componentClass {});
2483
+ }
2484
+ }
2485
+
2486
+ /**
2487
+ * Finds and returns the closest HTML Element based on a selector.
2488
+ * @returns {void}
2489
+ */
2490
+ closestElement(
2491
+ selector, // selector like in .closest()
2492
+ base = this, // extra functionality to skip a parent
2493
+ __Closest = (el, found = el && el.closest(selector)) =>
2494
+ !el || el === document || el === window
2495
+ ? null // standard .closest() returns null for non-found selectors also
2496
+ : found
2497
+ ? found // found a selector INside this element
2498
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
2499
+ ) {
2500
+ return __Closest(base);
2501
+ }
2502
+ /* eslint-enable jsdoc/require-param */
2503
+
2504
+ /**
2505
+ * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
2506
+ * @param {Object} elem - The element to check.
2507
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
2508
+ * @returns {void}
2509
+ */
2510
+ handleComponentTagRename(elem, tagName) {
2511
+ const tag = tagName.toLowerCase();
2512
+ const elemTag = elem.tagName.toLowerCase();
2513
+
2514
+ if (elemTag !== tag) {
2515
+ elem.setAttribute(tag, true);
2516
+ }
2517
+ }
2518
+
2519
+ /**
2520
+ * Validates if an element is a specific Auro component.
2521
+ * @param {Object} elem - The element to validate.
2522
+ * @param {String} tagName - The name of the Auro component to check against.
2523
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
2524
+ */
2525
+ elementMatch(elem, tagName) {
2526
+ const tag = tagName.toLowerCase();
2527
+ const elemTag = elem.tagName.toLowerCase();
2528
+
2529
+ return elemTag === tag || elem.hasAttribute(tag);
2530
+ }
2531
+ };
2532
+
2533
+ // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
2534
+ // See LICENSE in the project root for license information.
2535
+
2536
+
2537
+ /**
2538
+ * Displays help text or error messages within form elements - Internal Use Only.
2539
+ *
2540
+ * @attr { Boolean } large - If declared, make font-size to 1rem(16px).
2541
+ */
2542
+ let AuroHelpText$1 = class AuroHelpText extends i$2 {
2543
+
2544
+ constructor() {
2545
+ super();
2546
+
2547
+ this.error = false;
2548
+ this.onDark = false;
2549
+ this.hasTextContent = false;
2550
+
2551
+ AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
2552
+ }
2553
+
2554
+ static get styles() {
2555
+ return [
2556
+ colorCss$6,
2557
+ styleCss$7,
2558
+ tokensCss$4
2559
+ ];
2560
+ }
2561
+
2562
+ // function to define props used within the scope of this component
2563
+ static get properties() {
2564
+ return {
2565
+
2566
+ /**
2567
+ * @private
2568
+ */
2569
+ slotNodes: {
2570
+ type: Boolean,
2571
+ },
2572
+
2573
+ /**
2574
+ * @private
2575
+ */
2576
+ hasTextContent: {
2577
+ type: Boolean,
2578
+ },
2579
+
2580
+ /**
2581
+ * If declared, make font color red.
2582
+ */
2583
+ error: {
2584
+ type: Boolean,
2585
+ reflect: true,
2586
+ },
2587
+
2588
+ /**
2589
+ * If declared, will apply onDark styles.
2590
+ */
2591
+ onDark: {
2592
+ type: Boolean,
2593
+ reflect: true
2594
+ }
2595
+ };
2596
+ }
2597
+
2598
+ /**
2599
+ * This will register this element with the browser.
2600
+ * @param {string} [name="auro-helptext"] - The name of element that you want to register to.
2601
+ *
2602
+ * @example
2603
+ * AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
2604
+ *
2605
+ */
2606
+ static register(name = "auro-helptext") {
2607
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
2608
+ }
2609
+
2610
+ updated() {
2611
+ this.handleSlotChange();
2612
+ }
2613
+
2614
+ handleSlotChange(event) {
2615
+ if (event) {
2616
+ this.slotNodes = event.target.assignedNodes();
2617
+ }
2618
+
2619
+ this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
2620
+ }
2621
+
2622
+ /**
2623
+ * Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
2624
+ *
2625
+ * @param {NodeList|Array} nodes - The list of nodes to check for content.
2626
+ * @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
2627
+ * @private
2628
+ */
2629
+ checkSlotsForContent(nodes) {
2630
+ if (!nodes) {
2631
+ return false;
2632
+ }
2633
+
2634
+ return nodes.some((node) => {
2635
+ if (node.textContent.trim()) {
2636
+ return true;
2637
+ }
2638
+
2639
+ if (!node.querySelector) {
2640
+ return false;
2641
+ }
2642
+
2643
+ const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
2644
+ if (!nestedSlot) {
2645
+ return false;
2646
+ }
2647
+
2648
+ const nestedSlotNodes = nestedSlot.assignedNodes();
2649
+ return this.checkSlotsForContent(nestedSlotNodes);
2650
+ });
2651
+ }
2652
+
2653
+ // function that renders the HTML and CSS into the scope of the component
2654
+ render() {
2655
+ return x`
2656
+ <div class="helptext-wrapper" ?visible="${this.hasTextContent}">
2657
+ <slot @slotchange=${this.handleSlotChange}></slot>
2658
+ </div>
2659
+ `;
2660
+ }
2661
+ };
2454
2662
 
2455
- var styleCss$7 = i$5`.counter{display:flex;align-items:center;justify-content:space-between;column-gap:var(--ds-size-150, 0.75rem)}.content{display:flex;flex-flow:column}[name=description]::slotted(*){display:block;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}.quantityWrapper{width:var(--ds-size-400, 2rem);height:calc(var(--ds-size-25, 0.125rem) + var(--ds-size-400, 2rem));align-content:center;cursor:default;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px;text-align:center}:host{position:relative}:host::part(counterControl){display:flex;border-radius:var(--ds-size-500, 2.5rem);line-height:0;touch-action:manipulation}:host::part(counterControl):focus-visible{outline-offset:0;outline-style:solid;outline-width:var(--ds-size-25, 0.125rem)}:host::part(controlMinus){--ds-auro-counter-control-border-radius: var(--ds-size-500, 2.5rem) 0 0 var(--ds-size-500, 2.5rem);--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host::part(controlPlus){--ds-auro-counter-control-border-radius: 0 var(--ds-size-500, 2.5rem) var(--ds-size-500, 2.5rem) 0;--ds-auro-counter-control-padding: var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem) var(--ds-size-50, 0.25rem) var(--ds-size-50, 0.25rem)}auro-counter-button{display:flex}`;
2663
+ var helptextVersion = '1.0.0';
2456
2664
 
2457
2665
  /* eslint-disable lit/binding-positions, lit/no-invalid-html, max-lines */
2458
2666
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
@@ -2502,6 +2710,11 @@ class AuroCounter extends i$2 {
2502
2710
  */
2503
2711
  this.iconTag = versioning.generateTag("auro-formkit-counter-icon", iconVersion$2, AuroIcon$2);
2504
2712
 
2713
+ /**
2714
+ * @private
2715
+ */
2716
+ this.helpTextTag = versioning.generateTag('auro-formkit-input-helptext', helptextVersion, AuroHelpText$1);
2717
+
2505
2718
  /**
2506
2719
  * @private
2507
2720
  * @property {boolean} delegatesFocus - Whether the shadow root delegates focus.
@@ -2562,6 +2775,15 @@ class AuroCounter extends i$2 {
2562
2775
  type: Boolean,
2563
2776
  },
2564
2777
 
2778
+ /**
2779
+ * Error state and message.
2780
+ * True if set, value is the error message.
2781
+ */
2782
+ error: {
2783
+ type: String,
2784
+ reflect: false,
2785
+ },
2786
+
2565
2787
  /**
2566
2788
  * The maximum value for the counter.
2567
2789
  */
@@ -2616,8 +2838,8 @@ class AuroCounter extends i$2 {
2616
2838
  static get styles() {
2617
2839
  return [
2618
2840
  tokens,
2619
- colorCss$6,
2620
- styleCss$7
2841
+ colorCss$7,
2842
+ styleCss$8
2621
2843
  ];
2622
2844
  }
2623
2845
 
@@ -2758,56 +2980,85 @@ class AuroCounter extends i$2 {
2758
2980
  }
2759
2981
  }
2760
2982
 
2761
- render() {
2983
+ /**
2984
+ * Returns HTML for the help text and error message.
2985
+ * @private
2986
+ * @returns {html} - Returns HTML for the help text and error message.
2987
+ */
2988
+ renderHelpText() {
2762
2989
  return u`
2763
- <div class="counter">
2764
- <div class="content" >
2765
- <label id="counter-label" class="label"><slot @slotchange="${this.onDefaultSlotChange}" ></slot></label>
2766
- <slot id="counter-description" name="description"></slot>
2767
- </div>
2768
- <div
2769
- part="counterControl"
2770
- aria-labelledby="counter-label"
2771
- aria-describedby="counter-description"
2772
- tabindex="${this.disabled ? '-1' : '0'}"
2773
- role="spinbutton"
2774
- aria-valuemin="${this.min}"
2775
- aria-valuemax="${this.max}"
2776
- aria-valuenow="${this.value}"
2777
- aria-valuetext="${this.value !== undefined ? this.value : this.min}"
2778
- >
2779
- <auro-counter-button
2780
- aria-hidden="true"
2781
- .tabindex="${'-1'}"
2782
- part="controlMinus"
2783
- @click="${() => this.decrement()}"
2784
- ?onDark="${this.onDark}"
2785
- ?disabled="${this.disabled || this.disableMin || this.isIncrementDisabled(this.min)}"
2786
- >
2787
- <${this.iconTag} class="controlIcon" customSvg> ${IconUtil.generateSvgHtml(minusIcon)} </${this.iconTag}>
2788
- </auro-counter-button>
2990
+ ${!this.validity || this.validity === undefined || this.validity === 'valid'
2991
+ ? u`
2992
+ <${this.helpTextTag} ?onDark="${this.onDark}">
2993
+ <p id="${this.uniqueId}" part="helpText">
2994
+ <slot name="helptext"></slot>
2995
+ </p>
2996
+ </${this.helpTextTag}>
2997
+ `
2998
+ : u`
2999
+ <${this.helpTextTag} error ?onDark="${this.onDark}">
3000
+ <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
3001
+ ${this.errorMessage}
3002
+ </p>
3003
+ </${this.helpTextTag}>
3004
+ `
3005
+ }
3006
+ `;
3007
+ }
2789
3008
 
2790
- <div class="quantityWrapper">
2791
- <div class="quantity">${this.value !== undefined ? this.value : this.min}</div>
3009
+ render() {
3010
+ return u`
3011
+ <div class="counterWrapper">
3012
+ <div class="counter">
3013
+ <div class="content" >
3014
+ <label id="counter-label" class="label"><slot @slotchange="${this.onDefaultSlotChange}" ></slot></label>
3015
+ <slot id="counter-description" name="description"></slot>
2792
3016
  </div>
2793
-
2794
- <auro-counter-button
2795
- aria-hidden="true"
2796
- .tabindex="${'-1'}"
2797
- part="controlPlus"
2798
- @click="${() => this.increment()}"
2799
- ?onDark="${this.onDark}"
2800
- ?disabled="${this.disabled || this.disableMax || this.isIncrementDisabled(this.max)}"
3017
+ <div
3018
+ part="counterControl"
3019
+ aria-labelledby="counter-label"
3020
+ aria-describedby="counter-description"
3021
+ tabindex="${this.disabled ? '-1' : '0'}"
3022
+ role="spinbutton"
3023
+ aria-valuemin="${this.min}"
3024
+ aria-valuemax="${this.max}"
3025
+ aria-valuenow="${this.value}"
3026
+ aria-valuetext="${this.value !== undefined ? this.value : this.min}"
2801
3027
  >
2802
- <${this.iconTag} class="controlIcon" customSvg> ${IconUtil.generateSvgHtml(plusIcon)} </${this.iconTag}>
2803
- </auro-counter-button>
3028
+ <auro-counter-button
3029
+ aria-hidden="true"
3030
+ .tabindex="${'-1'}"
3031
+ part="controlMinus"
3032
+ @click="${() => this.decrement()}"
3033
+ ?onDark="${this.onDark}"
3034
+ ?disabled="${this.disabled || this.disableMin || this.isIncrementDisabled(this.min)}"
3035
+ >
3036
+ <${this.iconTag} class="controlIcon" customSvg> ${IconUtil.generateSvgHtml(minusIcon)} </${this.iconTag}>
3037
+ </auro-counter-button>
3038
+
3039
+ <div class="quantityWrapper">
3040
+ <div class="quantity">${this.value !== undefined ? this.value : this.min}</div>
3041
+ </div>
3042
+
3043
+ <auro-counter-button
3044
+ aria-hidden="true"
3045
+ .tabindex="${'-1'}"
3046
+ part="controlPlus"
3047
+ @click="${() => this.increment()}"
3048
+ ?onDark="${this.onDark}"
3049
+ ?disabled="${this.disabled || this.disableMax || this.isIncrementDisabled(this.max)}"
3050
+ >
3051
+ <${this.iconTag} class="controlIcon" customSvg> ${IconUtil.generateSvgHtml(plusIcon)} </${this.iconTag}>
3052
+ </auro-counter-button>
3053
+ </div>
2804
3054
  </div>
3055
+ ${this.renderHelpText()}
2805
3056
  </div>
2806
3057
  `;
2807
3058
  }
2808
3059
  }
2809
3060
 
2810
- var counterGroupStyles = i$5`:host(:not([layout=classic])) .triggerContent{padding:0 8px 0 24px}:host(:not([layout=classic])) [auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-counter-trigger-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-counter-trigger-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-counter-trigger-background-color)}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}.mainContent{display:flex;width:100%;flex-direction:column;align-items:flex-start;justify-content:center}label{font-size:var(--ds-text-body-size-default, 1rem);line-height:20px}label.filled{font-size:var(--ds-text-body-size-xs, 0.75rem)}slot[name=valueText]{font-size:var(--ds-text-body-size-default, 1rem);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.counters{display:flex;flex-direction:column;gap:var(--ds-size-300, 1.5rem)}.counters ::slotted(auro-counter:not(:first-of-type)){padding-top:var(--ds-size-300, 1.5rem);border-top-width:1px;border-top-style:solid}`;
3061
+ var counterGroupStyles = i$5`:host(:not([layout=classic])) .triggerContent{padding:0 var(--ds-size-50, 0.25rem) 0 var(--ds-size-150, 0.75rem)}:host([layout=snowflake]) [auro-dropdown] .mainContent{align-items:center}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}.mainContent{display:flex;width:100%;flex-direction:column;align-items:flex-start;justify-content:center}label{font-size:var(--ds-text-body-size-default, 1rem);line-height:20px}label.filled{font-size:var(--ds-text-body-size-xs, 0.75rem)}.accents ::slotted([slot=typeIcon]){margin-right:8px}.accents ::slotted(*):not(.util_displayHidden){display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}slot[name=valueText]{font-size:var(--ds-text-body-size-default, 1rem);overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.counters{display:flex;flex-direction:column;gap:var(--ds-size-300, 1.5rem)}.counters ::slotted(auro-counter:not(:first-of-type)){padding-top:var(--ds-size-300, 1.5rem);border-top-width:1px;border-top-style:solid}[auro-helptext] [part=helpText]{display:flex;flex-direction:column}[auro-helptext] [part=helpText]>p{margin-block:0}`;
2811
3062
 
2812
3063
  var shapeSizeCss$1 = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
2813
3064
 
@@ -5049,290 +5300,389 @@ class AuroFloatingUI {
5049
5300
  }
5050
5301
  }
5051
5302
 
5052
- // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5053
- // See LICENSE in the project root for license information.
5054
-
5055
-
5056
- let AuroDependencyVersioning$1 = class AuroDependencyVersioning {
5303
+ // Selectors for focusable elements
5304
+ const FOCUSABLE_SELECTORS = [
5305
+ 'a[href]',
5306
+ 'button:not([disabled])',
5307
+ 'textarea:not([disabled])',
5308
+ 'input:not([disabled])',
5309
+ 'select:not([disabled])',
5310
+ '[role="tab"]:not([disabled])',
5311
+ '[role="link"]:not([disabled])',
5312
+ '[role="button"]:not([disabled])',
5313
+ '[tabindex]:not([tabindex="-1"])',
5314
+ '[contenteditable]:not([contenteditable="false"])'
5315
+ ];
5057
5316
 
5058
- /**
5059
- * Generates a unique string to be used for child auro element naming.
5060
- * @private
5061
- * @param {string} baseName - Defines the first part of the unique element name.
5062
- * @param {string} version - Version of the component that will be appended to the baseName.
5063
- * @returns {string} - Unique string to be used for naming.
5064
- */
5065
- generateElementName(baseName, version) {
5066
- let result = baseName;
5067
-
5068
- result += '-';
5069
- result += version.replace(/[.]/g, '_');
5070
-
5071
- return result;
5072
- }
5317
+ // List of custom components that are known to be focusable
5318
+ const FOCUSABLE_COMPONENTS = [
5319
+ 'auro-checkbox',
5320
+ 'auro-radio',
5321
+ 'auro-dropdown',
5322
+ 'auro-button',
5323
+ 'auro-combobox',
5324
+ 'auro-input',
5325
+ 'auro-counter',
5326
+ 'auro-menu',
5327
+ 'auro-select',
5328
+ 'auro-datepicker',
5329
+ 'auro-hyperlink',
5330
+ 'auro-accordion',
5331
+ ];
5073
5332
 
5074
- /**
5075
- * Generates a unique string to be used for child auro element naming.
5076
- * @param {string} baseName - Defines the first part of the unique element name.
5077
- * @param {string} version - Version of the component that will be appended to the baseName.
5078
- * @returns {string} - Unique string to be used for naming.
5079
- */
5080
- generateTag(baseName, version, tagClass) {
5081
- const elementName = this.generateElementName(baseName, version);
5082
- const tag = i$1`${s(elementName)}`;
5333
+ /**
5334
+ * Determines if a given element is a custom focusable component.
5335
+ * Returns true if the element matches a known focusable component and is not disabled.
5336
+ *
5337
+ * @param {HTMLElement} element The element to check for focusability.
5338
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
5339
+ */
5340
+ function isFocusableComponent(element) {
5341
+ const componentName = element.tagName.toLowerCase();
5083
5342
 
5084
- if (!customElements.get(elementName)) {
5085
- customElements.define(elementName, class extends tagClass {});
5086
- }
5343
+ // Guard Clause: Element is a focusable component
5344
+ if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
5087
5345
 
5088
- return tag;
5089
- }
5090
- };
5346
+ // Guard Clause: Element is not disabled
5347
+ if (element.hasAttribute('disabled')) return false;
5091
5348
 
5092
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5093
- // See LICENSE in the project root for license information.
5349
+ // Guard Clause: The element is a hyperlink and has no href attribute
5350
+ if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
5094
5351
 
5352
+ // If all guard clauses pass, the element is a focusable component
5353
+ return true;
5354
+ }
5095
5355
 
5096
5356
  /**
5097
- * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
5098
- * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
5099
- * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
5357
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
5358
+ * Returns a unique, ordered array of elements that can receive focus.
5359
+ *
5360
+ * @param {HTMLElement} container The container to search within
5361
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
5100
5362
  */
5363
+ function getFocusableElements(container) {
5364
+ // Get elements in DOM order by walking the tree
5365
+ const orderedFocusableElements = [];
5101
5366
 
5102
- let AuroElement$1$1 = class AuroElement extends i$2 {
5103
-
5104
- // function to define props used within the scope of this component
5105
- static get properties() {
5106
- return {
5107
- hidden: { type: Boolean,
5108
- reflect: true },
5109
- hiddenVisually: { type: Boolean,
5110
- reflect: true },
5111
- hiddenAudible: { type: Boolean,
5112
- reflect: true },
5113
- };
5114
- }
5367
+ // Define a recursive function to collect focusable elements in DOM order
5368
+ const collectFocusableElements = (root) => {
5369
+ // Check if current element is focusable
5370
+ if (root.nodeType === Node.ELEMENT_NODE) {
5371
+ // Check if this is a custom component that is focusable
5372
+ const isComponentFocusable = isFocusableComponent(root);
5115
5373
 
5116
- /**
5117
- * @private Function that determines state of aria-hidden
5118
- */
5119
- hideAudible(value) {
5120
- if (value) {
5121
- return 'true'
5122
- }
5374
+ if (isComponentFocusable) {
5375
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
5376
+ orderedFocusableElements.push(root);
5377
+ return; // Skip traversing inside this component
5378
+ }
5123
5379
 
5124
- return 'false'
5125
- }
5126
- };
5380
+ // Check if the element itself matches any selector
5381
+ for (const selector of FOCUSABLE_SELECTORS) {
5382
+ if (root.matches?.(selector)) {
5383
+ orderedFocusableElements.push(root);
5384
+ break; // Once we know it's focusable, no need to check other selectors
5385
+ }
5386
+ }
5127
5387
 
5128
- var error$1 = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><desc id=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
5388
+ // Process shadow DOM only for non-Auro components
5389
+ if (root.shadowRoot) {
5390
+ // Process shadow DOM children in order
5391
+ if (root.shadowRoot.children) {
5392
+ Array.from(root.shadowRoot.children).forEach(child => {
5393
+ collectFocusableElements(child);
5394
+ });
5395
+ }
5396
+ }
5129
5397
 
5130
- /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
5398
+ // Process slots and their assigned nodes in order
5399
+ if (root.tagName === 'SLOT') {
5400
+ const assignedNodes = root.assignedNodes({ flatten: true });
5401
+ for (const node of assignedNodes) {
5402
+ collectFocusableElements(node);
5403
+ }
5404
+ } else {
5405
+ // Process light DOM children in order
5406
+ if (root.children) {
5407
+ Array.from(root.children).forEach(child => {
5408
+ collectFocusableElements(child);
5409
+ });
5410
+ }
5411
+ }
5412
+ }
5413
+ };
5131
5414
 
5132
- const _fetchMap$1 = new Map();
5415
+ // Start the traversal from the container
5416
+ collectFocusableElements(container);
5133
5417
 
5134
- /**
5135
- * A callback to parse Response body.
5136
- *
5137
- * @callback ResponseParser
5138
- * @param {Fetch.Response} response
5139
- * @returns {Promise}
5140
- */
5418
+ // Remove duplicates that might have been collected through different paths
5419
+ // while preserving order
5420
+ const uniqueElements = [];
5421
+ const seen = new Set();
5141
5422
 
5142
- /**
5143
- * A minimal in-memory map to de-duplicate Fetch API media requests.
5144
- *
5145
- * @param {String} uri
5146
- * @param {Object} [options={}]
5147
- * @param {ResponseParser} [options.responseParser=(response) => response.text()]
5148
- * @returns {Promise}
5149
- */
5150
- const cacheFetch$1 = (uri, options = {}) => {
5151
- const responseParser = options.responseParser || ((response) => response.text());
5152
- if (!_fetchMap$1.has(uri)) {
5153
- _fetchMap$1.set(uri, fetch(uri).then(responseParser));
5423
+ for (const element of orderedFocusableElements) {
5424
+ if (!seen.has(element)) {
5425
+ seen.add(element);
5426
+ uniqueElements.push(element);
5427
+ }
5154
5428
  }
5155
- return _fetchMap$1.get(uri);
5156
- };
5157
-
5158
- var styleCss$2$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
5159
-
5160
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5161
- // See LICENSE in the project root for license information.
5162
5429
 
5430
+ return uniqueElements;
5431
+ }
5163
5432
 
5164
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
5165
5433
  /**
5166
- * @slot - Hidden from visibility, used for a11y if icon description is needed
5434
+ * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
5435
+ * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
5167
5436
  */
5437
+ class FocusTrap {
5438
+ /**
5439
+ * Creates a new FocusTrap instance for the given container element.
5440
+ * Initializes event listeners and prepares the container for focus management.
5441
+ *
5442
+ * @param {HTMLElement} container The DOM element to trap focus within.
5443
+ * @throws {Error} If the provided container is not a valid HTMLElement.
5444
+ */
5445
+ constructor(container) {
5446
+ if (!container || !(container instanceof HTMLElement)) {
5447
+ throw new Error("FocusTrap requires a valid HTMLElement.");
5448
+ }
5168
5449
 
5169
- // build the component class
5170
- let BaseIcon$1 = class BaseIcon extends AuroElement$1$1 {
5171
- constructor() {
5172
- super();
5173
- this.onDark = false;
5174
- }
5175
-
5176
- // function to define props used within the scope of this component
5177
- static get properties() {
5178
- return {
5179
- ...super.properties,
5180
-
5181
- /**
5182
- * Set value for on-dark version of auro-icon.
5183
- */
5184
- onDark: {
5185
- type: Boolean,
5186
- reflect: true
5187
- },
5188
-
5189
- /**
5190
- * @private
5191
- */
5192
- svg: {
5193
- attribute: false,
5194
- reflect: true
5195
- }
5196
- };
5197
- }
5450
+ this.container = container;
5451
+ this.tabDirection = 'forward'; // or 'backward'
5198
5452
 
5199
- static get styles() {
5200
- return i$5`
5201
- ${styleCss$2$1}
5202
- `;
5453
+ this._init();
5203
5454
  }
5204
5455
 
5205
5456
  /**
5206
- * Async function to fetch requested icon from npm CDN.
5457
+ * Initializes the focus trap by setting up event listeners and attributes on the container.
5458
+ * Prepares the container for focus management, including support for shadow DOM and inert attributes.
5459
+ *
5207
5460
  * @private
5208
- * @param {string} category - Icon category.
5209
- * @param {string} name - Icon name.
5210
- * @returns {SVGElement} DOM - Ready HTML to be appended.
5211
5461
  */
5212
- async fetchIcon(category, name) {
5213
- let iconHTML = '';
5462
+ _init() {
5214
5463
 
5215
- if (category === 'logos') {
5216
- iconHTML = await cacheFetch$1(`${this.uri}/${category}/${name}.svg`);
5217
- } else {
5218
- iconHTML = await cacheFetch$1(`${this.uri}/icons/${category}/${name}.svg`);
5464
+ // Add inert attribute to prevent focusing programmatically as well (if supported)
5465
+ if ('inert' in HTMLElement.prototype) {
5466
+ this.container.inert = false; // Ensure the container isn't inert
5467
+ this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
5219
5468
  }
5220
5469
 
5221
- const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
5222
-
5223
- return dom.body.querySelector('svg');
5470
+ // Track tab direction
5471
+ this.container.addEventListener('keydown', this._onKeydown);
5224
5472
  }
5225
5473
 
5226
- // lifecycle function
5227
- async firstUpdated() {
5228
- if (!this.customSvg) {
5229
- const svg = await this.fetchIcon(this.category, this.name);
5474
+ /**
5475
+ * Handles keydown events to manage tab navigation within the container.
5476
+ * Ensures that focus wraps around when reaching the first or last focusable element.
5477
+ *
5478
+ * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
5479
+ * @private
5480
+ */
5481
+ _onKeydown = (e) => {
5482
+
5483
+ if (e.key === 'Tab') {
5230
5484
 
5231
- if (svg) {
5232
- this.svg = svg;
5233
- } else if (!svg) {
5234
- const penDOM = new DOMParser().parseFromString(error$1.svg, 'text/html');
5485
+ // Set the tab direction based on the key pressed
5486
+ this.tabDirection = e.shiftKey ? 'backward' : 'forward';
5235
5487
 
5236
- this.svg = penDOM.body.firstChild;
5488
+ // Get the active element(s) in the document and shadow root
5489
+ // This will include the active element in the shadow DOM if it exists
5490
+ // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
5491
+ let activeElement = document.activeElement;
5492
+ const actives = [activeElement];
5493
+ while (activeElement?.shadowRoot?.activeElement) {
5494
+ actives.push(activeElement.shadowRoot.activeElement);
5495
+ activeElement = activeElement.shadowRoot.activeElement;
5237
5496
  }
5238
- }
5239
- }
5240
- };
5241
-
5242
- var tokensCss$2$1 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
5243
5497
 
5244
- var colorCss$3$1 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
5245
-
5246
- // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5247
- // See LICENSE in the project root for license information.
5248
-
5249
- // ---------------------------------------------------------------------
5498
+ // Update the focusable elements
5499
+ const focusables = this._getFocusableElements();
5250
5500
 
5251
- /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5501
+ // If we're at either end of the focusable elements, wrap around to the other end
5502
+ const focusIndex =
5503
+ (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
5504
+ ? focusables.length - 1
5505
+ : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
5506
+ ? 0
5507
+ : null;
5252
5508
 
5253
- let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
5509
+ if (focusIndex !== null) {
5510
+ focusables[focusIndex].focus();
5511
+ e.preventDefault(); // Prevent default tab behavior
5512
+ e.stopPropagation(); // Stop the event from bubbling up
5513
+ }
5514
+ }
5515
+ };
5254
5516
 
5255
- /* eslint-disable jsdoc/require-param */
5517
+ /**
5518
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
5519
+ * Returns a unique, ordered array of elements that can receive focus.
5520
+ *
5521
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
5522
+ * @private
5523
+ */
5524
+ _getFocusableElements() {
5525
+ // Use the imported utility function to get focusable elements
5526
+ const elements = getFocusableElements(this.container);
5527
+
5528
+ // Filter out any elements with the 'focus-bookend' class
5529
+ return elements;
5530
+ }
5256
5531
 
5257
5532
  /**
5258
- * This will register a new custom element with the browser.
5259
- * @param {String} name - The name of the custom element.
5260
- * @param {Object} componentClass - The class to register as a custom element.
5261
- * @returns {void}
5533
+ * Moves focus to the first focusable element within the container.
5534
+ * Useful for setting initial focus when activating the focus trap.
5262
5535
  */
5263
- registerComponent(name, componentClass) {
5264
- if (!customElements.get(name)) {
5265
- customElements.define(name, class extends componentClass {});
5266
- }
5536
+ focusFirstElement() {
5537
+ const focusables = this._getFocusableElements();
5538
+ if (focusables.length) focusables[0].focus();
5267
5539
  }
5268
5540
 
5269
5541
  /**
5270
- * Finds and returns the closest HTML Element based on a selector.
5271
- * @returns {void}
5542
+ * Moves focus to the last focusable element within the container.
5543
+ * Useful for setting focus when deactivating or cycling focus in reverse.
5272
5544
  */
5273
- closestElement(
5274
- selector, // selector like in .closest()
5275
- base = this, // extra functionality to skip a parent
5276
- __Closest = (el, found = el && el.closest(selector)) =>
5277
- !el || el === document || el === window
5278
- ? null // standard .closest() returns null for non-found selectors also
5279
- : found
5280
- ? found // found a selector INside this element
5281
- : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5282
- ) {
5283
- return __Closest(base);
5545
+ focusLastElement() {
5546
+ const focusables = this._getFocusableElements();
5547
+ if (focusables.length) focusables[focusables.length - 1].focus();
5284
5548
  }
5285
- /* eslint-enable jsdoc/require-param */
5286
5549
 
5287
5550
  /**
5288
- * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
5289
- * @param {Object} elem - The element to check.
5290
- * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5291
- * @returns {void}
5551
+ * Removes event listeners and attributes added by the focus trap.
5552
+ * Call this method to clean up when the focus trap is no longer needed.
5292
5553
  */
5293
- handleComponentTagRename(elem, tagName) {
5294
- const tag = tagName.toLowerCase();
5295
- const elemTag = elem.tagName.toLowerCase();
5554
+ disconnect() {
5296
5555
 
5297
- if (elemTag !== tag) {
5298
- elem.setAttribute(tag, true);
5556
+ if (this.container.hasAttribute('data-focus-trap-container')) {
5557
+ this.container.removeAttribute('data-focus-trap-container');
5299
5558
  }
5559
+
5560
+ this.container.removeEventListener('keydown', this._onKeydown);
5300
5561
  }
5562
+ }
5563
+
5564
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5565
+ // See LICENSE in the project root for license information.
5566
+
5567
+
5568
+ let AuroDependencyVersioning$1 = class AuroDependencyVersioning {
5301
5569
 
5302
5570
  /**
5303
- * Validates if an element is a specific Auro component.
5304
- * @param {Object} elem - The element to validate.
5305
- * @param {String} tagName - The name of the Auro component to check against.
5306
- * @returns {Boolean} - Returns true if the element is the specified Auro component.
5571
+ * Generates a unique string to be used for child auro element naming.
5572
+ * @private
5573
+ * @param {string} baseName - Defines the first part of the unique element name.
5574
+ * @param {string} version - Version of the component that will be appended to the baseName.
5575
+ * @returns {string} - Unique string to be used for naming.
5307
5576
  */
5308
- elementMatch(elem, tagName) {
5309
- const tag = tagName.toLowerCase();
5310
- const elemTag = elem.tagName.toLowerCase();
5577
+ generateElementName(baseName, version) {
5578
+ let result = baseName;
5311
5579
 
5312
- return elemTag === tag || elem.hasAttribute(tag);
5580
+ result += '-';
5581
+ result += version.replace(/[.]/g, '_');
5582
+
5583
+ return result;
5584
+ }
5585
+
5586
+ /**
5587
+ * Generates a unique string to be used for child auro element naming.
5588
+ * @param {string} baseName - Defines the first part of the unique element name.
5589
+ * @param {string} version - Version of the component that will be appended to the baseName.
5590
+ * @returns {string} - Unique string to be used for naming.
5591
+ */
5592
+ generateTag(baseName, version, tagClass) {
5593
+ const elementName = this.generateElementName(baseName, version);
5594
+ const tag = i$1`${s(elementName)}`;
5595
+
5596
+ if (!customElements.get(elementName)) {
5597
+ customElements.define(elementName, class extends tagClass {});
5598
+ }
5599
+
5600
+ return tag;
5313
5601
  }
5314
5602
  };
5315
5603
 
5316
- // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5604
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5317
5605
  // See LICENSE in the project root for license information.
5318
5606
 
5319
5607
 
5320
- let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5321
- constructor() {
5322
- super();
5608
+ /**
5609
+ * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
5610
+ * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
5611
+ * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
5612
+ */
5323
5613
 
5324
- this.variant = undefined;
5325
- this.privateDefaults();
5614
+ let AuroElement$1$1 = class AuroElement extends i$2 {
5615
+
5616
+ // function to define props used within the scope of this component
5617
+ static get properties() {
5618
+ return {
5619
+ hidden: { type: Boolean,
5620
+ reflect: true },
5621
+ hiddenVisually: { type: Boolean,
5622
+ reflect: true },
5623
+ hiddenAudible: { type: Boolean,
5624
+ reflect: true },
5625
+ };
5326
5626
  }
5327
5627
 
5328
5628
  /**
5329
- * Internal Defaults.
5330
- * @private
5331
- * @returns {void}
5629
+ * @private Function that determines state of aria-hidden
5332
5630
  */
5333
- privateDefaults() {
5334
- this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
5335
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
5631
+ hideAudible(value) {
5632
+ if (value) {
5633
+ return 'true'
5634
+ }
5635
+
5636
+ return 'false'
5637
+ }
5638
+ };
5639
+
5640
+ var error$1 = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><desc id=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
5641
+
5642
+ /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
5643
+
5644
+ const _fetchMap$1 = new Map();
5645
+
5646
+ /**
5647
+ * A callback to parse Response body.
5648
+ *
5649
+ * @callback ResponseParser
5650
+ * @param {Fetch.Response} response
5651
+ * @returns {Promise}
5652
+ */
5653
+
5654
+ /**
5655
+ * A minimal in-memory map to de-duplicate Fetch API media requests.
5656
+ *
5657
+ * @param {String} uri
5658
+ * @param {Object} [options={}]
5659
+ * @param {ResponseParser} [options.responseParser=(response) => response.text()]
5660
+ * @returns {Promise}
5661
+ */
5662
+ const cacheFetch$1 = (uri, options = {}) => {
5663
+ const responseParser = options.responseParser || ((response) => response.text());
5664
+ if (!_fetchMap$1.has(uri)) {
5665
+ _fetchMap$1.set(uri, fetch(uri).then(responseParser));
5666
+ }
5667
+ return _fetchMap$1.get(uri);
5668
+ };
5669
+
5670
+ var styleCss$2$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
5671
+
5672
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5673
+ // See LICENSE in the project root for license information.
5674
+
5675
+
5676
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
5677
+ /**
5678
+ * @slot - Hidden from visibility, used for a11y if icon description is needed
5679
+ */
5680
+
5681
+ // build the component class
5682
+ let BaseIcon$1 = class BaseIcon extends AuroElement$1$1 {
5683
+ constructor() {
5684
+ super();
5685
+ this.onDark = false;
5336
5686
  }
5337
5687
 
5338
5688
  // function to define props used within the scope of this component
@@ -5341,15 +5691,177 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5341
5691
  ...super.properties,
5342
5692
 
5343
5693
  /**
5344
- * Set aria-hidden value. Default is `true`. Option is `false`.
5694
+ * Set value for on-dark version of auro-icon.
5345
5695
  */
5346
- ariaHidden: {
5347
- type: String,
5696
+ onDark: {
5697
+ type: Boolean,
5348
5698
  reflect: true
5349
5699
  },
5350
5700
 
5351
5701
  /**
5352
- * The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
5702
+ * @private
5703
+ */
5704
+ svg: {
5705
+ attribute: false,
5706
+ reflect: true
5707
+ }
5708
+ };
5709
+ }
5710
+
5711
+ static get styles() {
5712
+ return i$5`
5713
+ ${styleCss$2$1}
5714
+ `;
5715
+ }
5716
+
5717
+ /**
5718
+ * Async function to fetch requested icon from npm CDN.
5719
+ * @private
5720
+ * @param {string} category - Icon category.
5721
+ * @param {string} name - Icon name.
5722
+ * @returns {SVGElement} DOM - Ready HTML to be appended.
5723
+ */
5724
+ async fetchIcon(category, name) {
5725
+ let iconHTML = '';
5726
+
5727
+ if (category === 'logos') {
5728
+ iconHTML = await cacheFetch$1(`${this.uri}/${category}/${name}.svg`);
5729
+ } else {
5730
+ iconHTML = await cacheFetch$1(`${this.uri}/icons/${category}/${name}.svg`);
5731
+ }
5732
+
5733
+ const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
5734
+
5735
+ return dom.body.querySelector('svg');
5736
+ }
5737
+
5738
+ // lifecycle function
5739
+ async firstUpdated() {
5740
+ if (!this.customSvg) {
5741
+ const svg = await this.fetchIcon(this.category, this.name);
5742
+
5743
+ if (svg) {
5744
+ this.svg = svg;
5745
+ } else if (!svg) {
5746
+ const penDOM = new DOMParser().parseFromString(error$1.svg, 'text/html');
5747
+
5748
+ this.svg = penDOM.body.firstChild;
5749
+ }
5750
+ }
5751
+ }
5752
+ };
5753
+
5754
+ var tokensCss$2$1 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
5755
+
5756
+ var colorCss$3$1 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
5757
+
5758
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5759
+ // See LICENSE in the project root for license information.
5760
+
5761
+ // ---------------------------------------------------------------------
5762
+
5763
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5764
+
5765
+ let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
5766
+
5767
+ /* eslint-disable jsdoc/require-param */
5768
+
5769
+ /**
5770
+ * This will register a new custom element with the browser.
5771
+ * @param {String} name - The name of the custom element.
5772
+ * @param {Object} componentClass - The class to register as a custom element.
5773
+ * @returns {void}
5774
+ */
5775
+ registerComponent(name, componentClass) {
5776
+ if (!customElements.get(name)) {
5777
+ customElements.define(name, class extends componentClass {});
5778
+ }
5779
+ }
5780
+
5781
+ /**
5782
+ * Finds and returns the closest HTML Element based on a selector.
5783
+ * @returns {void}
5784
+ */
5785
+ closestElement(
5786
+ selector, // selector like in .closest()
5787
+ base = this, // extra functionality to skip a parent
5788
+ __Closest = (el, found = el && el.closest(selector)) =>
5789
+ !el || el === document || el === window
5790
+ ? null // standard .closest() returns null for non-found selectors also
5791
+ : found
5792
+ ? found // found a selector INside this element
5793
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5794
+ ) {
5795
+ return __Closest(base);
5796
+ }
5797
+ /* eslint-enable jsdoc/require-param */
5798
+
5799
+ /**
5800
+ * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
5801
+ * @param {Object} elem - The element to check.
5802
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5803
+ * @returns {void}
5804
+ */
5805
+ handleComponentTagRename(elem, tagName) {
5806
+ const tag = tagName.toLowerCase();
5807
+ const elemTag = elem.tagName.toLowerCase();
5808
+
5809
+ if (elemTag !== tag) {
5810
+ elem.setAttribute(tag, true);
5811
+ }
5812
+ }
5813
+
5814
+ /**
5815
+ * Validates if an element is a specific Auro component.
5816
+ * @param {Object} elem - The element to validate.
5817
+ * @param {String} tagName - The name of the Auro component to check against.
5818
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5819
+ */
5820
+ elementMatch(elem, tagName) {
5821
+ const tag = tagName.toLowerCase();
5822
+ const elemTag = elem.tagName.toLowerCase();
5823
+
5824
+ return elemTag === tag || elem.hasAttribute(tag);
5825
+ }
5826
+ };
5827
+
5828
+ // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5829
+ // See LICENSE in the project root for license information.
5830
+
5831
+
5832
+ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5833
+ constructor() {
5834
+ super();
5835
+
5836
+ this.variant = undefined;
5837
+ this.privateDefaults();
5838
+ }
5839
+
5840
+ /**
5841
+ * Internal Defaults.
5842
+ * @private
5843
+ * @returns {void}
5844
+ */
5845
+ privateDefaults() {
5846
+ this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
5847
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
5848
+ }
5849
+
5850
+ // function to define props used within the scope of this component
5851
+ static get properties() {
5852
+ return {
5853
+ ...super.properties,
5854
+
5855
+ /**
5856
+ * Set aria-hidden value. Default is `true`. Option is `false`.
5857
+ */
5858
+ ariaHidden: {
5859
+ type: String,
5860
+ reflect: true
5861
+ },
5862
+
5863
+ /**
5864
+ * The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
5353
5865
  */
5354
5866
  category: {
5355
5867
  type: String,
@@ -5486,11 +5998,11 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5486
5998
 
5487
5999
  var iconVersion$1 = '6.1.2';
5488
6000
 
5489
- var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){top:0;left:0;width:100dvw;height:100dvh}:host([isfullscreen]) .container{width:100%;max-width:none;height:100%;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
6001
+ var styleCss$1$1 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
5490
6002
 
5491
6003
  var colorCss$2$1 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
5492
6004
 
5493
- var tokensCss$1$1 = i$5`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
6005
+ var tokensCss$1$1 = i$5`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
5494
6006
 
5495
6007
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5496
6008
  // See LICENSE in the project root for license information.
@@ -5528,7 +6040,7 @@ class AuroDropdownBib extends i$2 {
5528
6040
 
5529
6041
  static get styles() {
5530
6042
  return [
5531
- styleCss$1$2,
6043
+ styleCss$1$1,
5532
6044
  colorCss$2$1,
5533
6045
  tokensCss$1$1
5534
6046
  ];
@@ -5650,17 +6162,6 @@ class AuroDropdownBib extends i$2 {
5650
6162
  }
5651
6163
  }
5652
6164
  });
5653
-
5654
- this.preventBodyScroll = this.preventBodyScroll.bind(this);
5655
- this.addEventListener('touchmove', this.preventBodyScroll, { passive: false });
5656
- this.addEventListener('touchstart', this.preventBodyScroll, { passive: false });
5657
- }
5658
-
5659
- disconnectedCallback() {
5660
- super.disconnectedCallback();
5661
-
5662
- this.removeEventListener('touchmove', this.preventBodyScroll, { passive: false });
5663
- this.removeEventListener('touchstart', this.preventBodyScroll, { passive: false });
5664
6165
  }
5665
6166
 
5666
6167
  firstUpdated(changedProperties) {
@@ -5676,19 +6177,6 @@ class AuroDropdownBib extends i$2 {
5676
6177
  }));
5677
6178
  }
5678
6179
 
5679
- /**
5680
- * Prevents scrolling of the body when touching empty areas of the component.
5681
- * @param {Event} event - The touchmove event.
5682
- * @returns {void}
5683
- */
5684
- preventBodyScroll(event) {
5685
- // when touchmove/touchstart on empty space
5686
- if (event.target === this) {
5687
- event.preventDefault();
5688
- event.stopImmediatePropagation();
5689
- }
5690
- }
5691
-
5692
6180
  // function that renders the HTML and CSS into the scope of the component
5693
6181
  render() {
5694
6182
  const classes = {
@@ -5711,21 +6199,21 @@ var dropdownVersion$1 = '3.0.0';
5711
6199
 
5712
6200
  var shapeSizeCss = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
5713
6201
 
5714
- var colorCss$1$2 = i$5`:host .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus,:host(:not([ondark])) .wrapper:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-brand, #00274a)}:host([ondark]) .wrapper:focus,:host([ondark]) .wrapper:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff)}:host([error]:not([ondark])){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([error][ondark]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helpText{color:var(--ds-auro-dropdown-helptext-text-color)}`;
6202
+ var colorCss$1$1 = i$5`:host(:not([layout*=classic])){--ds-auro-dropdown-trigger-border-color: transparent}:host(:not([ondark])) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus-within,:host(:not([ondark])) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host(:not([onDark])[disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([ondark])[error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([onDark]) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([onDark]) .wrapper:focus-within,:host([onDark]) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([onDark][disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}:host([ondark][error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}`;
5715
6203
 
5716
- var classicColorCss = i$5`:host([layout*=classic]:not([onDark])) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([layout*=classic]:not([onDark])) .trigger{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-container-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([layout*=classic]:not([onDark])) .trigger:focus-within,:host([layout*=classic]:not([onDark])) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic][disabled]:not([onDark])){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host([layout*=classic][error]:not([onDark])){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([layout*=classic][error]:not([onDark])) .trigger:focus-within,:host([layout*=classic][error]:not([onDark])) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic][onDark]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([layout*=classic][onDark]) .trigger{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-container-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([layout*=classic][onDark]) .trigger:focus-within,:host([layout*=classic][onDark]) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([layout*=classic][onDark][disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}:host([layout*=classic][onDark][error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host([layout*=classic][onDark][error]) .trigger:focus-within,:host([layout*=classic][onDark][error]) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
6204
+ var classicColorCss = i$5``;
5717
6205
 
5718
- var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .trigger{display:flex;flex-direction:row;box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-outline-color)}@media(hover: hover){:host([layout*=classic]) .trigger:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;justify-content:start;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;padding-right:var(--ds-size-150, 0.75rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([layout*=classic]:not([simple])) .triggerContentWrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([layout*=classic][matchwidth]) #bibSizer{width:100%}:host([layout*=classic][disabled]){pointer-events:none}`;
6206
+ var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .wrapper{display:flex;flex-direction:row;box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-outline-color)}@media(hover: hover){:host([layout*=classic]) .wrapper:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;justify-content:start;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;padding-right:var(--ds-size-150, 0.75rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([matchwidth]) #bibSizer{width:100%}`;
5719
6207
 
5720
- var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex-direction:row}.trigger{display:flex;flex:1;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-right:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}`;
6208
+ var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-right:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}`;
5721
6209
 
5722
- var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex-direction:row}.trigger{display:flex;flex:1;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=snowflake]) .leftIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
6210
+ var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=snowflake]) .leftIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
5723
6211
 
5724
6212
  var colorCss$5 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
5725
6213
 
5726
- var styleCss$6 = i$5`.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
6214
+ var styleCss$6 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
5727
6215
 
5728
- var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
6216
+ var tokensCss$3 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
5729
6217
 
5730
6218
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5731
6219
  // See LICENSE in the project root for license information.
@@ -5734,7 +6222,7 @@ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
5734
6222
 
5735
6223
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5736
6224
 
5737
- let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
6225
+ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
5738
6226
 
5739
6227
  /* eslint-disable jsdoc/require-param */
5740
6228
 
@@ -5806,7 +6294,7 @@ let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
5806
6294
  *
5807
6295
  * @attr { Boolean } large - If declared, make font-size to 1rem(16px).
5808
6296
  */
5809
- let AuroHelpText$1 = class AuroHelpText extends i$2 {
6297
+ class AuroHelpText extends i$2 {
5810
6298
 
5811
6299
  constructor() {
5812
6300
  super();
@@ -5815,14 +6303,14 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
5815
6303
  this.onDark = false;
5816
6304
  this.hasTextContent = false;
5817
6305
 
5818
- AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
6306
+ AuroLibraryRuntimeUtils$4.prototype.handleComponentTagRename(this, 'auro-helptext');
5819
6307
  }
5820
6308
 
5821
6309
  static get styles() {
5822
6310
  return [
5823
6311
  colorCss$5,
5824
6312
  styleCss$6,
5825
- tokensCss$4
6313
+ tokensCss$3
5826
6314
  ];
5827
6315
  }
5828
6316
 
@@ -5871,7 +6359,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
5871
6359
  *
5872
6360
  */
5873
6361
  static register(name = "auro-helptext") {
5874
- AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
6362
+ AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHelpText);
5875
6363
  }
5876
6364
 
5877
6365
  updated() {
@@ -5925,7 +6413,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
5925
6413
  </div>
5926
6414
  `;
5927
6415
  }
5928
- };
6416
+ }
5929
6417
 
5930
6418
  var helpTextVersion = '1.0.0';
5931
6419
 
@@ -6028,10 +6516,8 @@ let AuroElement$3 = class AuroElement extends i$2 {
6028
6516
  // See LICENSE in the project root for license information.
6029
6517
 
6030
6518
 
6031
- /**
6032
- * @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
6519
+ /*
6033
6520
  * @slot - Default slot for the popover content.
6034
- * @slot label - Defines the content of the label.
6035
6521
  * @slot helpText - Defines the content of the helpText.
6036
6522
  * @slot trigger - Defines the content of the trigger.
6037
6523
  * @csspart trigger - The trigger content container.
@@ -6050,18 +6536,22 @@ class AuroDropdown extends AuroElement$3 {
6050
6536
  this.matchWidth = false;
6051
6537
  this.noHideOnThisFocusLoss = false;
6052
6538
 
6053
- this.errorMessage = ''; // TODO - check with Doug if there is still more to do here
6539
+ this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
6054
6540
 
6055
6541
  // Layout Config
6056
- this.layout = 'classic';
6057
- this.shape = 'classic';
6058
- this.size = 'xl';
6542
+ this.layout = undefined;
6543
+ this.shape = undefined;
6544
+ this.size = undefined;
6059
6545
 
6060
6546
  this.parentBorder = false;
6061
6547
 
6062
6548
  this.privateDefaults();
6063
6549
  }
6064
6550
 
6551
+ /**
6552
+ * @private
6553
+ * @returns {object} Class definition for the wrapper element.
6554
+ */
6065
6555
  get commonWrapperClasses() {
6066
6556
  return {
6067
6557
  'trigger': true,
@@ -6079,13 +6569,10 @@ class AuroDropdown extends AuroElement$3 {
6079
6569
  privateDefaults() {
6080
6570
  this.chevron = false;
6081
6571
  this.disabled = false;
6572
+ this.disableFocusTrap = false;
6082
6573
  this.error = false;
6083
- this.inset = false;
6084
- this.rounded = false;
6085
6574
  this.tabIndex = 0;
6086
6575
  this.noToggle = false;
6087
- this.a11yAutocomplete = 'none';
6088
- this.labeled = true;
6089
6576
  this.a11yRole = 'button';
6090
6577
  this.onDark = false;
6091
6578
  this.showTriggerBorders = true;
@@ -6145,7 +6632,7 @@ class AuroDropdown extends AuroElement$3 {
6145
6632
  /**
6146
6633
  * @private
6147
6634
  */
6148
- this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion, AuroHelpText$1);
6635
+ this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion, AuroHelpText);
6149
6636
 
6150
6637
  /**
6151
6638
  * @private
@@ -6181,6 +6668,18 @@ class AuroDropdown extends AuroElement$3 {
6181
6668
  this.floater.showBib();
6182
6669
  }
6183
6670
 
6671
+ /**
6672
+ * When bib is open, focus on the first element inside of bib.
6673
+ * If not, trigger element will get focus.
6674
+ */
6675
+ focus() {
6676
+ if (this.isPopoverVisible && this.focusTrap) {
6677
+ this.focusTrap.focusFirstElement();
6678
+ } else {
6679
+ this.trigger.focus();
6680
+ }
6681
+ }
6682
+
6184
6683
  // function to define props used within the scope of this component
6185
6684
  static get properties() {
6186
6685
  return {
@@ -6194,6 +6693,15 @@ class AuroDropdown extends AuroElement$3 {
6194
6693
  reflect: true
6195
6694
  },
6196
6695
 
6696
+ /**
6697
+ * If declared, the dropdown will only show by calling the API .show() public method.
6698
+ * @default false
6699
+ */
6700
+ disableEventShow: {
6701
+ type: Boolean,
6702
+ reflect: true
6703
+ },
6704
+
6197
6705
  /**
6198
6706
  * If declared, applies a border around the trigger slot.
6199
6707
  */
@@ -6212,17 +6720,17 @@ class AuroDropdown extends AuroElement$3 {
6212
6720
  },
6213
6721
 
6214
6722
  /**
6215
- * If declared, the dropdown will be styled with the common theme.
6723
+ * If declared, the dropdown is not interactive.
6216
6724
  */
6217
- common: {
6725
+ disabled: {
6218
6726
  type: Boolean,
6219
6727
  reflect: true
6220
6728
  },
6221
6729
 
6222
6730
  /**
6223
- * If declared, the dropdown is not interactive.
6731
+ * If declared, the focus trap inside of bib will be turned off.
6224
6732
  */
6225
- disabled: {
6733
+ disableFocusTrap: {
6226
6734
  type: Boolean,
6227
6735
  reflect: true
6228
6736
  },
@@ -6267,22 +6775,6 @@ class AuroDropdown extends AuroElement$3 {
6267
6775
  reflect: true
6268
6776
  },
6269
6777
 
6270
- /**
6271
- * Makes the trigger to be full width of its parent container.
6272
- */
6273
- fluid: {
6274
- type: Boolean,
6275
- reflect: true
6276
- },
6277
-
6278
- /**
6279
- * If declared, will apply padding around trigger slot content.
6280
- */
6281
- inset: {
6282
- type: Boolean,
6283
- reflect: true
6284
- },
6285
-
6286
6778
  /**
6287
6779
  * If true, the dropdown bib is displayed.
6288
6780
  */
@@ -6326,15 +6818,6 @@ class AuroDropdown extends AuroElement$3 {
6326
6818
  reflect: true
6327
6819
  },
6328
6820
 
6329
- /**
6330
- * Defines if there is a label preset.
6331
- * @private
6332
- */
6333
- labeled: {
6334
- type: Boolean,
6335
- reflect: true
6336
- },
6337
-
6338
6821
  /**
6339
6822
  * Defines if the trigger should size based on the parent element providing the border UI.
6340
6823
  * @private
@@ -6395,6 +6878,9 @@ class AuroDropdown extends AuroElement$3 {
6395
6878
  reflect: true
6396
6879
  },
6397
6880
 
6881
+ /**
6882
+ * If declared, and a function is set, that function will execute when the slot content is updated.
6883
+ */
6398
6884
  onSlotChange: {
6399
6885
  type: Function,
6400
6886
  reflect: false
@@ -6409,14 +6895,6 @@ class AuroDropdown extends AuroElement$3 {
6409
6895
  reflect: true
6410
6896
  },
6411
6897
 
6412
- /**
6413
- * If declared, will apply border-radius to trigger and default slots.
6414
- */
6415
- rounded: {
6416
- type: Boolean,
6417
- reflect: true
6418
- },
6419
-
6420
6898
  /**
6421
6899
  * @private
6422
6900
  */
@@ -6431,22 +6909,14 @@ class AuroDropdown extends AuroElement$3 {
6431
6909
  type: String || undefined,
6432
6910
  attribute: false,
6433
6911
  reflect: false
6434
- },
6435
-
6436
- /**
6437
- * The value for the aria-autocomplete attribute of the trigger element.
6438
- */
6439
- a11yAutocomplete: {
6440
- type: String,
6441
- attribute: false,
6442
6912
  }
6443
6913
  };
6444
6914
  }
6445
6915
 
6446
6916
  static get styles() {
6447
6917
  return [
6448
- colorCss$1$2,
6449
6918
  tokensCss$1$1,
6919
+ colorCss$1$1,
6450
6920
 
6451
6921
  // default layout
6452
6922
  classicColorCss,
@@ -6509,6 +6979,12 @@ class AuroDropdown extends AuroElement$3 {
6509
6979
  this.handleTriggerContentSlotChange();
6510
6980
  }
6511
6981
 
6982
+ if (changedProperties.has('isPopoverVisible')) {
6983
+ this.updateFocusTrap();
6984
+ if (!this.isPopoverVisible && this.hasFocus) {
6985
+ this.trigger.focus();
6986
+ }
6987
+ }
6512
6988
  }
6513
6989
 
6514
6990
  firstUpdated() {
@@ -6529,9 +7005,6 @@ class AuroDropdown extends AuroElement$3 {
6529
7005
  }
6530
7006
 
6531
7007
  this.bibContent = this.floater.element.bib;
6532
- this.bibContent.setAttribute('role', 'dialog');
6533
- this.bibContent.setAttribute('aria-modal', 'true');
6534
- this.bibContent.setAttribute('aria-labelledby', 'triggerLabel');
6535
7008
 
6536
7009
  // Add the tag name as an attribute if it is different than the component name
6537
7010
  this.runtimeUtils.handleComponentTagRename(this, 'auro-dropdown');
@@ -6578,9 +7051,30 @@ class AuroDropdown extends AuroElement$3 {
6578
7051
  }
6579
7052
 
6580
7053
  /**
6581
- * Function to support @focusout event.
6582
7054
  * @private
6583
- * @return {void}
7055
+ */
7056
+ updateFocusTrap() {
7057
+ // If the dropdown is open, create a focus trap and focus the first element
7058
+ if (this.isPopoverVisible && !this.disableFocusTrap) {
7059
+ this.focusTrap = new FocusTrap(this.bibContent);
7060
+ this.focusTrap.focusFirstElement();
7061
+ return;
7062
+ }
7063
+
7064
+ // Guard Clause: Ensure there is a focus trap currently active before continuing
7065
+ if (!this.focusTrap) {
7066
+ return;
7067
+ }
7068
+
7069
+ // If the dropdown is not open, disconnect the focus trap if it exists
7070
+ this.focusTrap.disconnect();
7071
+ this.focusTrap = undefined;
7072
+ }
7073
+
7074
+ /**
7075
+ * Function to support @focusout event.
7076
+ * @private
7077
+ * @return {void}
6584
7078
  */
6585
7079
  handleFocusout() {
6586
7080
  this.hasFocus = false;
@@ -6862,10 +7356,7 @@ class AuroDropdown extends AuroElement$3 {
6862
7356
  id="bib"
6863
7357
  shape="${this.shape}"
6864
7358
  ?data-show="${this.isPopoverVisible}"
6865
- ?isfullscreen="${this.isBibFullscreen}"
6866
- ?common="${this.common}"
6867
- ?rounded="${this.common || this.rounded}"
6868
- ?inset="${this.common || this.inset}">
7359
+ ?isfullscreen="${this.isBibFullscreen}">
6869
7360
  <div class="slotContent">
6870
7361
  <slot @slotchange="${this.handleDefaultSlot}"></slot>
6871
7362
  </div>
@@ -7615,7 +8106,7 @@ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
7615
8106
 
7616
8107
  var styleCss$2 = i$5`: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}: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:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.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(0deg)}100%{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{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{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%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
7617
8108
 
7618
- var colorCss$1$1 = i$5`: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]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--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}`;
8109
+ var colorCss$1 = i$5`: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]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--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}`;
7619
8110
 
7620
8111
  var tokensCss$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
7621
8112
 
@@ -7694,7 +8185,7 @@ class AuroLoader extends i$2 {
7694
8185
  static get styles() {
7695
8186
  return [
7696
8187
  i$5`${styleCss$2}`,
7697
- i$5`${colorCss$1$1}`,
8188
+ i$5`${colorCss$1}`,
7698
8189
  i$5`${tokensCss$1}`
7699
8190
  ];
7700
8191
  }
@@ -8180,7 +8671,7 @@ const cacheFetch = (uri, options = {}) => {
8180
8671
  return _fetchMap.get(uri);
8181
8672
  };
8182
8673
 
8183
- var styleCss$1$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
8674
+ var styleCss$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
8184
8675
 
8185
8676
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8186
8677
  // See LICENSE in the project root for license information.
@@ -8223,7 +8714,7 @@ class BaseIcon extends AuroElement$2 {
8223
8714
 
8224
8715
  static get styles() {
8225
8716
  return i$5`
8226
- ${styleCss$1$1}
8717
+ ${styleCss$1}
8227
8718
  `;
8228
8719
  }
8229
8720
 
@@ -8264,7 +8755,7 @@ class BaseIcon extends AuroElement$2 {
8264
8755
  }
8265
8756
  }
8266
8757
 
8267
- var tokensCss$3 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
8758
+ var tokensCss = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
8268
8759
 
8269
8760
  var colorCss$4 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
8270
8761
 
@@ -8424,8 +8915,8 @@ class AuroIcon extends BaseIcon {
8424
8915
  static get styles() {
8425
8916
  return [
8426
8917
  super.styles,
8427
- i$5`${tokensCss$3}`,
8428
- i$5`${styleCss$1$1}`,
8918
+ i$5`${tokensCss}`,
8919
+ i$5`${styleCss$1}`,
8429
8920
  i$5`${colorCss$4}`
8430
8921
  ];
8431
8922
  }
@@ -8518,7 +9009,7 @@ var iconVersion = '8.0.4';
8518
9009
 
8519
9010
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
8520
9011
 
8521
- let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
9012
+ class AuroLibraryRuntimeUtils {
8522
9013
 
8523
9014
  /* eslint-disable jsdoc/require-param */
8524
9015
 
@@ -8579,7 +9070,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
8579
9070
 
8580
9071
  return elemTag === tag || elem.hasAttribute(tag);
8581
9072
  }
8582
- };
9073
+ }
8583
9074
 
8584
9075
  var styleCss$5 = i$5`.heading{margin:1.75rem 0;letter-spacing:var(--ds-text-heading-default-spacing, -0.2px);font-weight:var(--ds-text-heading-default-weight, 500)}.heading--display{margin-top:0;font-size:var(--ds-text-heading-display-size-breakpoint-sm, 2.75rem);font-weight:var(--ds-text-heading-display-weight, 100);line-height:var(--ds-text-heading-display-height-breakpoint-sm, 3.375rem)}@media screen and (min-width: 768px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-md, 3rem);line-height:var(--ds-text-heading-display-height-breakpoint-md, 3.75rem)}}@media screen and (min-width: 1024px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-lg, 3.5rem);line-height:var(--ds-text-heading-display-height-breakpoint-lg, 4.25rem)}}.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-sm, 2rem);font-weight:var(--ds-text-heading-800-weight, 500);line-height:var(--ds-text-heading-800-height-breakpoint-sm, 2.375rem)}@media screen and (min-width: 768px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-md, 2.25rem);line-height:var(--ds-text-heading-800-height-breakpoint-md, 2.625rem)}}@media screen and (min-width: 1024px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-lg, 2.5rem);line-height:var(--ds-text-heading-800-height-breakpoint-lg, 3rem)}}.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-sm, 1.75rem);font-weight:var(--ds-text-heading-700-weight, 500);line-height:var(--ds-text-heading-700-height-breakpoint-sm, 2.125rem)}@media screen and (min-width: 768px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-md, 2rem);line-height:var(--ds-text-heading-700-height-breakpoint-md, 2.375rem)}}@media screen and (min-width: 1024px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-lg, 2.25rem);line-height:var(--ds-text-heading-700-height-breakpoint-lg, 2.75rem)}}.heading--600{margin:1rem 0;font-size:var(--ds-text-heading-600-size-breakpoint-sm, 1.625rem);font-weight:var(--ds-text-heading-600-weight, 300);line-height:var(--ds-text-heading-600-height-breakpoint-sm, 1.875rem)}@media screen and (min-width: 768px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-md, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-md, 2.125rem)}}@media screen and (min-width: 1024px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-lg, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-lg, 2.25rem)}}.heading--500{margin:1rem 0;font-size:var(--ds-text-heading-500-size-breakpoint-sm, 1.375rem);font-weight:var(--ds-text-heading-500-weight, 300);line-height:var(--ds-text-heading-500-height-breakpoint-sm, 1.625rem)}@media screen and (min-width: 768px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-md, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-md, 1.875rem)}}@media screen and (min-width: 1024px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-lg, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-lg, 2rem)}}.heading--400{margin:.75rem 0;font-size:var(--ds-text-heading-400-size, 1.25rem);font-weight:var(--ds-text-heading-400-weight, 300);line-height:var(--ds-text-heading-400-height, 1.625rem)}.heading--300{margin:.75rem 0;font-size:var(--ds-text-heading-300-size, 1.125rem);font-weight:var(--ds-text-heading-300-weight, 300);line-height:var(--ds-text-heading-300-height, 1.625rem)}:host([no-margin-block]) .heading{margin-block:0}.util_stackMarginnone--bottom{margin-bottom:0}.util_stackMargin25--bottom{margin-bottom:var(--ds-size-25, 0.125rem)}.util_stackMargin50--bottom{margin-bottom:var(--ds-size-50, 0.25rem)}.util_stackMargin100--bottom{margin-bottom:var(--ds-size-100, 0.5rem)}.util_stackMargin150--bottom{margin-bottom:var(--ds-size-150, 0.75rem)}.util_stackMargin200--bottom{margin-bottom:var(--ds-size-200, 1rem)}.util_stackMargin300--bottom{margin-bottom:var(--ds-size-300, 1.5rem)}.util_stackMargin400--bottom{margin-bottom:var(--ds-size-400, 2rem)}.util_stackMargin600--bottom{margin-bottom:var(--ds-size-600, 3rem)}.util_stackMargin800--bottom{margin-bottom:var(--ds-size-800, 4rem)}.util_stackMarginnone--top{margin-top:0}.util_stackMargin25--top{margin-top:var(--ds-size-25, 0.125rem)}.util_stackMargin50--top{margin-top:var(--ds-size-50, 0.25rem)}.util_stackMargin100--top{margin-top:var(--ds-size-100, 0.5rem)}.util_stackMargin150--top{margin-top:var(--ds-size-150, 0.75rem)}.util_stackMargin200--top{margin-top:var(--ds-size-200, 1rem)}.util_stackMargin300--top{margin-top:var(--ds-size-300, 1.5rem)}.util_stackMargin400--top{margin-top:var(--ds-size-400, 2rem)}.util_stackMargin600--top{margin-top:var(--ds-size-600, 3rem)}.util_stackMargin800--top{margin-top:var(--ds-size-800, 4rem)}`;
8585
9076
 
@@ -8610,7 +9101,7 @@ class AuroHeader extends i$2 {
8610
9101
  /**
8611
9102
  * @private
8612
9103
  */
8613
- this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
9104
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
8614
9105
  }
8615
9106
 
8616
9107
  // function to define props used within the scope of this component
@@ -8640,7 +9131,7 @@ class AuroHeader extends i$2 {
8640
9131
  *
8641
9132
  */
8642
9133
  static register(name = "auro-header") {
8643
- AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
9134
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHeader);
8644
9135
  }
8645
9136
 
8646
9137
  firstUpdated() {
@@ -8791,6 +9282,30 @@ class AuroBibtemplate extends i$2 {
8791
9282
  AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
8792
9283
  }
8793
9284
 
9285
+ /**
9286
+ * Prevents scrolling of the body when touching empty areas of the component.
9287
+ * @param {Event} event - The touchmove event.
9288
+ * @returns {void}
9289
+ */
9290
+ preventBodyScroll(event) {
9291
+ if (event.target === this) {
9292
+ event.preventDefault();
9293
+ }
9294
+ }
9295
+
9296
+ connectedCallback() {
9297
+ super.connectedCallback();
9298
+
9299
+ this.preventBodyScroll = this.preventBodyScroll.bind(this);
9300
+ this.addEventListener('touchmove', this.preventBodyScroll, { passive: false });
9301
+ }
9302
+
9303
+ disconnectedCallback() {
9304
+ super.disconnectedCallback();
9305
+
9306
+ this.removeEventListener('touchmove', this.preventBodyScroll, { passive: false });
9307
+ }
9308
+
8794
9309
  onCloseButtonClick() {
8795
9310
  this.dispatchEvent(new Event("close-click", { bubbles: true,
8796
9311
  composed: true }));
@@ -8822,7 +9337,7 @@ class AuroBibtemplate extends i$2 {
8822
9337
  <div id="bibTemplate" part="bibtemplate">
8823
9338
  ${this.isFullscreen ? u`
8824
9339
  <div id="headerContainer">
8825
- <${this.buttonTag} id="closeButton" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
9340
+ <${this.buttonTag} id="closeButton" aria-label="Close" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
8826
9341
  <${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
8827
9342
  </${this.buttonTag}>
8828
9343
  <${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
@@ -8848,214 +9363,6 @@ class AuroBibtemplate extends i$2 {
8848
9363
 
8849
9364
  var bibTemplateVersion = '1.0.0';
8850
9365
 
8851
- var colorCss$1 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
8852
-
8853
- var styleCss$1 = i$5`.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
8854
-
8855
- var tokensCss = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
8856
-
8857
- // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
8858
- // See LICENSE in the project root for license information.
8859
-
8860
- // ---------------------------------------------------------------------
8861
-
8862
- /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
8863
-
8864
- class AuroLibraryRuntimeUtils {
8865
-
8866
- /* eslint-disable jsdoc/require-param */
8867
-
8868
- /**
8869
- * This will register a new custom element with the browser.
8870
- * @param {String} name - The name of the custom element.
8871
- * @param {Object} componentClass - The class to register as a custom element.
8872
- * @returns {void}
8873
- */
8874
- registerComponent(name, componentClass) {
8875
- if (!customElements.get(name)) {
8876
- customElements.define(name, class extends componentClass {});
8877
- }
8878
- }
8879
-
8880
- /**
8881
- * Finds and returns the closest HTML Element based on a selector.
8882
- * @returns {void}
8883
- */
8884
- closestElement(
8885
- selector, // selector like in .closest()
8886
- base = this, // extra functionality to skip a parent
8887
- __Closest = (el, found = el && el.closest(selector)) =>
8888
- !el || el === document || el === window
8889
- ? null // standard .closest() returns null for non-found selectors also
8890
- : found
8891
- ? found // found a selector INside this element
8892
- : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
8893
- ) {
8894
- return __Closest(base);
8895
- }
8896
- /* eslint-enable jsdoc/require-param */
8897
-
8898
- /**
8899
- * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
8900
- * @param {Object} elem - The element to check.
8901
- * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
8902
- * @returns {void}
8903
- */
8904
- handleComponentTagRename(elem, tagName) {
8905
- const tag = tagName.toLowerCase();
8906
- const elemTag = elem.tagName.toLowerCase();
8907
-
8908
- if (elemTag !== tag) {
8909
- elem.setAttribute(tag, true);
8910
- }
8911
- }
8912
-
8913
- /**
8914
- * Validates if an element is a specific Auro component.
8915
- * @param {Object} elem - The element to validate.
8916
- * @param {String} tagName - The name of the Auro component to check against.
8917
- * @returns {Boolean} - Returns true if the element is the specified Auro component.
8918
- */
8919
- elementMatch(elem, tagName) {
8920
- const tag = tagName.toLowerCase();
8921
- const elemTag = elem.tagName.toLowerCase();
8922
-
8923
- return elemTag === tag || elem.hasAttribute(tag);
8924
- }
8925
- }
8926
-
8927
- // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8928
- // See LICENSE in the project root for license information.
8929
-
8930
-
8931
- /**
8932
- * Displays help text or error messages within form elements - Internal Use Only.
8933
- *
8934
- * @attr { Boolean } large - If declared, make font-size to 1rem(16px).
8935
- */
8936
- class AuroHelpText extends i$2 {
8937
-
8938
- constructor() {
8939
- super();
8940
-
8941
- this.error = false;
8942
- this.onDark = false;
8943
- this.hasTextContent = false;
8944
-
8945
- AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-helptext');
8946
- }
8947
-
8948
- static get styles() {
8949
- return [
8950
- colorCss$1,
8951
- styleCss$1,
8952
- tokensCss
8953
- ];
8954
- }
8955
-
8956
- // function to define props used within the scope of this component
8957
- static get properties() {
8958
- return {
8959
-
8960
- /**
8961
- * @private
8962
- */
8963
- slotNodes: {
8964
- type: Boolean,
8965
- },
8966
-
8967
- /**
8968
- * @private
8969
- */
8970
- hasTextContent: {
8971
- type: Boolean,
8972
- },
8973
-
8974
- /**
8975
- * If declared, make font color red.
8976
- */
8977
- error: {
8978
- type: Boolean,
8979
- reflect: true,
8980
- },
8981
-
8982
- /**
8983
- * If declared, will apply onDark styles.
8984
- */
8985
- onDark: {
8986
- type: Boolean,
8987
- reflect: true
8988
- }
8989
- };
8990
- }
8991
-
8992
- /**
8993
- * This will register this element with the browser.
8994
- * @param {string} [name="auro-helptext"] - The name of element that you want to register to.
8995
- *
8996
- * @example
8997
- * AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
8998
- *
8999
- */
9000
- static register(name = "auro-helptext") {
9001
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHelpText);
9002
- }
9003
-
9004
- updated() {
9005
- this.handleSlotChange();
9006
- }
9007
-
9008
- handleSlotChange(event) {
9009
- if (event) {
9010
- this.slotNodes = event.target.assignedNodes();
9011
- }
9012
-
9013
- this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
9014
- }
9015
-
9016
- /**
9017
- * Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
9018
- *
9019
- * @param {NodeList|Array} nodes - The list of nodes to check for content.
9020
- * @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
9021
- * @private
9022
- */
9023
- checkSlotsForContent(nodes) {
9024
- if (!nodes) {
9025
- return false;
9026
- }
9027
-
9028
- return nodes.some((node) => {
9029
- if (node.textContent.trim()) {
9030
- return true;
9031
- }
9032
-
9033
- if (!node.querySelector) {
9034
- return false;
9035
- }
9036
-
9037
- const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
9038
- if (!nestedSlot) {
9039
- return false;
9040
- }
9041
-
9042
- const nestedSlotNodes = nestedSlot.assignedNodes();
9043
- return this.checkSlotsForContent(nestedSlotNodes);
9044
- });
9045
- }
9046
-
9047
- // function that renders the HTML and CSS into the scope of the component
9048
- render() {
9049
- return x`
9050
- <div class="helptext-wrapper" ?visible="${this.hasTextContent}">
9051
- <slot @slotchange=${this.handleSlotChange}></slot>
9052
- </div>
9053
- `;
9054
- }
9055
- }
9056
-
9057
- var helptextVersion = '1.0.0';
9058
-
9059
9366
  var styleCss = i$5`:host([isindropdown]) .wrapper{padding:var(--ds-size-300, 1.5rem)}`;
9060
9367
 
9061
9368
  var colorCss = i$5`:host ::slotted(*:not(:first-child)){border-color:var(--ds-auro-counter-divider-color)}`;
@@ -9092,377 +9399,128 @@ class AuroCounterWrapper extends i$2 {
9092
9399
  */
9093
9400
  static register(name = "auro-counter-wrapper") {
9094
9401
  AuroLibraryRuntimeUtils$8.prototype.registerComponent(name, AuroCounterWrapper);
9095
- }
9096
-
9097
- // function that renders the HTML and CSS into the scope of the component
9098
- render() {
9099
- return u`<div class="wrapper"><slot></slot></div>`;
9100
- }
9101
- }
9102
-
9103
- /* istanbul ignore else */
9104
- // define the name of the custom component
9105
- if (!customElements.get("auro-counter-wrapper")) {
9106
- customElements.define("auro-counter-wrapper", AuroCounterWrapper);
9107
- }
9108
-
9109
- class AuroElement extends i$2 {
9110
- static get properties() {
9111
- return {
9112
-
9113
- /**
9114
- * Defines the language of an element.
9115
- * @default {'default'}
9116
- */
9117
- layout: {
9118
- type: String,
9119
- attribute: "layout",
9120
- reflect: true
9121
- },
9122
-
9123
- shape: {
9124
- type: String,
9125
- attribute: "shape",
9126
- reflect: true
9127
- },
9128
-
9129
- size: {
9130
- type: String,
9131
- attribute: "size",
9132
- reflect: true
9133
- },
9134
-
9135
- onDark: {
9136
- type: Boolean,
9137
- attribute: "ondark",
9138
- reflect: true
9139
- }
9140
- };
9141
- }
9142
-
9143
- resetShapeClasses() {
9144
- const wrapper = this.shadowRoot.querySelector('.wrapper');
9145
-
9146
- if (wrapper) {
9147
- wrapper.classList.forEach((className) => {
9148
- if (className.startsWith('shape-')) {
9149
- wrapper.classList.remove(className);
9150
- }
9151
- });
9152
-
9153
- }
9154
-
9155
- if (this.shape && this.size) {
9156
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
9157
- } else {
9158
- wrapper.classList.add('shape-none');
9159
- }
9160
- }
9161
-
9162
- resetLayoutClasses() {
9163
- if (this.layout) {
9164
- const wrapper = this.shadowRoot.querySelector('.wrapper');
9165
-
9166
- if (wrapper) {
9167
- wrapper.classList.forEach((className) => {
9168
- if (className.startsWith('layout-')) {
9169
- wrapper.classList.remove(className);
9170
- }
9171
- });
9172
-
9173
- wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
9174
- }
9175
- }
9176
- }
9177
-
9178
- updateComponentArchitecture() {
9179
- this.resetLayoutClasses();
9180
- this.resetShapeClasses();
9181
- }
9182
-
9183
- updated(changedProperties) {
9184
- if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
9185
- this.updateComponentArchitecture();
9186
- }
9187
- }
9188
-
9189
- // Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
9190
- // This will catch if an invalid layout value is passed in and render the default layout if so.
9191
- render() {
9192
- try {
9193
- return this.renderLayout();
9194
- } catch (error) {
9195
- // failed to get the defined layout
9196
- console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
9197
-
9198
- // fallback to the default layout
9199
- return this.getLayout('default');
9200
- }
9201
- }
9202
- }
9203
-
9204
- // Selectors for focusable elements
9205
- const FOCUSABLE_SELECTORS = [
9206
- 'a[href]',
9207
- 'button:not([disabled])',
9208
- 'textarea:not([disabled])',
9209
- 'input:not([disabled])',
9210
- 'select:not([disabled])',
9211
- '[role="tab"]:not([disabled])',
9212
- '[role="link"]:not([disabled])',
9213
- '[role="button"]:not([disabled])',
9214
- '[tabindex]:not([tabindex="-1"])',
9215
- '[contenteditable]:not([contenteditable="false"])'
9216
- ];
9217
-
9218
- // List of custom components that are known to be focusable
9219
- const FOCUSABLE_COMPONENTS = [
9220
- 'auro-checkbox',
9221
- 'auro-radio',
9222
- 'auro-dropdown',
9223
- 'auro-button',
9224
- 'auro-combobox',
9225
- 'auro-input',
9226
- 'auro-counter',
9227
- 'auro-menu',
9228
- 'auro-select',
9229
- 'auro-datepicker',
9230
- 'auro-hyperlink',
9231
- 'auro-accordion',
9232
- ];
9233
-
9234
- /**
9235
- * Determines if a given element is a custom focusable component.
9236
- * Returns true if the element matches a known focusable component and is not disabled.
9237
- *
9238
- * @param {HTMLElement} element The element to check for focusability.
9239
- * @returns {boolean} True if the element is a focusable custom component, false otherwise.
9240
- */
9241
- function isFocusableComponent(element) {
9242
- const componentName = element.tagName.toLowerCase();
9243
-
9244
- // Guard Clause: Element is a focusable component
9245
- if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
9246
-
9247
- // Guard Clause: Element is not disabled
9248
- if (element.hasAttribute('disabled')) return false;
9249
-
9250
- // Guard Clause: The element is a hyperlink and has no href attribute
9251
- if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
9252
-
9253
- // If all guard clauses pass, the element is a focusable component
9254
- return true;
9255
- }
9256
-
9257
- /**
9258
- * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
9259
- * Returns a unique, ordered array of elements that can receive focus.
9260
- *
9261
- * @param {HTMLElement} container The container to search within
9262
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
9263
- */
9264
- function getFocusableElements(container) {
9265
- // Get elements in DOM order by walking the tree
9266
- const orderedFocusableElements = [];
9267
-
9268
- // Define a recursive function to collect focusable elements in DOM order
9269
- const collectFocusableElements = (root) => {
9270
- // Check if current element is focusable
9271
- if (root.nodeType === Node.ELEMENT_NODE) {
9272
- // Check if this is a custom component that is focusable
9273
- const isComponentFocusable = isFocusableComponent(root);
9274
-
9275
- if (isComponentFocusable) {
9276
- // Add the component itself as a focusable element and don't traverse its shadow DOM
9277
- orderedFocusableElements.push(root);
9278
- return; // Skip traversing inside this component
9279
- }
9280
-
9281
- // Check if the element itself matches any selector
9282
- for (const selector of FOCUSABLE_SELECTORS) {
9283
- if (root.matches?.(selector)) {
9284
- orderedFocusableElements.push(root);
9285
- break; // Once we know it's focusable, no need to check other selectors
9286
- }
9287
- }
9288
-
9289
- // Process shadow DOM only for non-Auro components
9290
- if (root.shadowRoot) {
9291
- // Process shadow DOM children in order
9292
- if (root.shadowRoot.children) {
9293
- Array.from(root.shadowRoot.children).forEach(child => {
9294
- collectFocusableElements(child);
9295
- });
9296
- }
9297
- }
9298
-
9299
- // Process slots and their assigned nodes in order
9300
- if (root.tagName === 'SLOT') {
9301
- const assignedNodes = root.assignedNodes({ flatten: true });
9302
- for (const node of assignedNodes) {
9303
- collectFocusableElements(node);
9304
- }
9305
- } else {
9306
- // Process light DOM children in order
9307
- if (root.children) {
9308
- Array.from(root.children).forEach(child => {
9309
- collectFocusableElements(child);
9310
- });
9311
- }
9312
- }
9313
- }
9314
- };
9315
-
9316
- // Start the traversal from the container
9317
- collectFocusableElements(container);
9318
-
9319
- // Remove duplicates that might have been collected through different paths
9320
- // while preserving order
9321
- const uniqueElements = [];
9322
- const seen = new Set();
9323
-
9324
- for (const element of orderedFocusableElements) {
9325
- if (!seen.has(element)) {
9326
- seen.add(element);
9327
- uniqueElements.push(element);
9328
- }
9329
- }
9330
-
9331
- return uniqueElements;
9332
- }
9333
-
9334
- /**
9335
- * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
9336
- * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
9337
- */
9338
- class FocusTrap {
9339
- /**
9340
- * Creates a new FocusTrap instance for the given container element.
9341
- * Initializes event listeners and prepares the container for focus management.
9342
- *
9343
- * @param {HTMLElement} container The DOM element to trap focus within.
9344
- * @throws {Error} If the provided container is not a valid HTMLElement.
9345
- */
9346
- constructor(container) {
9347
- if (!container || !(container instanceof HTMLElement)) {
9348
- throw new Error("FocusTrap requires a valid HTMLElement.");
9349
- }
9350
-
9351
- this.container = container;
9352
- this.tabDirection = 'forward'; // or 'backward'
9402
+ }
9353
9403
 
9354
- this._init();
9404
+ // function that renders the HTML and CSS into the scope of the component
9405
+ render() {
9406
+ return u`<div class="wrapper"><slot></slot></div>`;
9355
9407
  }
9408
+ }
9356
9409
 
9357
- /**
9358
- * Initializes the focus trap by setting up event listeners and attributes on the container.
9359
- * Prepares the container for focus management, including support for shadow DOM and inert attributes.
9360
- *
9361
- * @private
9362
- */
9363
- _init() {
9410
+ /* istanbul ignore else */
9411
+ // define the name of the custom component
9412
+ if (!customElements.get("auro-counter-wrapper")) {
9413
+ customElements.define("auro-counter-wrapper", AuroCounterWrapper);
9414
+ }
9364
9415
 
9365
- // Add inert attribute to prevent focusing programmatically as well (if supported)
9366
- if ('inert' in HTMLElement.prototype) {
9367
- this.container.inert = false; // Ensure the container isn't inert
9368
- this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
9369
- }
9416
+ class AuroElement extends i$2 {
9417
+ static get properties() {
9418
+ return {
9370
9419
 
9371
- // Track tab direction
9372
- this.container.addEventListener('keydown', this._onKeydown);
9373
- }
9420
+ /**
9421
+ * Defines the language of an element.
9422
+ * @default {'default'}
9423
+ */
9424
+ layout: {
9425
+ type: String,
9426
+ attribute: "layout",
9427
+ reflect: true
9428
+ },
9374
9429
 
9375
- /**
9376
- * Handles keydown events to manage tab navigation within the container.
9377
- * Ensures that focus wraps around when reaching the first or last focusable element.
9378
- *
9379
- * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
9380
- * @private
9381
- */
9382
- _onKeydown = (e) => {
9383
-
9384
- if (e.key === 'Tab') {
9430
+ shape: {
9431
+ type: String,
9432
+ attribute: "shape",
9433
+ reflect: true
9434
+ },
9385
9435
 
9386
- // Set the tab direction based on the key pressed
9387
- this.tabDirection = e.shiftKey ? 'backward' : 'forward';
9436
+ size: {
9437
+ type: String,
9438
+ attribute: "size",
9439
+ reflect: true
9440
+ },
9388
9441
 
9389
- // Get the active element(s) in the document and shadow root
9390
- // This will include the active element in the shadow DOM if it exists
9391
- // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
9392
- let activeElement = document.activeElement;
9393
- const actives = [activeElement];
9394
- while (activeElement?.shadowRoot?.activeElement) {
9395
- actives.push(activeElement.shadowRoot.activeElement);
9396
- activeElement = activeElement.shadowRoot.activeElement;
9442
+ onDark: {
9443
+ type: Boolean,
9444
+ attribute: "ondark",
9445
+ reflect: true
9397
9446
  }
9447
+ };
9448
+ }
9398
9449
 
9399
- // Update the focusable elements
9400
- const focusables = this._getFocusableElements();
9450
+ resetShapeClasses() {
9451
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
9401
9452
 
9402
- // If we're at either end of the focusable elements, wrap around to the other end
9403
- const focusIndex =
9404
- (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
9405
- ? focusables.length - 1
9406
- : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
9407
- ? 0
9408
- : null;
9453
+ if (wrapper) {
9454
+ wrapper.classList.forEach((className) => {
9455
+ if (className.startsWith('shape-')) {
9456
+ wrapper.classList.remove(className);
9457
+ }
9458
+ });
9409
9459
 
9410
- if (focusIndex !== null) {
9411
- focusables[focusIndex].focus();
9412
- e.preventDefault(); // Prevent default tab behavior
9413
- e.stopPropagation(); // Stop the event from bubbling up
9414
- }
9415
9460
  }
9416
- };
9417
9461
 
9418
- /**
9419
- * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
9420
- * Returns a unique, ordered array of elements that can receive focus.
9421
- *
9422
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
9423
- * @private
9424
- */
9425
- _getFocusableElements() {
9426
- // Use the imported utility function to get focusable elements
9427
- const elements = getFocusableElements(this.container);
9428
-
9429
- // Filter out any elements with the 'focus-bookend' class
9430
- return elements;
9462
+ if (this.shape && this.size) {
9463
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
9464
+ } else {
9465
+ wrapper.classList.add('shape-none');
9466
+ }
9431
9467
  }
9432
9468
 
9433
- /**
9434
- * Moves focus to the first focusable element within the container.
9435
- * Useful for setting initial focus when activating the focus trap.
9436
- */
9437
- focusFirstElement() {
9438
- const focusables = this._getFocusableElements();
9439
- if (focusables.length) focusables[0].focus();
9440
- }
9469
+ resetLayoutClasses() {
9470
+ if (this.layout) {
9471
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
9441
9472
 
9442
- /**
9443
- * Moves focus to the last focusable element within the container.
9444
- * Useful for setting focus when deactivating or cycling focus in reverse.
9445
- */
9446
- focusLastElement() {
9447
- const focusables = this._getFocusableElements();
9448
- if (focusables.length) focusables[focusables.length - 1].focus();
9473
+ if (wrapper) {
9474
+ wrapper.classList.forEach((className) => {
9475
+ if (className.startsWith('layout-')) {
9476
+ wrapper.classList.remove(className);
9477
+ }
9478
+ });
9479
+
9480
+ wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
9481
+ }
9482
+ }
9449
9483
  }
9450
9484
 
9451
- /**
9452
- * Removes event listeners and attributes added by the focus trap.
9453
- * Call this method to clean up when the focus trap is no longer needed.
9454
- */
9455
- disconnect() {
9485
+ updateComponentArchitecture() {
9486
+ this.resetLayoutClasses();
9487
+ this.resetShapeClasses();
9488
+ }
9456
9489
 
9457
- if (this.container.hasAttribute('data-focus-trap-container')) {
9458
- this.container.removeAttribute('data-focus-trap-container');
9490
+ updated(changedProperties) {
9491
+ if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
9492
+ this.updateComponentArchitecture();
9459
9493
  }
9494
+ }
9460
9495
 
9461
- this.container.removeEventListener('keydown', this._onKeydown);
9496
+ // Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
9497
+ // This will catch if an invalid layout value is passed in and render the default layout if so.
9498
+ render() {
9499
+ try {
9500
+ return this.renderLayout();
9501
+ } catch (error) {
9502
+ // failed to get the defined layout
9503
+ console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
9504
+
9505
+ // fallback to the default layout
9506
+ return this.getLayout('default');
9507
+ }
9462
9508
  }
9463
9509
  }
9464
9510
 
9465
- /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, prefer-destructuring, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, no-unused-expressions */
9511
+ /*
9512
+ eslint-disable
9513
+ lit/no-invalid-html,
9514
+ lit/binding-positions,
9515
+ max-lines,
9516
+ no-underscore-dangle,
9517
+ arrow-parens,
9518
+ no-confusing-arrow,
9519
+ curly,
9520
+ dot-location,
9521
+ no-inline-comments,
9522
+ line-comment-position,
9523
+ */
9466
9524
 
9467
9525
 
9468
9526
  /**
@@ -9521,10 +9579,11 @@ class AuroCounterGroup extends AuroElement {
9521
9579
  */
9522
9580
  this.validation = new AuroFormValidation();
9523
9581
 
9524
- // Bind callback methods since we can't use arrow functions in class properties
9582
+ /** @private */
9583
+ this.updateValue = this.updateValue.bind(this);
9525
9584
 
9526
9585
  /** @private */
9527
- this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
9586
+ this.updateValidity = this.updateValidity.bind(this);
9528
9587
 
9529
9588
  /**
9530
9589
  * Generate unique names for dependency components.
@@ -9551,7 +9610,12 @@ class AuroCounterGroup extends AuroElement {
9551
9610
  * @private
9552
9611
  * @type {string}
9553
9612
  */
9554
- this.helpTextTag = versioning.generateTag("auro-formkit-counter-helptext", helptextVersion, AuroHelpText);
9613
+ this.helpTextTag = versioning.generateTag("auro-formkit-counter-helptext", helptextVersion, AuroHelpText$1);
9614
+
9615
+ /**
9616
+ * @private
9617
+ */
9618
+ this.iconTag = versioning.generateTag('auro-formkit-input-icon', iconVersion$2, AuroIcon$2);
9555
9619
  }
9556
9620
 
9557
9621
  static get styles() {
@@ -9576,6 +9640,25 @@ class AuroCounterGroup extends AuroElement {
9576
9640
  reflect: true
9577
9641
  },
9578
9642
 
9643
+ /**
9644
+ * The current error message to display when the component is invalid.
9645
+ */
9646
+ error: {
9647
+ type: String,
9648
+ reflect: false
9649
+ },
9650
+
9651
+ /**
9652
+ * The current error message to display when the component is invalid.
9653
+ * This is set by validation and is not available to consumers.
9654
+ * @private
9655
+ */
9656
+ errorMessage: {
9657
+ type: String,
9658
+ reflect: false,
9659
+ attribute: false
9660
+ },
9661
+
9579
9662
  /**
9580
9663
  * Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
9581
9664
  * at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
@@ -9663,7 +9746,7 @@ class AuroCounterGroup extends AuroElement {
9663
9746
  * "top" | "right" | "bottom" | "left" |
9664
9747
  * "bottom-start" | "top-start" | "top-end" |
9665
9748
  * "right-start" | "right-end" | "bottom-end" |
9666
- * "left-start" | "left-end"
9749
+ * "left-start" | "left-end".
9667
9750
  * @default bottom-start
9668
9751
  */
9669
9752
  placement: {
@@ -9734,54 +9817,98 @@ class AuroCounterGroup extends AuroElement {
9734
9817
  this.counters = this.querySelectorAll("auro-counter, [auro-counter]");
9735
9818
  this.counters.forEach((counter) => {
9736
9819
  counter.onDark = this.onDark;
9737
- counter.addEventListener("input", () => this.updateValue());
9820
+ counter.addEventListener("input", this.updateValue);
9821
+ counter.addEventListener("auroFormElement-validated", this.updateValidity);
9738
9822
  });
9739
9823
  }
9740
9824
 
9741
9825
  /**
9742
- * Performs state updates that should happen when the dropdown is toggled.
9743
- * @returns {void}
9826
+ * Renders help text error messages.
9827
+ * @param {Array<string>} messages - The error messages to render.
9828
+ * @returns {TemplateResult[]} - The rendered error messages rendered in a TemplateResult.
9744
9829
  * @private
9745
9830
  */
9746
- handleDropdownToggle() {
9747
-
9748
- // Check if the dropdown is open
9749
- const dropdownIsOpen = this.dropdown.isPopoverVisible;
9831
+ renderHelpTextErrors(messages) {
9750
9832
 
9751
- // Adds and removes the focus trap based on the dropdown state
9752
- this.updateFocusTrap(dropdownIsOpen);
9833
+ // Return empty template if no messages are provided
9834
+ if (!messages || messages.length === 0) return u``;
9753
9835
 
9754
- // Tasks to perform if the dropdown is closed
9755
- if (!dropdownIsOpen) {
9836
+ // Return messages as a TemplateResult
9837
+ return messages.map(message => u`<p>${message}</p>`);
9838
+ }
9756
9839
 
9757
- // Shift focus to the dropdown trigger
9758
- this.dropdown.trigger.focus();
9759
- }
9840
+ /**
9841
+ * Gets and returns an array of counters in an invalid state.
9842
+ * @returns {Array<HTMLElement>} - Returns an array of invalid counters.
9843
+ * @param {NodeList} counters - The NodeList of counter elements to check.
9844
+ * @private
9845
+ */
9846
+ getInvalidCounters(counters) {
9847
+ return Array.from(counters).filter(counter => counter.validity && counter.validity !== 'valid');
9760
9848
  }
9761
9849
 
9762
9850
  /**
9763
- * Updates the focus trap based on whether the dropdown is open or closed.
9764
- * If the dropdown is open, it creates a new focus trap and focuses the first element
9765
- * If the dropdown is closed, it disconnects the focus trap if it exists to prevent memory leaks and disable focus trapping.
9766
- * @param {boolean} dropdownIsOpen - Indicates whether the dropdown is currently open.
9851
+ * Gets all valid error messages from errored counters.
9852
+ * @param {NodeList} invalidCounters - The NodeList of counter elements to check.
9853
+ * @returns {Array<string>} - Returns an array of error messages from invalid counters.
9854
+ * @private
9855
+ */
9856
+ getErrorMessages(invalidCounters) {
9857
+ return invalidCounters
9858
+ .map(counter => counter.errorMessage)
9859
+ .filter(message => message && message.length > 0);
9860
+ };
9861
+
9862
+ /**
9863
+ * Updates the validity of the counter group based on the validity of its counters.
9864
+ * This method checks all counters within the group, determines if any are invalid, and updates the group's validity state and error message accordingly.
9865
+ * If any counter is invalid, it generates a combined error message from all invalid counters.
9767
9866
  * @returns {void}
9768
9867
  * @private
9769
9868
  */
9770
- updateFocusTrap(dropdownIsOpen) {
9869
+ updateValidity () {
9771
9870
 
9772
- // If the dropdown is open, create a focus trap and focus the first element
9773
- if (dropdownIsOpen) {
9774
- this.dropdownFocusTrap = new FocusTrap(this.dropdown.bibContent);
9775
- this.dropdownFocusTrap.focusFirstElement();
9776
- return;
9777
- }
9871
+ // We don't need to do anything if there are no counters
9872
+ if (!this.counters) return;
9778
9873
 
9779
- // Guard Clause: Ensure there is a focus trap currently active before continuing
9780
- if (!this.dropdownFocusTrap) return;
9874
+ // Wait for initial validation to complete before updating validity and error message
9875
+ // This is necessary because we need the initial validation to know when to reset the validity and error message
9876
+ setTimeout(() => {
9781
9877
 
9782
- // If the dropdown is not open, disconnect the focus trap if it exists
9783
- this.dropdownFocusTrap.disconnect();
9784
- this.dropdownFocusTrap = undefined;
9878
+ // Get any invalid counters
9879
+ const invalidCounters = this.getInvalidCounters(this.counters);
9880
+
9881
+ // Determine if we are in an invalid state based on the presence of invalid counters
9882
+ const isInvalid = invalidCounters.length > 0;
9883
+
9884
+ // If we are in an invalid state
9885
+ if (isInvalid) {
9886
+
9887
+ // Generate the error messages
9888
+ const errorMessages = this.getErrorMessages(invalidCounters);
9889
+
9890
+ const errorMessage = isInvalid ? this.renderHelpTextErrors(errorMessages) : this.errorMessage;
9891
+
9892
+ // Set the validity and error message
9893
+ // This needs to allow for the initial validation to come through
9894
+ this.validity =
9895
+ invalidCounters[0].validity || // The first invalid counter's validity
9896
+ this.validity || // incoming validity from validation
9897
+ undefined; // fallback
9898
+
9899
+ this.errorMessage =
9900
+ errorMessage || // our message
9901
+ this.errorMessage || // incoming message from validation
9902
+ undefined; // fallback
9903
+ }
9904
+
9905
+ if (!isInvalid && this.validity !== 'valid') {
9906
+
9907
+ // If there are no invalid counters, reset validity and error message
9908
+ this.validity = 'valid';
9909
+ this.errorMessage = undefined;
9910
+ }
9911
+ });
9785
9912
  }
9786
9913
 
9787
9914
  /**
@@ -9794,14 +9921,13 @@ class AuroCounterGroup extends AuroElement {
9794
9921
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
9795
9922
  this.dropdown.requestUpdate();
9796
9923
 
9797
- this.dropdown.addEventListener("auroDropdown-toggled", this.handleDropdownToggle);
9798
-
9799
9924
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
9800
9925
  const counterSlot = counterWrapper.querySelector('slot');
9801
9926
  this.counters = counterSlot.assignedElements().filter(el => el.tagName.toLowerCase() === 'auro-counter' || el.hasAttribute('auro-counter'));
9802
9927
 
9803
9928
  this.counters.forEach((counter) => {
9804
- counter.addEventListener("input", () => this.updateValue());
9929
+ counter.addEventListener("input", this.updateValue);
9930
+ counter.addEventListener("auroFormElement-validated", this.updateValidity);
9805
9931
  });
9806
9932
 
9807
9933
  if (this.isDropdown) {
@@ -9941,13 +10067,6 @@ class AuroCounterGroup extends AuroElement {
9941
10067
  this.updateValueText();
9942
10068
  }
9943
10069
 
9944
- disconnectedCallback() {
9945
- super.disconnectedCallback();
9946
-
9947
- // Remove the event listener for dropdown toggling
9948
- this.removeEventListener("auroDropdown-toggled", this.handleDropdownToggle);
9949
- }
9950
-
9951
10070
  /**
9952
10071
  * Registers the custom element with the browser.
9953
10072
  * @param {string} [name="auro-counter-group"] - Custom element name to register.
@@ -9958,6 +10077,57 @@ class AuroCounterGroup extends AuroElement {
9958
10077
  AuroLibraryRuntimeUtils$8.prototype.registerComponent(name, AuroCounterGroup);
9959
10078
  }
9960
10079
 
10080
+ /**
10081
+ * Returns HTML for the help text and error message.
10082
+ * @private
10083
+ * @returns {html} - Returns HTML for the help text and error message.
10084
+ */
10085
+ renderHelpText() {
10086
+ return !this.validity || this.validity === undefined || this.validity === 'valid'
10087
+ ? u`
10088
+ <div slot="helpText">
10089
+ <${this.helpTextTag} ?onDark="${this.onDark}">
10090
+ <p id="${this.uniqueId}" part="helpText">
10091
+ <slot name="helpText"></slot>
10092
+ </p>
10093
+ </${this.helpTextTag}>
10094
+ </div>
10095
+ `
10096
+ : u`
10097
+ <div slot="helpText">
10098
+ <${this.helpTextTag} error ?onDark="${this.onDark}">
10099
+ <p id="${this.uniqueId}" part="helpText" role="alert" aria-live="assertive">
10100
+ ${this.error || this.errorMessage}
10101
+ </p>
10102
+ </${this.helpTextTag}>
10103
+ </div>
10104
+ `;
10105
+ }
10106
+
10107
+ /**
10108
+ * Returns HTML for the validation error icon.
10109
+ * @private
10110
+ * @returns {html} - Returns HTML for the validation error icon.
10111
+ */
10112
+ renderValidationErrorIcon() {
10113
+
10114
+ // Don't render in valid state
10115
+ if (!this.validity || this.validity === 'valid') return undefined;
10116
+
10117
+ return u`
10118
+ ${this.validity && this.validity !== 'valid' ? u`
10119
+ <div class="notification alertNotification">
10120
+ <${this.iconTag}
10121
+ category="alert"
10122
+ name="error-stroke"
10123
+ variant="statusError"
10124
+ ?ondark="${this.onDark}">
10125
+ </${this.iconTag}>
10126
+ </div>
10127
+ ` : undefined}
10128
+ `;
10129
+ }
10130
+
9961
10131
  /**
9962
10132
  * Render the dropdown structure for the counter group.
9963
10133
  * @returns {TemplateResult} The dropdown template.
@@ -9967,7 +10137,7 @@ class AuroCounterGroup extends AuroElement {
9967
10137
  return u`
9968
10138
  <${this.dropdownTag}
9969
10139
  noHideOnThisFocusLoss
9970
- chevron common fluid
10140
+ chevron
9971
10141
  part="dropdown"
9972
10142
  ?autoPlacement="${this.autoPlacement}"
9973
10143
  ?error="${this.validity !== undefined && this.validity !== 'valid'}"
@@ -10014,28 +10184,13 @@ class AuroCounterGroup extends AuroElement {
10014
10184
  ${this.counters && Array.from(this.counters).map((counter, index) => u`${counter.value} ${counter.defaultSlot}${index !== this.counters.length - 1 ? ', ' : ''}`)}
10015
10185
  </slot>
10016
10186
  </div>
10017
- <div class="accents right"></div>
10187
+ <div class="accents right">
10188
+ ${this.renderValidationErrorIcon()}
10189
+ </div>
10018
10190
  </div>
10019
10191
  `;
10020
10192
  };
10021
10193
 
10022
- /**
10023
- * Render the help text for the counter group.
10024
- * @returns {TemplateResult} The help text template.
10025
- * @private
10026
- */
10027
- renderHelpText() {
10028
- return u`
10029
- <div slot="helpText">
10030
- <${this.helpTextTag} ?onDark="${this.onDark}">
10031
- <p id="${this.uniqueId}" part="helpText">
10032
- <slot name="helpText"></slot>
10033
- </p>
10034
- </${this.helpTextTag}>
10035
- </div>
10036
- `;
10037
- }
10038
-
10039
10194
  /**
10040
10195
  * Render the dropdown bib template for the dropdown.
10041
10196
  * @returns {TemplateResult} The bib template.