@riverty/web-components 6.2.1 → 6.3.1

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 (206) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +78 -0
  3. package/custom-elements.json +4 -0
  4. package/dist/cjs/index-BnETQtSf.js +16 -16
  5. package/dist/cjs/index.cjs.js +35 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/r-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/r-badge.cjs.entry.js +3 -2
  9. package/dist/cjs/r-button.cjs.entry.js +1 -1
  10. package/dist/cjs/r-checkbox-group.cjs.entry.js +5 -0
  11. package/dist/cjs/r-checkbox.cjs.entry.js +9 -4
  12. package/dist/cjs/r-dialog.cjs.entry.js +2 -2
  13. package/dist/cjs/r-hint_2.cjs.entry.js +4 -4
  14. package/dist/cjs/r-icon-button_2.cjs.entry.js +43 -18
  15. package/dist/cjs/r-input-code.cjs.entry.js +11 -6
  16. package/dist/cjs/r-input-date.cjs.entry.js +11 -6
  17. package/dist/cjs/r-input-password.cjs.entry.js +8 -3
  18. package/dist/cjs/r-input-phone-number.cjs.entry.js +6 -6
  19. package/dist/cjs/r-input.cjs.entry.js +249 -33
  20. package/dist/cjs/r-pagination.cjs.entry.js +9 -3
  21. package/dist/cjs/r-panel.cjs.entry.js +2 -2
  22. package/dist/cjs/r-popover-action.cjs.entry.js +1 -1
  23. package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
  24. package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
  25. package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
  26. package/dist/cjs/r-popover.cjs.entry.js +2 -2
  27. package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
  28. package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
  29. package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
  30. package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
  31. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
  32. package/dist/cjs/r-radio-button.cjs.entry.js +5 -5
  33. package/dist/cjs/r-radio-group.cjs.entry.js +8 -5
  34. package/dist/cjs/r-select-option.cjs.entry.js +1 -1
  35. package/dist/cjs/r-select.cjs.entry.js +10 -4
  36. package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
  37. package/dist/cjs/r-stepper-item.cjs.entry.js +2 -2
  38. package/dist/cjs/r-stepper.cjs.entry.js +1 -1
  39. package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
  40. package/dist/cjs/r-tab.cjs.entry.js +2 -2
  41. package/dist/cjs/r-tabs-list.cjs.entry.js +3 -3
  42. package/dist/cjs/r-tabs.cjs.entry.js +1 -1
  43. package/dist/cjs/r-toast-group.cjs.entry.js +1 -1
  44. package/dist/cjs/r-toast.cjs.entry.js +17 -9
  45. package/dist/cjs/web-components.cjs.js +1 -1
  46. package/dist/collection/components/alert/alert.css +1 -0
  47. package/dist/collection/components/badge/badge.css +10 -0
  48. package/dist/collection/components/badge/badge.js +5 -1
  49. package/dist/collection/components/button/button.js +1 -1
  50. package/dist/collection/components/checkbox/checkbox.js +30 -4
  51. package/dist/collection/components/checkbox-group/checkbox-group.js +26 -0
  52. package/dist/collection/components/dialog/dialog.js +2 -2
  53. package/dist/collection/components/hint/hint.js +2 -2
  54. package/dist/collection/components/icon-button/icon-button.js +3 -3
  55. package/dist/collection/components/input/exports.js +46 -0
  56. package/dist/collection/components/input/input.css +6 -0
  57. package/dist/collection/components/input/input.js +321 -32
  58. package/dist/collection/components/input-code/input-code.js +32 -6
  59. package/dist/collection/components/input-date/input-date.js +32 -6
  60. package/dist/collection/components/input-password/input-password.js +29 -3
  61. package/dist/collection/components/input-phone-number/input-phone-number.js +25 -6
  62. package/dist/collection/components/label/label.js +2 -2
  63. package/dist/collection/components/pagination/pagination.js +18 -3
  64. package/dist/collection/components/panel/panel.js +2 -2
  65. package/dist/collection/components/popover/popover.js +2 -2
  66. package/dist/collection/components/popover-action/popover-action.js +1 -1
  67. package/dist/collection/components/popover-content/popover-content.js +1 -1
  68. package/dist/collection/components/popover-headline/popover-headline.js +1 -1
  69. package/dist/collection/components/popover-trigger/popover-trigger.js +1 -1
  70. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  71. package/dist/collection/components/radio-button/radio-button.js +5 -5
  72. package/dist/collection/components/radio-button-description/radio-button-description.js +1 -1
  73. package/dist/collection/components/radio-button-leading/radio-button-leading.js +1 -1
  74. package/dist/collection/components/radio-button-title/radio-button-title.js +1 -1
  75. package/dist/collection/components/radio-button-trailing/radio-button-trailing.js +1 -1
  76. package/dist/collection/components/radio-group/radio-group.js +8 -5
  77. package/dist/collection/components/select/select.js +31 -4
  78. package/dist/collection/components/select-option/select-option.js +1 -1
  79. package/dist/collection/components/skip-link/skip-link.js +1 -1
  80. package/dist/collection/components/stepper/stepper.js +1 -1
  81. package/dist/collection/components/stepper-item/stepper-item.js +2 -2
  82. package/dist/collection/components/tab/tab.js +2 -2
  83. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  84. package/dist/collection/components/tabs/tabs.js +1 -1
  85. package/dist/collection/components/tabs-list/tabs-list.js +3 -3
  86. package/dist/collection/components/toast/toast.js +17 -9
  87. package/dist/collection/components/toast-group/toast-group.js +1 -1
  88. package/dist/collection/components/tooltip/tooltip.css +34 -63
  89. package/dist/collection/components/tooltip/tooltip.js +39 -14
  90. package/dist/collection/index.js +2 -1
  91. package/dist/collection/utils/version-checker.js +33 -0
  92. package/dist/esm/index-CTxpqopm.js +16 -16
  93. package/dist/esm/index.js +34 -0
  94. package/dist/esm/loader.js +1 -1
  95. package/dist/esm/r-alert.entry.js +1 -1
  96. package/dist/esm/r-badge.entry.js +3 -2
  97. package/dist/esm/r-button.entry.js +1 -1
  98. package/dist/esm/r-checkbox-group.entry.js +5 -0
  99. package/dist/esm/r-checkbox.entry.js +9 -4
  100. package/dist/esm/r-dialog.entry.js +2 -2
  101. package/dist/esm/r-hint_2.entry.js +4 -4
  102. package/dist/esm/r-icon-button_2.entry.js +43 -18
  103. package/dist/esm/r-input-code.entry.js +11 -6
  104. package/dist/esm/r-input-date.entry.js +11 -6
  105. package/dist/esm/r-input-password.entry.js +8 -3
  106. package/dist/esm/r-input-phone-number.entry.js +6 -6
  107. package/dist/esm/r-input.entry.js +249 -33
  108. package/dist/esm/r-pagination.entry.js +9 -3
  109. package/dist/esm/r-panel.entry.js +2 -2
  110. package/dist/esm/r-popover-action.entry.js +1 -1
  111. package/dist/esm/r-popover-content.entry.js +1 -1
  112. package/dist/esm/r-popover-headline.entry.js +1 -1
  113. package/dist/esm/r-popover-trigger.entry.js +1 -1
  114. package/dist/esm/r-popover.entry.js +2 -2
  115. package/dist/esm/r-progress-bar.entry.js +1 -1
  116. package/dist/esm/r-radio-button-description.entry.js +1 -1
  117. package/dist/esm/r-radio-button-leading.entry.js +1 -1
  118. package/dist/esm/r-radio-button-title.entry.js +1 -1
  119. package/dist/esm/r-radio-button-trailing.entry.js +1 -1
  120. package/dist/esm/r-radio-button.entry.js +5 -5
  121. package/dist/esm/r-radio-group.entry.js +8 -5
  122. package/dist/esm/r-select-option.entry.js +1 -1
  123. package/dist/esm/r-select.entry.js +10 -4
  124. package/dist/esm/r-skip-link.entry.js +1 -1
  125. package/dist/esm/r-stepper-item.entry.js +2 -2
  126. package/dist/esm/r-stepper.entry.js +1 -1
  127. package/dist/esm/r-tab-panel.entry.js +1 -1
  128. package/dist/esm/r-tab.entry.js +2 -2
  129. package/dist/esm/r-tabs-list.entry.js +3 -3
  130. package/dist/esm/r-tabs.entry.js +1 -1
  131. package/dist/esm/r-toast-group.entry.js +1 -1
  132. package/dist/esm/r-toast.entry.js +17 -9
  133. package/dist/esm/web-components.js +1 -1
  134. package/dist/types/components/badge/badge.d.ts +3 -0
  135. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  136. package/dist/types/components/checkbox-group/checkbox-group.d.ts +2 -0
  137. package/dist/types/components/input/exports.d.ts +45 -0
  138. package/dist/types/components/input/input.d.ts +66 -1
  139. package/dist/types/components/input-code/input-code.d.ts +2 -0
  140. package/dist/types/components/input-date/input-date.d.ts +2 -0
  141. package/dist/types/components/input-password/input-password.d.ts +2 -0
  142. package/dist/types/components/input-phone-number/input-phone-number.d.ts +2 -0
  143. package/dist/types/components/pagination/pagination.d.ts +1 -1
  144. package/dist/types/components/radio-group/radio-group.d.ts +1 -0
  145. package/dist/types/components/select/select.d.ts +2 -0
  146. package/dist/types/components/tooltip/tooltip.d.ts +1 -0
  147. package/dist/types/components.d.ts +63 -2
  148. package/dist/types/utils/version-checker.d.ts +1 -0
  149. package/dist/web-components/index.esm.js +1 -0
  150. package/dist/web-components/{p-253068b9.entry.js → p-01aefcf0.entry.js} +1 -1
  151. package/dist/web-components/p-05cb55db.entry.js +1 -0
  152. package/dist/web-components/{p-477614c5.entry.js → p-11b22309.entry.js} +1 -1
  153. package/dist/web-components/{p-562051aa.entry.js → p-2d878934.entry.js} +1 -1
  154. package/dist/web-components/p-325dbedf.entry.js +1 -0
  155. package/dist/web-components/{p-10cc9983.entry.js → p-34b9457b.entry.js} +1 -1
  156. package/dist/web-components/{p-e5b943a2.entry.js → p-36abd05a.entry.js} +1 -1
  157. package/dist/web-components/{p-d2447e30.entry.js → p-386d1ef9.entry.js} +1 -1
  158. package/dist/web-components/{p-4de76291.entry.js → p-3d67b77b.entry.js} +1 -1
  159. package/dist/web-components/{p-93435fcd.entry.js → p-4b12fbc0.entry.js} +1 -1
  160. package/dist/web-components/p-52f7b505.entry.js +1 -0
  161. package/dist/web-components/{p-bfc7e6c0.entry.js → p-57ebc474.entry.js} +1 -1
  162. package/dist/web-components/{p-a1086abe.entry.js → p-57edf7f4.entry.js} +1 -1
  163. package/dist/web-components/{p-cc363c3d.entry.js → p-69a24fe2.entry.js} +1 -1
  164. package/dist/web-components/{p-e67b13df.entry.js → p-6d92648c.entry.js} +1 -1
  165. package/dist/web-components/p-75052597.entry.js +1 -0
  166. package/dist/web-components/{p-9de3a1a5.entry.js → p-7b2c5b63.entry.js} +1 -1
  167. package/dist/web-components/p-7bf463ff.entry.js +1 -0
  168. package/dist/web-components/{p-8e125826.entry.js → p-838e43d4.entry.js} +1 -1
  169. package/dist/web-components/p-8c16d038.entry.js +1 -0
  170. package/dist/web-components/{p-075a8dc8.entry.js → p-8f8313de.entry.js} +1 -1
  171. package/dist/web-components/{p-3beacdab.entry.js → p-9026d5a2.entry.js} +1 -1
  172. package/dist/web-components/p-9c31c7c4.entry.js +1 -0
  173. package/dist/web-components/p-9c415b9c.entry.js +1 -0
  174. package/dist/web-components/p-b303b2cc.entry.js +1 -0
  175. package/dist/web-components/p-b8df041d.entry.js +1 -0
  176. package/dist/web-components/p-bc30844f.entry.js +1 -0
  177. package/dist/web-components/{p-bde44ec4.entry.js → p-c4a77a65.entry.js} +1 -1
  178. package/dist/web-components/{p-d0310ed4.entry.js → p-c549addf.entry.js} +1 -1
  179. package/dist/web-components/p-c65df19f.entry.js +1 -0
  180. package/dist/web-components/p-cf3f044d.entry.js +1 -0
  181. package/dist/web-components/p-d9778cfa.entry.js +1 -0
  182. package/dist/web-components/{p-44f87e16.entry.js → p-dbe4ccb8.entry.js} +1 -1
  183. package/dist/web-components/p-ded50850.entry.js +1 -0
  184. package/dist/web-components/{p-02b22f8e.entry.js → p-e5be895b.entry.js} +1 -1
  185. package/dist/web-components/{p-495ba3d2.entry.js → p-e6b34c1e.entry.js} +1 -1
  186. package/dist/web-components/p-ec3c4800.entry.js +1 -0
  187. package/dist/web-components/p-f670fd87.entry.js +1 -0
  188. package/dist/web-components/web-components.esm.js +1 -1
  189. package/package.json +3 -2
  190. package/dist/web-components/p-3b8c8951.entry.js +0 -1
  191. package/dist/web-components/p-4214867d.entry.js +0 -1
  192. package/dist/web-components/p-42c857e9.entry.js +0 -1
  193. package/dist/web-components/p-5b850e0f.entry.js +0 -1
  194. package/dist/web-components/p-6013dfc8.entry.js +0 -1
  195. package/dist/web-components/p-62e7ae04.entry.js +0 -1
  196. package/dist/web-components/p-71519d37.entry.js +0 -1
  197. package/dist/web-components/p-88f7b47f.entry.js +0 -1
  198. package/dist/web-components/p-8975a6a3.entry.js +0 -1
  199. package/dist/web-components/p-91cc0bde.entry.js +0 -1
  200. package/dist/web-components/p-947969d7.entry.js +0 -1
  201. package/dist/web-components/p-bbba6d79.entry.js +0 -1
  202. package/dist/web-components/p-c1030394.entry.js +0 -1
  203. package/dist/web-components/p-caf8f067.entry.js +0 -1
  204. package/dist/web-components/p-cf4ff357.entry.js +0 -1
  205. package/dist/web-components/p-dc9cca06.entry.js +0 -1
  206. package/dist/web-components/p-efec231a.entry.js +0 -1
