@riverty/web-components 5.8.0 → 6.1.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 (281) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/custom-elements.json +215 -362
  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 +26 -11
  10. package/dist/cjs/r-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/r-button.cjs.entry.js +1 -1
  12. package/dist/cjs/r-checkbox-group.cjs.entry.js +1 -11
  13. package/dist/cjs/r-checkbox.cjs.entry.js +76 -75
  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 +112 -17
  19. package/dist/cjs/r-input-date.cjs.entry.js +8 -14
  20. package/dist/cjs/r-input-password.cjs.entry.js +16 -8
  21. package/dist/cjs/r-input-phone-number.cjs.entry.js +7 -12
  22. package/dist/cjs/r-input.cjs.entry.js +90 -42
  23. package/dist/cjs/r-list-item.cjs.entry.js +20 -19
  24. package/dist/cjs/r-panel.cjs.entry.js +5 -5
  25. package/dist/cjs/r-popover-action.cjs.entry.js +1 -1
  26. package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
  27. package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
  28. package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
  29. package/dist/cjs/r-popover.cjs.entry.js +3 -3
  30. package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
  31. package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
  32. package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
  33. package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
  34. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
  35. package/dist/cjs/r-radio-button.cjs.entry.js +29 -12
  36. package/dist/cjs/r-radio-group.cjs.entry.js +18 -22
  37. package/dist/cjs/r-select-option.cjs.entry.js +1 -1
  38. package/dist/cjs/r-select.cjs.entry.js +6 -24
  39. package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
  40. package/dist/cjs/r-stepper-item.cjs.entry.js +3 -3
  41. package/dist/cjs/r-stepper.cjs.entry.js +2 -2
  42. package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
  43. package/dist/cjs/r-tab.cjs.entry.js +6 -2
  44. package/dist/cjs/r-tabs-list.cjs.entry.js +160 -2
  45. package/dist/cjs/r-tabs.cjs.entry.js +34 -6
  46. package/dist/cjs/r-textarea.cjs.entry.js +7 -19
  47. package/dist/cjs/r-toast-group.cjs.entry.js +2 -2
  48. package/dist/cjs/r-toast.cjs.entry.js +31 -11
  49. package/dist/cjs/web-components.cjs.js +1 -1
  50. package/dist/collection/collection-manifest.json +0 -1
  51. package/dist/collection/components/accordion/accordion.css +0 -2
  52. package/dist/collection/components/accordion/accordion.js +4 -8
  53. package/dist/collection/components/accordion/exports.js +1 -1
  54. package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
  55. package/dist/collection/components/accordion-section/accordion-section.js +1 -1
  56. package/dist/collection/components/accordion-trigger/accordion-trigger.css +0 -4
  57. package/dist/collection/components/accordion-trigger/accordion-trigger.js +4 -215
  58. package/dist/collection/components/alert/alert.css +8 -3
  59. package/dist/collection/components/alert/alert.js +48 -10
  60. package/dist/collection/components/badge/badge.js +1 -1
  61. package/dist/collection/components/button/button.js +1 -1
  62. package/dist/collection/components/checkbox/checkbox.js +80 -98
  63. package/dist/collection/components/checkbox-group/checkbox-group.js +1 -50
  64. package/dist/collection/components/dialog/dialog.css +1 -3
  65. package/dist/collection/components/dialog/dialog.js +2 -10
  66. package/dist/collection/components/hint/hint.js +2 -2
  67. package/dist/collection/components/icon/bundled-icons/riverty-kit.json +1 -1
  68. package/dist/collection/components/icon/riverty-kit.js +1 -1
  69. package/dist/collection/components/icon-button/icon-button.js +22 -3
  70. package/dist/collection/components/input/exports.js +2 -0
  71. package/dist/collection/components/input/input.css +3 -0
  72. package/dist/collection/components/input/input.js +233 -371
  73. package/dist/collection/components/input-code/exports.js +2 -0
  74. package/dist/collection/components/input-code/input-code.js +294 -26
  75. package/dist/collection/components/input-date/input-date.js +8 -77
  76. package/dist/collection/components/input-password/exports.js +1 -0
  77. package/dist/collection/components/input-password/input-password.css +1 -0
  78. package/dist/collection/components/input-password/input-password.js +195 -70
  79. package/dist/collection/components/input-phone-number/input-phone-number.js +7 -75
  80. package/dist/collection/components/label/label.js +3 -113
  81. package/dist/collection/components/list-item/list-item/list-item.css +53 -19
  82. package/dist/collection/components/list-item/list-item/list-item.js +38 -40
  83. package/dist/collection/components/panel/panel.css +40 -17
  84. package/dist/collection/components/panel/panel.js +6 -6
  85. package/dist/collection/components/popover/exports.js +0 -1
  86. package/dist/collection/components/popover/popover.css +2 -10
  87. package/dist/collection/components/popover/popover.js +2 -55
  88. package/dist/collection/components/popover-action/popover-action.js +1 -1
  89. package/dist/collection/components/popover-content/popover-content.js +1 -1
  90. package/dist/collection/components/popover-headline/popover-headline.js +1 -1
  91. package/dist/collection/components/popover-trigger/popover-trigger.js +1 -1
  92. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  93. package/dist/collection/components/radio-button/radio-button.js +49 -12
  94. package/dist/collection/components/radio-button-description/radio-button-description.js +1 -1
  95. package/dist/collection/components/radio-button-leading/radio-button-leading.js +1 -1
  96. package/dist/collection/components/radio-button-title/radio-button-title.js +1 -1
  97. package/dist/collection/components/radio-button-trailing/radio-button-trailing.js +1 -1
  98. package/dist/collection/components/radio-group/radio-group.js +38 -124
  99. package/dist/collection/components/select/select.js +6 -330
  100. package/dist/collection/components/select-option/select-option.js +1 -1
  101. package/dist/collection/components/skip-link/skip-link.js +1 -1
  102. package/dist/collection/components/stepper/stepper.css +1 -1
  103. package/dist/collection/components/stepper/stepper.js +1 -1
  104. package/dist/collection/components/stepper-item/stepper-item.css +3 -3
  105. package/dist/collection/components/stepper-item/stepper-item.js +2 -2
  106. package/dist/collection/components/tab/tab.css +29 -29
  107. package/dist/collection/components/tab/tab.js +5 -1
  108. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  109. package/dist/collection/components/tabs/tabs.js +34 -6
  110. package/dist/collection/components/tabs-list/exports.js +2 -0
  111. package/dist/collection/components/tabs-list/tabs-list.css +43 -2
  112. package/dist/collection/components/tabs-list/tabs-list.js +277 -1
  113. package/dist/collection/components/textarea/textarea.css +1 -1
  114. package/dist/collection/components/textarea/textarea.js +6 -158
  115. package/dist/collection/components/toast/toast.css +35 -9
  116. package/dist/collection/components/toast/toast.js +44 -32
  117. package/dist/collection/components/toast-group/toast-group.css +1 -1
  118. package/dist/collection/components/toast-group/toast-group.js +1 -1
  119. package/dist/collection/components/tooltip/tooltip.js +2 -2
  120. package/dist/esm/index-Da7qOBFr.js +6 -10
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/esm/r-accordion-panel.entry.js +1 -1
  123. package/dist/esm/r-accordion-section.entry.js +1 -1
  124. package/dist/esm/r-accordion-trigger.entry.js +5 -35
  125. package/dist/esm/r-accordion.entry.js +3 -7
  126. package/dist/esm/r-alert.entry.js +26 -11
  127. package/dist/esm/r-badge.entry.js +1 -1
  128. package/dist/esm/r-button.entry.js +1 -1
  129. package/dist/esm/r-checkbox-group.entry.js +1 -11
  130. package/dist/esm/r-checkbox.entry.js +76 -75
  131. package/dist/esm/r-dialog.entry.js +3 -11
  132. package/dist/esm/r-hint_2.entry.js +47 -0
  133. package/dist/esm/{r-hint_3.entry.js → r-icon-button_2.entry.js} +65 -51
  134. package/dist/esm/r-icon.entry.js +1 -1
  135. package/dist/esm/r-input-code.entry.js +112 -17
  136. package/dist/esm/r-input-date.entry.js +8 -14
  137. package/dist/esm/r-input-password.entry.js +16 -8
  138. package/dist/esm/r-input-phone-number.entry.js +7 -12
  139. package/dist/esm/r-input.entry.js +90 -42
  140. package/dist/esm/r-list-item.entry.js +20 -19
  141. package/dist/esm/r-panel.entry.js +5 -5
  142. package/dist/esm/r-popover-action.entry.js +1 -1
  143. package/dist/esm/r-popover-content.entry.js +1 -1
  144. package/dist/esm/r-popover-headline.entry.js +1 -1
  145. package/dist/esm/r-popover-trigger.entry.js +1 -1
  146. package/dist/esm/r-popover.entry.js +3 -3
  147. package/dist/esm/r-progress-bar.entry.js +1 -1
  148. package/dist/esm/r-radio-button-description.entry.js +1 -1
  149. package/dist/esm/r-radio-button-leading.entry.js +1 -1
  150. package/dist/esm/r-radio-button-title.entry.js +1 -1
  151. package/dist/esm/r-radio-button-trailing.entry.js +1 -1
  152. package/dist/esm/r-radio-button.entry.js +29 -12
  153. package/dist/esm/r-radio-group.entry.js +18 -22
  154. package/dist/esm/r-select-option.entry.js +1 -1
  155. package/dist/esm/r-select.entry.js +6 -24
  156. package/dist/esm/r-skip-link.entry.js +1 -1
  157. package/dist/esm/r-stepper-item.entry.js +3 -3
  158. package/dist/esm/r-stepper.entry.js +2 -2
  159. package/dist/esm/r-tab-panel.entry.js +1 -1
  160. package/dist/esm/r-tab.entry.js +6 -2
  161. package/dist/esm/r-tabs-list.entry.js +161 -3
  162. package/dist/esm/r-tabs.entry.js +34 -6
  163. package/dist/esm/r-textarea.entry.js +7 -19
  164. package/dist/esm/r-toast-group.entry.js +2 -2
  165. package/dist/esm/r-toast.entry.js +31 -11
  166. package/dist/esm/web-components.js +1 -1
  167. package/dist/types/components/accordion/accordion.d.ts +1 -5
  168. package/dist/types/components/accordion/exports.d.ts +1 -1
  169. package/dist/types/components/accordion-trigger/accordion-trigger.d.ts +0 -36
  170. package/dist/types/components/alert/alert.d.ts +6 -1
  171. package/dist/types/components/checkbox/checkbox.d.ts +24 -34
  172. package/dist/types/components/checkbox-group/checkbox-group.d.ts +0 -11
  173. package/dist/types/components/dialog/dialog.d.ts +0 -2
  174. package/dist/types/components/icon/exports.d.ts +1 -0
  175. package/dist/types/components/icon/icon-data.d.ts +1 -0
  176. package/dist/types/components/icon/riverty-kit.d.ts +1 -0
  177. package/dist/types/components/icon-button/icon-button.d.ts +4 -0
  178. package/dist/types/components/input/exports.d.ts +4 -0
  179. package/dist/types/components/input/input.d.ts +47 -73
  180. package/dist/types/components/input-code/exports.d.ts +4 -0
  181. package/dist/types/components/input-code/input-code.d.ts +49 -7
  182. package/dist/types/components/input-date/input-date.d.ts +0 -16
  183. package/dist/types/components/input-password/exports.d.ts +1 -0
  184. package/dist/types/components/input-password/input-password.d.ts +48 -16
  185. package/dist/types/components/input-phone-number/input-phone-number.d.ts +0 -16
  186. package/dist/types/components/label/label.d.ts +0 -18
  187. package/dist/types/components/list-item/list-item/list-item.d.ts +5 -9
  188. package/dist/types/components/popover/exports.d.ts +0 -2
  189. package/dist/types/components/popover/popover.d.ts +1 -14
  190. package/dist/types/components/radio-button/radio-button.d.ts +5 -0
  191. package/dist/types/components/radio-group/radio-group.d.ts +5 -26
  192. package/dist/types/components/select/select.d.ts +0 -50
  193. package/dist/types/components/tabs/tabs.d.ts +1 -0
  194. package/dist/types/components/tabs-list/exports.d.ts +4 -0
  195. package/dist/types/components/tabs-list/tabs-list.d.ts +38 -0
  196. package/dist/types/components/textarea/textarea.d.ts +0 -32
  197. package/dist/types/components/toast/toast.d.ts +11 -5
  198. package/dist/types/components.d.ts +280 -638
  199. package/dist/web-components/bundled-icons/riverty-kit.json +1 -1
  200. package/dist/web-components/p-0347feff.entry.js +1 -0
  201. package/dist/web-components/p-159822fe.entry.js +1 -0
  202. package/dist/web-components/p-19407a14.entry.js +1 -0
  203. package/dist/web-components/{p-5744d75c.entry.js → p-1da75540.entry.js} +1 -1
  204. package/dist/web-components/p-26ef77d6.entry.js +1 -0
  205. package/dist/web-components/p-3884c6e7.entry.js +1 -0
  206. package/dist/web-components/p-3f60c6c0.entry.js +1 -0
  207. package/dist/web-components/{p-87f39749.entry.js → p-4595fa8e.entry.js} +1 -1
  208. package/dist/web-components/{p-4e3df002.entry.js → p-4cc58c6a.entry.js} +1 -1
  209. package/dist/web-components/p-4f261b63.entry.js +1 -0
  210. package/dist/web-components/{p-e0e2f2b2.entry.js → p-50893211.entry.js} +1 -1
  211. package/dist/web-components/{p-72fa1fd1.entry.js → p-550e2237.entry.js} +1 -1
  212. package/dist/web-components/p-589baaf9.entry.js +1 -0
  213. package/dist/web-components/{p-3b4e3faf.entry.js → p-5eeb7002.entry.js} +1 -1
  214. package/dist/web-components/p-60341de2.entry.js +1 -0
  215. package/dist/web-components/{p-44ae9f33.entry.js → p-62b788bf.entry.js} +1 -1
  216. package/dist/web-components/p-63fd817d.entry.js +1 -0
  217. package/dist/web-components/p-67fa3f84.entry.js +1 -0
  218. package/dist/web-components/p-6bb44ec6.entry.js +1 -0
  219. package/dist/web-components/p-6cc2ea2c.entry.js +1 -0
  220. package/dist/web-components/p-70784685.entry.js +1 -0
  221. package/dist/web-components/p-7ce57332.entry.js +1 -0
  222. package/dist/web-components/{p-429213ea.entry.js → p-7fed6f4d.entry.js} +1 -1
  223. package/dist/web-components/p-8a66d20c.entry.js +1 -0
  224. package/dist/web-components/{p-c7f8e59b.entry.js → p-8c31cbd5.entry.js} +1 -1
  225. package/dist/web-components/p-8dac326b.entry.js +1 -0
  226. package/dist/web-components/p-92c7cf33.entry.js +1 -0
  227. package/dist/web-components/{p-1c2497de.entry.js → p-9ef1bbee.entry.js} +1 -1
  228. package/dist/web-components/p-a7d22c76.entry.js +1 -0
  229. package/dist/web-components/p-b96d59ca.entry.js +1 -0
  230. package/dist/web-components/p-ba801820.entry.js +1 -0
  231. package/dist/web-components/{p-a022f356.entry.js → p-bfc8c077.entry.js} +1 -1
  232. package/dist/web-components/p-c05b05da.entry.js +1 -0
  233. package/dist/web-components/p-c1e748f2.entry.js +1 -0
  234. package/dist/web-components/{p-5bbd6e3c.entry.js → p-c478712b.entry.js} +1 -1
  235. package/dist/web-components/p-c95b6470.entry.js +1 -0
  236. package/dist/web-components/p-cd5daad2.entry.js +1 -0
  237. package/dist/web-components/p-cdd88c5a.entry.js +1 -0
  238. package/dist/web-components/{p-3078b2b8.entry.js → p-d054eb4d.entry.js} +1 -1
  239. package/dist/web-components/{p-8563a1ab.entry.js → p-d433a828.entry.js} +1 -1
  240. package/dist/web-components/p-d7726e46.entry.js +1 -0
  241. package/dist/web-components/p-d819c8e5.entry.js +1 -0
  242. package/dist/web-components/{p-755cc697.entry.js → p-e4dc60f0.entry.js} +1 -1
  243. package/dist/web-components/{p-d1379ac6.entry.js → p-f9d5004c.entry.js} +1 -1
  244. package/dist/web-components/web-components.esm.js +1 -1
  245. package/package.json +1 -1
  246. package/dist/cjs/r-accordion-item.cjs.entry.js +0 -78
  247. package/dist/cjs/r-icon-button.cjs.entry.js +0 -81
  248. package/dist/collection/components/accordion-item/accordion-item.css +0 -121
  249. package/dist/collection/components/accordion-item/accordion-item.js +0 -138
  250. package/dist/esm/r-accordion-item.entry.js +0 -76
  251. package/dist/esm/r-icon-button.entry.js +0 -79
  252. package/dist/types/components/accordion-item/accordion-item.d.ts +0 -26
  253. package/dist/web-components/p-00ca474f.entry.js +0 -1
  254. package/dist/web-components/p-0bb04d79.entry.js +0 -1
  255. package/dist/web-components/p-15ac0fdd.entry.js +0 -1
  256. package/dist/web-components/p-1c956370.entry.js +0 -1
  257. package/dist/web-components/p-2a512983.entry.js +0 -1
  258. package/dist/web-components/p-2b2f581a.entry.js +0 -1
  259. package/dist/web-components/p-2e18e762.entry.js +0 -1
  260. package/dist/web-components/p-3bc93d65.entry.js +0 -1
  261. package/dist/web-components/p-4bd3e077.entry.js +0 -1
  262. package/dist/web-components/p-51a5804b.entry.js +0 -1
  263. package/dist/web-components/p-56da04d8.entry.js +0 -1
  264. package/dist/web-components/p-5e6aabd8.entry.js +0 -1
  265. package/dist/web-components/p-656229de.entry.js +0 -1
  266. package/dist/web-components/p-6a4f3836.entry.js +0 -1
  267. package/dist/web-components/p-7775228c.entry.js +0 -1
  268. package/dist/web-components/p-7ad8e78b.entry.js +0 -1
  269. package/dist/web-components/p-85a9af42.entry.js +0 -1
  270. package/dist/web-components/p-9e50120b.entry.js +0 -1
  271. package/dist/web-components/p-a7e7f8fa.entry.js +0 -1
  272. package/dist/web-components/p-ad9b2a48.entry.js +0 -1
  273. package/dist/web-components/p-b2f03016.entry.js +0 -1
  274. package/dist/web-components/p-b87ad83b.entry.js +0 -1
  275. package/dist/web-components/p-c937bd92.entry.js +0 -1
  276. package/dist/web-components/p-cbcd7699.entry.js +0 -1
  277. package/dist/web-components/p-dbe579e8.entry.js +0 -1
  278. package/dist/web-components/p-e4b66277.entry.js +0 -1
  279. package/dist/web-components/p-e6a31881.entry.js +0 -1
  280. package/dist/web-components/p-f2577a3c.entry.js +0 -1
  281. package/dist/web-components/p-f6a92287.entry.js +0 -1
