@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.3 → 0.0.0-pr624.31

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 (113) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +13 -2
  2. package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
  3. package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
  4. package/components/bibtemplate/dist/index.js +1292 -79
  5. package/components/bibtemplate/dist/registered.js +1292 -79
  6. package/components/checkbox/README.md +1 -1
  7. package/components/checkbox/demo/api.md +47 -14
  8. package/components/checkbox/demo/api.min.js +35 -29
  9. package/components/checkbox/demo/index.md +2 -2
  10. package/components/checkbox/demo/index.min.js +35 -29
  11. package/components/checkbox/demo/readme.md +1 -1
  12. package/components/checkbox/dist/auro-checkbox-group.d.ts +1 -1
  13. package/components/checkbox/dist/auro-checkbox.d.ts +3 -3
  14. package/components/checkbox/dist/index.js +35 -29
  15. package/components/checkbox/dist/registered.js +35 -29
  16. package/components/combobox/demo/api.md +101 -2
  17. package/components/combobox/demo/api.min.js +2935 -794
  18. package/components/combobox/demo/index.md +6 -30
  19. package/components/combobox/demo/index.min.js +2935 -794
  20. package/components/combobox/dist/auro-combobox.d.ts +45 -16
  21. package/components/combobox/dist/index.js +2832 -832
  22. package/components/combobox/dist/registered.js +2832 -832
  23. package/components/counter/demo/api.md +21 -19
  24. package/components/counter/demo/api.min.js +3648 -929
  25. package/components/counter/demo/index.md +99 -34
  26. package/components/counter/demo/index.min.js +3648 -929
  27. package/components/counter/dist/auro-counter-button.d.ts +2 -0
  28. package/components/counter/dist/auro-counter-group.d.ts +105 -6
  29. package/components/counter/dist/auro-counter.d.ts +6 -0
  30. package/components/counter/dist/helptextVersion.d.ts +2 -0
  31. package/components/counter/dist/iconVersion.d.ts +1 -1
  32. package/components/counter/dist/index.js +3648 -929
  33. package/components/counter/dist/registered.js +3648 -929
  34. package/components/datepicker/demo/api.md +36 -19
  35. package/components/datepicker/demo/api.min.js +14662 -10980
  36. package/components/datepicker/demo/index.md +80 -0
  37. package/components/datepicker/demo/index.min.js +14662 -10980
  38. package/components/datepicker/dist/auro-datepicker.d.ts +71 -3
  39. package/components/datepicker/dist/buttonVersion.d.ts +1 -1
  40. package/components/datepicker/dist/iconVersion.d.ts +2 -0
  41. package/components/datepicker/dist/index.js +11706 -8024
  42. package/components/datepicker/dist/popoverVersion.d.ts +1 -1
  43. package/components/datepicker/dist/registered.js +11706 -8024
  44. package/components/dropdown/demo/api.md +6 -7
  45. package/components/dropdown/demo/api.min.js +238 -144
  46. package/components/dropdown/demo/index.md +57 -9
  47. package/components/dropdown/demo/index.min.js +238 -144
  48. package/components/dropdown/dist/auro-dropdown.d.ts +10 -9
  49. package/components/dropdown/dist/auro-dropdownBib.d.ts +22 -0
  50. package/components/dropdown/dist/index.js +238 -144
  51. package/components/dropdown/dist/registered.js +238 -144
  52. package/components/form/demo/api.min.js +1 -1
  53. package/components/form/demo/index.min.js +1 -1
  54. package/components/form/dist/index.js +1 -1
  55. package/components/form/dist/registered.js +1 -1
  56. package/components/helptext/dist/index.js +2 -2
  57. package/components/helptext/dist/registered.js +2 -2
  58. package/components/input/README.md +1 -1
  59. package/components/input/demo/api.md +133 -97
  60. package/components/input/demo/api.min.js +972 -269
  61. package/components/input/demo/index.md +14 -14
  62. package/components/input/demo/index.min.js +971 -268
  63. package/components/input/demo/readme.md +1 -1
  64. package/components/input/dist/auro-input.d.ts +197 -15
  65. package/components/input/dist/base-input.d.ts +32 -8
  66. package/components/input/dist/buttonVersion.d.ts +1 -1
  67. package/components/input/dist/iconVersion.d.ts +1 -1
  68. package/components/input/dist/index.js +971 -268
  69. package/components/input/dist/registered.js +971 -268
  70. package/components/layoutElement/dist/index.js +13 -10
  71. package/components/menu/demo/api.html +38 -0
  72. package/components/menu/demo/api.md +68 -7
  73. package/components/menu/demo/api.min.js +278 -42
  74. package/components/menu/demo/index.min.js +278 -42
  75. package/components/menu/dist/auro-menu.d.ts +28 -5
  76. package/components/menu/dist/auro-menuoption.d.ts +15 -3
  77. package/components/menu/dist/iconVersion.d.ts +1 -1
  78. package/components/menu/dist/index.js +278 -42
  79. package/components/menu/dist/registered.js +278 -42
  80. package/components/menu/dist/styles/default/color-menuoption-css.d.ts +2 -0
  81. package/components/menu/dist/styles/default/style-menu-css.d.ts +2 -0
  82. package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
  83. package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
  84. package/components/radio/demo/api.md +7 -7
  85. package/components/radio/demo/api.min.js +16 -13
  86. package/components/radio/demo/index.min.js +16 -13
  87. package/components/radio/dist/auro-radio-group.d.ts +1 -1
  88. package/components/radio/dist/auro-radio.d.ts +1 -1
  89. package/components/radio/dist/index.js +16 -13
  90. package/components/radio/dist/registered.js +16 -13
  91. package/components/select/demo/api.js +2 -0
  92. package/components/select/demo/api.md +124 -13
  93. package/components/select/demo/api.min.js +2802 -538
  94. package/components/select/demo/index.html +1 -0
  95. package/components/select/demo/index.md +325 -763
  96. package/components/select/demo/index.min.js +2795 -543
  97. package/components/select/dist/auro-select.d.ts +112 -11
  98. package/components/select/dist/helptextVersion.d.ts +2 -0
  99. package/components/select/dist/index.js +2538 -427
  100. package/components/select/dist/registered.js +2538 -427
  101. package/components/select/dist/styles/shapeSize-css.d.ts +2 -0
  102. package/components/select/dist/styles/tokens-css.d.ts +2 -0
  103. package/package.json +6 -4
  104. /package/components/{dropdown/dist/styles/default/bibColors-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
  105. /package/components/{dropdown → datepicker}/dist/styles/default/color-css.d.ts +0 -0
  106. /package/components/{dropdown/dist/styles/default/bibStyles-css.d.ts → datepicker/dist/styles/shapeSize-css.d.ts} +0 -0
  107. /package/components/{dropdown/dist/styles/default/style-css.d.ts → datepicker/dist/styles/snowflake/color-css.d.ts} +0 -0
  108. /package/components/{dropdown/dist/styles → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
  109. /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/bibColors-css.d.ts} +0 -0
  110. /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/bibStyles-css.d.ts} +0 -0
  111. /package/components/{menu/dist/styles/style-menu-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
  112. /package/components/{menu/dist/styles/style-menuoption-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
  113. /package/components/menu/dist/styles/{tokens-css.d.ts → default/color-menu-css.d.ts} +0 -0
@@ -44,6 +44,105 @@ const t={ATTRIBUTE:1},e$1=t=>(...e)=>({_$litDirective$:t,values:e});let i$1 = cl
44
44
  */
45
45
  const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
46
46
 
47
+ let AuroElement$4 = class AuroElement extends i$2 {
48
+ static get properties() {
49
+ return {
50
+
51
+ /**
52
+ * Defines the language of an element.
53
+ * @default {'default'}
54
+ */
55
+ layout: {
56
+ type: String,
57
+ attribute: "layout",
58
+ reflect: true
59
+ },
60
+
61
+ shape: {
62
+ type: String,
63
+ attribute: "shape",
64
+ reflect: true
65
+ },
66
+
67
+ size: {
68
+ type: String,
69
+ attribute: "size",
70
+ reflect: true
71
+ },
72
+
73
+ onDark: {
74
+ type: Boolean,
75
+ attribute: "ondark",
76
+ reflect: true
77
+ }
78
+ };
79
+ }
80
+
81
+ resetShapeClasses() {
82
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
83
+
84
+ if (wrapper) {
85
+ wrapper.classList.forEach((className) => {
86
+ if (className.startsWith('shape-')) {
87
+ wrapper.classList.remove(className);
88
+ }
89
+ });
90
+
91
+ }
92
+
93
+ if (this.shape && this.size) {
94
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
95
+ } else {
96
+ wrapper.classList.add('shape-none');
97
+ }
98
+ }
99
+
100
+ resetLayoutClasses() {
101
+ if (this.layout) {
102
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
103
+
104
+ if (wrapper) {
105
+ wrapper.classList.forEach((className) => {
106
+ if (className.startsWith('layout-')) {
107
+ wrapper.classList.remove(className);
108
+ }
109
+ });
110
+
111
+ wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
112
+ }
113
+ }
114
+ }
115
+
116
+ updateComponentArchitecture() {
117
+ this.resetLayoutClasses();
118
+ this.resetShapeClasses();
119
+ }
120
+
121
+ updated(changedProperties) {
122
+ if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
123
+ this.updateComponentArchitecture();
124
+ }
125
+ }
126
+
127
+ // Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
128
+ // This will catch if an invalid layout value is passed in and render the default layout if so.
129
+ render() {
130
+ try {
131
+ return this.renderLayout();
132
+ } catch (error) {
133
+ // failed to get the defined layout
134
+ console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
135
+
136
+ // fallback to the default layout
137
+ return this.getLayout('default');
138
+ }
139
+ }
140
+ };
141
+
142
+ 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}`;
143
+
144
+ var tokensCss$5 = i$5`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-select-outline-color: transparent}`;
145
+
47
146
  class DateFormatter {
48
147
 
49
148
  constructor() {
@@ -100,9 +199,10 @@ class DateFormatter {
100
199
  /**
101
200
  * Convert a date object to string format.
102
201
  * @param {Object} date - Date to convert to string.
103
- * @returns {Object} Returns the date as a string.
202
+ * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
203
+ * @returns {String} Returns the date as a string.
104
204
  */
105
- this.getDateAsString = (date) => date.toLocaleDateString(undefined, {
205
+ this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
106
206
  year: "numeric",
107
207
  month: "2-digit",
108
208
  day: "2-digit",
@@ -294,7 +394,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
294
394
  const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
295
395
 
296
396
  // Get the date string of the date object we created from the string date
297
- const actualDateStr = dateFormatter.getDateAsString(dateObj);
397
+ const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
298
398
 
299
399
  // Guard Clause: Generated date matches date string input
300
400
  if (expectedDateStr !== actualDateStr) {
@@ -459,7 +559,7 @@ const {
459
559
 
460
560
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
461
561
 
462
- let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
562
+ let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
463
563
 
464
564
  /* eslint-disable jsdoc/require-param */
465
565
 
@@ -529,7 +629,7 @@ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
529
629
  class AuroFormValidation {
530
630
 
531
631
  constructor() {
532
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
632
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
533
633
  }
534
634
 
535
635
  /**
@@ -808,7 +908,9 @@ class AuroFormValidation {
808
908
  elem.validity = this.auroInputElements[0].validity;
809
909
  elem.errorMessage = this.auroInputElements[0].errorMessage;
810
910
 
811
- if (elem.validity === 'valid' && this.auroInputElements.length > 1) {
911
+ // combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
912
+ // combobox's 2nd input will have noValidate set true.
913
+ if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
812
914
  elem.validity = this.auroInputElements[1].validity;
813
915
  elem.errorMessage = this.auroInputElements[1].errorMessage;
814
916
  }
@@ -941,7 +1043,7 @@ let AuroDependencyVersioning$2 = class AuroDependencyVersioning {
941
1043
 
942
1044
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
943
1045
 
944
- let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
1046
+ let AuroLibraryRuntimeUtils$2$1 = class AuroLibraryRuntimeUtils {
945
1047
 
946
1048
  /* eslint-disable jsdoc/require-param */
947
1049
 
@@ -1524,10 +1626,11 @@ const flip$1 = function (options) {
1524
1626
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
1525
1627
  const nextPlacement = placements[nextIndex];
1526
1628
  if (nextPlacement) {
1527
- var _overflowsData$;
1528
1629
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
1529
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
1530
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
1630
+ if (!ignoreCrossAxisOverflow ||
1631
+ // We leave the current main axis only if every placement on that axis
1632
+ // overflows the main axis.
1633
+ overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
1531
1634
  // Try next placement and re-run the lifecycle.
1532
1635
  return {
1533
1636
  data: {
@@ -2548,8 +2651,28 @@ class AuroFloatingUI {
2548
2651
  if (!AuroFloatingUI.isMousePressHandlerInitialized && window && window.addEventListener) {
2549
2652
  AuroFloatingUI.isMousePressHandlerInitialized = true;
2550
2653
 
2654
+ // Track timeout for isMousePressed reset to avoid race conditions
2655
+ if (!AuroFloatingUI._mousePressedTimeout) {
2656
+ AuroFloatingUI._mousePressedTimeout = null;
2657
+ }
2551
2658
  const mouseEventGlobalHandler = (event) => {
2552
- AuroFloatingUI.isMousePressed = event.type === 'mousedown';
2659
+ const isPressed = event.type === 'mousedown';
2660
+ if (isPressed) {
2661
+ // Clear any pending timeout to prevent race condition
2662
+ if (AuroFloatingUI._mousePressedTimeout !== null) {
2663
+ clearTimeout(AuroFloatingUI._mousePressedTimeout);
2664
+ AuroFloatingUI._mousePressedTimeout = null;
2665
+ }
2666
+ if (!AuroFloatingUI.isMousePressed) {
2667
+ AuroFloatingUI.isMousePressed = true;
2668
+ }
2669
+ } else if (AuroFloatingUI.isMousePressed && !isPressed) {
2670
+ // Schedule reset and track timeout ID
2671
+ AuroFloatingUI._mousePressedTimeout = setTimeout(() => {
2672
+ AuroFloatingUI.isMousePressed = false;
2673
+ AuroFloatingUI._mousePressedTimeout = null;
2674
+ }, 0);
2675
+ }
2553
2676
  };
2554
2677
 
2555
2678
  window.addEventListener('mousedown', mouseEventGlobalHandler);
@@ -2676,6 +2799,7 @@ class AuroFloatingUI {
2676
2799
 
2677
2800
  // Compute the position of the bib
2678
2801
  computePosition(this.element.trigger, this.element.bib, {
2802
+ strategy: this.element.floaterConfig?.strategy || 'fixed',
2679
2803
  placement: this.element.floaterConfig?.placement,
2680
2804
  middleware: middleware || []
2681
2805
  }).then(({ x, y }) => { // eslint-disable-line id-length
@@ -2810,8 +2934,9 @@ class AuroFloatingUI {
2810
2934
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
2811
2935
  return;
2812
2936
  }
2813
- // if fullscreen bib is still open and the focus is missing, do not close
2814
- if (this.element.bib.hasAttribute('isfullscreen') && activeElement === document.body) {
2937
+
2938
+ // if fullscreen bib is in fullscreen mode, do not close
2939
+ if (this.element.bib.hasAttribute('isfullscreen')) {
2815
2940
  return;
2816
2941
  }
2817
2942
 
@@ -3112,8 +3237,6 @@ class AuroFloatingUI {
3112
3237
  this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
3113
3238
  }
3114
3239
 
3115
- document.body.append(this.element.bib);
3116
-
3117
3240
  this.regenerateBibId();
3118
3241
  this.handleTriggerTabIndex();
3119
3242
 
@@ -3340,9 +3463,79 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$1$1 {
3340
3463
  }
3341
3464
  };
3342
3465
 
3343
- 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)}`;
3466
+ var tokensCss$2$2 = 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)}`;
3467
+
3468
+ var colorCss$3$2 = 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)}`;
3469
+
3470
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3471
+ // See LICENSE in the project root for license information.
3472
+
3473
+ // ---------------------------------------------------------------------
3474
+
3475
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3476
+
3477
+ let AuroLibraryRuntimeUtils$1$2 = class AuroLibraryRuntimeUtils {
3478
+
3479
+ /* eslint-disable jsdoc/require-param */
3480
+
3481
+ /**
3482
+ * This will register a new custom element with the browser.
3483
+ * @param {String} name - The name of the custom element.
3484
+ * @param {Object} componentClass - The class to register as a custom element.
3485
+ * @returns {void}
3486
+ */
3487
+ registerComponent(name, componentClass) {
3488
+ if (!customElements.get(name)) {
3489
+ customElements.define(name, class extends componentClass {});
3490
+ }
3491
+ }
3492
+
3493
+ /**
3494
+ * Finds and returns the closest HTML Element based on a selector.
3495
+ * @returns {void}
3496
+ */
3497
+ closestElement(
3498
+ selector, // selector like in .closest()
3499
+ base = this, // extra functionality to skip a parent
3500
+ __Closest = (el, found = el && el.closest(selector)) =>
3501
+ !el || el === document || el === window
3502
+ ? null // standard .closest() returns null for non-found selectors also
3503
+ : found
3504
+ ? found // found a selector INside this element
3505
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
3506
+ ) {
3507
+ return __Closest(base);
3508
+ }
3509
+ /* eslint-enable jsdoc/require-param */
3510
+
3511
+ /**
3512
+ * 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.
3513
+ * @param {Object} elem - The element to check.
3514
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
3515
+ * @returns {void}
3516
+ */
3517
+ handleComponentTagRename(elem, tagName) {
3518
+ const tag = tagName.toLowerCase();
3519
+ const elemTag = elem.tagName.toLowerCase();
3520
+
3521
+ if (elemTag !== tag) {
3522
+ elem.setAttribute(tag, true);
3523
+ }
3524
+ }
3525
+
3526
+ /**
3527
+ * Validates if an element is a specific Auro component.
3528
+ * @param {Object} elem - The element to validate.
3529
+ * @param {String} tagName - The name of the Auro component to check against.
3530
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
3531
+ */
3532
+ elementMatch(elem, tagName) {
3533
+ const tag = tagName.toLowerCase();
3534
+ const elemTag = elem.tagName.toLowerCase();
3344
3535
 
3345
- 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)}`;
3536
+ return elemTag === tag || elem.hasAttribute(tag);
3537
+ }
3538
+ };
3346
3539
 
3347
3540
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3348
3541
  // See LICENSE in the project root for license information.
@@ -3363,7 +3556,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3363
3556
  */
3364
3557
  privateDefaults() {
3365
3558
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
3366
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
3559
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$2();
3367
3560
  }
3368
3561
 
3369
3562
  // function to define props used within the scope of this component
@@ -3430,9 +3623,9 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3430
3623
  static get styles() {
3431
3624
  return [
3432
3625
  super.styles,
3433
- i$5`${tokensCss$2$1}`,
3626
+ i$5`${tokensCss$2$2}`,
3434
3627
  i$5`${styleCss$2$2}`,
3435
- i$5`${colorCss$3$1}`
3628
+ i$5`${colorCss$3$2}`
3436
3629
  ];
3437
3630
  }
3438
3631
 
@@ -3445,7 +3638,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3445
3638
  *
3446
3639
  */
3447
3640
  static register(name = "auro-icon") {
3448
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
3641
+ AuroLibraryRuntimeUtils$1$2.prototype.registerComponent(name, AuroIcon);
3449
3642
  }
3450
3643
 
3451
3644
  connectedCallback() {
@@ -3466,8 +3659,12 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3466
3659
  async firstUpdated() {
3467
3660
  await super.firstUpdated();
3468
3661
 
3469
- // Removes the SVG description for screenreader if ariaHidden is set to true
3470
- if (!this.hasAttribute('ariaHidden') && this.svg) {
3662
+ /**
3663
+ * icons provide a description for screen readers. Icon only instances Auro-button
3664
+ * depend on this description to provide context for the user using a screen reader.
3665
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
3666
+ */
3667
+ if (this.hasAttribute('ariaHidden') && this.svg) {
3471
3668
  const svgDesc = this.svg.querySelector('desc');
3472
3669
 
3473
3670
  if (svgDesc) {
@@ -3513,17 +3710,16 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3513
3710
 
3514
3711
  var iconVersion$2 = '6.1.2';
3515
3712
 
3516
- var styleCss$1$2 = i$5`:host{position:absolute;z-index:var(--depth-tooltip, 400);display:none}.container{display:inline-block;overflow:auto;box-sizing:border-box;margin:var(--ds-size-50, 0.25rem) 0}: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}`;
3713
+ var styleCss$1$2 = 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}`;
3517
3714
 
3518
- 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)}`;
3715
+ var colorCss$2$2 = 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)}`;
3519
3716
 
3520
- 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: transparent;--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: transparent;--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)}`;
3717
+ var tokensCss$1$2 = 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)}`;
3521
3718
 
3522
3719
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3523
3720
  // See LICENSE in the project root for license information.