@@ -3,7 +3,54 @@
3
3
  var index = require('./index-BnETQtSf.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--trailing:empty{--r-input--trailing--display:none}.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}";
6
+ /**
7
+ * Native HTML input attributes that can be passed through.
8
+ * Using Set for O(1) lookup performance instead of O(n) array includes.
9
+ */
10
+ const nativeInputAttributesSet = new Set([
11
+ 'accept', 'autocorrect', 'capture', 'dirname',
12
+ 'height', 'incremental', 'list', 'multiple', 'size', 'src', 'width'
13
+ ]);
14
+ /**
15
+ * Special case mappings for attributes that need custom camelCase conversion
16
+ * beyond simple hyphen-based transformation. Maps HTML attribute name (lowercase)
17
+ * to JSX property name (camelCase).
18
+ */
19
+ const attributeCamelCaseMap = {
20
+ 'autocorrect': 'autoCorrect',
21
+ };
22
+ /**
23
+ * Component-specific props that should NOT be passed to the native input.
24
+ * Using Set for O(1) lookup performance.
25
+ */
26
+ const excludedAttributesSet = new Set([
27
+ 'internal', 'full-width', 'fullwidth', 'validity-marker', 'validitymarker',
28
+ 'error', 'valid', 'invalid', 'hint', 'field-indicator', 'fieldindicator',
29
+ 'value-missing-message', 'valuemissingmessage', 'type-mismatch-message', 'typemismatchmessage',
30
+ 'pattern-mismatch-message', 'patternmismatchmessage', 'too-long-message', 'toolongmessage',
31
+ 'too-short-message', 'tooshortmessage', 'range-overflow-message', 'rangeoverflowmessage',
32
+ 'range-underflow-message', 'rangeunderflowmessage', 'step-mismatch-message', 'stepmismatchmessage',
33
+ 'bad-input-message', 'badinputmessage', 'custom-error-message', 'customerrormessage'
34
+ ]);
35
+ /**
36
+ * Framework/DOM-specific attributes that should never be passed through.
37
+ */
38
+ const frameworkAttributesSet = new Set([
39
+ 'class', 'style', 'id', 'slot', 'ref', 'key'
40
+ ]);
41
+ /**
42
+ * ARIA attributes that are already handled explicitly by the component
43
+ * and should not be passed through to avoid conflicts.
44
+ */
45
+ const managedAriaAttributesSet = new Set([
46
+ 'aria-invalid',
47
+ 'aria-required',
48
+ 'aria-placeholder',
49
+ 'aria-describedby',
50
+ 'data-value'
51
+ ]);
52
+
53
+ 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)}:host([size]){--r-input--width:auto;--r-input--input--width:auto;--r-input--container--display:inline-flex}.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--trailing:empty{--r-input--trailing--display:none}.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
54
 
