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

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 (51) hide show
  1. package/components/checkbox/demo/accessibility.md +15 -4
  2. package/components/checkbox/demo/customize.min.js +40 -12
  3. package/components/checkbox/demo/getting-started.min.js +40 -12
  4. package/components/checkbox/demo/index.min.js +40 -12
  5. package/components/checkbox/dist/auro-checkbox-group.d.ts +19 -0
  6. package/components/checkbox/dist/index.js +40 -12
  7. package/components/checkbox/dist/registered.js +40 -12
  8. package/components/combobox/demo/customize.min.js +46 -4
  9. package/components/combobox/demo/getting-started.min.js +46 -4
  10. package/components/combobox/demo/index.min.js +46 -4
  11. package/components/combobox/dist/index.js +46 -4
  12. package/components/combobox/dist/registered.js +46 -4
  13. package/components/counter/demo/customize.min.js +339 -23
  14. package/components/counter/demo/getting-started.min.js +339 -23
  15. package/components/counter/demo/index.min.js +339 -23
  16. package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +1 -0
  17. package/components/counter/dist/index.js +339 -23
  18. package/components/counter/dist/registered.js +339 -23
  19. package/components/datepicker/demo/customize.min.js +46 -4
  20. package/components/datepicker/demo/getting-started.min.js +46 -4
  21. package/components/datepicker/demo/index.min.js +46 -4
  22. package/components/datepicker/dist/index.js +46 -4
  23. package/components/datepicker/dist/registered.js +46 -4
  24. package/components/dropdown/demo/customize.min.js +44 -2
  25. package/components/dropdown/demo/getting-started.min.js +45 -3
  26. package/components/dropdown/demo/index.min.js +44 -2
  27. package/components/dropdown/dist/index.js +44 -2
  28. package/components/dropdown/dist/registered.js +44 -2
  29. package/components/form/demo/customize.min.js +556 -61
  30. package/components/form/demo/getting-started.min.js +556 -61
  31. package/components/form/demo/index.min.js +556 -61
  32. package/components/form/demo/registerDemoDeps.min.js +556 -61
  33. package/components/input/demo/customize.min.js +1 -1
  34. package/components/input/demo/getting-started.min.js +1 -1
  35. package/components/input/demo/index.min.js +1 -1
  36. package/components/input/dist/index.js +1 -1
  37. package/components/input/dist/registered.js +1 -1
  38. package/components/radio/demo/accessibility.md +15 -4
  39. package/components/radio/demo/customize.min.js +39 -14
  40. package/components/radio/demo/getting-started.min.js +39 -14
  41. package/components/radio/demo/index.min.js +39 -14
  42. package/components/radio/dist/auro-radio-group.d.ts +18 -0
  43. package/components/radio/dist/index.js +39 -14
  44. package/components/radio/dist/registered.js +39 -14
  45. package/components/select/demo/customize.min.js +45 -3
  46. package/components/select/demo/getting-started.min.js +45 -3
  47. package/components/select/demo/index.min.js +45 -3
  48. package/components/select/dist/index.js +45 -3
  49. package/components/select/dist/registered.js +45 -3
  50. package/custom-elements.json +1814 -1768
  51. package/package.json +3 -3
@@ -1802,6 +1802,48 @@ const computePosition = (reference, floating, options) => {
1802
1802
  });
1803
1803
  };
1804
1804
 
1805
+ /**
1806
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1807
+ *
1808
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1809
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1810
+ * modern browsers regardless of secure-context status.
1811
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1812
+ * but sufficient for element IDs where collision risk is negligible.
1813
+ *
1814
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1815
+ */
1816
+ function generateUUID() {
1817
+ let uuid;
1818
+
1819
+ if (
1820
+ typeof crypto !== "undefined" &&
1821
+ typeof crypto.randomUUID === "function"
1822
+ ) {
1823
+ uuid = crypto.randomUUID();
1824
+ } else if (
1825
+ typeof crypto !== "undefined" &&
1826
+ typeof crypto.getRandomValues === "function"
1827
+ ) {
1828
+ const bytes = new Uint8Array(16);
1829
+ crypto.getRandomValues(bytes);
1830
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1831
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1832
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1833
+ 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("")}`;
1834
+ } else {
1835
+ let d = new Date().getTime();
1836
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1837
+ const r = (d % 16) | 0;
1838
+ d = (d - r) / 16 || new Date().getTime();
1839
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1840
+ });
1841
+ }
1842
+
1843
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1844
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1845
+ }
1846
+
1805
1847
  /* eslint-disable line-comment-position, no-inline-comments */
1806
1848
 
1807
1849
 
@@ -2820,7 +2862,7 @@ class AuroFloatingUI {
2820
2862
 
2821
2863
  this.id = element.getAttribute("id");
2822
2864
  if (!this.id) {
2823
- this.id = window.crypto.randomUUID();
2865
+ this.id = generateUUID();
2824
2866
  element.setAttribute("id", this.id);
2825
2867
  }
2826
2868
 
@@ -3896,7 +3938,7 @@ class AuroHelpText extends i {
3896
3938
  }
3897
3939
  }
3898
3940
 
3899
- var formkitVersion = '202609021913';
3941
+ var formkitVersion = '202609030018';
3900
3942
 
3901
3943
  /**
3902
3944
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1738,6 +1738,48 @@ const computePosition = (reference, floating, options) => {
1738
1738
  });
1739
1739
  };
1740
1740
 
1741
+ /**
1742
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1743
+ *
1744
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1745
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1746
+ * modern browsers regardless of secure-context status.
1747
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1748
+ * but sufficient for element IDs where collision risk is negligible.
1749
+ *
1750
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1751
+ */
1752
+ function generateUUID() {
1753
+ let uuid;
1754
+
1755
+ if (
1756
+ typeof crypto !== "undefined" &&
1757
+ typeof crypto.randomUUID === "function"
1758
+ ) {
1759
+ uuid = crypto.randomUUID();
1760
+ } else if (
1761
+ typeof crypto !== "undefined" &&
1762
+ typeof crypto.getRandomValues === "function"
1763
+ ) {
1764
+ const bytes = new Uint8Array(16);
1765
+ crypto.getRandomValues(bytes);
1766
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1767
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1768
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1769
+ 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("")}`;
1770
+ } else {
1771
+ let d = new Date().getTime();
1772
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1773
+ const r = (d % 16) | 0;
1774
+ d = (d - r) / 16 || new Date().getTime();
1775
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1776
+ });
1777
+ }
1778
+
1779
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1780
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1781
+ }
1782
+
1741
1783
  /* eslint-disable line-comment-position, no-inline-comments */
