@aurodesignsystem-dev/auro-formkit 0.0.0-pr1608.0 → 0.0.0-pr1609.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/components/checkbox/demo/customize.min.js +10 -31
  2. package/components/checkbox/demo/getting-started.min.js +10 -31
  3. package/components/checkbox/demo/index.min.js +10 -31
  4. package/components/checkbox/dist/auro-checkbox-group.d.ts +0 -4
  5. package/components/checkbox/dist/index.js +10 -31
  6. package/components/checkbox/dist/registered.js +10 -31
  7. package/components/combobox/demo/customize.min.js +46 -4
  8. package/components/combobox/demo/getting-started.min.js +46 -4
  9. package/components/combobox/demo/index.min.js +46 -4
  10. package/components/combobox/dist/index.js +46 -4
  11. package/components/combobox/dist/registered.js +46 -4
  12. package/components/counter/demo/customize.min.js +45 -3
  13. package/components/counter/demo/getting-started.min.js +45 -3
  14. package/components/counter/demo/index.min.js +45 -3
  15. package/components/counter/dist/index.js +45 -3
  16. package/components/counter/dist/registered.js +45 -3
  17. package/components/datepicker/demo/customize.min.js +46 -4
  18. package/components/datepicker/demo/getting-started.min.js +46 -4
  19. package/components/datepicker/demo/index.min.js +46 -4
  20. package/components/datepicker/dist/index.js +46 -4
  21. package/components/datepicker/dist/registered.js +46 -4
  22. package/components/dropdown/demo/customize.min.js +44 -2
  23. package/components/dropdown/demo/getting-started.min.js +45 -3
  24. package/components/dropdown/demo/index.min.js +44 -2
  25. package/components/dropdown/dist/index.js +44 -2
  26. package/components/dropdown/dist/registered.js +44 -2
  27. package/components/form/demo/customize.min.js +205 -83
  28. package/components/form/demo/getting-started.min.js +205 -83
  29. package/components/form/demo/index.min.js +205 -83
  30. package/components/form/demo/registerDemoDeps.min.js +205 -83
  31. package/components/input/demo/customize.min.js +1 -1
  32. package/components/input/demo/getting-started.min.js +1 -1
  33. package/components/input/demo/index.min.js +1 -1
  34. package/components/input/dist/index.js +1 -1
  35. package/components/input/dist/registered.js +1 -1
  36. package/components/radio/demo/customize.min.js +8 -33
  37. package/components/radio/demo/getting-started.min.js +8 -33
  38. package/components/radio/demo/index.min.js +8 -33
  39. package/components/radio/dist/auro-radio-group.d.ts +0 -4
  40. package/components/radio/dist/index.js +8 -33
  41. package/components/radio/dist/registered.js +8 -33
  42. package/components/select/demo/customize.min.js +45 -3
  43. package/components/select/demo/getting-started.min.js +45 -3
  44. package/components/select/demo/index.min.js +45 -3
  45. package/components/select/dist/index.js +45 -3
  46. package/components/select/dist/registered.js +45 -3
  47. package/custom-elements.json +1510 -1510
  48. package/package.json +3 -3
@@ -3018,6 +3018,48 @@ const computePosition = (reference, floating, options) => {
3018
3018
  });
3019
3019
  };
3020
3020
 
3021
+ /**
3022
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3023
+ *
3024
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3025
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3026
+ * modern browsers regardless of secure-context status.
3027
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3028
+ * but sufficient for element IDs where collision risk is negligible.
3029
+ *
3030
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3031
+ */
3032
+ function generateUUID() {
3033
+ let uuid;
3034
+
3035
+ if (
3036
+ typeof crypto !== "undefined" &&
3037
+ typeof crypto.randomUUID === "function"
3038
+ ) {
3039
+ uuid = crypto.randomUUID();
3040
+ } else if (
3041
+ typeof crypto !== "undefined" &&
3042
+ typeof crypto.getRandomValues === "function"
3043
+ ) {
3044
+ const bytes = new Uint8Array(16);
3045
+ crypto.getRandomValues(bytes);
3046
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3047
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3048
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3049
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3050
+ } else {
3051
+ let d = new Date().getTime();
3052
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3053
+ const r = (d % 16) | 0;
3054
+ d = (d - r) / 16 || new Date().getTime();
3055
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3056
+ });
3057
+ }
3058
+
3059
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3060
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3061
+ }
3062
+
3021
3063
  /* eslint-disable line-comment-position, no-inline-comments */