8
55
  const RInput = class {
9
56
  constructor(hostRef) {
@@ -14,6 +61,11 @@ const RInput = class {
14
61
  this.rFocus = index.createEvent(this, "rFocus");
15
62
  this.rChange = index.createEvent(this, "rChange");
16
63
  this.rReset = index.createEvent(this, "rReset");
64
+ this.rBeforeInput = index.createEvent(this, "rBeforeInput");
65
+ this.rInvalid = index.createEvent(this, "rInvalid");
66
+ this.rKeyDown = index.createEvent(this, "rKeyDown");
67
+ this.rKeyUp = index.createEvent(this, "rKeyUp");
68
+ this.rSelect = index.createEvent(this, "rSelect");
17
69
  /**
18
70
  * Input type (e.g. `text`, `email`, `number`, `password`).
19
71
  * See HTMLInputElement `type` for supported values.
@@ -23,6 +75,8 @@ const RInput = class {
23
75
  * Current value. Mutable: can be changed programmatically or through user input.
24
76
  */
25
77
  this.value = '';
78
+ /** Internal state for options extracted from slotted datalist */
79
+ this.slottedOptions = [];
26
80
  /**
27
81
  * When `true` field renders valid/invalid marker within.
28
82
  */
@@ -38,11 +92,37 @@ const RInput = class {
38
92
  /** Private flag to prevent validation during reset */
39
93
  this.isResetting = false;
40
94
  this.nativeElement = null;
95
+ /**
96
+ * Helper to set the native input element ref and apply boolean properties
97
+ * that don't get properly set through JSX attribute spreading.
98
+ */
99
+ this.setNativeInputRef = (el) => {
100
+ this.nativeElement = el;
101
+ if (el) {
102
+ el.addEventListener('beforeinput', this.onBeforeInput);
103
+ // Manually apply boolean native attributes as properties
104
+ // This is necessary because Stencil's JSX doesn't always properly
105
+ // set boolean DOM properties when spreading attributes
106
+ const passthroughAttrs = this.collectNativeAttributes();
107
+ // List of boolean native input properties that need manual application
108
+ const booleanProps = ['multiple'];
109
+ for (const prop of booleanProps) {
110
+ if (prop in passthroughAttrs && passthroughAttrs[prop] === true) {
111
+ el[prop] = true;
112
+ }
113
+ }
114
+ }
115
+ };
41
116
  this.uniqueId = `r-input-${Date.now().toString(32)}${Math.random().toString(32)}`.replace(/\./g, '');
42
117
  /**
43
118
  * Initial attributes state
44
119
  * */
45
120
  this.initial = {};
121
+ /**
122
+ * Cache for passthrough attributes to avoid recomputing on every render.
123
+ * Cleared when attributes might have changed.
124
+ */
125
+ this.passthroughAttrsCache = null;
46
126
  this.getValidityStateData = (element) => {
47
127
  let validityState = '';
48
128
  let validityMessage = '';
@@ -118,9 +198,25 @@ const RInput = class {
118
198
  this.host.classList.add('focused');
119
199
  this.rFocus.emit();
120
200
  };
201
+ this.onBeforeInput = (event) => {
202
+ this.rBeforeInput.emit(event);
203
+ };
204
+ this.onInvalid = (event) => {
205
+ this.rInvalid.emit(event);
206
+ };
207
+ this.onKeyDown = (event) => {
208
+ this.rKeyDown.emit(event);
209
+ };
210
+ this.onKeyUp = (event) => {
211
+ this.rKeyUp.emit(event);
212
+ };
213
+ this.onSelect = (event) => {
214
+ this.rSelect.emit(event);
215
+ };
121
216
  this.contributeToFormData = (event) => {
122
217
  formData.appendControlToFormData(this.nativeElement || this.host, event.formData);
123
218
  };
219
+ this.datalistObserver = null;
124
220
  this.onResetForm = () => {
125
221
  if (this.readonly)
126
222
  return;
@@ -232,6 +328,11 @@ const RInput = class {
232
328
  this.value = value;
233
329
  this.validateFormElement(this.nativeElement);
234
330
  }
331
+ /** Validates an element, displays provided message in case value is invalid. */
332
+ async setCustomValidity(message) {
333
+ this.customErrorMessage = message;
334
+ this.validateFormElement(this.nativeElement);
335
+ }
235
336
  /**
236
337
  * Validates the input without triggering UI and returns a boolean indicating its validity.
237
338
  * @returns A boolean indicating whether the input is valid.
@@ -259,6 +360,56 @@ const RInput = class {
259
360
  this.touched = false;
260
361
  this.dirty = false;
261
362
  }
363
+ get datalistId() {
364
+ return `${this.uniqueId}-list`;
365
+ }
366
+ /**
367
+ * Checks if an attribute should be excluded from passthrough.
368
+ */
369
+ shouldExcludeAttribute(attrName) {
370
+ return (frameworkAttributesSet.has(attrName) ||
371
+ excludedAttributesSet.has(attrName) ||
372
+ managedAriaAttributesSet.has(attrName));
373
+ }
374
+ /**
375
+ * Collects native HTML input attributes from the host element that aren't
376
+ * already handled by explicit props. This allows passing through attributes
377
+ * like 'list', 'multiple', 'size', etc. without creating explicit props.
378
+ * Optimized with Set lookups (O(1)) and caching.
379
+ */
380
+ collectNativeAttributes() {
381
+ // Return cached result if available
382
+ if (this.passthroughAttrsCache !== null) {
383
+ return this.passthroughAttrsCache;
384
+ }
385
+ const collected = {};
386
+ const hostAttrs = this.host.attributes;
387
+ // Early return if no attributes to process
388
+ if (!hostAttrs || hostAttrs.length === 0) {
389
+ this.passthroughAttrsCache = collected;
390
+ return collected;
391
+ }
392
+ for (const attr of Array.from(hostAttrs)) {
393
+ const attrName = attr.name.toLowerCase();
394
+ // Skip framework/component-specific attributes using helper method
395
+ if (this.shouldExcludeAttribute(attrName)) {
396
+ continue;
397
+ }
398
+ // Include data-* or native input attributes (exclude aria- - component manages ARIA via inputAttrs)
399
+ if (attrName.startsWith('data-') || nativeInputAttributesSet.has(attrName)) {
400
+ // Use special camelCase mapping for certain attributes that need it for JSX properties
401
+ // Otherwise keep the attribute name as-is for native HTML attributes
402
+ const jsxAttrName = attributeCamelCaseMap[attrName] || attrName;
403
+ // Handle boolean attributes: if value is empty or matches attribute name, set to true
404
+ // This ensures proper JSX rendering for attributes like 'multiple'
405
+ const attrValue = attr.value;
406
+ collected[jsxAttrName] = (attrValue === '' || attrValue === attrName) ? true : attrValue;
407
+ }
408
+ }
409
+ // Cache the result
410
+ this.passthroughAttrsCache = collected;
411
+ return collected;
412
+ }
262
413
  /** Identify wrapping form element */
263
414
  get parentFormEl() {
264
415
  return this.host.closest('form') || document.querySelector(`#${this.form}`) || null;
@@ -272,7 +423,7 @@ const RInput = class {
272
423
  return this.invalid && !!((_a = this.error) === null || _a === void 0 ? void 0 : _a.length);
273
424
  }
274
425
  get hasValidationError() {
275
- return (this.validityState !== 'valid' || this.invalid) && !!(this.validityMessage || this.customErrorMessage);
426
+ return (this.validityState && this.validityState !== 'valid' || this.invalid) && !!(this.validityMessage || this.customErrorMessage);
276
427
  }
277
428
  get hasMessage() {
278
429
  return this.hasError || this.hasValidationError;
@@ -291,12 +442,52 @@ const RInput = class {
291
442
  return !!this.host.querySelector('[slot="trailing"]');
292
443
  }
293
444
  get validEmailPattern() {
445
+ if (!this.value)
446
+ return false;
294
447
  const regex = new RegExp(this.pattern, 'u');
295
448
  return regex.test(this.value);
296
449
  }
297
450
  componentWillLoad() {
298
451
  this.initial['value'] = this.value;
299
452
  this.initial['invalid'] = this.invalid;
453
+ // Clear passthrough attributes cache to ensure fresh collection on load
454
+ this.passthroughAttrsCache = null;
455
+ // Extract options from slotted datalist
456
+ this.extractSlottedDatalistOptions();
457
+ }
458
+ /**
459
+ * Extracts options from a slotted <datalist> element.
460
+ * Supports both default slot and slot="datalist" usage.
461
+ */
462
+ extractSlottedDatalistOptions() {
463
+ // First check for slot="datalist"
464
+ const slottedDatalist = this.host.querySelector('datalist[slot="datalist"]');
465
+ if (!slottedDatalist) {
466
+ // Check for datalist in default slot
467
+ const defaultSlotDatalist = Array.from(this.host.querySelectorAll('datalist'))
468
+ .find(el => !el.hasAttribute('slot'));
469
+ if (!defaultSlotDatalist) {
470
+ return;
471
+ }
472
+ this.slottedOptions = this.parseDatalistOptions(defaultSlotDatalist);
473
+ }
474
+ else {
475
+ this.slottedOptions = this.parseDatalistOptions(slottedDatalist);
476
+ }
477
+ }
478
+ /**
479
+ * Parses options from a HTMLDataListElement into InputOption array.
480
+ */
481
+ parseDatalistOptions(datalist) {
482
+ const options = [];
483
+ const optionElements = datalist.querySelectorAll('option');
484
+ optionElements.forEach(opt => {
485
+ options.push({
486
+ value: opt.value,
487
+ label: opt.label || opt.textContent || opt.value
488
+ });
489
+ });
490
+ return options;
300
491
  }
301
492
  connectFormEventListeners() {
302
493
  var _a, _b, _c;
@@ -304,18 +495,49 @@ const RInput = class {
304
495
  (_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.addEventListener('submit', this.onSubmitForm, { capture: true });
305
496
  (_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.addEventListener('reset', this.onResetForm);
306
497
  }
307
- disconnectFormEventListeners() {
308
- var _a, _b, _c;
309
- (_a = this.parentFormEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('formdata', this.contributeToFormData);
310
- (_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('submit', this.onSubmitForm);
311
- (_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('reset', this.onResetForm);
312
- }
313
498
  connectedCallback() {
314
499
  this.connectFormEventListeners();
315
- !!this.autofocus && queueMicrotask(() => { var _a; return (_a = this.host.querySelector('input[autofocus]')) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true }); });
500
+ this.setupDatalistObserver();
501
+ if (this.autofocus && !RInput.autofocusHandled) {
502
+ RInput.autofocusHandled = true;
503
+ queueMicrotask(() => { var _a; return (_a = this.host.querySelector('input[autofocus]')) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true }); });
504
+ }
316
505
  }
317
506
  disconnectedCallback() {
507
+ var _a;
318
508
  this.disconnectFormEventListeners();
509
+ this.disconnectDatalistObserver();
510
+ (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('beforeinput', this.onBeforeInput);
511
+ }
512
+ setupDatalistObserver() {
513
+ this.extractSlottedDatalistOptions();
514
+ if (typeof MutationObserver === 'undefined') {
515
+ return;
516
+ }
517
+ this.datalistObserver = new MutationObserver((mutations) => {
518
+ for (const mutation of mutations) {
519
+ if (mutation.type === 'childList') {
520
+ this.extractSlottedDatalistOptions();
521
+ break;
522
+ }
523
+ }
524
+ });
525
+ this.datalistObserver.observe(this.host, {
526
+ childList: true,
527
+ subtree: false
528
+ });
529
+ }
530
+ disconnectDatalistObserver() {
531
+ if (this.datalistObserver) {
532
+ this.datalistObserver.disconnect();
533
+ this.datalistObserver = null;
534
+ }
535
+ }
536
+ disconnectFormEventListeners() {
537
+ var _a, _b, _c;
538
+ (_a = this.parentFormEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('formdata', this.contributeToFormData);
539
+ (_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('submit', this.onSubmitForm);
540
+ (_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('reset', this.onResetForm);
319
541
  }
320
542
  handleValueChange() {
321
543
  if (!this.isResetting) {
@@ -323,12 +545,18 @@ const RInput = class {
323
545
  }
324
546
  }
325
547
  handleTypeChange() {
326
- this.setValue(this.nativeElement.value);
548
+ if (this.nativeElement) {
549
+ this.setValue(this.nativeElement.value);
550
+ }
327
551
  }
328
552
  render() {
329
553
  const { name, placeholder, required, fieldIndicator, maxlength, minlength, min, max, value, disabled, form, pattern, invalid, valid, hint, label, internal, uniqueId, autocomplete, readonly, autofocus, passwordrules, enterkeyhint, spellcheck, autocapitalize, validityMarker } = this;
330
- const inputAttrs = {
331
- disabled,
554
+ // Collect any native input attributes that were set on the host element
555
+ const passthroughAttrs = this.collectNativeAttributes();
556
+ // Combine options from prop and slotted datalist (prop takes precedence)
557
+ const options = [...(this.slottedOptions || [])];
558
+ const hasDatalist = options.length > 0;
559
+ const inputAttrs = Object.assign(Object.assign({ disabled,
332
560
  readonly,
333
561
  required,
334
562
  label,
@@ -340,20 +568,15 @@ const RInput = class {
340
568
  max,
341
569
  form,
342
570
  pattern,
343
- autocomplete,
344
- autofocus: autofocus || null,
345
- passwordrules,
571
+ autocomplete, autofocus: autofocus || null, passwordrules,
346
572
  enterkeyhint,
347
573
  autocapitalize,
348
- spellcheck,
349
- inputmode: this.inputmode || null,
350
- id: uniqueId,
351
- 'data-value': value,
352
- 'aria-placeholder': placeholder,
353
- 'aria-invalid': `${invalid || false}`,
354
- 'aria-required': `${required || false}`,
355
- 'aria-describedby': this.ariaDescribedBy
356
- };
574
+ spellcheck, inputmode: this.inputmode || null, id: uniqueId }, passthroughAttrs), {
575
+ // Component-controlled values always win
576
+ 'data-value': value, 'aria-invalid': `${invalid || false}`, 'aria-required': `${required || false}`, 'aria-describedby': this.ariaDescribedBy,
577
+ // list attribute: use internal datalist when options provided, otherwise use passthrough value (explicit takes precedence)
578
+ list: hasDatalist ? this.datalistId : (passthroughAttrs.list || null)
579
+ });
357
580
  const labelAttr = label ? {
358
581
  id: `${uniqueId}-label`,
359
582
  fieldIndicator
@@ -375,19 +598,11 @@ const RInput = class {
375
598
  const iconColor = shouldShowInvalidMarker ? colors.invalid : colors.valid;
376
599
  return index.h("r-icon", { class: "r-input--validation-icon", "aria-hidden": "true", size: "s", name: iconName, color: iconColor });
377
600
  };
378
- // Filter out event listener properties based on naming convention.
379
- // Pass them to native element.
380
- const eventListeners = Object.entries(this).reduce((acc, [key, value]) => {
381
- if (typeof value === 'function' && key.startsWith('on')) {
382
- acc[key] = value;
383
- }
384
- return acc;
385
- }, {});
386
601
  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 ?
387
602
  index.h("r-label", Object.assign({ class: "r-input--label" }, labelAttr), label)
388
603
  :
389
604
  index.h("slot", { name: "label" })), index.h("slot", { name: "popover" })), hint &&
390
- 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 &&
605
+ 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, { ref: this.setNativeInputRef, value: this.value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onInvalid: this.onInvalid, onKeyDown: this.onKeyDown, onKeyUp: this.onKeyUp, onSelect: this.onSelect })), hasDatalist && (index.h("datalist", { ref: (el) => el && (el.id = this.datalistId) }, options.map((option) => (index.h("option", { value: option.value }, option.label || option.value))))), index.h("div", { class: "r-input--trailing" }, this.readonly &&
391
606
  index.h("r-icon", { class: "r-input--readonly-icon", name: "pen-disabled", size: "s" }), renderValidationMarker(), this.hasTrailingSlot &&
392
607
  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))))));
393
608
  }
@@ -397,6 +612,7 @@ const RInput = class {
397
612
  "type": ["handleTypeChange"]
398
613
  }; }
399
614
  };
615
+ RInput.autofocusHandled = false;
400
616
  RInput.style = inputCss;
401
617
 
402
618
  exports.r_input = RInput;
@@ -192,6 +192,9 @@ const RPagination = class {
192
192
  }
193
193
  return isArrowButton ? buttonElement : (_e = this.el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector(`.r-pagination--item[data-index="${this.pageActive}"]`);
194
194
  }
195
+ handlePropsChange() {
196
+ this.setPaginationState();
197
+ }
195
198
  componentWillLoad() {
196
199
  this.setPaginationState();
197
200
  }
@@ -203,9 +206,6 @@ const RPagination = class {
203
206
  componentDidRender() {
204
207
  this.syncHeaderWidth();
205
208
  }
206
- componentDidUpdate() {
207
- this.setPaginationState(); // Recalculate when props change
208
- }
209
209
  render() {
210
210
  const { active, previous, next, first, itemsPerPage, itemsPerPageOptions, startText, middleText, endText, selectText, listBoxPosition } = this;
211
211
  const itemTemplate = (type, index$1) => {
@@ -308,6 +308,12 @@ const RPagination = class {
308
308
  return (index.h(index.Host, { role: "navigation" }, index.h("div", { class: "r-pagination" }, this.resultsLine && renderHeader(), renderList())));
309
309
  }
310
310
  get el() { return index.getElement(this); }
311
+ static get watchers() { return {
312
+ "totalResults": ["handlePropsChange"],
313
+ "itemsPerPage": ["handlePropsChange"],
314
+ "variant": ["handlePropsChange"],
315
+ "pageActive": ["handlePropsChange"]
316
+ }; }
311
317
  };
312
318
  RPagination.style = paginationCss;
313
319
 
@@ -168,10 +168,10 @@ const Panel = class {
168
168
  }
169
169
  }
170
170
  render() {
171
- return (index.h(index.Host, { key: '0404a2c3acbba8414d7baffc8c0f861e512fe7cb', role: "navigation", collapsed: this.isCollapsed }, index.h("div", { key: 'b93d1555f060793b7137fd6aac0de2a1a1f35436', class: "r-panel" }, index.h("div", { key: 'b7dd2dee4c145a21a5a963750e8b26ab2d8b9bbe', class: "r-panel--header" }, this.hasHeader && (index.h("a", { key: 'dbb02cd6271fba2a5d4a783a20d5e6d9e34ee734', class: "logo-wrapper", href: this.logoLink }, this.isCollapsed ?
171
+ return (index.h(index.Host, { key: '44996078c23da8ce9b5b48044d24d45778e688b4', role: "navigation", collapsed: this.isCollapsed }, index.h("div", { key: 'a217b08d3fda5e4f8761d971074e3de797363f32', class: "r-panel" }, index.h("div", { key: '8ff71b762feffd1cc9478014e011fc60875a5e3d', class: "r-panel--header" }, this.hasHeader && (index.h("a", { key: '9ad8475299e9f04341cc1c4b5b9e65551f2f6ca2', class: "logo-wrapper", href: this.logoLink }, this.isCollapsed ?
172
172
  index.h("slot", { name: "logo-collapsed" })
173
173
  :
174
- index.h("slot", { name: "logo-expanded" }))), this.variant === 'modal' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "cross", rAriaLabel: `${this.labelCollapse}`, onClick: this.handleFullyCollapsedButtonClick })) : this.variant === 'drawer' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "angle-left", rAriaLabel: this.isCollapsed ? `${this.labelExpand}` : `${this.labelCollapse}`, onClick: this.handleSemiCollapsedButtonClick })) : this.variant === 'visible' ? (null) : null), index.h("div", { key: 'bb3d86b7a4b0890709d4a4637eca033ddaec24a6', class: "r-panel--body" }, index.h("slot", { key: '201aa3f616d3d239fc7b0edc23565a6618304ce5' })), this.hasFooter && !this.isCollapsed && (index.h("div", { key: 'a15f34fbb86ad8b16c6d036b885c7c8b13655fc6', class: "r-panel--footer" }, index.h("slot", { key: '41de73edf832d3a5ca93e4f9a79a62780fdcd68b', name: "footer" }))))));
174
+ index.h("slot", { name: "logo-expanded" }))), this.variant === 'modal' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "cross", rAriaLabel: `${this.labelCollapse}`, onClick: this.handleFullyCollapsedButtonClick })) : this.variant === 'drawer' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "angle-left", rAriaLabel: this.isCollapsed ? `${this.labelExpand}` : `${this.labelCollapse}`, onClick: this.handleSemiCollapsedButtonClick })) : this.variant === 'visible' ? (null) : null), index.h("div", { key: '14b5a3ee0e11eda6585a84e0f05aa682950fbce2', class: "r-panel--body" }, index.h("slot", { key: 'e008d4f4796415779cd8e3dbda696b966b4ac184' })), this.hasFooter && !this.isCollapsed && (index.h("div", { key: '702c5859f2a7aa60903ec1df29f8977cf46dd0b8', class: "r-panel--footer" }, index.h("slot", { key: '347796d3e0bbffed77ae9368270f6e27eb93e156', name: "footer" }))))));
175
175
  }