1742
1784
 
1743
1785
 
@@ -2756,7 +2798,7 @@ class AuroFloatingUI {
2756
2798
 
2757
2799
  this.id = element.getAttribute("id");
2758
2800
  if (!this.id) {
2759
- this.id = window.crypto.randomUUID();
2801
+ this.id = generateUUID();
2760
2802
  element.setAttribute("id", this.id);
2761
2803
  }
2762
2804
 
@@ -3801,7 +3843,7 @@ class AuroHelpText extends LitElement {
3801
3843
  }
3802
3844
  }
3803
3845
 
3804
- var formkitVersion = '202609021913';
3846
+ var formkitVersion = '202609030018';
3805
3847
 
3806
3848
  /**
3807
3849
  * AuroElement is the shared base class for layout-aware Auro form components.
@@ -1738,6 +1738,48 @@ const computePosition = (reference, floating, options) => {
1738
1738
  });
1739
1739
  };
1740
1740
 
1741
+ /**
1742
+ * Generates a v4 UUID with a three-tier fallback for insecure contexts.
1743
+ *
1744
+ * Tier 1 (secure contexts): crypto.randomUUID() — native, fully random.
1745
+ * Tier 2 (insecure contexts): crypto.getRandomValues() — available on all
1746
+ * modern browsers regardless of secure-context status.
1747
+ * Tier 3 (last resort, no crypto API): new Date().getTime() — lower entropy,
1748
+ * but sufficient for element IDs where collision risk is negligible.
1749
+ *
1750
+ * See: https://w3c.github.io/webcrypto/#dom-crypto-randomuuid (secure-context restriction)
1751
+ */
1752
+ function generateUUID() {
1753
+ let uuid;
1754
+
1755
+ if (
1756
+ typeof crypto !== "undefined" &&
1757
+ typeof crypto.randomUUID === "function"
1758
+ ) {
1759
+ uuid = crypto.randomUUID();
1760
+ } else if (
1761
+ typeof crypto !== "undefined" &&
1762
+ typeof crypto.getRandomValues === "function"
1763
+ ) {
1764
+ const bytes = new Uint8Array(16);
1765
+ crypto.getRandomValues(bytes);
1766
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
1767
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
1768
+ const hex = Array.from(bytes).map((b) => b.toString(16).padStart(2, "0"));
1769
+ 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("")}`;
1770
+ } else {
1771
+ let d = new Date().getTime();
1772
+ uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
1773
+ const r = (d % 16) | 0;
1774
+ d = (d - r) / 16 || new Date().getTime();
1775
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
1776
+ });
1777
+ }
1778
+
1779
+ // CSS selectors require IDs starting with a letter; replace a leading digit with 'a'.
1780
+ return /^[0-9]/.test(uuid) ? `a${uuid.slice(1)}` : uuid;
1781
+ }
1782
+
1741
1783
  /* eslint-disable line-comment-position, no-inline-comments */
1742
1784
 
1743
1785
 
@@ -2756,7 +2798,7 @@ class AuroFloatingUI {
2756
2798
 
2757
2799
  this.id = element.getAttribute("id");
2758
2800
  if (!this.id) {
2759
- this.id = window.crypto.randomUUID();
2801
+ this.id = generateUUID();
2760
2802
  element.setAttribute("id", this.id);
2761
2803
  }
2762
2804
 
@@ -3801,7 +3843,7 @@ class AuroHelpText extends LitElement {
3801
3843
  }
3802
3844
  }
3803
3845
 
3804
- var formkitVersion = '202609021913';
3846
+ var formkitVersion = '202609030018';
3805
3847
 
3806
3848
  /**
3807
3849
  * AuroElement is the shared base class for layout-aware Auro form components.