@roadtrip/components 3.33.7 → 3.35.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 (280) hide show
  1. package/dist/cjs/index-fee0103c.js +4 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/road-badge_14.cjs.entry.js +14 -10
  4. package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
  5. package/dist/cjs/road-modal.cjs.entry.js +1 -1
  6. package/dist/cjs/road-navbar-item-v2.cjs.entry.js +2 -2
  7. package/dist/cjs/road-navbar-item.cjs.entry.js +2 -2
  8. package/dist/cjs/road-navbar-v2.cjs.entry.js +1 -1
  9. package/dist/cjs/road-navbar.cjs.entry.js +1 -1
  10. package/dist/cjs/road-phone-number-input.cjs.entry.js +2 -2
  11. package/dist/cjs/road-plate-number.cjs.entry.js +2 -2
  12. package/dist/cjs/road-profil-dropdown.cjs.entry.js +1 -1
  13. package/dist/cjs/road-progress-indicator-horizontal.cjs.entry.js +1 -1
  14. package/dist/cjs/road-progress-indicator-vertical-item.cjs.entry.js +1 -1
  15. package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/road-progress-tracker-item.cjs.entry.js +1 -1
  17. package/dist/cjs/road-progress-tracker.cjs.entry.js +1 -1
  18. package/dist/cjs/road-progress.cjs.entry.js +1 -1
  19. package/dist/cjs/road-radio-card.cjs.entry.js +73 -0
  20. package/dist/cjs/road-radio-card.cjs.entry.js.map +1 -0
  21. package/dist/cjs/road-radio-group.cjs.entry.js +8 -1
  22. package/dist/cjs/road-radio-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/road-radio.cjs.entry.js +1 -1
  24. package/dist/cjs/road-range.cjs.entry.js +2 -2
  25. package/dist/cjs/road-rating.cjs.entry.js +1 -1
  26. package/dist/cjs/road-segmented-button-bar.cjs.entry.js +1 -1
  27. package/dist/cjs/road-segmented-button.cjs.entry.js +2 -2
  28. package/dist/cjs/road-segmented-buttons.cjs.entry.js +1 -1
  29. package/dist/cjs/road-select-filter.cjs.entry.js +2 -2
  30. package/dist/cjs/road-select.cjs.entry.js +1 -1
  31. package/dist/cjs/road-skeleton.cjs.entry.js +1 -1
  32. package/dist/cjs/road-spinner.cjs.entry.js +1 -1
  33. package/dist/cjs/road-switch.cjs.entry.js +2 -2
  34. package/dist/cjs/road-tab-bar.cjs.entry.js +2 -2
  35. package/dist/cjs/road-tab-button.cjs.entry.js +2 -2
  36. package/dist/cjs/road-tab.cjs.entry.js +2 -2
  37. package/dist/cjs/road-table.cjs.entry.js +1 -1
  38. package/dist/cjs/road-tabs.cjs.entry.js +1 -1
  39. package/dist/cjs/road-tag.cjs.entry.js +1 -1
  40. package/dist/cjs/road-text.cjs.entry.js +1 -1
  41. package/dist/cjs/road-textarea.cjs.entry.js +2 -2
  42. package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
  43. package/dist/cjs/road-toast.cjs.entry.js +1 -1
  44. package/dist/cjs/road-toggle.cjs.entry.js +2 -2
  45. package/dist/cjs/road-toolbar-title-page.cjs.entry.js +1 -1
  46. package/dist/cjs/road-toolbar-title.cjs.entry.js +1 -1
  47. package/dist/cjs/road-toolbar-v2.cjs.entry.js +1 -1
  48. package/dist/cjs/road-tooltip.cjs.entry.js +4 -4
  49. package/dist/cjs/road-tooltip.cjs.entry.js.map +1 -1
  50. package/dist/cjs/roadtrip.cjs.js +1 -1
  51. package/dist/collection/collection-manifest.json +1 -0
  52. package/dist/collection/components/input/input.css +1 -0
  53. package/dist/collection/components/input/input.js +8 -4
  54. package/dist/collection/components/input/input.js.map +1 -1
  55. package/dist/collection/components/input/input.stories.js +25 -9
  56. package/dist/collection/components/input-group/input-group.js +1 -1
  57. package/dist/collection/components/item/item.js +3 -3
  58. package/dist/collection/components/label/label.js +1 -1
  59. package/dist/collection/components/list/list.js +2 -2
  60. package/dist/collection/components/modal/modal.js +1 -1
  61. package/dist/collection/components/modal/modal.stories.js +4 -3
  62. package/dist/collection/components/navbar/navbar.js +1 -1
  63. package/dist/collection/components/navbar-item/navbar-item.js +2 -2
  64. package/dist/collection/components/navbar-item-v2/navbar-item-v2.js +2 -2
  65. package/dist/collection/components/navbar-v2/navbar-v2.js +1 -1
  66. package/dist/collection/components/phone-number-input/phone-number-input.js +2 -2
  67. package/dist/collection/components/plate-number/plate-number.js +2 -2
  68. package/dist/collection/components/plate-number/plate-number.stories.js +18 -12
  69. package/dist/collection/components/profil-dropdown/profil-dropdown.js +1 -1
  70. package/dist/collection/components/progress/progress.js +1 -1
  71. package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.js +1 -1
  72. package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js +1 -1
  73. package/dist/collection/components/progress-indicator-vertical-item/progress-indicator-vertical-item.js +1 -1
  74. package/dist/collection/components/progress-tracker/progress-tracker.js +1 -1
  75. package/dist/collection/components/progress-tracker-item/progress-tracker-item.js +1 -1
  76. package/dist/collection/components/radio/radio.js +1 -1
  77. package/dist/collection/components/radio/radio.stories.js +12 -6
  78. package/dist/collection/components/radio-card/radio-card.css +234 -0
  79. package/dist/collection/components/radio-card/radio-card.js +253 -0
  80. package/dist/collection/components/radio-card/radio-card.js.map +1 -0
  81. package/dist/collection/components/radio-card/radio-card.stories.js +90 -0
  82. package/dist/collection/components/radio-group/radio-group.js +8 -1
  83. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  84. package/dist/collection/components/range/range.js +2 -2
  85. package/dist/collection/components/range/range.stories.js +4 -3
  86. package/dist/collection/components/rating/rating.js +1 -1
  87. package/dist/collection/components/row/row.js +1 -1
  88. package/dist/collection/components/segmented-button/segmented-button.js +2 -2
  89. package/dist/collection/components/segmented-button-bar/segmented-button-bar.js +1 -1
  90. package/dist/collection/components/segmented-buttons/segmented-buttons.js +1 -1
  91. package/dist/collection/components/select/select.js +1 -1
  92. package/dist/collection/components/select/select.stories.js +12 -7
  93. package/dist/collection/components/select-filter/select-filter.js +2 -2
  94. package/dist/collection/components/select-filter/select-filter.stories.js +4 -2
  95. package/dist/collection/components/skeleton/skeleton.js +1 -1
  96. package/dist/collection/components/spinner/spinner.js +1 -1
  97. package/dist/collection/components/switch/switch.js +2 -2
  98. package/dist/collection/components/tab/tab.js +2 -2
  99. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  100. package/dist/collection/components/tab-button/tab-button.js +2 -2
  101. package/dist/collection/components/table/table.js +1 -1
  102. package/dist/collection/components/tabs/tabs.js +1 -1
  103. package/dist/collection/components/tag/tag.js +1 -1
  104. package/dist/collection/components/text/text.js +1 -1
  105. package/dist/collection/components/textarea/textarea.css +5 -2
  106. package/dist/collection/components/textarea/textarea.js +1 -1
  107. package/dist/collection/components/textarea/textarea.stories.js +18 -12
  108. package/dist/collection/components/toast/toast.js +1 -1
  109. package/dist/collection/components/toast/toast.stories.js +4 -2
  110. package/dist/collection/components/toggle/toggle.js +2 -2
  111. package/dist/collection/components/toggle/toggle.stories.js +12 -7
  112. package/dist/collection/components/toolbar/toolbar.js +1 -1
  113. package/dist/collection/components/toolbar-title/toolbar-title.js +1 -1
  114. package/dist/collection/components/toolbar-title-page/toolbar-title-page.js +1 -1
  115. package/dist/collection/components/toolbar-v2/toolbar-v2.js +1 -1
  116. package/dist/collection/components/tooltip/tooltip.css +31 -0
  117. package/dist/collection/components/tooltip/tooltip.js +5 -5
  118. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  119. package/dist/collection/components/tooltip/tooltip.stories.js +1 -1
  120. package/dist/esm/index-8dc34f94.js +4 -0
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/esm/road-badge_14.entry.js +14 -10
  123. package/dist/esm/road-badge_14.entry.js.map +1 -1
  124. package/dist/esm/road-modal.entry.js +1 -1
  125. package/dist/esm/road-navbar-item-v2.entry.js +2 -2
  126. package/dist/esm/road-navbar-item.entry.js +2 -2
  127. package/dist/esm/road-navbar-v2.entry.js +1 -1
  128. package/dist/esm/road-navbar.entry.js +1 -1
  129. package/dist/esm/road-phone-number-input.entry.js +2 -2
  130. package/dist/esm/road-plate-number.entry.js +2 -2
  131. package/dist/esm/road-profil-dropdown.entry.js +1 -1
  132. package/dist/esm/road-progress-indicator-horizontal.entry.js +1 -1
  133. package/dist/esm/road-progress-indicator-vertical-item.entry.js +1 -1
  134. package/dist/esm/road-progress-indicator-vertical.entry.js +1 -1
  135. package/dist/esm/road-progress-tracker-item.entry.js +1 -1
  136. package/dist/esm/road-progress-tracker.entry.js +1 -1
  137. package/dist/esm/road-progress.entry.js +1 -1
  138. package/dist/esm/road-radio-card.entry.js +69 -0
  139. package/dist/esm/road-radio-card.entry.js.map +1 -0
  140. package/dist/esm/road-radio-group.entry.js +8 -1
  141. package/dist/esm/road-radio-group.entry.js.map +1 -1
  142. package/dist/esm/road-radio.entry.js +1 -1
  143. package/dist/esm/road-range.entry.js +2 -2
  144. package/dist/esm/road-rating.entry.js +1 -1
  145. package/dist/esm/road-segmented-button-bar.entry.js +1 -1
  146. package/dist/esm/road-segmented-button.entry.js +2 -2
  147. package/dist/esm/road-segmented-buttons.entry.js +1 -1
  148. package/dist/esm/road-select-filter.entry.js +2 -2
  149. package/dist/esm/road-select.entry.js +1 -1
  150. package/dist/esm/road-skeleton.entry.js +1 -1
  151. package/dist/esm/road-spinner.entry.js +1 -1
  152. package/dist/esm/road-switch.entry.js +2 -2
  153. package/dist/esm/road-tab-bar.entry.js +2 -2
  154. package/dist/esm/road-tab-button.entry.js +2 -2
  155. package/dist/esm/road-tab.entry.js +2 -2
  156. package/dist/esm/road-table.entry.js +1 -1
  157. package/dist/esm/road-tabs.entry.js +1 -1
  158. package/dist/esm/road-tag.entry.js +1 -1
  159. package/dist/esm/road-text.entry.js +1 -1
  160. package/dist/esm/road-textarea.entry.js +2 -2
  161. package/dist/esm/road-textarea.entry.js.map +1 -1
  162. package/dist/esm/road-toast.entry.js +1 -1
  163. package/dist/esm/road-toggle.entry.js +2 -2
  164. package/dist/esm/road-toolbar-title-page.entry.js +1 -1
  165. package/dist/esm/road-toolbar-title.entry.js +1 -1
  166. package/dist/esm/road-toolbar-v2.entry.js +1 -1
  167. package/dist/esm/road-tooltip.entry.js +4 -4
  168. package/dist/esm/road-tooltip.entry.js.map +1 -1
  169. package/dist/esm/roadtrip.js +1 -1
  170. package/dist/html.html-data.json +52 -1
  171. package/dist/roadtrip/{p-6c617506.entry.js → p-02a6e387.entry.js} +2 -2
  172. package/dist/roadtrip/{p-03656f9a.entry.js → p-0a6c9571.entry.js} +2 -2
  173. package/dist/roadtrip/{p-3f5dff96.entry.js → p-0b847a5d.entry.js} +2 -2
  174. package/dist/roadtrip/{p-e0421465.entry.js → p-0d7b6e32.entry.js} +2 -2
  175. package/dist/roadtrip/{p-a67eaba7.entry.js → p-0dce3168.entry.js} +3 -3
  176. package/dist/roadtrip/p-0dce3168.entry.js.map +1 -0
  177. package/dist/roadtrip/p-16726940.entry.js +2 -0
  178. package/dist/roadtrip/p-1ca62c28.entry.js +2 -0
  179. package/dist/roadtrip/{p-6d3d947e.entry.js.map → p-1ca62c28.entry.js.map} +1 -1
  180. package/dist/roadtrip/{p-60bd73ad.entry.js → p-327d424c.entry.js} +2 -2
  181. package/dist/roadtrip/{p-c6824205.entry.js → p-355fcb74.entry.js} +2 -2
  182. package/dist/roadtrip/p-4a0711c8.entry.js +2 -0
  183. package/dist/roadtrip/p-4a0711c8.entry.js.map +1 -0
  184. package/dist/roadtrip/p-4b1ac843.entry.js +2 -0
  185. package/dist/roadtrip/p-50d9ed52.entry.js +2 -0
  186. package/dist/roadtrip/{p-db77c354.entry.js.map → p-50d9ed52.entry.js.map} +1 -1
  187. package/dist/roadtrip/{p-e75ec60f.entry.js → p-56f18548.entry.js} +2 -2
  188. package/dist/roadtrip/{p-fe40ab3d.entry.js → p-5f2a4cd5.entry.js} +2 -2
  189. package/dist/roadtrip/{p-fd3c58b6.entry.js → p-5f6255ea.entry.js} +2 -2
  190. package/dist/roadtrip/{p-c28e7add.entry.js → p-6cde1247.entry.js} +2 -2
  191. package/dist/roadtrip/{p-6ff3b37c.entry.js → p-6e65c377.entry.js} +2 -2
  192. package/dist/roadtrip/p-6ef0a03b.entry.js +2 -0
  193. package/dist/roadtrip/{p-d80e7563.entry.js.map → p-6ef0a03b.entry.js.map} +1 -1
  194. package/dist/roadtrip/{p-2e049c8e.entry.js → p-780de42a.entry.js} +2 -2
  195. package/dist/roadtrip/{p-b5fa8c5a.entry.js → p-7d693464.entry.js} +2 -2
  196. package/dist/roadtrip/{p-517aeeca.entry.js → p-7ea16bfa.entry.js} +2 -2
  197. package/dist/roadtrip/p-80344aa2.entry.js +2 -0
  198. package/dist/roadtrip/p-80344aa2.entry.js.map +1 -0
  199. package/dist/roadtrip/p-8c6ad79a.entry.js +2 -0
  200. package/dist/roadtrip/{p-a254df6d.entry.js → p-a0c91322.entry.js} +2 -2
  201. package/dist/roadtrip/{p-c465f551.entry.js → p-a406a342.entry.js} +2 -2
  202. package/dist/roadtrip/{p-e6e9882b.entry.js → p-a5c363f2.entry.js} +2 -2
  203. package/dist/roadtrip/{p-5fea6a74.entry.js → p-ad9055c1.entry.js} +2 -2
  204. package/dist/roadtrip/{p-37430583.entry.js → p-b0203787.entry.js} +2 -2
  205. package/dist/roadtrip/{p-3dcaa947.entry.js → p-c01aaf61.entry.js} +2 -2
  206. package/dist/roadtrip/p-c09d87da.entry.js +2 -0
  207. package/dist/roadtrip/{p-8b04fc62.entry.js → p-cd1e078c.entry.js} +2 -2
  208. package/dist/roadtrip/p-cd436a46.entry.js +2 -0
  209. package/dist/roadtrip/{p-b8c5d292.entry.js.map → p-cd436a46.entry.js.map} +1 -1
  210. package/dist/roadtrip/p-d9cbd0b9.entry.js +2 -0
  211. package/dist/roadtrip/p-d9cbd0b9.entry.js.map +1 -0
  212. package/dist/roadtrip/{p-eac313e4.entry.js → p-da0e9f4e.entry.js} +2 -2
  213. package/dist/roadtrip/{p-ea1a175d.entry.js → p-df2f066e.entry.js} +2 -2
  214. package/dist/roadtrip/p-dfc0d1c5.entry.js +2 -0
  215. package/dist/roadtrip/p-dfc0d1c5.entry.js.map +1 -0
  216. package/dist/roadtrip/{p-c47ccbf2.entry.js → p-edfb6a90.entry.js} +2 -2
  217. package/dist/roadtrip/{p-950b8a43.entry.js → p-f1ef265d.entry.js} +2 -2
  218. package/dist/roadtrip/{p-167cd2fc.entry.js → p-f5bcb8d6.entry.js} +2 -2
  219. package/dist/roadtrip/{p-99a6faae.entry.js → p-f91b8ee7.entry.js} +2 -2
  220. package/dist/roadtrip/p-fb33aa91.entry.js +2 -0
  221. package/dist/roadtrip/{p-f1b53143.entry.js → p-ff430279.entry.js} +2 -2
  222. package/dist/roadtrip/roadtrip.esm.js +1 -1
  223. package/dist/roadtrip/roadtrip.esm.js.map +1 -1
  224. package/dist/types/components/input/input.d.ts +2 -2
  225. package/dist/types/components/radio-card/radio-card.d.ts +25 -0
  226. package/dist/types/components/radio-group/radio-group.d.ts +1 -0
  227. package/dist/types/components/tooltip/tooltip.d.ts +1 -1
  228. package/dist/types/components.d.ts +57 -4
  229. package/hydrate/index.js +192 -100
  230. package/hydrate/index.mjs +192 -100
  231. package/package.json +1 -1
  232. package/dist/roadtrip/p-06fbd2ea.entry.js +0 -2
  233. package/dist/roadtrip/p-06fbd2ea.entry.js.map +0 -1
  234. package/dist/roadtrip/p-215afdbd.entry.js +0 -2
  235. package/dist/roadtrip/p-449affa6.entry.js +0 -2
  236. package/dist/roadtrip/p-4675ea6d.entry.js +0 -2
  237. package/dist/roadtrip/p-65f9bd9c.entry.js +0 -2
  238. package/dist/roadtrip/p-6d3d947e.entry.js +0 -2
  239. package/dist/roadtrip/p-85b1e505.entry.js +0 -2
  240. package/dist/roadtrip/p-a67eaba7.entry.js.map +0 -1
  241. package/dist/roadtrip/p-b8c5d292.entry.js +0 -2
  242. package/dist/roadtrip/p-cfd2919e.entry.js +0 -2
  243. package/dist/roadtrip/p-cfd2919e.entry.js.map +0 -1
  244. package/dist/roadtrip/p-d80e7563.entry.js +0 -2
  245. package/dist/roadtrip/p-db77c354.entry.js +0 -2
  246. package/dist/roadtrip/p-e6c4c576.entry.js +0 -2
  247. package/dist/roadtrip/p-e6c4c576.entry.js.map +0 -1
  248. /package/dist/roadtrip/{p-6c617506.entry.js.map → p-02a6e387.entry.js.map} +0 -0
  249. /package/dist/roadtrip/{p-03656f9a.entry.js.map → p-0a6c9571.entry.js.map} +0 -0
  250. /package/dist/roadtrip/{p-3f5dff96.entry.js.map → p-0b847a5d.entry.js.map} +0 -0
  251. /package/dist/roadtrip/{p-e0421465.entry.js.map → p-0d7b6e32.entry.js.map} +0 -0
  252. /package/dist/roadtrip/{p-65f9bd9c.entry.js.map → p-16726940.entry.js.map} +0 -0
  253. /package/dist/roadtrip/{p-60bd73ad.entry.js.map → p-327d424c.entry.js.map} +0 -0
  254. /package/dist/roadtrip/{p-c6824205.entry.js.map → p-355fcb74.entry.js.map} +0 -0
  255. /package/dist/roadtrip/{p-215afdbd.entry.js.map → p-4b1ac843.entry.js.map} +0 -0
  256. /package/dist/roadtrip/{p-e75ec60f.entry.js.map → p-56f18548.entry.js.map} +0 -0
  257. /package/dist/roadtrip/{p-fe40ab3d.entry.js.map → p-5f2a4cd5.entry.js.map} +0 -0
  258. /package/dist/roadtrip/{p-fd3c58b6.entry.js.map → p-5f6255ea.entry.js.map} +0 -0
  259. /package/dist/roadtrip/{p-c28e7add.entry.js.map → p-6cde1247.entry.js.map} +0 -0
  260. /package/dist/roadtrip/{p-6ff3b37c.entry.js.map → p-6e65c377.entry.js.map} +0 -0
  261. /package/dist/roadtrip/{p-2e049c8e.entry.js.map → p-780de42a.entry.js.map} +0 -0
  262. /package/dist/roadtrip/{p-b5fa8c5a.entry.js.map → p-7d693464.entry.js.map} +0 -0
  263. /package/dist/roadtrip/{p-517aeeca.entry.js.map → p-7ea16bfa.entry.js.map} +0 -0
  264. /package/dist/roadtrip/{p-4675ea6d.entry.js.map → p-8c6ad79a.entry.js.map} +0 -0
  265. /package/dist/roadtrip/{p-a254df6d.entry.js.map → p-a0c91322.entry.js.map} +0 -0
  266. /package/dist/roadtrip/{p-c465f551.entry.js.map → p-a406a342.entry.js.map} +0 -0
  267. /package/dist/roadtrip/{p-e6e9882b.entry.js.map → p-a5c363f2.entry.js.map} +0 -0
  268. /package/dist/roadtrip/{p-5fea6a74.entry.js.map → p-ad9055c1.entry.js.map} +0 -0
  269. /package/dist/roadtrip/{p-37430583.entry.js.map → p-b0203787.entry.js.map} +0 -0
  270. /package/dist/roadtrip/{p-3dcaa947.entry.js.map → p-c01aaf61.entry.js.map} +0 -0
  271. /package/dist/roadtrip/{p-85b1e505.entry.js.map → p-c09d87da.entry.js.map} +0 -0
  272. /package/dist/roadtrip/{p-8b04fc62.entry.js.map → p-cd1e078c.entry.js.map} +0 -0
  273. /package/dist/roadtrip/{p-eac313e4.entry.js.map → p-da0e9f4e.entry.js.map} +0 -0
  274. /package/dist/roadtrip/{p-ea1a175d.entry.js.map → p-df2f066e.entry.js.map} +0 -0
  275. /package/dist/roadtrip/{p-c47ccbf2.entry.js.map → p-edfb6a90.entry.js.map} +0 -0
  276. /package/dist/roadtrip/{p-950b8a43.entry.js.map → p-f1ef265d.entry.js.map} +0 -0
  277. /package/dist/roadtrip/{p-167cd2fc.entry.js.map → p-f5bcb8d6.entry.js.map} +0 -0
  278. /package/dist/roadtrip/{p-99a6faae.entry.js.map → p-f91b8ee7.entry.js.map} +0 -0
  279. /package/dist/roadtrip/{p-449affa6.entry.js.map → p-fb33aa91.entry.js.map} +0 -0
  280. /package/dist/roadtrip/{p-f1b53143.entry.js.map → p-ff430279.entry.js.map} +0 -0