176
176
  get host() { return index.getElement(this); }
177
177
  static get watchers() { return {
@@ -71,7 +71,7 @@ const PopoverAction = class {
71
71
  return focusable.focusableElements(this.host);
72
72
  }
73
73
  render() {
74
- return (index.h(index.Host, { key: '8e0de158033b48c66aa49930911e1f383c2010ae', slot: "action" }, index.h("slot", { key: 'b9c762d2c1774600a29306559253125abc21cbcd', onSlotchange: this.handleSlotChange })));
74
+ return (index.h(index.Host, { key: 'a2e9f0482b6de85e54d5fb6c748113efbb76b887', slot: "action" }, index.h("slot", { key: '656f07644cd0d2e9a15263f644676a3e698d005d', onSlotchange: this.handleSlotChange })));
75
75
  }
76
76
  get host() { return index.getElement(this); }
77
77
  };
@@ -53,7 +53,7 @@ const PopoverContent = class {
53
53
  return focusable.focusableElements(this.host);
54
54
  }
55
55
  render() {
56
- return (index.h(index.Host, { key: 'f05a31b3948094f5f7ca657f4bd81474af2fcb6e', slot: "content", class: "r-typography" }, index.h("slot", { key: '0ecbe8de6c0ec200499aead61fc883804c4c4dd7' })));
56
+ return (index.h(index.Host, { key: '2384c04a8610e5d26bcd3e3fb4e70c99fca7d76a', slot: "content", class: "r-typography" }, index.h("slot", { key: '52ce40873c2e32725ee8ef8fc385d498ff8b973c' })));
57
57
  }
58
58
  get host() { return index.getElement(this); }
59
59
  };