3524
3721
 
3525
3722
 
3526
-
3527
3723
  const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
3528
3724
  const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
3529
3725
  'xl',
@@ -3539,7 +3735,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
3539
3735
  */
3540
3736
 
3541
3737
  class AuroDropdownBib extends i$2 {
3542
-
3738
+ // not extending AuroElement because Bib needs only `shape` prop
3543
3739
  constructor() {
3544
3740
  super();
3545
3741
 
@@ -3548,14 +3744,17 @@ class AuroDropdownBib extends i$2 {
3548
3744
  */
3549
3745
  this._mobileBreakpointValue = undefined;
3550
3746
 
3551
- AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3747
+ AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3748
+
3749
+ this.shape = "rounded";
3750
+ this.matchWidth = false;
3552
3751
  }
3553
3752
 
3554
3753
  static get styles() {
3555
3754
  return [
3556
3755
  styleCss$1$2,
3557
- colorCss$2$1,
3558
- tokensCss$1$1
3756
+ colorCss$2$2,
3757
+ tokensCss$1$2
3559
3758
  ];
3560
3759
  }
3561
3760
 
@@ -3586,6 +3785,15 @@ class AuroDropdownBib extends i$2 {
3586
3785
  reflect: true
3587
3786
  },
3588
3787
 
3788
+ /**
3789
+ * If declared, the bib width will match the trigger width.
3790
+ * @private
3791
+ */
3792
+ matchWidth: {
3793
+ type: Boolean,
3794
+ reflect: true
3795
+ },
3796
+
3589
3797
  /**
3590
3798
  * If declared, will apply border-radius to the bib.
3591
3799
  */
@@ -3593,6 +3801,18 @@ class AuroDropdownBib extends i$2 {
3593
3801
  type: Boolean,
3594
3802
  reflect: true
3595
3803
  },
3804
+
3805
+ /**
3806
+ * A reference to the associated bib template element.
3807
+ */
3808
+ bibTemplate: {
3809
+ type: Object
3810
+ },
3811
+
3812
+ shape: {
3813
+ type: String,
3814
+ reflect: true
3815
+ }
3596
3816
  };
3597
3817
  }
3598
3818
 
@@ -3625,13 +3845,62 @@ class AuroDropdownBib extends i$2 {
3625
3845
  }
3626
3846
  }
3627
3847
  });
3848
+
3849
+ if (this.bibTemplate) {
3850
+ // If the bib template is found, set the fullscreen attribute
3851
+ if (this.isFullscreen) {
3852
+ this.bibTemplate.setAttribute('isFullscreen', 'true');
3853
+ } else {
3854
+ this.bibTemplate.removeAttribute('isFullscreen');
3855
+ }
3856
+ }
3628
3857
  }
3629
3858
  }
3630
3859
 
3860
+ connectedCallback() {
3861
+ super.connectedCallback();
3862
+
3863
+ // Listen for the auro-bibtemplate-connected event to set the fullscreen attribute
3864
+ this.addEventListener('auro-bibtemplate-connected', (event) => {
3865
+ const bibTemplate = event.detail.element;
3866
+ this.bibTemplate = bibTemplate;
3867
+
3868
+ if (bibTemplate) {
3869
+ // If the bib template is found, set the fullscreen attribute
3870
+ if (this.isFullscreen) {
3871
+ bibTemplate.setAttribute('isFullscreen', 'true');
3872
+ } else {
3873
+ bibTemplate.removeAttribute('isFullscreen');
3874
+ }
3875
+ }
3876
+ });
3877
+ }
3878
+
3879
+ firstUpdated(changedProperties) {
3880
+ super.firstUpdated(changedProperties);
3881
+
3882
+ // Dispatch a custom event when the component is connected
3883
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3884
+ bubbles: true,
3885
+ composed: true,
3886
+ detail: {
3887
+ element: this
3888
+ }
3889
+ }));
3890
+ }
3891
+
3631
3892
  // function that renders the HTML and CSS into the scope of the component
3632
3893
  render() {
3894
+ const classes = {
3895
+ container: true
3896
+ };
3897
+
3898
+ // Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
3899
+ // mimicking the class naming convention used in AuroElement.resetShapeClasses.
3900
+ classes[`shape-${this.shape}`] = true;
3901
+
3633
3902
  return u`
3634
- <div class="container" part="bibContainer">
3903
+ <div class="${e(classes)}" part="bibContainer">
3635
3904
  <slot></slot>
3636
3905
  </div>
3637
3906
  `;
@@ -3640,23 +3909,23 @@ class AuroDropdownBib extends i$2 {
3640
3909
 
3641
3910
  var dropdownVersion$1 = '3.0.0';
3642
3911
 
3643
- var shapeSizeCss = i$5`.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:0;min-height:60px;max-height:60px;background-color:unset}.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:0;min-height:60px;max-height:60px;background-color:unset}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-rounded-lg{min-height:52px;max-height:52px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:34px}.shape-pill-xl.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:34px 0 0 34px}.shape-pill-left-xl.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 34px 34px 0}.shape-pill-right-xl.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-md{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:34px}.shape-pill-md.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-left-md{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:34px 0 0 34px}.shape-pill-left-md.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}.shape-pill-right-md{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 34px 34px 0}.shape-pill-right-md.simple{border-width:0;min-height:72px;max-height:72px;background-color:unset}`;
3912
+ 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}`;
3644
3913
 
3645
- 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-advanced-color-state-error-inverse, #f9a4a8)}.helpText{color:var(--ds-auro-dropdown-helptext-text-color)}`;
3914
+ 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)}`;
3646
3915
 
3647
- var classicColorCss = i$5`:host([layout*=classic]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([layout*=classic]) .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);outline-color:var(--ds-auro-dropdown-trigger-outline-color)}:host([layout*=classic]) .trigger:focus-within,:host([layout*=classic]) .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]{--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)}:host([layout*=classic])[common],:host([layout*=classic])[bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67)}:host([layout*=classic])[common] .trigger:active,:host([layout*=classic])[common] .trigger:focus-within,:host([layout*=classic])[bordered] .trigger:active,:host([layout*=classic])[bordered] .trigger:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic])[error]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([layout*=classic])[error] .trigger{outline:solid 1px var(--ds-auro-dropdown-trigger-border-color)}:host([layout*=classic])[error] .trigger:focus-within,:host([layout*=classic])[error] .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][common],:host([layout*=classic])[disabled][bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host([layout*=classic])[onDark]{--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([layout*=classic])[onDark]:focus-within,:host([layout*=classic])[onDark]: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)}:host([layout*=classic])[onDark][common],:host([layout*=classic])[onDark][bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff)}:host([layout*=classic])[onDark][common] .trigger:focus-within,:host([layout*=classic])[onDark][common] .trigger:active,:host([layout*=classic])[onDark][bordered] .trigger:focus-within,:host([layout*=classic])[onDark][bordered] .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][error]{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}:host([layout*=classic])[onDark][error] .trigger{outline:solid 1px var(--ds-auro-dropdown-trigger-border-color)}: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)}:host([layout*=classic])[onDark][disabled][common],:host([layout*=classic])[onDark][disabled][bordered]{--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}`;
3916
+ 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)}`;
3648
3917
 
