@aurodesignsystem/auro-formkit 4.0.0 → 4.0.1

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 (44) hide show
  1. package/CHANGELOG.md +3 -23
  2. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +1 -0
  3. package/components/bibtemplate/dist/index.js +158 -6
  4. package/components/bibtemplate/dist/registered.js +158 -6
  5. package/components/checkbox/demo/api.min.js +4 -3
  6. package/components/checkbox/demo/index.min.js +4 -3
  7. package/components/checkbox/dist/index.js +4 -3
  8. package/components/checkbox/dist/registered.js +4 -3
  9. package/components/combobox/demo/api.min.js +707 -133
  10. package/components/combobox/demo/index.min.js +707 -133
  11. package/components/combobox/dist/auro-combobox.d.ts +0 -8
  12. package/components/combobox/dist/index.js +627 -123
  13. package/components/combobox/dist/registered.js +627 -123
  14. package/components/counter/demo/api.min.js +583 -43
  15. package/components/counter/demo/index.min.js +583 -43
  16. package/components/counter/dist/index.js +583 -43
  17. package/components/counter/dist/registered.js +583 -43
  18. package/components/datepicker/demo/api.min.js +866 -75
  19. package/components/datepicker/demo/index.min.js +866 -75
  20. package/components/datepicker/dist/index.js +866 -75
  21. package/components/datepicker/dist/registered.js +866 -75
  22. package/components/dropdown/demo/api.min.js +153 -16
  23. package/components/dropdown/demo/index.min.js +153 -16
  24. package/components/dropdown/dist/auro-dropdownBib.d.ts +8 -0
  25. package/components/dropdown/dist/index.js +153 -16
  26. package/components/dropdown/dist/registered.js +153 -16
  27. package/components/input/demo/api.min.js +263 -12
  28. package/components/input/demo/index.min.js +263 -12
  29. package/components/input/dist/index.js +263 -12
  30. package/components/input/dist/registered.js +263 -12
  31. package/components/menu/demo/api.min.js +76 -6
  32. package/components/menu/demo/index.min.js +76 -6
  33. package/components/menu/dist/index.js +76 -6
  34. package/components/menu/dist/registered.js +76 -6
  35. package/components/radio/demo/api.min.js +4 -3
  36. package/components/radio/demo/index.min.js +4 -3
  37. package/components/radio/dist/index.js +4 -3
  38. package/components/radio/dist/registered.js +4 -3
  39. package/components/select/demo/api.min.js +403 -49
  40. package/components/select/demo/index.min.js +403 -49
  41. package/components/select/dist/auro-select.d.ts +0 -1
  42. package/components/select/dist/index.js +325 -41
  43. package/components/select/dist/registered.js +325 -41
  44. package/package.json +3 -3