3022
3064
 
3023
3065
 
@@ -4036,7 +4078,7 @@ class AuroFloatingUI {
4036
4078
 
4037
4079
  this.id = element.getAttribute("id");
4038
4080
  if (!this.id) {
4039
- this.id = window.crypto.randomUUID();
4081
+ this.id = generateUUID();
4040
4082
  element.setAttribute("id", this.id);
4041
4083
  }
4042
4084
 
@@ -5081,7 +5123,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
5081
5123
  }
5082
5124
  };
5083
5125
 
5084
- var formkitVersion$2 = '202609021913';
5126
+ var formkitVersion$2 = '202609022123';
5085
5127
 
5086
5128
  /**
5087
5129
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18950,7 +18992,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18950
18992
  }
18951
18993
  };
18952
18994
 
18953
- var formkitVersion$1 = '202609021913';
18995
+ var formkitVersion$1 = '202609022123';
18954
18996
 
18955
18997
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18956
18998
  // See LICENSE in the project root for license information.
@@ -20142,7 +20184,7 @@ class AuroBibtemplate extends i$3 {
20142
20184
  }
20143
20185
  }
20144
20186
 
20145
- var formkitVersion = '202609021913';
20187
+ var formkitVersion = '202609022123';
20146
20188
 
20147
20189
  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}`;
20148
20190
 
@@ -2936,6 +2936,48 @@ const computePosition = (reference, floating, options) => {
2936
2936
  });
2937
2937
  };
2938
2938
 
2939
+ /**
2940
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
2941
+ *
2942
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
2943
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
2944
+ * modern browsers regardless of secure-context status.
2945
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
2946
+ * but sufficient for element IDs where collision risk is negligible.
2947
+ *
2948
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
2949
+ */
2950
+ function generateUUID() {
2951
+ let uuid;
2952
+
2953
+ if (
2954
+ typeof crypto !== "undefined" &&
2955
+ typeof crypto.randomUUID === "function"
2956
+ ) {
2957
+ uuid = crypto.randomUUID();
2958
+ } else if (
2959
+ typeof crypto !== "undefined" &&
2960
+ typeof crypto.getRandomValues === "function"
2961
+ ) {
2962
+ const bytes = new Uint8Array(16);
2963
+ crypto.getRandomValues(bytes);
2964
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
2965
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
2966
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
2967
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
2968
+ } else {
2969
+ let d = new Date().getTime();
2970
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
2971
+ const r = (d % 16) | 0;
2972
+ d = (d - r) / 16 || new Date().getTime();
2973
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
2974
+ });
2975
+ }
2976
+
2977
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
2978
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
2979
+ }
2980
+
2939
2981
  /* eslint-disable line-comment-position, no-inline-comments */
2940
2982
 
2941
2983
 
@@ -3954,7 +3996,7 @@ class AuroFloatingUI {
3954
3996
 
3955
3997
  this.id = element.getAttribute("id");
3956
3998
  if (!this.id) {
3957
- this.id = window.crypto.randomUUID();
3999
+ this.id = generateUUID();
3958
4000
  element.setAttribute("id", this.id);
3959
4001
  }
3960
4002
 
@@ -4999,7 +5041,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4999
5041
  }
5000
5042
  };
5001
5043
 
5002
- var formkitVersion$2 = '202609021913';
5044
+ var formkitVersion$2 = '202609022123';
5003
5045
 