@@ -0,0 +1,234 @@
1
+ /*
2
+ * Radio Card
3
+ *
4
+ * For accessibility, we provide a style for focus only on Tab,
5
+ * for that add the javascript polyfill for focus-visible
6
+ * (https://github.com/WICG/focus-visible).
7
+ *
8
+ * Index
9
+ * - Radio
10
+ * - Label
11
+ * - Error
12
+ * - Position
13
+ */
14
+
15
+ .radio-card {
16
+ display: flex;
17
+ align-items: flex-start;
18
+ gap: 0.75rem;
19
+ padding: 1rem;
20
+ border: 1px solid var(--road-outline);
21
+ border-radius: 0.5rem;
22
+ transition: border-color 0.3s, background-color 0.3s;
23
+ cursor: pointer;
24
+ }
25
+
26
+ .radio-card-selected {
27
+ outline: 2px solid var(--road-outline-variant);
28
+ outline-offset: -2px;
29
+ }
30
+
31
+ .radio-card-disabled {
32
+ outline: none;
33
+ cursor: not-allowed;
34
+ background-color: var(--road-surface-disabled);
35
+ border: 1px solid var(--road-outline);
36
+ }
37
+
38
+ .radio-card:hover {
39
+ border-color: var(--road-outline-variant);
40
+ }
41
+
42
+ .radio-card-disabled.radio-card:hover {
43
+ border: 1px solid var(--road-outline);
44
+ }
45
+
46
+
47
+
48
+ .form-radio-input {
49
+ position: absolute;
50
+ opacity: 0;
51
+ pointer-events: none;
52
+ }
53
+
54
+ .radio-card-label {
55
+ font-weight: bold;
56
+ }
57
+
58
+
59
+ /* RADIO
60
+ -------------------- */
61
+
62
+ :host {
63
+ position: relative;
64
+ display: block;
65
+ margin-bottom: 1.5rem;
66
+ font-family: var(--road-font, sans-serif);
67
+ font-size: var(--road-body-medium);
68
+ line-height: 1.5;
69
+ color: var(--road-on-surface);
70
+ }
71
+
72
+ /**
73
+ * Inline radio
74
+ */
75
+
76
+ :host(.form-radio-inline) {
77
+ display: inline-flex;
78
+ flex-wrap: wrap;
79
+ align-items: center;
80
+ margin-right: 1.5rem;
81
+ margin-bottom: 0;
82
+ }
83
+
84
+ /**
85
+ * Hide input
86
+ */
87
+
88
+ .form-radio-input {
89
+ position: absolute;
90
+ z-index: -1;
91
+ width: 20px;
92
+ height: 20px;
93
+ opacity: 0;
94
+ }
95
+
96
+ .form-radio-input:disabled {
97
+ z-index: 1;
98
+ width: 100%;
99
+ cursor: not-allowed;
100
+ }
101
+
102
+ /* LABEL
103
+ -------------------- */
104
+
105
+ .form-radio-label {
106
+ position: relative;
107
+ display: inline-flex;
108
+ align-items: flex-start;
109
+ margin: 0;
110
+ cursor: pointer;
111
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
112
+ }
113
+
114
+ .form-radio-label::before {
115
+ box-sizing: border-box;
116
+ display: block;
117
+ flex-shrink: 0;
118
+ width: 1.25rem;
119
+ height: 1.25rem;
120
+ margin: 0.1rem 0.75rem 0 0;
121
+ content: "";
122
+ background: var(--road-surface);
123
+ border: 1px solid var(--road-input-outline);
124
+ border-radius: 50%;
125
+ transition: border-color 0.2s ease-in-out;
126
+ }
127
+
128
+ .form-radio-label-span {
129
+ margin-left: var(--road-spacing-02);
130
+ color: var(--road-on-surface-weak);
131
+ }
132
+
133
+ .form-radio-label::after {
134
+ position: absolute;
135
+ top: 0.285rem;
136
+ left: 0.1875rem;
137
+ box-sizing: border-box;
138
+ display: block;
139
+ width: 0.875rem;
140
+ height: 0.875rem;
141
+ content: "";
142
+ background: var(--road-on-surface-disabled);
143
+ border: none;
144
+ border-radius: 50%;
145
+ transition: background 0.2s ease-in-out, transform 0.2s ease-in-out;
146
+ transform: scale(0);
147
+ transform-origin: 50% 50%;
148
+ }
149
+
150
+ /**
151
+ * Hover state
152
+ */
153
+
154
+ @media (hover: hover) {
155
+
156
+ .form-radio-input ~ .form-radio-label:hover::before {
157
+ border-color: var(--road-input-surface);
158
+ }
159
+
160
+ .form-radio-input:checked ~ .form-radio-label:hover::after {
161
+ background: var(--road-input-surface-variant);
162
+ }
163
+
164
+ .form-radio-input:checked:disabled~ .form-radio-label:hover::after {
165
+ background: var(--road-on-surface-disabled);
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Checked state
171
+ */
172
+
173
+ .form-radio-input:checked ~ .form-radio-label::after {
174
+ background: var(--road-input-surface);
175
+ opacity: 1;
176
+ transform: scale(1);
177
+ }
178
+
179
+ /**
180
+ * Focus on Tab
181
+ */
182
+
183
+ .form-radio-input.focus-visible ~ .form-radio-label::before {
184
+ box-shadow: 0 0 0 0.125rem var(--road-grey-100-new), 0 0 0 0.1875rem var(--road-input-outline-variant);
185
+ }
186
+
187
+ .form-radio-input.focus-visible:checked ~ .form-radio-label::after {
188
+ background: var(--road-primary-700);
189
+ }
190
+
191
+ /**
192
+ * Disabled state
193
+ */
194
+
195
+ .form-radio-input:disabled ~ .form-radio-label,
196
+ .form-radio-input[readonly] ~ .form-radio-label {
197
+ cursor: not-allowed;
198
+ }
199
+
200
+ .form-radio-input:disabled ~ .form-radio-label::before,
201
+ .form-radio-input[readonly] ~ .form-radio-label::before {
202
+ background: var(--road-on-surface-disabled);
203
+ border: none;
204
+ }
205
+
206
+ .form-radio-input:disabled ~ .form-radio-label::after,
207
+ .form-radio-input[readonly] ~ .form-radio-label::after {
208
+ background: var(--road-on-surface-disabled);
209
+ }
210
+
211
+ /* ERROR
212
+ -------------------- */
213
+
214
+ .form-radio-input.is-invalid ~ .form-radio-label::before {
215
+ border-color: var(--road-danger-outline);
216
+ }
217
+
218
+ /* POSITION
219
+ -------------------- */
220
+
221
+ .form-radio-inverse {
222
+ display: flex;
223
+ flex-direction: row-reverse;
224
+ justify-content: space-between;
225
+ }
226
+
227
+ .form-radio-inverse::before {
228
+ margin: 0 0 0 1rem;
229
+ }
230
+
231
+ .form-radio-inverse::after {
232
+ right: 0.1875rem;
233
+ left: auto;
234
+ }
@@ -0,0 +1,253 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import "./../../utils/polyfill";
3
+ export class RadioCard {
4
+ constructor() {
5
+ this.disabled = false;
6
+ this.selected = false;
7
+ this.inline = true;
8
+ this.isSelected = false;
9
+ this.onFocus = () => {
10
+ this.roadfocus.emit();
11
+ };
12
+ this.onBlur = () => {
13
+ this.roadblur.emit();
14
+ };
15
+ this.onClick = () => {
16
+ var _a;
17
+ if (this.disabled)
18
+ return;
19
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.click();
20
+ this.roadchange.emit(this.value);
21
+ window.dispatchEvent(new CustomEvent('road-radio-selected', {
22
+ detail: {
23
+ name: this.name,
24
+ value: this.value,
25
+ },
26
+ }));
27
+ };
28
+ this.onRadioSelected = (event) => {
29
+ const { name, value } = event.detail;
30
+ if (name === this.name) {
31
+ this.isSelected = value === this.value;
32
+ }
33
+ };
34
+ }
35
+ componentWillLoad() {
36
+ this.radioId = `road-radio-${RadioCard.idCounter++}`;
37
+ if (!this.name) {
38
+ this.name = this.radioId;
39
+ }
40
+ if (!this.label) {
41
+ this.label = `${this.radioId}-label`;
42
+ }
43
+ }
44
+ handleRadioSelected(event) {
45
+ this.onRadioSelected(event);
46
+ }
47
+ render() {
48
+ const labelId = `${this.radioId}-label`;
49
+ const inlineClass = this.inline ? 'form-radio-inline' : '';
50
+ const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';
51
+ const disabledClass = this.disabled ? 'radio-card-disabled' : '';
52
+ return (h(Host, { key: '92d10e0e857fa618b651d09d684760345ebcab09', class: `form-radio ${inlineClass}` }, h("div", { key: 'fcdabc5a9f337d8bd1e8a1bf7f3918bd65fa3b61', class: `radio-card ${selectedClass} ${disabledClass}`, onClick: this.onClick }, h("input", { key: 'cab960932990c7b41e248fd45e11f05f0ba946ad', ref: el => this.inputEl = el, class: "form-radio-input", type: "radio", id: this.radioId, name: this.name, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, checked: this.isSelected || this.selected, "aria-labelledby": labelId, value: this.value, onFocus: this.onFocus, onBlur: this.onBlur, onChange: () => { } }), h("label", { key: '9fbd563bb0d0ceb76374f8fdd961a0ae945cfd3b', class: "form-radio-label", htmlFor: this.radioId, id: labelId }, h("div", { key: 'a66f46c0b7d566492eb791a14a1dc5f37fe1d98c', class: "slot-wrapper" }, h("slot", { key: '2571e75dc92853a6f14ddb8c7c829ce4d3537ae5' }))))));
53
+ }
54
+ static get is() { return "road-radio-card"; }
55
+ static get encapsulation() { return "scoped"; }
56
+ static get originalStyleUrls() {
57
+ return {
58
+ "$": ["radio-card.css"]
59
+ };
60
+ }
61
+ static get styleUrls() {
62
+ return {
63
+ "$": ["radio-card.css"]
64
+ };
65
+ }
66
+ static get properties() {
67
+ return {
68
+ "name": {
69
+ "type": "string",
70
+ "mutable": false,
71
+ "complexType": {
72
+ "original": "string",
73
+ "resolved": "string | undefined",
74
+ "references": {}
75
+ },
76
+ "required": false,
77
+ "optional": true,
78
+ "docs": {
79
+ "tags": [],
80
+ "text": ""
81
+ },
82
+ "getter": false,
83
+ "setter": false,
84
+ "attribute": "name",
85
+ "reflect": false
86
+ },
87
+ "disabled": {
88
+ "type": "boolean",
89
+ "mutable": false,
90
+ "complexType": {
91
+ "original": "boolean",
92
+ "resolved": "boolean",
93
+ "references": {}
94
+ },
95
+ "required": false,
96
+ "optional": false,
97
+ "docs": {
98
+ "tags": [],
99
+ "text": ""
100
+ },
101
+ "getter": false,
102
+ "setter": false,
103
+ "attribute": "disabled",
104
+ "reflect": false,
105
+ "defaultValue": "false"
106
+ },
107
+ "selected": {
108
+ "type": "boolean",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "boolean",
112
+ "resolved": "boolean",
113
+ "references": {}
114
+ },
115
+ "required": false,
116
+ "optional": false,
117
+ "docs": {
118
+ "tags": [],
119
+ "text": ""
120
+ },
121
+ "getter": false,
122
+ "setter": false,
123
+ "attribute": "selected",
124
+ "reflect": false,
125
+ "defaultValue": "false"
126
+ },
127
+ "value": {
128
+ "type": "any",
129
+ "mutable": false,
130
+ "complexType": {
131
+ "original": "any | null",
132
+ "resolved": "any",
133
+ "references": {}
134
+ },
135
+ "required": false,
136
+ "optional": true,
137
+ "docs": {
138
+ "tags": [],
139
+ "text": ""
140
+ },
141
+ "getter": false,
142
+ "setter": false,
143
+ "attribute": "value",
144
+ "reflect": false
145
+ },
146
+ "label": {
147
+ "type": "string",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "string",
151
+ "resolved": "string | undefined",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": true,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "attribute": "label",
163
+ "reflect": false
164
+ },
165
+ "inline": {
166
+ "type": "boolean",
167
+ "mutable": false,
168
+ "complexType": {
169
+ "original": "boolean",
170
+ "resolved": "boolean",
171
+ "references": {}
172
+ },
173
+ "required": false,
174
+ "optional": false,
175
+ "docs": {
176
+ "tags": [],
177
+ "text": ""
178
+ },
179
+ "getter": false,
180
+ "setter": false,
181
+ "attribute": "inline",
182
+ "reflect": false,
183
+ "defaultValue": "true"
184
+ }
185
+ };
186
+ }
187
+ static get states() {
188
+ return {
189
+ "isSelected": {},
190
+ "radioId": {}
191
+ };
192
+ }
193
+ static get events() {
194
+ return [{
195
+ "method": "roadfocus",
196
+ "name": "roadfocus",
197
+ "bubbles": true,
198
+ "cancelable": true,
199
+ "composed": true,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": ""
203
+ },
204
+ "complexType": {
205
+ "original": "void",
206
+ "resolved": "void",
207
+ "references": {}
208
+ }
209
+ }, {
210
+ "method": "roadblur",
211
+ "name": "roadblur",
212
+ "bubbles": true,
213
+ "cancelable": true,
214
+ "composed": true,
215
+ "docs": {
216
+ "tags": [],
217
+ "text": ""
218
+ },
219
+ "complexType": {
220
+ "original": "void",
221
+ "resolved": "void",
222
+ "references": {}
223
+ }
224
+ }, {
225
+ "method": "roadchange",
226
+ "name": "roadchange",
227
+ "bubbles": true,
228
+ "cancelable": true,
229
+ "composed": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": ""
233
+ },
234
+ "complexType": {
235
+ "original": "any",
236
+ "resolved": "any",
237
+ "references": {}
238
+ }
239
+ }];
240
+ }
241
+ static get elementRef() { return "el"; }
242
+ static get listeners() {
243
+ return [{
244
+ "name": "road-radio-selected",
245
+ "method": "handleRadioSelected",
246
+ "target": "window",
247
+ "capture": false,
248
+ "passive": false
249
+ }];
250
+ }
251
+ }
252
+ RadioCard.idCounter = 0;
253
+ //# sourceMappingURL=radio-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-card.js","sourceRoot":"","sources":["../../../src/components/radio-card/radio-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Listen,\n} from '@stencil/core';\nimport './../../utils/polyfill';\n\n\n@Component({\n tag: 'road-radio-card',\n styleUrl: 'radio-card.css',\n scoped: true,\n})\nexport class RadioCard {\n private inputEl?: HTMLInputElement;\n\n @Element() el!: HTMLRoadRadioCardElement;\n\n private static idCounter = 0;\n\n @Prop() name?: string;\n @Prop() disabled: boolean = false;\n @Prop() selected: boolean = false;\n @Prop() value?: any | null;\n @Prop() label?: string;\n @Prop() inline: boolean = true;\n\n @State() isSelected: boolean = false;\n @State() radioId!: string;\n\n @Event() roadfocus!: EventEmitter<void>;\n \n @Event() roadblur!: EventEmitter<void>;\n @Event() roadchange!: EventEmitter<any>;\n\n componentWillLoad() {\n this.radioId = `road-radio-${RadioCard.idCounter++}`;\n if (!this.name) {\n this.name = this.radioId;\n }\n if (!this.label) {\n this.label = `${this.radioId}-label`;\n }\n }\n\n private onFocus = () => {\n this.roadfocus.emit();\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n };\n\n private onClick = () => {\n if (this.disabled) return;\n\n this.inputEl?.click();\n this.roadchange.emit(this.value);\n\n window.dispatchEvent(new CustomEvent('road-radio-selected', {\n detail: {\n name: this.name,\n value: this.value,\n },\n }));\n };\n\n private onRadioSelected = (event: CustomEvent) => {\n const { name, value } = event.detail;\n\n if (name === this.name) {\n this.isSelected = value === this.value;\n }\n };\n\n @Listen('road-radio-selected', { target: 'window' })\n handleRadioSelected(event: CustomEvent) {\n this.onRadioSelected(event);\n }\n\n render() {\n const labelId = `${this.radioId}-label`;\n const inlineClass = this.inline ? 'form-radio-inline' : '';\n const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';\n const disabledClass = this.disabled ? 'radio-card-disabled' : '';\n\n return (\n <Host class={`form-radio ${inlineClass}`}>\n <div class={`radio-card ${selectedClass} ${disabledClass}`} onClick={this.onClick}>\n <input\n ref={el => this.inputEl = el}\n class=\"form-radio-input\"\n type=\"radio\"\n id={this.radioId}\n name={this.name}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : undefined}\n checked={this.isSelected || this.selected}\n aria-labelledby={labelId}\n value={this.value}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={() => {}}\n />\n <label class=\"form-radio-label\" htmlFor={this.radioId} id={labelId}>\n <div class=\"slot-wrapper\">\n <slot />\n </div>\n </label>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,90 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
3
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
+
5
+ export default {
6
+ title: 'Forms/Radio Card',
7
+ component: 'road-radio-card',
8
+ subcomponents: {
9
+ 'road-radio-group': 'road-radio-group',
10
+ },
11
+ parameters: {
12
+ actions: {
13
+ handles: ['roadblur', 'roadfocus'],
14
+ },
15
+ docs: {
16
+ description: {
17
+ component: 'A radio is used in a `radio-group`. It allows a user to select at most one radio button from a set.',
18
+ },
19
+ },
20
+ },
21
+ };
22
+
23
+ export const Playground = (args) => html`
24
+ <road-radio-group
25
+ name=${ifDefined(args.name)}
26
+ label="Label of radio group"
27
+ .asterisk=${args.asterisk}
28
+ @roadchange=${(event) => args.roadchange?.(event.detail.value)}
29
+ >
30
+ <road-radio-card
31
+ .disabled=${args.disabled}
32
+ .selected=${args.selected}
33
+ label=${ifDefined(args.label)}
34
+ value=${ifDefined(args.value)}
35
+ radio-id=${ifDefined(args['radio-id'])}
36
+ >
37
+ ${unsafeHTML(args.slotContent)}
38
+ </road-radio-card>
39
+ </road-radio-group>
40
+ `;
41
+
42
+ Playground.args = {
43
+ disabled: false,
44
+ selected: false,
45
+ label: 'Label',
46
+ value: 'on',
47
+ asterisk: false,
48
+ name: 'radio-group-name',
49
+ 'radio-id': '',
50
+ slotContent: `<span>Contenu dans la card</span>`,
51
+ };
52
+
53
+ Playground.argTypes = {
54
+ disabled: { control: 'boolean' },
55
+ selected: { control: 'boolean' },
56
+ asterisk: { control: 'boolean' },
57
+ label: { control: 'text' },
58
+ value: { control: 'text' },
59
+ name: { control: 'text' },
60
+ 'radio-id': { control: 'text' },
61
+ slotContent: {
62
+ control: 'text',
63
+ name: 'Slot Content',
64
+ description: 'HTML content rendered inside the radio card',
65
+ },
66
+ roadblur: {
67
+ action: 'roadblur',
68
+ description: "Emitted when the radio button loses focus.",
69
+ table: {
70
+ category: 'Events',
71
+ type: { summary: 'CustomEvent' },
72
+ },
73
+ },
74
+ roadfocus: {
75
+ action: 'roadfocus',
76
+ description: "Emitted when the radio button has focus.",
77
+ table: {
78
+ category: 'Events',
79
+ type: { summary: 'CustomEvent' },
80
+ },
81
+ },
82
+ roadchange: {
83
+ action: 'roadchange',
84
+ description: "Emitted when the value has changed.",
85
+ table: {
86
+ category: 'Events',
87
+ type: { summary: 'CustomEvent' },
88
+ },
89
+ },
90
+ };
@@ -40,9 +40,16 @@ export class RadioGroup {
40
40
  };