@@ -19,7 +19,7 @@ const PopoverHeadline = class {
19
19
  theming.stopInverseThemeAwareness(this.host, themeContextElement);
20
20
  }
21
21
  render() {
22
- return (index.h(index.Host, { key: '21f1656241f40201d5eb98cfb454d9c509f6cfe1', slot: "headline" }, index.h("slot", { key: 'fa9861bd13bcb23b420c5b5aa085ba6ceecb3df4' })));
22
+ return (index.h(index.Host, { key: 'bdbaecb36f49d54a1b33ef27d1c954834df68198', slot: "headline" }, index.h("slot", { key: '82eb6ae289211e5a23149e12125c1c30cf6b3ffd' })));
23
23
  }
24
24
  get host() { return index.getElement(this); }
25
25
  };
@@ -61,7 +61,7 @@ const PopoverTrigger = class {
61
61
  (_a = this.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
62
62
  }
63
63
  render() {
64
- return (index.h(index.Host, { key: '313cccef6d7f463a6088581b2efc3057a97d61b2', slot: "trigger", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, index.h("slot", { key: '65ff3ba6c677c693445c0c82feae795a94768cf8' })));
64
+ return (index.h(index.Host, { key: '6c97f11b7263d0cf574fdafcef3d7a9733fe7925', slot: "trigger", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, index.h("slot", { key: '7d434e3505eda793e8d1d50f9fb1aa608061fa50' })));
65
65
  }
66
66
  get host() { return index.getElement(this); }
67
67
  };
@@ -331,8 +331,8 @@ const Popover = class {
331
331
  }
332
332
  render() {
333
333
  const TAG = !this.activeElement ? 'button' : 'div';
334
- return (index.h(index.Host, { key: 'f836d35a44519d273dc399d0ae6142f17e78888e', id: this.uniqueId, "data-position": this.positionState, "data-open": `${this.isOpen}`, open: this.isOpen }, index.h("div", { key: '88146350c8695487a18028a20bf1313052b35870', class: "r-popover" }, index.h(TAG, { key: 'de1a53f1f921acc223ebd0276b46e43832e5a82f', class: "r-popover--trigger", "aria-label": !this.activeElement ? this.triggerAriaLabel : null, ref: el => this.triggerElement = el, "aria-haspopup": "dialog", popoverTarget: !this.activeElement ? `${this.uniqueId}-board` : null, popoverTargetAction: !this.activeElement ? this.triggerAction : null }, index.h("slot", { key: '2946f68024273f6b7bbb250faca7794eb712cc58', name: "trigger" })), index.h("div", { key: 'cf44066fb1ec34178d73b812f5bcca3b1977575d', class: "r-popover--board", id: `${this.uniqueId}-board`, role: "dialog", "aria-label": this.headlineSlotContent, popover: this.dismissMode, ref: el => this.boardElement = el, onToggle: this.onToggle, onKeyDown: this.onKeyDown }, this.hasDismiss &&
335
- index.h("r-icon-button", { key: '41e3e2bef98b88328984233271e7378a767eaf76', ref: el => this.dismissElement = el, class: "r-popover--dismiss", name: "cross", onClick: this.onClickDismiss, label: this.dismissAriaLabel }), index.h("div", { key: '9d47e8f5e2cb4d27118b64cfcf3eb83dd7d84ff0', class: "r-popover--board-content" }, index.h("slot", { key: '68f384a418a32a14b01adb7e3d407e4e46f8ca95', name: "headline" }), index.h("slot", { key: '3536f9f3aa738919115c1ad017cd0f66438fb044', name: "content" }), index.h("slot", { key: '4ecbf5d23cb23f9adaade04f3694a6d17f773365', name: "action" })), index.h("div", { key: '1c3acee058d689e106b9fca008d77229d52b2aea', class: "r-popover--board-pointer", "aria-hidden": "true" }, index.h("svg", { key: 'bb211b28714acc84753bbaaafee1ab1624d51b6c', width: "16", height: "8", viewBox: "0 0 16 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { key: '0ad29cb4ef8d2d7f62738af3b1749c5b5e007d87', d: "M8 8L0 0L16 0L8 8Z", fill: "currentColor" })))))));
334
+ return (index.h(index.Host, { key: '655880fb3d3f069e13bc7025f932abc192df8918', id: this.uniqueId, "data-position": this.positionState, "data-open": `${this.isOpen}`, open: this.isOpen }, index.h("div", { key: '6617392de14d78a1a53172fc689245749f01909a', class: "r-popover" }, index.h(TAG, { key: '87dc99d5ab380b7f288fa9fba0e861feacff6e20', class: "r-popover--trigger", "aria-label": !this.activeElement ? this.triggerAriaLabel : null, ref: el => this.triggerElement = el, "aria-haspopup": "dialog", popoverTarget: !this.activeElement ? `${this.uniqueId}-board` : null, popoverTargetAction: !this.activeElement ? this.triggerAction : null }, index.h("slot", { key: '51c875b84c1311e40292cf7fe80f7753fcd15abf', name: "trigger" })), index.h("div", { key: '24a2d6a90d0fe9167a08328e80ed6164c94170f0', class: "r-popover--board", id: `${this.uniqueId}-board`, role: "dialog", "aria-label": this.headlineSlotContent, popover: this.dismissMode, ref: el => this.boardElement = el, onToggle: this.onToggle, onKeyDown: this.onKeyDown }, this.hasDismiss &&
335
+ index.h("r-icon-button", { key: '51e2563b582c5300eff1a032829bfdfb4947bdb6', ref: el => this.dismissElement = el, class: "r-popover--dismiss", name: "cross", onClick: this.onClickDismiss, label: this.dismissAriaLabel }), index.h("div", { key: '6abf0772e1b45c1c6be7eeeb5a0b37469e17c4de', class: "r-popover--board-content" }, index.h("slot", { key: 'd4af6923192d72fb77e0591dbc9f163965fdb9b7', name: "headline" }), index.h("slot", { key: '469fb95a09ce36ad41b7a76e3f09c8834c4e7e14', name: "content" }), index.h("slot", { key: '17145240e43b06ae7186ad8d46a3d10b7996d3f2', name: "action" })), index.h("div", { key: '68e7ce9cdbe5c5b765d5866d9ea6c80d6b830630', class: "r-popover--board-pointer", "aria-hidden": "true" }, index.h("svg", { key: '55d0e368d2af54a082fc8323b9b1e40457a5a62b', width: "16", height: "8", viewBox: "0 0 16 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { key: '86db95e48bed58187dea614c81527f6bd7ef9f3e', d: "M8 8L0 0L16 0L8 8Z", fill: "currentColor" })))))));
336
336
  }
337
337
  get host() { return index.getElement(this); }
338
338
  static get watchers() { return {
@@ -17,7 +17,7 @@ const ProgressBar = class {
17
17
  max: '100',
18
18
  'aria-label': rAriaLabel
19
19
  };
20
- return (index.h(index.Host, { key: '8d8307ebac0b8a231569bd86c35175d9f11e14ac' }, index.h("progress", Object.assign({ key: '631b8ecaaca4fde5c14ddabb74ff076610557832' }, progressBarAttrs, { class: "r-progress-bar" }))));
20
+ return (index.h(index.Host, { key: '832812688a18bea634c8ff2c5ea69599cdefdcff' }, index.h("progress", Object.assign({ key: 'd3384feada9ee1594e3ee331377d30ae1e8725f1' }, progressBarAttrs, { class: "r-progress-bar" }))));
21
21
  }
22
22
  };
23
23
  ProgressBar.style = progressBarCss;
@@ -9,7 +9,7 @@ const RadioButtonDescription = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '0cc8dafb54d3b65f6c3af977bde4019ac413042d', slot: "description" }, index.h("div", { key: '7347ec0238fbf3c8471cdcf6fb3cf303a0f9c4e7', class: "r-radio-button-description", style: { display: 'contents' } }, index.h("slot", { key: '940714dd9b350c10b47486454139506d38fa0366' }))));
12
+ return (index.h(index.Host, { key: '30f29f811a727ba758a1e5b89fb86baf78076694', slot: "description" }, index.h("div", { key: '233da5297c2b1e47def8e92f0d8e9a5fba846dc8', class: "r-radio-button-description", style: { display: 'contents' } }, index.h("slot", { key: 'f00f06ec8f07b3995fb2249977cad70df930a4c9' }))));
13
13
  }
14
14
  get host() { return index.getElement(this); }
15
15
  };
@@ -9,7 +9,7 @@ const RadioButtonLeading = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '2f4f3dae827959cebf6a5b5797d8942b6fbbeded', slot: "leading" }, index.h("div", { key: '6dfda6f9bf0c88056d3d46f095b1f30e615ac5d7', class: "r-radio-button-leading", style: { display: 'contents' } }, index.h("slot", { key: 'd909c93595d5f43ad3d8b93262134b52fbfde23c' }))));
12
+ return (index.h(index.Host, { key: 'fcfa2b1df999df8a168bd0255ad7855dce28485c', slot: "leading" }, index.h("div", { key: '2d0e091a66adb24576f5e4a2f0959b8c83dc2017', class: "r-radio-button-leading", style: { display: 'contents' } }, index.h("slot", { key: 'cebdf0262db3ce092efbe2e8e830aa54903aa59e' }))));
13
13
  }
14
14
  get host() { return index.getElement(this); }
15
15
  };
@@ -9,7 +9,7 @@ const RadioButtonTitle = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '2d2ae73f63409f55e0d5920c351cfed20d3b69d9', slot: "title" }, index.h("div", { key: '8f0ed8680798a41ddf827e74b245e43464f51eb0', class: "r-radio-button-title", style: { display: 'contents' } }, index.h("slot", { key: '336df52466bdad5baa93b1ed6abb192bee958e30' }))));
12
+ return (index.h(index.Host, { key: '12da195c66d902eba41e84b1ccaf3efbabbac144', slot: "title" }, index.h("div", { key: '84fc3a3e1d0b9b641a7fb859d03e904b5009cb44', class: "r-radio-button-title", style: { display: 'contents' } }, index.h("slot", { key: '6562965e5dfa79f4b9f80f22b4293e8ea600e4b2' }))));
13
13
  }
14
14
  get host() { return index.getElement(this); }
15
15
  };
@@ -9,7 +9,7 @@ const RadioButtonTrailing = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h(index.Host, { key: '628b87d2952aad3e25f8fd6b0b61c6db06a15959', slot: "trailing" }, index.h("div", { key: '93d2888f3e10e6346fda143ba8d0757d2913a503', class: "r-radio-button-trailing", style: { display: 'contents' } }, index.h("slot", { key: '5929143a1c1b54e9e3f082dd54c2e1376a80dece' }))));
12
+ return (index.h(index.Host, { key: 'b9fc1731ecc2b522e341cfaceb5b703c8d74253f', slot: "trailing" }, index.h("div", { key: 'f1319664b1543a4a784cb2cd665567a4d561bdc3', class: "r-radio-button-trailing", style: { display: 'contents' } }, index.h("slot", { key: 'dbed8559c3b0a5ba2580fe9e8c297e7eb947e5a5' }))));
13
13
  }
