@aurodesignsystem/auro-formkit 4.0.0-rc-658.1.1 → 4.0.0-rc-676.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 (49) hide show
  1. package/CHANGELOG.md +4 -1
  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/README.md +1 -1
  6. package/components/checkbox/demo/api.md +2 -2
  7. package/components/checkbox/demo/api.min.js +24 -20
  8. package/components/checkbox/demo/index.md +2 -2
  9. package/components/checkbox/demo/index.min.js +24 -20
  10. package/components/checkbox/demo/readme.md +1 -1
  11. package/components/checkbox/dist/auro-checkbox.d.ts +2 -2
  12. package/components/checkbox/dist/index.js +24 -20
  13. package/components/checkbox/dist/registered.js +24 -20
  14. package/components/combobox/demo/api.min.js +707 -133
  15. package/components/combobox/demo/index.min.js +707 -133
  16. package/components/combobox/dist/auro-combobox.d.ts +0 -8
  17. package/components/combobox/dist/index.js +627 -123
  18. package/components/combobox/dist/registered.js +627 -123
  19. package/components/counter/demo/api.min.js +583 -43
  20. package/components/counter/demo/index.min.js +583 -43
  21. package/components/counter/dist/index.js +583 -43
  22. package/components/counter/dist/registered.js +583 -43
  23. package/components/datepicker/demo/api.min.js +866 -75
  24. package/components/datepicker/demo/index.min.js +866 -75
  25. package/components/datepicker/dist/index.js +866 -75
  26. package/components/datepicker/dist/registered.js +866 -75
  27. package/components/dropdown/demo/api.min.js +153 -16
  28. package/components/dropdown/demo/index.min.js +153 -16
  29. package/components/dropdown/dist/auro-dropdownBib.d.ts +8 -0
  30. package/components/dropdown/dist/index.js +153 -16
  31. package/components/dropdown/dist/registered.js +153 -16
  32. package/components/input/demo/api.min.js +263 -12
  33. package/components/input/demo/index.min.js +263 -12
  34. package/components/input/dist/index.js +263 -12
  35. package/components/input/dist/registered.js +263 -12
  36. package/components/menu/demo/api.min.js +76 -6
  37. package/components/menu/demo/index.min.js +76 -6
  38. package/components/menu/dist/index.js +76 -6
  39. package/components/menu/dist/registered.js +76 -6
  40. package/components/radio/demo/api.min.js +4 -3
  41. package/components/radio/demo/index.min.js +4 -3
  42. package/components/radio/dist/index.js +4 -3
  43. package/components/radio/dist/registered.js +4 -3
  44. package/components/select/demo/api.min.js +403 -49
  45. package/components/select/demo/index.min.js +403 -49
  46. package/components/select/dist/auro-select.d.ts +0 -1
  47. package/components/select/dist/index.js +325 -41
  48. package/components/select/dist/registered.js +325 -41
  49. package/package.json +3 -3
