@riverty/web-components 5.7.0 → 6.0.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 (273) hide show
  1. package/CHANGELOG.md +128 -0
  2. package/custom-elements.json +152 -372
  3. package/dist/cjs/index-DJ4H_bFj.js +6 -10
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/r-accordion-panel.cjs.entry.js +1 -1
  6. package/dist/cjs/r-accordion-section.cjs.entry.js +1 -1
  7. package/dist/cjs/r-accordion-trigger.cjs.entry.js +5 -35
  8. package/dist/cjs/r-accordion.cjs.entry.js +3 -7
  9. package/dist/cjs/r-alert.cjs.entry.js +45 -14
  10. package/dist/cjs/r-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/r-button.cjs.entry.js +2 -2
  12. package/dist/cjs/r-checkbox-group.cjs.entry.js +28 -24
  13. package/dist/cjs/r-checkbox.cjs.entry.js +97 -81
  14. package/dist/cjs/r-dialog.cjs.entry.js +3 -11
  15. package/dist/cjs/r-hint_2.cjs.entry.js +50 -0
  16. package/dist/cjs/{r-hint_3.cjs.entry.js → r-icon-button_2.cjs.entry.js} +64 -51
  17. package/dist/cjs/r-icon.cjs.entry.js +1 -1
  18. package/dist/cjs/r-input-code.cjs.entry.js +133 -25
  19. package/dist/cjs/r-input-date.cjs.entry.js +87 -23
  20. package/dist/cjs/r-input-password.cjs.entry.js +34 -13
  21. package/dist/cjs/r-input-phone-number.cjs.entry.js +30 -22
  22. package/dist/cjs/r-input.cjs.entry.js +108 -49
  23. package/dist/cjs/r-list-item.cjs.entry.js +5 -5
  24. package/dist/cjs/r-pagination.cjs.entry.js +1 -1
  25. package/dist/cjs/r-panel.cjs.entry.js +2 -2
  26. package/dist/cjs/r-popover-action.cjs.entry.js +2 -2
  27. package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
  28. package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
  29. package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
  30. package/dist/cjs/r-popover.cjs.entry.js +3 -3
  31. package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
  33. package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
  34. package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
  35. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
  36. package/dist/cjs/r-radio-button.cjs.entry.js +29 -12
  37. package/dist/cjs/r-radio-group.cjs.entry.js +32 -32
  38. package/dist/cjs/r-select-option.cjs.entry.js +1 -1
  39. package/dist/cjs/r-select.cjs.entry.js +116 -40
  40. package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
  41. package/dist/cjs/r-stepper-item.cjs.entry.js +2 -2
  42. package/dist/cjs/r-stepper.cjs.entry.js +1 -1
  43. package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
  44. package/dist/cjs/r-tab.cjs.entry.js +1 -1
  45. package/dist/cjs/r-tabs-list.cjs.entry.js +1 -1
  46. package/dist/cjs/r-tabs.cjs.entry.js +1 -1
  47. package/dist/cjs/r-textarea.cjs.entry.js +24 -23
  48. package/dist/cjs/r-toast-group.cjs.entry.js +1 -1
  49. package/dist/cjs/r-toast.cjs.entry.js +51 -20
  50. package/dist/cjs/web-components.cjs.js +1 -1
  51. package/dist/collection/collection-manifest.json +0 -1
  52. package/dist/collection/components/accordion/accordion.css +0 -2
  53. package/dist/collection/components/accordion/accordion.js +4 -8
  54. package/dist/collection/components/accordion/exports.js +1 -1
  55. package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
  56. package/dist/collection/components/accordion-section/accordion-section.js +1 -1
  57. package/dist/collection/components/accordion-trigger/accordion-trigger.css +0 -4
  58. package/dist/collection/components/accordion-trigger/accordion-trigger.js +4 -215
  59. package/dist/collection/components/alert/alert.css +58 -12
  60. package/dist/collection/components/alert/alert.js +92 -17
  61. package/dist/collection/components/alert/exports.js +1 -1
  62. package/dist/collection/components/badge/badge.js +1 -1
  63. package/dist/collection/components/button/button.css +6 -7
  64. package/dist/collection/components/button/button.js +1 -1
  65. package/dist/collection/components/checkbox/checkbox.js +121 -104
  66. package/dist/collection/components/checkbox-group/checkbox-group.js +48 -63
  67. package/dist/collection/components/dialog/dialog.css +1 -3
  68. package/dist/collection/components/dialog/dialog.js +2 -10
  69. package/dist/collection/components/hint/hint.js +2 -2
  70. package/dist/collection/components/icon/bundled-icons/riverty-kit.json +1 -1
  71. package/dist/collection/components/icon/riverty-kit.js +1 -1
  72. package/dist/collection/components/icon-button/icon-button.css +0 -7
  73. package/dist/collection/components/icon-button/icon-button.js +3 -3
  74. package/dist/collection/components/input/input.css +3 -0
  75. package/dist/collection/components/input/input.js +221 -378
  76. package/dist/collection/components/input-code/exports.js +2 -0
  77. package/dist/collection/components/input-code/input-code.js +335 -34
  78. package/dist/collection/components/input-date/input-date.js +237 -87
  79. package/dist/collection/components/input-password/exports.js +1 -0
  80. package/dist/collection/components/input-password/input-password.css +1 -0
  81. package/dist/collection/components/input-password/input-password.js +233 -75
  82. package/dist/collection/components/input-phone-number/input-phone-number.js +50 -85
  83. package/dist/collection/components/label/label.js +3 -113
  84. package/dist/collection/components/list-item/list-item/list-item.css +7 -7
  85. package/dist/collection/components/list-item/list-item/list-item.js +4 -26
  86. package/dist/collection/components/pagination/pagination.css +23 -23
  87. package/dist/collection/components/panel/panel.js +2 -2
  88. package/dist/collection/components/popover/exports.js +0 -1
  89. package/dist/collection/components/popover/popover.css +13 -13
  90. package/dist/collection/components/popover/popover.js +2 -55
  91. package/dist/collection/components/popover-action/popover-action.css +3 -5
  92. package/dist/collection/components/popover-action/popover-action.js +1 -1
  93. package/dist/collection/components/popover-content/popover-content.js +1 -1
  94. package/dist/collection/components/popover-headline/popover-headline.js +1 -1
  95. package/dist/collection/components/popover-trigger/popover-trigger.js +1 -1
  96. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  97. package/dist/collection/components/radio-button/radio-button.js +49 -12
  98. package/dist/collection/components/radio-button-description/radio-button-description.js +1 -1
  99. package/dist/collection/components/radio-button-leading/radio-button-leading.js +1 -1
  100. package/dist/collection/components/radio-button-title/radio-button-title.js +1 -1
  101. package/dist/collection/components/radio-button-trailing/radio-button-trailing.js +1 -1
  102. package/dist/collection/components/radio-group/radio-group.js +53 -135
  103. package/dist/collection/components/select/select.js +197 -349
  104. package/dist/collection/components/select-option/select-option.js +1 -1
  105. package/dist/collection/components/skip-link/skip-link.js +1 -1
  106. package/dist/collection/components/stepper/stepper.js +1 -1
  107. package/dist/collection/components/stepper-item/stepper-item.js +2 -2
  108. package/dist/collection/components/tab/tab.js +1 -1
  109. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  110. package/dist/collection/components/tabs/tabs.js +1 -1
  111. package/dist/collection/components/tabs-list/tabs-list.js +1 -1
  112. package/dist/collection/components/textarea/textarea.js +44 -163
  113. package/dist/collection/components/toast/toast.css +22 -14
  114. package/dist/collection/components/toast/toast.js +95 -43
  115. package/dist/collection/components/toast-group/toast-group.js +1 -1
  116. package/dist/collection/components/tooltip/tooltip.js +1 -1
  117. package/dist/esm/index-Da7qOBFr.js +6 -10
  118. package/dist/esm/loader.js +1 -1
  119. package/dist/esm/r-accordion-panel.entry.js +1 -1
  120. package/dist/esm/r-accordion-section.entry.js +1 -1
  121. package/dist/esm/r-accordion-trigger.entry.js +5 -35
  122. package/dist/esm/r-accordion.entry.js +3 -7
  123. package/dist/esm/r-alert.entry.js +45 -14
  124. package/dist/esm/r-badge.entry.js +1 -1
  125. package/dist/esm/r-button.entry.js +2 -2
  126. package/dist/esm/r-checkbox-group.entry.js +28 -24
  127. package/dist/esm/r-checkbox.entry.js +97 -81
  128. package/dist/esm/r-dialog.entry.js +3 -11
  129. package/dist/esm/r-hint_2.entry.js +47 -0
  130. package/dist/esm/{r-hint_3.entry.js → r-icon-button_2.entry.js} +65 -51
  131. package/dist/esm/r-icon.entry.js +1 -1
  132. package/dist/esm/r-input-code.entry.js +133 -25
  133. package/dist/esm/r-input-date.entry.js +87 -23
  134. package/dist/esm/r-input-password.entry.js +34 -13
  135. package/dist/esm/r-input-phone-number.entry.js +30 -22
  136. package/dist/esm/r-input.entry.js +108 -49
  137. package/dist/esm/r-list-item.entry.js +5 -5
  138. package/dist/esm/r-pagination.entry.js +1 -1
  139. package/dist/esm/r-panel.entry.js +2 -2
  140. package/dist/esm/r-popover-action.entry.js +2 -2
  141. package/dist/esm/r-popover-content.entry.js +1 -1
  142. package/dist/esm/r-popover-headline.entry.js +1 -1
  143. package/dist/esm/r-popover-trigger.entry.js +1 -1
  144. package/dist/esm/r-popover.entry.js +3 -3
  145. package/dist/esm/r-progress-bar.entry.js +1 -1
  146. package/dist/esm/r-radio-button-description.entry.js +1 -1
  147. package/dist/esm/r-radio-button-leading.entry.js +1 -1
  148. package/dist/esm/r-radio-button-title.entry.js +1 -1
  149. package/dist/esm/r-radio-button-trailing.entry.js +1 -1
  150. package/dist/esm/r-radio-button.entry.js +29 -12
  151. package/dist/esm/r-radio-group.entry.js +32 -32
  152. package/dist/esm/r-select-option.entry.js +1 -1
  153. package/dist/esm/r-select.entry.js +116 -40
  154. package/dist/esm/r-skip-link.entry.js +1 -1
  155. package/dist/esm/r-stepper-item.entry.js +2 -2
  156. package/dist/esm/r-stepper.entry.js +1 -1
  157. package/dist/esm/r-tab-panel.entry.js +1 -1
  158. package/dist/esm/r-tab.entry.js +1 -1
  159. package/dist/esm/r-tabs-list.entry.js +1 -1
  160. package/dist/esm/r-tabs.entry.js +1 -1
  161. package/dist/esm/r-textarea.entry.js +24 -23
  162. package/dist/esm/r-toast-group.entry.js +1 -1
  163. package/dist/esm/r-toast.entry.js +51 -20
  164. package/dist/esm/web-components.js +1 -1
  165. package/dist/types/components/accordion/accordion.d.ts +1 -5
  166. package/dist/types/components/accordion/exports.d.ts +1 -1
  167. package/dist/types/components/accordion-trigger/accordion-trigger.d.ts +0 -36
  168. package/dist/types/components/alert/alert.d.ts +9 -1
  169. package/dist/types/components/alert/exports.d.ts +1 -1
  170. package/dist/types/components/checkbox/checkbox.d.ts +29 -34
  171. package/dist/types/components/checkbox-group/checkbox-group.d.ts +6 -11
  172. package/dist/types/components/dialog/dialog.d.ts +0 -2
  173. package/dist/types/components/input/input.d.ts +35 -72
  174. package/dist/types/components/input-code/exports.d.ts +4 -0
  175. package/dist/types/components/input-code/input-code.d.ts +54 -7
  176. package/dist/types/components/input-date/input-date.d.ts +30 -16
  177. package/dist/types/components/input-password/exports.d.ts +1 -0
  178. package/dist/types/components/input-password/input-password.d.ts +53 -16
  179. package/dist/types/components/input-phone-number/input-phone-number.d.ts +5 -16
  180. package/dist/types/components/label/label.d.ts +0 -18
  181. package/dist/types/components/list-item/list-item/list-item.d.ts +0 -6
  182. package/dist/types/components/popover/exports.d.ts +0 -2
  183. package/dist/types/components/popover/popover.d.ts +1 -14
  184. package/dist/types/components/radio-button/radio-button.d.ts +5 -0
  185. package/dist/types/components/radio-group/radio-group.d.ts +6 -28
  186. package/dist/types/components/select/select.d.ts +34 -52
  187. package/dist/types/components/textarea/textarea.d.ts +5 -32
  188. package/dist/types/components/toast/toast.d.ts +10 -7
  189. package/dist/types/components.d.ts +347 -647
  190. package/dist/web-components/bundled-icons/riverty-kit.json +1 -1
  191. package/dist/web-components/p-0347feff.entry.js +1 -0
  192. package/dist/web-components/p-05738503.entry.js +1 -0
  193. package/dist/web-components/p-0e4c8bf1.entry.js +1 -0
  194. package/dist/web-components/p-1da75540.entry.js +1 -0
  195. package/dist/web-components/p-26ef77d6.entry.js +1 -0
  196. package/dist/web-components/p-3884c6e7.entry.js +1 -0
  197. package/dist/web-components/p-3a5a67e7.entry.js +1 -0
  198. package/dist/web-components/p-3f60c6c0.entry.js +1 -0
  199. package/dist/web-components/p-4254a383.entry.js +1 -0
  200. package/dist/web-components/{p-87f39749.entry.js → p-4595fa8e.entry.js} +1 -1
  201. package/dist/web-components/{p-4e3df002.entry.js → p-4cc58c6a.entry.js} +1 -1
  202. package/dist/web-components/p-5441b746.entry.js +1 -0
  203. package/dist/web-components/{p-72fa1fd1.entry.js → p-550e2237.entry.js} +1 -1
  204. package/dist/web-components/p-589baaf9.entry.js +1 -0
  205. package/dist/web-components/p-60341de2.entry.js +1 -0
  206. package/dist/web-components/{p-4bd3e077.entry.js → p-60ca994e.entry.js} +1 -1
  207. package/dist/web-components/{p-44ae9f33.entry.js → p-62b788bf.entry.js} +1 -1
  208. package/dist/web-components/{p-2b2f581a.entry.js → p-6303b9fe.entry.js} +1 -1
  209. package/dist/web-components/p-63fd817d.entry.js +1 -0
  210. package/dist/web-components/{p-e0e2f2b2.entry.js → p-673dbfd0.entry.js} +1 -1
  211. package/dist/web-components/p-67fa3f84.entry.js +1 -0
  212. package/dist/web-components/p-6a4f3836.entry.js +1 -0
  213. package/dist/web-components/p-6cc2ea2c.entry.js +1 -0
  214. package/dist/web-components/p-70784685.entry.js +1 -0
  215. package/dist/web-components/{p-429213ea.entry.js → p-7fed6f4d.entry.js} +1 -1
  216. package/dist/web-components/p-8a66d20c.entry.js +1 -0
  217. package/dist/web-components/{p-0bb04d79.entry.js → p-8b4d2448.entry.js} +1 -1
  218. package/dist/web-components/{p-c7f8e59b.entry.js → p-8c31cbd5.entry.js} +1 -1
  219. package/dist/web-components/p-8dac326b.entry.js +1 -0
  220. package/dist/web-components/{p-1c2497de.entry.js → p-9ef1bbee.entry.js} +1 -1
  221. package/dist/web-components/p-a0dbde7c.entry.js +1 -0
  222. package/dist/web-components/{p-755cc697.entry.js → p-a71485d8.entry.js} +1 -1
  223. package/dist/web-components/p-a7d22c76.entry.js +1 -0
  224. package/dist/web-components/{p-85a9af42.entry.js → p-ae251d2f.entry.js} +1 -1
  225. package/dist/web-components/{p-77155630.entry.js → p-b98ab649.entry.js} +1 -1
  226. package/dist/web-components/p-b9e3b3d6.entry.js +1 -0
  227. package/dist/web-components/p-c1e748f2.entry.js +1 -0
  228. package/dist/web-components/p-c478712b.entry.js +1 -0
  229. package/dist/web-components/{p-72c0c0d8.entry.js → p-d054eb4d.entry.js} +1 -1
  230. package/dist/web-components/p-d433a828.entry.js +1 -0
  231. package/dist/web-components/p-d7726e46.entry.js +1 -0
  232. package/dist/web-components/p-d819c8e5.entry.js +1 -0
  233. package/dist/web-components/p-e2188953.entry.js +1 -0
  234. package/dist/web-components/{p-3b4e3faf.entry.js → p-e5945c01.entry.js} +1 -1
  235. package/dist/web-components/{p-d1379ac6.entry.js → p-f9d5004c.entry.js} +1 -1
  236. package/dist/web-components/web-components.esm.js +1 -1
  237. package/package.json +1 -1
  238. package/dist/cjs/r-accordion-item.cjs.entry.js +0 -78
  239. package/dist/cjs/r-icon-button.cjs.entry.js +0 -81
  240. package/dist/collection/components/accordion-item/accordion-item.css +0 -121
  241. package/dist/collection/components/accordion-item/accordion-item.js +0 -138
  242. package/dist/esm/r-accordion-item.entry.js +0 -76
  243. package/dist/esm/r-icon-button.entry.js +0 -79
  244. package/dist/types/components/accordion-item/accordion-item.d.ts +0 -26
  245. package/dist/web-components/p-00ca474f.entry.js +0 -1
  246. package/dist/web-components/p-289eb4b0.entry.js +0 -1
  247. package/dist/web-components/p-2b8e12ae.entry.js +0 -1
  248. package/dist/web-components/p-2e2c8a5b.entry.js +0 -1
  249. package/dist/web-components/p-3a39932b.entry.js +0 -1
  250. package/dist/web-components/p-3bc93d65.entry.js +0 -1
  251. package/dist/web-components/p-44be9992.entry.js +0 -1
  252. package/dist/web-components/p-4652635a.entry.js +0 -1
  253. package/dist/web-components/p-51a5804b.entry.js +0 -1
  254. package/dist/web-components/p-63474b32.entry.js +0 -1
  255. package/dist/web-components/p-74d2a563.entry.js +0 -1
  256. package/dist/web-components/p-7ad8e78b.entry.js +0 -1
  257. package/dist/web-components/p-8028c2a9.entry.js +0 -1
  258. package/dist/web-components/p-96ddeb7f.entry.js +0 -1
  259. package/dist/web-components/p-9d898089.entry.js +0 -1
  260. package/dist/web-components/p-9e50120b.entry.js +0 -1
  261. package/dist/web-components/p-9eb1f262.entry.js +0 -1
  262. package/dist/web-components/p-a022f356.entry.js +0 -1
  263. package/dist/web-components/p-a7e7f8fa.entry.js +0 -1
  264. package/dist/web-components/p-b2f03016.entry.js +0 -1
  265. package/dist/web-components/p-c300c22f.entry.js +0 -1
  266. package/dist/web-components/p-c937bd92.entry.js +0 -1
  267. package/dist/web-components/p-cbcd7699.entry.js +0 -1
  268. package/dist/web-components/p-d93c240d.entry.js +0 -1
  269. package/dist/web-components/p-e4b66277.entry.js +0 -1
  270. package/dist/web-components/p-e6a31881.entry.js +0 -1
  271. package/dist/web-components/p-f6a92287.entry.js +0 -1
  272. package/dist/web-components/p-f770e22b.entry.js +0 -1
  273. package/dist/web-components/p-f952161b.entry.js +0 -1