5004
5046
  /**
5005
5047
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18861,7 +18903,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18861
18903
  }
18862
18904
  };
18863
18905
 
18864
- var formkitVersion$1 = '202609021913';
18906
+ var formkitVersion$1 = '202609022123';
18865
18907
 
18866
18908
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18867
18909
  // See LICENSE in the project root for license information.
@@ -20053,7 +20095,7 @@ class AuroBibtemplate extends LitElement {
20053
20095
  }
20054
20096
  }
20055
20097
 
20056
- var formkitVersion = '202609021913';
20098
+ var formkitVersion = '202609022123';
20057
20099
 
20058
20100
  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}`;
20059
20101
 
@@ -2936,6 +2936,48 @@ const computePosition = (reference, floating, options) => {
2936
2936
  });
2937
2937
  };
2938
2938
 
2939
+ /**
2940
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
2941
+ *
2942
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
2943
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
2944
+ * modern browsers regardless of secure-context status.
2945
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
2946
+ * but sufficient for element IDs where collision risk is negligible.
2947
+ *
2948
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
2949
+ */
2950
+ function generateUUID() {
2951
+ let uuid;
2952
+
2953
+ if (
2954
+ typeof crypto !== "undefined" &&
2955
+ typeof crypto.randomUUID === "function"
2956
+ ) {
2957
+ uuid = crypto.randomUUID();
2958
+ } else if (
2959
+ typeof crypto !== "undefined" &&
2960
+ typeof crypto.getRandomValues === "function"
2961
+ ) {
2962
+ const bytes = new Uint8Array(16);
2963
+ crypto.getRandomValues(bytes);
2964
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
2965
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
2966
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
2967
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
2968
+ } else {
2969
+ let d = new Date().getTime();
2970
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
2971
+ const r = (d % 16) | 0;
2972
+ d = (d - r) / 16 || new Date().getTime();
2973
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
2974
+ });
2975
+ }
2976
+
2977
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
2978
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
2979
+ }
2980
+
2939
2981
  /* eslint-disable line-comment-position, no-inline-comments */
2940
2982
 
2941
2983
 
@@ -3954,7 +3996,7 @@ class AuroFloatingUI {
3954
3996
 
3955
3997
  this.id = element.getAttribute("id");
3956
3998
  if (!this.id) {
3957
- this.id = window.crypto.randomUUID();
3999
+ this.id = generateUUID();
3958
4000
  element.setAttribute("id", this.id);
3959
4001
  }
3960
4002
 
@@ -4999,7 +5041,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4999
5041
  }
5000
5042
  };
5001
5043
 
5002
- var formkitVersion$2 = '202609021913';
5044
+ var formkitVersion$2 = '202609022123';
5003
5045
 
5004
5046
  /**
5005
5047
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -18861,7 +18903,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
18861
18903
  }
18862
18904
  };
18863
18905
 
18864
- var formkitVersion$1 = '202609021913';
18906
+ var formkitVersion$1 = '202609022123';
18865
18907
 
18866
18908
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18867
18909
  // See LICENSE in the project root for license information.
@@ -20053,7 +20095,7 @@ class AuroBibtemplate extends LitElement {
20053
20095
  }
20054
20096
  }
20055
20097
 
20056
- var formkitVersion = '202609021913';
20098
+ var formkitVersion = '202609022123';
20057
20099
 
20058
20100
  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}`;
20059
20101
 
@@ -1127,7 +1127,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1127
1127
  }
1128
1128
  };
1129
1129
 
1130
- var formkitVersion$1 = '202609021913';
1130
+ var formkitVersion$1 = '202609022123';
1131
1131
 
1132
1132
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1133
1133
  // See LICENSE in the project root for license information.
@@ -3382,6 +3382,48 @@ const computePosition = (reference, floating, options) => {
3382
3382
  });
3383
3383
  };
3384
3384
 
3385
+ /**
3386
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3387
+ *
3388
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3389
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3390
+ * modern browsers regardless of secure-context status.
3391
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3392
+ * but sufficient for element IDs where collision risk is negligible.
3393
+ *
3394
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3395
+ */
3396
+ function generateUUID() {
3397
+ let uuid;
3398
+
3399
+ if (
3400
+ typeof crypto !== "undefined" &&
3401
+ typeof crypto.randomUUID === "function"
3402
+ ) {
3403
+ uuid = crypto.randomUUID();
3404
+ } else if (
3405
+ typeof crypto !== "undefined" &&
3406
+ typeof crypto.getRandomValues === "function"
3407
+ ) {
3408
+ const bytes = new Uint8Array(16);
3409
+ crypto.getRandomValues(bytes);
3410
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3411
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3412
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3413
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3414
+ } else {
3415
+ let d = new Date().getTime();
3416
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3417
+ const r = (d % 16) | 0;
3418
+ d = (d - r) / 16 || new Date().getTime();
3419
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3420
+ });
3421
+ }
3422
+
3423
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3424
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3425
+ }
3426
+
3385
3427
  /* eslint-disable line-comment-position, no-inline-comments */
