genesys-spark-components 4.73.1 → 4.74.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 (341) hide show
  1. package/dist/cjs/genesys-webcomponents.cjs.js +1 -1
  2. package/dist/cjs/gux-accordion.cjs.entry.js +1 -1
  3. package/dist/cjs/gux-action-button.cjs.entry.js +1 -1
  4. package/dist/cjs/gux-action-toast-legacy.cjs.entry.js +1 -1
  5. package/dist/cjs/gux-advanced-dropdown-legacy.cjs.entry.js +1 -1
  6. package/dist/cjs/gux-announce-beta.cjs.entry.js +1 -1
  7. package/dist/cjs/gux-avatar-beta.cjs.entry.js +1 -1
  8. package/dist/cjs/gux-avatar-change-photo-beta.cjs.entry.js +1 -1
  9. package/dist/cjs/gux-badge.cjs.entry.js +1 -1
  10. package/dist/cjs/gux-blank-state.cjs.entry.js +1 -1
  11. package/dist/cjs/gux-breadcrumbs.cjs.entry.js +1 -1
  12. package/dist/cjs/gux-button-multi.cjs.entry.js +1 -1
  13. package/dist/cjs/gux-button-slot.cjs.entry.js +1 -1
  14. package/dist/cjs/gux-button.cjs.entry.js +1 -1
  15. package/dist/cjs/gux-calendar.cjs.entry.js +1 -1
  16. package/dist/cjs/gux-card.cjs.entry.js +1 -1
  17. package/dist/cjs/gux-column-manager.cjs.entry.js +1 -1
  18. package/dist/cjs/gux-content-search.cjs.entry.js +1 -1
  19. package/dist/cjs/gux-context-menu.cjs.entry.js +1 -1
  20. package/dist/cjs/gux-copy-to-clipboard.cjs.entry.js +1 -1
  21. package/dist/cjs/gux-date-beta.cjs.entry.js +1 -1
  22. package/dist/cjs/gux-date-time-beta.cjs.entry.js +1 -1
  23. package/dist/cjs/gux-datepicker.cjs.entry.js +1 -1
  24. package/dist/cjs/gux-disclosure-button-legacy.cjs.entry.js +1 -1
  25. package/dist/cjs/gux-dismiss-button.cjs.entry.js +1 -1
  26. package/dist/cjs/gux-dropdown-multi.cjs.entry.js +1 -1
  27. package/dist/cjs/gux-dropdown_3.cjs.entry.js +1 -1
  28. package/dist/cjs/gux-flag-icon-beta.cjs.entry.js +1 -1
  29. package/dist/cjs/gux-flyout-menu.cjs.entry.js +1 -1
  30. package/dist/cjs/gux-form-field-checkbox-group-beta.cjs.entry.js +1 -1
  31. package/dist/cjs/gux-form-field-checkbox.cjs.entry.js +1 -1
  32. package/dist/cjs/gux-form-field-color.cjs.entry.js +5 -4
  33. package/dist/cjs/gux-form-field-dropdown.cjs.entry.js +5 -4
  34. package/dist/cjs/gux-form-field-file.cjs.entry.js +3 -2
  35. package/dist/cjs/gux-form-field-input-clear-button.cjs.entry.js +1 -1
  36. package/dist/cjs/gux-form-field-label-indicator.cjs.entry.js +15 -4
  37. package/dist/cjs/gux-form-field-number_3.cjs.entry.js +5 -4
  38. package/dist/cjs/gux-form-field-phone.cjs.entry.js +6 -5
  39. package/dist/cjs/gux-form-field-radio-group-beta.cjs.entry.js +1 -1
  40. package/dist/cjs/gux-form-field-radio.cjs.entry.js +1 -1
  41. package/dist/cjs/gux-form-field-range.cjs.entry.js +4 -3
  42. package/dist/cjs/gux-form-field-search.cjs.entry.js +5 -4
  43. package/dist/cjs/gux-form-field-select.cjs.entry.js +5 -4
  44. package/dist/cjs/gux-form-field-text-like.cjs.entry.js +5 -4
  45. package/dist/cjs/gux-form-field-textarea.cjs.entry.js +4 -3
  46. package/dist/cjs/gux-form-field-time-picker.cjs.entry.js +6 -5
  47. package/dist/cjs/gux-form-field-time-zone-picker.cjs.entry.js +5 -4
  48. package/dist/cjs/gux-form-footer.cjs.entry.js +1 -1
  49. package/dist/cjs/gux-icon-tooltip-beta.cjs.entry.js +1 -1
  50. package/dist/cjs/gux-icon.cjs.entry.js +1 -1
  51. package/dist/cjs/gux-inline-alert.cjs.entry.js +1 -1
  52. package/dist/cjs/gux-label-info-beta.cjs.entry.js +1 -1
  53. package/dist/cjs/gux-list.cjs.entry.js +1 -1
  54. package/dist/cjs/gux-listbox-multi.cjs.entry.js +1 -1
  55. package/dist/cjs/gux-loading-message.cjs.entry.js +1 -1
  56. package/dist/cjs/gux-modal-legacy.cjs.entry.js +1 -1
  57. package/dist/cjs/gux-modal.cjs.entry.js +1 -1
  58. package/dist/cjs/gux-month-picker-beta.cjs.entry.js +1 -1
  59. package/dist/cjs/gux-notification-toast-legacy.cjs.entry.js +1 -1
  60. package/dist/cjs/gux-page-loading-spinner.cjs.entry.js +1 -1
  61. package/dist/cjs/gux-pagination-cursor.cjs.entry.js +1 -1
  62. package/dist/cjs/gux-pagination-legacy.cjs.entry.js +1 -1
  63. package/dist/cjs/gux-pagination.cjs.entry.js +1 -1
  64. package/dist/cjs/gux-phone-input-beta.cjs.entry.js +1 -1
  65. package/dist/cjs/gux-popover-list.cjs.entry.js +1 -1
  66. package/dist/cjs/gux-radial-loading.cjs.entry.js +1 -1
  67. package/dist/cjs/gux-radial-progress.cjs.entry.js +1 -1
  68. package/dist/cjs/gux-rating.cjs.entry.js +1 -1
  69. package/dist/cjs/gux-screen-reader-beta_2.cjs.entry.js +1 -1
  70. package/dist/cjs/gux-segmented-control-beta.cjs.entry.js +1 -1
  71. package/dist/cjs/gux-selector-card-beta.cjs.entry.js +1 -1
  72. package/dist/cjs/gux-selector-cards-beta.cjs.entry.js +1 -1
  73. package/dist/cjs/gux-simple-toast-legacy.cjs.entry.js +1 -1
  74. package/dist/cjs/gux-skip-navigation-list.cjs.entry.js +1 -1
  75. package/dist/cjs/gux-sort-control.cjs.entry.js +1 -1
  76. package/dist/cjs/gux-switch-legacy.cjs.entry.js +1 -1
  77. package/dist/cjs/gux-table-toolbar-action.cjs.entry.js +1 -1
  78. package/dist/cjs/gux-table-toolbar-custom-action.cjs.entry.js +1 -1
  79. package/dist/cjs/gux-table-toolbar-menu-button.cjs.entry.js +1 -1
  80. package/dist/cjs/gux-table-toolbar.cjs.entry.js +1 -1
  81. package/dist/cjs/gux-table.cjs.entry.js +1 -1
  82. package/dist/cjs/gux-tabs-advanced.cjs.entry.js +1 -1
  83. package/dist/cjs/gux-tabs.cjs.entry.js +1 -1
  84. package/dist/cjs/gux-tag.cjs.entry.js +1 -1
  85. package/dist/cjs/gux-text-highlight.cjs.entry.js +1 -1
  86. package/dist/cjs/gux-time-beta.cjs.entry.js +1 -1
  87. package/dist/cjs/gux-time-picker.cjs.entry.js +1 -1
  88. package/dist/cjs/gux-time-zone-beta.cjs.entry.js +1 -1
  89. package/dist/cjs/gux-time-zone-picker-beta.cjs.entry.js +1 -1
  90. package/dist/cjs/gux-toast.cjs.entry.js +1 -1
  91. package/dist/cjs/gux-toggle.cjs.entry.js +1 -1
  92. package/dist/cjs/gux-tooltip-base-beta.cjs.entry.js +1 -1
  93. package/dist/cjs/gux-tooltip.cjs.entry.js +1 -1
  94. package/dist/cjs/loader.cjs.js +1 -1
  95. package/dist/cjs/{usage-f1782f59.js → usage-b3bad09d.js} +1 -1
  96. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-color/gux-form-field-color.js +28 -3
  97. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-color/tests/gux-form-field-color.spec.js +14 -0
  98. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-dropdown/gux-form-field-dropdown.js +28 -3
  99. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-dropdown/tests/gux-form-field-dropdown.spec.js +61 -21
  100. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-file/gux-form-field-file.js +26 -1
  101. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-file/tests/gux-form-field-file.spec.js +20 -0
  102. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-number/gux-form-field-number.js +28 -3
  103. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-number/tests/gux-form-field-number.spec.js +14 -0
  104. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-phone/gux-form-field-phone.js +29 -4
  105. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-phone/tests/gux-form-field-phone.spec.js +14 -0
  106. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-range/gux-form-field-range.js +27 -2
  107. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-search/gux-form-field-search.js +28 -3
  108. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-search/tests/gux-form-field-search.spec.js +14 -0
  109. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-select/gux-form-field-select.js +28 -3
  110. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-select/tests/gux-form-field-select.spec.js +18 -0
  111. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-text-like/gux-form-field-text-like.js +28 -3
  112. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-text-like/tests/gux-form-field-text-like.spec.js +14 -0
  113. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-textarea/gux-form-field-textarea.js +27 -2
  114. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-textarea/tests/gux-form-field-textarea.spec.js +14 -0
  115. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-time-picker/gux-form-field-time-picker.js +29 -4
  116. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-time-picker/tests/gux-form-field-time-picker.spec.js +14 -0
  117. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-time-zone-picker/gux-form-field-time-zone-picker.js +28 -3
  118. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-time-zone-picker/tests/gux-form-field-time-zone-picker.spec.js +62 -43
  119. package/dist/collection/components/stable/gux-form-field/helper-components/gux-form-field-optional-indicator/gux-form-field-label-indicator.css +9 -0
  120. package/dist/collection/components/stable/gux-form-field/helper-components/gux-form-field-optional-indicator/gux-form-field-label-indicator.js +8 -2
  121. package/dist/esm/genesys-webcomponents.js +1 -1
  122. package/dist/esm/gux-accordion.entry.js +1 -1
  123. package/dist/esm/gux-action-button.entry.js +1 -1
  124. package/dist/esm/gux-action-toast-legacy.entry.js +1 -1
  125. package/dist/esm/gux-advanced-dropdown-legacy.entry.js +1 -1
  126. package/dist/esm/gux-announce-beta.entry.js +1 -1
  127. package/dist/esm/gux-avatar-beta.entry.js +1 -1
  128. package/dist/esm/gux-avatar-change-photo-beta.entry.js +1 -1
  129. package/dist/esm/gux-badge.entry.js +1 -1
  130. package/dist/esm/gux-blank-state.entry.js +1 -1
  131. package/dist/esm/gux-breadcrumbs.entry.js +1 -1
  132. package/dist/esm/gux-button-multi.entry.js +1 -1
  133. package/dist/esm/gux-button-slot.entry.js +1 -1
  134. package/dist/esm/gux-button.entry.js +1 -1
  135. package/dist/esm/gux-calendar.entry.js +1 -1
  136. package/dist/esm/gux-card.entry.js +1 -1
  137. package/dist/esm/gux-column-manager.entry.js +1 -1
  138. package/dist/esm/gux-content-search.entry.js +1 -1
  139. package/dist/esm/gux-context-menu.entry.js +1 -1
  140. package/dist/esm/gux-copy-to-clipboard.entry.js +1 -1
  141. package/dist/esm/gux-date-beta.entry.js +1 -1
  142. package/dist/esm/gux-date-time-beta.entry.js +1 -1
  143. package/dist/esm/gux-datepicker.entry.js +1 -1
  144. package/dist/esm/gux-disclosure-button-legacy.entry.js +1 -1
  145. package/dist/esm/gux-dismiss-button.entry.js +1 -1
  146. package/dist/esm/gux-dropdown-multi.entry.js +1 -1
  147. package/dist/esm/gux-dropdown_3.entry.js +1 -1
  148. package/dist/esm/gux-flag-icon-beta.entry.js +1 -1
  149. package/dist/esm/gux-flyout-menu.entry.js +1 -1
  150. package/dist/esm/gux-form-field-checkbox-group-beta.entry.js +1 -1
  151. package/dist/esm/gux-form-field-checkbox.entry.js +1 -1
  152. package/dist/esm/gux-form-field-color.entry.js +5 -4
  153. package/dist/esm/gux-form-field-dropdown.entry.js +5 -4
  154. package/dist/esm/gux-form-field-file.entry.js +3 -2
  155. package/dist/esm/gux-form-field-input-clear-button.entry.js +1 -1
  156. package/dist/esm/gux-form-field-label-indicator.entry.js +15 -4
  157. package/dist/esm/gux-form-field-number_3.entry.js +5 -4
  158. package/dist/esm/gux-form-field-phone.entry.js +6 -5
  159. package/dist/esm/gux-form-field-radio-group-beta.entry.js +1 -1
  160. package/dist/esm/gux-form-field-radio.entry.js +1 -1
  161. package/dist/esm/gux-form-field-range.entry.js +4 -3
  162. package/dist/esm/gux-form-field-search.entry.js +5 -4
  163. package/dist/esm/gux-form-field-select.entry.js +5 -4
  164. package/dist/esm/gux-form-field-text-like.entry.js +5 -4
  165. package/dist/esm/gux-form-field-textarea.entry.js +4 -3
  166. package/dist/esm/gux-form-field-time-picker.entry.js +6 -5
  167. package/dist/esm/gux-form-field-time-zone-picker.entry.js +5 -4
  168. package/dist/esm/gux-form-footer.entry.js +1 -1
  169. package/dist/esm/gux-icon-tooltip-beta.entry.js +1 -1
  170. package/dist/esm/gux-icon.entry.js +1 -1
  171. package/dist/esm/gux-inline-alert.entry.js +1 -1
  172. package/dist/esm/gux-label-info-beta.entry.js +1 -1
  173. package/dist/esm/gux-list.entry.js +1 -1
  174. package/dist/esm/gux-listbox-multi.entry.js +1 -1
  175. package/dist/esm/gux-loading-message.entry.js +1 -1
  176. package/dist/esm/gux-modal-legacy.entry.js +1 -1
  177. package/dist/esm/gux-modal.entry.js +1 -1
  178. package/dist/esm/gux-month-picker-beta.entry.js +1 -1
  179. package/dist/esm/gux-notification-toast-legacy.entry.js +1 -1
  180. package/dist/esm/gux-page-loading-spinner.entry.js +1 -1
  181. package/dist/esm/gux-pagination-cursor.entry.js +1 -1
  182. package/dist/esm/gux-pagination-legacy.entry.js +1 -1
  183. package/dist/esm/gux-pagination.entry.js +1 -1
  184. package/dist/esm/gux-phone-input-beta.entry.js +1 -1
  185. package/dist/esm/gux-popover-list.entry.js +1 -1
  186. package/dist/esm/gux-radial-loading.entry.js +1 -1
  187. package/dist/esm/gux-radial-progress.entry.js +1 -1
  188. package/dist/esm/gux-rating.entry.js +1 -1
  189. package/dist/esm/gux-screen-reader-beta_2.entry.js +1 -1
  190. package/dist/esm/gux-segmented-control-beta.entry.js +1 -1
  191. package/dist/esm/gux-selector-card-beta.entry.js +1 -1
  192. package/dist/esm/gux-selector-cards-beta.entry.js +1 -1
  193. package/dist/esm/gux-simple-toast-legacy.entry.js +1 -1
  194. package/dist/esm/gux-skip-navigation-list.entry.js +1 -1
  195. package/dist/esm/gux-sort-control.entry.js +1 -1
  196. package/dist/esm/gux-switch-legacy.entry.js +1 -1
  197. package/dist/esm/gux-table-toolbar-action.entry.js +1 -1
  198. package/dist/esm/gux-table-toolbar-custom-action.entry.js +1 -1
  199. package/dist/esm/gux-table-toolbar-menu-button.entry.js +1 -1
  200. package/dist/esm/gux-table-toolbar.entry.js +1 -1
  201. package/dist/esm/gux-table.entry.js +1 -1
  202. package/dist/esm/gux-tabs-advanced.entry.js +1 -1
  203. package/dist/esm/gux-tabs.entry.js +1 -1
  204. package/dist/esm/gux-tag.entry.js +1 -1
  205. package/dist/esm/gux-text-highlight.entry.js +1 -1
  206. package/dist/esm/gux-time-beta.entry.js +1 -1
  207. package/dist/esm/gux-time-picker.entry.js +1 -1
  208. package/dist/esm/gux-time-zone-beta.entry.js +1 -1
  209. package/dist/esm/gux-time-zone-picker-beta.entry.js +1 -1
  210. package/dist/esm/gux-toast.entry.js +1 -1
  211. package/dist/esm/gux-toggle.entry.js +1 -1
  212. package/dist/esm/gux-tooltip-base-beta.entry.js +1 -1
  213. package/dist/esm/gux-tooltip.entry.js +1 -1
  214. package/dist/esm/loader.js +1 -1
  215. package/dist/esm/{usage-5960de2d.js → usage-f9c366ec.js} +1 -1
  216. package/dist/genesys-webcomponents/genesys-webcomponents.esm.js +1 -1
  217. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.en.json +1 -1
  218. package/dist/genesys-webcomponents/{p-ce1b60fb.entry.js → p-014d074d.entry.js} +1 -1
  219. package/dist/genesys-webcomponents/{p-eaafe2d6.entry.js → p-04241d12.entry.js} +1 -1
  220. package/dist/genesys-webcomponents/{p-2716f3ae.entry.js → p-060b627c.entry.js} +1 -1
  221. package/dist/genesys-webcomponents/{p-1a53acf1.entry.js → p-06891972.entry.js} +1 -1
  222. package/dist/genesys-webcomponents/{p-6017569f.entry.js → p-0875b411.entry.js} +1 -1
  223. package/dist/genesys-webcomponents/{p-970aeae2.entry.js → p-0f5dfe47.entry.js} +1 -1
  224. package/dist/genesys-webcomponents/{p-c3e6759a.entry.js → p-11802d87.entry.js} +1 -1
  225. package/dist/genesys-webcomponents/{p-5599da88.entry.js → p-11bd3055.entry.js} +1 -1
  226. package/dist/genesys-webcomponents/{p-b2818bc7.entry.js → p-14ddfe8e.entry.js} +1 -1
  227. package/dist/genesys-webcomponents/{p-45c88005.entry.js → p-167a8187.entry.js} +1 -1
  228. package/dist/genesys-webcomponents/{p-7def8802.entry.js → p-1ff15e9d.entry.js} +1 -1
  229. package/dist/genesys-webcomponents/{p-c2848626.entry.js → p-21b55ee6.entry.js} +1 -1
  230. package/dist/genesys-webcomponents/{p-d82fb3c1.entry.js → p-25bd4937.entry.js} +1 -1
  231. package/dist/genesys-webcomponents/{p-36bb6458.entry.js → p-27ce2918.entry.js} +1 -1
  232. package/dist/genesys-webcomponents/{p-58f1d5a3.entry.js → p-2a4706be.entry.js} +1 -1
  233. package/dist/genesys-webcomponents/{p-81803e2f.entry.js → p-2e0f25c8.entry.js} +1 -1
  234. package/dist/genesys-webcomponents/{p-e064fc94.entry.js → p-2fdbade7.entry.js} +1 -1
  235. package/dist/genesys-webcomponents/{p-4861b98d.entry.js → p-314c137e.entry.js} +1 -1
  236. package/dist/genesys-webcomponents/{p-64a1e58c.entry.js → p-31998793.entry.js} +1 -1
  237. package/dist/genesys-webcomponents/{p-774622ca.entry.js → p-33f0bec1.entry.js} +1 -1
  238. package/dist/genesys-webcomponents/{p-d60b273e.entry.js → p-34df3d84.entry.js} +1 -1
  239. package/dist/genesys-webcomponents/{p-86271fd9.entry.js → p-3978c193.entry.js} +1 -1
  240. package/dist/genesys-webcomponents/{p-908638a9.entry.js → p-3a644ec7.entry.js} +1 -1
  241. package/dist/genesys-webcomponents/{p-a275daa4.entry.js → p-3ae60345.entry.js} +1 -1
  242. package/dist/genesys-webcomponents/{p-c67ccda3.entry.js → p-3c638a22.entry.js} +1 -1
  243. package/dist/genesys-webcomponents/{p-52b8e30a.entry.js → p-3cb1047b.entry.js} +1 -1
  244. package/dist/genesys-webcomponents/{p-1a0bee83.entry.js → p-43b48ebb.entry.js} +1 -1
  245. package/dist/genesys-webcomponents/p-480b3891.entry.js +1 -0
  246. package/dist/genesys-webcomponents/{p-e93412dd.entry.js → p-4a0007a7.entry.js} +1 -1
  247. package/dist/genesys-webcomponents/{p-88579745.entry.js → p-4b60d482.entry.js} +1 -1
  248. package/dist/genesys-webcomponents/{p-c2c556bc.entry.js → p-4bcf78ca.entry.js} +1 -1
  249. package/dist/genesys-webcomponents/{p-25d668eb.entry.js → p-4cfca967.entry.js} +1 -1
  250. package/dist/genesys-webcomponents/{p-321912f1.entry.js → p-4dd17bc5.entry.js} +1 -1
  251. package/dist/genesys-webcomponents/{p-c463c8cc.entry.js → p-4e74044a.entry.js} +1 -1
  252. package/dist/genesys-webcomponents/{p-0cd9c001.entry.js → p-5365558e.entry.js} +1 -1
  253. package/dist/genesys-webcomponents/p-549ee2c5.entry.js +1 -0
  254. package/dist/genesys-webcomponents/{p-8ad9a0b0.entry.js → p-56c533bc.entry.js} +1 -1
  255. package/dist/genesys-webcomponents/{p-4b71fe54.entry.js → p-5844741a.entry.js} +1 -1
  256. package/dist/genesys-webcomponents/{p-49186c5a.entry.js → p-5d734773.entry.js} +1 -1
  257. package/dist/genesys-webcomponents/{p-7a5d5d63.entry.js → p-60648c28.entry.js} +1 -1
  258. package/dist/genesys-webcomponents/{p-d4b1a078.entry.js → p-612729f2.entry.js} +1 -1
  259. package/dist/genesys-webcomponents/p-62692218.entry.js +1 -0
  260. package/dist/genesys-webcomponents/p-63b97318.entry.js +1 -0
  261. package/dist/genesys-webcomponents/p-648210bf.entry.js +1 -0
  262. package/dist/genesys-webcomponents/p-649c2649.entry.js +1 -0
  263. package/dist/genesys-webcomponents/p-655e6f4c.entry.js +1 -0
  264. package/dist/genesys-webcomponents/p-66339180.entry.js +1 -0
  265. package/dist/genesys-webcomponents/{p-a02a0384.entry.js → p-66bdf878.entry.js} +1 -1
  266. package/dist/genesys-webcomponents/{p-ccf44dd0.entry.js → p-6a49fb57.entry.js} +1 -1
  267. package/dist/genesys-webcomponents/{p-c928463f.entry.js → p-7185fb75.entry.js} +1 -1
  268. package/dist/genesys-webcomponents/{p-8b53d67d.entry.js → p-720ffdc8.entry.js} +1 -1
  269. package/dist/genesys-webcomponents/{p-6d81c600.entry.js → p-739c5edc.entry.js} +1 -1
  270. package/dist/genesys-webcomponents/{p-b2a73bac.entry.js → p-75d13982.entry.js} +1 -1
  271. package/dist/genesys-webcomponents/{p-4b5a4323.entry.js → p-77fc0bd3.entry.js} +1 -1
  272. package/dist/genesys-webcomponents/{p-86d588b8.entry.js → p-7c887fe7.entry.js} +1 -1
  273. package/dist/genesys-webcomponents/{p-28f9b7a0.entry.js → p-7c988b18.entry.js} +1 -1
  274. package/dist/genesys-webcomponents/{p-f2d39df6.entry.js → p-7cd95aec.entry.js} +1 -1
  275. package/dist/genesys-webcomponents/{p-9012b81b.entry.js → p-7ce1427e.entry.js} +1 -1
  276. package/dist/genesys-webcomponents/{p-036b55f5.entry.js → p-81457287.entry.js} +1 -1
  277. package/dist/genesys-webcomponents/{p-2e733b04.entry.js → p-870368c8.entry.js} +1 -1
  278. package/dist/genesys-webcomponents/{p-c4c0f0b8.entry.js → p-8c229122.entry.js} +1 -1
  279. package/dist/genesys-webcomponents/{p-9b27f824.entry.js → p-9042dbed.entry.js} +1 -1
  280. package/dist/genesys-webcomponents/{p-b90785e3.entry.js → p-9428a0e6.entry.js} +1 -1
  281. package/dist/genesys-webcomponents/{p-7d574027.entry.js → p-a0e85aca.entry.js} +1 -1
  282. package/dist/genesys-webcomponents/{p-af2f5f53.entry.js → p-ae8bb601.entry.js} +1 -1
  283. package/dist/genesys-webcomponents/p-b1e19398.entry.js +1 -0
  284. package/dist/genesys-webcomponents/{p-d60f0457.entry.js → p-bacf9ee3.entry.js} +1 -1
  285. package/dist/genesys-webcomponents/{p-50322043.entry.js → p-bbff0f4c.entry.js} +1 -1
  286. package/dist/genesys-webcomponents/p-beab0ebe.entry.js +1 -0
  287. package/dist/genesys-webcomponents/{p-72debd0d.entry.js → p-c228ed3f.entry.js} +1 -1
  288. package/dist/genesys-webcomponents/{p-2df23060.entry.js → p-c4369def.entry.js} +1 -1
  289. package/dist/genesys-webcomponents/{p-5e2cea89.entry.js → p-c4892aee.entry.js} +1 -1
  290. package/dist/genesys-webcomponents/{p-5339d7b0.entry.js → p-c534478b.entry.js} +1 -1
  291. package/dist/genesys-webcomponents/{p-1498f5bf.entry.js → p-c570c6ef.entry.js} +1 -1
  292. package/dist/genesys-webcomponents/p-c937df04.entry.js +1 -0
  293. package/dist/genesys-webcomponents/{p-96306bff.entry.js → p-cba33e6f.entry.js} +1 -1
  294. package/dist/genesys-webcomponents/p-d0aa61a4.entry.js +1 -0
  295. package/dist/genesys-webcomponents/{p-3b8e6be7.entry.js → p-d2d56541.entry.js} +1 -1
  296. package/dist/genesys-webcomponents/{p-e157f06b.entry.js → p-d3a3bcc8.entry.js} +1 -1
  297. package/dist/genesys-webcomponents/{p-06e574d9.entry.js → p-d42a14b6.entry.js} +1 -1
  298. package/dist/genesys-webcomponents/{p-d4247c28.entry.js → p-d515e850.entry.js} +1 -1
  299. package/dist/genesys-webcomponents/{p-663ddd36.entry.js → p-d6e9f72c.entry.js} +1 -1
  300. package/dist/genesys-webcomponents/p-d7c8259c.entry.js +1 -0
  301. package/dist/genesys-webcomponents/{p-22961478.entry.js → p-d8843760.entry.js} +1 -1
  302. package/dist/genesys-webcomponents/{p-b244521e.entry.js → p-dae41cf1.entry.js} +1 -1
  303. package/dist/genesys-webcomponents/{p-d90bdc07.js → p-e598cc41.js} +1 -1
  304. package/dist/genesys-webcomponents/{p-eacfe0a5.entry.js → p-e993f491.entry.js} +1 -1
  305. package/dist/genesys-webcomponents/{p-243074ba.entry.js → p-ec882573.entry.js} +1 -1
  306. package/dist/genesys-webcomponents/{p-13944463.entry.js → p-ee724156.entry.js} +1 -1
  307. package/dist/genesys-webcomponents/{p-b588e0e2.entry.js → p-f8f79d6f.entry.js} +1 -1
  308. package/dist/genesys-webcomponents/{p-59061478.entry.js → p-fb74abd0.entry.js} +1 -1
  309. package/dist/genesys-webcomponents/{p-2f841d5a.entry.js → p-fc551679.entry.js} +1 -1
  310. package/dist/genesys-webcomponents/{p-b34401f6.entry.js → p-fe5e81f7.entry.js} +1 -1
  311. package/dist/stencil-wrapper.js +1 -1
  312. package/dist/types/components/stable/gux-form-field/components/gux-form-field-color/gux-form-field-color.d.ts +7 -1
  313. package/dist/types/components/stable/gux-form-field/components/gux-form-field-dropdown/gux-form-field-dropdown.d.ts +7 -1
  314. package/dist/types/components/stable/gux-form-field/components/gux-form-field-file/gux-form-field-file.d.ts +7 -1
  315. package/dist/types/components/stable/gux-form-field/components/gux-form-field-number/gux-form-field-number.d.ts +7 -1
  316. package/dist/types/components/stable/gux-form-field/components/gux-form-field-phone/gux-form-field-phone.d.ts +7 -1
  317. package/dist/types/components/stable/gux-form-field/components/gux-form-field-range/gux-form-field-range.d.ts +7 -1
  318. package/dist/types/components/stable/gux-form-field/components/gux-form-field-search/gux-form-field-search.d.ts +7 -1
  319. package/dist/types/components/stable/gux-form-field/components/gux-form-field-select/gux-form-field-select.d.ts +7 -1
  320. package/dist/types/components/stable/gux-form-field/components/gux-form-field-text-like/gux-form-field-text-like.d.ts +7 -1
  321. package/dist/types/components/stable/gux-form-field/components/gux-form-field-textarea/gux-form-field-textarea.d.ts +7 -1
  322. package/dist/types/components/stable/gux-form-field/components/gux-form-field-time-picker/gux-form-field-time-picker.d.ts +7 -1
  323. package/dist/types/components/stable/gux-form-field/components/gux-form-field-time-zone-picker/gux-form-field-time-zone-picker.d.ts +7 -1
  324. package/dist/types/components/stable/gux-form-field/gux-form-field.types.d.ts +1 -0
  325. package/dist/types/components/stable/gux-form-field/helper-components/gux-form-field-optional-indicator/gux-form-field-label-indicator.d.ts +2 -1
  326. package/dist/types/components.d.ts +98 -2
  327. package/dist/types/stencil-wrapper.d.ts +1 -1
  328. package/package.json +1 -1
  329. package/dist/genesys-webcomponents/p-00667c5b.entry.js +0 -1
  330. package/dist/genesys-webcomponents/p-0084dab2.entry.js +0 -1
  331. package/dist/genesys-webcomponents/p-1062aa3f.entry.js +0 -1
  332. package/dist/genesys-webcomponents/p-3b70d5bb.entry.js +0 -1
  333. package/dist/genesys-webcomponents/p-4389e5bb.entry.js +0 -1
  334. package/dist/genesys-webcomponents/p-8acb1ead.entry.js +0 -1
  335. package/dist/genesys-webcomponents/p-93a2c914.entry.js +0 -1
  336. package/dist/genesys-webcomponents/p-ada62e65.entry.js +0 -1
  337. package/dist/genesys-webcomponents/p-b083eb05.entry.js +0 -1
  338. package/dist/genesys-webcomponents/p-b4ba89de.entry.js +0 -1
  339. package/dist/genesys-webcomponents/p-df1edaff.entry.js +0 -1
  340. package/dist/genesys-webcomponents/p-e0a8952d.entry.js +0 -1
  341. package/dist/genesys-webcomponents/p-f784c4f4.entry.js +0 -1