@@ -254,7 +254,6 @@ export class AuroSelect extends LitElement {
254
254
  */
255
255
  private configureDropdown;
256
256
  dropdown: any;
257
- menuWrapper: any;
258
257
  bibtemplate: any;
259
258
  /**
260
259
  * Updates the displayed value in an Auro dropdown component based on optionSelected.
@@ -60,9 +60,10 @@ class DateFormatter {
60
60
  /**
61
61
  * Convert a date object to string format.
62
62
  * @param {Object} date - Date to convert to string.
63
- * @returns {Object} Returns the date as a string.
63
+ * @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
64
+ * @returns {String} Returns the date as a string.
64
65
  */
65
- this.getDateAsString = (date) => date.toLocaleDateString(undefined, {
66
+ this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
66
67
  year: "numeric",
67
68
  month: "2-digit",
68
69
  day: "2-digit",
@@ -254,7 +255,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
254
255
  const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
255
256
 
256
257
  // Get the date string of the date object we created from the string date
257
- const actualDateStr = dateFormatter.getDateAsString(dateObj);
258
+ const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
258
259
 
259
260
  // Guard Clause: Generated date matches date string input
260
261
  if (expectedDateStr !== actualDateStr) {
@@ -419,7 +420,7 @@ const {
419
420
 
420
421
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
421
422
 
422
- let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
423
+ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
423
424
 
424
425
  /* eslint-disable jsdoc/require-param */
425
426
 
@@ -489,7 +490,7 @@ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
489
490
  class AuroFormValidation {
490
491
 
491
492
  constructor() {
492
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
493
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
493
494
  }
494
495
 
495
496
  /**
@@ -895,7 +896,7 @@ let AuroDependencyVersioning$2 = class AuroDependencyVersioning {
895
896
 
896
897
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
897
898
 
898
- let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
899
+ let AuroLibraryRuntimeUtils$2$1 = class AuroLibraryRuntimeUtils {
899
900
 
900
901
  /* eslint-disable jsdoc/require-param */
901
902
 
@@ -2490,8 +2491,28 @@ class AuroFloatingUI {
2490
2491
  if (!AuroFloatingUI.isMousePressHandlerInitialized && window && window.addEventListener) {
2491
2492
  AuroFloatingUI.isMousePressHandlerInitialized = true;
2492
2493
 
2494
+ // Track timeout for isMousePressed reset to avoid race conditions
2495
+ if (!AuroFloatingUI._mousePressedTimeout) {
2496
+ AuroFloatingUI._mousePressedTimeout = null;
2497
+ }
2493
2498
  const mouseEventGlobalHandler = (event) => {
2494
- AuroFloatingUI.isMousePressed = event.type === 'mousedown';
2499
+ const isPressed = event.type === 'mousedown';
2500
+ if (isPressed) {
2501
+ // Clear any pending timeout to prevent race condition
2502
+ if (AuroFloatingUI._mousePressedTimeout !== null) {
2503
+ clearTimeout(AuroFloatingUI._mousePressedTimeout);
2504
+ AuroFloatingUI._mousePressedTimeout = null;
2505
+ }
2506
+ if (!AuroFloatingUI.isMousePressed) {
2507
+ AuroFloatingUI.isMousePressed = true;
2508
+ }
2509
+ } else if (AuroFloatingUI.isMousePressed && !isPressed) {
2510
+ // Schedule reset and track timeout ID
2511
+ AuroFloatingUI._mousePressedTimeout = setTimeout(() => {
2512
+ AuroFloatingUI.isMousePressed = false;
2513
+ AuroFloatingUI._mousePressedTimeout = null;
2514
+ }, 0);
2515
+ }
2495
2516
  };
2496
2517
 
2497
2518
  window.addEventListener('mousedown', mouseEventGlobalHandler);
@@ -2618,6 +2639,7 @@ class AuroFloatingUI {
2618
2639
 
2619
2640
  // Compute the position of the bib
2620
2641
  computePosition(this.element.trigger, this.element.bib, {
2642
+ strategy: this.element.floaterConfig?.strategy || 'fixed',
2621
2643
  placement: this.element.floaterConfig?.placement,
2622
2644
  middleware: middleware || []
2623
2645
  }).then(({ x, y }) => { // eslint-disable-line id-length
@@ -2752,8 +2774,9 @@ class AuroFloatingUI {
2752
2774
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
2753
2775
  return;
2754
2776
  }
2755
- // if fullscreen bib is still open and the focus is missing, do not close
2756
- if (this.element.bib.hasAttribute('isfullscreen') && activeElement === document.body) {
2777
+
2778
+ // if fullscreen bib is in fullscreen mode, do not close
2779
+ if (this.element.bib.hasAttribute('isfullscreen')) {
2757
2780
  return;
2758
2781
  }
2759
2782
 
@@ -3054,8 +3077,6 @@ class AuroFloatingUI {
3054
3077
  this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
3055
3078
  }
3056
3079
 
3057
- document.body.append(this.element.bib);
3058
-
3059
3080
  this.regenerateBibId();
3060
3081
  this.handleTriggerTabIndex();
3061
3082
 
@@ -3286,6 +3307,76 @@ var tokensCss$2 = css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-d
3286
3307
 
3287
3308
  var colorCss$3 = css`: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)}`;
3288
3309
 
3310
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3311
+ // See LICENSE in the project root for license information.
3312
+
3313
+ // ---------------------------------------------------------------------
3314
+
3315
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3316
+
3317
+ let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
3318
+
3319
+ /* eslint-disable jsdoc/require-param */
3320
+
3321
+ /**
3322
+ * This will register a new custom element with the browser.
3323
+ * @param {String} name - The name of the custom element.
3324
+ * @param {Object} componentClass - The class to register as a custom element.
3325
+ * @returns {void}
3326
+ */
3327
+ registerComponent(name, componentClass) {
3328
+ if (!customElements.get(name)) {
3329
+ customElements.define(name, class extends componentClass {});
3330
+ }
3331
+ }
3332
+
3333
+ /**
3334
+ * Finds and returns the closest HTML Element based on a selector.
3335
+ * @returns {void}
3336
+ */
3337
+ closestElement(
3338
+ selector, // selector like in .closest()
3339
+ base = this, // extra functionality to skip a parent
3340
+ __Closest = (el, found = el && el.closest(selector)) =>
3341
+ !el || el === document || el === window
3342
+ ? null // standard .closest() returns null for non-found selectors also
3343
+ : found
3344
+ ? found // found a selector INside this element
3345
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
3346
+ ) {
3347
+ return __Closest(base);
3348
+ }
3349
+ /* eslint-enable jsdoc/require-param */
3350
+
3351
+ /**
3352
+ * 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.
3353
+ * @param {Object} elem - The element to check.
3354
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
3355
+ * @returns {void}
3356
+ */
3357
+ handleComponentTagRename(elem, tagName) {
3358
+ const tag = tagName.toLowerCase();
3359
+ const elemTag = elem.tagName.toLowerCase();
3360
+
3361
+ if (elemTag !== tag) {
3362
+ elem.setAttribute(tag, true);
3363
+ }
3364
+ }
3365
+
3366
+ /**
3367
+ * Validates if an element is a specific Auro component.
3368
+ * @param {Object} elem - The element to validate.
3369
+ * @param {String} tagName - The name of the Auro component to check against.
3370
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
3371
+ */
3372
+ elementMatch(elem, tagName) {
3373
+ const tag = tagName.toLowerCase();
3374
+ const elemTag = elem.tagName.toLowerCase();
3375
+
3376
+ return elemTag === tag || elem.hasAttribute(tag);
3377
+ }
3378
+ };
3379
+
3289
3380
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3290
3381
  // See LICENSE in the project root for license information.
3291
3382
 
@@ -3305,7 +3396,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
3305
3396
  */
3306
3397
  privateDefaults() {
3307
3398
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
3308
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
3399
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
3309
3400
  }
3310
3401
 
3311
3402
  // function to define props used within the scope of this component
@@ -3387,7 +3478,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
3387
3478
  *
3388
3479
  */
3389
3480
  static register(name = "auro-icon") {
3390
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
3481
+ AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
3391
3482
  }
3392
3483
 
3393
3484
  connectedCallback() {
@@ -3455,7 +3546,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
3455
3546
 
3456
3547
  var iconVersion$1 = '6.1.2';
3457
3548
 
3458
- var styleCss$2$1 = css`: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}`;
3549
+ var styleCss$2$1 = css`: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}`;
3459
3550
 
3460
3551
  var colorCss$2 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
3461
3552
 
@@ -3465,7 +3556,6 @@ var tokensCss$1 = css`:host{--ds-auro-dropdown-label-text-color: var(--ds-basic-
3465
3556
  // See LICENSE in the project root for license information.
3466
3557
 
3467
3558
 
3468
-
3469
3559
  const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
3470
3560
  const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
3471
3561
  'xl',
@@ -3490,7 +3580,7 @@ class AuroDropdownBib extends LitElement {
3490
3580
  */
3491
3581
  this._mobileBreakpointValue = undefined;
3492
3582
 
3493
- AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3583
+ AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3494
3584
  }
3495
3585
 
3496
3586
  static get styles() {
@@ -3535,6 +3625,13 @@ class AuroDropdownBib extends LitElement {
3535
3625
  type: Boolean,
3536
3626
  reflect: true
3537
3627
  },
3628
+
3629
+ /**
3630
+ * A reference to the associated bib template element.
3631
+ */
3632
+ bibTemplate: {
3633
+ type: Object
3634
+ }
3538
3635
  };
3539
3636
  }
3540
3637
 
@@ -3567,9 +3664,50 @@ class AuroDropdownBib extends LitElement {
3567
3664
  }
3568
3665
  }
3569
3666
  });
3667
+
3668
+ if (this.bibTemplate) {
3669
+ // If the bib template is found, set the fullscreen attribute
3670
+ if (this.isFullscreen) {
3671
+ this.bibTemplate.setAttribute('isFullscreen', 'true');
3672
+ } else {
3673
+ this.bibTemplate.removeAttribute('isFullscreen');
3674
+ }
3675
+ }
3570
3676
  }
3571
3677
  }
3572
3678
 
3679
+ connectedCallback() {
3680
+ super.connectedCallback();
3681
+
3682
+ // Listen for the auro-bibtemplate-connected event to set the fullscreen attribute
3683
+ this.addEventListener('auro-bibtemplate-connected', (event) => {
3684
+ const bibTemplate = event.detail.element;
3685
+ this.bibTemplate = bibTemplate;
3686
+
3687
+ if (bibTemplate) {
3688
+ // If the bib template is found, set the fullscreen attribute
3689
+ if (this.isFullscreen) {
3690
+ bibTemplate.setAttribute('isFullscreen', 'true');
3691
+ } else {
3692
+ bibTemplate.removeAttribute('isFullscreen');
3693
+ }
3694
+ }
3695
+ });
3696
+ }
3697
+
3698
+ firstUpdated(changedProperties) {
3699
+ super.firstUpdated(changedProperties);
3700
+
3701
+ // Dispatch a custom event when the component is connected
3702
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
3703
+ bubbles: true,
3704
+ composed: true,
3705
+ detail: {
3706
+ element: this
3707
+ }
3708
+ }));
3709
+ }
3710
+
3573
3711
  // function that renders the HTML and CSS into the scope of the component
3574
3712
  render() {
3575
3713
  return html`
@@ -3599,7 +3737,7 @@ var tokensCss$3 = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
3599
3737
 
3600
3738
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3601
3739
 
3602
- let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
3740
+ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
3603
3741
 
3604
3742
  /* eslint-disable jsdoc/require-param */
3605
3743
 
@@ -3680,7 +3818,7 @@ class AuroHelpText extends LitElement {
3680
3818
  this.onDark = false;
3681
3819
  this.hasTextContent = false;
3682
3820
 
3683
- AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-helptext');
3821
+ AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-helptext');
3684
3822
  }
3685
3823
 
3686
3824
  static get styles() {
@@ -3736,7 +3874,7 @@ class AuroHelpText extends LitElement {
3736
3874
  *
3737
3875
  */
3738
3876
  static register(name = "auro-helptext") {
3739
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroHelpText);
3877
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroHelpText);
3740
3878
  }
3741
3879
 
3742
3880
  updated() {
@@ -3879,7 +4017,7 @@ class AuroDropdown extends LitElement {
3879
4017
  /**
3880
4018
  * @private
3881
4019
  */
3882
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4020
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2$1();
3883
4021
 
3884
4022
  /**
3885
4023
  * @private
@@ -4208,7 +4346,7 @@ class AuroDropdown extends LitElement {
4208
4346
  *
4209
4347
  */
4210
4348
  static register(name = "auro-dropdown") {
4211
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroDropdown);
4349
+ AuroLibraryRuntimeUtils$2$1.prototype.registerComponent(name, AuroDropdown);
4212
4350
  }
4213
4351
 
4214
4352
  /**
@@ -4525,8 +4663,7 @@ class AuroDropdown extends LitElement {
4525
4663
  * @param {Event} event - The event object representing the slot change.
4526
4664
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
4527
4665
  */
4528
- handleDefaultSlot(event) {
4529
- [...event.target.assignedNodes()].forEach((node) => this.bibContent.append(node));
4666
+ handleDefaultSlot() {
4530
4667
 
4531
4668
  if (this.onSlotChange) {
4532
4669
  this.onSlotChange();
@@ -4598,9 +4735,7 @@ class AuroDropdown extends LitElement {
4598
4735
  <${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
4599
4736
  <slot name="helpText"></slot>
4600
4737
  </${this.helpTextTag}>
4601
- <div class="slotContent">
4602
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
4603
- </div>
4738
+
4604
4739
  <div id="bibSizer" part="size"></div>
4605
4740
  <${this.dropdownBibTag}
4606
4741
  id="bib"
@@ -4610,6 +4745,9 @@ class AuroDropdown extends LitElement {
4610
4745
  ?rounded="${this.common || this.rounded}"
4611
4746
  ?inset="${this.common || this.inset}"
4612
4747
  >
4748
+ <div class="slotContent">
4749
+ <slot @slotchange="${this.handleDefaultSlot}"></slot>
4750
+ </div>
4613
4751
  </${this.dropdownBibTag}>
4614
4752
  </div>
4615
4753
  `;
@@ -4631,7 +4769,7 @@ var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
4631
4769
 
4632
4770
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
4633
4771
 
4634
- class AuroLibraryRuntimeUtils {
4772
+ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
4635
4773
 
4636
4774
  /* eslint-disable jsdoc/require-param */
4637
4775
 
@@ -4692,7 +4830,7 @@ class AuroLibraryRuntimeUtils {
4692
4830
 
4693
4831
  return elemTag === tag || elem.hasAttribute(tag);
4694
4832
  }
4695
- }
4833
+ };
4696
4834
 
4697
4835
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
4698
4836
  // See LICENSE in the project root for license information.
@@ -4888,6 +5026,76 @@ var tokensCss = css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-def
4888
5026
 
4889
5027
  var colorCss = css`: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)}`;
4890
5028
 
5029
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5030
+ // See LICENSE in the project root for license information.
5031
+
5032
+ // ---------------------------------------------------------------------
5033
+
5034
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5035
+
5036
+ let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
5037
+
5038
+ /* eslint-disable jsdoc/require-param */
5039
+
5040
+ /**
5041
+ * This will register a new custom element with the browser.
5042
+ * @param {String} name - The name of the custom element.
5043
+ * @param {Object} componentClass - The class to register as a custom element.
5044
+ * @returns {void}
5045
+ */
5046
+ registerComponent(name, componentClass) {
5047
+ if (!customElements.get(name)) {
5048
+ customElements.define(name, class extends componentClass {});
5049
+ }
5050
+ }
5051
+
5052
+ /**
5053
+ * Finds and returns the closest HTML Element based on a selector.
5054
+ * @returns {void}
5055
+ */
5056
+ closestElement(
5057
+ selector, // selector like in .closest()
5058
+ base = this, // extra functionality to skip a parent
5059
+ __Closest = (el, found = el && el.closest(selector)) =>
5060
+ !el || el === document || el === window
5061
+ ? null // standard .closest() returns null for non-found selectors also
5062
+ : found
5063
+ ? found // found a selector INside this element
5064
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5065
+ ) {
5066
+ return __Closest(base);
5067
+ }
5068
+ /* eslint-enable jsdoc/require-param */
5069
+
5070
+ /**
5071
+ * 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.
5072
+ * @param {Object} elem - The element to check.
5073
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5074
+ * @returns {void}
5075
+ */
5076
+ handleComponentTagRename(elem, tagName) {
5077
+ const tag = tagName.toLowerCase();
5078
+ const elemTag = elem.tagName.toLowerCase();
5079
+
5080
+ if (elemTag !== tag) {
5081
+ elem.setAttribute(tag, true);
5082
+ }
5083
+ }
5084
+
5085
+ /**
5086
+ * Validates if an element is a specific Auro component.
5087
+ * @param {Object} elem - The element to validate.
5088
+ * @param {String} tagName - The name of the Auro component to check against.
5089
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5090
+ */
5091
+ elementMatch(elem, tagName) {
5092
+ const tag = tagName.toLowerCase();
5093
+ const elemTag = elem.tagName.toLowerCase();
5094
+
5095
+ return elemTag === tag || elem.hasAttribute(tag);
5096
+ }
5097
+ };
5098
+
4891
5099
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
4892
5100
  // See LICENSE in the project root for license information.
4893
5101
 
@@ -4907,7 +5115,7 @@ class AuroIcon extends BaseIcon {
4907
5115
  */
4908
5116
  privateDefaults() {
4909
5117
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
4910
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
5118
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4911
5119
  }
4912
5120
 
4913
5121
  // function to define props used within the scope of this component
@@ -4989,7 +5197,7 @@ class AuroIcon extends BaseIcon {
4989
5197
  *
4990
5198
  */
4991
5199
  static register(name = "auro-icon") {
4992
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
5200
+ AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
4993
5201
  }
4994
5202
 
4995
5203
  connectedCallback() {
@@ -5057,6 +5265,76 @@ class AuroIcon extends BaseIcon {
5057
5265
 
5058
5266
  var iconVersion = '8.0.2';
5059
5267
 
5268
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5269
+ // See LICENSE in the project root for license information.
5270
+
5271
+ // ---------------------------------------------------------------------
5272
+
5273
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5274
+
5275
+ class AuroLibraryRuntimeUtils {
5276
+
5277
+ /* eslint-disable jsdoc/require-param */
5278
+
5279
+ /**
5280
+ * This will register a new custom element with the browser.
5281
+ * @param {String} name - The name of the custom element.
5282
+ * @param {Object} componentClass - The class to register as a custom element.
5283
+ * @returns {void}
5284
+ */
5285
+ registerComponent(name, componentClass) {
5286
+ if (!customElements.get(name)) {
5287
+ customElements.define(name, class extends componentClass {});
5288
+ }
5289
+ }
5290
+
5291
+ /**
5292
+ * Finds and returns the closest HTML Element based on a selector.
5293
+ * @returns {void}
5294
+ */
5295
+ closestElement(
5296
+ selector, // selector like in .closest()
5297
+ base = this, // extra functionality to skip a parent
5298
+ __Closest = (el, found = el && el.closest(selector)) =>
5299
+ !el || el === document || el === window
5300
+ ? null // standard .closest() returns null for non-found selectors also
5301
+ : found
5302
+ ? found // found a selector INside this element
5303
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5304
+ ) {
5305
+ return __Closest(base);
5306
+ }
5307
+ /* eslint-enable jsdoc/require-param */
5308
+
5309
+ /**
5310
+ * 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.
5311
+ * @param {Object} elem - The element to check.
5312
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5313
+ * @returns {void}
5314
+ */
5315
+ handleComponentTagRename(elem, tagName) {
5316
+ const tag = tagName.toLowerCase();
5317
+ const elemTag = elem.tagName.toLowerCase();
5318
+
5319
+ if (elemTag !== tag) {
5320
+ elem.setAttribute(tag, true);
5321
+ }
5322
+ }
5323
+
5324
+ /**
5325
+ * Validates if an element is a specific Auro component.
5326
+ * @param {Object} elem - The element to validate.
5327
+ * @param {String} tagName - The name of the Auro component to check against.
5328
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5329
+ */
5330
+ elementMatch(elem, tagName) {
5331
+ const tag = tagName.toLowerCase();
5332
+ const elemTag = elem.tagName.toLowerCase();
5333
+
5334
+ return elemTag === tag || elem.hasAttribute(tag);
5335
+ }
5336
+ }
5337
+
5060
5338
  var styleCss$3 = css`.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)}`;
5061
5339
 
5062
5340
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
@@ -5212,7 +5490,7 @@ class AuroBibtemplate extends LitElement {
5212
5490
 
5213
5491
  this.large = false;
5214
5492
 
5215
- AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5493
+ AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5216
5494
 
5217
5495
  const versioning = new AuroDependencyVersioning();
5218
5496
  this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion, AuroIcon);
@@ -5251,7 +5529,7 @@ class AuroBibtemplate extends LitElement {
5251
5529
  *
5252
5530
  */
5253
5531
  static register(name = "auro-bibtemplate") {
5254
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroBibtemplate);
5532
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroBibtemplate);
5255
5533
  }
5256
5534
 
5257
5535
  /**
@@ -5291,6 +5569,18 @@ class AuroBibtemplate extends LitElement {
5291
5569
  this.setAttribute('exportparts', 'bibtemplate:dropdownBibTemplate');
5292
5570
  }
5293
5571
 
5572
+ firstUpdated(changedProperties) {
5573
+ super.firstUpdated(changedProperties);
5574
+
5575
+ this.dispatchEvent(new CustomEvent("auro-bibtemplate-connected", {
5576
+ bubbles: true,
5577
+ composed: true,
5578
+ detail: {
5579
+ element: this
5580
+ }
5581
+ }));
5582
+ }
5583
+
5294
5584
  // function that renders the HTML and CSS into the scope of the component
5295
5585
  render() {
5296
5586
  return html`
@@ -5438,7 +5728,7 @@ class AuroSelect extends LitElement {
5438
5728
  /**
5439
5729
  * @private
5440
5730
  */
5441
- this.runtimeUtils = new AuroLibraryRuntimeUtils$3();
5731
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
5442
5732
 
5443
5733
  /**
5444
5734
  * Generate unique names for dependency components.
@@ -5709,11 +5999,9 @@ class AuroSelect extends LitElement {
5709
5999
  */
5710
6000
  configureDropdown() {
5711
6001
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
5712
- this.menuWrapper = this.dropdown.querySelector('.menuWrapper');
5713
6002
 
5714
6003
  // setting up bibtemplate
5715
6004
  this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$); // eslint-disable-line no-underscore-dangle
5716
- this.bibtemplate.append(this.menuWrapper);
5717
6005
 
5718
6006
  if (this.customBibWidth) {
5719
6007
  this.dropdown.dropdownWidth = this.customBibWidth;
@@ -5732,7 +6020,7 @@ class AuroSelect extends LitElement {
5732
6020
  *
5733
6021
  */
5734
6022
  static register(name = "auro-select") {
5735
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroSelect);
6023
+ AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroSelect);
5736
6024
  }
5737
6025
 
5738
6026
  /**
@@ -5836,8 +6124,6 @@ class AuroSelect extends LitElement {
5836
6124
  * @returns {void}
5837
6125
  */
5838
6126
  configureSelect() {
5839
- // inject menu into menuWrapper
5840
- this.menuWrapper.append(this.menu);
5841
6127
 
5842
6128
  this.addEventListener('keydown', (evt) => {
5843
6129
  if (evt.key === 'ArrowUp') {
@@ -6227,10 +6513,8 @@ class AuroSelect extends LitElement {
6227
6513
  <slot name="valueText" id="valueText"></slot>
6228
6514
  </span>
6229
6515
 
6230
- <div class="menuWrapper">
6231
- </div>
6232
-
6233
6516
  <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
6517
+ <slot></slot>
6234
6518
  </${this.bibtemplateTag}>
6235
6519
  <slot name="label" slot="label"></slot>
6236
6520
  <p slot="helpText">