@gov-design-system-ce/components 4.6.3 → 4.6.4

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 (218) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/gov-banner.cjs.entry.js +3 -3
  4. package/dist/cjs/gov-banner.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gov-banner.entry.cjs.js.map +1 -1
  6. package/dist/cjs/gov-flex_3.cjs.entry.js +1 -1
  7. package/dist/cjs/gov-form-autocomplete.cjs.entry.js +67 -23
  8. package/dist/cjs/gov-form-autocomplete.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gov-form-autocomplete.entry.cjs.js.map +1 -1
  10. package/dist/cjs/gov-form-file.cjs.entry.js +32 -3
  11. package/dist/cjs/gov-form-file.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gov-form-file.entry.cjs.js.map +1 -1
  13. package/dist/cjs/gov-form-search.cjs.entry.js +1 -1
  14. package/dist/cjs/gov-form-search.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gov-form-search.entry.cjs.js.map +1 -1
  16. package/dist/cjs/gov-form-select.cjs.entry.js +8 -15
  17. package/dist/cjs/gov-form-select.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gov-form-select.entry.cjs.js.map +1 -1
  19. package/dist/cjs/gov-tooltip.gov-tooltip-content.entry.cjs.js.map +1 -1
  20. package/dist/cjs/gov-tooltip_2.cjs.entry.js +34 -9
  21. package/dist/cjs/gov-tooltip_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gov-wizard-item.cjs.entry.js +2 -2
  23. package/dist/cjs/gov-wizard.cjs.entry.js +1 -1
  24. package/dist/cjs/index-BEF5cZxd.js +4 -4
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/collection/components/gov-banner/gov-banner.js +4 -4
  27. package/dist/collection/components/gov-banner/gov-banner.js.map +1 -1
  28. package/dist/collection/components/gov-form/autocomplete/autocomplete.utils.js +14 -0
  29. package/dist/collection/components/gov-form/autocomplete/autocomplete.utils.js.map +1 -0
  30. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js +76 -22
  31. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js.map +1 -1
  32. package/dist/collection/components/gov-form/file/gov-form-file.js +34 -3
  33. package/dist/collection/components/gov-form/file/gov-form-file.js.map +1 -1
  34. package/dist/collection/components/gov-form/search/gov-form-search.js +2 -2
  35. package/dist/collection/components/gov-form/search/gov-form-search.js.map +1 -1
  36. package/dist/collection/components/gov-form/select/gov-form-select.js +8 -15
  37. package/dist/collection/components/gov-form/select/gov-form-select.js.map +1 -1
  38. package/dist/collection/components/gov-tooltip/gov-tooltip-content.js +22 -1
  39. package/dist/collection/components/gov-tooltip/gov-tooltip-content.js.map +1 -1
  40. package/dist/collection/components/gov-tooltip/gov-tooltip.js +31 -8
  41. package/dist/collection/components/gov-tooltip/gov-tooltip.js.map +1 -1
  42. package/dist/collection/components/gov-wizard/gov-wizard-item.js +2 -2
  43. package/dist/collection/components/gov-wizard/gov-wizard.js +1 -1
  44. package/dist/components/gov-accordion-item.js +1 -1
  45. package/dist/components/gov-accordion.js +1 -1
  46. package/dist/components/gov-attachments-item.js +1 -1
  47. package/dist/components/gov-attachments.js +1 -1
  48. package/dist/components/gov-backdrop.js +1 -1
  49. package/dist/components/gov-banner.js +1 -1
  50. package/dist/components/gov-banner.js.map +1 -1
  51. package/dist/components/gov-blockquote.js +1 -1
  52. package/dist/components/gov-breadcrumbs.js +1 -1
  53. package/dist/components/gov-breadcrumbs.js.map +1 -1
  54. package/dist/components/gov-button.js +1 -1
  55. package/dist/components/gov-card.js +1 -1
  56. package/dist/components/gov-chip.js +1 -1
  57. package/dist/components/gov-collapsible.js +1 -1
  58. package/dist/components/gov-collapsible.js.map +1 -1
  59. package/dist/components/gov-container.js +1 -1
  60. package/dist/components/gov-control-group.js +1 -1
  61. package/dist/components/gov-cookiebar.js +1 -1
  62. package/dist/components/gov-dialog.js +1 -1
  63. package/dist/components/gov-dropdown.js +1 -1
  64. package/dist/components/gov-empty.js +1 -1
  65. package/dist/components/gov-error-code.js +1 -1
  66. package/dist/components/gov-flex.js +1 -1
  67. package/dist/components/gov-form-autocomplete.js +1 -1
  68. package/dist/components/gov-form-checkbox-group.js +1 -1
  69. package/dist/components/gov-form-checkbox.js +1 -1
  70. package/dist/components/gov-form-control.js +1 -1
  71. package/dist/components/gov-form-file.js +1 -1
  72. package/dist/components/gov-form-file.js.map +1 -1
  73. package/dist/components/gov-form-group.js +1 -1
  74. package/dist/components/gov-form-input.js +1 -1
  75. package/dist/components/gov-form-message.js +1 -1
  76. package/dist/components/gov-form-multi-select.js +1 -1
  77. package/dist/components/gov-form-multi-select.js.map +1 -1
  78. package/dist/components/gov-form-radio-group.js +1 -1
  79. package/dist/components/gov-form-radio.js +1 -1
  80. package/dist/components/gov-form-range.js +1 -1
  81. package/dist/components/gov-form-range.js.map +1 -1
  82. package/dist/components/gov-form-search.js +1 -1
  83. package/dist/components/gov-form-search.js.map +1 -1
  84. package/dist/components/gov-form-select.js +1 -1
  85. package/dist/components/gov-form-switch.js +1 -1
  86. package/dist/components/gov-grid-item.js +1 -1
  87. package/dist/components/gov-grid.js +1 -1
  88. package/dist/components/gov-icon.js +1 -1
  89. package/dist/components/gov-infobar.js +1 -1
  90. package/dist/components/gov-layout-column.js +1 -1
  91. package/dist/components/gov-layout.js +1 -1
  92. package/dist/components/gov-link.js +1 -1
  93. package/dist/components/gov-loading.js +1 -1
  94. package/dist/components/gov-message.js +1 -1
  95. package/dist/components/gov-pagination.js +1 -1
  96. package/dist/components/gov-skeleton.js +1 -1
  97. package/dist/components/gov-spacer.js +1 -1
  98. package/dist/components/gov-stepper-item.js +1 -1
  99. package/dist/components/gov-stepper.js +1 -1
  100. package/dist/components/gov-tabs-item.js +1 -1
  101. package/dist/components/gov-tabs.js +1 -1
  102. package/dist/components/gov-tag.js +1 -1
  103. package/dist/components/gov-theme-switch.js +1 -1
  104. package/dist/components/gov-tile.js +1 -1
  105. package/dist/components/gov-toast.js +1 -1
  106. package/dist/components/gov-tooltip-content.js +1 -1
  107. package/dist/components/gov-tooltip.js +1 -1
  108. package/dist/components/gov-wizard-item.js +1 -1
  109. package/dist/components/gov-wizard.js +1 -1
  110. package/dist/components/{p-DKo9A5gq.js → p-BHRF-5cf.js} +2 -2
  111. package/dist/components/{p-9imLQpxb.js → p-BSr8e18S.js} +2 -2
  112. package/dist/components/{p-BNnuBQvo.js → p-BxS4InzB.js} +2 -2
  113. package/dist/components/{p-CfaJM4SA.js → p-CMmyR4-k.js} +2 -2
  114. package/dist/components/{p-B0KFtEn3.js → p-CU0plGZP.js} +2 -2
  115. package/dist/components/{p-BrdXh0mI.js → p-CXPP9vec.js} +2 -2
  116. package/dist/components/{p-djqfSbq-.js → p-C_URF9Su.js} +2 -2
  117. package/dist/components/{p-yqJEurSE.js → p-CnKqUwf9.js} +2 -2
  118. package/dist/components/p-DEthsMuE.js +2 -0
  119. package/dist/components/p-DEthsMuE.js.map +1 -0
  120. package/dist/components/{p-Bv5L0j6n.js → p-DN5pb9xA.js} +2 -2
  121. package/dist/components/{p-DesycS6d.js → p-iTwUkISB.js} +2 -2
  122. package/dist/components/{p-BZTY3MxF.js → p-ibUK7mfI.js} +2 -2
  123. package/dist/components/p-keC6luw7.js +2 -0
  124. package/dist/components/p-keC6luw7.js.map +1 -0
  125. package/dist/components/p-pJ_vPAO0.js +2 -0
  126. package/dist/components/p-pJ_vPAO0.js.map +1 -0
  127. package/dist/components/p-yIpIIG5A.js +2 -0
  128. package/dist/components/p-yIpIIG5A.js.map +1 -0
  129. package/dist/core/core.css +47 -47
  130. package/dist/core/core.esm.js +1 -1
  131. package/dist/core/gov-banner.entry.esm.js.map +1 -1
  132. package/dist/core/gov-form-autocomplete.entry.esm.js.map +1 -1
  133. package/dist/core/gov-form-file.entry.esm.js.map +1 -1
  134. package/dist/core/gov-form-search.entry.esm.js.map +1 -1
  135. package/dist/core/gov-form-select.entry.esm.js.map +1 -1
  136. package/dist/core/gov-tooltip.gov-tooltip-content.entry.esm.js.map +1 -1
  137. package/dist/core/{p-4da8ac1d.entry.js → p-10991f00.entry.js} +2 -2
  138. package/dist/core/p-19300834.entry.js +2 -0
  139. package/dist/core/{p-bd389bfd.entry.js.map → p-19300834.entry.js.map} +1 -1
  140. package/dist/core/p-4e2faea7.entry.js +2 -0
  141. package/dist/core/p-4e2faea7.entry.js.map +1 -0
  142. package/dist/core/p-7f513718.entry.js +2 -0
  143. package/dist/core/p-7f513718.entry.js.map +1 -0
  144. package/dist/core/p-8d47e346.entry.js +2 -0
  145. package/dist/core/p-8d47e346.entry.js.map +1 -0
  146. package/dist/core/p-DQuL1Twl.js.map +1 -1
  147. package/dist/core/p-afe254cb.entry.js +2 -0
  148. package/dist/core/p-afe254cb.entry.js.map +1 -0
  149. package/dist/core/{p-469f14db.entry.js → p-bec959c4.entry.js} +2 -2
  150. package/dist/core/p-d9d29f50.entry.js +2 -0
  151. package/dist/core/p-d9d29f50.entry.js.map +1 -0
  152. package/dist/core/{p-4d365881.entry.js → p-f75ad657.entry.js} +2 -2
  153. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
  154. package/dist/esm/core.js +1 -1
  155. package/dist/esm/gov-banner.entry.js +3 -3
  156. package/dist/esm/gov-banner.entry.js.map +1 -1
  157. package/dist/esm/gov-flex_3.entry.js +1 -1
  158. package/dist/esm/gov-form-autocomplete.entry.js +68 -24
  159. package/dist/esm/gov-form-autocomplete.entry.js.map +1 -1
  160. package/dist/esm/gov-form-file.entry.js +32 -3
  161. package/dist/esm/gov-form-file.entry.js.map +1 -1
  162. package/dist/esm/gov-form-search.entry.js +1 -1
  163. package/dist/esm/gov-form-search.entry.js.map +1 -1
  164. package/dist/esm/gov-form-select.entry.js +8 -15
  165. package/dist/esm/gov-form-select.entry.js.map +1 -1
  166. package/dist/esm/gov-tooltip.gov-tooltip-content.entry.js.map +1 -1
  167. package/dist/esm/gov-tooltip_2.entry.js +34 -9
  168. package/dist/esm/gov-tooltip_2.entry.js.map +1 -1
  169. package/dist/esm/gov-wizard-item.entry.js +2 -2
  170. package/dist/esm/gov-wizard.entry.js +1 -1
  171. package/dist/esm/index-ClISz4NF.js +4 -4
  172. package/dist/esm/loader.js +1 -1
  173. package/dist/hydrate/index.js +154 -60
  174. package/dist/hydrate/index.mjs +154 -60
  175. package/dist/types/Users/jf/dev/designSystem/gov-design-system/packages/core/.stencil/packages/core/stencil.config.d.ts +2 -0
  176. package/dist/types/components/gov-form/autocomplete/autocomplete.utils.d.ts +2 -0
  177. package/dist/types/components/gov-form/autocomplete/gov-form-autocomplete.d.ts +9 -0
  178. package/dist/types/components/gov-form/file/gov-form-file.d.ts +1 -0
  179. package/dist/types/components/gov-form/select/gov-form-select.d.ts +1 -1
  180. package/dist/types/components/gov-tooltip/gov-tooltip-content.d.ts +4 -0
  181. package/dist/types/components/gov-tooltip/gov-tooltip.d.ts +3 -0
  182. package/dist/types/components.d.ts +20 -2
  183. package/package.json +2 -2
  184. package/readme.md +9 -0
  185. package/dist/components/p-DFu5UVoP.js +0 -2
  186. package/dist/components/p-DFu5UVoP.js.map +0 -1
  187. package/dist/components/p-DMVQRz4f.js +0 -2
  188. package/dist/components/p-DMVQRz4f.js.map +0 -1
  189. package/dist/components/p-UDT3DloZ.js +0 -2
  190. package/dist/components/p-UDT3DloZ.js.map +0 -1
  191. package/dist/components/p-x3w8Mun_.js +0 -2
  192. package/dist/components/p-x3w8Mun_.js.map +0 -1
  193. package/dist/core/p-11fc3899.entry.js +0 -2
  194. package/dist/core/p-11fc3899.entry.js.map +0 -1
  195. package/dist/core/p-33b462c9.entry.js +0 -2
  196. package/dist/core/p-33b462c9.entry.js.map +0 -1
  197. package/dist/core/p-3e5ae012.entry.js +0 -2
  198. package/dist/core/p-3e5ae012.entry.js.map +0 -1
  199. package/dist/core/p-bd389bfd.entry.js +0 -2
  200. package/dist/core/p-c21bc8f9.entry.js +0 -2
  201. package/dist/core/p-c21bc8f9.entry.js.map +0 -1
  202. package/dist/core/p-def34832.entry.js +0 -2
  203. package/dist/core/p-def34832.entry.js.map +0 -1
  204. package/dist/types/work/packages/core/.stencil/packages/core/stencil.config.d.ts +0 -2
  205. /package/dist/components/{p-DKo9A5gq.js.map → p-BHRF-5cf.js.map} +0 -0
  206. /package/dist/components/{p-9imLQpxb.js.map → p-BSr8e18S.js.map} +0 -0
  207. /package/dist/components/{p-BNnuBQvo.js.map → p-BxS4InzB.js.map} +0 -0
  208. /package/dist/components/{p-CfaJM4SA.js.map → p-CMmyR4-k.js.map} +0 -0
  209. /package/dist/components/{p-B0KFtEn3.js.map → p-CU0plGZP.js.map} +0 -0
  210. /package/dist/components/{p-BrdXh0mI.js.map → p-CXPP9vec.js.map} +0 -0
  211. /package/dist/components/{p-djqfSbq-.js.map → p-C_URF9Su.js.map} +0 -0
  212. /package/dist/components/{p-yqJEurSE.js.map → p-CnKqUwf9.js.map} +0 -0
  213. /package/dist/components/{p-Bv5L0j6n.js.map → p-DN5pb9xA.js.map} +0 -0
  214. /package/dist/components/{p-DesycS6d.js.map → p-iTwUkISB.js.map} +0 -0
  215. /package/dist/components/{p-BZTY3MxF.js.map → p-ibUK7mfI.js.map} +0 -0
  216. /package/dist/core/{p-4da8ac1d.entry.js.map → p-10991f00.entry.js.map} +0 -0
  217. /package/dist/core/{p-469f14db.entry.js.map → p-bec959c4.entry.js.map} +0 -0
  218. /package/dist/core/{p-4d365881.entry.js.map → p-f75ad657.entry.js.map} +0 -0
