@aurodesignsystem-dev/auro-formkit 0.0.0-pr1595.4 → 0.0.0-pr1595.5

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 (43) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +67 -7
  7. package/components/combobox/demo/getting-started.min.js +67 -7
  8. package/components/combobox/demo/index.min.js +67 -7
  9. package/components/combobox/dist/index.js +67 -7
  10. package/components/combobox/dist/registered.js +67 -7
  11. package/components/counter/demo/customize.min.js +66 -6
  12. package/components/counter/demo/index.min.js +66 -6
  13. package/components/counter/dist/index.js +66 -6
  14. package/components/counter/dist/registered.js +66 -6
  15. package/components/datepicker/demo/customize.min.js +67 -7
  16. package/components/datepicker/demo/index.min.js +67 -7
  17. package/components/datepicker/dist/index.js +67 -7
  18. package/components/datepicker/dist/registered.js +67 -7
  19. package/components/dropdown/demo/customize.min.js +65 -5
  20. package/components/dropdown/demo/getting-started.min.js +66 -6
  21. package/components/dropdown/demo/index.min.js +65 -5
  22. package/components/dropdown/dist/index.js +65 -5
  23. package/components/dropdown/dist/registered.js +65 -5
  24. package/components/form/demo/customize.min.js +269 -29
  25. package/components/form/demo/getting-started.min.js +269 -29
  26. package/components/form/demo/index.min.js +269 -29
  27. package/components/form/demo/registerDemoDeps.min.js +269 -29
  28. package/components/input/demo/customize.min.js +1 -1
  29. package/components/input/demo/getting-started.min.js +1 -1
  30. package/components/input/demo/index.min.js +1 -1
  31. package/components/input/dist/index.js +1 -1
  32. package/components/input/dist/registered.js +1 -1
  33. package/components/radio/demo/customize.min.js +1 -1
  34. package/components/radio/demo/getting-started.min.js +1 -1
  35. package/components/radio/demo/index.min.js +1 -1
  36. package/components/radio/dist/index.js +1 -1
  37. package/components/radio/dist/registered.js +1 -1
  38. package/components/select/demo/customize.min.js +66 -6
  39. package/components/select/demo/getting-started.min.js +66 -6
  40. package/components/select/demo/index.min.js +66 -6
  41. package/components/select/dist/index.js +66 -6
  42. package/components/select/dist/registered.js +66 -6
  43. package/package.json +2 -2
@@ -1286,7 +1286,7 @@ class AuroHelpText extends i$2 {
1286
1286
  }
1287
1287
  }
1288
1288
 
1289
- var formkitVersion = '202608300149';
1289
+ var formkitVersion = '202608300227';
1290
1290
 
1291
1291
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1292
1292
  // See LICENSE in the project root for license information.
@@ -1286,7 +1286,7 @@ class AuroHelpText extends i$2 {
1286
1286
  }
1287
1287
  }
1288
1288
 
1289
- var formkitVersion = '202608300149';
1289
+ var formkitVersion = '202608300227';
1290
1290
 
1291
1291
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1292
1292
  // See LICENSE in the project root for license information.
@@ -1286,7 +1286,7 @@ class AuroHelpText extends i$2 {
1286
1286
  }
1287
1287
  }
1288
1288
 
1289
- var formkitVersion = '202608300149';
1289
+ var formkitVersion = '202608300227';
1290
1290
 
1291
1291
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1292
1292
  // See LICENSE in the project root for license information.
@@ -1239,7 +1239,7 @@ class AuroHelpText extends LitElement {
1239
1239
  }
1240
1240
  }
1241
1241
 
1242
- var formkitVersion = '202608300149';
1242
+ var formkitVersion = '202608300227';
1243
1243
 
1244
1244
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1245
1245
  // See LICENSE in the project root for license information.
@@ -1239,7 +1239,7 @@ class AuroHelpText extends LitElement {
1239
1239
  }
1240
1240
  }
1241
1241
 