@@ -80,6 +80,26 @@ describe('gux-form-field-dropdown', () => {
80
80
  });
81
81
  });
82
82
  });
83
+ describe('indicator marks', () => {
84
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
85
+ it(`should render component as expected optional dropdown (${index + 1})`, async () => {
86
+ const html = `
87
+ <gux-form-field-dropdown ${indicatorMark}>
88
+ <gux-dropdown>
89
+ <gux-listbox>
90
+ <gux-option value="a" disabled>Ant</gux-option>
91
+ <gux-option value="b">Bat</gux-option>
92
+ <gux-option value="c">Cat<span slot="subtext">Medium</span></gux-option>
93
+ </gux-listbox>
94
+ </gux-dropdown>
95
+ <label slot="label">Default</label>
96
+ </gux-form-field-dropdown>
97
+ `;
98
+ const page = await newSpecPage({ components, html, language });
99
+ expect(page.root).toMatchSnapshot();
100
+ });
101
+ });
102
+ });
83
103
  });
84
104
  });
85
105
  describe('multi select dropdown', () => {
@@ -149,13 +169,13 @@ describe('gux-form-field-dropdown', () => {
149
169
  it('should render component as expected', async () => {
150
170
  const html = `
151
171
  <gux-form-field-dropdown>
152
- <gux-dropdown>
153
- <gux-listbox>
154
- <gux-option value="a" disabled>Ant</gux-option>
155
- <gux-option value="b">Bat</gux-option>
156
- <gux-option value="c">Cat<span slot="subtext">Medium</span></gux-option>
157
- </gux-listbox>
158
- </gux-dropdown>
172
+ <gux-dropdown-multi>
173
+ <gux-listbox-multi>
174
+ <gux-option-multi value="a" disabled>Ant</gux-option-multi>
175
+ <gux-option-multi value="b">Bat</gux-option-multi>
176
+ <gux-option-multi value="c">Cat<span slot="subtext">Medium</span></gux-option-multi>
177
+ </gux-listbox-multi>
178
+ </gux-dropdown-multi>
159
179
  <label slot="label">Default</label>
160
180
  <span slot="help">This is a help message</span>
161
181
  </gux-form-field-dropdown>
@@ -183,22 +203,22 @@ describe('gux-form-field-dropdown', () => {
183
203
  expect(page.root).toMatchSnapshot();
184
204
  });
185
205
  });
186
- describe('label-info', () => {
206
+ describe('multi label-info', () => {
187
207
  it('should render component as expected', async () => {
188
208
  const html = `
189
- <gux-form-field-dropdown>
190
- <gux-dropdown>
191
- <gux-listbox>
192
- <gux-option value="a" disabled>Ant</gux-option>
193
- <gux-option value="b">Bat</gux-option>
194
- <gux-option value="c">Cat<span slot="subtext">Medium</span></gux-option>
195
- </gux-listbox>
196
- </gux-dropdown>
197
- <label slot="label">Default</label>
198
- <gux-label-info-beta slot="label-info">
199
- <span slot="content">This is some tooltip text</span>
200
- </gux-label-info-beta>
201
- </gux-form-field-dropdown>
209
+ <gux-form-field-dropdown>
210
+ <gux-dropdown-multi>
211
+ <gux-listbox-multi>
212
+ <gux-option-multi value="a" disabled>Ant</gux-option-multi>
213
+ <gux-option-multi value="b">Bat</gux-option-multi>
214
+ <gux-option-multi value="c">Cat<span slot="subtext">Medium</span></gux-option-multi>
215
+ </gux-listbox-multi>
216
+ </gux-dropdown-multi>
217
+ <label slot="label">Default</label>
218
+ <gux-label-info-beta slot="label-info">
219
+ <span slot="content">This is some tooltip text</span>
220
+ </gux-label-info-beta>
221
+ </gux-form-field-dropdown>
202
222
  `;
203
223
  const page = await newSpecPage({ components, html, language });
204
224
  expect(page.root).toMatchSnapshot();
@@ -225,6 +245,26 @@ describe('gux-form-field-dropdown', () => {
225
245
  expect(page.root).toMatchSnapshot();
226
246
  });
227
247
  });
248
+ describe('multi indicator marks', () => {
249
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
250
+ it(`should render component as expected optional dropdown (${index + 1})`, async () => {
251
+ const html = `
252
+ <gux-form-field-dropdown ${indicatorMark}>
253
+ <gux-dropdown-multi>
254
+ <gux-listbox-multi>
255
+ <gux-option-multi value="a" disabled>Ant</gux-option-multi>
256
+ <gux-option-multi value="b">Bat</gux-option-multi>
257
+ <gux-option-multi value="c">Cat<span slot="subtext">Medium</span></gux-option-multi>
258
+ </gux-listbox-multi>
259
+ </gux-dropdown-multi>
260
+ <label slot="label">Default</label>
261
+ </gux-form-field-dropdown>
262
+ `;
263
+ const page = await newSpecPage({ components, html, language });
264
+ expect(page.root).toMatchSnapshot();
265
+ });
266
+ });
267
+ });
228
268
  });
229
269
  });
230
270
  });
@@ -26,6 +26,7 @@ import { onRequiredChange } from "../../../../../utils/dom/on-attribute-change";
26
26
  export class GuxFormFieldFile {
27
27
  constructor() {
28
28
  this.labelPosition = undefined;
29
+ this.indicatorMark = 'required';
29
30
  this.computedLabelPosition = 'above';
30
31
  this.hasError = false;
31
32
  this.hasHelp = false;
@@ -97,7 +98,7 @@ export class GuxFormFieldFile {
97
98
  return `${type}-${labelPositionVariant}`;
98
99
  }
99
100
  render() {
100
- return (h(GuxFormFieldContainer, { key: 'e5b4d9fdfa79cad57d505668636f26d2f9daf69c', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '99f7577d1400eb36b0242b195008988b59f5f248', position: this.computedLabelPosition, required: this.required }, h("slot", { key: 'c12c665f1cd9dc5749057cfc2a594481ecc0faca', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '52b9d60441ba013611560a7d2116c14e0e5323e0', variant: "required", required: this.required }), h("slot", { key: '5ffdd1246404deeb9f621ada51a85bb4ec29dd65', name: "label-info" })), h("div", { key: 'b4d0f24cbe35ea18cb2390d7cad8db8c44186157', class: "gux-input-and-error-container" }, h("slot", { key: '5576250cc594f994c3bd8d265c509e8a72fd49f1', name: "input", onSlotchange: () => this.setInput() }), h(GuxFormFieldError, { key: '142b616ae68ce9bbf0add9261eb298b085c4eced', show: this.hasError }, h("slot", { key: 'f0e40d277507f95bf89a6adb7db6700e1760f969', name: "error" })), h(GuxFormFieldHelp, { key: 'f9019d60c785a5f1134748beee6322b887f3e02a', show: !this.hasError && this.hasHelp }, h("slot", { key: 'ce08f918eb12f490a5a1b0f6e02ec2c8866d3845', name: "help" })))));
101
+ return (h(GuxFormFieldContainer, { key: '56adbb8d351a3bf55323634c73201e2243a43e55', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '9a7442ce33af3a5129241bf959f3c72002d8c45b', position: this.computedLabelPosition, required: this.required }, h("slot", { key: 'c8d3a1349a13e8f0bf6d74cb53f214659ebda735', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: 'cf0c9b0d17c25e374484cfffb26aca99e5bb6931', variant: this.indicatorMark, required: this.required }), h("slot", { key: '7b6543b0b7e3791e6e54339953dbf8ea1442d362', name: "label-info" })), h("div", { key: '9bf6998d1a6d8ad5eeaba539d82ed5d232b8af9b', class: "gux-input-and-error-container" }, h("slot", { key: 'd98c3ab08059bed75308605ecf216d240d42bdd8', name: "input", onSlotchange: () => this.setInput() }), h(GuxFormFieldError, { key: 'eac44af58cb6b704264a1c589ec7e61f1be88133', show: this.hasError }, h("slot", { key: '5534a76ddd6d81dcf3c33b26333877d628f56640', name: "error" })), h(GuxFormFieldHelp, { key: 'd2f2d2e1888f86b4d044eefbbf4e496d6a1f478e', show: !this.hasError && this.hasHelp }, h("slot", { key: '7c66488f98b7504523cf8d811b860910e0a3d60b', name: "help" })))));
101
102
  }
102
103
  static get is() { return "gux-form-field-file"; }
103
104
  static get encapsulation() { return "shadow"; }
@@ -135,6 +136,30 @@ export class GuxFormFieldFile {
135
136
  },
136
137
  "attribute": "label-position",
137
138
  "reflect": false
139
+ },
140
+ "indicatorMark": {
141
+ "type": "string",
142
+ "mutable": false,
143
+ "complexType": {
144
+ "original": "GuxFormFieldIndicatorMark",
145
+ "resolved": "\"optional\" | \"required\"",
146
+ "references": {
147
+ "GuxFormFieldIndicatorMark": {
148
+ "location": "import",
149
+ "path": "../../gux-form-field.types",
150
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
151
+ }
152
+ }
153
+ },
154
+ "required": false,
155
+ "optional": false,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
159
+ },
160
+ "attribute": "indicator-mark",
161
+ "reflect": false,
162
+ "defaultValue": "'required'"
138
163
  }
139
164
  };
140
165
  }
@@ -66,6 +66,26 @@ describe('gux-form-field-file', () => {
66
66
  });
67
67
  });
68
68
  });
69
+ describe('indicator marks', () => {
70
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
71
+ it(`should render component as expected (${index + 1})`, async () => {
72
+ const html = `
73
+ <gux-form-field-file ${indicatorMark}>
74
+ <label slot="label">Upload a profile picture</label>
75
+ <input
76
+ slot="input"
77
+ type="file"
78
+ id="avatar"
79
+ name="avatar"
80
+ accept="image/png, image/jpeg"
81
+ />
82
+ </gux-form-field-file>
83
+ `;
84
+ const page = await newSpecPage({ components, html, language });
85
+ expect(page.root).toMatchSnapshot();
86
+ });
87
+ });
88
+ });
69
89
  describe('help', () => {
70
90
  it('should render component as expected', async () => {
71
91
  const html = `
@@ -35,6 +35,7 @@ export class GuxFormFieldNumber {
35
35
  constructor() {
36
36
  this.clearable = undefined;
37
37
  this.labelPosition = undefined;
38
+ this.indicatorMark = 'required';
38
39
  this.computedLabelPosition = 'above';
39
40
  this.disabled = undefined;
40
41
  this.required = undefined;
@@ -100,14 +101,14 @@ export class GuxFormFieldNumber {
100
101
  }
101
102
  render() {
102
103
  const showClearButton = this.clearable && this.hasContent && !this.disabled;
103
- return (h(GuxFormFieldContainer, { key: 'bdc69abdce07c79cae7b2bcee9810710d6f2bfd8', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '60a348cae72ba59bcd5c8891604364ddda93eae2', required: this.required, position: this.computedLabelPosition }, h("slot", { key: 'cafa11ccc43a7d8bc095069ae4adb90f8a75f3c8', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '3612424e53ed5c23683b09ecf0a03d8f231e1b44', variant: "required", required: this.required }), h("slot", { key: '280b627fcd8dedb13787769231d412d0f394b5e7', name: "label-info" })), h("div", { key: '51b56fe321cc3d48096754423442f2d529d558bb', class: "gux-input-and-error-container" }, h("div", { key: 'f9a1f85e390fcfcb73384d9f2d1bd49917dbd5e0', class: {
104
+ return (h(GuxFormFieldContainer, { key: '0ec348a84d25ac461074fe16950931fc9574693f', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: 'fd33fac2f166a736493c7d4e2215fd14d656c3a1', required: this.required, position: this.computedLabelPosition }, h("slot", { key: '1ba9cab32db3bfd16eed199de1c1bdb153f080c3', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '1ef31b479bfb3f40dfe7b6ec737388726f838fe8', variant: this.indicatorMark, required: this.required }), h("slot", { key: '2be9211485d87da7da354865f183c3f06f6b760c', name: "label-info" })), h("div", { key: 'cf7a4da1106fb05a2bf3317324e4de2a6eb8646e', class: "gux-input-and-error-container" }, h("div", { key: '19deca3232a1fc38a466878bcd4f5dd08fc842d7', class: {
104
105
  'gux-input': true,
105
106
  'gux-input-error': this.hasError
106
- }, part: "input-section" }, h("div", { key: 'c71394a32b8e54bef7161419e2eed7e8cc887c48', class: {
107
+ }, part: "input-section" }, h("div", { key: '522316804aa2d01f198631d6951424dd1d357540', class: {
107
108
  'gux-input-container': true,
108
109
  'gux-disabled': this.disabled,
109
110
  'gux-clear': showClearButton
110
- }, onClick: () => focusInputElement(this.input) }, h("slot", { key: '7f131a33acd53537257fc75dd9192b9117701eb0', name: "input", onSlotchange: () => this.setInput() }), showClearButton && (h("gux-form-field-input-clear-button", { onClick: () => clearInput(this.input) }))), this.renderStepButtons(this.input, this.getI18nValue, this.disabled)), h(GuxFormFieldError, { key: 'eb3f61b5aa6a845637679bac55f61cfee15bdc82', show: this.hasError }, h("slot", { key: '792521d7085f609db90658b39357cdb9705d9954', name: "error" })), h(GuxFormFieldHelp, { key: '824c3def4a6e454b609f55c6dd7666db5810d88d', show: !this.hasError && this.hasHelp }, h("slot", { key: '6f7980541f036d255aee6ac55f91842f16292eca', name: "help" })))));
111
+ }, onClick: () => focusInputElement(this.input) }, h("slot", { key: '29b61bfc0e0b5b7aecc615a4e5f899dbc89f9914', name: "input", onSlotchange: () => this.setInput() }), showClearButton && (h("gux-form-field-input-clear-button", { onClick: () => clearInput(this.input) }))), this.renderStepButtons(this.input, this.getI18nValue, this.disabled)), h(GuxFormFieldError, { key: 'da7ca3f8ac449f24ea622d39b0b55ad988a7b5c0', show: this.hasError }, h("slot", { key: '114cc9c0e75c8de3195b92156ba83871fbde35d1', name: "error" })), h(GuxFormFieldHelp, { key: 'd5b4619db333c55a88d9edf3bf2d538b6b1cc6de', show: !this.hasError && this.hasHelp }, h("slot", { key: '41ef69a9df8ed93a8cdd07bc71334e4ad0aed4e7', name: "help" })))));
111
112
  }
112
113
  get variant() {
113
114
  const labelPositionVariant = this.labelPosition
@@ -216,6 +217,30 @@ export class GuxFormFieldNumber {
216
217
  },
217
218
  "attribute": "label-position",
218
219
  "reflect": false
220
+ },
221
+ "indicatorMark": {
222
+ "type": "string",
223
+ "mutable": false,
224
+ "complexType": {
225
+ "original": "GuxFormFieldIndicatorMark",
226
+ "resolved": "\"optional\" | \"required\"",
227
+ "references": {
228
+ "GuxFormFieldIndicatorMark": {
229
+ "location": "import",
230
+ "path": "../../gux-form-field.types",
231
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
232
+ }
233
+ }
234
+ },
235
+ "required": false,
236
+ "optional": false,
237
+ "docs": {
238
+ "tags": [],
239
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
240
+ },
241
+ "attribute": "indicator-mark",
242
+ "reflect": false,
243
+ "defaultValue": "'required'"
219
244
  }
220
245
  };
221
246
  }
@@ -68,6 +68,20 @@ describe('gux-form-field-number', () => {
68
68
  });
69
69
  });
70
70
  });