41
41
  }
42
42
  valueChanged(value) {
43
+ this.updateRadios();
43
44
  this.roadchange.emit({ value });
44
45
  this.roadChange.emit({ value });
45
46
  }
47
+ updateRadios() {
48
+ const radios = this.el.querySelectorAll('road-radio-card');
49
+ radios.forEach(radio => {
50
+ radio.checked = (radio.getAttribute('value') === this.value);
51
+ });
52
+ }
46
53
  errorChanged() {
47
54
  if (this.error !== undefined && this.error !== '') {
48
55
  this.el.querySelectorAll('road-radio').forEach(item => item.error = true);
@@ -59,7 +66,7 @@ export class RadioGroup {
59
66
  render() {
60
67
  const labelId = `${this.radioGroupId}-label`;
61
68
  const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
62
- return (h(Host, { key: '6c3948ad9428d3ae8aeb411a776419784831c714', role: "radiogroup", class: `form-group ${isInvalidClass}`, "aria-label": this.ariaLabel, onClick: this.onClick }, this.label && h("p", { key: '943199c6a4eda68c82245660e81ba04032a62209', class: "text-content", id: labelId }, this.label, " ", this.asterisk && h("span", { key: '772ae18837d54d6aa313e3a8791bc715f66c183d', class: "asterisk" }, "*")), h("slot", { key: '7f4a8c9ec3a201f695a6731467c138abf587e52f' }), this.error && this.error !== '' && h("p", { key: '9149bc1981323584219a13a392e77c8313f7fd58', class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && h("p", { key: 'a662d0e810e27d6392750d778e13573ed365e358', class: "helper" }, this.helper)));
69
+ return (h(Host, { key: 'c0b1fc909fda6bc68c01adf993b30807f18a0486', role: "radiogroup", class: `form-group ${isInvalidClass}`, "aria-label": this.ariaLabel, onClick: this.onClick }, this.label && h("p", { key: 'f23d2998fd001549361d2540a9af9fac62e0754e', class: "text-content", id: labelId }, this.label, " ", this.asterisk && h("span", { key: '299ccd95c783db7768589f92db60ba14b3c1026e', class: "asterisk" }, "*")), h("slot", { key: '8ab9f52912fab8c99c610b4ffb2f7f316d9c8e21' }), this.error && this.error !== '' && h("p", { key: '9ff0060878567d4b45487f5986e46d57a11c2876', class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && h("p", { key: 'd081883688e4279ec03663cf595a555f7e9e8304', class: "helper" }, this.helper)));
63
70
  }
64
71
  static get is() { return "road-radio-group"; }
65
72
  static get encapsulation() { return "scoped"; }
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\n/**\n * @slot - Used to add multiple radio components.\n */\n\n@Component({\n tag: 'road-radio-group',\n styleUrl: 'radio-group.css',\n scoped: true,\n})\nexport class RadioGroup {\n\n @Element() el!: HTMLRoadRadioGroupElement;\n\n /**\n * The id of checkbox\n */\n @Prop() radioGroupId: string = `road-radio-group-${radioGroupIds++}`;\n\n /**\n * If `true`, the radios can be deselected.\n */\n @Prop() allowEmptySelection = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.radioGroupId;\n\n /**\n * the value of the radio group.\n */\n @Prop({ mutable: true }) value?: any | null;\n\n /**\n * Label for the field\n */\n @Prop() label?: string;\n\n /**\n * add an asterisk to the label of the field\n */\n @Prop() asterisk?: boolean = false;\n\n /**\n * Label for the field\n */\n @Prop({reflect: true}) ariaLabel: string = `${this.radioGroupId}-label`;\n\n /**\n * Error message for the radio group\n */\n @Prop({ mutable: true }) error?: string;\n\n /**\n * Helper message for the radio group\n */\n @Prop() helper?: string;\n\n @Watch('value')\n valueChanged(value: any | undefined) {\n this.roadchange.emit({ value });\n this.roadChange.emit({ value });\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null\n }>;\n\n private onClick = (ev: Event) => {\n const selectedRadio = ev.target && (ev.target as HTMLElement).closest('road-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = (selectedRadio as HTMLRoadRadioElement).value;\n if (newValue !== currentValue) {\n this.value = newValue;\n } else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n this.error = undefined;\n }\n };\n\n @Watch('error')\n errorChanged() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n } else {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = false);\n }\n }\n\n componentWillLoad() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n }\n }\n\n render() {\n const labelId = `${this.radioGroupId}-label`;\n const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';\n\n return (\n <Host\n role=\"radiogroup\"\n class={`form-group ${isInvalidClass}`}\n aria-label={this.ariaLabel}\n onClick={this.onClick}\n >\n {this.label && <p class=\"text-content\" id={labelId}>{this.label} {this.asterisk && <span class=\"asterisk\">*</span>}</p>}\n <slot/>\n {this.error && this.error !== '' && <p class=\"invalid-feedback\">{this.error}</p>}\n {this.helper && this.helper !== '' && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n}\n\nlet radioGroupIds = 0;\n"]}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\n/**\n * @slot - Used to add multiple radio components.\n */\n\n@Component({\n tag: 'road-radio-group',\n styleUrl: 'radio-group.css',\n scoped: true,\n})\nexport class RadioGroup {\n\n @Element() el!: HTMLRoadRadioGroupElement;\n\n /**\n * The id of checkbox\n */\n @Prop() radioGroupId: string = `road-radio-group-${radioGroupIds++}`;\n\n /**\n * If `true`, the radios can be deselected.\n */\n @Prop() allowEmptySelection = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.radioGroupId;\n\n /**\n * the value of the radio group.\n */\n @Prop({ mutable: true }) value?: any | null;\n\n /**\n * Label for the field\n */\n @Prop() label?: string;\n\n /**\n * add an asterisk to the label of the field\n */\n @Prop() asterisk?: boolean = false;\n\n /**\n * Label for the field\n */\n @Prop({reflect: true}) ariaLabel: string = `${this.radioGroupId}-label`;\n\n /**\n * Error message for the radio group\n */\n @Prop({ mutable: true }) error?: string;\n\n /**\n * Helper message for the radio group\n */\n @Prop() helper?: string;\n\n @Watch('value')\n valueChanged(value: any | undefined) {\n this.updateRadios();\n this.roadchange.emit({ value });\n this.roadChange.emit({ value });\n }\n \n private updateRadios() {\n const radios = this.el.querySelectorAll('road-radio-card');\n radios.forEach(radio => {\n (radio as any).checked = (radio.getAttribute('value') === this.value);\n });\n }\n \n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null\n }>;\n\n private onClick = (ev: Event) => {\n const selectedRadio = ev.target && (ev.target as HTMLElement).closest('road-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = (selectedRadio as HTMLRoadRadioElement).value;\n if (newValue !== currentValue) {\n this.value = newValue;\n } else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n this.error = undefined;\n }\n };\n\n @Watch('error')\n errorChanged() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n } else {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = false);\n }\n }\n\n componentWillLoad() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n }\n }\n\n render() {\n const labelId = `${this.radioGroupId}-label`;\n const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';\n\n return (\n <Host\n role=\"radiogroup\"\n class={`form-group ${isInvalidClass}`}\n aria-label={this.ariaLabel}\n onClick={this.onClick}\n >\n {this.label && <p class=\"text-content\" id={labelId}>{this.label} {this.asterisk && <span class=\"asterisk\">*</span>}</p>}\n <slot/>\n {this.error && this.error !== '' && <p class=\"invalid-feedback\">{this.error}</p>}\n {this.helper && this.helper !== '' && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n}\n\nlet radioGroupIds = 0;\n"]}
@@ -95,14 +95,14 @@ export class Range {
95
95
  render() {
96
96
  const value = this.getValue();
97
97
  const datalist = this.showLabels !== undefined ? `tickmarks` : "";
98
- return (h(Host, { key: 'b2c9aa060ae841e99ba5751c128e8df1fa257277', tabindex: "0", class: { disabled: this.disabled } }, h("div", { key: 'b7696f36afd6083f61b0498ff80b911743f6713e', class: "form-group d-flex align-items-end" }, this.showTick && (h("road-icon", { key: '9c09977ad8ea7b60380cd0b245b2b78df75a851e', icon: navigationAddLessSolid, class: "mr-8", size: "sm" })), h("div", { key: 'dbcf378a5ce259394cc0ed12f6437100292aa015', class: "form-range", style: {
98
+ return (h(Host, { key: 'f1486d106b3d7013b3e6b1d99d646c70127dbbdd', tabindex: "0", class: { disabled: this.disabled } }, h("div", { key: 'fd44d0ce903ba469fc2142a19b049676fddd2005', class: "form-group d-flex align-items-end" }, this.showTick && (h("road-icon", { key: '723c5da5321440524ffb5cf69ed2d71196996541', icon: navigationAddLessSolid, class: "mr-8", size: "sm" })), h("div", { key: '4653394e0dcfa7d452236f57bd2052ac9928007f', class: "form-range", style: {
99
99
  "--min": this.min,
100
100
  "--max": this.max,
101
101
  "--value": value,
102
102
  "--background-color": this.disabled
103
103
  ? "var(--road-surface-disabled)"
104
104
  : "initial",
105
- } }, this.showValue && h("output", { key: '11fbbec081e1ae2b86a5ad5d387b91f26104d6e8' }), this.showLabels && h("slot", { key: '1dd932c4e17968e794370c5468e13fed1b84df25', name: "datalist" }), h("input", { key: 'afe1c2ef6f8006e2c0dcbd3cbe14103393a57a4a', type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist, "aria-label": "Valeur", tabindex: "0", disabled: this.disabled }), h("label", { key: '6f2bca3f10bdc5dcadf6756bfe953afffe4bf2c7', class: "form-range-label" }, "Valeur"), h("div", { key: '065f974aa51980322402a0c3d0c168a96c076ecf', class: "form-range-progress" })), this.showTick && (h("road-icon", { key: '283d46c77a585064840ee91a861fbd2c0bdaa5aa', icon: navigationAddMoreSolid, class: "ml-8", size: "sm" })))));
105
+ } }, this.showValue && h("output", { key: '2d3504f149aeba0bca77b7a7d03ac3fb9f3267b1' }), this.showLabels && h("slot", { key: '45c91307a659459919e67f022766bf98189a4511', name: "datalist" }), h("input", { key: '0cc864289e5c44b2dac2521af90b00dfa1d0625c', type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist, "aria-label": "Valeur", tabindex: "0", disabled: this.disabled }), h("label", { key: '97c50d5a81be438d34f23223ef1e5acdafcbc1b2', class: "form-range-label" }, "Valeur"), h("div", { key: '92568d77bdbb044f66f0f5557ba81673836bd433', class: "form-range-progress" })), this.showTick && (h("road-icon", { key: '2587580ec2c19de6d2cf799e4a39bd02c555d19a', icon: navigationAddMoreSolid, class: "ml-8", size: "sm" })))));
106
106
  }
107
107
  static get is() { return "road-range"; }
108
108
  static get encapsulation() { return "scoped"; }