@@ -481,7 +481,7 @@ const InputDate = class {
481
481
  this.disconnectFormEventListeners();
482
482
  }
483
483
  render() {
484
- 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;
485
485
  const groupAttrs = {
486
486
  'aria-invalid': `${invalid || false}`,
487
487
  'aria-describedby': this.ariaDescribedBy
@@ -495,24 +495,18 @@ const InputDate = class {
495
495
  readonly,
496
496
  'aria-describedby': this.ariaDescribedBy
497
497
  };
498
- // DEPRECATED: will be removed in November 2025 release.
499
- const tooltipAttrs = tooltip ? {
500
- tooltip,
501
- 'tooltip-icon': tooltipIcon,
502
- 'tooltip-icon-color': tooltipIconColor,
503
- } : {};
504
498
  const labelAttr = label ? {
505
499
  id: `${uniqueId}-label`,
506
500
  fieldIndicator
507
501
  } : {};
508
- return (index.h(index.Host, { key: '00e6bbea2dcaf1e88b4587fa9df6165a2c28c134', onClick: this.onHostClick, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, index.h("fieldset", Object.assign({ key: '94d107ad0f00608263df3f47b0c2240d93a01c4e', class: "r-input-date" }, groupAttrs), index.h("div", { key: '3ac5991c7b8754f2fa94c8053f60af17a99301e0', class: "r-input-date--legend-container" }, index.h("legend", { key: '62fc7c2b6af2f7911c11f135432323621dd278b8', class: "r-input-date--legend" }, index.h("label", { key: 'd161f2b149ca1295c6e96746520c6ef1cf2e23ba', htmlFor: uniqueId }, label ?
509
- 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)
510
504
  :
511
- index.h("slot", { name: "label" }))), index.h("slot", { key: '81c9e7753273c5e7d6db5d6a1f0fad8398a57c0a', name: "popover" })), hint &&
512
- index.h("r-hint", { key: '0814c3ef100ed6a8512b2f15d5b59e01664bd811', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '65247f18a297ef6a5751ab86e1123271ed8759f7', class: "r-input-date--container" }, index.h("r-icon", { key: 'fce4150b7c1b801752e1a67339b1a599728b0631', name: "calendar", size: "s", class: "r-input-date--calendar-icon" }), index.h("div", { key: '3b5e4776102b06acd9626477c702d2dc52ef681c', 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 &&
513
- index.h("span", { "aria-hidden": "true", class: "r-input-date--delimiter" }, this.delimiter)))), index.h("input", Object.assign({ key: '2c181871c97962a35988eb406c09a05c8f27181d', type: "hidden" }, dateInputAttrs, { value: this.value, ref: (el) => this.nativeElement = el }))), index.h("div", { key: '8c694c11cc7ea4ecc23484d3f014cc865e0c56ad', class: "r-input-date--trailing" }, this.readonly &&
514
- index.h("r-icon", { key: '8ed65eaef19f280381b7c0fae206163f3adeb5f4', class: "r-input-date--readonly-icon", name: "pen-disabled", size: "s" }), valid &&
515
- index.h("r-icon", { key: 'aef55123b4b001576b482e0be4eff0df6dc97930', name: "circled-check", size: "s", color: "var(--r-status-success-regular)" }), this.hasTrailingSlot && index.h("slot", { key: 'd92dcda80b7434af1f8ed781329ce8f2e6734225', name: "trailing" }))), index.h("div", { key: '139792ccc090b29f041e3a731f65e5916379b911', id: `${uniqueId}-message`, "aria-live": "polite", class: "r-input-date--message" }, this.hasMessage && index.h("r-hint", { key: '74d444c9748c032e844c0772b8758873bdaef391', 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)))));
516
510
  }