71
+ describe('indicator marks', () => {
72
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
73
+ it(`should render component as expected (${index + 1})`, async () => {
74
+ const html = `
75
+ <gux-form-field-number ${indicatorMark}>
76
+ <input slot="input" type="number" value="10" />
77
+ <label slot="label">Label</label>
78
+ </gux-form-field-number>
79
+ `;
80
+ const page = await newSpecPage({ components, html, language });
81
+ expect(page.root).toMatchSnapshot();
82
+ });
83
+ });
84
+ });
71
85
  describe('help', () => {
72
86
  it('should render component as expected', async () => {
73
87
  const html = `
@@ -29,6 +29,7 @@ import { GuxFormFieldHelp } from "../../functional-components/gux-form-field-hel
29
29
  export class GuxFormFieldPhone {
30
30
  constructor() {
31
31
  this.labelPosition = undefined;
32
+ this.indicatorMark = 'required';
32
33
  this.computedLabelPosition = 'above';
33
34
  this.disabled = undefined;
34
35
  this.required = false;
@@ -91,14 +92,14 @@ export class GuxFormFieldPhone {
91
92
  }
92
93
  render() {
93
94
  var _a;
94
- return (h(GuxFormFieldFieldsetContainer, { key: 'f59d59a0f211944242fa5cb903783c0ec688a3dc', labelPosition: this.computedLabelPosition }, h(GuxFormFieldScreenreaderLabel, { key: '46d2314d09ac44e99592fe5ae51f3f9f42797eca' }, (_a = this.label) === null || _a === void 0 ? void 0 :
95
- _a.textContent, this.renderText(this.getI18nValue('required'), this.required), this.renderText(getSlotTextContent(this.root, 'error'), this.hasError), this.renderText(getSlotTextContent(this.root, 'label-info'), this.hasLabelInfo)), h(GuxFormFieldVisualLabel, { key: '6beddafc280b6dda6773e71b7fefcdac626ce1a4', position: this.computedLabelPosition, required: this.required }, h("slot", { key: 'fa6011c0ab31dadaf15c02ed73ad74385dfcd0b7', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: 'edcb15d0cff3838217b1e21f0ed7fab64db2ec39', variant: "required", required: this.required }), h("slot", { key: 'a90402b0c8e5f58d8c204e81ee19667cd176720c', name: "label-info" })), h("div", { key: '5fa23b1af5132135c5900ddb30f7779648f2cb47', class: "gux-input-and-error-container" }, h("div", { key: 'b54a1436d004891780cd737bf4ef6d9c9a1f4b2b', class: {
95
+ return (h(GuxFormFieldFieldsetContainer, { key: 'f16ffc855c4ff55f987495093ef141e389c8e47f', labelPosition: this.computedLabelPosition }, h(GuxFormFieldScreenreaderLabel, { key: '8123821ad38bc998a095561235f119835681b44f' }, (_a = this.label) === null || _a === void 0 ? void 0 :
96
+ _a.textContent, this.renderText(this.getI18nValue('required'), this.required), this.renderText(getSlotTextContent(this.root, 'error'), this.hasError), this.renderText(getSlotTextContent(this.root, 'label-info'), this.hasLabelInfo)), h(GuxFormFieldVisualLabel, { key: '788e7689295cdee5c328e142e70f59950dfc7f96', position: this.computedLabelPosition, required: this.required }, h("slot", { key: 'efcd980dfe8cb85b58a9117eb596db3418e352cc', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '22eee71b6181c248d8e651a979e6e595ab5a7ed9', variant: this.indicatorMark, required: this.required }), h("slot", { key: '3715ff4399fd04204797f28a3bfe16726a327815', name: "label-info" })), h("div", { key: 'aae66367993cfdffa60d3525675a562bd9bfbc5d', class: "gux-input-and-error-container" }, h("div", { key: 'd89f8b5a5aedf029f31e9d0c5e1c34c4bd352cff', class: {
96
97
  'gux-input': true,
97
98
  'gux-input-error': this.hasError
98
- } }, h("div", { key: '436c0d1c902cb6e4d9a7a091928bdbd081b46f99', class: {
99
+ } }, h("div", { key: '317049b3ab3a986f3f4bafbc9c6f647e78ac4a21', class: {
99
100
  'gux-input-container': true,
100
101
  'gux-disabled': this.disabled
101
- } }, h("slot", { key: 'b0da838a3f47a070489a78666f80fb0925734dd9' }))), h(GuxFormFieldError, { key: 'db226c7be27b8220e18bb0e772e05fe46ce65adc', show: this.hasError }, h("slot", { key: '6e3f9975a9220b5ea93a096fa76455105f1c617c', name: "error" })), h(GuxFormFieldHelp, { key: '0e9c4b1a117c0cb0da2d58749b8a43924d027541', show: !this.hasError && this.hasHelp }, h("slot", { key: 'b7ae2ae7958eb4c8a31a74943914fd9583a7f345', name: "help" })))));
102
+ } }, h("slot", { key: '3d539d235373a41fb6f937f3a88b91f2eec0bb0e' }))), h(GuxFormFieldError, { key: '86a6cd99d5d50f2bf4866a6f40b27bc4eb345f53', show: this.hasError }, h("slot", { key: '478e089f1f16858570b13d73802d24ac705ccec9', name: "error" })), h(GuxFormFieldHelp, { key: '20caea1fa5e73ff35b8ae644d8699c5011ab293f', show: !this.hasError && this.hasHelp }, h("slot", { key: '9d4158f94a959135b4e6a71ecca5e64ef5768308', name: "help" })))));
102
103
  }
103
104
  renderText(text, condition = false) {
104
105
  if (condition) {
@@ -164,6 +165,30 @@ export class GuxFormFieldPhone {
164
165
  },
165
166
  "attribute": "label-position",
166
167
  "reflect": false
168
+ },
169
+ "indicatorMark": {
170
+ "type": "string",
171
+ "mutable": false,
172
+ "complexType": {
173
+ "original": "GuxFormFieldIndicatorMark",
174
+ "resolved": "\"optional\" | \"required\"",
175
+ "references": {
176
+ "GuxFormFieldIndicatorMark": {
177
+ "location": "import",
178
+ "path": "../../gux-form-field.types",
179
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
180
+ }
181
+ }
182
+ },
183
+ "required": false,
184
+ "optional": false,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
188
+ },
189
+ "attribute": "indicator-mark",
190
+ "reflect": false,
191
+ "defaultValue": "'required'"
167
192
  }
168
193
  };
169
194
  }
@@ -32,6 +32,20 @@ describe('gux-form-field-phone', () => {
32
32
  expect(page.root).toMatchSnapshot();
33
33
  });
34
34
  });
35
+ describe('indicator marks', () => {
36
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
37
+ it(`should render component as expected (${index + 1})`, async () => {
38
+ const html = `
39
+ <gux-form-field-phone ${indicatorMark}>
40
+ <gux-phone-input-beta></gux-phone-input-beta>
41
+ <label slot="label">Label</label>
42
+ </gux-form-field-phone>
43
+ `;
44
+ const page = await newSpecPage({ components, html, language });
45
+ expect(page.root).toMatchSnapshot();
46
+ });
47
+ });
48
+ });
35
49
  });
36
50
  describe('error', () => {
37
51
  it('should render component as expected', async () => {
@@ -31,6 +31,7 @@ export class GuxFormField {
31
31
  this.displayUnits = undefined;
32
32
  this.valueInTooltip = undefined;
33
33
  this.labelPosition = undefined;
34
+ this.indicatorMark = 'required';
34
35
  this.computedLabelPosition = 'above';
35
36
  this.disabled = undefined;
36
37
  this.required = undefined;
@@ -113,9 +114,9 @@ export class GuxFormField {
113
114
  clearInterval(this.valueWatcherId);
114
115
  }
115
116
  render() {
116
- return (h(Host, { key: '536ac7ef1a315b964bf02624dc3869c1dd96ea0d', class: {
117
+ return (h(Host, { key: '4d67610cec424ba908a0ffd339d92a5595312a43', class: {
117
118
  'gux-active': this.active
118
- } }, h(GuxFormFieldContainer, { key: '4a8c15932cbab564411aaf0a5b84b388451c69af', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '5bb81b87152c506fa2f5dd58b9dd1f2c0436a75e', required: this.required, position: this.computedLabelPosition }, h("slot", { key: 'd8fef894e3055e777419c6b40da7add8d096f9fc', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '941cbbe16442409502235663a3293adc1d86e895', variant: "required", required: this.required }), h("slot", { key: 'bae23aa9ba01d17ddd08dc807eb75d169648293d', name: "label-info" })), h("div", { key: '028ca2d0fb9b09c64d516629bb33f43bc4d1d2fb', class: "gux-input-and-error-container" }, this.renderRangeInput(), h(GuxFormFieldError, { key: '12713c069c47170c967872e6bfb75d240a7cec40', show: this.hasError }, h("slot", { key: 'a3d0371ae88f3b34f63dd67f9ebfeb986fa02eab', name: "error" })), h(GuxFormFieldHelp, { key: '7e67aff4453179f3ba7d175354b1d1864ace26ae', show: !this.hasError && this.hasHelp }, h("slot", { key: '9c3e1c6c22d718dda1857a6830000e85ecf31dfa', name: "help" }))))));
119
+ } }, h(GuxFormFieldContainer, { key: '2807aad199c83a96c00f24d9cb89554bf1e6b7f6', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: 'ce51d571a2904e806feb72563b9c4492d8d803bd', required: this.required, position: this.computedLabelPosition }, h("slot", { key: '46f09c1ae15f722000274151775eb7a7e1172941', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: 'e152da38ff37c07e8a5869b349a7a8593381576b', variant: this.indicatorMark, required: this.required }), h("slot", { key: 'a691b52c4251c9f229c3ed7950c1cc8661124e42', name: "label-info" })), h("div", { key: '6b471bc8841f4f68ca8f3dcdbb6ba3f184fbe98f', class: "gux-input-and-error-container" }, this.renderRangeInput(), h(GuxFormFieldError, { key: 'bb7d4328cc6357b68c83aa1ccb6b66bfc6e3dea1', show: this.hasError }, h("slot", { key: '7f192481f8c2a933c75ea183bd03d1d29a6671c9', name: "error" })), h(GuxFormFieldHelp, { key: 'f89a1016fdb911cd55a912ae1bdbfea682c46c0e', show: !this.hasError && this.hasHelp }, h("slot", { key: '3fb73fab436c6db7979f5da1e84a455e01619150', name: "help" }))))));
119
120
  }
120
121
  get variant() {
121
122
  return this.labelPosition ? this.labelPosition.toLowerCase() : 'none';
@@ -247,6 +248,30 @@ export class GuxFormField {
247
248
  },
248
249
  "attribute": "label-position",
249
250
  "reflect": false
251
+ },
252
+ "indicatorMark": {
253
+ "type": "string",
254
+ "mutable": false,
255
+ "complexType": {
256
+ "original": "GuxFormFieldIndicatorMark",
257
+ "resolved": "\"optional\" | \"required\"",
258
+ "references": {
259
+ "GuxFormFieldIndicatorMark": {
260
+ "location": "import",
261
+ "path": "../../gux-form-field.types",
262
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
263
+ }
264
+ }
265
+ },
266
+ "required": false,
267
+ "optional": false,
268
+ "docs": {
269
+ "tags": [],
270
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
271
+ },
272
+ "attribute": "indicator-mark",
273
+ "reflect": false,
274
+ "defaultValue": "'required'"
250
275
  }
251
276
  };
252
277
  }
@@ -29,6 +29,7 @@ import { focusInputElement } from "../../../../../utils/dom/focus-input-element"
29
29
  export class GuxFormFieldSearch {
30
30
  constructor() {
31
31
  this.labelPosition = undefined;
32
+ this.indicatorMark = 'required';
32
33
  this.computedLabelPosition = 'above';
33
34
  this.clearable = true;
34
35
  this.disabled = undefined;
@@ -93,13 +94,13 @@ export class GuxFormFieldSearch {
93
94
  }
94
95
  }
95
96
  render() {
96
- return (h(GuxFormFieldContainer, { key: '61f46a689d49d8525c6df99004583b0eb298ca69', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '32b69524e41af3bd70f27692cfa8fed7760adc82', required: this.required, position: this.computedLabelPosition }, h("slot", { key: '9e728f8517117c8842a7558704ca57a3528b92bc', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '3e03db4fe44fd5576cd01d7feff3079ec99f5b59', variant: "required", required: this.required }), h("slot", { key: '6ff27eda3222581c520f422366f99f859272bf41', name: "label-info" })), h("div", { key: '2afd9556de40daf92e239f1788cb9cf26ff40fba', class: "gux-input-and-error-container" }, h("div", { key: '4146064d65f43999a3337d8ce836645697ab7f5c', class: {
97
+ return (h(GuxFormFieldContainer, { key: 'e6305e46a67dfb6588e7994e4acf8d40209614ea', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '3fe4869e001fdd736a4476061c84bb7f3f81493f', required: this.required, position: this.computedLabelPosition }, h("slot", { key: '53cbd391bc92a2ba90cb6f9eb6c3660305f171db', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '4c5ba3b3358e5ce0f17f9c2b8a54073fc5556ed1', variant: this.indicatorMark, required: this.required }), h("slot", { key: '3d423aaf1a39b465dd32de1b76bb5c3e73a56a8c', name: "label-info" })), h("div", { key: 'db665c3e2b17b638fec7e439a4ff6c741c35816b', class: "gux-input-and-error-container" }, h("div", { key: '8b777680340c5f4dd33a03d1368d06d67fef46e6', class: {
97
98
  'gux-input': true,
98
99
  'gux-input-error': this.hasError
99
- } }, h("div", { key: 'b4f4b06f375b0740a9f75fc9f17ad7c8d32a0ad6', class: {
100
+ } }, h("div", { key: '9419559eaa633e26b00cd105471b1d41810705a8', class: {
100
101
  'gux-input-container': true,
101
102
  'gux-disabled': this.disabled
102
- }, onClick: () => focusInputElement(this.input) }, h("gux-icon", { key: 'd7a8da28289fe795347ad5b7b5717b25c22c6671', "icon-name": "fa/magnifying-glass-regular", decorative: true }), h("slot", { key: '2d2d38f7feb613097e19b1138ca181951e0d5346', name: "input" }), this.clearable && this.hasContent && !this.disabled && (h("gux-form-field-input-clear-button", { onClick: () => clearInput(this.input) })))), h(GuxFormFieldError, { key: 'f0be5527b1c78adc3ff2be5e1ca962e1ac7b4c9f', show: this.hasError }, h("slot", { key: '0a13d448d55dfd172a962155a03c98c53216c923', name: "error" })), h(GuxFormFieldHelp, { key: 'c659a6499d84260e5a3aa8f721be4b7547e8e144', show: !this.hasError && this.hasHelp }, h("slot", { key: '5f7f33ee71a283faaad06e2c4e6ac05f302b3efb', name: "help" })))));
103
+ }, onClick: () => focusInputElement(this.input) }, h("gux-icon", { key: '0501942b05a8a3516cdcd2761a8293b679e1c3e4', "icon-name": "fa/magnifying-glass-regular", decorative: true }), h("slot", { key: 'd27e73e819b75228f8d783af9f34e209175eb714', name: "input" }), this.clearable && this.hasContent && !this.disabled && (h("gux-form-field-input-clear-button", { onClick: () => clearInput(this.input) })))), h(GuxFormFieldError, { key: '7be9989dd153517c36ffb93dbeeb14b19b2d5a9f', show: this.hasError }, h("slot", { key: '5cde9763882793f85d56c04a338d1538564ec88f', name: "error" })), h(GuxFormFieldHelp, { key: '140a0a88010219a1b573de92731a94febdec11bb', show: !this.hasError && this.hasHelp }, h("slot", { key: 'd8a74f72e8ea37109ec1d2ab5158237904990bb5', name: "help" })))));
103
104
  }
104
105
  get variant() {
105
106
  const labelPositionVariant = this.labelPosition
@@ -165,6 +166,30 @@ export class GuxFormFieldSearch {
165
166
  },
166
167
  "attribute": "label-position",
167
168
  "reflect": false
169
+ },
170
+ "indicatorMark": {
171
+ "type": "string",
172
+ "mutable": false,
173
+ "complexType": {
174
+ "original": "GuxFormFieldIndicatorMark",
175
+ "resolved": "\"optional\" | \"required\"",
176
+ "references": {
177
+ "GuxFormFieldIndicatorMark": {
178
+ "location": "import",
179
+ "path": "../../gux-form-field.types",
180
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
181
+ }
182
+ }
183
+ },
184
+ "required": false,
185
+ "optional": false,
186
+ "docs": {
187
+ "tags": [],
188
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
189
+ },
190
+ "attribute": "indicator-mark",
191
+ "reflect": false,
192
+ "defaultValue": "'required'"
168
193
  }
169
194
  };
170
195
  }
@@ -48,6 +48,20 @@ describe('gux-form-field-search', () => {
48
48
  });
49
49
  });
50
50
  });
51
+ describe('indicator marks', () => {
52
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
53
+ it(`should render component as expected (${index + 1})`, async () => {
54
+ const html = `
55
+ <gux-form-field-search ${indicatorMark}>
56
+ <input slot="input" type="search" value="Sample search"/>
57
+ <label slot="label">Label</label>
58
+ </gux-form-field-search>
59
+ `;
60
+ const page = await newSpecPage({ components, html, language });
61
+ expect(page.root).toMatchSnapshot();
62
+ });
63
+ });
64
+ });
51
65
  describe('help', () => {
52
66
  it('should render component as expected', async () => {
53
67
  const html = `
@@ -28,6 +28,7 @@ import { trackComponent } from "../../../../../utils/tracking/usage";
28
28
  export class GuxFormFieldSelect {
29
29
  constructor() {
30
30
  this.labelPosition = undefined;
31
+ this.indicatorMark = 'required';
31
32
  this.computedLabelPosition = 'above';
32
33
  this.disabled = undefined;
33
34
  this.required = undefined;
@@ -83,13 +84,13 @@ export class GuxFormFieldSelect {
83
84
  }
84
85
  }
85
86
  render() {
86
- return (h(GuxFormFieldContainer, { key: '08980ed5dc32c02b0dbc3e599b714d1f122985b2', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '1a6065c0a948c3c3d9581c2d70d1820a98dabbb7', required: this.required, position: this.computedLabelPosition }, h("slot", { key: '593b4b6b7532edc2e1adef06f455f787795a65d4', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: '1864bd74afea14fb9288374bbda67a1baefac500', variant: "required", required: this.required }), h("slot", { key: '1b038f71c9bbbbae97520e5386e2b4ee2b0e874c', name: "label-info" })), h("div", { key: 'a46e1cc02003e98c48929d11f1467cc41e10d88c', class: "gux-input-and-error-container" }, h("div", { key: 'f0933fc43865ff9bfa371841fa96c1cc7d6b699d', class: {
87
+ return (h(GuxFormFieldContainer, { key: 'aa58368b08402d14160cf3daab82297ff13536f4', labelPosition: this.computedLabelPosition }, h(GuxFormFieldLabel, { key: '856176b61d3542508a8e69242da958303b5355f6', required: this.required, position: this.computedLabelPosition }, h("slot", { key: 'acb41a286f0d4e9bfd61a2d6d9e5a5784e2c2b5a', name: "label", onSlotchange: () => this.setLabel() }), h("gux-form-field-label-indicator", { key: 'a486e36eaf157067979cd7152251b78c3e30ec56', variant: this.indicatorMark, required: this.required }), h("slot", { key: '569226b12b59c82ae33894ef00bd075e3053bd6e', name: "label-info" })), h("div", { key: 'ff819b568822abd448e2ecd13394618552a6b220', class: "gux-input-and-error-container" }, h("div", { key: 'c185c9e9f3f3f77ad05109bd05fdba0527f552cd', class: {
87
88
  'gux-input': true,
88
89
  'gux-input-error': this.hasError
89
- } }, h("div", { key: 'b3fd5ec34c9a0dc48a68150626052d6bdbf2f81b', class: {
90
+ } }, h("div", { key: 'db3d835cc3dc153892340eb9dc2e6493846cc707', class: {
90
91
  'gux-input-container': true,
91
92
  'gux-disabled': this.disabled
92
- } }, h("slot", { key: '0be56977b450309a943fd6864a8c7ea761603fdb', name: "input" }), h("gux-icon", { key: 'eeb535fca9eec5a1209dbfde6cbb5b3c67f5ed1b', "icon-name": "custom/chevron-down-small-regular", decorative: true }))), h(GuxFormFieldError, { key: '14601f0ddd918bddec29db3fabeb50060bfac077', show: this.hasError }, h("slot", { key: '362ed23b0b3f95531f58e81c8f166295b3e3d619', name: "error" })), h(GuxFormFieldHelp, { key: 'f87ffcfe4adf34e5066eb7d5b720c7f0d74fe255', show: !this.hasError && this.hasHelp }, h("slot", { key: 'aa8d21b4275e76d5003010e2b4bd793ea4ac7f83', name: "help" })))));
93
+ } }, h("slot", { key: '4feadf722e748a5a7ba00eef18a429638f6fe21c', name: "input" }), h("gux-icon", { key: 'aa35722e94844e822e60c76ea73169b6fe802503', "icon-name": "custom/chevron-down-small-regular", decorative: true }))), h(GuxFormFieldError, { key: 'e52c3f9912517e5a6decb05a1585f8bf605f6789', show: this.hasError }, h("slot", { key: 'db0d496150bd89772305a2994a2a7caed61569ba', name: "error" })), h(GuxFormFieldHelp, { key: 'bf90c868e6b667087f46f895a50b57e294ce9ee9', show: !this.hasError && this.hasHelp }, h("slot", { key: '6c89362a8db8346f5feeb6447bdf17c3f3522b1a', name: "help" })))));
93
94
  }
94
95
  get variant() {
95
96
  const labelPositionVariant = this.labelPosition
@@ -151,6 +152,30 @@ export class GuxFormFieldSelect {
151
152
  },
152
153
  "attribute": "label-position",
153
154
  "reflect": false
155
+ },
156
+ "indicatorMark": {
157
+ "type": "string",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "GuxFormFieldIndicatorMark",
161
+ "resolved": "\"optional\" | \"required\"",
162
+ "references": {
163
+ "GuxFormFieldIndicatorMark": {
164
+ "location": "import",
165
+ "path": "../../gux-form-field.types",
166
+ "id": "src/components/stable/gux-form-field/gux-form-field.types.ts::GuxFormFieldIndicatorMark"
167
+ }
168
+ }
169
+ },
170
+ "required": false,
171
+ "optional": false,
172
+ "docs": {
173
+ "tags": [],
174
+ "text": "Field indicator mark which can show *, (optional) or blank\nDefaults to required. When set to required, the component will display * for required fields and blank for optional\nWhen set to optional, the component will display (optional) for optional and blank for required."
175
+ },
176
+ "attribute": "indicator-mark",
177
+ "reflect": false,
178
+ "defaultValue": "'required'"
154
179
  }
155
180
  };
156
181
  }
@@ -59,6 +59,24 @@ describe('gux-form-field-select', () => {
59
59
  });
60
60
  });
61
61
  });
62
+ describe('indicator marks', () => {
63
+ ['', 'indicator-mark="optional"', 'indicator-mark="required"'].forEach((indicatorMark, index) => {
64
+ it(`should render component as expected (${index + 1})`, async () => {
65
+ const html = `
66
+ <gux-form-field-select ${indicatorMark}>
67
+ <select slot="input" name="lp-1">
68
+ <option value="option1">Option 1</option>
69
+ <option value="option2">Option 2</option>
70
+ <option value="option3">Option 3</option>
71
+ </select>
72
+ <label slot="label">Default</label>
73
+ </gux-form-field-select>
74
+ `;
75
+ const page = await newSpecPage({ components, html, language });
76
+ expect(page.root).toMatchSnapshot();
77
+ });
78
+ });
79
+ });
62
80
  describe('help', () => {
63
81
  it('should render component as expected', async () => {
64
82
  const html = `