3649
- 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}@media(hover: hover){:host([layout*=classic]) .trigger:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;margin-left:var(--ds-size-100, 0.5rem)}: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][fluid]){display:block}:host([layout*=classic][matchwidth]) #bibSizer{width:100%}:host([layout*=classic][disabled]){pointer-events:none}:host([layout*=classic][inset]) .trigger{padding:var(--ds-size-150, 0.75rem) var(--ds-size-200, 1rem)}:host([layout*=classic][common]) .trigger,:host([layout*=classic][inset][bordered]) .trigger{padding:var(--ds-size-200, 1rem) var(--ds-size-150, 0.75rem)}:host([layout*=classic][inset][bordered][labeled]) .trigger{padding:var(--ds-size-100, 0.5rem) var(--ds-size-150, 0.75rem)}:host([layout*=classic][common]) .trigger,:host([layout*=classic][rounded]) .trigger{border-radius:var(--ds-border-radius, 0.375rem)}`;
3918
+ 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}`;
3650
3919
 
3651
- var styleEmphasizedCss = i$5`:host{display:block}.wrapper{display:flex;flex-direction:column}.trigger{flex:1;display:flex;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.triggerContent{overflow:hidden;flex:1;display:flex;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap;width:100%}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{margin-left:24px;width:calc(100% - 24px)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{margin-right:24px;width:calc(100% - 24px)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{margin-right:24px;width:calc(100% - 48px)}`;
3920
+ 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)}`;
3652
3921
 
3653
- var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex-direction:column}.trigger{flex:1;display:flex;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.triggerContent{overflow:hidden;flex:1;display:flex;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap;width:100%}:host([layout*=snowflake]) .leftIndent{margin-left:24px;width:calc(100% - 48px)}:host([layout*=snowflake]) .rightIndent{margin-right:24px;width:calc(100% - 48px)}`;
3922
+ 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)}`;
3654
3923
 
3655
- var colorCss$4 = 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-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
3924
+ 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)}`;
3656
3925
 
3657
- var styleCss$5 = i$5`.helptext-wrapper{display:none;font-size:var(--ds-basic-text-body-xs-font-size, 12px);font-weight:var(--ds-basic-text-body-xs-font-weight, 450);letter-spacing:var(--ds-basic-text-body-xs-letter-spacing, 0);line-height:var(--ds-basic-text-body-xs-line-height, 16px)}:host([large]) .helptext-wrapper{font-size:var(--ds-basic-text-body-default-font-size, 16px);font-weight:var(--ds-basic-text-body-default-font-weight, 450);letter-spacing:var(--ds-basic-text-body-default-letter-spacing, 0);line-height:var(--ds-basic-text-body-default-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}`;
3926
+ 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}`;
3658
3927
 
3659
- var tokensCss$3 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
3928
+ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
3660
3929
 
3661
3930
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3662
3931
  // See LICENSE in the project root for license information.
@@ -3665,7 +3934,7 @@ var tokensCss$3 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
3665
3934
 
3666
3935
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3667
3936
 
3668
- let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
3937
+ let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
3669
3938
 
3670
3939
  /* eslint-disable jsdoc/require-param */
3671
3940
 
@@ -3737,7 +4006,7 @@ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
3737
4006
  *
3738
4007
  * @attr { Boolean } large - If declared, make font-size to 1rem(16px).
3739
4008
  */
3740
- class AuroHelpText extends i$2 {
4009
+ let AuroHelpText$1 = class AuroHelpText extends i$2 {
3741
4010
 
3742
4011
  constructor() {
3743
4012
  super();
@@ -3746,14 +4015,14 @@ class AuroHelpText extends i$2 {
3746
4015
  this.onDark = false;
3747
4016
  this.hasTextContent = false;
3748
4017
 
3749
- AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-helptext');
4018
+ AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
3750
4019
  }
3751
4020
 
3752
4021
  static get styles() {
3753
4022
  return [
3754
- colorCss$4,
3755
- styleCss$5,
3756
- tokensCss$3
4023
+ colorCss$5,
4024
+ styleCss$6,
4025
+ tokensCss$4
3757
4026
  ];
3758
4027
  }
3759
4028
 
@@ -3802,7 +4071,7 @@ class AuroHelpText extends i$2 {
3802
4071
  *
3803
4072
  */
3804
4073
  static register(name = "auro-helptext") {
3805
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroHelpText);
4074
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
3806
4075
  }
3807
4076
 
3808
4077
  updated() {
@@ -3856,11 +4125,11 @@ class AuroHelpText extends i$2 {
3856
4125
  </div>
3857
4126
  `;
3858
4127
  }
3859
- }
4128
+ };
3860
4129
 
3861
- var helpTextVersion = '1.0.0';
4130
+ var helpTextVersion$1 = '1.0.0';
3862
4131
 
3863
- let AuroElement$2 = class AuroElement extends i$2 {
4132
+ let AuroElement$3 = class AuroElement extends i$2 {
3864
4133
  static get properties() {
3865
4134
  return {
3866
4135
 
@@ -3895,18 +4164,21 @@ let AuroElement$2 = class AuroElement extends i$2 {
3895
4164
  }
3896
4165
 
3897
4166
  resetShapeClasses() {
3898
- if (this.shape && this.size) {
3899
- const wrapper = this.shadowRoot.querySelector('.wrapper');
4167
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
3900
4168
 
3901
- if (wrapper) {
3902
- wrapper.classList.forEach((className) => {
3903
- if (className.startsWith('shape-')) {
3904
- wrapper.classList.remove(className);
3905
- }
3906
- });
4169
+ if (wrapper) {
4170
+ wrapper.classList.forEach((className) => {
4171
+ if (className.startsWith('shape-')) {
4172
+ wrapper.classList.remove(className);
4173
+ }
4174
+ });
3907
4175
 
3908
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
3909
- }
4176
+ }
4177
+
4178
+ if (this.shape && this.size) {
4179
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
4180
+ } else {
4181
+ wrapper.classList.add('shape-none');
3910
4182
  }
3911
4183
  }
3912
4184
 
@@ -3969,7 +4241,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
3969
4241
  * @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
3970
4242
  * @event auroDropdown-idAdded - Notifies consumers that the unique ID for the dropdown bib has been generated.
3971
4243
  */
3972
- class AuroDropdown extends AuroElement$2 {
4244
+ class AuroDropdown extends AuroElement$3 {
3973
4245
  constructor() {
3974
4246
  super();
3975
4247
 
@@ -3978,20 +4250,16 @@ class AuroDropdown extends AuroElement$2 {
3978
4250
  this.matchWidth = false;
3979
4251
  this.noHideOnThisFocusLoss = false;
3980
4252
 
3981
- this.errorMessage = ''; // TODO!
4253
+ this.errorMessage = ''; // TODO - check with Doug if there is still more to do here
3982
4254
 
3983
4255
  // Layout Config
3984
4256
  this.layout = 'classic';
3985
- this.shape = 'rounded';
4257
+ this.shape = 'classic';
3986
4258
  this.size = 'xl';
3987
4259
 
3988
- this.privateDefaults();
3989
- }
4260
+ this.parentBorder = false;
3990
4261
 
3991
- get commonLabelClasses() {
3992
- return {
3993
- // 'withValue': this.value && this.value.length > 0
3994
- };
4262
+ this.privateDefaults();
3995
4263
  }
3996
4264
 
3997
4265
  get commonWrapperClasses() {
@@ -3999,7 +4267,8 @@ class AuroDropdown extends AuroElement$2 {
3999
4267
  'trigger': true,
4000
4268
  'wrapper': true,
4001
4269
  'hasFocus': this.hasFocus,
4002
- 'simple': this.simple
4270
+ 'simple': this.simple,
4271
+ 'parentBorder': this.parentBorder
4003
4272
  };
4004
4273
  }
4005
4274
 
@@ -4051,7 +4320,7 @@ class AuroDropdown extends AuroElement$2 {
4051
4320
  /**
4052
4321
  * @private
4053
4322
  */
4054
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4323
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2$1();
4055
4324
 
4056
4325
  /**
4057
4326
  * @private
@@ -4076,7 +4345,7 @@ class AuroDropdown extends AuroElement$2 {
4076
4345
  /**
4077
4346
  * @private
4078
4347
  */
4079
- this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion, AuroHelpText);
4348
+ this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion$1, AuroHelpText$1);
4080
4349
 
4081
4350
  /**
4082
4351
  * @private
@@ -4266,6 +4535,15 @@ class AuroDropdown extends AuroElement$2 {
4266
4535
  reflect: true
4267
4536
  },
4268
4537
 
4538
+ /**
4539
+ * Defines if the trigger should size based on the parent element providing the border UI.
4540
+ * @private
4541
+ */
4542
+ parentBorder: {
4543
+ type: Boolean,
4544
+ reflect: true
4545
+ },
4546
+
4269
4547
  /**
4270
4548
  * If declared, the popover and trigger will be set to the same width.
4271
4549
  */
@@ -4368,7 +4646,7 @@ class AuroDropdown extends AuroElement$2 {
4368
4646
  static get styles() {
4369
4647
  return [
4370
4648
  colorCss$1$2,
4371
- tokensCss$1$1,
4649
+ tokensCss$1$2,
4372
4650
 
4373
4651
  // default layout
4374
4652
  classicColorCss,
@@ -4393,7 +4671,7 @@ class AuroDropdown extends AuroElement$2 {
4393
4671
  *
4394
4672
  */
4395
4673
  static register(name = "auro-dropdown") {
4396
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroDropdown);
4674
+ AuroLibraryRuntimeUtils$2$1.prototype.registerComponent(name, AuroDropdown);
4397
4675
  }
4398
4676
 
4399
4677
  /**
@@ -4656,14 +4934,13 @@ class AuroDropdown extends AuroElement$2 {
4656
4934
  * @returns {void}
4657
4935
  */
4658
4936
  handleTriggerContentSlotChange(event) {
4659
-
4660
4937
  this.floater.handleTriggerTabIndex();
4661
4938
 
4662
4939
  // Get the trigger
4663
4940
  const trigger = this.shadowRoot.querySelector('#trigger');
4664
4941
 
4665
4942
  // Get the trigger slot
4666
- const triggerSlot = this.shadowRoot.querySelector('.triggerContent slot');
4943
+ const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
4667
4944
 
4668
4945
  // If there's a trigger slot
4669
4946
  if (triggerSlot) {
@@ -4726,11 +5003,9 @@ class AuroDropdown extends AuroElement$2 {
4726
5003
  *
4727
5004
  * @private
4728
5005
  * @method handleDefaultSlot
4729
- * @param {Event} event - The event object representing the slot change.
4730
5006
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
4731
5007
  */
4732
- handleDefaultSlot(event) {
4733
- [...event.target.assignedNodes()].forEach((node) => this.bibContent.append(node));
5008
+ handleDefaultSlot() {
4734
5009
 
4735
5010
  if (this.onSlotChange) {
4736
5011
  this.onSlotChange();
@@ -4738,33 +5013,10 @@ class AuroDropdown extends AuroElement$2 {
4738
5013
  }
4739
5014
 
4740
5015
  /**
5016
+ * Returns HTML for the common portion of the layouts.
4741
5017
  * @private
4742
- * @method handleLabelSlotChange
4743
- * @param {event} event - The event object representing the slot change.
4744
- * @description Handles the slot change event for the label slot.
4745
- */
4746
- handleLabelSlotChange (event) {
4747
-
4748
- // Get the nodes from the event
4749
- const nodes = event.target.assignedNodes();
4750
-
4751
- // Guard clause for no nodes
4752
- if (!nodes) {
4753
- return;
4754
- }
4755
-
4756
- // Convert the nodes to a measurable array so we can get the length
4757
- const nodesArr = Array.from(nodes);
4758
-
4759
- // If the nodes array has a length, the dropdown is labeled
4760
- this.labeled = nodesArr.length > 0;
4761
- }
4762
-
4763
- /**
4764
- * Returns HTML for the common portion of the layouts.
4765
- * @private
4766
- * @param {Object} helpTextClasses - Classes to apply to the help text container.
4767
- * @returns {html} - Returns HTML.
5018
+ * @param {Object} helpTextClasses - Classes to apply to the help text container.
5019
+ * @returns {html} - Returns HTML.
4768
5020
  */
4769
5021
  renderBasicHtml(helpTextClasses) {
4770
5022
  return u`
@@ -4774,24 +5026,20 @@ class AuroDropdown extends AuroElement$2 {
4774
5026
  class="${e(this.commonWrapperClasses)}" part="wrapper"
4775
5027
  tabindex="${this.tabIndex}"
4776
5028
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4777
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4778
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
5029
+ aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5030
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
4779
5031
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4780
5032
  @focusin="${this.handleFocusin}"
4781
5033
  @blur="${this.handleFocusOut}">
4782
- <div class="triggerContentWrapper">
4783
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4784
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4785
- </label>
4786
- <div class="triggerContent">
4787
- <slot
4788
- name="trigger"
4789
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4790
- </div>
5034
+ <div class="triggerContentWrapper" id="triggerLabel">
5035
+ <slot
5036
+ name="trigger"
5037
+ @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4791
5038
  </div>
4792
- ${this.chevron || this.common ? u`
5039
+ ${this.chevron ? u`
4793
5040
  <div
4794
5041
  id="showStateIcon"
5042
+ class="chevron"
4795
5043
  part="chevron">
4796
5044
  <${this.iconTag}
4797
5045
  category="interface"
@@ -4806,17 +5054,18 @@ class AuroDropdown extends AuroElement$2 {
4806
5054
  <div class="${e(helpTextClasses)}">
4807
5055
  <slot name="helpText"></slot>
4808
5056
  </div>
4809
- <div class="slotContent">
4810
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
4811
- </div>
4812
5057
  <div id="bibSizer" part="size"></div>
4813
5058
  <${this.dropdownBibTag}
4814
5059
  id="bib"
5060
+ shape="${this.shape}"
4815
5061
  ?data-show="${this.isPopoverVisible}"
4816
5062
  ?isfullscreen="${this.isBibFullscreen}"
4817
5063
  ?common="${this.common}"
4818
5064
  ?rounded="${this.common || this.rounded}"
4819
5065
  ?inset="${this.common || this.inset}">
5066
+ <div class="slotContent">
5067
+ <slot @slotchange="${this.handleDefaultSlot}"></slot>
5068
+ </div>
4820
5069
  </${this.dropdownBibTag}>
4821
5070
  </div>
4822
5071
  `;
@@ -4828,67 +5077,14 @@ class AuroDropdown extends AuroElement$2 {
4828
5077
  * @returns {html} - Returns HTML for the classic layout.
4829
5078
  */
4830
5079
  renderLayoutClassic() {
5080
+ // TODO: check with Doug why this was never used?
4831
5081
  const helpTextClasses = {
4832
- 'helpText': true,
4833
- 'leftIndent': false,
4834
- 'rightIndent': false
5082
+ 'helpText': true
4835
5083
  };
4836
5084
 
4837
5085
  return u`
4838
5086
  ${this.renderBasicHtml(helpTextClasses)}
4839
5087
  `;
4840
- // return html`
4841
- // <div>
4842
- // <div
4843
- // id="trigger"
4844
- // class="trigger"
4845
- // part="trigger"
4846
- // tabindex="${this.tabIndex}"
4847
- // ?showBorder="${this.showTriggerBorders}"
4848
- // role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4849
- // aria-expanded="${ifDefined(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4850
- // aria-controls="${ifDefined(this.triggerContentFocusable ? undefined : this.dropdownId)}"
4851
- // aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4852
- // >
4853
- // <div class="triggerContentWrapper">
4854
- // <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4855
- // <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4856
- // </label>
4857
- // <div class="triggerContent">
4858
- // <slot
4859
- // name="trigger"
4860
- // @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4861
- // </div>
4862
- // </div>
4863
- // ${this.chevron || this.common ? html`
4864
- // <div
4865
- // id="showStateIcon"
4866
- // part="chevron">
4867
- // <${this.iconTag}
4868
- // category="interface"
4869
- // name="chevron-down"
4870
- // ?onDark="${this.onDark}"
4871
- // variant="${this.disabled ? 'disabled' : 'muted'}">
4872
- // >
4873
- // </${this.iconTag}>
4874
- // </div>
4875
- // ` : undefined }
4876
- // </div>
4877
- // <div class="slotContent">
4878
- // <slot @slotchange="${this.handleDefaultSlot}"></slot>
4879
- // </div>
4880
- // <div id="bibSizer" part="size"></div>
4881
- // <${this.dropdownBibTag}
4882
- // id="bib"
4883
- // ?data-show="${this.isPopoverVisible}"
4884
- // ?isfullscreen="${this.isBibFullscreen}"
4885
- // ?common="${this.common}"
4886
- // ?rounded="${this.common || this.rounded}"
4887
- // ?inset="${this.common || this.inset}"
4888
- // >
4889
- // </${this.dropdownBibTag}>
4890
- // </div>
4891
- // `;
4892
5088
  }
4893
5089
 
4894
5090
  /**
@@ -4955,9 +5151,9 @@ class AuroDropdown extends AuroElement$2 {
4955
5151
 
4956
5152
  var dropdownVersion = '3.0.0';
4957
5153
 
4958
- var colorCss$1$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
5154
+ var colorCss$3$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
4959
5155
 
4960
- var styleCss$2$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
5156
+ var styleCss$4$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){box-sizing:border-box;padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
4961
5157
 
4962
5158
  var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
4963
5159
 
@@ -4968,7 +5164,7 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
4968
5164
 
4969
5165
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
4970
5166
 
4971
- class AuroLibraryRuntimeUtils {
5167
+ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
4972
5168
 
4973
5169
  /* eslint-disable jsdoc/require-param */
4974
5170
 
@@ -5029,7 +5225,7 @@ class AuroLibraryRuntimeUtils {
5029
5225
 
5030
5226
  return elemTag === tag || elem.hasAttribute(tag);
5031
5227
  }
5032
- }
5228
+ };
5033
5229
 
5034
5230
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5035
5231
  // See LICENSE in the project root for license information.
@@ -5071,251 +5267,1365 @@ class AuroDependencyVersioning {
5071
5267
  }
5072
5268
  }
5073
5269
 
5074
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5075
- // See LICENSE in the project root for license information.
5076
-
5270
+ /**
5271
+ * Private module-level WeakMap to hold MutationObservers for each host element.
5272
+ */
5273
+ const _observers = new WeakMap();
5077
5274
 
5078
5275
  /**
5079
- * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
5080
- * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
5081
- * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
5276
+ * Private module-level WeakMap to hold attribute matchers and targets for each host element.
5277
+ * Structure: {
5278
+ * host: {
5279
+ * matchers: Set<Function>,
5280
+ * targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
5281
+ * }
5282
+ * }
5082
5283
  */
5284
+ const _transportConfig = new WeakMap();
5083
5285
 
5084
- let AuroElement$1 = class AuroElement extends i$2 {
5286
+ /**
5287
+ * Transfers all matching attributes from a host element to a target element and observes for future changes.
5288
+ *
5289
+ * @param {Object} params - The parameters for the function.
5290
+ * @param {HTMLElement} params.host - The host element from which attributes will be transported.
5291
+ * @param {HTMLElement} params.target - The target element to which attributes will be transported.
5292
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
5293
+ * @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
5294
+ * @returns {Function} A function to detach the observer when no longer needed.
5295
+ * @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
5296
+ */
5297
+ const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
5298
+ // Guard Clause: Ensure host is valid HTMLElement instance
5299
+ if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
5300
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
5301
+ }
5085
5302
 
5086
- // function to define props used within the scope of this component
5087
- static get properties() {
5088
- return {
5089
- hidden: { type: Boolean,
5090
- reflect: true },
5091
- hiddenVisually: { type: Boolean,
5092
- reflect: true },
5093
- hiddenAudible: { type: Boolean,
5094
- reflect: true },
5095
- };
5303
+ // Guard Clause: Ensure target is valid HTMLElement instance
5304
+ if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
5305
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
5096
5306
  }
5097
5307
 
5098
- /**
5099
- * @private Function that determines state of aria-hidden
5100
- */
5101
- hideAudible(value) {
5102
- if (value) {
5103
- return 'true'
5104
- }
5308
+ // Guard Clause: Ensure match is a function
5309
+ if (typeof match !== 'function') {
5310
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
5311
+ }
5105
5312
 
5106
- return 'false'
5313
+ // Guard Clause: Ensure removeOriginal is a boolean
5314
+ if (typeof removeOriginal !== 'boolean') {
5315
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
5107
5316
  }
5317
+
5318
+ // Register this transport and get cleanup function
5319
+ return _registerTransport({
5320
+ host,
5321
+ target,
5322
+ matcher: match,
5323
+ removeOriginal
5324
+ });
5108
5325
  };
5109
5326
 
5110
- 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>"};
5111
-
5112
- /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
5113
-
5114
- const _fetchMap$1 = new Map();
5115
-
5116
5327
  /**
5117
- * A callback to parse Response body.
5118
- *
5119
- * @callback ResponseParser
5120
- * @param {Fetch.Response} response
5121
- * @returns {Promise}
5328
+ * Registers a matcher and target for a host element and attaches an observer if needed.
5329
+ *
5330
+ * @param {Object} params - The parameters object.
5331
+ * @param {HTMLElement} params.host - The host element to observe.
5332
+ * @param {HTMLElement} params.target - The target element to receive attributes.
5333
+ * @param {Function} params.matcher - Function that determines which attributes to transport.
5334
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
5335
+ * @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
5336
+ * @returns {Function} Function to detach the specific matcher and target pairing.
5337
+ * @private
5122
5338
  */
5339
+ const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
5340
+ // Initialize config for this host if it doesn't exist
5341
+ if (!_transportConfig.has(host)) {
5342
+ _transportConfig.set(host, {
5343
+ matchers: new Set(),
5344
+ targets: new Map()
5345
+ });
5346
+ }
5123
5347
 
5124
- /**
5125
- * A minimal in-memory map to de-duplicate Fetch API media requests.
5126
- *
5127
- * @param {String} uri
5128
- * @param {Object} [options={}]
5129
- * @param {ResponseParser} [options.responseParser=(response) => response.text()]
5130
- * @returns {Promise}
5131
- */
5132
- const cacheFetch$1 = (uri, options = {}) => {
5133
- const responseParser = options.responseParser || ((response) => response.text());
5134
- if (!_fetchMap$1.has(uri)) {
5135
- _fetchMap$1.set(uri, fetch(uri).then(responseParser));
5348
+ const config = _transportConfig.get(host);
5349
+
5350
+ // Add the matcher to the set of matchers for this host
5351
+ config.matchers.add(matcher);
5352
+
5353
+ // Initialize target entry if it doesn't exist
5354
+ if (!config.targets.has(target)) {
5355
+ config.targets.set(target, new Map());
5356
+ }
5357
+
5358
+ // Store the matcher with its removeOriginal setting for this target
5359
+ config.targets.get(target).set(matcher, {
5360
+ removeOriginal,
5361
+ currentAttributes: new Map()
5362
+ });
5363
+
5364
+ // Perform initial attribute transport
5365
+ _transportAttributes({ host, target, matcher, removeOriginal });
5366
+
5367
+ // Attach observer
5368
+ _attachObserver(host);
5369
+
5370
+ // Return cleanup function and utility functions
5371
+ return {
5372
+ cleanup: () => _cleanupTransport(host, target, matcher),
5373
+ getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
5374
+ getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
5136
5375
  }
5137
- return _fetchMap$1.get(uri);
5138
5376
  };
5139
5377
 
5140
- 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}`;
5141
-
5142
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5143
- // See LICENSE in the project root for license information.
5144
-
5145
-
5146
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
5147
5378
  /**
5148
- * @slot - Hidden from visibility, used for a11y if icon description is needed
5379
+ * Cleans up resources associated with a specific matcher and target for a host element.
5380
+ *
5381
+ * @param {HTMLElement} host - The host element
5382
+ * @param {HTMLElement} target - The target element
5383
+ * @param {Function} matcher - The matcher function
5384
+ * @private
5149
5385
  */
5150
-
5151
- // build the component class
5152
- let BaseIcon$1 = class BaseIcon extends AuroElement$1 {
5153
- constructor() {
5154
- super();
5155
- this.onDark = false;
5386
+ const _cleanupTransport = (host, target, matcher) => {
5387
+ const config = _transportConfig.get(host);
5388
+ if (!config) return;
5389
+
5390
+ // Remove this matcher from this target
5391
+ const targetMatchers = config.targets.get(target);
5392
+ if (targetMatchers) {
5393
+ targetMatchers.delete(matcher);
5394
+
5395
+ // If this target has no more matchers, remove it
5396
+ if (targetMatchers.size === 0) {
5397
+ config.targets.delete(target);
5398
+ }
5399
+ }
5400
+
5401
+ // Check if this matcher is still used by any target
5402
+ let matcherStillUsed = false;
5403
+ for (const matcherMap of config.targets.values()) {
5404
+ if (matcherMap.has(matcher)) {
5405
+ matcherStillUsed = true;
5406
+ break;
5407
+ }
5156
5408
  }
5157
-
5158
- // function to define props used within the scope of this component
5159
- static get properties() {
5160
- return {
5161
- ...super.properties,
5162
-
5163
- /**
5164
- * Set value for on-dark version of auro-icon.
5165
- */
5166
- onDark: {
5167
- type: Boolean,
5168
- reflect: true
5169
- },
5170
-
5171
- /**
5172
- * @private
5173
- */
5174
- svg: {
5175
- attribute: false,
5176
- reflect: true
5177
- }
5178
- };
5409
+
5410
+ // If not used anymore, remove from matchers set
5411
+ if (!matcherStillUsed) {
5412
+ config.matchers.delete(matcher);
5179
5413
  }
5180
-
5181
- static get styles() {
5182
- return i$5`
5183
- ${styleCss$1$1}
5184
- `;
5414
+
5415
+ // If no more targets or matchers, detach observer
5416
+ if (config.targets.size === 0 || config.matchers.size === 0) {
5417
+ _detachObserver(host);
5185
5418
  }
5419
+ };
5186
5420
 
5187
- /**
5188
- * Async function to fetch requested icon from npm CDN.
5189
- * @private
5190
- * @param {string} category - Icon category.
5191
- * @param {string} name - Icon name.
5192
- * @returns {SVGElement} DOM - Ready HTML to be appended.
5193
- */
5194
- async fetchIcon(category, name) {
5195
- let iconHTML = '';
5196
-
5197
- if (category === 'logos') {
5198
- iconHTML = await cacheFetch$1(`${this.uri}/${category}/${name}.svg`);
5199
- } else {
5200
- iconHTML = await cacheFetch$1(`${this.uri}/icons/${category}/${name}.svg`);
5421
+ /**
5422
+ * Generic function to transport attributes from a host element to a target element.
5423
+ *
5424
+ * @param {Object} params - The parameters object.
5425
+ * @param {HTMLElement} params.host - The host element from which to transport attributes.
5426
+ * @param {HTMLElement} params.target - The target element to which attributes will be transported.
5427
+ * @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
5428
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
5429
+ * @returns {void}
5430
+ * @private
5431
+ */
5432
+ const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
5433
+ // Get a list of all matching attributes on the host element and their values
5434
+ const matchingAttributes = host.getAttributeNames()
5435
+ .filter(attr => matcher(attr))
5436
+ .reduce((acc, attr) => {
5437
+ acc[attr] = host.getAttribute(attr);
5438
+ return acc;
5439
+ }, {});
5440
+
5441
+ // Move matching attributes to the target element, removing them from the host if removeOriginal is true
5442
+ Object.entries(matchingAttributes).forEach(([key, value]) => {
5443
+ _setObservedAttribute(host, target, matcher, key, value);
5444
+ target.setAttribute(key, value);
5445
+ if (removeOriginal) {
5446
+ host.removeAttribute(key);
5201
5447
  }
5448
+ });
5449
+ };
5202
5450
 
5203
- const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
5451
+ /**
5452
+ * Attaches a MutationObserver to the host element to monitor attribute changes.
5453
+ *
5454
+ * @param {HTMLElement} host - The element to observe for attribute changes.
5455
+ * @returns {MutationObserver} The observer instance.
5456
+ * @private
5457
+ */
5458
+ const _attachObserver = (host) => {
5459
+ // If an observer for this host already exists, return it
5460
+ if (_observers.has(host)) {
5461
+ return _observers.get(host);
5462
+ }
5463
+
5464
+ // Create a new MutationObserver
5465
+ const observer = new MutationObserver((mutations) => {
5466
+ const config = _transportConfig.get(host);
5467
+ if (!config) return;
5468
+
5469
+ // For each mutation affecting attributes
5470
+ mutations
5471
+ .filter(mutation => mutation.type === 'attributes')
5472
+ .forEach(mutation => {
5473
+ const attributeName = mutation.attributeName;
5474
+
5475
+ // Find matchers that care about this attribute
5476
+ for (const matcher of config.matchers) {
5477
+ if (matcher(attributeName)) {
5478
+ // For each target that uses this matcher
5479
+ for (const [target, matcherConfigs] of config.targets.entries()) {
5480
+ if (matcherConfigs.has(matcher)) {
5481
+ const { removeOriginal } = matcherConfigs.get(matcher);
5482
+ _transportAttributes({
5483
+ host,
5484
+ target,
5485
+ matcher,
5486
+ removeOriginal
5487
+ });
5488
+ }
5489
+ }
5490
+ }
5491
+ }
5492
+ });
5493
+ });
5204
5494
 
5205
- return dom.body.querySelector('svg');
5206
- }
5495
+ // Start observing attribute changes
5496
+ observer.observe(host, { attributes: true });
5497
+
5498
+ // Store the observer
5499
+ _observers.set(host, observer);
5500
+
5501
+ return observer;
5502
+ };
5207
5503
 
5208
- // lifecycle function
5209
- async firstUpdated() {
5210
- if (!this.customSvg) {
5211
- const svg = await this.fetchIcon(this.category, this.name);
5504
+ /**
5505
+ * Detaches and cleans up the MutationObserver for a given host element.
5506
+ *
5507
+ * @param {HTMLElement} host - The element whose observer should be detached.
5508
+ * @private
5509
+ */
5510
+ const _detachObserver = (host) => {
5511
+ if (_observers.has(host)) {
5512
+ const observer = _observers.get(host);
5513
+ observer.disconnect();
5514
+ _observers.delete(host);
5515
+ }
5516
+
5517
+ // Clean up the transport config as well
5518
+ if (_transportConfig.has(host)) {
5519
+ _transportConfig.delete(host);
5520
+ }
5521
+ };
5212
5522
 
5213
- if (svg) {
5214
- this.svg = svg;
5215
- } else if (!svg) {
5216
- const penDOM = new DOMParser().parseFromString(error$1.svg, 'text/html');
5523
+ /**
5524
+ * Gets the matcher configuration for a specific host, target, and matcher
5525
+ * @param {HTMLElement} host - The host element
5526
+ * @param {HTMLElement} target - The target element
5527
+ * @param {Function} matcher - The matcher function
5528
+ * @returns {Object|undefined} The matcher configuration if found
5529
+ * @private
5530
+ */
5531
+ const _getMatcherConfig = (host, target, matcher) => {
5532
+ const config = _transportConfig.get(host);
5533
+ if (!config) return undefined;
5534
+
5535
+ const targetMatchers = config.targets.get(target);
5536
+ if (!targetMatchers) return undefined;
5537
+
5538
+ return targetMatchers.get(matcher);
5539
+ };
5217
5540
 
5218
- this.svg = penDOM.body.firstChild;
5219
- }
5220
- }
5541
+ /**
5542
+ * Sets an observed attribute value
5543
+ * @param {HTMLElement} host - The host element
5544
+ * @param {HTMLElement} target - The target element
5545
+ * @param {Function} matcher - The matcher function
5546
+ * @param {string} key - The attribute name
5547
+ * @param {string} value - The attribute value
5548
+ * @private
5549
+ */
5550
+ const _setObservedAttribute = (host, target, matcher, key, value) => {
5551
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5552
+ if (matcherConfig) {
5553
+ matcherConfig.currentAttributes.set(key, value);
5221
5554
  }
5222
5555
  };
5223
5556
 
5224
- var tokensCss$2 = 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)}`;
5225
-
5226
- var colorCss$3 = 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)}`;
5557
+ const _getObservedAttribute = (host, target, matcher, attr) => {
5558
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5559
+ if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
5560
+ return undefined;
5561
+ };
5227
5562
 
5228
- // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5229
- // See LICENSE in the project root for license information.
5563
+ const _getObservedAttributes = (host, target, matcher) => {
5564
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5565
+ if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
5566
+ return [];
5567
+ };
5230
5568
 
5569
+ const _matchers = {
5570
+ 'aria-': attr => attr.startsWith('aria-'),
5571
+ 'role': attr => attr.match(/^role$/)
5572
+ };
5231
5573
 
5232
- let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5233
- constructor() {
5234
- super();
5574
+ const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
5575
+ return transportAttributes({
5576
+ host,
5577
+ target,
5578
+ match: attr => {
5579
+ for (const key in _matchers) {
5580
+ if (_matchers[key](attr)) return true;
5581
+ }
5582
+ return false;
5583
+ },
5584
+ removeOriginal
5585
+ });
5586
+ };
5235
5587
 
5236
- this.variant = undefined;
5237
- this.privateDefaults();
5238
- }
5588
+ let AuroElement$1 = class AuroElement extends i$2 {
5239
5589
 
5240
5590
  /**
5241
- * Internal Defaults.
5591
+ * @type {Object} return object from transportAttributes via a11yUtilities
5592
+ * @property {Function} cleanup - Function to clean up the attribute watcher.
5593
+ * @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
5594
+ * @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
5242
5595
  * @private
5243
- * @returns {void}
5244
5596
  */
5245
- privateDefaults() {
5246
- this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
5247
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
5248
- }
5597
+ attributeWatcher;
5249
5598
 
5250
- // function to define props used within the scope of this component
5251
5599
  static get properties() {
5252
5600
  return {
5253
- ...super.properties,
5254
5601
 
5255
5602
  /**
5256
- * Set aria-hidden value. Default is `true`. Option is `false`.
5603
+ * Defines the layout of an element.
5604
+ * @default {'default'}
5257
5605
  */
5258
- ariaHidden: {
5606
+ layout: {
5259
5607
  type: String,
5608
+ attribute: "layout",
5260
5609
  reflect: true
5261
5610
  },
5262
-
5611
+
5263
5612
  /**
5264
- * The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
5613
+ * Defines the shape of an element.
5614
+ * @property {'default', 'rounded', 'pill', 'circle'}
5615
+ * @default {'default'}
5265
5616
  */
5266
- category: {
5617
+ shape: {
5267
5618
  type: String,
5619
+ attribute: "shape",
5268
5620
  reflect: true
5269
5621
  },
5270
5622
 
5271
5623
  /**
5272
- * Allows custom color to be set.
5273
- */
5274
- customColor: {
5275
- type: Boolean
5276
- },
5277
-
5278
- /**
5279
- * When true, auro-icon will render a custom SVG inside the default slot.
5280
- */
5281
- customSvg: {
5282
- type: Boolean
5283
- },
5284
-
5285
- /**
5286
- * Exposes content in slot as icon label.
5624
+ * Defines the size of an element.
5625
+ * @property {'xs', 'sm', 'md', 'lg', 'xl'}
5626
+ * @default {'md'}
5287
5627
  */
5288
- label: {
5289
- type: Boolean,
5628
+ size: {
5629
+ type: String,
5630
+ attribute: "size",
5290
5631
  reflect: true
5291
5632
  },
5292
5633
 
5293
- /**
5294
- * The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage.
5634
+ /**
5635
+ * This Boolean attribute lets you specify that the element should be rendered in dark mode.
5636
+ * @default {false}
5295
5637
  */
5296
- name: {
5297
- type: String,
5638
+ onDark: {
5639
+ type: Boolean,
5640
+ attribute: "ondark",
5298
5641
  reflect: true
5299
5642
  },
5300
5643
 
5301
5644
  /**
5302
- * The style of the icon. The accepted variants are `accent1`, `disabled`, `muted`, `statusDefault`, `statusInfo`, `statusSuccess`, `statusWarning`, `statusError`, `statusInfoSubtle`, `statusSuccessSubtle`, `statusWarningSubtle`, `statusErrorSubtle`, `fareBasicEconomy`, `fareBusiness`, `fareEconomy`, `fareFirst`, `farePremiumEconomy`, `tierOneWorldEmerald`, `tierOneWorldSapphire`, `tierOneWorldRuby`.
5645
+ * A reference to the wrapper element in the shadow DOM.
5646
+ * This is used to apply layout and shape classes dynamically.
5647
+ * @type {HTMLElement|null}
5648
+ * @default {null}
5649
+ * @private
5303
5650
  */
5304
- variant: {
5305
- type: String,
5306
- reflect: true
5651
+ wrapper: {
5652
+ attribute: false,
5653
+ reflect: false
5307
5654
  }
5308
5655
  };
5309
5656
  }
5310
5657
 
5311
- static get styles() {
5312
- return [
5313
- super.styles,
5314
- i$5`${tokensCss$2}`,
5315
- i$5`${styleCss$1$1}`,
5316
- i$5`${colorCss$3}`
5317
- ];
5318
- }
5658
+
5659
+
5660
+ resetShapeClasses() {
5661
+ if (this.shape && this.size) {
5662
+
5663
+ if (this.wrapper) {
5664
+ this.wrapper.classList.forEach((className) => {
5665
+ if (className.startsWith('shape-')) {
5666
+ this.wrapper.classList.remove(className);
5667
+ }
5668
+ });
5669
+
5670
+ this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
5671
+ }
5672
+ }
5673
+ }
5674
+
5675
+ resetLayoutClasses() {
5676
+ if (this.layout) {
5677
+ if (this.wrapper) {
5678
+ this.wrapper.classList.forEach((className) => {
5679
+ if (className.startsWith('layout-')) {
5680
+ this.wrapper.classList.remove(className);
5681
+ }
5682
+ });
5683
+
5684
+ this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
5685
+ }
5686
+ }
5687
+ }
5688
+
5689
+ updateComponentArchitecture() {
5690
+ this.resetLayoutClasses();
5691
+ this.resetShapeClasses();
5692
+ }
5693
+
5694
+ updated(changedProperties) {
5695
+ if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
5696
+ this.updateComponentArchitecture();
5697
+ }
5698
+ }
5699
+
5700
+ firstUpdated() {
5701
+ super.firstUpdated();
5702
+
5703
+ // Set a reference to the wrapper element in the shadow DOM
5704
+ this.wrapper = this.shadowRoot.querySelector('.wrapper');
5705
+
5706
+ // Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
5707
+ this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
5708
+ }
5709
+
5710
+ disconnectedCallback() {
5711
+ super.disconnectedCallback();
5712
+
5713
+ // Cleanup the ARIA observer if it exists
5714
+ if (this.attributeWatcher) {
5715
+ this.attributeWatcher.cleanup();
5716
+ this.attributeWatcher = null;
5717
+ }
5718
+ }
5719
+
5720
+ // Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
5721
+ // This will catch if an invalid layout value is passed in and render the default layout if so.
5722
+ render() {
5723
+ try {
5724
+ return this.renderLayout();
5725
+ } catch (error) {
5726
+ // failed to get the defined layout
5727
+ console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
5728
+
5729
+ // fallback to the default layout
5730
+ return this.getLayout('default');
5731
+ }
5732
+ }
5733
+ };
5734
+
5735
+ var styleCss$3$1 = 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}`;
5736
+
5737
+ var colorCss$2$1 = 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)}`;
5738
+
5739
+ var tokensCss$2$1 = 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}`;
5740
+
5741
+ var shapeSize = i$5`.shape-rounded-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-md{min-height:44px;max-height:44px;border-style:solid;border-radius:6px;overflow:hidden;font-size:16px}.shape-rounded-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:6px;overflow:hidden;font-size:14px}.shape-rounded-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:4px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px;overflow:hidden;font-size:18px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px 0 0 34px;overflow:hidden}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:0 34px 34px 0;overflow:hidden}.shape-pill-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px;overflow:hidden;font-size:18px}.shape-pill-left-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px 0 0 26px;overflow:hidden}.shape-pill-right-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:0 26px 26px 0;overflow:hidden}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px;overflow:hidden}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px 0 0 22px;overflow:hidden}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-radius:0 22px 22px 0;overflow:hidden;font-size:16px}.shape-pill-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px;overflow:hidden;font-size:14px}.shape-pill-left-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px 0 0 16px;overflow:hidden}.shape-pill-right-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:0 16px 16px 0;overflow:hidden}.shape-pill-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-left-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px 0 0 10px;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-pill-right-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:0 10px 10px 0;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-circle-xl{min-height:68px;max-height:68px;min-width:68px;max-width:68px;border-style:solid;border-radius:34px;overflow:hidden;padding:0}.shape-circle-lg{min-height:52px;max-height:52px;min-width:52px;max-width:52px;border-style:solid;border-radius:26px;overflow:hidden;padding:0}.shape-circle-md{min-height:44px;max-height:44px;min-width:44px;max-width:44px;border-style:solid;border-radius:22px;overflow:hidden;padding:0}.shape-circle-sm{min-height:32px;max-height:32px;min-width:32px;max-width:32px;border-style:solid;border-radius:16px;overflow:hidden;padding:0}.shape-circle-xs{min-height:20px;max-height:20px;min-width:20px;max-width:20px;border-style:solid;border-radius:10px;overflow:hidden;padding:0;outline-offset:-2px;outline-width:1px}`;
5742
+
5743
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5744
+ // See LICENSE in the project root for license information.
5745
+
5746
+ // ---------------------------------------------------------------------
5747
+
5748
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5749
+
5750
+ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
5751
+
5752
+ /* eslint-disable jsdoc/require-param */
5753
+
5754
+ /**
5755
+ * This will register a new custom element with the browser.
5756
+ * @param {String} name - The name of the custom element.
5757
+ * @param {Object} componentClass - The class to register as a custom element.
5758
+ * @returns {void}
5759
+ */
5760
+ registerComponent(name, componentClass) {
5761
+ if (!customElements.get(name)) {
5762
+ customElements.define(name, class extends componentClass {});
5763
+ }
5764
+ }
5765
+
5766
+ /**
5767
+ * Finds and returns the closest HTML Element based on a selector.
5768
+ * @returns {void}
5769
+ */
5770
+ closestElement(
5771
+ selector, // selector like in .closest()
5772
+ base = this, // extra functionality to skip a parent
5773
+ __Closest = (el, found = el && el.closest(selector)) =>
5774
+ !el || el === document || el === window
5775
+ ? null // standard .closest() returns null for non-found selectors also
5776
+ : found
5777
+ ? found // found a selector INside this element
5778
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5779
+ ) {
5780
+ return __Closest(base);
5781
+ }
5782
+ /* eslint-enable jsdoc/require-param */
5783
+
5784
+ /**
5785
+ * 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.
5786
+ * @param {Object} elem - The element to check.
5787
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5788
+ * @returns {void}
5789
+ */
5790
+ handleComponentTagRename(elem, tagName) {
5791
+ const tag = tagName.toLowerCase();
5792
+ const elemTag = elem.tagName.toLowerCase();
5793
+
5794
+ if (elemTag !== tag) {
5795
+ elem.setAttribute(tag, true);
5796
+ }
5797
+ }
5798
+
5799
+ /**
5800
+ * Validates if an element is a specific Auro component.
5801
+ * @param {Object} elem - The element to validate.
5802
+ * @param {String} tagName - The name of the Auro component to check against.
5803
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5804
+ */
5805
+ elementMatch(elem, tagName) {
5806
+ const tag = tagName.toLowerCase();
5807
+ const elemTag = elem.tagName.toLowerCase();
5808
+
5809
+ return elemTag === tag || elem.hasAttribute(tag);
5810
+ }
5811
+ };
5812
+
5813
+ var styleCss$2$1 = 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}}`;
5814
+
5815
+ 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}`;
5816
+
5817
+ var tokensCss$1$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
5818
+
5819
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5820
+ // See LICENSE in the project root for license information.
5821
+
5822
+
5823
+ class AuroLoader extends i$2 {
5824
+ constructor() {
5825
+ super();
5826
+
5827
+ /**
5828
+ * @private
5829
+ */
5830
+ this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5831
+
5832
+ /**
5833
+ * @private
5834
+ */
5835
+ this.mdCount = 3;
5836
+
5837
+ /**
5838
+ * @private
5839
+ */
5840
+ this.smCount = 2;
5841
+
5842
+ /**
5843
+ * @private
5844
+ */
5845
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
5846
+
5847
+ this.orbit = false;
5848
+ this.ringworm = false;
5849
+ this.laser = false;
5850
+ this.pulse = false;
5851
+ }
5852
+
5853
+ // function to define props used within the scope of this component
5854
+ static get properties() {
5855
+ return {
5856
+
5857
+ /**
5858
+ * Sets loader to laser type.
5859
+ */
5860
+ laser: {
5861
+ type: Boolean,
5862
+ reflect: true
5863
+ },
5864
+
5865
+ /**
5866
+ * Sets loader to orbit type.
5867
+ */
5868
+ orbit: {
5869
+ type: Boolean,
5870
+ reflect: true
5871
+ },
5872
+
5873
+ /**
5874
+ * Sets loader to pulse type.
5875
+ */
5876
+ pulse: {
5877
+ type: Boolean,
5878
+ reflect: true
5879
+ },
5880
+
5881
+ /**
5882
+ * Sets loader to ringworm type.
5883
+ */
5884
+ ringworm: {
5885
+ type: Boolean,
5886
+ reflect: true
5887
+ }
5888
+ };
5889
+ }
5890
+
5891
+ static get styles() {
5892
+ return [
5893
+ i$5`${styleCss$2$1}`,
5894
+ i$5`${colorCss$1$1}`,
5895
+ i$5`${tokensCss$1$1}`
5896
+ ];
5897
+ }
5898
+
5899
+ /**
5900
+ * This will register this element with the browser.
5901
+ * @param {string} [name="auro-loader"] - The name of element that you want to register to.
5902
+ *
5903
+ * @example
5904
+ * AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
5905
+ *
5906
+ */
5907
+ static register(name = "auro-loader") {
5908
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
5909
+ }
5910
+
5911
+ firstUpdated() {
5912
+ // Add the tag name as an attribute if it is different than the component name
5913
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
5914
+ }
5915
+
5916
+ connectedCallback() {
5917
+ super.connectedCallback();
5918
+ }
5919
+
5920
+ /**
5921
+ * @private
5922
+ * @returns {Array} Numbered array for template map.
5923
+ */
5924
+ defineTemplate() {
5925
+ let nodes = Array.from(Array(this.mdCount).keys());
5926
+
5927
+ if (this.orbit || this.laser) {
5928
+ nodes = Array.from(Array(this.smCount).keys());
5929
+ } else if (this.ringworm) {
5930
+ nodes = Array.from(Array(0).keys());
5931
+ }
5932
+
5933
+ return nodes;
5934
+ }
5935
+
5936
+ // When using auroElement, use the following attribute and function when hiding content from screen readers.
5937
+ // aria-hidden="${this.hideAudible(this.hiddenAudible)}"
5938
+
5939
+ // function that renders the HTML and CSS into the scope of the component
5940
+ render() {
5941
+ return x`
5942
+ ${this.defineTemplate().map((idx) => x`
5943
+ <span part="element" class="loader node-${idx}"></span>
5944
+ `)}
5945
+
5946
+ <div class="no-animation">Loading...</div>
5947
+
5948
+ ${this.ringworm ? x`
5949
+ <svg part="element" class="circular" viewBox="25 25 50 50">
5950
+ <circle class="path" cx="50" cy="50" r="20" fill="none"/>
5951
+ </svg>`
5952
+ : ``
5953
+ }
5954
+ `;
5955
+ }
5956
+ }
5957
+
5958
+ var loaderVersion = '5.0.0';
5959
+
5960
+ /* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
5961
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5962
+ // See LICENSE in the project root for license information.
5963
+
5964
+
5965
+ /**
5966
+ * @slot - Default slot for the text of the button.
5967
+ * @csspart button - Apply CSS to HTML5 button.
5968
+ * @csspart loader - Apply CSS to auro-loader.
5969
+ * @csspart text - Apply CSS to text slot.
5970
+ * @csspart icon - Apply CSS to icon slot.
5971
+ */
5972
+
5973
+ /* eslint-disable lit/no-invalid-html, lit/binding-positions */
5974
+
5975
+ const ICON_ONLY_SHAPES = ['circle'];
5976
+
5977
+ /**
5978
+ * AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
5979
+ * It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
5980
+ * @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
5981
+ * @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
5982
+ * @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
5983
+ * @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
5984
+ * @property {boolean} onDark - Indicates if the button is rendered in dark mode.
5985
+ */
5986
+ class AuroButton extends AuroElement$1 {
5987
+
5988
+ /**
5989
+ * Enables form association for this element.
5990
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
5991
+ * @returns {boolean} - Returns true to enable form association.
5992
+ */
5993
+ static get formAssociated() {
5994
+ return true;
5995
+ }
5996
+
5997
+ constructor() {
5998
+ super();
5999
+ this.autofocus = false;
6000
+ this.disabled = false;
6001
+ this.loading = false;
6002
+ this.size = "md";
6003
+ this.shape = "rounded";
6004
+ this.onDark = false;
6005
+ this.fluid = false;
6006
+ this.loadingText = this.loadingText || 'Loading...';
6007
+
6008
+ // Support for HTML5 forms
6009
+ if (typeof this.attachInternals === 'function') {
6010
+ this.internals = this.attachInternals();
6011
+ } else {
6012
+ this.internals = null;
6013
+
6014
+ // eslint-disable-next-line no-console
6015
+ console.warn('This browser does not support form association features. Some form-related functionality may not work as expected. Consider using a polyfill or handling click events manually.');
6016
+ }
6017
+
6018
+ /**
6019
+ * Generate unique names for dependency components.
6020
+ */
6021
+ const versioning = new AuroDependencyVersioning();
6022
+
6023
+ /**
6024
+ * @private
6025
+ */
6026
+ this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
6027
+
6028
+ /**
6029
+ * @private
6030
+ */
6031
+ this.buttonHref = undefined;
6032
+
6033
+ /**
6034
+ * @private
6035
+ */
6036
+ this.buttonTarget = undefined;
6037
+
6038
+ /**
6039
+ * @private
6040
+ */
6041
+ this.buttonRel = undefined;
6042
+ }
6043
+
6044
+ static get styles() {
6045
+ return [
6046
+ tokensCss$2$1,
6047
+ styleCss$3$1,
6048
+ colorCss$2$1,
6049
+ shapeSize
6050
+ ];
6051
+ }
6052
+
6053
+ static get properties() {
6054
+ return {
6055
+
6056
+ ...super.properties,
6057
+
6058
+ /**
6059
+ * Override layout since it isn't used in this component.
6060
+ * @private
6061
+ */
6062
+ layout: {
6063
+ type: Boolean,
6064
+ attribute: false,
6065
+ reflect: false
6066
+ },
6067
+
6068
+ /**
6069
+ * This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
6070
+ */
6071
+ autofocus: {
6072
+ type: Boolean,
6073
+ reflect: true
6074
+ },
6075
+
6076
+ /**
6077
+ * If set to true, button will become disabled and not allow for interactions.
6078
+ */
6079
+ disabled: {
6080
+ type: Boolean,
6081
+ reflect: true
6082
+ },
6083
+
6084
+ /**
6085
+ * Alters the shape of the button to be full width of its parent container.
6086
+ */
6087
+ fluid: {
6088
+ type: Boolean,
6089
+ reflect: true
6090
+ },
6091
+
6092
+ /**
6093
+ * If set to true button text will be replaced with `auro-loader` and become disabled.
6094
+ */
6095
+ loading: {
6096
+ type: Boolean,
6097
+ reflect: true
6098
+ },
6099
+
6100
+ /**
6101
+ * Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used.
6102
+ */
6103
+ loadingText: {
6104
+ type: String
6105
+ },
6106
+
6107
+ /**
6108
+ * Populates `tabindex` to define the focusable sequence in keyboard navigation.
6109
+ */
6110
+ tIndex: {
6111
+ type: String,
6112
+ reflect: true
6113
+ },
6114
+
6115
+ /**
6116
+ * Populates `tabindex` to define the focusable sequence in keyboard navigation.
6117
+ * Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
6118
+ * Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
6119
+ */
6120
+ tabindex: {
6121
+ type: String,
6122
+ reflect: false
6123
+ },
6124
+
6125
+ /**
6126
+ * Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
6127
+ */
6128
+ title: {
6129
+ type: String,
6130
+ reflect: true
6131
+ },
6132
+
6133
+ /**
6134
+ * The type of the button. Possible values are: `submit`, `reset`, `button`.
6135
+ */
6136
+ type: {
6137
+ type: String,
6138
+ reflect: true
6139
+ },
6140
+
6141
+ /**
6142
+ * Defines the value associated with the button which is submitted with the form data.
6143
+ */
6144
+ value: {
6145
+ type: String,
6146
+ reflect: true
6147
+ },
6148
+
6149
+ /**
6150
+ * Sets button variant option.
6151
+ * @default primary
6152
+ */
6153
+ variant: {
6154
+ type: String,
6155
+ reflect: true
6156
+ },
6157
+
6158
+ /**
6159
+ * @private
6160
+ */
6161
+ buttonHref: {
6162
+ type: String,
6163
+ },
6164
+
6165
+ /**
6166
+ * @private
6167
+ */
6168
+ buttonTarget: {
6169
+ type: String,
6170
+ },
6171
+
6172
+ /**
6173
+ * @private
6174
+ */
6175
+ buttonRel: {
6176
+ type: String,
6177
+ },
6178
+ };
6179
+ }
6180
+
6181
+ /**
6182
+ * This will register this element with the browser.
6183
+ * @param {string} [name="auro-button"] - The name of element that you want to register to.
6184
+ *
6185
+ * @example
6186
+ * AuroButton.register("custom-button") // this will register this element to <custom-button/>
6187
+ *
6188
+ */
6189
+ static register(name = "auro-button") {
6190
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
6191
+ }
6192
+
6193
+ /**
6194
+ * Internal method to apply focus to the HTML5 button.
6195
+ * @private
6196
+ * @returns {void}
6197
+ */
6198
+ focus() {
6199
+ this.renderRoot.querySelector('button').focus();
6200
+ }
6201
+
6202
+ /**
6203
+ * Submits the form that this button is associated with.
6204
+ * @private
6205
+ * @returns {void}
6206
+ */
6207
+ surfaceSubmitEvent() {
6208
+ if (this.form) {
6209
+ this.form.requestSubmit();
6210
+ }
6211
+ }
6212
+
6213
+ /**
6214
+ * Returns the form element that this button is associated with.
6215
+ * @private
6216
+ * @returns {HTMLFormElement | null}
6217
+ */
6218
+ get form() {
6219
+ return this.internals ? this.internals.form : null;
6220
+ }
6221
+
6222
+ /**
6223
+ * @private
6224
+ * @returns {Boolean}
6225
+ */
6226
+ get hideText() {
6227
+ return ICON_ONLY_SHAPES.includes(this.shape);
6228
+ }
6229
+
6230
+ /**
6231
+ * Returns the current value of the projected `aria-label` attribute or undefined if not set.
6232
+ * @returns {string | undefined}
6233
+ * @private
6234
+ */
6235
+ get currentAriaLabel() {
6236
+ if (!this.attributeWatcher) return undefined;
6237
+
6238
+ const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
6239
+ return ariaLabel || undefined;
6240
+ }
6241
+
6242
+ /**
6243
+ * Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
6244
+ * @returns {string | undefined}
6245
+ * @private
6246
+ */
6247
+ get currentAriaLabelledBy() {
6248
+ if (!this.attributeWatcher) return undefined;
6249
+
6250
+ const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
6251
+ return ariaLabelledBy || undefined;
6252
+ }
6253
+
6254
+ /**
6255
+ * Renders the default layout for the button.
6256
+ * @returns {TemplateResult}
6257
+ * @private
6258
+ */
6259
+ renderLayoutDefault() {
6260
+ const classes = {
6261
+ "util_insetLg--squish": true,
6262
+ "auro-button": true,
6263
+ "icon-only": this.hideText,
6264
+ wrapper: true,
6265
+ loading: this.loading,
6266
+ };
6267
+
6268
+ const tag = this.buttonHref ? i`a` : i`button`;
6269
+ const part = this.buttonHref ? 'link' : 'button';
6270
+
6271
+ return u`
6272
+ <${tag}
6273
+ part="${part}"
6274
+ aria-label="${o(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
6275
+ aria-labelledby="${o(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
6276
+ tabindex="${o(this.tIndex || this.tabindex)}"
6277
+ ?autofocus="${this.autofocus}"
6278
+ class=${e(classes)}
6279
+ ?disabled="${this.disabled || this.loading}"
6280
+ ?onDark="${this.onDark}"
6281
+ title="${o(this.title ? this.title : undefined)}"
6282
+ name="${o(this.name ? this.name : undefined)}"
6283
+ type="${o(this.type ? this.type : undefined)}"
6284
+ variant="${o(this.variant ? this.variant : undefined)}"
6285
+ .value="${o(this.value ? this.value : undefined)}"
6286
+ @click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
6287
+ href="${o(this.buttonHref || undefined)}"
6288
+ target="${o(this.buttonTarget || undefined)}"
6289
+ rel="${o(this.buttonRel || undefined)}"
6290
+ >
6291
+ ${o(this.loading ? u`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
6292
+
6293
+ <span class="contentWrapper">
6294
+ <span class="textSlot" part="text">
6295
+ <slot></slot>
6296
+ </span>
6297
+ </span>
6298
+ </${tag}>
6299
+ `;
6300
+ }
6301
+
6302
+ /**
6303
+ * Renders the layout of the button.
6304
+ * @returns {TemplateResult}
6305
+ * @private
6306
+ */
6307
+ renderLayout() {
6308
+ return this.renderLayoutDefault();
6309
+ }
6310
+ }
6311
+
6312
+ var buttonVersion = '11.2.1';
6313
+
6314
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6315
+ // See LICENSE in the project root for license information.
6316
+
6317
+
6318
+ /**
6319
+ * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
6320
+ * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
6321
+ * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
6322
+ */
6323
+
6324
+ let AuroElement$2 = class AuroElement extends i$2 {
6325
+
6326
+ // function to define props used within the scope of this component
6327
+ static get properties() {
6328
+ return {
6329
+ hidden: { type: Boolean,
6330
+ reflect: true },
6331
+ hiddenVisually: { type: Boolean,
6332
+ reflect: true },
6333
+ hiddenAudible: { type: Boolean,
6334
+ reflect: true },
6335
+ };
6336
+ }
6337
+
6338
+ /**
6339
+ * @private Function that determines state of aria-hidden
6340
+ */
6341
+ hideAudible(value) {
6342
+ if (value) {
6343
+ return 'true'
6344
+ }
6345
+
6346
+ return 'false'
6347
+ }
6348
+ };
6349
+
6350
+ 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>"};
6351
+
6352
+ /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
6353
+
6354
+ const _fetchMap$1 = new Map();
6355
+
6356
+ /**
6357
+ * A callback to parse Response body.
6358
+ *
6359
+ * @callback ResponseParser
6360
+ * @param {Fetch.Response} response
6361
+ * @returns {Promise}
6362
+ */
6363
+
6364
+ /**
6365
+ * A minimal in-memory map to de-duplicate Fetch API media requests.
6366
+ *
6367
+ * @param {String} uri
6368
+ * @param {Object} [options={}]
6369
+ * @param {ResponseParser} [options.responseParser=(response) => response.text()]
6370
+ * @returns {Promise}
6371
+ */
6372
+ const cacheFetch$1 = (uri, options = {}) => {
6373
+ const responseParser = options.responseParser || ((response) => response.text());
6374
+ if (!_fetchMap$1.has(uri)) {
6375
+ _fetchMap$1.set(uri, fetch(uri).then(responseParser));
6376
+ }
6377
+ return _fetchMap$1.get(uri);
6378
+ };
6379
+
6380
+ 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}`;
6381
+
6382
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6383
+ // See LICENSE in the project root for license information.
6384
+
6385
+
6386
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
6387
+ /**
6388
+ * @slot - Hidden from visibility, used for a11y if icon description is needed
6389
+ */
6390
+
6391
+ // build the component class
6392
+ let BaseIcon$1 = class BaseIcon extends AuroElement$2 {
6393
+ constructor() {
6394
+ super();
6395
+ this.onDark = false;
6396
+ }
6397
+
6398
+ // function to define props used within the scope of this component
6399
+ static get properties() {
6400
+ return {
6401
+ ...super.properties,
6402
+
6403
+ /**
6404
+ * Set value for on-dark version of auro-icon.
6405
+ */
6406
+ onDark: {
6407
+ type: Boolean,
6408
+ reflect: true
6409
+ },
6410
+
6411
+ /**
6412
+ * @private
6413
+ */
6414
+ svg: {
6415
+ attribute: false,
6416
+ reflect: true
6417
+ }
6418
+ };
6419
+ }
6420
+
6421
+ static get styles() {
6422
+ return i$5`
6423
+ ${styleCss$1$1}
6424
+ `;
6425
+ }
6426
+
6427
+ /**
6428
+ * Async function to fetch requested icon from npm CDN.
6429
+ * @private
6430
+ * @param {string} category - Icon category.
6431
+ * @param {string} name - Icon name.
6432
+ * @returns {SVGElement} DOM - Ready HTML to be appended.
6433
+ */
6434
+ async fetchIcon(category, name) {
6435
+ let iconHTML = '';
6436
+
6437
+ if (category === 'logos') {
6438
+ iconHTML = await cacheFetch$1(`${this.uri}/${category}/${name}.svg`);
6439
+ } else {
6440
+ iconHTML = await cacheFetch$1(`${this.uri}/icons/${category}/${name}.svg`);
6441
+ }
6442
+
6443
+ const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
6444
+
6445
+ return dom.body.querySelector('svg');
6446
+ }
6447
+
6448
+ // lifecycle function
6449
+ async firstUpdated() {
6450
+ if (!this.customSvg) {
6451
+ const svg = await this.fetchIcon(this.category, this.name);
6452
+
6453
+ if (svg) {
6454
+ this.svg = svg;
6455
+ } else if (!svg) {
6456
+ const penDOM = new DOMParser().parseFromString(error$1.svg, 'text/html');
6457
+
6458
+ this.svg = penDOM.body.firstChild;
6459
+ }
6460
+ }
6461
+ }
6462
+ };
6463
+
6464
+ 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)}`;
6465
+
6466
+ 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)}`;
6467
+
6468
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
6469
+ // See LICENSE in the project root for license information.
6470
+
6471
+ // ---------------------------------------------------------------------
6472
+
6473
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
6474
+
6475
+ let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
6476
+
6477
+ /* eslint-disable jsdoc/require-param */
6478
+
6479
+ /**
6480
+ * This will register a new custom element with the browser.
6481
+ * @param {String} name - The name of the custom element.
6482
+ * @param {Object} componentClass - The class to register as a custom element.
6483
+ * @returns {void}
6484
+ */
6485
+ registerComponent(name, componentClass) {
6486
+ if (!customElements.get(name)) {
6487
+ customElements.define(name, class extends componentClass {});
6488
+ }
6489
+ }
6490
+
6491
+ /**
6492
+ * Finds and returns the closest HTML Element based on a selector.
6493
+ * @returns {void}
6494
+ */
6495
+ closestElement(
6496
+ selector, // selector like in .closest()
6497
+ base = this, // extra functionality to skip a parent
6498
+ __Closest = (el, found = el && el.closest(selector)) =>
6499
+ !el || el === document || el === window
6500
+ ? null // standard .closest() returns null for non-found selectors also
6501
+ : found
6502
+ ? found // found a selector INside this element
6503
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
6504
+ ) {
6505
+ return __Closest(base);
6506
+ }
6507
+ /* eslint-enable jsdoc/require-param */
6508
+
6509
+ /**
6510
+ * 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.
6511
+ * @param {Object} elem - The element to check.
6512
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
6513
+ * @returns {void}
6514
+ */
6515
+ handleComponentTagRename(elem, tagName) {
6516
+ const tag = tagName.toLowerCase();
6517
+ const elemTag = elem.tagName.toLowerCase();
6518
+
6519
+ if (elemTag !== tag) {
6520
+ elem.setAttribute(tag, true);
6521
+ }
6522
+ }
6523
+
6524
+ /**
6525
+ * Validates if an element is a specific Auro component.
6526
+ * @param {Object} elem - The element to validate.
6527
+ * @param {String} tagName - The name of the Auro component to check against.
6528
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
6529
+ */
6530
+ elementMatch(elem, tagName) {
6531
+ const tag = tagName.toLowerCase();
6532
+ const elemTag = elem.tagName.toLowerCase();
6533
+
6534
+ return elemTag === tag || elem.hasAttribute(tag);
6535
+ }
6536
+ };
6537
+
6538
+ // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6539
+ // See LICENSE in the project root for license information.
6540
+
6541
+
6542
+ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
6543
+ constructor() {
6544
+ super();
6545
+
6546
+ this.variant = undefined;
6547
+ this.privateDefaults();
6548
+ }
6549
+
6550
+ /**
6551
+ * Internal Defaults.
6552
+ * @private
6553
+ * @returns {void}
6554
+ */
6555
+ privateDefaults() {
6556
+ this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
6557
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
6558
+ }
6559
+
6560
+ // function to define props used within the scope of this component
6561
+ static get properties() {
6562
+ return {
6563
+ ...super.properties,
6564
+
6565
+ /**
6566
+ * Set aria-hidden value. Default is `true`. Option is `false`.
6567
+ */
6568
+ ariaHidden: {
6569
+ type: String,
6570
+ reflect: true
6571
+ },
6572
+
6573
+ /**
6574
+ * The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
6575
+ */
6576
+ category: {
6577
+ type: String,
6578
+ reflect: true
6579
+ },
6580
+
6581
+ /**
6582
+ * Allows custom color to be set.
6583
+ */
6584
+ customColor: {
6585
+ type: Boolean
6586
+ },
6587
+
6588
+ /**
6589
+ * When true, auro-icon will render a custom SVG inside the default slot.
6590
+ */
6591
+ customSvg: {
6592
+ type: Boolean
6593
+ },
6594
+
6595
+ /**
6596
+ * Exposes content in slot as icon label.
6597
+ */
6598
+ label: {
6599
+ type: Boolean,
6600
+ reflect: true
6601
+ },
6602
+
6603
+ /**
6604
+ * The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage.
6605
+ */
6606
+ name: {
6607
+ type: String,
6608
+ reflect: true
6609
+ },
6610
+
6611
+ /**
6612
+ * The style of the icon. The accepted variants are `accent1`, `disabled`, `muted`, `statusDefault`, `statusInfo`, `statusSuccess`, `statusWarning`, `statusError`, `statusInfoSubtle`, `statusSuccessSubtle`, `statusWarningSubtle`, `statusErrorSubtle`, `fareBasicEconomy`, `fareBusiness`, `fareEconomy`, `fareFirst`, `farePremiumEconomy`, `tierOneWorldEmerald`, `tierOneWorldSapphire`, `tierOneWorldRuby`.
6613
+ */
6614
+ variant: {
6615
+ type: String,
6616
+ reflect: true
6617
+ }
6618
+ };
6619
+ }
6620
+
6621
+ static get styles() {
6622
+ return [
6623
+ super.styles,
6624
+ i$5`${tokensCss$3}`,
6625
+ i$5`${styleCss$1$1}`,
6626
+ i$5`${colorCss$4}`
6627
+ ];
6628
+ }
5319
6629
 