3386
3428
 
3387
3429
 
@@ -4400,7 +4442,7 @@ class AuroFloatingUI {
4400
4442
 
4401
4443
  this.id = element.getAttribute("id");
4402
4444
  if (!this.id) {
4403
- this.id = window.crypto.randomUUID();
4445
+ this.id = generateUUID();
4404
4446
  element.setAttribute("id", this.id);
4405
4447
  }
4406
4448
 
@@ -5445,7 +5487,7 @@ class AuroHelpText extends i$2 {
5445
5487
  }
5446
5488
  }
5447
5489
 
5448
- var formkitVersion = '202609021913';
5490
+ var formkitVersion = '202609022123';
5449
5491
 
5450
5492
  /**
5451
5493
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1127,7 +1127,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1127
1127
  }
1128
1128
  };
1129
1129
 
1130
- var formkitVersion$1 = '202609021913';
1130
+ var formkitVersion$1 = '202609022123';
1131
1131
 
1132
1132
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1133
1133
  // See LICENSE in the project root for license information.
@@ -3382,6 +3382,48 @@ const computePosition = (reference, floating, options) => {
3382
3382
  });
3383
3383
  };
3384
3384
 
3385
+ /**
3386
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3387
+ *
3388
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3389
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3390
+ * modern browsers regardless of secure-context status.
3391
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3392
+ * but sufficient for element IDs where collision risk is negligible.
3393
+ *
3394
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3395
+ */
3396
+ function generateUUID() {
3397
+ let uuid;
3398
+
3399
+ if (
3400
+ typeof crypto !== "undefined" &&
3401
+ typeof crypto.randomUUID === "function"
3402
+ ) {
3403
+ uuid = crypto.randomUUID();
3404
+ } else if (
3405
+ typeof crypto !== "undefined" &&
3406
+ typeof crypto.getRandomValues === "function"
3407
+ ) {
3408
+ const bytes = new Uint8Array(16);
3409
+ crypto.getRandomValues(bytes);
3410
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3411
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3412
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3413
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3414
+ } else {
3415
+ let d = new Date().getTime();
3416
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3417
+ const r = (d % 16) | 0;
3418
+ d = (d - r) / 16 || new Date().getTime();
3419
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3420
+ });
3421
+ }
3422
+
3423
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3424
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3425
+ }
3426
+
3385
3427
  /* eslint-disable line-comment-position, no-inline-comments */
3386
3428
 
3387
3429
 
@@ -4400,7 +4442,7 @@ class AuroFloatingUI {
4400
4442
 
4401
4443
  this.id = element.getAttribute("id");
4402
4444
  if (!this.id) {
4403
- this.id = window.crypto.randomUUID();
4445
+ this.id = generateUUID();
4404
4446
  element.setAttribute("id", this.id);
4405
4447
  }
4406
4448
 
@@ -5445,7 +5487,7 @@ class AuroHelpText extends i$2 {
5445
5487
  }
5446
5488
  }