@@ -100,9 +100,10 @@ class DateFormatter {
100
100
  /**
101
101
  * Convert a date object to string format.
102
102
  * @param {Object} date - Date to convert to string.
103
- * @returns {Object} Returns the date as a string.
103
+ * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
104
+ * @returns {String} Returns the date as a string.
104
105
  */
105
- this.getDateAsString = (date) => date.toLocaleDateString(undefined, {
106
+ this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
106
107
  year: "numeric",
107
108
  month: "2-digit",
108
109
  day: "2-digit",
@@ -294,7 +295,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
294
295
  const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
295
296
 
296
297
  // Get the date string of the date object we created from the string date
297
- const actualDateStr = dateFormatter.getDateAsString(dateObj);
298
+ const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
298
299
 
299
300
  // Guard Clause: Generated date matches date string input
300
301
  if (expectedDateStr !== actualDateStr) {
@@ -459,7 +460,7 @@ const {
459
460
 
460
461
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
461
462
 
462
- let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
463
+ let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
463
464
 
464
465
  /* eslint-disable jsdoc/require-param */
465
466
 
@@ -529,7 +530,7 @@ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
529
530
  class AuroFormValidation {
530
531
 
531
532
  constructor() {
532
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
533
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
533
534
  }
534
535
 
535
536
  /**
@@ -941,7 +942,7 @@ let AuroDependencyVersioning$2 = class AuroDependencyVersioning {
941
942
 
942
943
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
943
944
 
944
- let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
945
+ let AuroLibraryRuntimeUtils$2$1 = class AuroLibraryRuntimeUtils {
945
946
 
946
947
  /* eslint-disable jsdoc/require-param */
947
948
 
@@ -2536,8 +2537,28 @@ class AuroFloatingUI {
2536
2537
  if (!AuroFloatingUI.isMousePressHandlerInitialized && window && window.addEventListener) {
2537
2538
  AuroFloatingUI.isMousePressHandlerInitialized = true;
2538
2539
 
2540
+ // Track timeout for isMousePressed reset to avoid race conditions
2541
+ if (!AuroFloatingUI._mousePressedTimeout) {
2542
+ AuroFloatingUI._mousePressedTimeout = null;
2543
+ }
2539
2544
  const mouseEventGlobalHandler = (event) => {
2540
- AuroFloatingUI.isMousePressed = event.type === 'mousedown';
2545
+ const isPressed = event.type === 'mousedown';
2546
+ if (isPressed) {
2547
+ // Clear any pending timeout to prevent race condition
2548
+ if (AuroFloatingUI._mousePressedTimeout !== null) {
2549
+ clearTimeout(AuroFloatingUI._mousePressedTimeout);
2550
+ AuroFloatingUI._mousePressedTimeout = null;
2551
+ }
2552
+ if (!AuroFloatingUI.isMousePressed) {
2553
+ AuroFloatingUI.isMousePressed = true;
2554
+ }
2555
+ } else if (AuroFloatingUI.isMousePressed && !isPressed) {
2556
+ // Schedule reset and track timeout ID
2557
+ AuroFloatingUI._mousePressedTimeout = setTimeout(() => {
2558
+ AuroFloatingUI.isMousePressed = false;
2559
+ AuroFloatingUI._mousePressedTimeout = null;
2560
+ }, 0);
2561
+ }
2541
2562
  };
2542
2563
 
2543
2564
  window.addEventListener('mousedown', mouseEventGlobalHandler);
@@ -2664,6 +2685,7 @@ class AuroFloatingUI {
2664
2685
 
2665
2686
  // Compute the position of the bib
2666
2687
  computePosition(this.element.trigger, this.element.bib, {
2688
+ strategy: this.element.floaterConfig?.strategy || 'fixed',
2667
2689
  placement: this.element.floaterConfig?.placement,
2668
2690
  middleware: middleware || []
2669
2691
  }).then(({ x, y }) => { // eslint-disable-line id-length
@@ -2798,8 +2820,9 @@ class AuroFloatingUI {
2798
2820
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
2799
2821
  return;
2800
2822
  }
2801
- // if fullscreen bib is still open and the focus is missing, do not close
2802
- if (this.element.bib.hasAttribute('isfullscreen') && activeElement === document.body) {
2823
+
2824
+ // if fullscreen bib is in fullscreen mode, do not close
2825
+ if (this.element.bib.hasAttribute('isfullscreen')) {
2803
2826
  return;
2804
2827
  }
2805
2828
 
@@ -3100,8 +3123,6 @@ class AuroFloatingUI {
3100
3123
  this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
3101
3124
  }
3102
3125
 
3103
- document.body.append(this.element.bib);
3104
-
3105
3126
  this.regenerateBibId();
3106
3127
  this.handleTriggerTabIndex();
3107
3128
 
@@ -3332,6 +3353,76 @@ var tokensCss$2$1 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon
3332
3353
 
3333
3354
  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)}`;
3334
3355
 
3356
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3357
+ // See LICENSE in the project root for license information.
3358
+
3359
+ // ---------------------------------------------------------------------
3360
+
3361
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3362
+
3363
+ let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
3364
+
3365
+ /* eslint-disable jsdoc/require-param */
3366
+
3367
+ /**
3368
+ * This will register a new custom element with the browser.
3369
+ * @param {String} name - The name of the custom element.
3370
+ * @param {Object} componentClass - The class to register as a custom element.
3371
+ * @returns {void}
3372
+ */
3373
+ registerComponent(name, componentClass) {
3374
+ if (!customElements.get(name)) {
3375
+ customElements.define(name, class extends componentClass {});
3376
+ }
3377
+ }
3378
+
3379
+ /**
3380
+ * Finds and returns the closest HTML Element based on a selector.
3381
+ * @returns {void}
3382
+ */
3383
+ closestElement(
3384
+ selector, // selector like in .closest()
3385
+ base = this, // extra functionality to skip a parent
3386
+ __Closest = (el, found = el && el.closest(selector)) =>
3387
+ !el || el === document || el === window
3388
+ ? null // standard .closest() returns null for non-found selectors also
3389
+ : found
3390
+ ? found // found a selector INside this element
3391
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
3392
+ ) {
3393
+ return __Closest(base);
3394
+ }
3395
+ /* eslint-enable jsdoc/require-param */
3396
+
3397
+ /**
3398
+ * 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.
3399
+ * @param {Object} elem - The element to check.
3400
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
3401
+ * @returns {void}
3402
+ */
3403
+ handleComponentTagRename(elem, tagName) {
3404
+ const tag = tagName.toLowerCase();
3405
+ const elemTag = elem.tagName.toLowerCase();
3406
+
3407
+ if (elemTag !== tag) {
3408
+ elem.setAttribute(tag, true);
3409
+ }
3410
+ }
3411
+
3412
+ /**
3413
+ * Validates if an element is a specific Auro component.
3414
+ * @param {Object} elem - The element to validate.
3415
+ * @param {String} tagName - The name of the Auro component to check against.
3416
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
3417
+ */
3418
+ elementMatch(elem, tagName) {
3419
+ const tag = tagName.toLowerCase();
3420
+ const elemTag = elem.tagName.toLowerCase();
3421
+
3422
+ return elemTag === tag || elem.hasAttribute(tag);
3423
+ }
3424
+ };
3425
+
3335
3426
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3336
3427
  // See LICENSE in the project root for license information.
3337
3428
 
@@ -3351,7 +3442,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3351
3442
  */
3352
3443
  privateDefaults() {
3353
3444
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
3354
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
3445
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
3355
3446
  }
3356
3447
 
3357
3448
  // function to define props used within the scope of this component
@@ -3433,7 +3524,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3433
3524
  *
3434
3525
  */
3435
3526
  static register(name = "auro-icon") {
3436
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
3527
+ AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
3437
3528
  }
3438
3529
 
3439
3530
  connectedCallback() {
@@ -3501,7 +3592,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3501
3592
 
3502
3593
  var iconVersion$2 = '6.1.2';
3503
3594
 
3504
- var styleCss$2$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}`;
3595
+ var styleCss$2$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}.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}`;
3505
3596
 
3506
3597
  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)}`;
3507
3598
 
@@ -3511,7 +3602,6 @@ var tokensCss$1$1 = i$5`:host{--ds-auro-dropdown-label-text-color: var(--ds-basi
3511
3602
  // See LICENSE in the project root for license information.
3512
3603
 
3513
3604
 
3514
-
3515
3605
  const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
3516
3606
  const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
3517
3607
  'xl',
@@ -3536,7 +3626,7 @@ class AuroDropdownBib extends i$2 {
3536
3626
  */
3537
3627
  this._mobileBreakpointValue = undefined;
3538
3628
 
3539
- AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3629
+ AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3540
3630
  }
3541
3631
 
3542
3632
  static get styles() {
@@ -3581,6 +3671,13 @@ class AuroDropdownBib extends i$2 {
3581
3671
  type: Boolean,
3582
3672
  reflect: true
3583
3673
  },
3674
+
3675
+ /**
3676
+ * A reference to the associated bib template element.
3677
+ */
3678
+ bibTemplate: {
3679
+ type: Object
3680
+ }
3584
3681
  };
3585
3682
  }
3586
3683
 
@@ -3613,9 +3710,50 @@ class AuroDropdownBib extends i$2 {
3613
3710
  }
3614
3711
  }
3615
3712
  });
3713
+
3714
+ if (this.bibTemplate) {
3715
+ // If the bib template is found, set the fullscreen attribute
3716
+ if (this.isFullscreen) {
3717
+ this.bibTemplate.setAttribute('isFullscreen', 'true');
3718
+ } else {
3719
+ this.bibTemplate.removeAttribute('isFullscreen');
3720
+ }
3721
+ }
3616
3722
  }
3617
3723
  }
3618
3724
 
3725
+ connectedCallback() {
3726
+ super.connectedCallback();
3727
+
3728
+ // Listen for the auro-bibtemplate-connected event to set the fullscreen attribute
3729
+ this.addEventListener('auro-bibtemplate-connected', (event) => {
3730
+ const bibTemplate = event.detail.element;
3731
+ this.bibTemplate = bibTemplate;
3732
+
3733
+ if (bibTemplate) {
3734
+ // If the bib template is found, set the fullscreen attribute
3735
+ if (this.isFullscreen) {
3736
+ bibTemplate.setAttribute('isFullscreen', 'true');
3737
+ } else {
3738
+ bibTemplate.removeAttribute('isFullscreen');
3739
+ }
3740
+ }
3741
+ });
3742
+ }
3743
+
3744
+ firstUpdated(changedProperties) {
3745
+ super.firstUpdated(changedProperties);
3746
+
3747
+ // Dispatch a custom event when the component is connected
3748
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3749
+ bubbles: true,
3750
+ composed: true,
3751
+ detail: {
3752
+ element: this
3753
+ }
3754
+ }));
3755
+ }
3756
+
3619
3757
  // function that renders the HTML and CSS into the scope of the component
3620
3758
  render() {
3621
3759
  return u`
@@ -3645,7 +3783,7 @@ var tokensCss$3 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
3645
3783
 
3646
3784
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3647
3785
 
3648
- let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
3786
+ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
3649
3787
 
3650
3788
  /* eslint-disable jsdoc/require-param */
3651
3789
 
@@ -3726,7 +3864,7 @@ class AuroHelpText extends i$2 {
3726
3864
  this.onDark = false;
3727
3865
  this.hasTextContent = false;
3728
3866
 
3729
- AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-helptext');
3867
+ AuroLibraryRuntimeUtils$4.prototype.handleComponentTagRename(this, 'auro-helptext');
3730
3868
  }
3731
3869
 
3732
3870
  static get styles() {
@@ -3782,7 +3920,7 @@ class AuroHelpText extends i$2 {
3782
3920
  *
3783
3921
  */
3784
3922
  static register(name = "auro-helptext") {
3785
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroHelpText);
3923
+ AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHelpText);
3786
3924
  }
3787
3925
 
3788
3926
  updated() {
@@ -3925,7 +4063,7 @@ class AuroDropdown extends i$2 {
3925
4063
  /**
3926
4064
  * @private
3927
4065
  */
3928
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4066
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2$1();
3929
4067
 
3930
4068
  /**
3931
4069
  * @private
@@ -4254,7 +4392,7 @@ class AuroDropdown extends i$2 {
4254
4392
  *
4255
4393
  */
4256
4394
  static register(name = "auro-dropdown") {
4257
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroDropdown);
4395
+ AuroLibraryRuntimeUtils$2$1.prototype.registerComponent(name, AuroDropdown);
4258
4396
  }
4259
4397
 
4260
4398
  /**
@@ -4571,8 +4709,7 @@ class AuroDropdown extends i$2 {
4571
4709
  * @param {Event} event - The event object representing the slot change.
4572
4710
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
4573
4711
  */
4574
- handleDefaultSlot(event) {
4575
- [...event.target.assignedNodes()].forEach((node) => this.bibContent.append(node));
4712
+ handleDefaultSlot() {
4576
4713
 
4577
4714
  if (this.onSlotChange) {
4578
4715
  this.onSlotChange();
@@ -4644,9 +4781,7 @@ class AuroDropdown extends i$2 {
4644
4781
  <${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
4645
4782
  <slot name="helpText"></slot>
4646
4783
  </${this.helpTextTag}>
4647
- <div class="slotContent">
4648
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
4649
- </div>
4784
+
4650
4785
  <div id="bibSizer" part="size"></div>
4651
4786
  <${this.dropdownBibTag}
4652
4787
  id="bib"
@@ -4656,6 +4791,9 @@ class AuroDropdown extends i$2 {
4656
4791
  ?rounded="${this.common || this.rounded}"
4657
4792
  ?inset="${this.common || this.inset}"
4658
4793
  >
4794
+ <div class="slotContent">
4795
+ <slot @slotchange="${this.handleDefaultSlot}"></slot>
4796
+ </div>
4659
4797
  </${this.dropdownBibTag}>
4660
4798
  </div>
4661
4799
  `;
@@ -4677,7 +4815,7 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
4677
4815
 
4678
4816
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
4679
4817
 
4680
- class AuroLibraryRuntimeUtils {
4818
+ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
4681
4819
 
4682
4820
  /* eslint-disable jsdoc/require-param */
4683
4821
 
@@ -4738,7 +4876,7 @@ class AuroLibraryRuntimeUtils {
4738
4876
 
4739
4877
  return elemTag === tag || elem.hasAttribute(tag);
4740
4878
  }
4741
- }
4879
+ };
4742
4880
 
4743
4881
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
4744
4882
  // See LICENSE in the project root for license information.
@@ -4934,6 +5072,76 @@ var tokensCss$2 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-d
4934
5072
 
4935
5073
  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)}`;
4936
5074
 
5075
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5076
+ // See LICENSE in the project root for license information.
5077
+
5078
+ // ---------------------------------------------------------------------
5079
+
5080
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5081
+
5082
+ let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
5083
+
5084
+ /* eslint-disable jsdoc/require-param */
5085
+
5086
+ /**
5087
+ * This will register a new custom element with the browser.
5088
+ * @param {String} name - The name of the custom element.
5089
+ * @param {Object} componentClass - The class to register as a custom element.
5090
+ * @returns {void}
5091
+ */
5092
+ registerComponent(name, componentClass) {
5093
+ if (!customElements.get(name)) {
5094
+ customElements.define(name, class extends componentClass {});
5095
+ }
5096
+ }
5097
+
5098
+ /**
5099
+ * Finds and returns the closest HTML Element based on a selector.
5100
+ * @returns {void}
5101
+ */
5102
+ closestElement(
5103
+ selector, // selector like in .closest()
5104
+ base = this, // extra functionality to skip a parent
5105
+ __Closest = (el, found = el && el.closest(selector)) =>
5106
+ !el || el === document || el === window
5107
+ ? null // standard .closest() returns null for non-found selectors also
5108
+ : found
5109
+ ? found // found a selector INside this element
5110
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5111
+ ) {
5112
+ return __Closest(base);
5113
+ }
5114
+ /* eslint-enable jsdoc/require-param */
5115
+
5116
+ /**
5117
+ * 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.
5118
+ * @param {Object} elem - The element to check.
5119
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5120
+ * @returns {void}
5121
+ */
5122
+ handleComponentTagRename(elem, tagName) {
5123
+ const tag = tagName.toLowerCase();
5124
+ const elemTag = elem.tagName.toLowerCase();
5125
+
5126
+ if (elemTag !== tag) {
5127
+ elem.setAttribute(tag, true);
5128
+ }
5129
+ }
5130
+
5131
+ /**
5132
+ * Validates if an element is a specific Auro component.
5133
+ * @param {Object} elem - The element to validate.
5134
+ * @param {String} tagName - The name of the Auro component to check against.
5135
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5136
+ */
5137
+ elementMatch(elem, tagName) {
5138
+ const tag = tagName.toLowerCase();
5139
+ const elemTag = elem.tagName.toLowerCase();
5140
+
5141
+ return elemTag === tag || elem.hasAttribute(tag);
5142
+ }
5143
+ };
5144
+
4937
5145
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
4938
5146
  // See LICENSE in the project root for license information.
4939
5147
 
@@ -4953,7 +5161,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
4953
5161
  */
4954
5162
  privateDefaults() {
4955
5163
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
4956
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
5164
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4957
5165
  }
4958
5166
 
4959
5167
  // function to define props used within the scope of this component
@@ -5035,7 +5243,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5035
5243
  *
5036
5244
  */
5037
5245
  static register(name = "auro-icon") {
5038
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
5246
+ AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
5039
5247
  }
5040
5248
 
5041
5249
  connectedCallback() {
@@ -5103,6 +5311,76 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5103
5311
 
5104
5312
  var iconVersion$1 = '8.0.2';
5105
5313
 
5314
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5315
+ // See LICENSE in the project root for license information.
5316
+
5317
+ // ---------------------------------------------------------------------
5318
+
5319
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5320
+
5321
+ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
5322
+
5323
+ /* eslint-disable jsdoc/require-param */
5324
+
5325
+ /**
5326
+ * This will register a new custom element with the browser.
5327
+ * @param {String} name - The name of the custom element.
5328
+ * @param {Object} componentClass - The class to register as a custom element.
5329
+ * @returns {void}
5330
+ */
5331
+ registerComponent(name, componentClass) {
5332
+ if (!customElements.get(name)) {
5333
+ customElements.define(name, class extends componentClass {});
5334
+ }
5335
+ }
5336
+
5337
+ /**
5338
+ * Finds and returns the closest HTML Element based on a selector.
5339
+ * @returns {void}
5340
+ */
5341
+ closestElement(
5342
+ selector, // selector like in .closest()
5343
+ base = this, // extra functionality to skip a parent
5344
+ __Closest = (el, found = el && el.closest(selector)) =>
5345
+ !el || el === document || el === window
5346
+ ? null // standard .closest() returns null for non-found selectors also
5347
+ : found
5348
+ ? found // found a selector INside this element
5349
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5350
+ ) {
5351
+ return __Closest(base);
5352
+ }
5353
+ /* eslint-enable jsdoc/require-param */
5354
+
5355
+ /**
5356
+ * 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.
5357
+ * @param {Object} elem - The element to check.
5358
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5359
+ * @returns {void}
5360
+ */
5361
+ handleComponentTagRename(elem, tagName) {
5362
+ const tag = tagName.toLowerCase();
5363
+ const elemTag = elem.tagName.toLowerCase();
5364
+
5365
+ if (elemTag !== tag) {
5366
+ elem.setAttribute(tag, true);
5367
+ }
5368
+ }
5369
+
5370
+ /**
5371
+ * Validates if an element is a specific Auro component.
5372
+ * @param {Object} elem - The element to validate.
5373
+ * @param {String} tagName - The name of the Auro component to check against.
5374
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5375
+ */
5376
+ elementMatch(elem, tagName) {
5377
+ const tag = tagName.toLowerCase();
5378
+ const elemTag = elem.tagName.toLowerCase();
5379
+
5380
+ return elemTag === tag || elem.hasAttribute(tag);
5381
+ }
5382
+ };
5383
+
5106
5384
  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)}`;
5107
5385
 
5108
5386
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
@@ -5132,7 +5410,7 @@ class AuroHeader extends i$2 {
5132
5410
  /**
5133
5411
  * @private
5134
5412
  */
5135
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
5413
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
5136
5414
  }
5137
5415
 
5138
5416
  // function to define props used within the scope of this component
@@ -5162,7 +5440,7 @@ class AuroHeader extends i$2 {
5162
5440
  *
5163
5441
  */
5164
5442
  static register(name = "auro-header") {
5165
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHeader);
5443
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroHeader);
5166
5444
  }
5167
5445
 
5168
5446
  firstUpdated() {
@@ -5258,7 +5536,7 @@ class AuroBibtemplate extends i$2 {
5258
5536
 
5259
5537
  this.large = false;
5260
5538
 
5261
- AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5539
+ AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5262
5540
 
5263
5541
  const versioning = new AuroDependencyVersioning();
5264
5542
  this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
@@ -5297,7 +5575,7 @@ class AuroBibtemplate extends i$2 {
5297
5575
  *
5298
5576
  */
5299
5577
  static register(name = "auro-bibtemplate") {
5300
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroBibtemplate);
5578
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroBibtemplate);
5301
5579
  }
5302
5580
 
5303
5581
  /**
@@ -5337,6 +5615,18 @@ class AuroBibtemplate extends i$2 {
5337
5615
  this.setAttribute('exportparts', 'bibtemplate:dropdownBibTemplate');
5338
5616
  }
5339
5617
 
5618
+ firstUpdated(changedProperties) {
5619
+ super.firstUpdated(changedProperties);
5620
+
5621
+ this.dispatchEvent(new CustomEvent("auro-bibtemplate-connected", {
5622
+ bubbles: true,
5623
+ composed: true,
5624
+ detail: {
5625
+ element: this
5626
+ }
5627
+ }));
5628
+ }
5629
+
5340
5630
  // function that renders the HTML and CSS into the scope of the component
5341
5631
  render() {
5342
5632
  return u`
@@ -5484,7 +5774,7 @@ class AuroSelect extends i$2 {
5484
5774
  /**
5485
5775
  * @private
5486
5776
  */
5487
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
5777
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
5488
5778
 
5489
5779
  /**
5490
5780
  * Generate unique names for dependency components.
@@ -5755,11 +6045,9 @@ class AuroSelect extends i$2 {
5755
6045
  */
5756
6046
  configureDropdown() {
5757
6047
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
5758
- this.menuWrapper = this.dropdown.querySelector('.menuWrapper');
5759
6048
 
5760
6049
  // setting up bibtemplate
5761
6050
  this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$); // eslint-disable-line no-underscore-dangle
5762
- this.bibtemplate.append(this.menuWrapper);
5763
6051
 
5764
6052
  if (this.customBibWidth) {
5765
6053
  this.dropdown.dropdownWidth = this.customBibWidth;
@@ -5778,7 +6066,7 @@ class AuroSelect extends i$2 {
5778
6066
  *
5779
6067
  */
5780
6068
  static register(name = "auro-select") {
5781
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroSelect);
6069
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroSelect);
5782
6070
  }
5783
6071
 
5784
6072
  /**
@@ -5882,8 +6170,6 @@ class AuroSelect extends i$2 {
5882
6170
  * @returns {void}
5883
6171
  */
5884
6172
  configureSelect() {
5885
- // inject menu into menuWrapper
5886
- this.menuWrapper.append(this.menu);
5887
6173
 
5888
6174
  this.addEventListener('keydown', (evt) => {
5889
6175
  if (evt.key === 'ArrowUp') {
@@ -6273,10 +6559,8 @@ class AuroSelect extends i$2 {
6273
6559
  <slot name="valueText" id="valueText"></slot>
6274
6560
  </span>
6275
6561
 
6276
- <div class="menuWrapper">
6277
- </div>
6278
-
6279
6562
  <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
6563
+ <slot></slot>
6280
6564
  </${this.bibtemplateTag}>
6281
6565
  <slot name="label" slot="label"></slot>
6282
6566
  <p slot="helpText">
@@ -6511,7 +6795,7 @@ class AuroMenu extends i$2 {
6511
6795
  *
6512
6796
  */
6513
6797
  static register(name = "auro-menu") {
6514
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroMenu);
6798
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroMenu);
6515
6799
  }
6516
6800
 
6517
6801
  // Lifecycle Methods
@@ -6535,7 +6819,7 @@ class AuroMenu extends i$2 {
6535
6819
  }
6536
6820
 
6537
6821
  firstUpdated() {
6538
- AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-menu');
6822
+ AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-menu');
6539
6823
 
6540
6824
  this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
6541
6825
  this.initializeMenu();
@@ -7244,6 +7528,76 @@ var tokensCss = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-def
7244
7528
 
7245
7529
  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)}`;
7246
7530
 
7531
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
7532
+ // See LICENSE in the project root for license information.
7533
+
7534
+ // ---------------------------------------------------------------------
7535
+
7536
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
7537
+
7538
+ class AuroLibraryRuntimeUtils {
7539
+
7540
+ /* eslint-disable jsdoc/require-param */
7541
+
7542
+ /**
7543
+ * This will register a new custom element with the browser.
7544
+ * @param {String} name - The name of the custom element.
7545
+ * @param {Object} componentClass - The class to register as a custom element.
7546
+ * @returns {void}
7547
+ */
7548
+ registerComponent(name, componentClass) {
7549
+ if (!customElements.get(name)) {
7550
+ customElements.define(name, class extends componentClass {});
7551
+ }
7552
+ }
7553
+
7554
+ /**
7555
+ * Finds and returns the closest HTML Element based on a selector.
7556
+ * @returns {void}
7557
+ */
7558
+ closestElement(
7559
+ selector, // selector like in .closest()
7560
+ base = this, // extra functionality to skip a parent
7561
+ __Closest = (el, found = el && el.closest(selector)) =>
7562
+ !el || el === document || el === window
7563
+ ? null // standard .closest() returns null for non-found selectors also
7564
+ : found
7565
+ ? found // found a selector INside this element
7566
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
7567
+ ) {
7568
+ return __Closest(base);
7569
+ }
7570
+ /* eslint-enable jsdoc/require-param */
7571
+
7572
+ /**
7573
+ * 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.
7574
+ * @param {Object} elem - The element to check.
7575
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
7576
+ * @returns {void}
7577
+ */
7578
+ handleComponentTagRename(elem, tagName) {
7579
+ const tag = tagName.toLowerCase();
7580
+ const elemTag = elem.tagName.toLowerCase();
7581
+
7582
+ if (elemTag !== tag) {
7583
+ elem.setAttribute(tag, true);
7584
+ }
7585
+ }
7586
+
7587
+ /**
7588
+ * Validates if an element is a specific Auro component.
7589
+ * @param {Object} elem - The element to validate.
7590
+ * @param {String} tagName - The name of the Auro component to check against.
7591
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
7592
+ */
7593
+ elementMatch(elem, tagName) {
7594
+ const tag = tagName.toLowerCase();
7595
+ const elemTag = elem.tagName.toLowerCase();
7596
+
7597
+ return elemTag === tag || elem.hasAttribute(tag);
7598
+ }
7599
+ }
7600
+
7247
7601
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7248
7602
  // See LICENSE in the project root for license information.
7249
7603
 
@@ -7263,7 +7617,7 @@ class AuroIcon extends BaseIcon {
7263
7617
  */
7264
7618
  privateDefaults() {
7265
7619
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
7266
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
7620
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
7267
7621
  }
7268
7622
 
7269
7623
  // function to define props used within the scope of this component
@@ -7345,7 +7699,7 @@ class AuroIcon extends BaseIcon {
7345
7699
  *
7346
7700
  */
7347
7701
  static register(name = "auro-icon") {
7348
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroIcon);
7702
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
7349
7703
  }
7350
7704
 
7351
7705
  connectedCallback() {
@@ -7451,7 +7805,7 @@ class AuroMenuOption extends i$2 {
7451
7805
  /**
7452
7806
  * @private
7453
7807
  */
7454
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
7808
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
7455
7809
  }
7456
7810
 
7457
7811
  static get properties() {
@@ -7495,7 +7849,7 @@ class AuroMenuOption extends i$2 {
7495
7849
  *
7496
7850
  */
7497
7851
  static register(name = "auro-menuoption") {
7498
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroMenuOption);
7852
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroMenuOption);
7499
7853
  }
7500
7854
 
7501
7855
  firstUpdated() {