@@ -70,6 +70,10 @@ const InputDate = class {
70
70
  this.validityState = '';
71
71
  /** Validity message passed from validateFormElement function after validation */
72
72
  this.validityMessage = '';
73
+ /** Defines if the component has been touched by user */
74
+ this.touched = false;
75
+ /** Defines if the value has been changed by user interaction */
76
+ this.dirty = false;
73
77
  /**
74
78
  * Initial attributes state
75
79
  * */
@@ -160,6 +164,7 @@ const InputDate = class {
160
164
  if (this.readonly)
161
165
  return;
162
166
  if (event.code === 'Enter') {
167
+ this.touched = true;
163
168
  this.validateFormElement(this.nativeElement);
164
169
  if (this.invalid && !this.isNoValidate)
165
170
  return;
@@ -210,6 +215,8 @@ const InputDate = class {
210
215
  if (this.readonly)
211
216
  return;
212
217
  this.value = event.clipboardData.getData('text');
218
+ this.touched = true;
219
+ this.dirty = true;
213
220
  event.preventDefault();
214
221
  };
215
222
  this.createInputHandler = (input, index) => {
@@ -227,7 +234,10 @@ const InputDate = class {
227
234
  index < this.inputOrder.length - 1) {
228
235
  (_c = this.inputs[index + 1]) === null || _c === void 0 ? void 0 : _c.focus();
229
236
  }
237
+ this.touched = true;
238
+ this.dirty = true;
230
239
  this.rInput.emit({ element: this.host, value: this.value });
240
+ this.validateFormElement(this.nativeElement);
231
241
  };
232
242
  this.createChangeHandler = (input) => {
233
243
  return (e) => this.handleChange(input, e);
@@ -240,29 +250,64 @@ const InputDate = class {
240
250
  event.target.value = value;
241
251
  this.setDateComponent(input, value);
242
252
  this.value = this.inputOrder.map((el) => this.getDateComponent(el)).join(this.delimiter);
253
+ this.touched = true;
254
+ this.dirty = true;
243
255
  this.rChange.emit({ element: this.host, value: this.value });
244
256
  this.validateFormElement(this.nativeElement);
245
257
  };
258
+ this.handleBlur = () => {
259
+ this.touched = true;
260
+ this.validateFormElement(this.nativeElement);
261
+ };
246
262
  this.getValidityStateData = (element) => {
263
+ let validityState = '';
264
+ let validityMessage = '';
247
265
  if (this.required && element.value.length === 0) {
248
- this.validityState = 'valueMissing';
249
- this.validityMessage = this.valueMissingMessage;
250
- return;
266
+ validityState = 'valueMissing';
267
+ validityMessage = this.valueMissingMessage;
268
+ return { validityState, validityMessage };
251
269
  }
252
- const valid = dayjs(this.value, this.format, true).isValid();
270
+ const valid = this.value ? dayjs(this.value, this.format, true).isValid() : true;
253
271
  if (!valid) {
254
- this.validityState = 'invalid';
255
- this.validityMessage = this.invalidDateMessage;
256
- return;
272
+ validityState = 'invalid';
273
+ validityMessage = this.invalidDateMessage;
274
+ return { validityState, validityMessage };
275
+ }
276
+ // Check min/max constraints only if date is valid and has a value
277
+ // Note: min and max are expected to be in the same format as this.format
278
+ // If format changes, the developer should update min/max accordingly
279
+ if (this.value && valid) {
280
+ const currentDate = dayjs(this.value, this.format, true);
281
+ // Check minimum date constraint
282
+ if (this.min) {
283
+ const minDate = dayjs(this.min, this.format, true);
284
+ if (minDate.isValid() && currentDate.isBefore(minDate, 'day')) {
285
+ validityState = 'rangeUnderflow';
286
+ validityMessage = this.rangeUnderflowMessage;
287
+ return { validityState, validityMessage };
288
+ }
289
+ }
290
+ // Check maximum date constraint
291
+ if (this.max) {
292
+ const maxDate = dayjs(this.max, this.format, true);
293
+ if (maxDate.isValid() && currentDate.isAfter(maxDate, 'day')) {
294
+ validityState = 'rangeOverflow';
295
+ validityMessage = this.rangeOverflowMessage;
296
+ return { validityState, validityMessage };
297
+ }
298
+ }
257
299
  }
258
- this.validityState = 'valid';
300
+ validityState = 'valid';
301
+ return { validityState, validityMessage };
259
302
  };
260
303
  this.validateFormElement = (element) => {
261
304
  if (element === null)
262
305
  return;
263
306
  if (this.isNoValidate)
264
307
  return;
265
- this.getValidityStateData(element);
308
+ const { validityState, validityMessage } = this.getValidityStateData(element);
309
+ this.validityState = validityState;
310
+ this.validityMessage = validityMessage;
266
311
  const isValid = this.validityState === 'valid';
267
312
  this.valid = isValid;
268
313
  this.invalid = !isValid;
@@ -311,6 +356,8 @@ const InputDate = class {
311
356
  }
312
357
  handleValueChange() {
313
358
  this.setCurrentValues();
359
+ if (this.touched)
360
+ this.validateFormElement(this.nativeElement);
314
361
  }
315
362
  /** Get the date value */
316
363
  async getValue() {
@@ -318,6 +365,7 @@ const InputDate = class {
318
365
  }
319
366
  /** Sets the date value */
320
367
  async setValue(value) {
368
+ this.nativeElement.value = value;
321
369
  this.value = value;
322
370
  }
323
371
  /** Gets the current date format */
@@ -328,6 +376,19 @@ const InputDate = class {
328
376
  async setFormat(format) {
329
377
  this.format = format;
330
378
  }
379
+ /** Gets the touched state (whether user has interacted with the input) */
380
+ async isTouched() {
381
+ return this.touched;
382
+ }
383
+ /** Gets the dirty state (whether value has been changed by user) */
384
+ async isDirty() {
385
+ return this.dirty;
386
+ }
387
+ /** Resets touched and dirty states to pristine (untouched/clean) */
388
+ async markAsPristine() {
389
+ this.touched = false;
390
+ this.dirty = false;
391
+ }
331
392
  /**
332
393
  * Resets the component by clearing all input values and focusing the first input.
333
394
  * @returns Promise that resolves when reset is complete
@@ -335,6 +396,7 @@ const InputDate = class {
335
396
  async reset() {
336
397
  if (this.readonly)
337
398
  return;
399
+ this.markAsPristine();
338
400
  this.validityState = null;
339
401
  this.validityMessage = null;
340
402
  this.value = this.initial['value'];
@@ -342,6 +404,14 @@ const InputDate = class {
342
404
  this.format = this.initial['format'];
343
405
  this.valid = !this.invalid;
344
406
  }
407
+ /**
408
+ * Validates the input date without triggering UI and returns a boolean indicating its validity.
409
+ * @returns A boolean indicating whether the input date is valid.
410
+ */
411
+ async checkValidity() {
412
+ const { validityState } = this.getValidityStateData(this.nativeElement);
413
+ return validityState === 'valid';
414
+ }
345
415
  get inputs() {
346
416
  return Array.from(this.host.shadowRoot.querySelectorAll('input[data-date-type]'));
347
417
  }
@@ -411,7 +481,7 @@ const InputDate = class {
411
481
  this.disconnectFormEventListeners();
412
482
  }
413
483
  render() {
414
- const { form, name, required, disabled, label, fieldIndicator, hint, tooltip, tooltipIcon, tooltipIconColor, uniqueId, invalid, valid, readonly } = this;
484
+ const { form, name, required, disabled, label, fieldIndicator, hint, uniqueId, invalid, valid, readonly } = this;
415
485
  const groupAttrs = {
416
486
  'aria-invalid': `${invalid || false}`,
417
487
  'aria-describedby': this.ariaDescribedBy
@@ -425,24 +495,18 @@ const InputDate = class {
425
495
  readonly,
426
496
  'aria-describedby': this.ariaDescribedBy
427
497
  };
428
- // DEPRECATED: will be removed in November 2025 release.
429
- const tooltipAttrs = tooltip ? {
430
- tooltip,
431
- 'tooltip-icon': tooltipIcon,
432
- 'tooltip-icon-color': tooltipIconColor,
433
- } : {};
434
498
  const labelAttr = label ? {
435
499
  id: `${uniqueId}-label`,
436
500
  fieldIndicator
437
501
  } : {};
438
- return (index.h(index.Host, { key: '8a1395ebe9606836eeca8c63958dd2c904901cc5', onClick: this.onHostClick }, index.h("fieldset", Object.assign({ key: '67eda3917e37c76e22dba41a3f168f25542b3e74', class: "r-input-date" }, groupAttrs), index.h("div", { key: '2e1c2fc3ff538cbaeb79cea6728a0fc01a3cfafe', class: "r-input-date--legend-container" }, index.h("legend", { key: '0f41209fd3934af15d17a60c366ae95cb7b0ffab', class: "r-input-date--legend" }, index.h("label", { key: '406ee340682dc64d75aacfe33456ed3d819b1a7d', htmlFor: uniqueId }, label ?
439
- index.h("r-label", Object.assign({}, labelAttr, tooltipAttrs), label)
502
+ return (index.h(index.Host, { key: '1a8a9175148f43758ec6b9d905c4bd2f619ffd7f', onClick: this.onHostClick, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, index.h("fieldset", Object.assign({ key: 'fb004332d8578b8da74df643bd93f93d062973bb', class: "r-input-date" }, groupAttrs), index.h("div", { key: '128e65638dc21d95c8b4b92669b0bd6733a653f6', class: "r-input-date--legend-container" }, index.h("legend", { key: '63e7e858c38930fecbe71d819f1a0b49bf711911', class: "r-input-date--legend" }, index.h("label", { key: 'ccd6a5434f5df91bf9b2c121bb182c152302d864', htmlFor: uniqueId }, label ?
503
+ index.h("r-label", Object.assign({}, labelAttr), label)
440
504
  :
441
- index.h("slot", { name: "label" }))), index.h("slot", { key: '825c6e93994dd54738f3168e782066787c48af5c', name: "popover" })), hint &&
442
- index.h("r-hint", { key: '9cee9fa8904d8fc1a1968c4a2a12caed9a708cfb', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '60db93b0f58918d1ab087455fc495b093175dca4', class: "r-input-date--container" }, index.h("r-icon", { key: '74a495cb61d248a3d10422c6e28bde310684a7e9', name: "calendar", size: "s", class: "r-input-date--calendar-icon" }), index.h("div", { key: '59d28137260f613ef9f404821e6dc2b6624fb455', class: "r-input-date--inputs" }, this.inputOrder.map((input, i) => (index.h(index.Fragment, null, index.h("input", Object.assign({ class: "r-input-date--input" }, this.getInputAttrs(input), { key: input, value: this.getDateComponent(input), onInput: this.createInputHandler(input, i), onChange: this.createChangeHandler(input), onClick: this.onInputClick, onKeyDown: this.createKeyDownHandler(i), onPaste: this.handlePaste })), i < this.inputOrder.length - 1 &&
443
- index.h("span", { "aria-hidden": "true", class: "r-input-date--delimiter" }, this.delimiter)))), index.h("input", Object.assign({ key: '9723d0a2417bf427a5a1ff4690f8745cc40899a0', type: "hidden" }, dateInputAttrs, { value: this.value, ref: (el) => this.nativeElement = el }))), index.h("div", { key: '65997938c00455e81becba759dc3fdadeeecc1e4', class: "r-input-date--trailing" }, this.readonly &&
444
- index.h("r-icon", { key: '750df4d848ef7d0e7a6b9a7b7853a3389da44232', class: "r-input-date--readonly-icon", name: "pen-disabled", size: "s" }), valid &&
445
- index.h("r-icon", { key: 'b24b8ea8a53b423c0060ac6a34d75ea7ad192b94', name: "circled-check", size: "s", color: "var(--r-status-success-regular)" }), this.hasTrailingSlot && index.h("slot", { key: '147d79539620af0051addf49d7e237c2a3428ff4', name: "trailing" }))), index.h("div", { key: 'e6b2bccd8d97560940805a08f420f5fc9b165649', id: `${uniqueId}-message`, "aria-live": "polite", class: "r-input-date--message" }, this.hasMessage && index.h("r-hint", { key: 'd4807c998838bf7a6c748a4555901e66f2ef92d0', variant: "error" }, this.message)))));
505
+ index.h("slot", { name: "label" }))), index.h("slot", { key: '4be5c643d1b0532d27f4b82692cb6ca937291d6b', name: "popover" })), hint &&
506
+ index.h("r-hint", { key: '07a912c146dff97ef991a6e375f4aeb8cd0ba45e', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '386dfb87cface9333c93d5fe8165cbe52a9a83c4', class: "r-input-date--container" }, index.h("r-icon", { key: '9ff075723ac54f6d7c2325ba59f833422404bee6', name: "calendar", size: "s", class: "r-input-date--calendar-icon" }), index.h("div", { key: 'ebcb76a92ab1591c3128a60d6620bea5b0c517ec', class: "r-input-date--inputs" }, this.inputOrder.map((input, i) => (index.h(index.Fragment, null, index.h("input", Object.assign({ class: "r-input-date--input" }, this.getInputAttrs(input), { key: input, value: this.getDateComponent(input), onInput: this.createInputHandler(input, i), onChange: this.createChangeHandler(input), onClick: this.onInputClick, onBlur: this.handleBlur, onKeyDown: this.createKeyDownHandler(i), onPaste: this.handlePaste })), i < this.inputOrder.length - 1 &&
507
+ index.h("span", { "aria-hidden": "true", class: "r-input-date--delimiter" }, this.delimiter)))), index.h("input", Object.assign({ key: 'e5736ffa215662436c539332be1414cc409ce448', type: "hidden" }, dateInputAttrs, { value: this.value, ref: (el) => this.nativeElement = el }))), index.h("div", { key: '45ccffbb4111f2fd906d9b687f62f4adc83b62aa', class: "r-input-date--trailing" }, this.readonly &&
508
+ index.h("r-icon", { key: '3a5433e3d601a83154687bdd55feeeef0ef04215', class: "r-input-date--readonly-icon", name: "pen-disabled", size: "s" }), valid &&
509
+ index.h("r-icon", { key: '03de3e49b8b51690e4fb6c2edbb7a53ca1a71f76', name: "circled-check", size: "s", color: "var(--r-status-success-regular)" }), this.hasTrailingSlot && index.h("slot", { key: 'db4911a4421b296effdd37ca08c96d8a0096e5e6', name: "trailing" }))), index.h("div", { key: 'd21f19188462be93812487702eb8a07fd3a91cea', id: `${uniqueId}-message`, "aria-live": "polite", class: "r-input-date--message" }, this.hasMessage && index.h("r-hint", { key: '6937f2d48a634308c97d33e59daa0a7242bd39fd', variant: "error" }, this.message)))));
446
510
  }
447
511
  get host() { return index.getElement(this); }
448
512
  static get watchers() { return {
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-DJ4H_bFj.js');
4
4
  var formData = require('./formData-B2DZyLxP.js');
5
5
 
6
- const inputPasswordCss = ":host{display:inline-flex;flex-direction:column;vertical-align:top}:host([full-width]:not([full-width=false])){display:block}:host([disabled]:not([disabled=false])) r-icon-button{opacity:1}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
6
+ const inputPasswordCss = ":host{display:inline-flex;flex-direction:column;vertical-align:top;--r-input--validation-icon--display:none}:host([full-width]:not([full-width=false])){display:block}:host([disabled]:not([disabled=false])) r-icon-button{opacity:1}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
7
7
 
8
8
  const InputPassword = class {
9
9
  constructor(hostRef) {
@@ -12,6 +12,7 @@ const InputPassword = class {
12
12
  this.rInput = index.createEvent(this, "rInput");
13
13
  this.rChange = index.createEvent(this, "rChange");
14
14
  this.rReset = index.createEvent(this, "rReset");
15
+ this.rVisibilityChange = index.createEvent(this, "rVisibilityChange");
15
16
  /** The value of the password input */
16
17
  this.value = '';
17
18
  /**
@@ -61,16 +62,19 @@ const InputPassword = class {
61
62
  this.rChange.emit({ element: host, value });
62
63
  };
63
64
  this.getValidityStateData = (element) => {
65
+ let validityState = '';
66
+ let validityMessage = '';
64
67
  for (const state in element.validity) {
65
68
  if (element.validity[state]) {
66
- this.validityState = state;
69
+ validityState = state;
67
70
  if (this[state + 'Message']) {
68
- this.validityMessage = this[state + 'Message'];
69
- return;
71
+ validityMessage = this[state + 'Message'];
72
+ return { validityState, validityMessage };
70
73
  }
71
- this.validityMessage = element.validationMessage;
74
+ validityMessage = element.validationMessage;
72
75
  }
73
76
  }
77
+ return { validityState, validityMessage };
74
78
  };
75
79
  this.validateFormElement = (element) => {
76
80
  if (element === null)
@@ -79,7 +83,9 @@ const InputPassword = class {
79
83
  return;
80
84
  if (this.error)
81
85
  return;
82
- this.getValidityStateData(element.shadowRoot.querySelector('input'));
86
+ const { validityState, validityMessage } = this.getValidityStateData(element.shadowRoot.querySelector('input'));
87
+ this.validityState = validityState;
88
+ this.validityMessage = validityMessage;
83
89
  const isValid = this.validityState === 'valid';
84
90
  this.valid = isValid;
85
91
  this.invalid = !isValid;
@@ -147,6 +153,7 @@ const InputPassword = class {
147
153
  async showPassword() {
148
154
  this.showed = true;
149
155
  this.alertOnPasswordVisibilityChange();
156
+ this.rVisibilityChange.emit({ element: this.host, visible: true });
150
157
  }
151
158
  /**
152
159
  * Hide password text.
@@ -154,6 +161,7 @@ const InputPassword = class {
154
161
  async hidePassword() {
155
162
  this.showed = false;
156
163
  this.alertOnPasswordVisibilityChange();
164
+ this.rVisibilityChange.emit({ element: this.host, visible: false });
157
165
  }
158
166
  /** Get the input value */
159
167
  async getValue() {
@@ -166,6 +174,14 @@ const InputPassword = class {
166
174
  this.value = value;
167
175
  this.validateFormElement(this.nativeElement);
168
176
  }
177
+ /**
178
+ * Validates the input password without triggering UI and returns a boolean indicating its validity.
179
+ * @returns A boolean indicating whether the input password is valid.
180
+ */
181
+ async checkValidity() {
182
+ const { validityState } = this.getValidityStateData(this.nativeElement.shadowRoot.querySelector('input'));
183
+ return validityState === 'valid';
184
+ }
169
185
  /** Identify wrapping form element */
170
186
  get parentFormEl() {
171
187
  return this.host.closest('form') || document.querySelector(`#${this.form}`) || null;
@@ -214,11 +230,14 @@ const InputPassword = class {
214
230
  this.disconnectFormEventListeners();
215
231
  }
216
232
  render() {
217
- const { name, placeholder, required, fieldIndicator, value, disabled, form, invalid, valid, hint, label, tooltip, tooltipIcon, tooltipIconColor, fullWidth, showPasswordAriaLabel, hidePasswordAriaLabel, showed, readonly } = this;
233
+ const { name, placeholder, required, minlength, maxlength, pattern, fieldIndicator, value, disabled, form, invalid, valid, hint, label, fullWidth, showPasswordAriaLabel, hidePasswordAriaLabel, showed, readonly, passwordrules, autocomplete, tooLongMessage, tooShortMessage, patternMismatchMessage } = this;
218
234
  const inputAttrs = {
219
235
  name,
220
236
  placeholder,
221
237
  required,
238
+ minlength,
239
+ maxlength,
240
+ pattern,
222
241
  fieldIndicator,
223
242
  value,
224
243
  disabled,
@@ -227,15 +246,17 @@ const InputPassword = class {
227
246
  valid,
228
247
  hint,
229
248
  label,
230
- tooltip,
231
- tooltipIcon,
232
- tooltipIconColor,
233
249
  fullWidth,
234
250
  novalidate: true,
235
- readonly
251
+ readonly,
252
+ passwordrules,
253
+ autocomplete,
254
+ tooLongMessage,
255
+ tooShortMessage,
256
+ patternMismatchMessage
236
257
  };
237
- return (index.h(index.Host, { key: '27a9dec1e7b44ca89bf6fa3a2519e449250503e0' }, index.h("r-input", Object.assign({ key: '5ca5a59b7dcbcc5f5bbeefd8741b679bc1d11004' }, inputAttrs, { ref: (el) => this.nativeElement = el, type: showed ? 'text' : 'password', onRInput: this.onInput, onRChange: this.onChange, onKeyUp: this.handleKeyup, onRBlur: this.handleBlur }), index.h("r-icon", { key: '62a04c271572db925e1992bd1ac540a5a09234dc', name: "padlock-closed", size: "s", slot: "leading" }), index.h("slot", { key: 'cbee36e927550e21e76dcf61de99980f92564177', name: "popover", slot: "popover" }), index.h("r-icon-button", { key: 'd4939f4be247d76df7e96eee97ea9ed1079a8f5d', slot: "trailing", name: showed ? 'eye-crossed-out' : 'eye', size: "s", disabled: disabled, label: showed ? hidePasswordAriaLabel : showPasswordAriaLabel, onClick: this.onShowClick }), this.hasMessage &&
238
- index.h("r-hint", { key: '5c5ba0c83013b4e6a283a86beb5abe1676b97093', slot: "message", variant: "error" }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage))), index.h("div", { key: '0763d06fbaf887574e44b0fedbb9d08b1725b99f', class: "visually-hidden", ref: el => this.passwordVisibilityChangeAlertContainer = el, "aria-live": "polite" })));
258
+ return (index.h(index.Host, { key: '15d9cac9269a816de47d1ae4d3818a99f6229979' }, index.h("r-input", Object.assign({ key: 'eea64612b319eae93c0fc6591c22020bf2e3d4fb' }, inputAttrs, { ref: (el) => this.nativeElement = el, type: showed ? 'text' : 'password', onRInput: this.onInput, onRChange: this.onChange, onKeyUp: this.handleKeyup, onRBlur: this.handleBlur }), index.h("r-icon", { key: 'd7a425d45f7897d7f6f11b7bf37595e25da3295b', name: "padlock-closed", size: "s", slot: "leading" }), index.h("slot", { key: '6ae8e4dc4633e692ae4280d9cd1420bf7e02d0c0', name: "popover", slot: "popover" }), index.h("r-icon-button", { key: 'e51d43f5966477dc1c35bf6a8114d5b206a58187', slot: "trailing", name: showed ? 'eye-crossed-out' : 'eye', size: "s", disabled: disabled, label: showed ? hidePasswordAriaLabel : showPasswordAriaLabel, onClick: this.onShowClick }), this.hasMessage &&
259
+ index.h("r-hint", { key: 'bcee0a5b7f75a4ddd2e2fa6a2dd44cd0392170dc', slot: "message", variant: "error" }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage))), index.h("div", { key: '995e229dfab56b03e0a177c6952c2135777f7899', class: "visually-hidden", ref: el => this.passwordVisibilityChangeAlertContainer = el, "aria-live": "polite" })));
239
260
  }
240
261
  get host() { return index.getElement(this); }
241
262
  };
@@ -2273,7 +2273,9 @@ const InputPhoneNumber = class {
2273
2273
  return;
2274
2274
  if (this.error)
2275
2275
  return;
2276
- this.getValidityStateData();
2276
+ const { validityState, validityMessage } = this.getValidityStateData();
2277
+ this.validityState = validityState;
2278
+ this.validityMessage = validityMessage;
2277
2279
  const isValid = this.validityState === 'valid';
2278
2280
  this.valid = isValid;
2279
2281
  this.invalid = !isValid;
@@ -2284,22 +2286,25 @@ const InputPhoneNumber = class {
2284
2286
  };
2285
2287
  this.getValidityStateData = () => {
2286
2288
  var _a, _b;
2289
+ let validityState = '';
2290
+ let validityMessage = '';
2287
2291
  if (!this.required && !((_a = this.phoneNumber) === null || _a === void 0 ? void 0 : _a.length)) {
2288
- this.validityState = 'valid';
2289
- return;
2292
+ validityState = 'valid';
2293
+ return { validityState, validityMessage };
2290
2294
  }
2291
2295
  if (!((_b = this.phoneNumber) === null || _b === void 0 ? void 0 : _b.length)) {
2292
- this.validityState = 'valueMissing';
2293
- this.validityMessage = this.valueMissingMessage;
2294
- return;
2296
+ validityState = 'valueMissing';
2297
+ validityMessage = this.valueMissingMessage;
2298
+ return { validityState, validityMessage };
2295
2299
  }
2296
2300
  const isPhoneNumberValid = this.countryCode ? this.getPhoneValidationResult(this.phoneNumber, this.countryCode).isValid : false;
2297
2301
  if (!isPhoneNumberValid) {
2298
- this.validityState = 'invalid';
2299
- this.validityMessage = this.customErrorMessage;
2300
- return;
2302
+ validityState = 'invalid';
2303
+ validityMessage = this.customErrorMessage;
2304
+ return { validityState, validityMessage };
2301
2305
  }
2302
- this.validityState = 'valid';
2306
+ validityState = 'valid';
2307
+ return { validityState, validityMessage };
2303
2308
  };
2304
2309
  this.onSubmitForm = (event) => {
2305
2310
  if (this.isNoValidate)
@@ -2341,6 +2346,14 @@ const InputPhoneNumber = class {
2341
2346
  this.customErrorMessage = message;
2342
2347
  this.validateFormElement(this.nativeElement);
2343
2348
  }
2349
+ /**
2350
+ * Validates the input phone number without triggering UI and returns a boolean indicating its validity.
2351
+ * @returns A boolean indicating whether the input phone number is valid.
2352
+ */
2353
+ async checkValidity() {
2354
+ const { validityState } = this.getValidityStateData();
2355
+ return validityState === 'valid';
2356
+ }
2344
2357
  /** Check validity and reveal validation state. */
2345
2358
  async reportValidity() {
2346
2359
  this.validateFormElement(this.nativeElement);
@@ -2481,14 +2494,10 @@ const InputPhoneNumber = class {
2481
2494
  this.disconnectEventListeners();
2482
2495
  }
2483
2496
  render() {
2484
- const { label, fieldIndicator, hint, name, form, inputLabel, tooltip, tooltipIcon, tooltipIconColor, disabled, uniqueId, required, valid, invalid, novalidate, phoneNumber, fullPhoneNumber, fullWidth } = this;
2485
- // DEPRECATED: will be removed in November 2025 release.
2486
- const tooltipAttrs = tooltip ? {
2487
- tooltip,
2488
- 'tooltip-icon': tooltipIcon,
2489
- 'tooltip-icon-color': tooltipIconColor,
2490
- } : {};
2491
- const labelAttr = Object.assign({ fieldIndicator }, tooltipAttrs);
2497
+ const { label, fieldIndicator, hint, name, form, inputLabel, disabled, uniqueId, required, valid, invalid, novalidate, phoneNumber, fullPhoneNumber, fullWidth } = this;
2498
+ const labelAttr = {
2499
+ fieldIndicator
2500
+ };
2492
2501
  const inputAttrs = {
2493
2502
  id: uniqueId,
2494
2503
  form,
@@ -2498,10 +2507,9 @@ const InputPhoneNumber = class {
2498
2507
  disabled,
2499
2508
  'aria-describedby': this.ariaDescribedBy
2500
2509
  };
2501
- return (index.h(index.Host, { key: '87f5720347e3627524f95f7110088b8eddef7f8f' }, index.h("div", { key: '091e2048f011ff4167b35434567149de061954bd', class: "r-input-phone-number--label-container" }, index.h("label", { key: '80994d1cfd1b6f2228fb231f64894e660bdb1a1c', id: `${uniqueId}-label` }, label &&
2502
- index.h("r-label", Object.assign({ key: '36fa07371ee2c9d37645060a29f2d6f4ffe66342' }, labelAttr), label)), index.h("slot", { key: '76034d24a4208a46ee92185221256b9b5e87f971', name: "popover" })), hint &&
2503
- index.h("r-hint", { key: '574a0ec6541310640594eed29e0c301f5f9a01f7', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '63f37ce77a8e247091e0e6bf55632a834e19992d', class: "r-input-phone-number", role: "group", "aria-labelledby": `${uniqueId}-label`, "aria-describedby": this.ariaDescribedBy }, index.h("slot", { key: '36f3e834567d3ce77b6d89ae3e835eee630675b7' }), index.h("r-input", { key: '2f8dc7a95823b3107d8e24f90ae53791554c19af', label: inputLabel, value: phoneNumber, internal: true, valid: valid, invalid: invalid, required: required, readonly: this.readonly, novalidate: true, fullWidth: fullWidth, type: "tel", error: this.errorMessage || '', onRInput: this.handleOnInput, onRChange: this.handleInputOnChange, disabled: disabled }, valid && phoneNumber &&
2504
- index.h("r-icon", { key: '4559b1d4c55e35b2ef9560554a62d4742bca875e', slot: "trailing", name: "circled-check", size: "s", color: "var(--r-status-success-regular)" }))), index.h("input", Object.assign({ key: 'c68a9255419c41e8b9fc02127d5f3b68cd14f40b', type: "hidden" }, inputAttrs, { readonly: this.readonly, value: fullPhoneNumber, ref: el => this.nativeElement = el })), index.h("r-hint", { key: '43712e3a6b916945b1a00d3c6d8ace5f7bdcc1d7', "aria-live": "polite", "aria-atomic": "true", id: `${uniqueId}-message`, class: !this.hasMessage && 'visually-hidden', variant: "error" }, this.hasMessage ? (this.hasError ? this.error : this.validityMessage) : '')));
2510
+ return (index.h(index.Host, { key: '97edc0f9bbc4a3823e628bb08be3b3abbbcfe6ec' }, index.h("div", { key: '8a5236c58655d47368bfaa9bcea6bde3c39c6a22', class: "r-input-phone-number--label-container" }, index.h("label", { key: 'ae6e6e72381864d67d98f4429856cf5b1943943c', id: `${uniqueId}-label` }, label &&
2511
+ index.h("r-label", Object.assign({ key: 'd760960dbf5806084b0a10d14fef218ca5e4cd79' }, labelAttr), label)), index.h("slot", { key: '4f9bcaba34f2f49592a3167958bd091eeac9f6be', name: "popover" })), hint &&
2512
+ index.h("r-hint", { key: '0c3f402b7f9369dcea2c84478e12ed0ea241fd0a', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '43e5dbd9ca897cfc2ca05e6ab020c321871f3961', class: "r-input-phone-number", role: "group", "aria-labelledby": `${uniqueId}-label`, "aria-describedby": this.ariaDescribedBy }, index.h("slot", { key: '4e3f891eb21f15927d6a33e7ba6728c09d20e981' }), index.h("r-input", { key: '6bd6e929e396bf515511fdd978d00df9de54cc37', label: inputLabel, value: phoneNumber, internal: true, valid: valid, invalid: invalid, required: required, readonly: this.readonly, novalidate: true, fullWidth: fullWidth, type: "tel", error: this.errorMessage || '', onRInput: this.handleOnInput, onRChange: this.handleInputOnChange, disabled: disabled })), index.h("input", Object.assign({ key: 'f113123ef2fa2096b686d132ce11ca11970ab1be', type: "hidden" }, inputAttrs, { readonly: this.readonly, value: fullPhoneNumber, ref: el => this.nativeElement = el })), index.h("r-hint", { key: 'd00477c3a27f999c4a3079710c34266ed47e0e57', "aria-live": "polite", "aria-atomic": "true", id: `${uniqueId}-message`, class: !this.hasMessage && 'visually-hidden', variant: "error" }, this.hasMessage ? (this.hasError ? this.error : this.validityMessage) : '')));
2505
2513
  }
2506
2514
  get host() { return index.getElement(this); }
2507
2515
  static get watchers() { return {