5320
6630
  /**
5321
6631
  * This will register this element with the browser.
@@ -5326,7 +6636,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5326
6636
  *
5327
6637
  */
5328
6638
  static register(name = "auro-icon") {
5329
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
6639
+ AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
5330
6640
  }
5331
6641
 
5332
6642
  connectedCallback() {
@@ -5347,8 +6657,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5347
6657
  async firstUpdated() {
5348
6658
  await super.firstUpdated();
5349
6659
 
5350
- // Removes the SVG description for screenreader if ariaHidden is set to true
5351
- if (!this.hasAttribute('ariaHidden') && this.svg) {
6660
+ /**
6661
+ * icons provide a description for screen readers. Icon only instances Auro-button
6662
+ * depend on this description to provide context for the user using a screen reader.
6663
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
6664
+ */
6665
+ if (this.hasAttribute('ariaHidden') && this.svg) {
5352
6666
  const svgDesc = this.svg.querySelector('desc');
5353
6667
 
5354
6668
  if (svgDesc) {
@@ -5358,43 +6672,113 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5358
6672
  }
5359
6673
  }
5360
6674
 
5361
- // function that renders the HTML and CSS into the scope of the component
5362
- render() {
5363
- const labelClasses = {
5364
- 'labelWrapper': true,
5365
- 'util_displayHiddenVisually': !this.label
5366
- };
5367
-
5368
- const svgClasses = {
5369
- 'svgWrapper': true,
5370
- };
5371
-
5372
- return x`
5373
- <div class="componentWrapper">
5374
- <div
5375
- class="${e(svgClasses)}"
5376
- title="${o(this.title || undefined)}">
5377
- <span aria-hidden="${o(this.ariaHidden || true)}" part="svg">
5378
- ${this.customSvg ? x`
5379
- <slot name="svg"></slot>
5380
- ` : x`
5381
- ${this.svg}
5382
- `
5383
- }
5384
- </span>
5385
- </div>
6675
+ // function that renders the HTML and CSS into the scope of the component
6676
+ render() {
6677
+ const labelClasses = {
6678
+ 'labelWrapper': true,
6679
+ 'util_displayHiddenVisually': !this.label
6680
+ };
6681
+
6682
+ const svgClasses = {
6683
+ 'svgWrapper': true,
6684
+ };
6685
+
6686
+ return x`
6687
+ <div class="componentWrapper">
6688
+ <div
6689
+ class="${e(svgClasses)}"
6690
+ title="${o(this.title || undefined)}">
6691
+ <span aria-hidden="${o(this.ariaHidden || true)}" part="svg">
6692
+ ${this.customSvg ? x`
6693
+ <slot name="svg"></slot>
6694
+ ` : x`
6695
+ ${this.svg}
6696
+ `
6697
+ }
6698
+ </span>
6699
+ </div>
6700
+
6701
+ <div class="${e(labelClasses)}">
6702
+ <slot></slot>
6703
+ </div>
6704
+ </div>
6705
+ `;
6706
+ }
6707
+ };
6708
+
6709
+ var iconVersion$1 = '8.0.4';
6710
+
6711
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
6712
+ // See LICENSE in the project root for license information.
6713
+
6714
+ // ---------------------------------------------------------------------
6715
+
6716
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
6717
+
6718
+ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
6719
+
6720
+ /* eslint-disable jsdoc/require-param */
6721
+
6722
+ /**
6723
+ * This will register a new custom element with the browser.
6724
+ * @param {String} name - The name of the custom element.
6725
+ * @param {Object} componentClass - The class to register as a custom element.
6726
+ * @returns {void}
6727
+ */
6728
+ registerComponent(name, componentClass) {
6729
+ if (!customElements.get(name)) {
6730
+ customElements.define(name, class extends componentClass {});
6731
+ }
6732
+ }
6733
+
6734
+ /**
6735
+ * Finds and returns the closest HTML Element based on a selector.
6736
+ * @returns {void}
6737
+ */
6738
+ closestElement(
6739
+ selector, // selector like in .closest()
6740
+ base = this, // extra functionality to skip a parent
6741
+ __Closest = (el, found = el && el.closest(selector)) =>
6742
+ !el || el === document || el === window
6743
+ ? null // standard .closest() returns null for non-found selectors also
6744
+ : found
6745
+ ? found // found a selector INside this element
6746
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
6747
+ ) {
6748
+ return __Closest(base);
6749
+ }
6750
+ /* eslint-enable jsdoc/require-param */
6751
+
6752
+ /**
6753
+ * 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.
6754
+ * @param {Object} elem - The element to check.
6755
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
6756
+ * @returns {void}
6757
+ */
6758
+ handleComponentTagRename(elem, tagName) {
6759
+ const tag = tagName.toLowerCase();
6760
+ const elemTag = elem.tagName.toLowerCase();
6761
+
6762
+ if (elemTag !== tag) {
6763
+ elem.setAttribute(tag, true);
6764
+ }
6765
+ }
6766
+
6767
+ /**
6768
+ * Validates if an element is a specific Auro component.
6769
+ * @param {Object} elem - The element to validate.
6770
+ * @param {String} tagName - The name of the Auro component to check against.
6771
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
6772
+ */
6773
+ elementMatch(elem, tagName) {
6774
+ const tag = tagName.toLowerCase();
6775
+ const elemTag = elem.tagName.toLowerCase();
5386
6776
 
5387
- <div class="${e(labelClasses)}">
5388
- <slot></slot>
5389
- </div>
5390
- </div>
5391
- `;
6777
+ return elemTag === tag || elem.hasAttribute(tag);
5392
6778
  }
5393
6779
  };
5394
6780
 
5395
- var iconVersion$1 = '8.0.3';
5396
-
5397
- var styleCss$4 = 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)}`;
6781
+ 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)}`;
5398
6782
 