5447
5489
 
5448
- var formkitVersion = '202609021913';
5490
+ var formkitVersion = '202609022123';
5449
5491
 
5450
5492
  /**
5451
5493
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1127,7 +1127,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1127
1127
  }
1128
1128
  };
1129
1129
 
1130
- var formkitVersion$1 = '202609021913';
1130
+ var formkitVersion$1 = '202609022123';
1131
1131
 
1132
1132
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1133
1133
  // See LICENSE in the project root for license information.
@@ -3382,6 +3382,48 @@ const computePosition = (reference, floating, options) => {
3382
3382
  });
3383
3383
  };
3384
3384
 
3385
+ /**
3386
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3387
+ *
3388
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3389
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3390
+ * modern browsers regardless of secure-context status.
3391
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3392
+ * but sufficient for element IDs where collision risk is negligible.
3393
+ *
3394
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3395
+ */
3396
+ function generateUUID() {
3397
+ let uuid;
3398
+
3399
+ if (
3400
+ typeof crypto !== "undefined" &&
3401
+ typeof crypto.randomUUID === "function"
3402
+ ) {
3403
+ uuid = crypto.randomUUID();
3404
+ } else if (
3405
+ typeof crypto !== "undefined" &&
3406
+ typeof crypto.getRandomValues === "function"
3407
+ ) {
3408
+ const bytes = new Uint8Array(16);
3409
+ crypto.getRandomValues(bytes);
3410
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3411
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3412
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3413
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3414
+ } else {
3415
+ let d = new Date().getTime();
3416
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3417
+ const r = (d % 16) | 0;
3418
+ d = (d - r) / 16 || new Date().getTime();
3419
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3420
+ });
3421
+ }
3422
+
3423
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3424
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3425
+ }
3426
+
3385
3427
  /* eslint-disable line-comment-position, no-inline-comments */
3386
3428
 
3387
3429
 
@@ -4400,7 +4442,7 @@ class AuroFloatingUI {
4400
4442
 
4401
4443
  this.id = element.getAttribute("id");
4402
4444
  if (!this.id) {
4403
- this.id = window.crypto.randomUUID();
4445
+ this.id = generateUUID();
4404
4446
  element.setAttribute("id", this.id);
4405
4447
  }
4406
4448
 
@@ -5445,7 +5487,7 @@ class AuroHelpText extends i$2 {
5445
5487
  }
5446
5488
  }
5447
5489
 
5448
- var formkitVersion = '202609021913';
5490
+ var formkitVersion = '202609022123';
5449
5491
 
5450
5492
  /**
5451
5493
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1077,7 +1077,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1077
1077
  }
1078
1078
  };
1079
1079
 
1080
- var formkitVersion$1 = '202609021913';
1080
+ var formkitVersion$1 = '202609022123';
1081
1081
 
1082
1082
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1083
1083
  // See LICENSE in the project root for license information.
@@ -3314,6 +3314,48 @@ const computePosition = (reference, floating, options) => {
3314
3314
  });
3315
3315
  };
3316
3316
 
3317
+ /**
3318
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3319
+ *
3320
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3321
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3322
+ * modern browsers regardless of secure-context status.
3323
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3324
+ * but sufficient for element IDs where collision risk is negligible.
3325
+ *
3326
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3327
+ */
3328
+ function generateUUID() {
3329
+ let uuid;
3330
+
3331
+ if (
3332
+ typeof crypto !== "undefined" &&
3333
+ typeof crypto.randomUUID === "function"
3334
+ ) {
3335
+ uuid = crypto.randomUUID();
3336
+ } else if (
3337
+ typeof crypto !== "undefined" &&
3338
+ typeof crypto.getRandomValues === "function"
3339
+ ) {
3340
+ const bytes = new Uint8Array(16);
3341
+ crypto.getRandomValues(bytes);
3342
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3343
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3344
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3345
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3346
+ } else {
3347
+ let d = new Date().getTime();
3348
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3349
+ const r = (d % 16) | 0;
3350
+ d = (d - r) / 16 || new Date().getTime();
3351
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3352
+ });
3353
+ }
3354
+
3355
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3356
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3357
+ }
3358
+
3317
3359
  /* eslint-disable line-comment-position, no-inline-comments */