14
14
  get host() { return index.getElement(this); }
15
15
  };
@@ -126,11 +126,11 @@ const RadioButton = class {
126
126
  required,
127
127
  autofocus
128
128
  };
129
- return (index.h(index.Host, { key: 'cf6b1b5db202773a2c6eea4df6a9303275054a73' }, index.h("label", { key: '4e203583a2b779e239c2893eadccc3514f84b0c4', class: "r-radio-button", onClick: this.onClick, onKeyDown: this.onKeydown }, index.h("input", Object.assign({ key: '14e89b050928abd51b66e8637c39bbd8da8e9856' }, inputAttrs, { id: `${uniqueId}-input`, class: "r-radio-button--input", ref: el => this.nativeEl = el, onFocus: this.onFocus, onBlur: this.onBlur })), index.h("span", { key: 'ee55afd60c5dbb947e9c12fffc401f7acfcefada', class: "r-radio-button--box" }), this.isLeading &&
130
- index.h("div", { key: 'eabd27b399dee0bc2cef0fb7a92adad55095708b', class: "r-radio-button--leading" }, index.h("slot", { key: '5ec99653141268456cf9c8b2398f70c7b1afd36d', name: "leading" }, this.icon && index.h("r-icon", { key: '47662e84ad1aac02e867ddd040b5b7e1890ba986', name: this.icon, size: "m" }))), index.h("div", { key: 'bcaaf67c6cdf95a0bfa0dd5784d69c237e551a0e', class: "r-radio-button--text" }, index.h("slot", { key: 'a54f1823afe368d85f9bd4743ac0aa1df7298049', name: "title" }, index.h("div", { key: 'b531b659b920d7f064f10e622b83099d14270935', style: { display: 'contents' } }, index.h("slot", { key: 'b51f3e83234681804c49cb1043d90de70e4929db' }))), index.h("slot", { key: 'd217abfd3675898afd5b41a543200f7104019aed', name: "description" }, this.description)), this.isTrailing &&
131
- index.h("div", { key: '664ddcc19dba3029343532caa13b05a6e3834977', class: "r-radio-button--trailing" }, index.h("slot", { key: 'b4ec626236a01c9c74b20ae09194ea414bc7699c', name: "trailing" }))), invalid && error &&
132
- index.h("r-hint", { key: 'bd60d4337984662f410613b470b6e3be695343f5', role: "alert", variant: "error", id: `${uniqueId}-hint` }, this.error), hint &&
133
- index.h("r-hint", { key: '31c5712fe6f2164219e28484a40ce5452a836743', role: "note", variant: "information", id: `${uniqueId}-hint` }, hint)));
129
+ return (index.h(index.Host, { key: 'ce9e98b6480c18675ac0dac4b118e574872f9af7' }, index.h("label", { key: 'adb23e0f9092e7c5bc2c0c70df71fa255f8a441b', class: "r-radio-button", onClick: this.onClick, onKeyDown: this.onKeydown }, index.h("input", Object.assign({ key: 'cdd35d3caebb8e7eb8162dcc97c73f85067a55bb' }, inputAttrs, { id: `${uniqueId}-input`, class: "r-radio-button--input", ref: el => this.nativeEl = el, onFocus: this.onFocus, onBlur: this.onBlur })), index.h("span", { key: '89e258e8d5b41a51ff48ad26f1e83bcdb447089a', class: "r-radio-button--box" }), this.isLeading &&
130
+ index.h("div", { key: '14e5cbd3fb54b86761f68f53f64081be3021bf9d', class: "r-radio-button--leading" }, index.h("slot", { key: '8350ee29002de443338179d8e926356fa080cb97', name: "leading" }, this.icon && index.h("r-icon", { key: 'ba1ad94e6eabd2aa113e46ddc4f5f7cdc8e39635', name: this.icon, size: "m" }))), index.h("div", { key: '75c735e748dc36c3c785cb048f920060f31c7c9a', class: "r-radio-button--text" }, index.h("slot", { key: 'b2f39d35860d6ed36bf1913836af065ed093a9b4', name: "title" }, index.h("div", { key: '4f6fdd992b61a01c13810fbee76f66d514f8e8e2', style: { display: 'contents' } }, index.h("slot", { key: 'b0d6d3eb4b9687751822fd6e026cc5eec2fe3d6b' }))), index.h("slot", { key: '66f2d4a0262d494b4c5c700e48abb7210e5fc8df', name: "description" }, this.description)), this.isTrailing &&
131
+ index.h("div", { key: '64bb5efd43a7e52461dff3e3416c968bbe44d1a4', class: "r-radio-button--trailing" }, index.h("slot", { key: '20798c2198cc1360f6b04fa0a94984bb697eda6c', name: "trailing" }))), invalid && error &&
132
+ index.h("r-hint", { key: '06bd4aa937a926612c428e9f9cfcde98e60c6ca7', role: "alert", variant: "error", id: `${uniqueId}-hint` }, this.error), hint &&
133
+ index.h("r-hint", { key: '5031e00344241c184fb8ef2aa8275274415b8a3e', role: "note", variant: "information", id: `${uniqueId}-hint` }, hint)));
134
134
  }
135
135
  get host() { return index.getElement(this); }
136
136
  };