5399
6783
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5400
6784
  // See LICENSE in the project root for license information.
@@ -5423,7 +6807,7 @@ class AuroHeader extends i$2 {
5423
6807
  /**
5424
6808
  * @private
5425
6809
  */
5426
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
6810
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
5427
6811
  }
5428
6812
 
5429
6813
  // function to define props used within the scope of this component
@@ -5441,7 +6825,7 @@ class AuroHeader extends i$2 {
5441
6825
  }
5442
6826
 
5443
6827
  static get styles() {
5444
- return [styleCss$4];
6828
+ return [styleCss$5];
5445
6829
  }
5446
6830
 
5447
6831
  /**
@@ -5453,7 +6837,7 @@ class AuroHeader extends i$2 {
5453
6837
  *
5454
6838
  */
5455
6839
  static register(name = "auro-header") {
5456
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHeader);
6840
+ AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
5457
6841
  }
5458
6842
 
5459
6843
  firstUpdated() {
@@ -5549,17 +6933,30 @@ class AuroBibtemplate extends i$2 {
5549
6933
 
5550
6934
  this.large = false;
5551
6935
 
5552
- AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
6936
+ AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5553
6937
 
5554
6938
  const versioning = new AuroDependencyVersioning();
6939
+
6940
+ /**
6941
+ * @private
6942
+ */
5555
6943
  this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
6944
+
6945
+ /**
6946
+ * @private
6947
+ */
5556
6948
  this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
6949
+
6950
+ /**
6951
+ * @private
6952
+ */
6953
+ this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
5557
6954
  }
5558
6955
 
5559
6956
  static get styles() {
5560
6957
  return [
5561
- colorCss$1$1,
5562
- styleCss$2$1,
6958
+ colorCss$3$1,
6959
+ styleCss$4$1,
5563
6960
  tokenCss
5564
6961
  ];
5565
6962
  }
@@ -5588,7 +6985,7 @@ class AuroBibtemplate extends i$2 {
5588
6985
  *
5589
6986
  */
5590
6987
  static register(name = "auro-bibtemplate") {
5591
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroBibtemplate);
6988
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
5592
6989
  }
5593
6990
 
5594
6991
  /**
@@ -5628,15 +7025,27 @@ class AuroBibtemplate extends i$2 {
5628
7025
  this.setAttribute('exportparts', 'bibtemplate:dropdownBibTemplate');
5629
7026
  }
5630
7027
 
7028
+ firstUpdated(changedProperties) {
7029
+ super.firstUpdated(changedProperties);
7030
+
7031
+ this.dispatchEvent(new CustomEvent("auro-bibtemplate-connected", {
7032
+ bubbles: true,
7033
+ composed: true,
7034
+ detail: {
7035
+ element: this
7036
+ }
7037
+ }));
7038
+ }
7039
+
5631
7040
  // function that renders the HTML and CSS into the scope of the component
5632
7041
  render() {
5633
7042
  return u`
5634
7043
  <div id="bibTemplate" part="bibtemplate">
5635
7044
  ${this.isFullscreen ? u`
5636
7045
  <div id="headerContainer">
5637
- <button id="closeButton" @click="${this.onCloseButtonClick}">
7046
+ <${this.buttonTag} id="closeButton" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
5638
7047
  <${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
5639
- </button>
7048
+ </${this.buttonTag}>
5640
7049
  <${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
5641
7050
  <slot name="header"></slot>
5642
7051
  </${this.headerTag}>
@@ -5645,26 +7054,234 @@ class AuroBibtemplate extends i$2 {
5645
7054
  </span>
5646
7055
  </div>` : null}
5647
7056
 
5648
- <div id="bodyContainer">
5649
- <slot></slot>
5650
- </div>
7057
+ <div id="bodyContainer">
7058
+ <slot></slot>
7059
+ </div>
7060
+
7061
+ ${this.isFullscreen ? u`
7062
+ <div id="footerContainer">
7063
+ <slot name="footer"></slot>
7064
+ </div>` : null}
7065
+ </div>
7066
+ `;
7067
+ }
7068
+ }
7069
+
7070
+ var bibTemplateVersion = '1.0.0';
7071
+
7072
+ var colorCss$3 = 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)}`;
7073
+
7074
+ var styleCss$4 = 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}`;
7075
+
7076
+ var tokensCss$2 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
7077
+
7078
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
7079
+ // See LICENSE in the project root for license information.
7080
+
7081
+ // ---------------------------------------------------------------------
7082
+
7083
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
7084
+
7085
+ let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
7086
+
7087
+ /* eslint-disable jsdoc/require-param */
7088
+
7089
+ /**
7090
+ * This will register a new custom element with the browser.
7091
+ * @param {String} name - The name of the custom element.
7092
+ * @param {Object} componentClass - The class to register as a custom element.
7093
+ * @returns {void}
7094
+ */
7095
+ registerComponent(name, componentClass) {
7096
+ if (!customElements.get(name)) {
7097
+ customElements.define(name, class extends componentClass {});
7098
+ }
7099
+ }
7100
+
7101
+ /**
7102
+ * Finds and returns the closest HTML Element based on a selector.
7103
+ * @returns {void}
7104
+ */
7105
+ closestElement(
7106
+ selector, // selector like in .closest()
7107
+ base = this, // extra functionality to skip a parent
7108
+ __Closest = (el, found = el && el.closest(selector)) =>
7109
+ !el || el === document || el === window
7110
+ ? null // standard .closest() returns null for non-found selectors also
7111
+ : found
7112
+ ? found // found a selector INside this element
7113
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
7114
+ ) {
7115
+ return __Closest(base);
7116
+ }
7117
+ /* eslint-enable jsdoc/require-param */
7118
+
7119
+ /**
7120
+ * 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.
7121
+ * @param {Object} elem - The element to check.
7122
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
7123
+ * @returns {void}
7124
+ */
7125
+ handleComponentTagRename(elem, tagName) {
7126
+ const tag = tagName.toLowerCase();
7127
+ const elemTag = elem.tagName.toLowerCase();
7128
+
7129
+ if (elemTag !== tag) {
7130
+ elem.setAttribute(tag, true);
7131
+ }
7132
+ }
7133
+
7134
+ /**
7135
+ * Validates if an element is a specific Auro component.
7136
+ * @param {Object} elem - The element to validate.
7137
+ * @param {String} tagName - The name of the Auro component to check against.
7138
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
7139
+ */
7140
+ elementMatch(elem, tagName) {
7141
+ const tag = tagName.toLowerCase();
7142
+ const elemTag = elem.tagName.toLowerCase();
7143
+
7144
+ return elemTag === tag || elem.hasAttribute(tag);
7145
+ }
7146
+ };
7147
+
7148
+ // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7149
+ // See LICENSE in the project root for license information.
7150
+
7151
+
7152
+ /**
7153
+ * Displays help text or error messages within form elements - Internal Use Only.
7154
+ *
7155
+ * @attr { Boolean } large - If declared, make font-size to 1rem(16px).
7156
+ */
7157
+ class AuroHelpText extends i$2 {
7158
+
7159
+ constructor() {
7160
+ super();
7161
+
7162
+ this.error = false;
7163
+ this.onDark = false;
7164
+ this.hasTextContent = false;
7165
+
7166
+ AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-helptext');
7167
+ }
7168
+
7169
+ static get styles() {
7170
+ return [
7171
+ colorCss$3,
7172
+ styleCss$4,
7173
+ tokensCss$2
7174
+ ];
7175
+ }
7176
+
7177
+ // function to define props used within the scope of this component
7178
+ static get properties() {
7179
+ return {
7180
+
7181
+ /**
7182
+ * @private
7183
+ */
7184
+ slotNodes: {
7185
+ type: Boolean,
7186
+ },
7187
+
7188
+ /**
7189
+ * @private
7190
+ */
7191
+ hasTextContent: {
7192
+ type: Boolean,
7193
+ },
7194
+
7195
+ /**
7196
+ * If declared, make font color red.
7197
+ */
7198
+ error: {
7199
+ type: Boolean,
7200
+ reflect: true,
7201
+ },
7202
+
7203
+ /**
7204
+ * If declared, will apply onDark styles.
7205
+ */
7206
+ onDark: {
7207
+ type: Boolean,
7208
+ reflect: true
7209
+ }
7210
+ };
7211
+ }
7212
+
7213
+ /**
7214
+ * This will register this element with the browser.
7215
+ * @param {string} [name="auro-helptext"] - The name of element that you want to register to.
7216
+ *
7217
+ * @example
7218
+ * AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
7219
+ *
7220
+ */
7221
+ static register(name = "auro-helptext") {
7222
+ AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroHelpText);
7223
+ }
7224
+
7225
+ updated() {
7226
+ this.handleSlotChange();
7227
+ }
7228
+
7229
+ handleSlotChange(event) {
7230
+ if (event) {
7231
+ this.slotNodes = event.target.assignedNodes();
7232
+ }
7233
+
7234
+ this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
7235
+ }
7236
+
7237
+ /**
7238
+ * Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
7239
+ *
7240
+ * @param {NodeList|Array} nodes - The list of nodes to check for content.
7241
+ * @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
7242
+ * @private
7243
+ */
7244
+ checkSlotsForContent(nodes) {
7245
+ if (!nodes) {
7246
+ return false;
7247
+ }
7248
+
7249
+ return nodes.some((node) => {
7250
+ if (node.textContent.trim()) {
7251
+ return true;
7252
+ }
7253
+
7254
+ if (!node.querySelector) {
7255
+ return false;
7256
+ }
7257
+
7258
+ const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
7259
+ if (!nestedSlot) {
7260
+ return false;
7261
+ }
5651
7262
 
5652
- ${this.isFullscreen ? u`
5653
- <div id="footerContainer">
5654
- <slot name="footer"></slot>
5655
- </div>` : null}
7263
+ const nestedSlotNodes = nestedSlot.assignedNodes();
7264
+ return this.checkSlotsForContent(nestedSlotNodes);
7265
+ });
7266
+ }
7267
+
7268
+ // function that renders the HTML and CSS into the scope of the component
7269
+ render() {
7270
+ return x`
7271
+ <div class="helptext-wrapper" ?visible="${this.hasTextContent}">
7272
+ <slot @slotchange=${this.handleSlotChange}></slot>
5656
7273
  </div>
5657
- `;
7274
+ `;
5658
7275
  }
5659
7276
  }
5660
7277
 
5661
- var bibTemplateVersion = '1.0.0';
7278
+ var helpTextVersion = '1.0.0';
5662
7279
 
5663
- i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:inline-block;width:100%;margin:0;padding:0;vertical-align:middle}:host ::slotted(auro-menuoption),:host ::slotted([auro-menuoption]),:host auro-menuoption[loadingplaceholder]{padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host ::slotted([selected]){padding-left:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host([nocheckmark]) ::slotted(auro-menuoption),:host([nocheckmark]) auro-menuoption[loadingplaceholder]{padding-left:var(--ds-size-200, 1rem)}:host([root]){overflow-y:auto}[loadingplaceholder].empty{opacity:0;position:absolute}[loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}[loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}`;
7280
+ i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:block;vertical-align:middle}:host .wrapper{box-sizing:border-box;display:inline-block;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}:host [loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}:host([root]){overflow-y:auto}:host([root]) .wrapper[class*=-lg]{padding:var(--ds-size-150, 0.75rem)}:host([root]) .wrapper[class*=-xl]{padding:var(--ds-size-200, 1rem)}`;
5664
7281
 
5665
7282
  i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
5666
7283
 
5667
- i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
7284
+ i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
5668
7285
 
5669
7286
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5670
7287
  // See LICENSE in the project root for license information.
@@ -5711,9 +7328,9 @@ function arrayConverter(value) {
5711
7328
  throw new Error('Invalid value: Input must be an array or undefined');
5712
7329
  }
5713
7330
 
5714
- i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
7331
+ i$5`:host{cursor:pointer;user-select:none}:host .wrapper{display:flex;align-items:center;padding-right:var(--ds-size-200, 1rem);padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem));padding-top:var(--ds-size-50, 0.25rem);padding-bottom:var(--ds-size-50, 0.25rem);-webkit-tap-highlight-color:transparent}:host .wrapper[class*=shape-box],:host .wrapper[class*=shape-snowflake]{border-radius:unset}:host .wrapper[class*=shape-pill]{border-radius:30px}:host .wrapper[class*=-lg]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-75, 0.375rem);padding-bottom:var(--ds-size-75, 0.375rem);padding-right:var(--ds-size-150, 0.75rem)}:host .wrapper[class*=-lg]:not(:last-child){margin-bottom:var(--ds-size-50, 0.25rem)}:host .wrapper[class*=-xl]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-100, 0.5rem);padding-bottom:var(--ds-size-100, 0.5rem);padding-right:var(--ds-size-200, 1rem)}:host .wrapper[class*=-xl]:not(:last-child){margin-bottom:var(--ds-size-100, 0.5rem)}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([loadingplaceholder]) .wrapper{padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host([selected]) .wrapper{padding-left:0}:host([nocheckmark]) .wrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-lg]{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-xl]{padding-left:var(--ds-size-200, 1rem)}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
5715
7332
 