@@ -3435,7 +3435,7 @@ class GovBanner {
3435
3435
  /**
3436
3436
  * Banner’s foreground
3437
3437
  */
3438
- this.foreground = BannerForeground.LOGO;
3438
+ this.foreground = BannerForeground.IMAGE;
3439
3439
  /**
3440
3440
  * XL Banner’s text color
3441
3441
  */
@@ -3461,10 +3461,10 @@ class GovBanner {
3461
3461
  this.validateTextColor(this.textColor);
3462
3462
  }
3463
3463
  render() {
3464
- return (hAsync(Host, Object.assign({ key: '3e20f606dab5e32411afc2dbf2bc94add284bed4', class: this.h.classes(BannerClass.root), role: "region", size: this.size }, (this.size !== "xl" ? {
3464
+ return (hAsync(Host, Object.assign({ key: '142c906194083f6c186d1f1d9033c4f2c9be9bff', class: this.h.classes(BannerClass.root), role: "region", size: this.size }, (this.size !== "xl" ? {
3465
3465
  background: this.background,
3466
3466
  foreground: this.foreground
3467
- } : { 'text-color': this.textColor })), hAsync("div", { key: '334c429dac2fcde8b9bbaa223ec5111ba2ea062f' }, hAsync("div", { key: '900e59f605db3ddb9a0999ee6d802aa73d0f4cb3', class: BannerClass.content }, hAsync("slot", { key: 'b5bbcc66a5d7154e22c73c78001c1e2609c034cc', name: "headline" }), hAsync("slot", { key: '3bc1675de3e41360eebd57fcc0880ede40053c3f' })), this.h.hasSlot('button') && (hAsync("slot", { key: '9b85a1240ae9a28c8297085f88674006a729cc72', name: "button" }))), hAsync("slot", { key: 'e2b1423f67a81d8188d68b1fbfdad1a88b3893cd', name: "image" })));
3467
+ } : { 'text-color': this.textColor })), hAsync("div", { key: '0b52a8859b6cdcd92d0f5e97b460a3e0a899bd44' }, hAsync("div", { key: 'a36ed5ad57c878d70770ccfeccd172749a555b22', class: BannerClass.content }, hAsync("slot", { key: '57f52bfb0189450e77c00f4d9904712e555a3125', name: "headline" }), hAsync("slot", { key: '91629f1bf0605ae28d694d044d19bbef9ebb69da' })), this.h.hasSlot('button') && (hAsync("slot", { key: '458a59c73e9bdf02d6cdb1e8c5caea0dcfec526a', name: "button" }))), hAsync("slot", { key: 'f1d60077313455ed78c78b56c7741b4b593cf7cc', name: "image" })));
3468
3468
  }
3469
3469
  get host() { return getElement(this); }
3470
3470
  static get watchers() { return {
@@ -4759,6 +4759,19 @@ const propsValueToArray = (value) => {
4759
4759
  return [];
4760
4760
  };
4761
4761
 
4762
+ const normalize = (value) => typeof value === 'string' ? removeDiacritics(value).toLowerCase() : '';
4763
+ const filterAutocompleteOptions = (options, query, nameKey, maxOptions) => {
4764
+ const source = Array.isArray(options) ? options : [];
4765
+ const normalizedQuery = normalize(query);
4766
+ const matches = normalizedQuery.length === 0
4767
+ ? source
4768
+ : source.filter(item => {
4769
+ const text = item === null || item === void 0 ? void 0 : item[nameKey];
4770
+ return typeof text === 'string' && normalize(text).includes(normalizedQuery);
4771
+ });
4772
+ return Number.isInteger(maxOptions) && maxOptions > 0 ? matches.slice(0, maxOptions) : matches;
4773
+ };
4774
+
4762
4775
  class GovFormAutocomplete {
4763
4776
  constructor(hostRef) {
4764
4777
  registerInstance(this, hostRef);
@@ -4766,6 +4779,7 @@ class GovFormAutocomplete {
4766
4779
  this.govBlur = createEvent(this, "gov-blur");
4767
4780
  this.govInput = createEvent(this, "gov-input");
4768
4781
  this.govSelect = createEvent(this, "gov-select");
4782
+ this.fullOptions = [];
4769
4783
  this.templateResolver = item => item[this.nameKey];
4770
4784
  /**
4771
4785
  * Value of input
@@ -4793,6 +4807,11 @@ class GovFormAutocomplete {
4793
4807
  * Minimum length (number of characters) of value
4794
4808
  */
4795
4809
  this.minlength = 3;
4810
+ /**
4811
+ * Maximum number of items shown from a static `options` list (0 = unlimited).
4812
+ * Applies only when no async search callback is set.
4813
+ */
4814
+ this.maxOptions = 10;
4796
4815
  /**
4797
4816
  * Input throttle in milliseconds
4798
4817
  */
@@ -4805,13 +4824,33 @@ class GovFormAutocomplete {
4805
4824
  this.arrowCounter = -1;
4806
4825
  this.list = [];
4807
4826
  this.inheritedAttributes = {};
4827
+ this.emitAndSearch = (e) => {
4828
+ this.govInput.emit({
4829
+ originalEvent: e,
4830
+ component: FormAutocompleteClass.root,
4831
+ value: this.value,
4832
+ selected: null,
4833
+ });
4834
+ this.doSearch();
4835
+ };
4836
+ this.onInputHandler = (e) => {
4837
+ e.stopPropagation();
4838
+ this.value = e.detail.value;
4839
+ this.debouncedSearch(e);
4840
+ };
4808
4841
  this.listBoxId = createID('GovListBox');
4809
4842
  }
4810
4843
  validateSize(newValue) {
4811
4844
  validateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root);
4812
4845
  }
4813
4846
  watchOptions(newValue) {
4814
- this.setOptions(propsValueToArray(newValue)).catch();
4847
+ this.fullOptions = propsValueToArray(newValue);
4848
+ if (this.searchCallback) {
4849
+ this.setOptions(this.fullOptions).catch();
4850
+ }
4851
+ else {
4852
+ this.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions);
4853
+ }
4815
4854
  }
4816
4855
  onArrowUp() {
4817
4856
  if (this.arrowCounter > 0) {
@@ -4835,13 +4874,13 @@ class GovFormAutocomplete {
4835
4874
  }
4836
4875
  }
4837
4876
  doSearch() {
4838
- if (Number.isInteger(this.minlength) && this.isValueAccepted === false && this.minlength) {
4839
- this.list = [];
4840
- this.arrowCounter = -1;
4841
- this.processing = false;
4842
- return;
4843
- }
4844
4877
  if (this.searchCallback) {
4878
+ if (Number.isInteger(this.minlength) && this.isValueAccepted === false && this.minlength) {
4879
+ this.list = [];
4880
+ this.arrowCounter = -1;
4881
+ this.processing = false;
4882
+ return;
4883
+ }
4845
4884
  this.processing = true;
4846
4885
  this.searchCallback(this.value)
4847
4886
  .then(response => (this.list = response))
@@ -4850,11 +4889,13 @@ class GovFormAutocomplete {
4850
4889
  this.arrowCounter = -1;
4851
4890
  this.processing = false;
4852
4891
  });
4892
+ return;
4853
4893
  }
4894
+ this.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions);
4895
+ this.arrowCounter = -1;
4854
4896
  }
4855
4897
  clearList() {
4856
- const areOptions = propsValueToArray(this.options);
4857
- if (areOptions.length === 0) {
4898
+ if (this.fullOptions.length === 0) {
4858
4899
  this.list = [];
4859
4900
  }
4860
4901
  }
@@ -4875,6 +4916,14 @@ class GovFormAutocomplete {
4875
4916
  componentWillLoad() {
4876
4917
  this.validateSize(this.size);
4877
4918
  this.inheritedAttributes = inheritAriaAttributes(this.host);
4919
+ this.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime);
4920
+ this.fullOptions = propsValueToArray(this.options);
4921
+ if (!this.searchCallback) {
4922
+ this.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions);
4923
+ }
4924
+ }
4925
+ watchThrottleTime() {
4926
+ this.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime);
4878
4927
  }
4879
4928
  disconnectedCallback() {
4880
4929
  var _a;
@@ -4885,7 +4934,7 @@ class GovFormAutocomplete {
4885
4934
  this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attributeName]: newValue });
4886
4935
  }