3318
3360
 
3319
3361
 
@@ -4332,7 +4374,7 @@ class AuroFloatingUI {
4332
4374
 
4333
4375
  this.id = element.getAttribute("id");
4334
4376
  if (!this.id) {
4335
- this.id = window.crypto.randomUUID();
4377
+ this.id = generateUUID();
4336
4378
  element.setAttribute("id", this.id);
4337
4379
  }
4338
4380
 
@@ -5377,7 +5419,7 @@ class AuroHelpText extends LitElement {
5377
5419
  }
5378
5420
  }
5379
5421
 
5380
- var formkitVersion = '202609021913';
5422
+ var formkitVersion = '202609022123';
5381
5423
 
5382
5424
  /**
5383
5425
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1077,7 +1077,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1077
1077
  }
1078
1078
  };
1079
1079
 
1080
- var formkitVersion$1 = '202609021913';
1080
+ var formkitVersion$1 = '202609022123';
1081
1081
 
1082
1082
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1083
1083
  // See LICENSE in the project root for license information.
@@ -3314,6 +3314,48 @@ const computePosition = (reference, floating, options) => {
3314
3314
  });
3315
3315
  };
3316
3316
 
3317
+ /**
3318
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
3319
+ *
3320
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
3321
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
3322
+ * modern browsers regardless of secure-context status.
3323
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
3324
+ * but sufficient for element IDs where collision risk is negligible.
3325
+ *
3326
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
3327
+ */
3328
+ function generateUUID() {
3329
+ let uuid;
3330
+
3331
+ if (
3332
+ typeof crypto !== "undefined" &&
3333
+ typeof crypto.randomUUID === "function"
3334
+ ) {
3335
+ uuid = crypto.randomUUID();
3336
+ } else if (
3337
+ typeof crypto !== "undefined" &&
3338
+ typeof crypto.getRandomValues === "function"
3339
+ ) {
3340
+ const bytes = new Uint8Array(16);
3341
+ crypto.getRandomValues(bytes);
3342
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
3343
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
3344
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
3345
+ uuid = `${hex.slice(0, 4).join("")}-${hex.slice(4, 6).join("")}-${hex.slice(6, 8).join("")}-${hex.slice(8, 10).join("")}-${hex.slice(10).join("")}`;
3346
+ } else {
3347
+ let d = new Date().getTime();
3348
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
3349
+ const r = (d % 16) | 0;
3350
+ d = (d - r) / 16 || new Date().getTime();
3351
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
3352
+ });
3353
+ }
3354
+
3355
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
3356
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
3357
+ }
3358
+
3317
3359
  /* eslint-disable line-comment-position, no-inline-comments */
3318
3360
 
3319
3361
 
@@ -4332,7 +4374,7 @@ class AuroFloatingUI {
4332
4374
 
4333
4375
  this.id = element.getAttribute("id");
4334
4376
  if (!this.id) {
4335
- this.id = window.crypto.randomUUID();
4377
+ this.id = generateUUID();
4336
4378
  element.setAttribute("id", this.id);
4337
4379
  }
4338
4380
 
@@ -5377,7 +5419,7 @@ class AuroHelpText extends LitElement {
5377
5419
  }
5378
5420
  }
5379
5421
 
5380
- var formkitVersion = '202609021913';
5422
+ var formkitVersion = '202609022123';
5381
5423
 
5382
5424
  /**
5383
5425
  * AuroElement is the shared base class for layout-aware Auro form components.