5716
- i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
7333
+ i$5`:host .wrapper{border:1px solid var(--ds-auro-menuoption-container-border-color);background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
5717
7334
 
5718
7335
  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}`;
5719
7336
 
@@ -5721,7 +7338,7 @@ i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);-
5721
7338
 
5722
7339
  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)}`;
5723
7340
 
5724
- var styleCss$3 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[slot=trigger]{width:100%;padding:0;border:0;cursor:pointer;font-family:inherit;font-size:inherit;text-align:left}[slot=trigger] .nestingSpacer{display:none}[slot=trigger] #placeholder.hidden{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host .nativeSelectWrapper{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip:rect(0, 0, 0, 0);opacity:.01}:host [auro-dropdown]{position:relative}:host [auro-dropdown]::part(trigger){max-height:var(--ds-size-300, 1.5rem)}:host [auro-dropdown]::part(popover){max-width:-webkit-fill-available;overflow-y:scroll}:host([disabled]) *{user-select:none}.outerWrapper{position:relative}auro-menuoption{padding:0;pointer-events:none}.menuWrapper{padding:var(--ds-size-50, 0.25rem) 0}:host([multiselect]) [slot=trigger]{display:flex}:host([multiselect]) auro-menuoption:not(:first-child){margin-left:var(--ds-size-100)}#slotHolder{display:none}`;
7341
+ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}.mainContent{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:8px}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent,:host([layout*=snowflake]) .triggerContent{padding:0 8px 0 24px}:host([layout*=classic]) .triggerContent{padding:0 8px}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{cursor:text;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host([layout*=classic]) label.withValue{font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([layout*=classic]) .value{height:auto;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]) *{user-select:none}`;
5725
7342
 
5726
7343
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5727
7344
  // See LICENSE in the project root for license information.
@@ -5734,16 +7351,19 @@ var styleCss$3 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.u
5734
7351
  * @slot - Default slot for the menu content.
5735
7352
  * @slot bib.fullscreen.headline - Defines the headline to display above menu-options
5736
7353
  * @slot label - Defines the content of the label.
7354
+ * @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
5737
7355
  * @slot helpText - Defines the content of the helpText.
5738
7356
  * @slot placeholder - Defines the content of the placeholder to be shown when there is no value
7357
+ * @slot valueText - Dropdown value text display.
7358
+ * @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
5739
7359
  * @event auroSelect-valueSet - Notifies that the component has a new value set.
5740
- * @event input - Notifies every time the value prop of the element is changed.
7360
+ * @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
5741
7361
  * @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
5742
7362
  * @csspart helpText - Apply CSS to the help text.
5743
7363
  */
5744
7364
 
5745
7365
  // build the component class
5746
- class AuroSelect extends i$2 {
7366
+ class AuroSelect extends AuroElement$4 {
5747
7367
  constructor() {
5748
7368
  super();
5749
7369
 
@@ -5753,12 +7373,25 @@ class AuroSelect extends i$2 {
5753
7373
  const idSubstrEnd = 8;
5754
7374
  const idSubstrStart = 2;
5755
7375
 
7376
+ this.matchWidth = false;
7377
+
7378
+ // Layout Config
7379
+ this.layout = 'snowflake';
7380
+ this.shape = 'snowflake';
7381
+ this.size = 'xl';
7382
+
5756
7383
  // floaterConfig
5757
7384
  this.placement = 'bottom-start';
5758
7385
  this.offset = 0;
5759
7386
  this.noFlip = false;
5760
7387
  this.autoPlacement = false;
5761
7388
 
7389
+ this.forceDisplayValue = false;
7390
+
7391
+ this.layout = 'classic';
7392
+ this.shape = 'classic';
7393
+ this.size = 'xl';
7394
+
5762
7395
  /**
5763
7396
  * @private
5764
7397
  */
@@ -5774,7 +7407,7 @@ class AuroSelect extends i$2 {
5774
7407
  /**
5775
7408
  * @private
5776
7409
  */
5777
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
7410
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
5778
7411
 
5779
7412
  /**
5780
7413
  * Generate unique names for dependency components.
@@ -5791,10 +7424,25 @@ class AuroSelect extends i$2 {
5791
7424
  */
5792
7425
  this.bibtemplateTag = versioning.generateTag('auro-formkit-select-bibtemplate', bibTemplateVersion, AuroBibtemplate);
5793
7426
 
7427
+ /**
7428
+ * @private
7429
+ */
7430
+ this.helpTextTag = versioning.generateTag('auro-formkit-input-helptext', helpTextVersion, AuroHelpText);
7431
+
5794
7432
  /**
5795
7433
  * @private
5796
7434
  */
5797
7435
  this.isHiddenWhileLoading = false;
7436
+
7437
+ /**
7438
+ * @private
7439
+ */
7440
+ this.hasFocus = false;
7441
+
7442
+ /**
7443
+ * @private
7444
+ */
7445
+ this.hasDisplayValueContent = false;
5798
7446
  }
5799
7447
 
5800
7448
  /**
@@ -5808,6 +7456,7 @@ class AuroSelect extends i$2 {
5808
7456
  this.value = undefined;
5809
7457
  this.fullscreenBreakpoint = 'sm';
5810
7458
  this.onDark = false;
7459
+ this.isPopoverVisible = false;
5811
7460
  }
5812
7461
 
5813
7462
  // This function is to define props used within the scope of this component
@@ -5824,6 +7473,14 @@ class AuroSelect extends i$2 {
5824
7473
  reflect: true
5825
7474
  },
5826
7475
 
7476
+ /**
7477
+ * If declared, the label and value will be visually hidden and the displayValue will render 100% of the time.
7478
+ */
7479
+ forceDisplayValue: {
7480
+ type: Boolean,
7481
+ reflect: true
7482
+ },
7483
+
5827
7484
  /**
5828
7485
  * If declared, bib's position will be automatically calculated where to appear.
5829
7486
  * @default false
@@ -5842,21 +7499,29 @@ class AuroSelect extends i$2 {
5842
7499
  },
5843
7500
 
5844
7501
  /**
5845
- * The name for the select element.
7502
+ * @private
5846
7503
  */
5847
- name: {
5848
- type: String,
5849
- reflect: true
7504
+ isPopoverVisible: {
7505
+ type: Boolean,
7506
+ reflect: false
5850
7507
  },
5851
7508
 
5852
7509
  /**
5853
- * If set, makes dropdown width match the size of the content, rather than the width of the trigger.
7510
+ * If declared, the popover and trigger will be set to the same width.
5854
7511
  */
5855
- flexMenuWidth: {
7512
+ matchWidth: {
5856
7513
  type: Boolean,
5857
7514
  reflect: true
5858
7515
  },
5859
7516
 
7517
+ /**
7518
+ * The name for the select element.
7519
+ */
7520
+ name: {
7521
+ type: String,
7522
+ reflect: true
7523
+ },
7524
+
5860
7525
  /**
5861
7526
  * Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
5862
7527
  * at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
@@ -5950,7 +7615,7 @@ class AuroSelect extends i$2 {
5950
7615
  * "top" | "right" | "bottom" | "left" |
5951
7616
  * "bottom-start" | "top-start" | "top-end" |
5952
7617
  * "right-start" | "right-end" | "bottom-end" |
5953
- * "left-start" | "left-end"
7618
+ * "left-start" | "left-end".
5954
7619
  * @default bottom-start
5955
7620
  */
5956
7621
  placement: {
@@ -6030,12 +7695,58 @@ class AuroSelect extends i$2 {
6030
7695
  type: Boolean,
6031
7696
  reflect: true,
6032
7697
  attribute: false
6033
- }
7698
+ },
7699
+
7700
+ /**
7701
+ * @private
7702
+ */
7703
+ hasFocus: {
7704
+ type: Boolean,
7705
+ reflect: false,
7706
+ attribute: false
7707
+ },
7708
+
7709
+ /**
7710
+ * @private
7711
+ */
7712
+ hasDisplayValueContent: {
7713
+ type: Boolean,
7714
+ reflect: false,
7715
+ attribute: false
7716
+ },
6034
7717
  };
6035
7718
  }
6036
7719
 
6037
7720
  static get styles() {
6038
- return [styleCss$3];
7721
+ return [
7722
+ i$5`${shapeSizeCss$1}`,
7723
+ i$5`${tokensCss$5}`,
7724
+ i$5`${styleCss$3}`,
7725
+ ];
7726
+ }
7727
+
7728
+ /**
7729
+ * Returns classmap configuration for html5 input labels in all layouts.
7730
+ * @private
7731
+ * @returns {void}
7732
+ */
7733
+ get commonLabelClasses() {
7734
+ return {
7735
+ 'is-disabled': this.disabled,
7736
+ 'withValue': this.value && this.value.length > 0,
7737
+ 'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
7738
+ };
7739
+ }
7740
+
7741
+ /**
7742
+ * Returns classmap configuration for wrapper elements in each layout.
7743
+ * @private
7744
+ * @returns {object} - Returns classmap.
7745
+ */
7746
+ get commonWrapperClasses() {
7747
+ return {
7748
+ 'wrapper': true
7749
+ };
6039
7750
  }
6040
7751
 
6041
7752
  /**
@@ -6045,11 +7756,13 @@ class AuroSelect extends i$2 {
6045
7756
  */
6046
7757
  configureDropdown() {
6047
7758
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
6048
- this.menuWrapper = this.dropdown.querySelector('.menuWrapper');
7759
+
7760
+ this.dropdown.addEventListener('auroDropdown-toggled', () => {
7761
+ this.isPopoverVisible = this.dropdown.isPopoverVisible;
7762
+ });
6049
7763
 
6050
7764
  // setting up bibtemplate
6051
- this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$); // eslint-disable-line no-underscore-dangle
6052
- this.bibtemplate.append(this.menuWrapper);
7765
+ this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
6053
7766
 
6054
7767
  if (this.customBibWidth) {
6055
7768
  this.dropdown.dropdownWidth = this.customBibWidth;
@@ -6068,7 +7781,7 @@ class AuroSelect extends i$2 {
6068
7781
  *
6069
7782
  */
6070
7783
  static register(name = "auro-select") {
6071
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroSelect);
7784
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
6072
7785
  }
6073
7786
 
6074
7787
  /**
@@ -6079,27 +7792,34 @@ class AuroSelect extends i$2 {
6079
7792
  updateDisplayedValue() {
6080
7793
  const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
6081
7794
 
6082
- // Clear everything except placeholder
6083
- const placeholder = triggerContentEl.querySelector('#placeholder');
6084
- triggerContentEl.innerHTML = '';
6085
- if (placeholder) {
6086
- triggerContentEl.appendChild(placeholder);
7795
+ // Clear out old value
7796
+ const valueElem = triggerContentEl.querySelector('#value');
7797
+ if (valueElem) {
7798
+ valueElem.innerHTML = '';
6087
7799
  }
6088
7800
 
7801
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
7802
+ const slottedElements = slot.assignedElements();
7803
+
7804
+ slottedElements.forEach((element) => {
7805
+ element.remove();
7806
+ });
7807
+
6089
7808
  // Handle selected options
6090
7809
  if (this.optionSelected) {
6091
- let displayText = '';
6092
-
6093
7810
  if (this.multiSelect && this.optionSelected.length > 0) {
6094
- // Create display text from selected options
6095
- displayText = this.optionSelected.map((option) => option.textContent).join(', ');
7811
+ const displayText = this.optionSelected.map((option) => option.textContent).join(', ');
7812
+
7813
+ valueElem.textContent = displayText;
6096
7814
  } else {
6097
- displayText = this.optionSelected.textContent;
6098
- }
7815
+ valueElem.innerHTML = this.optionSelected.innerHTML;
7816
+ const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
6099
7817
 
6100
- const span = document.createElement('span');
6101
- span.textContent = displayText;
6102
- triggerContentEl.appendChild(span);
7818
+ if (displayValueEl) {
7819
+ this.appendChild(displayValueEl.cloneNode(true));
7820
+ }
7821
+ this.hasDisplayValueContent = displayValueEl !== null;
7822
+ }
6103
7823
  }
6104
7824
 
6105
7825
  this.dropdown.requestUpdate();
@@ -6121,6 +7841,15 @@ class AuroSelect extends i$2 {
6121
7841
  return;
6122
7842
  }
6123
7843
 
7844
+ // set menu's default size if there it's not specified.
7845
+ if (!this.menu.getAttribute('size')) {
7846
+ this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
7847
+ }
7848
+
7849
+ if (!this.getAttribute('shape')) {
7850
+ this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
7851
+ }
7852
+
6124
7853
  if (this.multiSelect) {
6125
7854
  this.menu.multiSelect = this.multiSelect;
6126
7855
  }
@@ -6178,8 +7907,6 @@ class AuroSelect extends i$2 {
6178
7907
  * @returns {void}
6179
7908
  */
6180
7909
  configureSelect() {
6181
- // inject menu into menuWrapper
6182
- this.menuWrapper.append(this.menu);
6183
7910
 
6184
7911
  this.addEventListener('keydown', (evt) => {
6185
7912
  if (evt.key === 'ArrowUp') {
@@ -6233,6 +7960,7 @@ class AuroSelect extends i$2 {
6233
7960
 
6234
7961
  this.addEventListener('blur', () => {
6235
7962
  this.validation.validate(this);
7963
+ this.hasFocus = false;
6236
7964
  });
6237
7965
  }
6238
7966
 
@@ -6308,6 +8036,7 @@ class AuroSelect extends i$2 {
6308
8036
  */
6309
8037
  handleFocusin() {
6310
8038
 
8039
+ this.hasFocus = true;
6311
8040
  this.touched = true;
6312
8041
  }
6313
8042
 
@@ -6384,17 +8113,32 @@ class AuroSelect extends i$2 {
6384
8113
  // Add the tag name as an attribute if it is different than the component name
6385
8114
  this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
6386
8115
 
6387
- this.configureMenu();
6388
8116
  this.configureDropdown();
8117
+ this.configureMenu();
6389
8118
  this.configureSelect();
6390
8119
 
6391
8120
  // Set the initial value in auro-menu if defined
6392
8121
  if (this.hasAttribute('value') && this.getAttribute('value').length > 0) {
6393
8122
  this.value = this.multiSelect ? arrayConverter(this.getAttribute('value')) : this.getAttribute('value');
6394
- this.menu.value = this.value;
8123
+ if (this.menu) {
8124
+ this.menu.value = this.value;
8125
+ }
6395
8126
  }
6396
8127
  }
6397
8128
 
8129
+ /**
8130
+ * Update the menu value. With checks for menu existence. Awaits value update.
8131
+ * @param {string} value - The value to set in the menu.
8132
+ * @returns void
8133
+ * @private
8134
+ */
8135
+ async updateMenuValue(value) {
8136
+ if (!this.menu) return;
8137
+
8138
+ this.menu.value = value;
8139
+ await this.menu.updateComplete;
8140
+ }
8141
+
6398
8142
  async updated(changedProperties) {
6399
8143
  if (changedProperties.has('multiSelect')) {
6400
8144
  this.clearSelection();
@@ -6404,14 +8148,13 @@ class AuroSelect extends i$2 {
6404
8148
  if (this.value) {
6405
8149
  this.value = this.multiSelect ? arrayConverter(this.value) : this.value;
6406
8150
 
6407
- this.menu.value = this.value;
6408
-
6409
- // Wait for menu to finish updating its value
6410
- await this.menu.updateComplete;
8151
+ await this.updateMenuValue(this.value);
6411
8152
 
6412
- this.optionSelected = this.menu.optionSelected;
8153
+ if (this.menu) {
8154
+ this.optionSelected = this.menu.optionSelected;
8155
+ }
6413
8156
  } else {
6414
- this.menu.value = undefined;
8157
+ await this.updateMenuValue(undefined);
6415
8158
  }
6416
8159
 
6417
8160
  this._updateNativeSelect();
@@ -6428,6 +8171,10 @@ class AuroSelect extends i$2 {
6428
8171
  bubbles: true,
6429
8172
  cancelable: true,
6430
8173
  composed: true,
8174
+ detail: {
8175
+ optionSelected: this.optionSelected,
8176
+ value: this.value
8177
+ }
6431
8178
  }));
6432
8179
  }
6433
8180
 
@@ -6438,6 +8185,14 @@ class AuroSelect extends i$2 {
6438
8185
  if (changedProperties.has('error')) {
6439
8186
  this.validate(true);
6440
8187
  }
8188
+
8189
+ if (changedProperties.has('shape') && this.menu) {
8190
+ this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
8191
+ }
8192
+
8193
+ if (changedProperties.has('size') && this.menu) {
8194
+ this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
8195
+ }
6441
8196
  }
6442
8197
 
6443
8198
  /**
@@ -6462,53 +8217,400 @@ class AuroSelect extends i$2 {
6462
8217
  * Validates value.
6463
8218
  * @param {boolean} [force=false] - Whether to force validation.
6464
8219
  */
6465
- validate(force = false) {
6466
- this.validation.validate(this, force);
8220
+ validate(force = false) {
8221
+ this.validation.validate(this, force);
8222
+ }
8223
+
8224
+ /**
8225
+ * Syncs the value from the native select element to the component's value.
8226
+ * @param {Event} event // The change event from the native select element.
8227
+ * @returns {void}
8228
+ * @private
8229
+ */
8230
+ _handleNativeSelectChange(event) {
8231
+ const selectedOption = event.target.options[event.target.selectedIndex];
8232
+ const selectedValue = selectedOption.value;
8233
+
8234
+ if (this.multiSelect) {
8235
+ const currentArray = Array.isArray(this.value) ? this.value : [];
8236
+
8237
+ if (!currentArray.includes(selectedValue)) {
8238
+ this.value = [
8239
+ ...currentArray,
8240
+ selectedValue
8241
+ ];
8242
+ }
8243
+ } else {
8244
+ const currentValue = this.value;
8245
+
8246
+ if (currentValue !== selectedValue) {
8247
+ this.value = selectedValue;
8248
+ }
8249
+ }
8250
+ }
8251
+
8252
+ /**
8253
+ * Updates the native select element's value based on the component's value.
8254
+ * @returns {void}
8255
+ * @private
8256
+ */
8257
+ _updateNativeSelect() {
8258
+ const nativeSelect = this.shadowRoot.querySelector('select');
8259
+ if (!nativeSelect) {
8260
+ return;
8261
+ }
8262
+
8263
+ if (this.multiSelect) {
8264
+ nativeSelect.value = this.value ? this.value[0] : '';
8265
+ } else {
8266
+ nativeSelect.value = this.value || '';
8267
+ }
8268
+ }
8269
+
8270
+ renderAriaHtml() {
8271
+ return u`
8272
+ <div aria-live="polite" class="util_displayHiddenVisually">
8273
+ ${this.optionActive && this.options.length > 0
8274
+ ? u`
8275
+ ${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
8276
+ `
8277
+ : undefined
8278
+ };
8279
+
8280
+ ${this.optionSelected && this.options.length > 0
8281
+ ? u`
8282
+ ${`${this.optionSelected.innerText} selected`}
8283
+ `
8284
+ : undefined
8285
+ };
8286
+ </div>
8287
+ `;
8288
+ }
8289
+
8290
+ renderNativeSelect() {
8291
+ return u`
8292
+ <div class="nativeSelectWrapper util_displayHidden">
8293
+ <select
8294
+ tabindex="-1"
8295
+ id="${`native-select-${this.id || this.uniqueId}`}"
8296
+ name="${this.name || ''}"
8297
+ ?disabled="${this.disabled}"
8298
+ ?required="${this.required}"
8299
+ aria-hidden="true"
8300
+ autocomplete="${o(this.autocomplete)}"
8301
+ @change="${this._handleNativeSelectChange}">
8302
+ <option value="" ?selected="${!this.value}"></option>
8303
+ ${this.options.map((option) => {
8304
+ const optionValue = option.value || option.textContent;
8305
+ return u`
8306
+ <option
8307
+ value="${optionValue}"
8308
+ ?selected="${this.value === optionValue}">
8309
+ ${option.textContent}
8310
+ </option>
8311
+ `;
8312
+ })}
8313
+ </select>
8314
+ </div>
8315
+ `;
8316
+ }
8317
+
8318
+ /**
8319
+ * Returns HTML for the help text and error message.
8320
+ * @private
8321
+ * @returns {html} - Returns HTML for the help text and error message.
8322
+ */
8323
+ renderHtmlHelpText() {
8324
+ return u`
8325
+ ${!this.validity || this.validity === undefined || this.validity === 'valid'
8326
+ ? u`
8327
+ <${this.helpTextTag} ?onDark="${this.onDark}">
8328
+ <p id="${this.uniqueId}" part="helpText">
8329
+ <slot name="helpText"></slot>
8330
+ </p>
8331
+ </${this.helpTextTag}>
8332
+ `
8333
+ : u`
8334
+ <${this.helpTextTag} error ?onDark="${this.onDark}">
8335
+ <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
8336
+ ERROR MESSAGE ${this.errorMessage}
8337
+ </p>
8338
+ </${this.helpTextTag}>
8339
+ `
8340
+ }
8341
+ `;
8342
+ }
8343
+
8344
+ /**
8345
+ * Returns HTML for the emphasized layout.
8346
+ * @private
8347
+ * @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
8348
+ */
8349
+ renderLayoutEmphasized() {
8350
+ const placeholderClass = {
8351
+ hidden: this.value,
8352
+ };
8353
+
8354
+ const displayValueClasses = {
8355
+ 'displayValue': true,
8356
+ 'hasContent': this.hasDisplayValueContent,
8357
+ 'hasFocus': this.isPopoverVisible,
8358
+ 'withValue': this.value && this.value.length > 0,
8359
+ 'force': this.forceDisplayValue,
8360
+ };
8361
+
8362
+ const valueContainerClasses = {
8363
+ 'valueContainer': true,
8364
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
8365
+ };
8366
+
8367
+ return u`
8368
+ <div
8369
+ class="${e(this.commonWrapperClasses)}"
8370
+ part="wrapper">
8371
+ <div id="slotHolder" aria-hidden="true">
8372
+ <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
8373
+ </div>
8374
+ <${this.dropdownTag}
8375
+ a11yRole="select"
8376
+ ?autoPlacement="${this.autoPlacement}"
8377
+ ?error="${this.validity !== undefined && this.validity !== 'valid'}"
8378
+ ?matchWidth="${this.matchWidth}"
8379
+ ?noFlip="${this.noFlip}"
8380
+ ?onDark="${this.onDark}"
8381
+ .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
8382
+ .offset="${this.offset}"
8383
+ .placement="${this.placement}"
8384
+ chevron
8385
+ fluid
8386
+ for="selectMenu"
8387
+ layout="${this.layout}"
8388
+ part="dropdown"
8389
+ shape="${this.shape}"
8390
+ size="${this.size}">
8391
+ <div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
8392
+ <div class="accents left">
8393
+ <slot name="typeIcon"></slot>
8394
+ </div>
8395
+ <div class="mainContent">
8396
+ <div class="${e(valueContainerClasses)}">
8397
+ <label class="${e(this.commonLabelClasses)}">
8398
+ <slot name="label"></slot>
8399
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
8400
+ </label>
8401
+ <div class="value" id="value"></div>
8402
+ ${this.value ? undefined : u`
8403
+ <div id="placeholder" class="${e(placeholderClass)}">
8404
+ <slot name="placeholder"></slot>
8405
+ </div>
8406
+ `}
8407
+ </div>
8408
+ <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
8409
+ <slot name="displayValue"></slot>
8410
+ </div>
8411
+ </div>
8412
+ <div class="accents right"></div>
8413
+ </div>
8414
+ <div class="menuWrapper"></div>
8415
+ <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
8416
+ <slot></slot>
8417
+ </${this.bibtemplateTag}>
8418
+ <div slot="helpText">
8419
+ ${this.renderHtmlHelpText()}
8420
+ </div>
8421
+ </${this.dropdownTag}>
8422
+ </div>
8423
+ `;
8424
+ }
8425
+
8426
+ /**
8427
+ * Returns HTML for the snowflake layout.
8428
+ * @private
8429
+ * @returns {import("lit").TemplateResult} - Returns HTML for the snowflake layout.
8430
+ */
8431
+ renderLayoutSnowflake() {
8432
+ const placeholderClass = {
8433
+ hidden: this.value,
8434
+ };
8435
+
8436
+ const displayValueClasses = {
8437
+ 'displayValue': true,
8438
+ 'hasContent': this.hasDisplayValueContent,
8439
+ 'hasFocus': this.isPopoverVisible,
8440
+ 'withValue': this.value && this.value.length > 0,
8441
+ 'force': this.forceDisplayValue,
8442
+ };
8443
+
8444
+ const valueContainerClasses = {
8445
+ 'valueContainer': true,
8446
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
8447
+ };
8448
+
8449
+ return u`
8450
+ <div
8451
+ class="${e(this.commonWrapperClasses)}"
8452
+ part="wrapper">
8453
+ <div id="slotHolder" aria-hidden="true">
8454
+ <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
8455
+ </div>
8456
+ <${this.dropdownTag}
8457
+ ?autoPlacement="${this.autoPlacement}"
8458
+ ?error="${this.validity !== undefined && this.validity !== 'valid'}"
8459
+ ?matchWidth="${this.matchWidth}"
8460
+ ?noFlip="${this.noFlip}"
8461
+ ?onDark="${this.onDark}"
8462
+ .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
8463
+ .offset="${this.offset}"
8464
+ .placement="${this.placement}"
8465
+ chevron
8466
+ fluid
8467
+ for="selectMenu"
8468
+ layout="${this.layout}"
8469
+ part="dropdown"
8470
+ shape="${this.shape}"
8471
+ size="${this.size}">
8472
+ <div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
8473
+ <div class="accents left">
8474
+ <slot name="typeIcon"></slot>
8475
+ </div>
8476
+ <div class="mainContent">
8477
+ <div class="${e(valueContainerClasses)}">
8478
+ <label class="${e(this.commonLabelClasses)}">
8479
+ <slot name="label"></slot>
8480
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
8481
+ </label>
8482
+ <div class="value" id="value"></div>
8483
+ ${this.value ? undefined : u`
8484
+ <div id="placeholder" class="${e(placeholderClass)}">
8485
+ <slot name="placeholder"></slot>
8486
+ </div>
8487
+ `}
8488
+ </div>
8489
+ <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
8490
+ <slot name="displayValue"></slot>
8491
+ </div>
8492
+ </div>
8493
+ <div class="accents right"></div>
8494
+ </div>
8495
+ <div class="menuWrapper"></div>
8496
+ <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
8497
+ <slot></slot>
8498
+ </${this.bibtemplateTag}>
8499
+ <div slot="helpText">
8500
+ ${this.renderHtmlHelpText()}
8501
+ </div>
8502
+ </${this.dropdownTag}>
8503
+ ${this.renderNativeSelect()}
8504
+ </div>
8505
+ `;
6467
8506
  }
6468
8507
 
6469
8508
  /**
6470
- * Syncs the value from the native select element to the component's value.
6471
- * @param {Event} event // The change event from the native select element.
6472
- * @returns {void}
8509
+ * Returns HTML for the classic layout.
6473
8510
  * @private
8511
+ * @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
6474
8512
  */
6475
- _handleNativeSelectChange(event) {
6476
- const selectedOption = event.target.options[event.target.selectedIndex];
6477
- const selectedValue = selectedOption.value;
8513
+ renderLayoutClassic() {
8514
+ const placeholderClass = {
8515
+ hidden: this.value,
8516
+ };
6478
8517
 
6479
- if (this.multiSelect) {
6480
- const currentArray = Array.isArray(this.value) ? this.value : [];
8518
+ const displayValueClasses = {
8519
+ 'displayValue': true,
8520
+ 'hasContent': this.hasDisplayValueContent,
8521
+ 'hasFocus': this.isPopoverVisible,
8522
+ 'withValue': this.value && this.value.length > 0,
8523
+ 'force': this.forceDisplayValue,
8524
+ };
6481
8525
 
6482
- if (!currentArray.includes(selectedValue)) {
6483
- this.value = [
6484
- ...currentArray,
6485
- selectedValue
6486
- ];
6487
- }
6488
- } else {
6489
- const currentValue = this.value;
8526
+ const valueContainerClasses = {
8527
+ 'valueContainer': true,
8528
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
8529
+ };
6490
8530
 
6491
- if (currentValue !== selectedValue) {
6492
- this.value = selectedValue;
6493
- }
6494
- }
8531
+ return u`
8532
+ <div
8533
+ class="${e(this.commonWrapperClasses)}"
8534
+ part="wrapper">
8535
+ <div id="slotHolder" aria-hidden="true">
8536
+ <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
8537
+ </div>
8538
+ <${this.dropdownTag}
8539
+ ?autoPlacement="${this.autoPlacement}"
8540
+ ?error="${this.validity !== undefined && this.validity !== 'valid'}"
8541
+ ?matchWidth="${!this.flexMenuWidth}"
8542
+ ?noFlip="${this.noFlip}"
8543
+ ?onDark="${this.onDark}"
8544
+ .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
8545
+ .offset="${this.offset}"
8546
+ .placement="${this.placement}"
8547
+ chevron
8548
+ fluid
8549
+ for="selectMenu"
8550
+ layout="${this.layout}"
8551
+ part="dropdown"
8552
+ shape="${this.shape}"
8553
+ size="${this.size}">
8554
+ <div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
8555
+ <div class="accents left">
8556
+ <slot name="typeIcon"></slot>
8557
+ </div>
8558
+ <div class="mainContent">
8559
+ <div class="${e(valueContainerClasses)}">
8560
+ <label class="${e(this.commonLabelClasses)}">
8561
+ <slot name="label"></slot>
8562
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
8563
+ </label>
8564
+ <div class="value" id="value"></div>
8565
+ ${this.value ? undefined : u`
8566
+ <div id="placeholder" class="${e(placeholderClass)}">
8567
+ <slot name="placeholder"></slot>
8568
+ </div>
8569
+ `}
8570
+ </div>
8571
+ <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
8572
+ <slot name="displayValue"></slot>
8573
+ </div>
8574
+ </div>
8575
+ <div class="accents right"></div>
8576
+ </div>
8577
+ <div class="menuWrapper"></div>
8578
+ <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
8579
+ <slot></slot>
8580
+ </${this.bibtemplateTag}>
8581
+ <div slot="helpText">
8582
+ ${this.renderHtmlHelpText()}
8583
+ </div>
8584
+ </${this.dropdownTag}>
8585
+ ${this.renderNativeSelect()}
8586
+ </div>
8587
+ `;
6495
8588
  }
6496
8589
 
6497
8590
  /**
6498
- * Updates the native select element's value based on the component's value.
6499
- * @returns {void}
8591
+ * Logic to determine the layout of the component.
6500
8592
  * @private
8593
+ * @param {string} [ForcedLayout] - Used to force a specific layout, pass in the layout name to use.
8594
+ * @returns {void}
6501
8595
  */
6502
- _updateNativeSelect() {
6503
- const nativeSelect = this.shadowRoot.querySelector('select');
6504
- if (!nativeSelect) {
6505
- return;
6506
- }
8596
+ renderLayout(ForcedLayout) {
8597
+ const layout = ForcedLayout || this.layout;
6507
8598
 
6508
- if (this.multiSelect) {
6509
- nativeSelect.value = this.value ? this.value[0] : '';
6510
- } else {
6511
- nativeSelect.value = this.value || '';
8599
+ switch (layout) {
8600
+ case 'emphasized':
8601
+ return this.renderLayoutEmphasized();
8602
+ case 'emphasized-left':
8603
+ return this.renderLayoutEmphasized();
8604
+ case 'emphasized-right':
8605
+ return this.renderLayoutEmphasized();
8606
+ case 'snowflake':
8607
+ return this.renderLayoutSnowflake();
8608
+ case 'snowflake-left':
8609
+ return this.renderLayoutSnowflake();
8610
+ case 'snowflake-right':
8611
+ return this.renderLayoutSnowflake();
8612
+ default:
8613
+ return this.renderLayoutClassic();
6512
8614
  }
6513
8615
  }
6514
8616
 
@@ -6516,7 +8618,7 @@ class AuroSelect extends i$2 {
6516
8618
  // aria-hidden="${this.hideAudible(this.hiddenAudible)}"
6517
8619
 
6518
8620
  // function that renders the HTML and CSS into the scope of the component
6519
- render() {
8621
+ renderBACKUP() {
6520
8622
  const placeholderClass = {
6521
8623
  hidden: this.value,
6522
8624
  };
@@ -6542,29 +8644,37 @@ class AuroSelect extends i$2 {
6542
8644
  <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
6543
8645
  </div>
6544
8646
  <${this.dropdownTag}
6545
- for="selectmenu"
8647
+ ?autoPlacement="${this.autoPlacement}"
8648
+ ?disabled="${this.disabled}"
6546
8649
  ?error="${this.validity !== undefined && this.validity !== 'valid'}"
8650
+ ?matchWidth="${this.matchWidth}"
8651
+ ?noFlip="${this.noFlip}"
6547
8652
  ?onDark="${this.onDark}"
6548
- common
6549
- fluid
6550
8653
  .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
6551
- ?matchWidth="${!this.flexMenuWidth}"
6552
- chevron
6553
- .placement="${this.placement}"
6554
8654
  .offset="${this.offset}"
6555
- ?autoPlacement="${this.autoPlacement}"
6556
- ?noFlip="${this.noFlip}"
6557
- part="dropdown">
8655
+ .placement="${this.placement}"
8656
+ chevron
8657
+ fluid
8658
+ for="selectMenu"
8659
+ layout="${this.layout}"
8660
+ part="dropdown"
8661
+ shape="${this.shape}"
8662
+ size="${this.size}">
6558
8663
  <span slot="trigger" aria-haspopup="true" id="triggerFocus">
6559
- <span id="placeholder" class="${e(placeholderClass)}"><slot name="placeholder"></slot></span>
8664
+ <span id="placeholder"
8665
+ class="${e(placeholderClass)}"
8666
+ ?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
8667
+ >
8668
+ <slot name="placeholder"></slot>
8669
+ </span>
8670
+ <slot name="valueText" id="valueText"></slot>
6560
8671
  </span>
6561
8672
 
6562
- <div class="menuWrapper">
6563
- </div>
6564
-
6565
8673
  <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
8674
+ <slot></slot>
6566
8675
  </${this.bibtemplateTag}>
6567
8676
  <slot name="label" slot="label"></slot>
8677
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
6568
8678
  <p slot="helpText">
6569
8679
  ${!this.validity || this.validity === undefined || this.validity === 'valid'
6570
8680
  ? u`
@@ -6602,16 +8712,17 @@ class AuroSelect extends i$2 {
6602
8712
  </select>
6603
8713
  </div>
6604
8714
  <!-- Help text and error message template -->
8715
+ ${this.renderHtmlHelpText()}
6605
8716
  </div>
6606
8717
  `;
6607
8718
  }
6608
8719
  }
6609
8720
 
6610
- var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:inline-block;width:100%;margin:0;padding:0;vertical-align:middle}:host ::slotted(auro-menuoption),:host ::slotted([auro-menuoption]),:host auro-menuoption[loadingplaceholder]{padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host ::slotted([selected]){padding-left:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host([nocheckmark]) ::slotted(auro-menuoption),:host([nocheckmark]) auro-menuoption[loadingplaceholder]{padding-left:var(--ds-size-200, 1rem)}:host([root]){overflow-y:auto}[loadingplaceholder].empty{opacity:0;position:absolute}[loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}[loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}`;
8721
+ var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:block;vertical-align:middle}:host .wrapper{box-sizing:border-box;display:inline-block;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}:host [loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}:host([root]){overflow-y:auto}:host([root]) .wrapper[class*=-lg]{padding:var(--ds-size-150, 0.75rem)}:host([root]) .wrapper[class*=-xl]{padding:var(--ds-size-200, 1rem)}`;
6611
8722
 
6612
8723
  var colorCss$2 = i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
6613
8724
 
6614
- var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
8725
+ var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
6615
8726
 
6616
8727
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6617
8728
  // See LICENSE in the project root for license information.
@@ -6677,14 +8788,17 @@ function dispatchMenuEvent(element, eventName, detail = null) {
6677
8788
  * @slot - Slot for insertion of menu options.
6678
8789
  */
6679
8790
 
6680
- /* eslint-disable no-magic-numbers, max-lines, no-extra-parens */
8791
+ /* eslint-disable no-magic-numbers, max-lines, no-extra-parens, no-inline-comments, line-comment-position */
6681
8792
 
6682
- class AuroMenu extends i$2 {
8793
+ class AuroMenu extends AuroElement$4 {
6683
8794
  constructor() {
6684
8795
  super();
6685
8796
 
6686
8797
  // State properties (reactive)
6687
8798
 
8799
+ this.shape = ""; // box, rounded, pill
8800
+ this.size = ""; // md, lg, xl
8801
+
6688
8802
  // Value of the selected options
6689
8803
  this.value = undefined;
6690
8804
  // Currently selected option
@@ -6743,6 +8857,7 @@ class AuroMenu extends i$2 {
6743
8857
 
6744
8858
  static get properties() {
6745
8859
  return {
8860
+ ...super.properties,
6746
8861
  noCheckmark: {
6747
8862
  type: Boolean,
6748
8863
  reflect: true,
@@ -6776,6 +8891,16 @@ class AuroMenu extends i$2 {
6776
8891
  value: {
6777
8892
  // Allow string, string[] arrays and undefined
6778
8893
  type: Object
8894
+ },
8895
+
8896
+ /**
8897
+ * Indent level for submenus.
8898
+ * @private
8899
+ */
8900
+ level: {
8901
+ type: Number,
8902
+ reflect: false,
8903
+ attribute: false
6779
8904
  }
6780
8905
  };
6781
8906
  }
@@ -6797,7 +8922,7 @@ class AuroMenu extends i$2 {
6797
8922
  *
6798
8923
  */
6799
8924
  static register(name = "auro-menu") {
6800
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroMenu);
8925
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenu);
6801
8926
  }
6802
8927
 
6803
8928
  // Lifecycle Methods
@@ -6809,6 +8934,7 @@ class AuroMenu extends i$2 {
6809
8934
  this.addEventListener('mousedown', this.handleMouseSelect);
6810
8935
  this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
6811
8936
  this.addEventListener('slotchange', this.handleSlotChange);
8937
+ this.setTagAttribute("auro-menu");
6812
8938
  }
6813
8939
 
6814
8940
  disconnectedCallback() {
@@ -6821,19 +8947,33 @@ class AuroMenu extends i$2 {
6821
8947
  }
6822
8948
 
6823
8949
  firstUpdated() {
6824
- AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-menu');
8950
+ AuroLibraryRuntimeUtils$6.prototype.handleComponentTagRename(this, 'auro-menu');
6825
8951
 
6826
8952
  this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
6827
8953
  this.initializeMenu();
6828
8954
  }
6829
8955
 
8956
+ /**
8957
+ * Sets an attribute that matches the default tag name if the tag name is not the default.
8958
+ * @param {string} tagName - The tag name to set as an attribute.
8959
+ * @private
8960
+ */
8961
+ setTagAttribute(tagName) {
8962
+ if (this.tagName.toLowerCase() !== tagName) {
8963
+ this.setAttribute(tagName, true);
8964
+ }
8965
+ }
8966
+
6830
8967
  updated(changedProperties) {
8968
+ super.updated(changedProperties);
8969
+
6831
8970
  if (changedProperties.has('multiSelect')) {
6832
8971
  // Reset selection if multiSelect mode changes
6833
8972
  this.clearSelection();
6834
8973
  }
6835
8974
 
6836
- if (changedProperties.has('value')) {
8975
+
8976
+ if (changedProperties.has("value")) {
6837
8977
  // Handle null/undefined case
6838
8978
  if (this.value === undefined || this.value === null) {
6839
8979
  this.optionSelected = undefined;
@@ -6901,6 +9041,19 @@ class AuroMenu extends i$2 {
6901
9041
  this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]').forEach((element) => element.setAttribute('noCheckmark', ''));
6902
9042
  }
6903
9043
 
9044
+ // Handle layout propagation to all menus and options
9045
+ const propagationTargets = this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]');
9046
+ [
9047
+ 'size',
9048
+ 'shape'
9049
+ ].forEach((prop) => {
9050
+ if (changedProperties.has(prop)) {
9051
+ propagationTargets.forEach((el) => {
9052
+ el.setAttribute(prop, this[prop]);
9053
+ });
9054
+ }
9055
+ });
9056
+
6904
9057
  // Regex for matchWord if needed
6905
9058
  let regexWord = null;
6906
9059
 
@@ -7097,21 +9250,20 @@ class AuroMenu extends i$2 {
7097
9250
  * @param {HTMLElement} menu - Root menu element.
7098
9251
  */
7099
9252
  handleNestedMenus(menu) {
7100
- const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu]');
9253
+ menu.level = menu.parentElement.level >= 0 ? menu.parentElement.level + 1 : 0;
7101
9254
 
7102
- nestedMenus.forEach((nestedMenu) => {
7103
- // role="listbox" only allows "role=group" for children.
7104
- nestedMenu.setAttribute('role', 'group');
7105
- if (!nestedMenu.hasAttribute('aria-label')) {
7106
- nestedMenu.setAttribute('aria-label', 'submenu');
9255
+ if (menu.level > 0) {
9256
+ menu.setAttribute('role', 'group');
9257
+ menu.removeAttribute("root");
9258
+ if (!menu.hasAttribute('aria-label')) {
9259
+ menu.setAttribute('aria-label', 'submenu');
7107
9260
  }
9261
+ }
7108
9262
 
7109
- const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
7110
- options.forEach((option) => {
7111
- option.innerHTML = this.nestingSpacer + option.innerHTML;
7112
- });
7113
-
7114
- this.handleNestedMenus(nestedMenu);
9263
+ const options = menu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
9264
+ options.forEach((option) => {
9265
+ const regex = new RegExp(this.nestingSpacer, "gu");
9266
+ option.innerHTML = this.nestingSpacer.repeat(menu.level) + option.innerHTML.replace(regex, '');
7115
9267
  });
7116
9268
  }
7117
9269
 
@@ -7353,28 +9505,39 @@ class AuroMenu extends i$2 {
7353
9505
  }
7354
9506
 
7355
9507
  /**
7356
- * Renders the component.
7357
- * @returns {boolean} - True if loading slots are present and non-empty.
9508
+ * Logic to determine the layout of the component.
9509
+ * @protected
9510
+ * @returns {void}
7358
9511
  */
7359
- render() {
9512
+ renderLayout() {
7360
9513
  if (this.loading) {
7361
9514
  return x`
7362
- <auro-menuoption disabled loadingplaceholder class="${this.hasLoadingPlaceholder ? '' : 'empty'}">
7363
- <div>
7364
- <slot name="loadingIcon"></slot>
7365
- <slot name="loadingText"></slot>
7366
- </div>
7367
- </auro-menuoption>
9515
+ <div class="wrapper">
9516
+ <auro-menuoption
9517
+ disabled
9518
+ loadingplaceholder
9519
+ class="${this.hasLoadingPlaceholder ? "" : "empty"}"
9520
+ >
9521
+ <div>
9522
+ <slot name="loadingIcon"></slot>
9523
+ <slot name="loadingText"></slot>
9524
+ </div>
9525
+ </auro-menuoption>
9526
+ </div>
7368
9527
  `;
7369
9528
  }
7370
9529
 
7371
- return x`<slot @slotchange=${this.handleSlotChange}></slot>`;
9530
+ return x`
9531
+ <div class="wrapper">
9532
+ <slot @slotchange=${this.handleSlotChange}></slot>
9533
+ </div>
9534
+ `;
7372
9535
  }
7373
9536
  }
7374
9537
 
7375
- var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
9538
+ var styleCss$1 = i$5`:host{cursor:pointer;user-select:none}:host .wrapper{display:flex;align-items:center;padding-right:var(--ds-size-200, 1rem);padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem));padding-top:var(--ds-size-50, 0.25rem);padding-bottom:var(--ds-size-50, 0.25rem);-webkit-tap-highlight-color:transparent}:host .wrapper[class*=shape-box],:host .wrapper[class*=shape-snowflake]{border-radius:unset}:host .wrapper[class*=shape-pill]{border-radius:30px}:host .wrapper[class*=-lg]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-75, 0.375rem);padding-bottom:var(--ds-size-75, 0.375rem);padding-right:var(--ds-size-150, 0.75rem)}:host .wrapper[class*=-lg]:not(:last-child){margin-bottom:var(--ds-size-50, 0.25rem)}:host .wrapper[class*=-xl]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-100, 0.5rem);padding-bottom:var(--ds-size-100, 0.5rem);padding-right:var(--ds-size-200, 1rem)}:host .wrapper[class*=-xl]:not(:last-child){margin-bottom:var(--ds-size-100, 0.5rem)}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([loadingplaceholder]) .wrapper{padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host([selected]) .wrapper{padding-left:0}:host([nocheckmark]) .wrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-lg]{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-xl]{padding-left:var(--ds-size-200, 1rem)}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
7376
9539
 