4887
4936
  render() {
4888
- return (hAsync(Host, { key: '531610863e3752a4e07f0b6c3b946c475a6420c6', class: FormAutocompleteClass.root, size: this.size }, hAsync("gov-form-input", Object.assign({ key: '82f74fc8139c85cddb4e206c5d82286107135fff', placeholder: this.placeholder, name: this.name, disabled: this.disabled, readonly: this.readonly, autocomplete: false, size: this.size, required: this.required, invalid: this.invalid, success: this.success, role: 'searchbox', value: this.value, minlength: this.minlength, maxlength: this.maxlength, "on-gov-input": throttle(this.onInputHandler.bind(this), this.throttleTime), "on-gov-keyup": this.onKeyUpHandler.bind(this), "on-gov-keydown": this.onKeyDownHandler.bind(this), "on-gov-focus": this.onFocusHandler.bind(this), "on-gov-blur": this.onBlurHandler.bind(this) }, this.inheritedAttributes, { "aria-autocomplete": 'list', "aria-owns": [this.listBoxId, this.inheritedAttributes['aria-owns']].join(' '), "aria-expanded": booleanString(this.list.length && this.focused ? true : false), ref: el => (this.inputRef = el) }), hAsync("slot", { key: 'd27f897ff5c405adc14640a7e8508319df7b5ff9', name: "validation-icon" }), hAsync("slot", { key: 'da5ec2879f9c6ba7c57a68cc2515539016a6ec43', name: "icon-end" })), hAsync("ul", { key: 'cbb3514f12fe3c506d7bcf2c3aa86b78303ac398', class: FormAutocompleteClass.list, role: 'listbox', "aria-hidden": toBoolAttr(!this.focused), hidden: !this.focused, id: this.listBoxId, ref: el => (this.listRef = el) }, this.focused && this.list.length === 0 && this.processing === false && this.isValueAccepted && this.messageEmpty ? (hAsync("li", { class: FormAutocompleteClass.empty }, this.messageEmpty)) : null, this.focused && this.processing === true && this.isValueAccepted ? (hAsync("li", { class: FormAutocompleteClass.loading }, hAsync("gov-skeleton", { size: "m" }))) : null, this.focused ? this.list.map((item, index) => {
4937
+ return (hAsync(Host, { key: '0cdbf770359115b24432e9d533b4e17ab2c65e18', class: FormAutocompleteClass.root, size: this.size }, hAsync("gov-form-input", Object.assign({ key: '5724ed153e3f2384725badbafdb0c19e67b69538', placeholder: this.placeholder, name: this.name, disabled: this.disabled, readonly: this.readonly, autocomplete: false, size: this.size, required: this.required, invalid: this.invalid, success: this.success, role: 'searchbox', value: this.value, minlength: this.minlength, maxlength: this.maxlength, "on-gov-input": this.onInputHandler, "on-gov-keyup": this.onKeyUpHandler.bind(this), "on-gov-keydown": this.onKeyDownHandler.bind(this), "on-gov-focus": this.onFocusHandler.bind(this), "on-gov-blur": this.onBlurHandler.bind(this) }, this.inheritedAttributes, { "aria-autocomplete": 'list', "aria-owns": [this.listBoxId, this.inheritedAttributes['aria-owns']].join(' '), "aria-expanded": booleanString(this.list.length && this.focused ? true : false), ref: el => (this.inputRef = el) }), hAsync("slot", { key: 'ab6f37982f3d13adc2473a744b5697ac8bc651f5', name: "validation-icon" }), hAsync("slot", { key: '1961a029eceee169b5be12fa4ba8c2e9072bb9de', name: "icon-end" })), hAsync("ul", { key: '61b9b6929be4816e93e1b5fb778c3861b4f8631b', class: FormAutocompleteClass.list, role: 'listbox', "aria-hidden": toBoolAttr(!this.focused), hidden: !this.focused, id: this.listBoxId, ref: el => (this.listRef = el) }, this.focused && this.list.length === 0 && this.processing === false && (this.isValueAccepted || (!this.searchCallback && this.fullOptions.length > 0)) && this.messageEmpty ? (hAsync("li", { class: FormAutocompleteClass.empty }, this.messageEmpty)) : null, this.focused && this.processing === true && this.isValueAccepted ? (hAsync("li", { class: FormAutocompleteClass.loading }, hAsync("gov-skeleton", { size: "m" }))) : null, this.focused ? this.list.map((item, index) => {
4889
4938
  const isSelected = this.arrowCounter === index;
4890
4939
  return (hAsync("li", { class: FormAutocompleteClass.item, innerHTML: this.templateResolver(item, isSelected), role: 'option', "aria-posinset": index, tabindex: isSelected ? 0 : -1, "aria-setsize": this.list.length, onTouchStart: (e) => this.onSelectHandler(e, index), onMouseDown: (e) => this.onSelectHandler(e, index), "aria-selected": toBoolAttr(isSelected) }, hAsync("slot", { name: "list-item-left" }), hAsync("slot", { name: "list-item-right" })));
4891
4940
  }) : null)));
@@ -4893,7 +4942,12 @@ class GovFormAutocomplete {
4893
4942
  onFocusHandler(e) {
4894
4943
  this.focused = true;
4895
4944
  this.arrowCounter = -1;
4896
- if (this.isValueAccepted && this.searchCallback) {
4945
+ if (this.searchCallback) {
4946
+ if (this.isValueAccepted) {
4947
+ this.doSearch();
4948
+ }
4949
+ }
4950
+ else {
4897
4951
  this.doSearch();
4898
4952
  }
4899
4953
  e.stopPropagation();
@@ -4916,17 +4970,6 @@ class GovFormAutocomplete {
4916
4970
  selected: null,
4917
4971
  });
4918
4972
  }
4919
- onInputHandler(e) {
4920
- this.value = e.target.value;
4921
- e.stopPropagation();
4922
- this.govInput.emit({
4923
- originalEvent: e,
4924
- component: FormAutocompleteClass.root,
4925
- value: this.value,
4926
- selected: null,
4927
- });
4928
- this.doSearch();
4929
- }
4930
4973
  onSelectHandler(e, index = -1) {
4931
4974
  let selected = null;
4932
4975
  if (index > -1) {
@@ -5020,7 +5063,8 @@ class GovFormAutocomplete {
5020
5063
  get host() { return getElement(this); }
5021
5064
  static get watchers() { return {
5022
5065
  "size": ["validateSize"],
5023
- "options": ["watchOptions"]
5066
+ "options": ["watchOptions"],
5067
+ "throttleTime": ["watchThrottleTime"]
5024
5068
  }; }
5025
5069
  static get cmpMeta() { return {
5026
5070
  "$flags$": 4,
@@ -5040,6 +5084,7 @@ class GovFormAutocomplete {
5040
5084
  "invalid": [4],
5041
5085
  "minlength": [2],
5042
5086
  "maxlength": [2],
5087
+ "maxOptions": [2, "max-options"],
5043
5088
  "throttleTime": [2, "throttle-time"],
5044
5089
  "messageEmpty": [1, "message-empty"],
5045
5090
  "focused": [32],
@@ -5690,7 +5735,10 @@ class GovFormFile {
5690
5735
  }
5691
5736
  validateFiles(files) {
5692
5737
  let filesBuffer = [];
5693
- Array.from(files).map(file => {
5738
+ if (!this.multiple && this.displayAttachments) {
5739
+ this.files = [];
5740
+ }
5741
+ Array.from(files).forEach(file => {
5694
5742
  const isFile = this.files.find(item => item.file.name === file.name && item.file.size === file.size) || null;
5695
5743
  if (isFile === null || this.ignoreFileDuplicationCheck) {
5696
5744
  const isSizeValid = typeof this.maxFileSize === "number" && this.maxFileSize > 0 ? fileSizeValidation(file, this.maxFileSize) : true;
@@ -5713,6 +5761,9 @@ class GovFormFile {
5713
5761
  });
5714
5762
  }
5715
5763
  });
5764
+ if (this.displayAttachments) {
5765
+ this.syncNativeInputFiles();
5766
+ }
5716
5767
  this.govFiles.emit({
5717
5768
  component: FormFileClass.root,
5718
5769
  files: filesBuffer.length ? filesBuffer : this.files,
@@ -5721,6 +5772,25 @@ class GovFormFile {
5721
5772
  this.reset().finally();
5722
5773
  }
5723
5774
  }
5775
+ // Keep native <input type="file"> in sync with the visible attachments list so
5776
+ // that a native form submit / FormData carries exactly the files shown in the UI.
5777
+ // Invalid items (wrong type or oversize) are intentionally excluded.
5778
+ syncNativeInputFiles() {
5779
+ if (!this.inputRef || typeof DataTransfer === "undefined") {
5780
+ return;
5781
+ }
5782
+ try {
5783
+ const dt = new DataTransfer();
5784
+ this.files
5785
+ .filter(item => item.acceptValid === true && item.sizeValid === true)
5786
+ .forEach(item => dt.items.add(item.file));
5787
+ this.inputRef.files = dt.files;
5788
+ }
5789
+ catch (e) {
5790
+ // Safari < 14.1 / older browsers may reject assigning to .files; nothing safe to fall back to.
5791
+ if (typeof process !== "undefined" && process.env && "production" !== "production") ;
5792
+ }
5793
+ }
5724
5794
  componentDidLoad() {
5725
5795
  this.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {
5726
5796
  this.onAriaAttributeChange(attributeName, newValue);
@@ -5744,7 +5814,7 @@ class GovFormFile {
5744
5814
  this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attributeName]: newValue });
5745
5815
  }
5746
5816
  render() {
5747
- return (hAsync(Host, { key: '0f005cd699699df5d67c1ae5a1ce69bcbe14df08', class: this.h.classes([FormFileClass.root]), invalid: toBoolAttrIfDefined(this.invalid), expanded: toBoolAttrIfDefined(this.expanded) }, hAsync("div", { key: '85de8e3bbbed08f63a93b874799b2e76311320dd', class: FormFileClass.area, ref: el => (this.areaRef = el) }, hAsync("slot", { key: 'd67d074f20d899d81c37118eeb872eace16be983' }), hAsync("input", Object.assign({ key: 'b0be06c28155cd0bfd13aa6926f05718fe58ca2d', class: FormFileClass.input, ref: el => (this.inputRef = el), id: this.identifier || this.fileId, type: "file", name: this.name, accept: this.accept, multiple: this.multiple, onChange: this.onChangeHandler.bind(this), onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, disabled: this.disabled }, this.inheritedAttributes, { "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-disabled": toBoolAttrIfDefined(this.disabled) })), hAsync("div", { key: 'bf27e1a3806a4334ec9476171c64a5dfe96a1040', class: FormFileClass.inputFocus })), this.h.hasSlot("attachments") ? (hAsync("div", { class: FormFileClass.attachments }, hAsync("slot", { name: "attachments" }))) : null, this.files.length && this.displayAttachments ? (hAsync("div", { class: FormFileClass.attachments }, hAsync("gov-attachments", { label: this.accessibleAttachmentsLabel, "accessible-label": this.accessibleAttachmentsLabel }, this.files.map(item => (hAsync("gov-attachments-item", { "accessible-remove-labelledby": item.id, "on-gov-remove": () => this.onRemoveFileHandler(item) }, item.file.name, hAsync("span", { slot: "name" }, item.file.name), item.acceptValid === false ? (hAsync("gov-form-message", { slot: "message", color: "error" }, hAsync("gov-icon", { slot: "icon", name: "exclamation-triangle-fill", type: "components" }), item.acceptValid === false ? this.errorAccept : null)) : null, item.sizeValid === false ? (hAsync("gov-form-message", { slot: "message", color: "error" }, hAsync("gov-icon", { slot: "icon", name: "exclamation-triangle-fill", type: "components" }), this.errorSize.replace("{FILE_SIZE}", formatBytes(this.maxFileSize)))) : null, hAsync("span", { slot: "info" }, "(", formatBytes(item.file.size), ")"))))))) : null));
5817
+ return (hAsync(Host, { key: '6709aba5a796ccb9cf712dd5f962d5f903050d26', class: this.h.classes([FormFileClass.root]), invalid: toBoolAttrIfDefined(this.invalid), expanded: toBoolAttrIfDefined(this.expanded) }, hAsync("div", { key: '668f6959ca55220ed2543dbbeddeb98f1b6c19ba', class: FormFileClass.area, ref: el => (this.areaRef = el) }, hAsync("slot", { key: '5f12f12d074163b525e2200e23f61e6d0fb34c74' }), hAsync("input", Object.assign({ key: '7cf43884dad3c28be956b9897862ff5a1fa22e75', class: FormFileClass.input, ref: el => (this.inputRef = el), id: this.identifier || this.fileId, type: "file", name: this.name, accept: this.accept, multiple: this.multiple, onChange: this.onChangeHandler.bind(this), onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, disabled: this.disabled }, this.inheritedAttributes, { "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-disabled": toBoolAttrIfDefined(this.disabled) })), hAsync("div", { key: 'ec717f584bcd4d74416821736fb4bdcea517bc83', class: FormFileClass.inputFocus })), this.h.hasSlot("attachments") ? (hAsync("div", { class: FormFileClass.attachments }, hAsync("slot", { name: "attachments" }))) : null, this.files.length && this.displayAttachments ? (hAsync("div", { class: FormFileClass.attachments }, hAsync("gov-attachments", { label: this.accessibleAttachmentsLabel, "accessible-label": this.accessibleAttachmentsLabel }, this.files.map(item => (hAsync("gov-attachments-item", { "accessible-remove-labelledby": item.id, "on-gov-remove": () => this.onRemoveFileHandler(item) }, item.file.name, hAsync("span", { slot: "name" }, item.file.name), item.acceptValid === false ? (hAsync("gov-form-message", { slot: "message", color: "error" }, hAsync("gov-icon", { slot: "icon", name: "exclamation-triangle-fill", type: "components" }), item.acceptValid === false ? this.errorAccept : null)) : null, item.sizeValid === false ? (hAsync("gov-form-message", { slot: "message", color: "error" }, hAsync("gov-icon", { slot: "icon", name: "exclamation-triangle-fill", type: "components" }), this.errorSize.replace("{FILE_SIZE}", formatBytes(this.maxFileSize)))) : null, hAsync("span", { slot: "info" }, "(", formatBytes(item.file.size), ")"))))))) : null));
5748
5818
  }
5749
5819
  onRemoveFileHandler(file) {
5750
5820
  const index = this.files.findIndex(item => item.id === file.id);
@@ -5753,6 +5823,7 @@ class GovFormFile {
5753
5823
  const removeFile = this.files[index];
5754
5824
  files.splice(index, 1);
5755
5825
  this.files = [...files];
5826
+ this.syncNativeInputFiles();
5756
5827
  this.govRemoveFile.emit({
5757
5828
  component: FormFileClass.root,
5758
5829
  file: removeFile,
@@ -5797,7 +5868,10 @@ class GovFormFile {
5797
5868
  */
5798
5869
  async reset() {
5799
5870
  this.files = [];
5800
- this.inputRef.value = '';
5871
+ if (this.inputRef) {
5872
+ this.inputRef.value = '';
5873
+ this.syncNativeInputFiles();
5874
+ }
5801
5875
  }
5802
5876
  get host() { return getElement(this); }
5803
5877
  static get watchers() { return {
@@ -6936,19 +7010,19 @@ class GovFormSearch {
6936
7010
  this.color = 'neutral';
6937
7011
  }
6938
7012
  render() {
6939
- return (hAsync(Host, { key: '8694237120321b5cea6dbe4c4152edfde30228a1', class: FormSearchClass.root, color: this.color, size: this.size }, hAsync("slot", { key: '4c382e33221ff8b874a7f8544d94261298c3cf28', name: "input" }), hAsync("slot", { key: '3b56d19118f2b75964a9ed62ae2210e7705ba4a5', name: "button-erase" }), hAsync("slot", { key: 'c829a3df01bc53fab6b3022aac353ebe06b088db', name: "button" })));
7013
+ return (hAsync(Host, { key: 'c901368f70213c3be37b44b472002ce0872209d0', class: FormSearchClass.root, color: this.color, size: this.size }, hAsync("slot", { key: '4ca581f75ccd75f785f94c1f93500c914b129cc8', name: "input" }), hAsync("slot", { key: '10a34b30a9496b0d9a82b0baaf10b66ac5a2679f', name: "button-erase" }), hAsync("slot", { key: '2888491da6babe4e7586abdda1863850ed67f8a9', name: "button" })));
6940
7014
  }
6941
7015
  get host() { return getElement(this); }
6942
7016
  static get cmpMeta() { return {
6943
7017
  "$flags$": 4,
6944
7018
  "$tagName$": "gov-form-search",
6945
7019
  "$members$": {
6946
- "size": [1],
7020
+ "size": [513],
6947
7021
  "color": [513]
6948
7022
  },
6949
7023
  "$listeners$": undefined,
6950
7024
  "$lazyBundleId$": "-",
6951
- "$attrsToReflect$": [["color", "color"]]
7025
+ "$attrsToReflect$": [["size", "size"], ["color", "color"]]
6952
7026
  }; }
6953
7027
  }
6954
7028
 
@@ -6988,7 +7062,7 @@ class GovFormSelect {
6988
7062
  this.passControlAttrs();
6989
7063
  }
6990
7064
  watchValue() {
6991
- this.markSelectedValue();
7065
+ this.syncSelectValue();
6992
7066
  }
6993
7067
  passControlAttrs() {
6994
7068
  this.f.passAttrToControl('size', this.size);
@@ -7002,6 +7076,7 @@ class GovFormSelect {
7002
7076
  this.onAriaAttributeChange(attributeName, newValue);
7003
7077
  });
7004
7078
  this.attributeObserver.startObserving(ariaAttributes);
7079
+ this.syncSelectValue();
7005
7080
  }
7006
7081
  disconnectedCallback() {
7007
7082
  var _a;
@@ -7009,34 +7084,27 @@ class GovFormSelect {
7009
7084
  }
7010
7085
  componentWillLoad() {
7011
7086
  this.validateSize(this.size);
7012
- this.markSelectedValue();
7013
7087
  this.optionsState = propsValueToArray(this.options);
7014
7088
  this.inheritedAttributes = inheritAriaAttributes(this.host);
7015
7089
  }
7016
7090
  async componentDidRender() {
7017
7091
  this.passControlAttrs();
7018
7092
  this.f.passAttrToLabel('required', String(this.required));
7019
- tick(() => this.markSelectedValue());
7020
7093
  }
7021
7094
  onAriaAttributeChange(attributeName, newValue) {
7022
7095
  this.host.removeAttribute(attributeName);
7023
7096
  this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attributeName]: newValue });
7024
7097
  }
7025
- markSelectedValue() {
7026
- this.host.querySelectorAll('option').forEach((option) => {
7027
- if (option.value === this.value) {
7028
- option.setAttribute('selected', 'selected');
7029
- }
7030
- else {
7031
- option.removeAttribute('selected');
7032
- }
7033
- });
7098
+ syncSelectValue() {
7099
+ if (this.selectRef && this.value !== undefined && this.selectRef.value !== this.value) {
7100
+ this.selectRef.value = this.value;
7101
+ }
7034
7102
  }
7035
7103
  render() {
7036
- return (hAsync(Host, { key: '92b4679d9a9fb77628934ed90e00b1eafc593a3e', class: FormSelectClass.root, size: this.size }, this.h.hasSlot('prefix') && hAsync("slot", { key: 'b51835a8b6254898a064a41c75f95cc746d46d57', name: "prefix" }), hAsync("span", { key: '2324839a4c3821a46fcdace4755961a96216dadc', class: "element" }, hAsync("select", Object.assign({ key: 'df1fe5989b6d427c0f48d673f951a4b1f5f8b728', id: this.identifier || this.selectId, onFocus: this.onFocusHandler.bind(this), onChange: this.onChangeHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, name: this.name, disabled: this.disabled, ref: el => (this.selectRef = el) }, this.inheritedAttributes, { "aria-disabled": toBoolAttrIfDefined(this.disabled), "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid) }), hAsync("slot", { key: 'bc12463c981b174aa49a791f360d6001230c3fc4' }), Array.isArray(this.optionsState) && this.optionsState.map((option) => {
7104
+ return (hAsync(Host, { key: 'd29638f5868731a2324971d197dcd636364a4f6c', class: FormSelectClass.root, size: this.size }, this.h.hasSlot('prefix') && hAsync("slot", { key: '41cc14ee33022a4cf6d10c3d86c8915551221e94', name: "prefix" }), hAsync("span", { key: 'f9c167589fa81f0a060a13d9a31d16ab642d5ad2', class: "element" }, hAsync("select", Object.assign({ key: '2dd5c948ccc7b65674e7d7f730cb2c9567287668', id: this.identifier || this.selectId, onFocus: this.onFocusHandler.bind(this), onChange: this.onChangeHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, name: this.name, disabled: this.disabled, ref: el => (this.selectRef = el) }, this.inheritedAttributes, { "aria-disabled": toBoolAttrIfDefined(this.disabled), "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid) }), hAsync("slot", { key: 'f6f0b21c9e43e1216446bce09c57a757a40d7b7b' }), Array.isArray(this.optionsState) && this.optionsState.map((option) => {
7037
7105
  var _a;
7038
7106
  return (hAsync("option", { value: option.value, selected: option.value === this.value, disabled: option === null || option === void 0 ? void 0 : option.disabled }, (_a = option.label) !== null && _a !== void 0 ? _a : option.value));
7039
- })), this.success && hAsync("gov-icon", { key: 'def96c72b9bd804797472954d591e16d25860036', class: "validation-icon", name: "check-lg", type: "components" }), this.invalid && hAsync("gov-icon", { key: 'e20c8d4bac094529ff51d8412ae2105401edcf98', class: "validation-icon", name: "exclamation-lg", type: "components" }), hAsync("gov-icon", { key: 'e004aae985d9de1202fb50c06f5baa4d12c19fd2', class: "arrow-icon", name: "chevron-down", type: "components" })), this.h.hasSlot('sufix') && hAsync("slot", { key: '72b7791037616836108a7420d13b21bf44fdeb85', name: "sufix" })));
7107
+ })), this.success && hAsync("gov-icon", { key: 'd94a0191bc7d02d55450dfad627457101226ad22', class: "validation-icon", name: "check-lg", type: "components" }), this.invalid && hAsync("gov-icon", { key: '84ecf7197313c8a145efa54730d22068679df3f5', class: "validation-icon", name: "exclamation-lg", type: "components" }), hAsync("gov-icon", { key: '1a219d4d230466ac15e316eee16d4a55db1889fe', class: "arrow-icon", name: "chevron-down", type: "components" })), this.h.hasSlot('sufix') && hAsync("slot", { key: 'c7f4816548e3494de94f7ff0dd33f6c904acc14b', name: "sufix" })));
7040
7108
  }
7041
7109
  onFocusHandler(e) {
7042
7110
  this.focused = true;
@@ -7345,7 +7413,7 @@ var Types;
7345
7413
  const IconClass = {
7346
7414
  root: 'gov-icon'};
7347
7415
 
7348
- const version = "4.6.3";
7416
+ const version = "4.6.4";
7349
7417
 
7350
7418
  const dsVersion = () => {
7351
7419
  return version;
@@ -9177,6 +9245,12 @@ class GovTooltip {
9177
9245
  */
9178
9246
  this.icon = undefined;
9179
9247
  this.persist = false;
9248
+ this.repositionListenersAttached = false;
9249
+ this.reposition = () => {
9250
+ if (this.tooltipContent) {
9251
+ this.verifyPositionSpace();
9252
+ }
9253
+ };
9180
9254
  this.h = govHost(this.host);
9181
9255
  this.tooltipId = createID("GovTooltip");
9182
9256
  this.tooltipContentId = createID("GovContentTooltip");
@@ -9206,16 +9280,18 @@ class GovTooltip {
9206
9280
  this.createContentWrapper();
9207
9281
  }
9208
9282
  disconnectedCallback() {
9283
+ var _a;
9284
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
9285
+ this.resizeObserver = undefined;
9286
+ window.removeEventListener("resize", this.reposition);
9287
+ this.repositionListenersAttached = false;
9209
9288
  this.removeContent();
9210
9289
  }
9211
9290
  createContentWrapper() {
9212
9291
  var _a;
9213
9292
  if (this.tooltipContent) {
9214
- if (this.message) {
9215
- this.tooltipContent.innerHTML = this.message;
9216
- }
9217
- else if (this.insideContent) {
9218
- this.tooltipContent.innerHTML = this.insideContent.innerHTML;
9293
+ if (this.message != null) {
9294
+ this.tooltipContent.setAttribute("message", this.message);
9219
9295
  }
9220
9296
  return;
9221
9297
  }
@@ -9225,7 +9301,9 @@ class GovTooltip {
9225
9301
  }
9226
9302
  else {
9227
9303
  content = documentNode().createElement(TooltipContentClass.root);
9228
- content.innerHTML = this.message;
9304
+ if (this.message != null) {
9305
+ content.setAttribute("message", this.message);
9306
+ }
9229
9307
  }
9230
9308
  content.setAttribute("id", (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId);
9231
9309
  content.setAttribute("parent-id", this.tooltipId);
@@ -9340,14 +9418,27 @@ class GovTooltip {
9340
9418
  tick(() => {
9341
9419
  this.verifyPositionSpace();
9342
9420
  });
9421
+ if (!this.repositionListenersAttached) {
9422
+ this.repositionListenersAttached = true;
9423
+ if (typeof ResizeObserver !== "undefined") {
9424
+ this.resizeObserver = new ResizeObserver(this.reposition);
9425
+ this.resizeObserver.observe(this.tooltipContent);
9426
+ }
9427
+ window.addEventListener("resize", this.reposition);
9428
+ }
9343
9429
  }
9344
9430
  }
9345
9431
  hideTooltip() {
9432
+ var _a;
9346
9433
  if (this.tooltipContent) {
9347
9434
  this.tooltipContent.setAttribute("is-visible", "false");
9348
9435
  this.tooltipContent.setAttribute("persist", "false");
9349
9436
  this.tooltipContent.removeAttribute('style');
9350
9437
  }
9438
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
9439
+ this.resizeObserver = undefined;
9440
+ window.removeEventListener("resize", this.reposition);
9441
+ this.repositionListenersAttached = false;
9351
9442
  }
9352
9443
  removeContent() {
9353
9444
  const contentEl = document.getElementById(this.tooltipContentId);
@@ -9357,11 +9448,11 @@ class GovTooltip {
9357
9448
  }
9358
9449
  render() {
9359
9450
  var _a;
9360
- return (hAsync(Host, { key: 'dd78d93d3b5ba4bc3a128435f58467c9bd6def43', id: this.tooltipId, class: this.h.classes(TooltipClass.root), position: this.position }, hAsync("span", { key: '2ede8642a4cf998367da3756c795847195c0f694', role: 'button', tabindex: 0, onKeyPress: () => this.showTooltip(), onBlur: () => {
9451
+ return (hAsync(Host, { key: '20ebe5eea59967e8681fd0e35fc7aff53b5915dd', id: this.tooltipId, class: this.h.classes(TooltipClass.root), position: this.position }, hAsync("span", { key: '847b78886907d683425013227eb78bbf9261b709', role: 'button', tabindex: 0, onKeyPress: () => this.showTooltip(), onBlur: () => {
9361
9452
  if (this.persist === false) {
9362
9453
  this.hideTooltip();
9363
9454
  }
9364
- }, "aria-describedby": (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId }, hAsync("slot", { key: '9607b4c9b24766f70b53c6372e6e7219e7a3a6fd' }))));
9455
+ }, "aria-describedby": (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId }, hAsync("slot", { key: '84c4c02ee11e05166fca208b82ef54298dcaa6ee' }))));
9365
9456
  }
9366
9457
  /**
9367
9458
  * Showing the modal
@@ -9447,7 +9538,9 @@ class GovTooltipContent {
9447
9538
  }
9448
9539
  }
9449
9540
  render() {
9450
- return (hAsync(Host, { key: '71d259cc8d7247030767f8ac36a6875f9c16ffea', class: TooltipContentClass.root, role: "tooltip", hidden: !this.isVisible, "aria-hidden": !toBoolAttr(this.isVisible), "is-visible": this.isVisible }, hAsync("slot", { key: '06d883340271717da9d0b8de6c35339cd5c9dfb9' }), this.persist ? (hAsync("gov-button", { "on-gov-click": this.hideContent.bind(this), color: this.color, size: this.size, type: "base" }, hAsync("gov-icon", { slot: "icon-start", name: "x-lg", type: "components" }))) : null));
9541
+ return (hAsync(Host, { key: '121b5cd3878956618a7a917511e6d8d76edf6672', class: TooltipContentClass.root, role: "tooltip", hidden: !this.isVisible, "aria-hidden": !toBoolAttr(this.isVisible), "is-visible": this.isVisible }, this.message
9542
+ ? hAsync("span", { class: "gov-tooltip-content__message", innerHTML: this.message })
9543
+ : hAsync("slot", null), this.persist ? (hAsync("gov-button", { "on-gov-click": this.hideContent.bind(this), color: this.color, size: this.size, type: "base" }, hAsync("gov-icon", { slot: "icon-start", name: "x-lg", type: "components" }))) : null));
9451
9544
  }
9452
9545
  get host() { return getElement(this); }
9453
9546
  static get watchers() { return {
@@ -9461,7 +9554,8 @@ class GovTooltipContent {
9461
9554
  "size": [1],
9462
9555
  "persist": [4],
9463
9556
  "isVisible": [1028, "is-visible"],
9464
- "parentId": [1, "parent-id"]
9557
+ "parentId": [1, "parent-id"],
9558
+ "message": [1025]
9465
9559
  },
9466
9560
  "$listeners$": undefined,
9467
9561
  "$lazyBundleId$": "-",
@@ -9522,7 +9616,7 @@ class GovWizard {
9522
9616
  this.hydrated = true;
9523
9617
  }
9524
9618
  render() {
9525
- return (hAsync(Host, { key: '5d1d08b27c5a8b266d209841d4cfda654081124c', class: this.h.classes(WizardClass.root), role: "list", size: this.size, hydrated: this.hydrated }, hAsync("slot", { key: 'c17071c8a7bed0dee95deec69c0ce1c668160209' })));
9619
+ return (hAsync(Host, { key: 'd1957fc0c0058c107769e3cc5390ef986fc9b921', class: this.h.classes(WizardClass.root), role: "list", size: this.size, hydrated: this.hydrated }, hAsync("slot", { key: 'a34323c408d790c5945ca0d80db62de2433db438' })));
9526
9620
  }
9527
9621
  /**
9528
9622
  * Validate the WCAG attributes of the component
@@ -9598,8 +9692,8 @@ class GovWizardItem {
9598
9692
  render() {
9599
9693
  const triggerId = this.identifier || this.triggerId;
9600
9694
  const Tag = this.collapsible ? Tags.BUTTON : Tags.DIV;
9601
- const prefixSlot = this.h.hasSlot("prefix") && (hAsync("span", { key: '10144e93de98bf60873fa6c244c4129b040b8bae', class: WizardItemClass.prefix }, hAsync("slot", { key: 'a946028d94e0c159cf4c91fa1773467c8203a5f2', name: "prefix" })));
9602
- return (hAsync(Host, { key: 'f33ced4d5d8f57bec50cc8ebce6f12cf2145833d', class: this.h.classes(WizardItemClass.root), "is-expanded": this.isExpanded, color: this.color, size: this.size, role: "listitem", collapsible: this.collapsible, hydrated: this.hydrated }, hAsync("div", { key: '872e3e164b4cca4955c2ba4cf0a2d88563f50fc5', class: WizardItemClass.header }, prefixSlot, this.collapsible ? (hAsync(Tag, { id: triggerId, class: this.h.classes(WizardItemClass.label), "aria-expanded": booleanString(this.isExpanded), "aria-controls": this.contentId, disabled: this.disabled, "aria-disabled": toBoolAttrIfDefined(this.disabled), onClick: (e) => {
9695
+ const prefixSlot = this.h.hasSlot("prefix") && (hAsync("span", { key: '3f00516020337fc142713c6edb468d0007eba3c5', class: WizardItemClass.prefix }, hAsync("slot", { key: '05aa42bc8241f53bb3664dc3d06798cb0344f92f', name: "prefix" })));
9696
+ return (hAsync(Host, { key: '863700f5087e86d1f8d4e22b40108dfbc0cb96f5', class: this.h.classes(WizardItemClass.root), "is-expanded": this.isExpanded, color: this.color, size: this.size, role: "listitem", collapsible: this.collapsible, hydrated: this.hydrated }, hAsync("div", { key: '6d93a5bb12dbe2fc2e308059ffd5d63ed915f16d', class: WizardItemClass.header }, prefixSlot, this.collapsible ? (hAsync(Tag, { id: triggerId, class: this.h.classes(WizardItemClass.label), "aria-expanded": booleanString(this.isExpanded), "aria-controls": this.contentId, disabled: this.disabled, "aria-disabled": toBoolAttrIfDefined(this.disabled), onClick: (e) => {
9603
9697
  e.preventDefault();
9604
9698
  e.stopPropagation();
9605
9699
  this.toggle();