1242
- var formkitVersion = '202608300149';
1242
+ var formkitVersion = '202608300227';
1243
1243
 
1244
1244
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1245
1245
  // See LICENSE in the project root for license information.
@@ -3336,15 +3336,57 @@ class AuroFloatingUI {
3336
3336
  document.body.style.top = `-${this._savedScrollY}px`;
3337
3337
  document.body.style.width = "100%";
3338
3338
 
3339
- // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
3340
- if (element?.bib && window?.visualViewport?.offsetTop) {
3341
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
3339
+ // Keep the bib aligned with the visual viewport as the VKB opens.
3340
+ // A one-shot offsetTop check at lock time is stale by the time the user
3341
+ // taps an input mid-drawer — iOS then pans visualViewport upward and the
3342
+ // bib drifts off-screen. Listen continuously so the transform tracks the pan.
3343
+ // RAF-throttled to avoid a style recalc on every scroll tick during the
3344
+ // keyboard animation; the pending frame is canceled on unlock so it cannot
3345
+ // reapply a translate after bibTransform has been restored.
3346
+ if (window.visualViewport) {
3347
+ this._viewportRafId = undefined;
3348
+ this._viewportHandler = () => {
3349
+ if (this._viewportRafId !== undefined) {
3350
+ return;
3351
+ }
3352
+ this._viewportRafId = requestAnimationFrame(() => {
3353
+ this._viewportRafId = undefined;
3354
+ if (element?.bib) {
3355
+ element.bib.style.transform = `translateY(${window.visualViewport.offsetTop}px)`;
3356
+ }
3357
+ });
3358
+ };
3359
+ window.visualViewport.addEventListener(
3360
+ "resize",
3361
+ this._viewportHandler,
3362
+ );
3363
+ window.visualViewport.addEventListener(
3364
+ "scroll",
3365
+ this._viewportHandler,
3366
+ );
3367
+ this._viewportHandler();
3342
3368
  }
3343
3369
 
3344
3370
  this.lockTouchScroll(true);
3345
3371
  }
3346
3372
  } else {
3347
3373
  if (this._scrollLocked) {
3374
+ if (this._viewportHandler && window.visualViewport) {
3375
+ window.visualViewport.removeEventListener(
3376
+ "resize",
3377
+ this._viewportHandler,
3378
+ );
3379
+ window.visualViewport.removeEventListener(
3380
+ "scroll",
3381
+ this._viewportHandler,
3382
+ );
3383
+ this._viewportHandler = undefined;
3384
+ }
3385
+ if (this._viewportRafId !== undefined) {
3386
+ cancelAnimationFrame(this._viewportRafId);
3387
+ this._viewportRafId = undefined;
3388
+ }
3389
+
3348
3390
  document.documentElement.style.scrollbarGutter =
3349
3391
  this._savedScrollStyles?.rootScrollbarGutter ?? "";
3350
3392
  document.documentElement.style.overflow =
@@ -3436,7 +3478,7 @@ class AuroFloatingUI {
3436
3478
  bibContent.style.width = "";
3437
3479
  bibContent.style.height = "";
3438
3480
  bibContent.style.maxWidth = "";
3439
- bibContent.style.maxHeight = `${window?.visualViewport?.height}px`;
3481
+ bibContent.style.maxHeight = "";
3440
3482
  this.configureTrial = 0;
3441
3483
  } else if (this.configureTrial < MAX_CONFIGURATION_COUNT) {
3442
3484
  this.configureTrial += 1;
@@ -3733,6 +3775,24 @@ class AuroFloatingUI {
3733
3775
  if (!this.showing) {
3734
3776
  if (!element.modal) {
3735
3777
  this.setupHideHandlers();
3778
+ } else {
3779
+ if (this.keyDownHandler) {
3780
+ document.removeEventListener("keydown", this.keyDownHandler);
3781
+ }
3782
+ this.keyDownHandler = (evt) => {
3783
+ if (evt.key === "Escape" && element.isPopoverVisible) {
3784
+ // Intercept at keydown so CloseWatcher never sees the keystroke.
3785
+ // Canceling `cancel` alone is insufficient — a second Esc with no
3786
+ // intervening user activation triggers the anti-trap and fires `close`
3787
+ // directly, bypassing any `cancel` preventDefault (AB#1613688).
3788
+ // stopImmediatePropagation is intentional: it prevents other document
3789
+ // keydown handlers (e.g. consumer code, auro-dialog) from also acting
3790
+ // on Escape while the modal owns the key.
3791
+ evt.preventDefault();
3792
+ evt.stopImmediatePropagation();
3793
+ }
3794
+ };
3795
+ document.addEventListener("keydown", this.keyDownHandler);
3736
3796
  }
3737
3797
  this.showing = true;
3738
3798
  element.isPopoverVisible = true;
@@ -5006,7 +5066,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
5006
5066
  }
5007
5067
  };
5008
5068
 
5009
- var formkitVersion$2 = '202608300149';
5069
+ var formkitVersion$2 = '202608300227';
5010
5070
 
5011
5071
  /**
5012
5072
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18875,7 +18935,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18875
18935
  }
18876
18936
  };
18877
18937
 
18878
- var formkitVersion$1 = '202608300149';
18938
+ var formkitVersion$1 = '202608300227';
18879
18939
 
18880
18940
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18881
18941
  // See LICENSE in the project root for license information.
@@ -20067,7 +20127,7 @@ class AuroBibtemplate extends i$3 {
20067
20127
  }
20068
20128
  }
20069
20129
 
20070
- var formkitVersion = '202608300149';
20130
+ var formkitVersion = '202608300227';
20071
20131
 
20072
20132
  var styleCss$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
20073
20133
 
@@ -3336,15 +3336,57 @@ class AuroFloatingUI {
3336
3336
  document.body.style.top = `-${this._savedScrollY}px`;
3337
3337
  document.body.style.width = "100%";
3338
3338
 
3339
- // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
3340
- if (element?.bib && window?.visualViewport?.offsetTop) {
3341
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
3339
+ // Keep the bib aligned with the visual viewport as the VKB opens.
3340
+ // A one-shot offsetTop check at lock time is stale by the time the user
3341
+ // taps an input mid-drawer — iOS then pans visualViewport upward and the
3342
+ // bib drifts off-screen. Listen continuously so the transform tracks the pan.
3343
+ // RAF-throttled to avoid a style recalc on every scroll tick during the
3344
+ // keyboard animation; the pending frame is canceled on unlock so it cannot
3345
+ // reapply a translate after bibTransform has been restored.
3346
+ if (window.visualViewport) {
3347
+ this._viewportRafId = undefined;
3348
+ this._viewportHandler = () => {
3349
+ if (this._viewportRafId !== undefined) {
3350
+ return;
3351
+ }
3352
+ this._viewportRafId = requestAnimationFrame(() => {
3353
+ this._viewportRafId = undefined;
3354
+ if (element?.bib) {
3355
+ element.bib.style.transform = `translateY(${window.visualViewport.offsetTop}px)`;
3356
+ }
3357
+ });
3358
+ };
3359
+ window.visualViewport.addEventListener(
3360
+ "resize",
3361
+ this._viewportHandler,
3362
+ );
3363
+ window.visualViewport.addEventListener(
3364
+ "scroll",
3365
+ this._viewportHandler,
3366
+ );
3367
+ this._viewportHandler();
3342
3368
  }
3343
3369
 
3344
3370
  this.lockTouchScroll(true);
3345
3371
  }
3346
3372
  } else {
3347
3373
  if (this._scrollLocked) {
3374
+ if (this._viewportHandler && window.visualViewport) {
3375
+ window.visualViewport.removeEventListener(
3376
+ "resize",
3377
+ this._viewportHandler,
3378
+ );
3379
+ window.visualViewport.removeEventListener(
3380
+ "scroll",
3381
+ this._viewportHandler,
3382
+ );
3383
+ this._viewportHandler = undefined;
3384
+ }
3385
+ if (this._viewportRafId !== undefined) {
3386
+ cancelAnimationFrame(this._viewportRafId);
3387
+ this._viewportRafId = undefined;
3388
+ }
3389
+
3348
3390
  document.documentElement.style.scrollbarGutter =
3349
3391
  this._savedScrollStyles?.rootScrollbarGutter ?? "";
3350
3392
  document.documentElement.style.overflow =
@@ -3436,7 +3478,7 @@ class AuroFloatingUI {
3436
3478
  bibContent.style.width = "";
3437
3479
  bibContent.style.height = "";
3438
3480
  bibContent.style.maxWidth = "";
3439
- bibContent.style.maxHeight = `${window?.visualViewport?.height}px`;
3481
+ bibContent.style.maxHeight = "";
3440
3482
  this.configureTrial = 0;
3441
3483
  } else if (this.configureTrial < MAX_CONFIGURATION_COUNT) {
3442
3484
  this.configureTrial += 1;
@@ -3733,6 +3775,24 @@ class AuroFloatingUI {
3733
3775
  if (!this.showing) {
3734
3776
  if (!element.modal) {
3735
3777
  this.setupHideHandlers();
3778
+ } else {
3779
+ if (this.keyDownHandler) {
3780
+ document.removeEventListener("keydown", this.keyDownHandler);
3781
+ }
3782
+ this.keyDownHandler = (evt) => {
3783
+ if (evt.key === "Escape" && element.isPopoverVisible) {
3784
+ // Intercept at keydown so CloseWatcher never sees the keystroke.
3785
+ // Canceling `cancel` alone is insufficient — a second Esc with no
3786
+ // intervening user activation triggers the anti-trap and fires `close`
3787
+ // directly, bypassing any `cancel` preventDefault (AB#1613688).
3788
+ // stopImmediatePropagation is intentional: it prevents other document
3789
+ // keydown handlers (e.g. consumer code, auro-dialog) from also acting
3790
+ // on Escape while the modal owns the key.
3791
+ evt.preventDefault();
3792
+ evt.stopImmediatePropagation();
3793
+ }
3794
+ };
3795
+ document.addEventListener("keydown", this.keyDownHandler);
3736
3796
  }
3737
3797
  this.showing = true;
3738
3798
  element.isPopoverVisible = true;
@@ -5006,7 +5066,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
5006
5066
  }
5007
5067
  };
5008
5068
 
5009
- var formkitVersion$2 = '202608300149';
5069
+ var formkitVersion$2 = '202608300227';
5010
5070
 
5011
5071
  /**
5012
5072
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18875,7 +18935,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18875
18935
  }
18876
18936
  };
18877
18937
 
18878
- var formkitVersion$1 = '202608300149';
18938
+ var formkitVersion$1 = '202608300227';
18879
18939
 
18880
18940
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18881
18941
  // See LICENSE in the project root for license information.
@@ -20067,7 +20127,7 @@ class AuroBibtemplate extends i$3 {
20067
20127
  }
20068
20128
  }
20069
20129
 
20070
- var formkitVersion = '202608300149';
20130
+ var formkitVersion = '202608300227';
20071
20131
 
20072
20132
  var styleCss$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
20073
20133
 
@@ -3351,15 +3351,57 @@ class AuroFloatingUI {
3351
3351
  document.body.style.top = `-${this._savedScrollY}px`;
3352
3352
  document.body.style.width = "100%";
3353
3353
 
3354
- // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
3355
- if (element?.bib && window?.visualViewport?.offsetTop) {
3356
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
3354
+ // Keep the bib aligned with the visual viewport as the VKB opens.
3355
+ // A one-shot offsetTop check at lock time is stale by the time the user
3356
+ // taps an input mid-drawer — iOS then pans visualViewport upward and the
3357
+ // bib drifts off-screen. Listen continuously so the transform tracks the pan.
3358
+ // RAF-throttled to avoid a style recalc on every scroll tick during the
3359
+ // keyboard animation; the pending frame is canceled on unlock so it cannot
3360
+ // reapply a translate after bibTransform has been restored.
3361
+ if (window.visualViewport) {
3362
+ this._viewportRafId = undefined;
3363
+ this._viewportHandler = () => {
3364
+ if (this._viewportRafId !== undefined) {
3365
+ return;
3366
+ }
3367
+ this._viewportRafId = requestAnimationFrame(() => {
3368
+ this._viewportRafId = undefined;
3369
+ if (element?.bib) {
3370
+ element.bib.style.transform = `translateY(${window.visualViewport.offsetTop}px)`;
3371
+ }
3372
+ });
3373
+ };
3374
+ window.visualViewport.addEventListener(
3375
+ "resize",
3376
+ this._viewportHandler,
3377
+ );
3378
+ window.visualViewport.addEventListener(
3379
+ "scroll",
3380
+ this._viewportHandler,
3381
+ );
3382
+ this._viewportHandler();
3357
3383
  }
3358
3384
 
3359
3385
  this.lockTouchScroll(true);
3360
3386
  }
3361
3387
  } else {
3362
3388
  if (this._scrollLocked) {
3389
+ if (this._viewportHandler && window.visualViewport) {
3390
+ window.visualViewport.removeEventListener(
3391
+ "resize",
3392
+ this._viewportHandler,
3393
+ );
3394
+ window.visualViewport.removeEventListener(
3395
+ "scroll",
3396
+ this._viewportHandler,
3397
+ );
3398
+ this._viewportHandler = undefined;
3399
+ }
3400
+ if (this._viewportRafId !== undefined) {
3401
+ cancelAnimationFrame(this._viewportRafId);
3402
+ this._viewportRafId = undefined;
3403
+ }
3404
+
3363
3405
  document.documentElement.style.scrollbarGutter =
3364
3406
  this._savedScrollStyles?.rootScrollbarGutter ?? "";
3365
3407
  document.documentElement.style.overflow =
@@ -3451,7 +3493,7 @@ class AuroFloatingUI {
3451
3493
  bibContent.style.width = "";
3452
3494
  bibContent.style.height = "";
3453
3495
  bibContent.style.maxWidth = "";
3454
- bibContent.style.maxHeight = `${window?.visualViewport?.height}px`;
3496
+ bibContent.style.maxHeight = "";
3455
3497
  this.configureTrial = 0;
3456
3498
  } else if (this.configureTrial < MAX_CONFIGURATION_COUNT) {
3457
3499
  this.configureTrial += 1;
@@ -3748,6 +3790,24 @@ class AuroFloatingUI {
3748
3790
  if (!this.showing) {
3749
3791
  if (!element.modal) {
3750
3792
  this.setupHideHandlers();
3793
+ } else {
3794
+ if (this.keyDownHandler) {
3795
+ document.removeEventListener("keydown", this.keyDownHandler);
3796
+ }
3797
+ this.keyDownHandler = (evt) => {
3798
+ if (evt.key === "Escape" && element.isPopoverVisible) {
3799
+ // Intercept at keydown so CloseWatcher never sees the keystroke.
3800
+ // Canceling `cancel` alone is insufficient — a second Esc with no
3801
+ // intervening user activation triggers the anti-trap and fires `close`
3802
+ // directly, bypassing any `cancel` preventDefault (AB#1613688).
3803
+ // stopImmediatePropagation is intentional: it prevents other document
3804
+ // keydown handlers (e.g. consumer code, auro-dialog) from also acting
3805
+ // on Escape while the modal owns the key.
3806
+ evt.preventDefault();
3807
+ evt.stopImmediatePropagation();
3808
+ }
3809
+ };
3810
+ document.addEventListener("keydown", this.keyDownHandler);
3751
3811
  }
3752
3812
  this.showing = true;
3753
3813
  element.isPopoverVisible = true;
@@ -5021,7 +5081,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
5021
5081
  }
5022
5082
  };
5023
5083
 
5024
- var formkitVersion$2 = '202608300149';
5084
+ var formkitVersion$2 = '202608300227';
5025
5085
 
5026
5086
  /**
5027
5087
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18890,7 +18950,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18890
18950
  }
18891
18951
  };
18892
18952
 
18893
- var formkitVersion$1 = '202608300149';
18953
+ var formkitVersion$1 = '202608300227';
18894
18954
 
18895
18955
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18896
18956
  // See LICENSE in the project root for license information.
@@ -20082,7 +20142,7 @@ class AuroBibtemplate extends i$3 {
20082
20142
  }
20083
20143
  }
20084
20144
 
20085
- var formkitVersion = '202608300149';
20145
+ var formkitVersion = '202608300227';
20086
20146
 
20087
20147
  var styleCss$3 = i$6`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
20088
20148
 
@@ -3269,15 +3269,57 @@ class AuroFloatingUI {
3269
3269
  document.body.style.top = `-${this._savedScrollY}px`;
3270
3270
  document.body.style.width = "100%";
3271
3271
 
3272
- // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
3273
- if (element?.bib && window?.visualViewport?.offsetTop) {
3274
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
3272
+ // Keep the bib aligned with the visual viewport as the VKB opens.
3273
+ // A one-shot offsetTop check at lock time is stale by the time the user
3274
+ // taps an input mid-drawer — iOS then pans visualViewport upward and the
3275
+ // bib drifts off-screen. Listen continuously so the transform tracks the pan.
3276
+ // RAF-throttled to avoid a style recalc on every scroll tick during the
3277
+ // keyboard animation; the pending frame is canceled on unlock so it cannot
3278
+ // reapply a translate after bibTransform has been restored.
3279
+ if (window.visualViewport) {
3280
+ this._viewportRafId = undefined;
3281
+ this._viewportHandler = () => {
3282
+ if (this._viewportRafId !== undefined) {
3283
+ return;
3284
+ }
3285
+ this._viewportRafId = requestAnimationFrame(() => {
3286
+ this._viewportRafId = undefined;
3287
+ if (element?.bib) {
3288
+ element.bib.style.transform = `translateY(${window.visualViewport.offsetTop}px)`;
3289
+ }
3290
+ });
3291
+ };
3292
+ window.visualViewport.addEventListener(
3293
+ "resize",
3294
+ this._viewportHandler,
3295
+ );
3296
+ window.visualViewport.addEventListener(
3297
+ "scroll",
3298
+ this._viewportHandler,
3299
+ );
3300
+ this._viewportHandler();
3275
3301
  }
3276
3302
 
3277
3303
  this.lockTouchScroll(true);
3278
3304
  }
3279
3305
  } else {
3280
3306
  if (this._scrollLocked) {
3307
+ if (this._viewportHandler && window.visualViewport) {
3308
+ window.visualViewport.removeEventListener(
3309
+ "resize",
3310
+ this._viewportHandler,
3311
+ );
3312
+ window.visualViewport.removeEventListener(
3313
+ "scroll",
3314
+ this._viewportHandler,
3315
+ );
3316
+ this._viewportHandler = undefined;
3317
+ }
3318
+ if (this._viewportRafId !== undefined) {
3319
+ cancelAnimationFrame(this._viewportRafId);
3320
+ this._viewportRafId = undefined;
3321
+ }
3322
+
3281
3323
  document.documentElement.style.scrollbarGutter =
3282
3324
  this._savedScrollStyles?.rootScrollbarGutter ?? "";
3283
3325
  document.documentElement.style.overflow =
@@ -3369,7 +3411,7 @@ class AuroFloatingUI {
3369
3411
  bibContent.style.width = "";
3370
3412
  bibContent.style.height = "";
3371
3413
  bibContent.style.maxWidth = "";
3372
- bibContent.style.maxHeight = `${window?.visualViewport?.height}px`;
3414
+ bibContent.style.maxHeight = "";
3373
3415
  this.configureTrial = 0;
3374
3416
  } else if (this.configureTrial < MAX_CONFIGURATION_COUNT) {
3375
3417
  this.configureTrial += 1;
@@ -3666,6 +3708,24 @@ class AuroFloatingUI {
3666
3708
  if (!this.showing) {
3667
3709
  if (!element.modal) {
3668
3710
  this.setupHideHandlers();
3711
+ } else {
3712
+ if (this.keyDownHandler) {
3713
+ document.removeEventListener("keydown", this.keyDownHandler);
3714
+ }
3715
+ this.keyDownHandler = (evt) => {
3716
+ if (evt.key === "Escape" && element.isPopoverVisible) {
3717
+ // Intercept at keydown so CloseWatcher never sees the keystroke.
3718
+ // Canceling `cancel` alone is insufficient — a second Esc with no
3719
+ // intervening user activation triggers the anti-trap and fires `close`
3720
+ // directly, bypassing any `cancel` preventDefault (AB#1613688).
3721
+ // stopImmediatePropagation is intentional: it prevents other document
3722
+ // keydown handlers (e.g. consumer code, auro-dialog) from also acting
3723
+ // on Escape while the modal owns the key.
3724
+ evt.preventDefault();
3725
+ evt.stopImmediatePropagation();
3726
+ }
3727
+ };
3728
+ document.addEventListener("keydown", this.keyDownHandler);
3669
3729
  }
3670
3730
  this.showing = true;
3671
3731
  element.isPopoverVisible = true;
@@ -4939,7 +4999,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4939
4999
  }
4940
5000
  };
4941
5001
 
4942
- var formkitVersion$2 = '202608300149';
5002
+ var formkitVersion$2 = '202608300227';
4943
5003
 
4944
5004
  /**
4945
5005
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18801,7 +18861,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18801
18861
  }
18802
18862
  };
18803
18863
 
18804
- var formkitVersion$1 = '202608300149';
18864
+ var formkitVersion$1 = '202608300227';
18805
18865
 
18806
18866
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18807
18867
  // See LICENSE in the project root for license information.
@@ -19993,7 +20053,7 @@ class AuroBibtemplate extends LitElement {
19993
20053
  }
19994
20054
  }
19995
20055
 
19996
- var formkitVersion = '202608300149';
20056
+ var formkitVersion = '202608300227';
19997
20057
 
19998
20058
  var styleCss$1 = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
19999
20059
 
@@ -3269,15 +3269,57 @@ class AuroFloatingUI {
3269
3269
  document.body.style.top = `-${this._savedScrollY}px`;
3270
3270
  document.body.style.width = "100%";
3271
3271
 
3272
- // Move `bib` by the amount the viewport is shifted to stay aligned in fullscreen.
3273
- if (element?.bib && window?.visualViewport?.offsetTop) {
3274
- element.bib.style.transform = `translateY(${window?.visualViewport?.offsetTop}px)`;
3272
+ // Keep the bib aligned with the visual viewport as the VKB opens.
3273
+ // A one-shot offsetTop check at lock time is stale by the time the user
3274
+ // taps an input mid-drawer — iOS then pans visualViewport upward and the
3275
+ // bib drifts off-screen. Listen continuously so the transform tracks the pan.
3276
+ // RAF-throttled to avoid a style recalc on every scroll tick during the
3277
+ // keyboard animation; the pending frame is canceled on unlock so it cannot
3278
+ // reapply a translate after bibTransform has been restored.
3279
+ if (window.visualViewport) {
3280
+ this._viewportRafId = undefined;
3281
+ this._viewportHandler = () => {
3282
+ if (this._viewportRafId !== undefined) {
3283
+ return;
3284
+ }
3285
+ this._viewportRafId = requestAnimationFrame(() => {
3286
+ this._viewportRafId = undefined;
3287
+ if (element?.bib) {
3288
+ element.bib.style.transform = `translateY(${window.visualViewport.offsetTop}px)`;
3289
+ }
3290
+ });
3291
+ };
3292
+ window.visualViewport.addEventListener(
3293
+ "resize",
3294
+ this._viewportHandler,
3295
+ );
3296
+ window.visualViewport.addEventListener(
3297
+ "scroll",
3298
+ this._viewportHandler,
3299
+ );
3300
+ this._viewportHandler();
3275
3301
  }
3276
3302
 
3277
3303
  this.lockTouchScroll(true);
3278
3304
  }
3279
3305
  } else {
3280
3306
  if (this._scrollLocked) {
3307
+ if (this._viewportHandler && window.visualViewport) {
3308
+ window.visualViewport.removeEventListener(
3309
+ "resize",
3310
+ this._viewportHandler,
3311
+ );
3312
+ window.visualViewport.removeEventListener(
3313
+ "scroll",
3314
+ this._viewportHandler,
3315
+ );
3316
+ this._viewportHandler = undefined;
3317
+ }
3318
+ if (this._viewportRafId !== undefined) {
3319
+ cancelAnimationFrame(this._viewportRafId);
3320
+ this._viewportRafId = undefined;
3321
+ }
3322
+
3281
3323
  document.documentElement.style.scrollbarGutter =
3282
3324
  this._savedScrollStyles?.rootScrollbarGutter ?? "";
3283
3325
  document.documentElement.style.overflow =
@@ -3369,7 +3411,7 @@ class AuroFloatingUI {
3369
3411
  bibContent.style.width = "";
3370
3412
  bibContent.style.height = "";
3371
3413
  bibContent.style.maxWidth = "";
3372
- bibContent.style.maxHeight = `${window?.visualViewport?.height}px`;
3414
+ bibContent.style.maxHeight = "";
3373
3415
  this.configureTrial = 0;
3374
3416
  } else if (this.configureTrial < MAX_CONFIGURATION_COUNT) {
3375
3417
  this.configureTrial += 1;
@@ -3666,6 +3708,24 @@ class AuroFloatingUI {
3666
3708
  if (!this.showing) {
3667
3709
  if (!element.modal) {
3668
3710
  this.setupHideHandlers();
3711
+ } else {
3712
+ if (this.keyDownHandler) {
3713
+ document.removeEventListener("keydown", this.keyDownHandler);
3714
+ }
3715
+ this.keyDownHandler = (evt) => {
3716
+ if (evt.key === "Escape" && element.isPopoverVisible) {
3717
+ // Intercept at keydown so CloseWatcher never sees the keystroke.
3718
+ // Canceling `cancel` alone is insufficient — a second Esc with no
3719
+ // intervening user activation triggers the anti-trap and fires `close`
3720
+ // directly, bypassing any `cancel` preventDefault (AB#1613688).
3721
+ // stopImmediatePropagation is intentional: it prevents other document
3722
+ // keydown handlers (e.g. consumer code, auro-dialog) from also acting
3723
+ // on Escape while the modal owns the key.
3724
+ evt.preventDefault();
3725
+ evt.stopImmediatePropagation();
3726
+ }
3727
+ };
3728
+ document.addEventListener("keydown", this.keyDownHandler);
3669
3729
  }
3670
3730
  this.showing = true;
3671
3731
  element.isPopoverVisible = true;
@@ -4939,7 +4999,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4939
4999
  }
4940
5000
  };
4941
5001
 
4942
- var formkitVersion$2 = '202608300149';
5002
+ var formkitVersion$2 = '202608300227';
4943
5003
 
4944
5004
  /**
4945
5005
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18801,7 +18861,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18801
18861
  }
18802
18862
  };
18803
18863
 
18804
- var formkitVersion$1 = '202608300149';
18864
+ var formkitVersion$1 = '202608300227';
18805
18865
 
18806
18866
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18807
18867
  // See LICENSE in the project root for license information.
@@ -19993,7 +20053,7 @@ class AuroBibtemplate extends LitElement {
19993
20053
  }
19994
20054
  }
19995
20055
 
19996
- var formkitVersion = '202608300149';
20056
+ var formkitVersion = '202608300227';
19997
20057
 
19998
20058
  var styleCss$1 = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
19999
20059