7377
- var colorCss$1 = i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
9540
+ var colorCss$1 = i$5`:host .wrapper{border:1px solid var(--ds-auro-menuoption-container-border-color);background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
7378
9541
 
7379
9542
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7380
9543
  // See LICENSE in the project root for license information.
@@ -7530,6 +9693,76 @@ var tokensCss = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-def
7530
9693
 
7531
9694
  var colorCss = 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)}`;
7532
9695
 
9696
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
9697
+ // See LICENSE in the project root for license information.
9698
+
9699
+ // ---------------------------------------------------------------------
9700
+
9701
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
9702
+
9703
+ class AuroLibraryRuntimeUtils {
9704
+
9705
+ /* eslint-disable jsdoc/require-param */
9706
+
9707
+ /**
9708
+ * This will register a new custom element with the browser.
9709
+ * @param {String} name - The name of the custom element.
9710
+ * @param {Object} componentClass - The class to register as a custom element.
9711
+ * @returns {void}
9712
+ */
9713
+ registerComponent(name, componentClass) {
9714
+ if (!customElements.get(name)) {
9715
+ customElements.define(name, class extends componentClass {});
9716
+ }
9717
+ }
9718
+
9719
+ /**
9720
+ * Finds and returns the closest HTML Element based on a selector.
9721
+ * @returns {void}
9722
+ */
9723
+ closestElement(
9724
+ selector, // selector like in .closest()
9725
+ base = this, // extra functionality to skip a parent
9726
+ __Closest = (el, found = el && el.closest(selector)) =>
9727
+ !el || el === document || el === window
9728
+ ? null // standard .closest() returns null for non-found selectors also
9729
+ : found
9730
+ ? found // found a selector INside this element
9731
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
9732
+ ) {
9733
+ return __Closest(base);
9734
+ }
9735
+ /* eslint-enable jsdoc/require-param */
9736
+
9737
+ /**
9738
+ * 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.
9739
+ * @param {Object} elem - The element to check.
9740
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
9741
+ * @returns {void}
9742
+ */
9743
+ handleComponentTagRename(elem, tagName) {
9744
+ const tag = tagName.toLowerCase();
9745
+ const elemTag = elem.tagName.toLowerCase();
9746
+
9747
+ if (elemTag !== tag) {
9748
+ elem.setAttribute(tag, true);
9749
+ }
9750
+ }
9751
+
9752
+ /**
9753
+ * Validates if an element is a specific Auro component.
9754
+ * @param {Object} elem - The element to validate.
9755
+ * @param {String} tagName - The name of the Auro component to check against.
9756
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
9757
+ */
9758
+ elementMatch(elem, tagName) {
9759
+ const tag = tagName.toLowerCase();
9760
+ const elemTag = elem.tagName.toLowerCase();
9761
+
9762
+ return elemTag === tag || elem.hasAttribute(tag);
9763
+ }
9764
+ }
9765
+
7533
9766
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7534
9767
  // See LICENSE in the project root for license information.