517
511
  get host() { return index.getElement(this); }
518
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
  /**
@@ -152,6 +153,7 @@ const InputPassword = class {
152
153
  async showPassword() {
153
154
  this.showed = true;
154
155
  this.alertOnPasswordVisibilityChange();
156
+ this.rVisibilityChange.emit({ element: this.host, visible: true });
155
157
  }
156
158
  /**
157
159
  * Hide password text.
@@ -159,6 +161,7 @@ const InputPassword = class {
159
161
  async hidePassword() {
160
162
  this.showed = false;
161
163
  this.alertOnPasswordVisibilityChange();
164
+ this.rVisibilityChange.emit({ element: this.host, visible: false });
162
165
  }
163
166
  /** Get the input value */
164
167
  async getValue() {
@@ -227,11 +230,14 @@ const InputPassword = class {
227
230
  this.disconnectFormEventListeners();
228
231
  }
229
232
  render() {
230
- 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;
231
234
  const inputAttrs = {
232
235
  name,
233
236
  placeholder,
234
237
  required,
238
+ minlength,
239
+ maxlength,
240
+ pattern,
235
241
  fieldIndicator,
236
242
  value,
237
243
  disabled,
@@ -240,15 +246,17 @@ const InputPassword = class {
240
246
  valid,
241
247
  hint,
242
248
  label,
243
- tooltip,
244
- tooltipIcon,
245
- tooltipIconColor,
246
249
  fullWidth,
247
250
  novalidate: true,
248
- readonly
251
+ readonly,
252
+ passwordrules,
253
+ autocomplete,
254
+ tooLongMessage,
255
+ tooShortMessage,
256
+ patternMismatchMessage
249
257
  };
250
- return (index.h(index.Host, { key: '810ae74cdcdcd8a4289255e2b99b6cfc213330ac' }, index.h("r-input", Object.assign({ key: '55027ca5cd8b8ba4eade60067ac182e38eaf1bfa' }, 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: '935aa481c0eff444462e6be6d8e6975db8a24708', name: "padlock-closed", size: "s", slot: "leading" }), index.h("slot", { key: 'df29bd4fa96db1c1f5f70be9c44fab1b9c5f02be', name: "popover", slot: "popover" }), index.h("r-icon-button", { key: '95d5f3c5e64eb7b43364db7aff943d35fbdc4d2d', slot: "trailing", name: showed ? 'eye-crossed-out' : 'eye', size: "s", disabled: disabled, label: showed ? hidePasswordAriaLabel : showPasswordAriaLabel, onClick: this.onShowClick }), this.hasMessage &&
251
- index.h("r-hint", { key: '7390d667a69c4ae5c2c6ae480eaf5f879ad6ed78', slot: "message", variant: "error" }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage))), index.h("div", { key: 'c70c38f1249c80973bb2fe2a25ddf7d88835c686', 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" })));
252
260
  }
253
261
  get host() { return index.getElement(this); }
254
262
  };
@@ -2494,14 +2494,10 @@ const InputPhoneNumber = class {
2494
2494
  this.disconnectEventListeners();
2495
2495
  }
2496
2496
  render() {
2497
- const { label, fieldIndicator, hint, name, form, inputLabel, tooltip, tooltipIcon, tooltipIconColor, disabled, uniqueId, required, valid, invalid, novalidate, phoneNumber, fullPhoneNumber, fullWidth } = this;
2498
- // DEPRECATED: will be removed in November 2025 release.
2499
- const tooltipAttrs = tooltip ? {
2500
- tooltip,
2501
- 'tooltip-icon': tooltipIcon,
2502
- 'tooltip-icon-color': tooltipIconColor,
2503
- } : {};
2504
- 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
+ };
2505
2501
  const inputAttrs = {
2506
2502
  id: uniqueId,
2507
2503
  form,
@@ -2511,10 +2507,9 @@ const InputPhoneNumber = class {
2511
2507
  disabled,
2512
2508
  'aria-describedby': this.ariaDescribedBy
2513
2509
  };
2514
- return (index.h(index.Host, { key: '4551070926e1974ddf3fcb8cc435570ddde50276' }, index.h("div", { key: 'a076fb01b4e0563ec2d30a5680a6ccd48b2f6895', class: "r-input-phone-number--label-container" }, index.h("label", { key: 'a8ad943efeca2ac3b5a63857ea0a52b19c32f09c', id: `${uniqueId}-label` }, label &&
2515
- index.h("r-label", Object.assign({ key: 'ac0d2a1c12cb85ec03e6596b9bb2e28328026eac' }, labelAttr), label)), index.h("slot", { key: 'cadd98a33c32bfb60be0a3448772eac483630bdf', name: "popover" })), hint &&
2516
- index.h("r-hint", { key: '23874cabee60dc0a5e620066eed92de809cac1eb', id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { key: '800b3a389ce815c5e137077dd5766177c317a05d', class: "r-input-phone-number", role: "group", "aria-labelledby": `${uniqueId}-label`, "aria-describedby": this.ariaDescribedBy }, index.h("slot", { key: '6106007980212ef05cd11304da2a4d0cc28ddf4f' }), index.h("r-input", { key: 'd65b4d9ca8761c7e6dd08359ff02f3c88c57aa66', 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 &&
2517
- index.h("r-icon", { key: '09c721cb014d6d7ece724bcf7de9ec5928624dac', slot: "trailing", name: "circled-check", size: "s", color: "var(--r-status-success-regular)" }))), index.h("input", Object.assign({ key: 'e2eef2512f9125f0dd3d1b09120cbb77955350bd', type: "hidden" }, inputAttrs, { readonly: this.readonly, value: fullPhoneNumber, ref: el => this.nativeElement = el })), index.h("r-hint", { key: 'a12e9640bcf2df7b754de4e54b111e4ead2d023e', "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) : '')));
2518
2513
  }
2519
2514
  get host() { return index.getElement(this); }
2520
2515
  static get watchers() { return {
@@ -3,12 +3,11 @@
3
3
  var index = require('./index-DJ4H_bFj.js');
4
4
  var formData = require('./formData-B2DZyLxP.js');
5
5
 
6
- const inputCss = ":host{display:inline-flex;flex-direction:column;vertical-align:top;--r-label--margin-bottom:0}:host slot{display:contents}:host([readonly]:not([readonly=false])){--r-input--container--background-color:var(--r-background-soft, #f3f1f0);--r-input--container--border-color:transparent transparent var(--r-border-soft, #686868) transparent;--r-input--container--cursor:text}:host(:hover:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host(.focused){--r-input--container--box-shadow:0 0 0 6px var(--r-border-focused-outlined);--r-input--container--outline:2px solid var(--r-border-focused);--r-input--container--outline-offset:2px}:host(:active:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host([expanded]:not([expanded=false])),:host([full-width]:not([full-width=false])){display:block}:host([disabled]:not([disabled=false])){--r-input--container--opacity:0.4;--r-input--container--cursor:not-allowed;--r-input--container--pointer-events:none;--r-input--container--background-color:transparent}:host([invalid]:not([invalid=false])){--r-input--container--border-color:var(--r-status-error-regular, #b00c15);--r-input--container--background-color:var(--r-status-error-soft, #fef6f6)}.r-input{display:var(--r-input--display, flex);flex:var(--r-input--flex, 1);flex-direction:var(--r-input--flex-direction, column);width:var(--r-input--width, auto);font-family:var(--r-input--font-family, system-ui);position:var(--r-input--position, relative);border-radius:var(--r-input--border-radius, 0);cursor:var(--r-input--cursor, inherit)}.r-input--label-container{display:var(--r-input--label-container--display, flex);gap:var(--r-input--label-container--gap, var(--r-spacing-100, 1rem));align-items:var(--r-input--label-container--align-items, center);justify-content:var(--r-input--label-container--align-items, space-between)}.r-input--label-container ::slotted([slot=popover]){display:var(--r-input--popover--display, inline-flex);height:var(--r-input--popover--height, var(--r-spacing-150, 1.5));align-items:var(--r-input--popover--align-items, center);justify-content:var(--r-input--popover--justify-content, center);margin-right:var(--r-input--popover--margin-right, -0.25rem);--r-popover--trigger--min-width:var(--r-input--popover-trigger--min-width, var(--r-spacing-150, 1.5));--r-popover--trigger--min-height:var(--r-input--popover--trigger--min-height, var(--r-spacing-150, 1.5))}.r-input--label{cursor:var(--r-input--label--cursor, inherit)}.r-input--input{font-family:var(--r-input--input--font-family, system-ui);font-size:var(--r-input--input--font-size, 1em);width:var(--r-input--input--width, 100%);max-width:var(--r-input--input--max-width, 100%);height:var(--r-input--input--height, var(--r-spacing-275, 2.75rem));border-radius:var(--r-input--input--border-radius, 0);border:var(--r-input--input--border, none);color:var(--r-input--input--color, var(--r-text-regular, #282828));background-color:var(--r-input--input--background-color, none);appearance:var(--r-input--input--appearance, none);box-sizing:var(--r-input--input--box-sizing, border-box);outline:var(--r-input--input--outline, none);cursor:var(--r-input--input--cursor, inherit);pointer-events:var(--r-input--input--pointer-events, auto)}.r-input--input:autofill,.r-input--input:-webkit-autofill{-webkit-background-clip:text !important}.r-input--input::-ms-reveal{display:var(--r-input--input--ms-reveal--display, none)}.r-input--input::placeholder{color:var(--r-input--input--placeholder--color, var(--r-text-soft, #686868))}.r-input--input[type=search]::-webkit-search-cancel-button{cursor:var(--r-input--input-clear--cursor, pointer);display:var(--r-input--input-clear--display, block);height:var(--r-input--input-clear--height, 0.875rem);width:var(--r-input--input-clear--width, 0.875rem);appearance:var(--r-input--input-clear--appearance, none);background-repeat:var(--r-input--input-clear--background-repeat, no-repeat);background-image:var(--r-input--input-clear--background-image, url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20stroke-width%3D%221.5%22%20viewBox%3D%220.75%200.75%2022.5%2022.5%22%3E%3Cpath%20id%3D%22Vector%202269%22%20stroke%3D%22currentColor%22%20d%3D%22M1.5%201.5L22.5%2022.5%22%2F%3E%3Cpath%20id%3D%22Vector%202270%22%20stroke%3D%22currentColor%22%20d%3D%22M22.5%201.5L1.5%2022.5%22%2F%3E%3C%2Fsvg%3E\"));background-size:var(--r-input--input-clear--background-size, contain);margin-inline:var(--r-input--input-clear--margin-inline, 0);color:currentColor}.r-input--button{position:var(--r-input--icon-button--position, absolute);width:var(--r-input--icon-button--width, calc(1.125em + var(--r-input--icon--width)));height:var(--r-input--icon-button--height, 100%);top:var(--r-input--icon-button--top, 0);right:var(--r-input--icon-button--right, auto);bottom:var(--r-input--icon-button--bottom, auto);left:var(--r-input--icon-button--left, 0);cursor:var(--r-input--icon-button--cursor, inherit)}.r-input--container{position:var(--r-input--container--position, relative);display:var(--r-input--container--display, flex);align-items:var(--r-input--container--align-items, center);gap:var(--r-input--container--gap, 0.625rem);height:var(--r-input--container--height, var(--r-spacing-275, 2.75rem));background-color:var(--r-input--container--background-color, var(--r-background-softest, #fff));border-width:var(--r-input--container--border-width, 1px);border-style:var(--r-input--container--border-style, solid);border-color:var(--r-input--container--border-color, var(--r-border-soft, #686868));box-sizing:var(--r-input--container--box-sizing, border-box);box-shadow:var(--r-input--container--box-shadow, none);outline:var(--r-input--container--outline, none);outline-offset:var(--r-input--container--outline-offset, 0);padding-top:var(--r-input--container--padding-top, 0.6875rem);padding-right:var(--r-input--container--padding-right, var(--r-spacing-075, 0.75rem));padding-bottom:var(--r-input--container--padding-bottom, 0.6875rem);padding-left:var(--r-input--container--padding-left, var(--r-spacing-0275, 0.75rem));opacity:var(--r-input--container--opacity, 1);pointer-events:var(--r-input--container--pointer-events, auto);line-height:var(--r-input--container--line-height, 1);cursor:var(--r-input--container--cursor, inherit);margin-top:var(--r-input--container--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--container slot[name=leading]{color:var(--r-input--container-leading--color, var(--r-icon-soft, #686868))}.r-input--message:has(r-hint),.r-input--message ::slotted([slot=message]){margin-top:var(--r-input--message--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--trailing{display:var(--r-input--trailing--display, flex);margin-left:var(--r-input--trailing--margin-left, auto);align-items:var(--r-input--trailing--align-items, center);gap:var(--r-input--trailing--gap, 0.625rem)}.r-input--readonly-icon{color:var(--r-input--readonly-icon--color, var(--r-icon-soft, #686868))}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
6
+ const inputCss = ":host{display:inline-flex;flex-direction:column;vertical-align:top;--r-label--margin-bottom:0}:host slot{display:contents}:host([readonly]:not([readonly=false])){--r-input--container--background-color:var(--r-background-soft, #f3f1f0);--r-input--container--border-color:transparent transparent var(--r-border-soft, #686868) transparent;--r-input--container--cursor:text}:host(:hover:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host(.focused){--r-input--container--box-shadow:0 0 0 6px var(--r-border-focused-outlined);--r-input--container--outline:2px solid var(--r-border-focused);--r-input--container--outline-offset:2px}:host(:active:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host([expanded]:not([expanded=false])),:host([full-width]:not([full-width=false])){display:block}:host([disabled]:not([disabled=false])){--r-input--container--opacity:0.4;--r-input--container--cursor:not-allowed;--r-input--container--pointer-events:none;--r-input--container--background-color:transparent}:host([invalid]:not([invalid=false])){--r-input--container--border-color:var(--r-status-error-regular, #b00c15);--r-input--container--background-color:var(--r-status-error-soft, #fef6f6)}.r-input{display:var(--r-input--display, flex);flex:var(--r-input--flex, 1);flex-direction:var(--r-input--flex-direction, column);width:var(--r-input--width, auto);font-family:var(--r-input--font-family, system-ui);position:var(--r-input--position, relative);border-radius:var(--r-input--border-radius, 0);cursor:var(--r-input--cursor, inherit)}.r-input--label-container{display:var(--r-input--label-container--display, flex);gap:var(--r-input--label-container--gap, var(--r-spacing-100, 1rem));align-items:var(--r-input--label-container--align-items, center);justify-content:var(--r-input--label-container--align-items, space-between)}.r-input--label-container ::slotted([slot=popover]){display:var(--r-input--popover--display, inline-flex);height:var(--r-input--popover--height, var(--r-spacing-150, 1.5));align-items:var(--r-input--popover--align-items, center);justify-content:var(--r-input--popover--justify-content, center);margin-right:var(--r-input--popover--margin-right, -0.25rem);--r-popover--trigger--min-width:var(--r-input--popover-trigger--min-width, var(--r-spacing-150, 1.5));--r-popover--trigger--min-height:var(--r-input--popover--trigger--min-height, var(--r-spacing-150, 1.5))}.r-input--label{cursor:var(--r-input--label--cursor, inherit)}.r-input--input{font-family:var(--r-input--input--font-family, system-ui);font-size:var(--r-input--input--font-size, 1em);width:var(--r-input--input--width, 100%);max-width:var(--r-input--input--max-width, 100%);height:var(--r-input--input--height, var(--r-spacing-275, 2.75rem));border-radius:var(--r-input--input--border-radius, 0);border:var(--r-input--input--border, none);color:var(--r-input--input--color, var(--r-text-regular, #282828));background-color:var(--r-input--input--background-color, none);appearance:var(--r-input--input--appearance, none);box-sizing:var(--r-input--input--box-sizing, border-box);outline:var(--r-input--input--outline, none);cursor:var(--r-input--input--cursor, inherit);pointer-events:var(--r-input--input--pointer-events, auto)}.r-input--input:autofill,.r-input--input:-webkit-autofill{-webkit-background-clip:text !important}.r-input--input::-ms-reveal{display:var(--r-input--input--ms-reveal--display, none)}.r-input--input::placeholder{color:var(--r-input--input--placeholder--color, var(--r-text-soft, #686868))}.r-input--input[type=search]::-webkit-search-cancel-button{cursor:var(--r-input--input-clear--cursor, pointer);display:var(--r-input--input-clear--display, block);height:var(--r-input--input-clear--height, 0.875rem);width:var(--r-input--input-clear--width, 0.875rem);appearance:var(--r-input--input-clear--appearance, none);background-repeat:var(--r-input--input-clear--background-repeat, no-repeat);background-image:var(--r-input--input-clear--background-image, url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20stroke-width%3D%221.5%22%20viewBox%3D%220.75%200.75%2022.5%2022.5%22%3E%3Cpath%20id%3D%22Vector%202269%22%20stroke%3D%22currentColor%22%20d%3D%22M1.5%201.5L22.5%2022.5%22%2F%3E%3Cpath%20id%3D%22Vector%202270%22%20stroke%3D%22currentColor%22%20d%3D%22M22.5%201.5L1.5%2022.5%22%2F%3E%3C%2Fsvg%3E\"));background-size:var(--r-input--input-clear--background-size, contain);margin-inline:var(--r-input--input-clear--margin-inline, 0);color:currentColor}.r-input--button{position:var(--r-input--icon-button--position, absolute);width:var(--r-input--icon-button--width, calc(1.125em + var(--r-input--icon--width)));height:var(--r-input--icon-button--height, 100%);top:var(--r-input--icon-button--top, 0);right:var(--r-input--icon-button--right, auto);bottom:var(--r-input--icon-button--bottom, auto);left:var(--r-input--icon-button--left, 0);cursor:var(--r-input--icon-button--cursor, inherit)}.r-input--container{position:var(--r-input--container--position, relative);display:var(--r-input--container--display, flex);align-items:var(--r-input--container--align-items, center);gap:var(--r-input--container--gap, 0.625rem);height:var(--r-input--container--height, var(--r-spacing-275, 2.75rem));background-color:var(--r-input--container--background-color, var(--r-background-softest, #fff));border-width:var(--r-input--container--border-width, 1px);border-style:var(--r-input--container--border-style, solid);border-color:var(--r-input--container--border-color, var(--r-border-soft, #686868));box-sizing:var(--r-input--container--box-sizing, border-box);box-shadow:var(--r-input--container--box-shadow, none);outline:var(--r-input--container--outline, none);outline-offset:var(--r-input--container--outline-offset, 0);padding-top:var(--r-input--container--padding-top, 0.6875rem);padding-right:var(--r-input--container--padding-right, var(--r-spacing-075, 0.75rem));padding-bottom:var(--r-input--container--padding-bottom, 0.6875rem);padding-left:var(--r-input--container--padding-left, var(--r-spacing-0275, 0.75rem));opacity:var(--r-input--container--opacity, 1);pointer-events:var(--r-input--container--pointer-events, auto);line-height:var(--r-input--container--line-height, 1);cursor:var(--r-input--container--cursor, inherit);margin-top:var(--r-input--container--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--container slot[name=leading]{color:var(--r-input--container-leading--color, var(--r-icon-soft, #686868))}.r-input--message:has(r-hint),.r-input--message ::slotted([slot=message]){margin-top:var(--r-input--message--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--trailing{display:var(--r-input--trailing--display, flex);margin-left:var(--r-input--trailing--margin-left, auto);align-items:var(--r-input--trailing--align-items, center);gap:var(--r-input--trailing--gap, 0.625rem)}.r-input--validation-icon{display:var(--r-input--validation-icon--display, inline-block)}.r-input--readonly-icon{color:var(--r-input--readonly-icon--color, var(--r-icon-soft, #686868))}.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 RInput = class {
9
9
  constructor(hostRef) {
10
10
  index.registerInstance(this, hostRef);
11
- this.rClickIcon = index.createEvent(this, "rClickIcon");
12
11
  this.rValidate = index.createEvent(this, "rValidate");
13
12
  this.rInput = index.createEvent(this, "rInput");
14
13
  this.rBlur = index.createEvent(this, "rBlur");
@@ -25,24 +24,19 @@ const RInput = class {
25
24
  */
26
25
  this.value = '';
27
26
  /**
28
- * @deprecated Will be removed November 2025.
29
- * Position of legacy icon: `start` | `end`.
30
- */
31
- this.iconPosition = 'start';
32
- /**
33
- * @deprecated Will be removed November 2025.
34
- * Legacy boolean to show a validation marker icon.
35
- */
36
- this.validMarker = false;
37
- /**
38
- * @deprecated Will be removed November 2025.
39
- * Icon name used when `validMarker` is active and state is valid.
40
- */
41
- this.validMarkerIcon = 'circled-check';
27
+ * When `true` field renders valid/invalid marker within.
28
+ */
29
+ this.validityMarker = true;
42
30
  /** Validity state passed from validateFormElement function after validation */
43
31
  this.validityState = '';
44
32
  /** Validity message passed from validateFormElement function after validation */
45
33
  this.validityMessage = '';
34
+ /** Defines if the component has been touched by user */
35
+ this.touched = false;
36
+ /** Defines if the value has been changed by user interaction */
37
+ this.dirty = false;
38
+ /** Private flag to prevent validation during reset */
39
+ this.isResetting = false;
46
40
  this.nativeElement = null;
47
41
  this.uniqueId = `r-input-${Date.now().toString(32)}${Math.random().toString(32)}`.replace(/\./g, '');
48
42
  /**
@@ -61,14 +55,18 @@ const RInput = class {
61
55
  for (const state in element.validity) {
62
56
  if (element.validity[state]) {
63
57
  validityState = state;
64
- if (this[state + 'Message']) {
65
- validityMessage = this[state + 'Message'];
58
+ const customMessage = this[state + 'Message'];
59
+ if (customMessage) {
60
+ validityMessage = customMessage;
66
61
  return { validityState, validityMessage };
67
62
  }
68
63
  validityMessage = element.validationMessage;
64
+ // Found an error, use it even if no custom message
65
+ return { validityState, validityMessage };
69
66
  }
70
67
  }
71
- return { validityState, validityMessage };
68
+ // No errors found, field is valid
69
+ return { validityState: 'valid', validityMessage: '' };
72
70
  };
73
71
  this.validateFormElement = (element) => {
74
72
  if (element === null)
@@ -77,6 +75,10 @@ const RInput = class {
77
75
  return;
78
76
  if (this.error)
79
77
  return;
78
+ // Trigger browser validation to populate validity states
79
+ if (element.checkValidity) {
80
+ element.checkValidity();
81
+ }
80
82
  const { validityState, validityMessage } = this.getValidityStateData(element);
81
83
  this.validityState = validityState;
82
84
  this.validityMessage = validityMessage;
@@ -92,6 +94,8 @@ const RInput = class {
92
94
  if (this.readonly)
93
95
  return;
94
96
  this.value = event.target.value;
97
+ this.touched = true;
98
+ this.dirty = true;
95
99
  const { host, value } = this;
96
100
  this.rInput.emit({ element: host, value });
97
101
  };
@@ -99,11 +103,14 @@ const RInput = class {
99
103
  if (this.readonly)
100
104
  return;
101
105
  this.value = event.target.value;
106
+ this.touched = true;
107
+ this.dirty = true;
102
108
  const { host, value } = this;
103
109
  this.rChange.emit({ element: host, value });
104
110
  };
105
111
  this.onBlur = () => {
106
112
  this.host.classList.remove('focused');
113
+ this.touched = true;
107
114
  this.validateFormElement(this.nativeElement);
108
115
  this.rBlur.emit();
109
116
  };
@@ -117,17 +124,25 @@ const RInput = class {
117
124
  this.onResetForm = () => {
118
125
  if (this.readonly)
119
126
  return;
127
+ this.isResetting = true;
128
+ this.markAsPristine();
120
129
  this.validityState = null;
121
130
  this.validityMessage = null;
122
- this.setValue(this.initial['value']);
131
+ // Restore initial value without triggering validation
132
+ if (this.nativeElement) {
133
+ this.nativeElement.value = this.initial['value'] || '';
134
+ }
135
+ this.value = this.initial['value'];
123
136
  this.invalid = this.initial['invalid'];
124
137
  this.valid = !this.invalid;
138
+ this.isResetting = false;
125
139
  const { host, value } = this;
126
140
  this.rReset.emit({ element: host, value });
127
141
  };
128
142
  this.onSubmitForm = (event) => {
129
143
  if (this.isNoValidate)
130
144
  return;
145
+ this.touched = true;
131
146
  this.validateFormElement(this.nativeElement);
132
147
  if (this.invalid) {
133
148
  event.preventDefault();
@@ -211,7 +226,10 @@ const RInput = class {
211
226
  * Set the current value programmatically (does not fire native input/change automatically).
212
227
  */
213
228
  async setValue(value) {
214
- this.nativeElement.value = value;
229
+ if (this.nativeElement) {
230
+ this.nativeElement.value = value;
231
+ }
232
+ this.value = value;
215
233
  this.validateFormElement(this.nativeElement);
216
234
  }
217
235
  /**
@@ -222,6 +240,25 @@ const RInput = class {
222
240
  const { validityState } = this.getValidityStateData(this.nativeElement);
223
241
  return validityState === 'valid';
224
242
  }
243
+ /**
244
+ * Gets the touched state (whether user has interacted with the input)
245
+ */
246
+ async isTouched() {
247
+ return this.touched;
248
+ }
249
+ /**
250
+ * Gets the dirty state (whether value has been changed by user)
251
+ */
252
+ async isDirty() {
253
+ return this.dirty;
254
+ }
255
+ /**
256
+ * Resets touched and dirty states to pristine (untouched/clean)
257
+ */
258
+ async markAsPristine() {
259
+ this.touched = false;
260
+ this.dirty = false;
261
+ }
225
262
  /** Identify wrapping form element */
226
263
  get parentFormEl() {
227
264
  return this.host.closest('form') || document.querySelector(`#${this.form}`) || null;
@@ -237,11 +274,8 @@ const RInput = class {
237
274
  get hasValidationError() {
238
275
  return (this.validityState !== 'valid' || this.invalid) && !!(this.validityMessage || this.customErrorMessage);
239
276
  }
240
- get hasValidationSuccess() {
241
- return (this.validityState === 'valid' || this.valid) && !!this.validMessage && this.showValid;
242
- }
243
277
  get hasMessage() {
244
- return this.hasError || this.hasValidationError || this.hasValidationSuccess;
278
+ return this.hasError || this.hasValidationError;
245
279
  }
246
280
  /**
247
281
  * Determine whether this element should be ignored
@@ -285,10 +319,15 @@ const RInput = class {
285
319
  this.disconnectFormEventListeners();
286
320
  }
287
321
  handleValueChange() {
288
- this.validateFormElement(this.nativeElement);
322
+ if (!this.isResetting) {
323
+ this.validateFormElement(this.nativeElement);
324
+ }
325
+ }
326
+ handleTypeChange() {
327
+ this.setValue(this.nativeElement.value);
289
328
  }
290
329
  render() {
291
- const { name, placeholder, required, fieldIndicator, maxlength, minlength, min, max, value, disabled, form, pattern, invalid, valid, validMarker, hint, label, internal, tooltip, tooltipIcon, tooltipIconColor, uniqueId, autocomplete, readonly, autofocus } = this;
330
+ const { name, placeholder, required, fieldIndicator, maxlength, minlength, min, max, value, disabled, form, pattern, invalid, valid, hint, label, internal, uniqueId, autocomplete, readonly, autofocus, passwordrules, enterkeyhint, validityMarker } = this;
292
331
  const inputAttrs = {
293
332
  disabled,
294
333
  readonly,
@@ -304,6 +343,9 @@ const RInput = class {
304
343
  pattern,
305
344
  autocomplete,
306
345
  autofocus: autofocus || null,
346
+ passwordrules,
347
+ enterkeyhint,
348
+ inputmode: this.inputmode || null,
307
349
  id: uniqueId,
308
350
  'data-value': value,
309
351
  'aria-placeholder': placeholder,
@@ -311,21 +353,26 @@ const RInput = class {
311
353
  'aria-required': `${required || false}`,
312
354
  'aria-describedby': this.ariaDescribedBy
313
355
  };
314
- // DEPRECATED: will be removed in November 2025 release.
315
- const tooltipAttrs = tooltip && !disabled ? {
316
- tooltip,
317
- 'tooltip-icon': tooltipIcon,
318
- 'tooltip-icon-color': tooltipIconColor,
356
+ const labelAttr = label ? {
357
+ id: `${uniqueId}-label`,
358
+ fieldIndicator
319
359
  } : {};
320
- const labelAttr = label ? Object.assign({ id: `${uniqueId}-label`, fieldIndicator }, tooltipAttrs) : {};
321
360
  const renderValidationMarker = () => {
322
- if (!validMarker)
323
- return null;
324
- if (!valid && !invalid)
361
+ const icons = {
362
+ valid: 'circled-check',
363
+ invalid: 'circled-exclamation-mark'
364
+ };
365
+ const colors = {
366
+ valid: '--r-status-success-regular',
367
+ invalid: '--r-status-error-regular'
368
+ };
369
+ const shouldShowValidMarker = !!validityMarker && !!valid && !!value;
370
+ const shouldShowInvalidMarker = !!validityMarker && !!invalid;
371
+ if (!shouldShowValidMarker && !shouldShowInvalidMarker)
325
372
  return null;
326
- const iconName = invalid ? 'circled-exclamation-mark' : 'circled-check';
327
- const iconColor = invalid ? '--r-status-error-regular' : '--r-status-success-regular';
328
- return index.h("r-icon", { class: "r-input--validation-icon", "aria-hidden": true, size: "s", name: iconName, color: iconColor });
373
+ const iconName = shouldShowInvalidMarker ? icons.invalid : icons.valid;
374
+ const iconColor = shouldShowInvalidMarker ? colors.invalid : colors.valid;
375
+ return index.h("r-icon", { class: "r-input--validation-icon", "aria-hidden": "true", size: "s", name: iconName, color: iconColor });
329
376
  };
330
377
  // Filter out event listener properties based on naming convention.
331
378
  // Pass them to native element.
@@ -335,17 +382,18 @@ const RInput = class {
335
382
  }
336
383
  return acc;
337
384
  }, {});
338
- return (index.h(index.Host, { onClick: this.handleClick, onKeyup: this.handleKeyup }, index.h("div", { class: internal ? 'visually-hidden' : 'r-input--label-container' }, index.h("label", { htmlFor: uniqueId }, label ?
385
+ return (index.h(index.Host, { onClick: this.handleClick, onKeyup: this.handleKeyup, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, index.h("div", { class: internal ? 'visually-hidden' : 'r-input--label-container' }, index.h("label", { htmlFor: uniqueId }, label ?
339
386
  index.h("r-label", Object.assign({ class: "r-input--label" }, labelAttr), label)
340
387
  :
341
388
  index.h("slot", { name: "label" })), index.h("slot", { name: "popover" })), hint &&
342
389
  index.h("r-hint", { id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { class: "r-input--container" }, index.h("slot", { name: "leading" }), index.h("input", Object.assign({ class: "r-input--input", type: this.type }, inputAttrs, eventListeners, { ref: el => this.nativeElement = el, value: this.value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus })), index.h("div", { class: "r-input--trailing" }, this.readonly &&
343
390
  index.h("r-icon", { class: "r-input--readonly-icon", name: "pen-disabled", size: "s" }), renderValidationMarker(), this.hasTrailingSlot &&
344
- index.h("slot", { name: "trailing" }))), index.h("div", { id: `${uniqueId}-message`, "aria-live": !internal ? 'polite' : null, class: !internal ? 'r-input--message' : 'visually-hidden' }, index.h("slot", { name: "message" }, this.hasMessage && index.h("r-hint", { variant: valid ? 'success' : 'error' }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage), this.hasValidationSuccess && this.validMessage)))));
391
+ index.h("slot", { name: "trailing" }))), index.h("div", { id: `${uniqueId}-message`, "aria-live": !internal ? 'polite' : null, class: !internal ? 'r-input--message' : 'visually-hidden' }, index.h("slot", { name: "message" }, this.hasMessage && index.h("r-hint", { variant: valid ? 'success' : 'error' }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage))))));
345
392
  }
346
393
  get host() { return index.getElement(this); }
347
394
  static get watchers() { return {
348
- "value": ["handleValueChange"]
395
+ "value": ["handleValueChange"],
396
+ "type": ["handleTypeChange"]
349
397
  }; }
350
398
  };
351
399
  RInput.style = inputCss;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-DJ4H_bFj.js');
4
4
 
5
- const listItemCss = ":host([alignment=top]){--r-list-item--trailing-text--font-weight:bold;--r-list-item--trailing--align-self:start}:host([alignment=bottom]) .r-list-item{--r-list-item--trailing--align-self:end}:host([divider]:not([divider=false])){--r-list-item--border-color:var(--r-border-soft, #686868);--r-list-item--border-width:0 0 1px 0}:host([active]) .r-list-item{--r-list-item--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host([variant=navitem]:not([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item,:host([href]:not([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host([variant=navitem][has-sub-items]:hover:not([disabled]:not([disabled=false])))>.r-list-item-wrapper>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host([variant=navitem][has-sub-items]:has([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item-wrapper>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:transparent}:host([variant=navitem][expanded])>.r-list-item-wrapper>.r-list-item{--r-list-item--headline--font-weight:600;--r-list-item--trailing-icon--transform:rotate(180deg);--r-list-item--trailing-icon--color:var(--r-icon-regular, #282828)}:host([variant=navitem][active-parent]:not([expanded])),:host([variant=navitem][active]:not([expanded])){--r-list-item--background-color:var(--r-background-interactive-activated, rgba(40, 40, 40, 0.08))}:host([variant=subitem]) .r-list-item{--r-list-item--margin-left:27px;--r-list-item--border-width:0 0 0 1px;--r-list-item--border-color:var(--r-border-soft, #686868)}:host([variant=subitem][active]) .r-list-item{--r-list-item--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host(:focus-visible:not(:active)) .r-list-item{--r-list-item--box-shadow:0 0 0 6px var(--r-border-focused-outlined, #fff);--r-list-item--outline:2px solid var(--r-border-focused, #0071e3);--r-list-item--outline-offset:2px}:host(:focus-within) .r-list-item[href]{--r-list-item--box-shadow:0 0 0 6px var(--r-border-focused-outlined, #fff);--r-list-item--outline:2px solid var(--r-border-focused, #0071e3);--r-list-item--outline-offset:2px}:host([disabled]:not([disabled=false])){cursor:not-allowed;--r-list-item--background-color:transparent}:host([disabled]:not([disabled=false])[divider]:not([divider=false])){--r-list-item--border-color:rgba(104,104,104, 0.4);--r-list-item--leading-icon--color:rgba(104,104,104, 0.4)}:host([truncate-description]:not([truncate-description=false])){--r-list-item--description--white-space:nowrap}:host{display:var(--display, block);pointer-events:var(--pointer-events, auto);outline:var(--outline, none);font-family:var(--font-family, var(--r-font-family-text, system-ui));line-height:var(--line-height, var(--r-line-height-m, 1.5));color:var(--color, var(--r-text-regular, #282828))}.r-list-item{display:var(--r-list-item--display, flex);align-items:var(--r-list-item--align-items, center);justify-content:var(--r-list-item--justify-content, center);gap:var(--r-list-item--gap, 16px);width:var(--r-list-item--width, inherit);padding:var(--r-list-item--padding, 16px);margin-left:var(--r-list-item--margin-left, 0);opacity:var(--r-list-item--opacity, 1);color:var(--r-list-item--color, inherit);box-shadow:var(--r-list-item--box-shadow, none);outline:var(--r-list-item--outline, none);outline-offset:var(--r-list-item--outline-offset, 0);text-decoration:var(--r-list-item--text-decoration, none);background-color:var(--r-list-item--background-color, transparent);border-style:var(--r-list-item--border-style, solid);border-width:var(--r-list-item--border-width, 0);border-color:var(--r-list-item--border-color, transparent);cursor:var(--r-list-item--cursor, inherit);font-weight:var(--r-list-item--font-weight, var(--r-font-weight-regular, 400));outline:var(--r-list-item--outline, none)}.r-list-item--leading{color:var(--r-list-item--leading--color, var(--r-icon-soft, #686868))}.r-list-item--leading-icon{color:var(--r-list-item--leading-icon--color, var(--r-icon-soft, #686868))}.r-list-item--trailing{display:var(--r-list-item--trailing--display, flex);align-self:var(--r-list-item--trailing--align-self, center);gap:var(--r-list-item--trailing--gap, 8px);color:var(--r-list-item--trailing--color, inherit)}.r-list-item--trailing-icon{transition:var(--r-list-item--trailing-icon--transition, transform 250ms ease-in-out);transform:var(--r-list-item--trailing-icon--transform, rotate(0deg));color:var(--r-list-item--trailing-icon--color, inherit)}.r-list-item--trailing-text{font-weight:var(--r-list-item--trailing-text--font-weight, 400);white-space:var(--r-list-item--trailing-text--white-space, nowrap)}.r-list-item--trailing ::slotted(*){display:var(--r-list-item--trailing-slotted--display, flex);gap:var(--r-list-item--trailing-slotted--display, 8px)}.r-list-item--text{display:var(--r-list-item--text--display, flex);flex-grow:var(--r-list-item--text--flex-grow, 1);flex-direction:var(--r-list-item--text--flex-direction, column);gap:var(--r-list-item--text--gap, 2px);white-space:var(--r-list-item--text--white-space, normal);overflow:var(--r-list-item--text--overflow, hidden);text-overflow:var(--r-list-item--text--text-overflow, ellipsis);font-weight:var(--r-list-item--trailing-text--font-weight, inherit)}.r-list-item--headline{font-size:var(--r-list-item--headline--font-size, 1rem);font-weight:var(--r-list-item--headline--font-weight, 600);line-height:var(--r-list-item--headline--line-height, 1.5);color:var(--r-list-item--headline--color, inherit)}.r-list-item--subtext,.r-list-item--description{font-size:var(--r-list-item--description--font-size, var(--r-list-item--subtext--font-size, 1rem));font-weight:var(--r-list-item--description--font-weight, var(--r-list-item--subtext--font-weight, 400));line-height:var(--r-list-item--description--line-height, var(--r-list-item--subtext--line-height, 1.5));color:var(--r-list-item--description--color, var(--r-list-item--subtext--color, var(--r-text-regular, #282828)));white-space:var(--r-list-item--description--white-space, normal);overflow:var(--r-list-item--description--overflow, hidden);text-overflow:var(--r-list-item--description--text-overflow, ellipsis)}.r-list-item--subtext ::slotted(a),.r-list-item--description ::slotted(a){color:var(--r-list-item--description--color, var(--r-list-item--subtext--slotted--color, inherit))}";
5
+ const listItemCss = ":host([alignment=top]){--r-list-item--trailing-text--font-weight:bold;--r-list-item--trailing--align-self:start}:host([alignment=bottom]) .r-list-item{--r-list-item--trailing--align-self:end}:host([divider]:not([divider=false])){--r-list-item--border-color:var(--r-border-soft, #686868);--r-list-item--border-width:0 0 1px 0}:host([active]) .r-list-item{--r-list-item--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host([variant=navitem]:not([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item,:host([href]:not([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host([variant=navitem][has-sub-items]:hover:not([disabled]:not([disabled=false])))>.r-list-item-wrapper>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host([variant=navitem][has-sub-items]:has([active]):hover:not([disabled]:not([disabled=false])))>.r-list-item-wrapper>.r-list-item{--r-list-item--cursor:pointer;--r-list-item--background-color:transparent}:host([variant=navitem][expanded])>.r-list-item-wrapper>.r-list-item{--r-list-item--headline--font-weight:600;--r-list-item--trailing-icon--transform:rotate(180deg);--r-list-item--trailing-icon--color:var(--r-icon-regular, #282828)}:host([variant=navitem][active-parent]:not([expanded])),:host([variant=navitem][active]:not([expanded])){--r-list-item--background-color:var(--r-background-interactive-activated, rgba(40, 40, 40, 0.08))}:host([variant=subitem]) .r-list-item{--r-list-item--margin-left:27px;--r-list-item--border-width:0 0 0 1px;--r-list-item--border-color:var(--r-border-soft, #686868)}:host([variant=subitem][active]) .r-list-item{--r-list-item--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host(:focus-within) .r-list-item[href]{--r-list-item--box-shadow:0 0 0 6px var(--r-border-focused-outlined, #fff);--r-list-item--outline:2px solid var(--r-border-focused, #0071e3);--r-list-item--outline-offset:2px}:host([disabled]:not([disabled=false])){cursor:not-allowed;--r-list-item--background-color:transparent}:host([disabled]:not([disabled=false])[divider]:not([divider=false])){--r-list-item--border-color:rgba(104,104,104, 0.4);--r-list-item--leading-icon--color:rgba(104,104,104, 0.4)}:host([truncate-description]:not([truncate-description=false])){--r-list-item--description--white-space:nowrap}:host{display:var(--display, block);pointer-events:var(--pointer-events, auto);outline:var(--outline, none);font-family:var(--font-family, var(--r-font-family-text, system-ui));line-height:var(--line-height, var(--r-line-height-m, 1.5));color:var(--color, var(--r-text-regular, #282828))}.r-list-item{display:var(--r-list-item--display, flex);align-items:var(--r-list-item--align-items, center);justify-content:var(--r-list-item--justify-content, center);gap:var(--r-list-item--gap, var(--r-spacing-100, 1rem));width:var(--r-list-item--width, inherit);padding:var(--r-list-item--padding, var(--r-spacing-100, 1rem));margin-left:var(--r-list-item--margin-left, 0);opacity:var(--r-list-item--opacity, 1);color:var(--r-list-item--color, inherit);box-shadow:var(--r-list-item--box-shadow, none);outline:var(--r-list-item--outline, none);outline-offset:var(--r-list-item--outline-offset, 0);text-decoration:var(--r-list-item--text-decoration, none);text-align:var(--r-list-item--text-align, left);background-color:var(--r-list-item--background-color, transparent);border-style:var(--r-list-item--border-style, solid);border-width:var(--r-list-item--border-width, 0);border-color:var(--r-list-item--border-color, transparent);cursor:var(--r-list-item--cursor, inherit);font-weight:var(--r-list-item--font-weight, var(--r-font-weight-regular, 400));font-family:var(--r-list-item--font-family, var(--r-font-family-text, system-ui))}.r-list-item:focus-visible{--r-list-item--box-shadow:0 0 0 6px var(--r-border-focused-outlined, #fff);--r-list-item--outline:2px solid var(--r-border-focused, #0071e3);--r-list-item--outline-offset:2px}.r-list-item--leading{display:var(--r-list-item--leading--display, flex);align-items:var(--r-list-item--leading--align-items, center);color:var(--r-list-item--leading--color, var(--r-icon-soft, #686868))}.r-list-item--leading-icon{color:var(--r-list-item--leading-icon--color, var(--r-icon-soft, #686868))}.r-list-item--trailing{display:var(--r-list-item--trailing--display, flex);align-self:var(--r-list-item--trailing--align-self, center);gap:var(--r-list-item--trailing--gap, var(--r-spacing-050, 0.5rem));color:var(--r-list-item--trailing--color, inherit)}.r-list-item--trailing-icon{transition:var(--r-list-item--trailing-icon--transition, transform 250ms ease-in-out);transform:var(--r-list-item--trailing-icon--transform, rotate(0deg));color:var(--r-list-item--trailing-icon--color, inherit)}.r-list-item--trailing-text{font-weight:var(--r-list-item--trailing-text--font-weight, 400);white-space:var(--r-list-item--trailing-text--white-space, nowrap)}.r-list-item--trailing ::slotted(*){display:var(--r-list-item--trailing-slotted--display, flex);gap:var(--r-list-item--trailing-slotted--display, var(--r-spacing-050, 0.5rem))}.r-list-item--text{display:var(--r-list-item--text--display, flex);flex-grow:var(--r-list-item--text--flex-grow, 1);flex-direction:var(--r-list-item--text--flex-direction, column);gap:var(--r-list-item--text--gap, 0.125rem);white-space:var(--r-list-item--text--white-space, normal);overflow:var(--r-list-item--text--overflow, hidden);text-overflow:var(--r-list-item--text--text-overflow, ellipsis);font-weight:var(--r-list-item--trailing-text--font-weight, inherit)}.r-list-item--sr-text{display:var(--r-list-item--sr-text--display, none)}.r-list-item--headline{font-size:var(--r-list-item--headline--font-size, 1rem);font-weight:var(--r-list-item--headline--font-weight, 600);line-height:var(--r-list-item--headline--line-height, 1.5);color:var(--r-list-item--headline--color, inherit)}.r-list-item--description{font-size:var(--r-list-item--description--font-size, 1rem);font-weight:var(--r-list-item--description--font-weight, 400);line-height:var(--r-list-item--description--line-height, 1.5);color:var(--r-list-item--description--color, var(--r-text-regular, #282828));white-space:var(--r-list-item--description--white-space, normal);overflow:var(--r-list-item--description--overflow, hidden);text-overflow:var(--r-list-item--description--text-overflow, ellipsis)}.r-list-item--description ::slotted(a){color:var(--r-list-item--description--color, inherit)}.r-list-item-wrapper{width:var(--r-list-item-wrapper--width, 100%)}.sub-items{margin:var(--r-sub-items--margin, 0);padding:var(--r-sub-items--padding, 0);list-style-type:var(--r-sub-items--list-style-type, \"\")}.sub-items[aria-hidden=true]{display:none}.visually-hidden{position:absolute;width:0.0625rem;height:0.0625rem;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}@media (prefers-reduced-motion){.r-list-item--trailing-icon{transition:none}}";
6
6
 
7
7
  const RListItem = class {
8
8
  constructor(hostRef) {
@@ -11,6 +11,8 @@ const RListItem = class {
11
11
  this.variant = 'list-item';
12
12
  /** Determines whether the list item is expanded to show its subitems. It can be toggled programmatically or through user interaction. */
13
13
  this.expanded = false;
14
+ /** Unique id for each subItem list */
15
+ this.uniqueSubmitemsId = `r-list-item-subitems-${Date.now().toString(32)}${Math.random().toString(32)}`.replace(/\./g, '');
14
16
  this.isEl = (selector) => {
15
17
  return this.host.querySelector(selector) !== null;
16
18
  };
@@ -50,7 +52,11 @@ const RListItem = class {
50
52
  return this.isEl('[slot="headline"]');
51
53
  }
52
54
  get isDescriptionSlot() {
53
- return this.isEl('[slot="description"]') || this.isEl('[slot="subtext"]');
55
+ return this.isEl('[slot="description"]');
56
+ }
57
+ get headlineContent() {
58
+ var _a;
59
+ return ((_a = this.host.querySelector('[slot="headline"]')) === null || _a === void 0 ? void 0 : _a.textContent) || this.headline;
54
60
  }
55
61
  get hasSubitems() {
56
62
  return this.isEl('[variant="subitem"]');
@@ -59,20 +65,12 @@ const RListItem = class {
59
65
  var _a;
60
66
  return (_a = this.host) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[variant="subitem"]');
61
67
  }
62
- handleKeyDown(event) {
63
- if (event.key !== 'Enter' && event.key !== ' ')
64
- return;
65
- this.toggleSubitems();
66
- }
67
- /** Prevent the click from toggling the parent **/
68
- handleSubitemClick(event) {
69
- event.stopPropagation();
70
- }
71
68
  /** Function to set tabindex for sub-items */
72
69
  setTabIndexOnSubItems() {
73
70
  if (this.hasSubitems) {
74
71
  this.subItems.forEach((element) => {
75
- element.shadowRoot.querySelector('a.r-list-item').setAttribute('tabindex', this.disabled ? '-1' : '0');
72
+ var _a;
73
+ (_a = element.shadowRoot.querySelector('a.r-list-item')) === null || _a === void 0 ? void 0 : _a.setAttribute('tabindex', this.disabled ? '-1' : null);
76
74
  });
77
75
  }
78
76
  }
@@ -80,26 +78,29 @@ const RListItem = class {
80
78
  this.setTabIndexOnSubItems();
81
79
  }
82
80
  get tagName() {
81
+ if (this.hasSubitems) {
82
+ return 'button';
83
+ }
83
84
  return this.href && !this.disabled ? 'a' : 'div';
84
85
  }
85
86
  render() {
86
- const { leadingIcon, leadingIconSrc, trailingIcon, trailingIconSrc, headline, trailingText, subtext, description } = this;
87
+ const { leadingIcon, leadingIconSrc, trailingIcon, trailingIconSrc, headline, trailingText, description } = this;
87
88
  const TagName = this.tagName;
88
- const itemAttrs = Object.assign({ href: TagName === 'a' ? this.href : null }, (this.disabled ? { role: 'link', 'aria-disabled': 'true' } : null));
89
- const ListItemContent = (index.h(TagName, Object.assign({ class: "r-list-item" }, itemAttrs), this.isLeading &&
89
+ const itemAttrs = Object.assign(Object.assign(Object.assign({ href: TagName === 'a' ? this.href : null, 'aria-current': this.active && TagName === 'a' ? 'page' : null }, (this.disabled ? { role: 'link', 'aria-disabled': 'true' } : null)), (this.hasSubitems ? { 'aria-expanded': `${this.expanded}` } : null)), (this.hasSubitems ? { 'aria-controls': `${this.uniqueSubmitemsId}` } : null));
90
+ const ListItemContent = (index.h(TagName, Object.assign({ class: "r-list-item" }, itemAttrs, { onClick: () => this.hasSubitems && this.toggleSubitems() }), this.isLeading &&
90
91
  index.h("span", { class: "r-list-item--leading" }, index.h("slot", { name: "leading" }, this.isLeadingIcon && !this.hideLeadingIcon &&
91
92
  index.h("r-icon", { class: "r-list-item--leading-icon", name: leadingIcon, src: leadingIconSrc }))), index.h("span", { class: "r-list-item--text" }, !this.isTextSlot ?
92
93
  index.h(index.Fragment, null, (this.isHeadlineSlot || headline) &&
93
- index.h("span", { class: "r-list-item--headline" }, index.h("slot", { name: "headline" }, headline)), (description || this.isDescriptionSlot || subtext) &&
94
- index.h("span", { class: "r-list-item--description" }, index.h("slot", { name: "subtext" }, subtext), index.h("slot", { name: "description" }, description)))
94
+ index.h("span", { class: "r-list-item--headline" }, index.h("slot", { name: "headline" }, headline)), (description || this.isDescriptionSlot) &&
95
+ index.h("span", { class: "r-list-item--description" }, index.h("slot", { name: "description" }, description)))
95
96
  :
96
- index.h("slot", { name: "text" })), this.isTrailing &&
97
+ index.h("slot", { name: "text" })), index.h("span", { class: "r-list-item--sr-text visually-hidden" }, this.headlineContent), this.isTrailing &&
97
98
  index.h("span", { class: "r-list-item--trailing" }, index.h("slot", { name: "trailing" }, this.isTrailingIcon && !trailingText &&
98
99
  index.h("r-icon", { class: "r-list-item--trailing-icon", name: trailingIcon, src: trailingIconSrc }), trailingText && !this.isTrailingIcon &&
99
100
  index.h("span", { class: "r-list-item--trailing-text" }, trailingText)))));
100
101
  if (!this.hasSubitems)
101
102
  return index.h(index.Host, null, ListItemContent);
102
- return (index.h(index.Host, { onKeyDown: this.handleKeyDown, onClick: this.toggleSubitems, tabindex: `${this.disabled ? "-1" : "0"}` }, index.h("div", { class: "r-list-item-wrapper" }, ListItemContent, this.expanded && (index.h("span", { class: "sub-items", onClick: this.handleSubitemClick }, index.h("slot", null))))));
103
+ return (index.h(index.Host, null, index.h("div", { class: "r-list-item-wrapper" }, ListItemContent, index.h("ul", { "aria-hidden": `${!this.expanded}`, id: this.uniqueSubmitemsId, class: "sub-items" }, index.h("slot", null)))));
103
104
  }
104
105
  get host() { return index.getElement(this); }
105
106
  };