7535
9768
 
@@ -7549,7 +9782,7 @@ class AuroIcon extends BaseIcon {
7549
9782
  */
7550
9783
  privateDefaults() {
7551
9784
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
7552
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
9785
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
7553
9786
  }
7554
9787
 
7555
9788
  // function to define props used within the scope of this component
@@ -7631,7 +9864,7 @@ class AuroIcon extends BaseIcon {
7631
9864
  *
7632
9865
  */
7633
9866
  static register(name = "auro-icon") {
7634
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroIcon);
9867
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
7635
9868
  }
7636
9869
 
7637
9870
  connectedCallback() {
@@ -7652,8 +9885,12 @@ class AuroIcon extends BaseIcon {
7652
9885
  async firstUpdated() {
7653
9886
  await super.firstUpdated();
7654
9887
 
7655
- // Removes the SVG description for screenreader if ariaHidden is set to true
7656
- if (!this.hasAttribute('ariaHidden') && this.svg) {
9888
+ /**
9889
+ * icons provide a description for screen readers. Icon only instances Auro-button
9890
+ * depend on this description to provide context for the user using a screen reader.
9891
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
9892
+ */
9893
+ if (this.hasAttribute('ariaHidden') && this.svg) {
7657
9894
  const svgDesc = this.svg.querySelector('desc');
7658
9895
 
7659
9896
  if (svgDesc) {
@@ -7697,7 +9934,7 @@ class AuroIcon extends BaseIcon {
7697
9934
  }
7698
9935
  }
7699
9936
 
7700
- var iconVersion = '8.0.3';
9937
+ var iconVersion = '8.0.4';
7701
9938
 
7702
9939
  var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"checkmark-sm__desc\" class=\"ico_squareLarge\" 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=\"checkmark-sm__desc\">a small check mark.</desc><path d=\"M8.461 11.84a.625.625 0 1 0-.922.844l2.504 2.738c.247.27.674.27.922 0l5.496-6a.625.625 0 1 0-.922-.844l-5.035 5.496z\"/></svg>"};
7703
9940
 
@@ -7715,10 +9952,13 @@ var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlin
7715
9952
  * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
7716
9953
  * @slot - Specifies text for an option, but is not the value.
7717
9954
  */
7718
- class AuroMenuOption extends i$2 {
9955
+ class AuroMenuOption extends AuroElement$4 {
7719
9956
  constructor() {
7720
9957
  super();
7721
9958
 
9959
+ this.size = ""; // md, lg, xl
9960
+ this.shape = ""; // box, rounded, pill
9961
+
7722
9962
  /**
7723
9963
  * Generate unique names for dependency components.
7724
9964
  */
@@ -7737,11 +9977,12 @@ class AuroMenuOption extends i$2 {
7737
9977
  /**
7738
9978
  * @private
7739
9979
  */
7740
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
9980
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
7741
9981
  }
7742
9982
 
7743
9983
  static get properties() {
7744
9984
  return {
9985
+ ...super.properties,
7745
9986
  nocheckmark: {
7746
9987
  type: Boolean,
7747
9988
  reflect: true
@@ -7781,7 +10022,7 @@ class AuroMenuOption extends i$2 {
7781
10022
  *
7782
10023
  */
7783
10024
  static register(name = "auro-menuoption") {
7784
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroMenuOption);
10025
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenuOption);
7785
10026
  }
7786
10027
 
7787
10028
  firstUpdated() {
@@ -7803,6 +10044,8 @@ class AuroMenuOption extends i$2 {
7803
10044
 
7804
10045
  // observer for selected property changes
7805
10046
  updated(changedProperties) {
10047
+ super.updated(changedProperties);
10048
+
7806
10049
  if (changedProperties.has('selected')) {
7807
10050
  this.setAttribute('aria-selected', this.selected.toString());
7808
10051
  }
@@ -7824,10 +10067,19 @@ class AuroMenuOption extends i$2 {
7824
10067
  return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
7825
10068
  }
7826
10069
 
7827
- render() {
10070
+ /**
10071
+ * Logic to determine the layout of the component.
10072
+ * @protected
10073
+ * @returns {void}
10074
+ */
10075
+ renderLayout() {
7828
10076
  return u`
7829
- ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
7830
- <slot></slot>
10077
+ <div class="wrapper">
10078
+ ${this.selected && !this.nocheckmark
10079
+ ? this.generateIconHtml(checkmarkIcon.svg)
10080
+ : undefined}
10081
+ <slot></slot>
10082
+ </div>
7831
10083
  `;
7832
10084
  }
7833
10085
  }