@roadtrip/components 3.17.0 → 3.18.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 (325) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/road-accordion.cjs.entry.js +1 -1
  3. package/dist/cjs/road-accordion.cjs.entry.js.map +1 -1
  4. package/dist/cjs/road-autocomplete.cjs.entry.js +1 -1
  5. package/dist/cjs/road-autocomplete.cjs.entry.js.map +1 -1
  6. package/dist/cjs/road-badge_14.cjs.entry.js +40 -8
  7. package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
  8. package/dist/cjs/road-banner.cjs.entry.js +1 -1
  9. package/dist/cjs/road-banner.cjs.entry.js.map +1 -1
  10. package/dist/cjs/road-button-floating.cjs.entry.js +1 -1
  11. package/dist/cjs/road-button-floating.cjs.entry.js.map +1 -1
  12. package/dist/cjs/road-card.cjs.entry.js +1 -1
  13. package/dist/cjs/road-card.cjs.entry.js.map +1 -1
  14. package/dist/cjs/road-carousel.cjs.entry.js +30 -118
  15. package/dist/cjs/road-carousel.cjs.entry.js.map +1 -1
  16. package/dist/cjs/road-chip.cjs.entry.js +2 -2
  17. package/dist/cjs/road-chip.cjs.entry.js.map +1 -1
  18. package/dist/cjs/road-collapse.cjs.entry.js +1 -1
  19. package/dist/cjs/road-collapse.cjs.entry.js.map +1 -1
  20. package/dist/cjs/road-dialog.cjs.entry.js +2 -2
  21. package/dist/cjs/road-dialog.cjs.entry.js.map +1 -1
  22. package/dist/cjs/road-dropdown.cjs.entry.js +4 -4
  23. package/dist/cjs/road-dropdown.cjs.entry.js.map +1 -1
  24. package/dist/cjs/road-global-navigation.cjs.entry.js +1 -1
  25. package/dist/cjs/road-global-navigation.cjs.entry.js.map +1 -1
  26. package/dist/cjs/road-illustration.cjs.entry.js +1 -1
  27. package/dist/cjs/road-illustration.cjs.entry.js.map +1 -1
  28. package/dist/cjs/road-modal.cjs.entry.js +1 -1
  29. package/dist/cjs/road-modal.cjs.entry.js.map +1 -1
  30. package/dist/cjs/road-navbar-item.cjs.entry.js +1 -1
  31. package/dist/cjs/road-navbar-item.cjs.entry.js.map +1 -1
  32. package/dist/cjs/road-navbar.cjs.entry.js +1 -1
  33. package/dist/cjs/road-navbar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/road-phone-number-input.cjs.entry.js +41 -5
  35. package/dist/cjs/road-phone-number-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/road-plate-number.cjs.entry.js +2 -2
  37. package/dist/cjs/road-plate-number.cjs.entry.js.map +1 -1
  38. package/dist/cjs/road-profil-dropdown.cjs.entry.js +10 -1
  39. package/dist/cjs/road-profil-dropdown.cjs.entry.js.map +1 -1
  40. package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js +2 -2
  41. package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js.map +1 -1
  42. package/dist/cjs/road-progress-tracker.cjs.entry.js +2 -2
  43. package/dist/cjs/road-progress-tracker.cjs.entry.js.map +1 -1
  44. package/dist/cjs/road-progress.cjs.entry.js +1 -1
  45. package/dist/cjs/road-progress.cjs.entry.js.map +1 -1
  46. package/dist/cjs/road-range.cjs.entry.js +26 -2
  47. package/dist/cjs/road-range.cjs.entry.js.map +1 -1
  48. package/dist/cjs/road-segmented-button.cjs.entry.js +1 -1
  49. package/dist/cjs/road-segmented-button.cjs.entry.js.map +1 -1
  50. package/dist/cjs/road-select-filter.cjs.entry.js +34 -4
  51. package/dist/cjs/road-select-filter.cjs.entry.js.map +1 -1
  52. package/dist/cjs/road-select.cjs.entry.js +1 -1
  53. package/dist/cjs/road-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/road-textarea.cjs.entry.js +1 -1
  55. package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
  56. package/dist/cjs/road-tooltip.cjs.entry.js +1 -1
  57. package/dist/cjs/road-tooltip.cjs.entry.js.map +1 -1
  58. package/dist/cjs/roadtrip.cjs.js +1 -1
  59. package/dist/collection/components/accordion/accordion.css +4 -0
  60. package/dist/collection/components/accordion/accordion.stories.js +1 -1
  61. package/dist/collection/components/alert/alert.stories.js +1 -1
  62. package/dist/collection/components/autocomplete/autocomplete.js +1 -1
  63. package/dist/collection/components/autocomplete/autocomplete.js.map +1 -1
  64. package/dist/collection/components/autocomplete/autocomplete.stories.js +2 -2
  65. package/dist/collection/components/avatar/avatar.stories.js +1 -1
  66. package/dist/collection/components/badge/badge.stories.js +2 -2
  67. package/dist/collection/components/banner/banner.js +1 -1
  68. package/dist/collection/components/banner/banner.js.map +1 -1
  69. package/dist/collection/components/button/button.stories.js +6 -6
  70. package/dist/collection/components/button-floating/button-floating.css +0 -4
  71. package/dist/collection/components/button-floating/button-floating.stories.js +2 -2
  72. package/dist/collection/components/card/card.css +4 -0
  73. package/dist/collection/components/card/card.stories.js +4 -4
  74. package/dist/collection/components/carousel/carousel.css +4 -1
  75. package/dist/collection/components/carousel/carousel.js +93 -250
  76. package/dist/collection/components/carousel/carousel.js.map +1 -1
  77. package/dist/collection/components/chip/chip.css +2 -2
  78. package/dist/collection/components/chip/chip.js +1 -1
  79. package/dist/collection/components/chip/chip.js.map +1 -1
  80. package/dist/collection/components/chip/chip.stories.js +26 -1
  81. package/dist/collection/components/collapse/collapse.css +4 -0
  82. package/dist/collection/components/collapse/collapse.stories.js +8 -8
  83. package/dist/collection/components/counter/counter.css +5 -0
  84. package/dist/collection/components/counter/counter.js +19 -1
  85. package/dist/collection/components/counter/counter.js.map +1 -1
  86. package/dist/collection/components/dialog/dialog.js +2 -2
  87. package/dist/collection/components/dialog/dialog.js.map +1 -1
  88. package/dist/collection/components/drawer/drawer.js +1 -1
  89. package/dist/collection/components/drawer/drawer.js.map +1 -1
  90. package/dist/collection/components/drawer/drawer.stories.js +2 -2
  91. package/dist/collection/components/dropdown/dropdown.css +9 -4
  92. package/dist/collection/components/dropdown/dropdown.js +3 -3
  93. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  94. package/dist/collection/components/dropdown/dropdown.stories.js +4 -4
  95. package/dist/collection/components/global-navigation/global-navigation.js +1 -1
  96. package/dist/collection/components/global-navigation/global-navigation.js.map +1 -1
  97. package/dist/collection/components/global-navigation/global-navigation.stories.js +39 -39
  98. package/dist/collection/components/icon/icon.stories.js +44 -43
  99. package/dist/collection/components/illustration/illustration.js +1 -1
  100. package/dist/collection/components/illustration/illustration.js.map +1 -1
  101. package/dist/collection/components/input/input.css +8 -2
  102. package/dist/collection/components/input/input.js +16 -2
  103. package/dist/collection/components/input/input.js.map +1 -1
  104. package/dist/collection/components/input-group/input-group.js +1 -1
  105. package/dist/collection/components/input-group/input-group.js.map +1 -1
  106. package/dist/collection/components/input-group/input-group.stories.js +4 -4
  107. package/dist/collection/components/item/item.stories.js +9 -9
  108. package/dist/collection/components/list/list.stories.js +8 -8
  109. package/dist/collection/components/modal/modal.js +1 -1
  110. package/dist/collection/components/modal/modal.js.map +1 -1
  111. package/dist/collection/components/navbar/navbar.js +1 -1
  112. package/dist/collection/components/navbar/navbar.js.map +1 -1
  113. package/dist/collection/components/navbar/navbar.stories.js +84 -63
  114. package/dist/collection/components/navbar-item/navbar-item.js +1 -1
  115. package/dist/collection/components/navbar-item/navbar-item.js.map +1 -1
  116. package/dist/collection/components/patterns/link.stories.js +2 -2
  117. package/dist/collection/components/phone-number-input/phone-number-input.css +0 -1
  118. package/dist/collection/components/phone-number-input/phone-number-input.js +40 -4
  119. package/dist/collection/components/phone-number-input/phone-number-input.js.map +1 -1
  120. package/dist/collection/components/plate-number/plate-number.css +1 -1
  121. package/dist/collection/components/plate-number/plate-number.js +1 -1
  122. package/dist/collection/components/plate-number/plate-number.js.map +1 -1
  123. package/dist/collection/components/profil-dropdown/profil-dropdown.css +8 -0
  124. package/dist/collection/components/profil-dropdown/profil-dropdown.js +18 -0
  125. package/dist/collection/components/profil-dropdown/profil-dropdown.js.map +1 -1
  126. package/dist/collection/components/profil-dropdown/profil-dropdown.stories.js +4 -4
  127. package/dist/collection/components/progress/progress.js +1 -1
  128. package/dist/collection/components/progress/progress.js.map +1 -1
  129. package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.css +5 -0
  130. package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js +1 -1
  131. package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js.map +1 -1
  132. package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.stories.js +20 -20
  133. package/dist/collection/components/progress-tracker/progress-tracker.css +4 -0
  134. package/dist/collection/components/progress-tracker/progress-tracker.js +1 -1
  135. package/dist/collection/components/progress-tracker/progress-tracker.js.map +1 -1
  136. package/dist/collection/components/range/range.css +17 -2
  137. package/dist/collection/components/range/range.js +41 -2
  138. package/dist/collection/components/range/range.js.map +1 -1
  139. package/dist/collection/components/segmented-button/segmented-button.js +1 -1
  140. package/dist/collection/components/segmented-button/segmented-button.js.map +1 -1
  141. package/dist/collection/components/select/select.css +1 -1
  142. package/dist/collection/components/select-filter/select-filter.css +5 -0
  143. package/dist/collection/components/select-filter/select-filter.js +43 -9
  144. package/dist/collection/components/select-filter/select-filter.js.map +1 -1
  145. package/dist/collection/components/select-filter/select-filter.stories.js +8 -8
  146. package/dist/collection/components/tabs/tabs.stories.js +5 -5
  147. package/dist/collection/components/textarea/textarea.css +2 -2
  148. package/dist/collection/components/toolbar/toolbar.css +0 -2
  149. package/dist/collection/components/toolbar/toolbar.stories.js +8 -8
  150. package/dist/collection/components/tooltip/tooltip.js +1 -1
  151. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  152. package/dist/collection/components/tooltip/tooltip.stories.js +3 -3
  153. package/dist/esm/{index-891decf5.js → index-7a0158a4.js} +2 -2
  154. package/dist/esm/{index-891decf5.js.map → index-7a0158a4.js.map} +1 -1
  155. package/dist/esm/loader.js +1 -1
  156. package/dist/esm/road-accordion.entry.js +2 -2
  157. package/dist/esm/road-accordion.entry.js.map +1 -1
  158. package/dist/esm/road-autocomplete.entry.js +1 -1
  159. package/dist/esm/road-autocomplete.entry.js.map +1 -1
  160. package/dist/esm/road-badge_14.entry.js +41 -9
  161. package/dist/esm/road-badge_14.entry.js.map +1 -1
  162. package/dist/esm/road-banner.entry.js +2 -2
  163. package/dist/esm/road-banner.entry.js.map +1 -1
  164. package/dist/esm/road-button-floating.entry.js +1 -1
  165. package/dist/esm/road-button-floating.entry.js.map +1 -1
  166. package/dist/esm/road-card.entry.js +1 -1
  167. package/dist/esm/road-card.entry.js.map +1 -1
  168. package/dist/esm/road-carousel.entry.js +31 -119
  169. package/dist/esm/road-carousel.entry.js.map +1 -1
  170. package/dist/esm/road-checkbox.entry.js +1 -1
  171. package/dist/esm/road-chip.entry.js +3 -3
  172. package/dist/esm/road-chip.entry.js.map +1 -1
  173. package/dist/esm/road-collapse.entry.js +1 -1
  174. package/dist/esm/road-collapse.entry.js.map +1 -1
  175. package/dist/esm/road-dialog.entry.js +3 -3
  176. package/dist/esm/road-dialog.entry.js.map +1 -1
  177. package/dist/esm/road-dropdown.entry.js +4 -4
  178. package/dist/esm/road-dropdown.entry.js.map +1 -1
  179. package/dist/esm/road-global-navigation.entry.js +1 -1
  180. package/dist/esm/road-global-navigation.entry.js.map +1 -1
  181. package/dist/esm/road-illustration.entry.js +1 -1
  182. package/dist/esm/road-illustration.entry.js.map +1 -1
  183. package/dist/esm/road-modal.entry.js +2 -2
  184. package/dist/esm/road-modal.entry.js.map +1 -1
  185. package/dist/esm/road-navbar-item.entry.js +1 -1
  186. package/dist/esm/road-navbar-item.entry.js.map +1 -1
  187. package/dist/esm/road-navbar.entry.js +1 -1
  188. package/dist/esm/road-navbar.entry.js.map +1 -1
  189. package/dist/esm/road-phone-number-input.entry.js +41 -5
  190. package/dist/esm/road-phone-number-input.entry.js.map +1 -1
  191. package/dist/esm/road-plate-number.entry.js +3 -3
  192. package/dist/esm/road-plate-number.entry.js.map +1 -1
  193. package/dist/esm/road-profil-dropdown.entry.js +11 -2
  194. package/dist/esm/road-profil-dropdown.entry.js.map +1 -1
  195. package/dist/esm/road-progress-indicator-vertical.entry.js +2 -2
  196. package/dist/esm/road-progress-indicator-vertical.entry.js.map +1 -1
  197. package/dist/esm/road-progress-tracker.entry.js +2 -2
  198. package/dist/esm/road-progress-tracker.entry.js.map +1 -1
  199. package/dist/esm/road-progress.entry.js +1 -1
  200. package/dist/esm/road-progress.entry.js.map +1 -1
  201. package/dist/esm/road-range.entry.js +28 -4
  202. package/dist/esm/road-range.entry.js.map +1 -1
  203. package/dist/esm/road-rating.entry.js +1 -1
  204. package/dist/esm/road-segmented-button.entry.js +1 -1
  205. package/dist/esm/road-segmented-button.entry.js.map +1 -1
  206. package/dist/esm/road-select-filter.entry.js +34 -4
  207. package/dist/esm/road-select-filter.entry.js.map +1 -1
  208. package/dist/esm/road-select.entry.js +1 -1
  209. package/dist/esm/road-select.entry.js.map +1 -1
  210. package/dist/esm/road-textarea.entry.js +1 -1
  211. package/dist/esm/road-textarea.entry.js.map +1 -1
  212. package/dist/esm/road-toast.entry.js +1 -1
  213. package/dist/esm/road-tooltip.entry.js +1 -1
  214. package/dist/esm/road-tooltip.entry.js.map +1 -1
  215. package/dist/esm/roadtrip.js +1 -1
  216. package/dist/html.html-data.json +3 -3
  217. package/dist/roadtrip/p-054acf61.entry.js +2 -0
  218. package/dist/roadtrip/p-054acf61.entry.js.map +1 -0
  219. package/dist/roadtrip/{p-ea28a425.entry.js → p-08b0be1b.entry.js} +2 -2
  220. package/dist/roadtrip/p-08b0be1b.entry.js.map +1 -0
  221. package/dist/roadtrip/{p-1a761fc0.entry.js → p-0fd454dc.entry.js} +2 -2
  222. package/dist/roadtrip/p-0fd454dc.entry.js.map +1 -0
  223. package/dist/roadtrip/{p-60e25858.entry.js → p-14ecc91e.entry.js} +2 -2
  224. package/dist/roadtrip/{p-60e25858.entry.js.map → p-14ecc91e.entry.js.map} +1 -1
  225. package/dist/roadtrip/{p-82919e58.entry.js → p-16c934bc.entry.js} +2 -2
  226. package/dist/roadtrip/p-17ae87b0.entry.js +2 -0
  227. package/dist/roadtrip/p-17ae87b0.entry.js.map +1 -0
  228. package/dist/roadtrip/{p-6e3e0b40.entry.js → p-18967429.entry.js} +2 -2
  229. package/dist/roadtrip/{p-6e3e0b40.entry.js.map → p-18967429.entry.js.map} +1 -1
  230. package/dist/roadtrip/p-27d2770a.entry.js +2 -0
  231. package/dist/roadtrip/p-27d2770a.entry.js.map +1 -0
  232. package/dist/roadtrip/{p-4f47f4f7.entry.js → p-31cf9b61.entry.js} +2 -2
  233. package/dist/roadtrip/p-31cf9b61.entry.js.map +1 -0
  234. package/dist/roadtrip/{p-dcb280e3.entry.js → p-3bce3bdc.entry.js} +2 -2
  235. package/dist/roadtrip/p-3bce3bdc.entry.js.map +1 -0
  236. package/dist/roadtrip/p-4a2f2612.entry.js +2 -0
  237. package/dist/roadtrip/p-4a2f2612.entry.js.map +1 -0
  238. package/dist/roadtrip/p-5203acea.entry.js +2 -0
  239. package/dist/roadtrip/p-5203acea.entry.js.map +1 -0
  240. package/dist/roadtrip/{p-a73ef7de.entry.js → p-61d87e64.entry.js} +2 -2
  241. package/dist/roadtrip/{p-a73ef7de.entry.js.map → p-61d87e64.entry.js.map} +1 -1
  242. package/dist/roadtrip/p-6ad5091d.entry.js +2 -0
  243. package/dist/roadtrip/p-6ad5091d.entry.js.map +1 -0
  244. package/dist/roadtrip/{p-2c132382.entry.js → p-72b3b34a.entry.js} +2 -2
  245. package/dist/roadtrip/p-72b3b34a.entry.js.map +1 -0
  246. package/dist/roadtrip/p-7a14e5b7.entry.js +2 -0
  247. package/dist/roadtrip/p-7a14e5b7.entry.js.map +1 -0
  248. package/dist/roadtrip/{p-c3c92152.entry.js → p-7f1d9286.entry.js} +2 -2
  249. package/dist/roadtrip/p-7f1d9286.entry.js.map +1 -0
  250. package/dist/roadtrip/p-9a929988.entry.js +2 -0
  251. package/dist/roadtrip/p-9a929988.entry.js.map +1 -0
  252. package/dist/roadtrip/{p-336aa5f6.entry.js → p-9ff79904.entry.js} +2 -2
  253. package/dist/roadtrip/{p-336aa5f6.entry.js.map → p-9ff79904.entry.js.map} +1 -1
  254. package/dist/roadtrip/p-a5eee655.entry.js +2 -0
  255. package/dist/roadtrip/{p-40daa53b.entry.js.map → p-a5eee655.entry.js.map} +1 -1
  256. package/dist/roadtrip/{p-73fe2357.js → p-ac7a8bca.js} +2 -2
  257. package/dist/roadtrip/{p-6177bb46.entry.js → p-b510e552.entry.js} +2 -2
  258. package/dist/roadtrip/{p-6177bb46.entry.js.map → p-b510e552.entry.js.map} +1 -1
  259. package/dist/roadtrip/{p-46cccafc.entry.js → p-c096723c.entry.js} +2 -2
  260. package/dist/roadtrip/{p-46cccafc.entry.js.map → p-c096723c.entry.js.map} +1 -1
  261. package/dist/roadtrip/p-c7866ae4.entry.js +2 -0
  262. package/dist/roadtrip/p-c7866ae4.entry.js.map +1 -0
  263. package/dist/roadtrip/p-cdefa79c.entry.js +2 -0
  264. package/dist/roadtrip/p-cdefa79c.entry.js.map +1 -0
  265. package/dist/roadtrip/{p-cbc00bfb.entry.js → p-cfc0a3a7.entry.js} +2 -2
  266. package/dist/roadtrip/p-dcbaee2f.entry.js +2 -0
  267. package/dist/roadtrip/p-dcbaee2f.entry.js.map +1 -0
  268. package/dist/roadtrip/{p-7048f786.entry.js → p-dcbb0d20.entry.js} +2 -2
  269. package/dist/roadtrip/p-dcbb0d20.entry.js.map +1 -0
  270. package/dist/roadtrip/{p-414a2791.entry.js → p-e8c9c816.entry.js} +2 -2
  271. package/dist/roadtrip/{p-f5cce766.entry.js → p-ebd19369.entry.js} +2 -2
  272. package/dist/roadtrip/{p-f5cce766.entry.js.map → p-ebd19369.entry.js.map} +1 -1
  273. package/dist/roadtrip/p-f7b4f1fa.entry.js +2 -0
  274. package/dist/roadtrip/p-f7b4f1fa.entry.js.map +1 -0
  275. package/dist/roadtrip/p-f90af0e1.entry.js +2 -0
  276. package/dist/roadtrip/p-f90af0e1.entry.js.map +1 -0
  277. package/dist/roadtrip/roadtrip.esm.js +1 -1
  278. package/dist/roadtrip/roadtrip.esm.js.map +1 -1
  279. package/dist/types/components/carousel/carousel.d.ts +1 -131
  280. package/dist/types/components/counter/counter.d.ts +1 -0
  281. package/dist/types/components/phone-number-input/phone-number-input.d.ts +1 -0
  282. package/dist/types/components/profil-dropdown/profil-dropdown.d.ts +2 -0
  283. package/dist/types/components/range/range.d.ts +3 -0
  284. package/dist/types/components/select-filter/select-filter.d.ts +16 -4
  285. package/dist/types/components.d.ts +4 -128
  286. package/hydrate/index.js +216 -175
  287. package/package.json +1 -1
  288. package/dist/roadtrip/p-1a761fc0.entry.js.map +0 -1
  289. package/dist/roadtrip/p-2b5974fc.entry.js +0 -2
  290. package/dist/roadtrip/p-2b5974fc.entry.js.map +0 -1
  291. package/dist/roadtrip/p-2c132382.entry.js.map +0 -1
  292. package/dist/roadtrip/p-2c8a6854.entry.js +0 -2
  293. package/dist/roadtrip/p-2c8a6854.entry.js.map +0 -1
  294. package/dist/roadtrip/p-2e25c08d.entry.js +0 -2
  295. package/dist/roadtrip/p-2e25c08d.entry.js.map +0 -1
  296. package/dist/roadtrip/p-33002e9d.entry.js +0 -2
  297. package/dist/roadtrip/p-33002e9d.entry.js.map +0 -1
  298. package/dist/roadtrip/p-372fcb4d.entry.js +0 -2
  299. package/dist/roadtrip/p-372fcb4d.entry.js.map +0 -1
  300. package/dist/roadtrip/p-40daa53b.entry.js +0 -2
  301. package/dist/roadtrip/p-4f47f4f7.entry.js.map +0 -1
  302. package/dist/roadtrip/p-5053b01a.entry.js +0 -2
  303. package/dist/roadtrip/p-5053b01a.entry.js.map +0 -1
  304. package/dist/roadtrip/p-7048f786.entry.js.map +0 -1
  305. package/dist/roadtrip/p-9bef58e1.entry.js +0 -2
  306. package/dist/roadtrip/p-9bef58e1.entry.js.map +0 -1
  307. package/dist/roadtrip/p-a44a569a.entry.js +0 -2
  308. package/dist/roadtrip/p-a44a569a.entry.js.map +0 -1
  309. package/dist/roadtrip/p-acbc0a14.entry.js +0 -2
  310. package/dist/roadtrip/p-acbc0a14.entry.js.map +0 -1
  311. package/dist/roadtrip/p-b2e7bfcb.entry.js +0 -2
  312. package/dist/roadtrip/p-b2e7bfcb.entry.js.map +0 -1
  313. package/dist/roadtrip/p-c3c92152.entry.js.map +0 -1
  314. package/dist/roadtrip/p-dcb280e3.entry.js.map +0 -1
  315. package/dist/roadtrip/p-e2149bdf.entry.js +0 -2
  316. package/dist/roadtrip/p-e2149bdf.entry.js.map +0 -1
  317. package/dist/roadtrip/p-ea28a425.entry.js.map +0 -1
  318. package/dist/roadtrip/p-ee7aaee5.entry.js +0 -2
  319. package/dist/roadtrip/p-ee7aaee5.entry.js.map +0 -1
  320. package/dist/roadtrip/p-faba450c.entry.js +0 -2
  321. package/dist/roadtrip/p-faba450c.entry.js.map +0 -1
  322. /package/dist/roadtrip/{p-82919e58.entry.js.map → p-16c934bc.entry.js.map} +0 -0
  323. /package/dist/roadtrip/{p-73fe2357.js.map → p-ac7a8bca.js.map} +0 -0
  324. /package/dist/roadtrip/{p-cbc00bfb.entry.js.map → p-cfc0a3a7.entry.js.map} +0 -0
  325. /package/dist/roadtrip/{p-414a2791.entry.js.map → p-e8c9c816.entry.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-52302079.js';
2
- import { l as licensePlateStarEu } from './index-891decf5.js';
2
+ import { l as licensePlateStarEu } from './index-7a0158a4.js';
3
3
 
4
- const plateNumberCss = ".sc-road-plate-number-h{display:block}.plate-number.sc-road-plate-number{--margin-bottom:0}.plate-number-start.sc-road-plate-number,.plate-number-end.sc-road-plate-number{width:1.75rem;height:calc(3rem - 0.25rem);background:var(--road-info-50)}.input-group-prepend.sc-road-plate-number{margin-right:-1px}.input-group-prepend.sc-road-plate-number,.input-group-append.sc-road-plate-number{padding:0}.plate-number-start.sc-road-plate-number{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;margin-right:0;margin-left:1px;color:var(--road-icon-inverse);border-radius:0.125rem 0 0 0.125rem}.plate-number-icon.sc-road-plate-number{width:1.25rem;height:1.25rem;color:#f3db53}.plate-number-location.sc-road-plate-number{font-size:var(--road-button-medium);font-weight:700}.plate-number-end.sc-road-plate-number{margin-right:1px;border-radius:0 0.125rem 0.125rem 0}.plate-number-be.sc-road-plate-number .plate-number-input.sc-road-plate-number{color:var(--road-on-danger-surface)}.plate-number-be.sc-road-plate-number .plate-number-input.sc-road-plate-number,.plate-number-be.sc-road-plate-number .input-group-append.sc-road-plate-number,.plate-number-be.sc-road-plate-number .input-group-prepend.sc-road-plate-number{border-color:var(--road-danger-outline)}.plate-number-input.sc-road-plate-number{position:relative;display:block;height:3rem;margin:0;font-family:var(--road-font, sans-serif);font-size:var(--road-heading-04);font-weight:700;color:var(--road-on-surface);text-align:center;background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0;outline:0;box-shadow:none;-webkit-appearance:none;appearance:none}.plate-number-input.sc-road-plate-number::placeholder{color:var(--road-on-surface-extra-weak);opacity:1}.plate-number-input.sc-road-plate-number:disabled{color:var(--road-on-surface-disabled);cursor:not-allowed;background:var(--road-surface-disabled);opacity:1}.plate-number-input.sc-road-plate-number:disabled~.input-group-prepend.sc-road-plate-number,.plate-number-input.sc-road-plate-number:disabled~.input-group-append.sc-road-plate-number{cursor:not-allowed;background:var(--road-surface-disabled)}@media (hover: hover){.plate-number-input.sc-road-plate-number:not(:disabled):not([readonly]):hover{border-color:var(--road-input-outline-variant)}}.plate-number-input.sc-road-plate-number:not([readonly]):focus{border-color:var(--road-input-outline-variant);outline:0}.motorbike-plate.sc-road-plate-number .plate-number-input.sc-road-plate-number{height:6rem;padding:0.75rem 1rem 0;resize:none;border-left:0}.motorbike-plate.sc-road-plate-number .input-group-prepend.sc-road-plate-number,.motorbike-plate.sc-road-plate-number .input-group-append.sc-road-plate-number{align-items:flex-start;height:6rem;padding:0}.motorbike-plate.sc-road-plate-number .plate-number-start.sc-road-plate-number{margin-top:1px;border-radius:0.125rem 0 0}.motorbike-plate.sc-road-plate-number .plate-number-end.sc-road-plate-number{margin-top:1px;border-radius:0 0.125rem 0 0}";
4
+ const plateNumberCss = ".sc-road-plate-number-h{display:block}.plate-number.sc-road-plate-number{--margin-bottom:0}.plate-number-start.sc-road-plate-number,.plate-number-end.sc-road-plate-number{width:1.75rem;height:calc(3rem - 0.25rem);background:var(--road-info-50)}.input-group-prepend.sc-road-plate-number{margin-right:-1px}.input-group-prepend.sc-road-plate-number,.input-group-append.sc-road-plate-number{padding:0}.plate-number-start.sc-road-plate-number{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;margin-right:0;margin-left:1px;color:var(--road-icon-inverse);border-radius:0.125rem 0 0 0.125rem}.plate-number-icon.sc-road-plate-number{width:1.25rem;height:1.25rem;color:#f3db53}.plate-number-location.sc-road-plate-number{font-size:var(--road-button-medium);font-weight:700}.plate-number-end.sc-road-plate-number{margin-right:1px;border-radius:0 0.125rem 0.125rem 0}.plate-number-be.sc-road-plate-number .plate-number-input.sc-road-plate-number{color:var(--road-on-danger-surface)}.plate-number-be.sc-road-plate-number .plate-number-input.sc-road-plate-number,.plate-number-be.sc-road-plate-number .input-group-append.sc-road-plate-number,.plate-number-be.sc-road-plate-number .input-group-prepend.sc-road-plate-number{border-color:var(--road-danger-outline)}.plate-number-input.sc-road-plate-number{position:relative;display:block;height:3rem;margin:0;font-family:var(--road-font, sans-serif);font-size:var(--road-heading-04);font-weight:700;color:var(--road-on-surface);text-align:center;background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0;outline:0;box-shadow:none;-webkit-appearance:none;appearance:none}.plate-number-input.sc-road-plate-number::placeholder{color:var(--road-on-surface-weak);opacity:1}.plate-number-input.sc-road-plate-number:disabled{color:var(--road-on-surface-disabled);cursor:not-allowed;background:var(--road-surface-disabled);opacity:1}.plate-number-input.sc-road-plate-number:disabled~.input-group-prepend.sc-road-plate-number,.plate-number-input.sc-road-plate-number:disabled~.input-group-append.sc-road-plate-number{cursor:not-allowed;background:var(--road-surface-disabled)}@media (hover: hover){.plate-number-input.sc-road-plate-number:not(:disabled):not([readonly]):hover{border-color:var(--road-input-outline-variant)}}.plate-number-input.sc-road-plate-number:not([readonly]):focus{border-color:var(--road-input-outline-variant);outline:0}.motorbike-plate.sc-road-plate-number .plate-number-input.sc-road-plate-number{height:6rem;padding:0.75rem 1rem 0;resize:none;border-left:0}.motorbike-plate.sc-road-plate-number .input-group-prepend.sc-road-plate-number,.motorbike-plate.sc-road-plate-number .input-group-append.sc-road-plate-number{align-items:flex-start;height:6rem;padding:0}.motorbike-plate.sc-road-plate-number .plate-number-start.sc-road-plate-number{margin-top:1px;border-radius:0.125rem 0 0}.motorbike-plate.sc-road-plate-number .plate-number-end.sc-road-plate-number{margin-top:1px;border-radius:0 0.125rem 0 0}";
5
5
 
6
6
  const PlateNumber = class {
7
7
  constructor(hostRef) {
@@ -94,7 +94,7 @@ const PlateNumber = class {
94
94
  render() {
95
95
  const value = this.getValue();
96
96
  const motorbikeClass = this.motorbike ? 'motorbike-plate' : '';
97
- return (h("road-input-group", { class: `plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}` }, h("label", { slot: "prepend", class: "input-group-prepend" }, h("div", { class: "plate-number-start" }, h("road-icon", { class: "plate-number-icon", icon: licensePlateStarEu }), h("div", { class: "plate-number-location" }, this.countries
97
+ return (h("road-input-group", { class: `plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}` }, h("label", { slot: "prepend", class: "input-group-prepend" }, h("div", { class: "plate-number-start" }, h("road-icon", { class: "plate-number-icon", icon: licensePlateStarEu }), h("div", { class: "plate-number-location", "aria-label": this.country, role: "img" }, this.countries
98
98
  .filter(item => item.country === this.country)[0].letter))), this.motorbike
99
99
  ? (h("textarea", { class: "form-control plate-number-input mb-0", disabled: this.disabled, placeholder: this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder, readOnly: this.readonly, maxlength: "9", rows: 2, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus }))
100
100
  : (h("input", { class: "plate-number-input mb-0", disabled: this.disabled, placeholder: this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder, readOnly: this.readonly, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus })), h("label", { slot: "append", class: "input-group-append" }, h("div", { class: "plate-number-end" }))));
@@ -1 +1 @@
1
- {"file":"road-plate-number.entry.js","mappings":"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","names":[],"sources":["src/components/plate-number/plate-number.css?tag=road-plate-number&encapsulation=scoped","src/components/plate-number/plate-number.tsx"],"sourcesContent":["/*\n * Plate Number\n *\n * Index\n * - Plate Number\n * - Input\n */\n\n/* PLATE NUMBER\n -------------------- */\n\n:host {\n display: block;\n}\n\n.plate-number {\n --margin-bottom: 0;\n}\n\n.plate-number-start,\n.plate-number-end {\n width: 1.75rem;\n height: calc(3rem - 0.25rem);\n background: var(--road-info-50);\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-prepend,\n.input-group-append {\n padding: 0;\n}\n\n.plate-number-start {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin-right: 0;\n margin-left: 1px;\n color: var(--road-icon-inverse);\n border-radius: 0.125rem 0 0 0.125rem;\n}\n\n.plate-number-icon {\n width: 1.25rem;\n height: 1.25rem;\n color: #f3db53;\n}\n\n.plate-number-location {\n font-size: var(--road-button-medium);\n font-weight: 700;\n}\n\n.plate-number-end {\n margin-right: 1px;\n border-radius: 0 0.125rem 0.125rem 0;\n}\n\n.plate-number-be .plate-number-input {\n color: var(--road-on-danger-surface);\n}\n\n.plate-number-be .plate-number-input,\n.plate-number-be .input-group-append,\n.plate-number-be .input-group-prepend {\n border-color: var(--road-danger-outline);\n}\n\n/* INPUT\n -------------------- */\n\n.plate-number-input {\n position: relative;\n display: block;\n height: 3rem;\n margin: 0;\n font-family: var(--road-font, sans-serif);\n font-size: var(--road-heading-04);\n font-weight: 700;\n color: var(--road-on-surface);\n text-align: center;\n background: var(--road-surface);\n border: 1px solid var(--road-input-outline);\n border-radius: 0;\n outline: 0;\n box-shadow: none;\n appearance: none;\n}\n\n.plate-number-input::placeholder {\n color: var(--road-on-surface-extra-weak);\n opacity: 1;\n}\n\n/**\n * Disabled state\n */\n\n.plate-number-input:disabled {\n color: var(--road-on-surface-disabled);\n cursor: not-allowed;\n background: var(--road-surface-disabled);\n opacity: 1;\n}\n\n.plate-number-input:disabled ~ .input-group-prepend,\n.plate-number-input:disabled ~ .input-group-append {\n cursor: not-allowed;\n background: var(--road-surface-disabled);\n}\n\n/**\n * Hover state\n */\n\n@media (hover: hover) {\n\n .plate-number-input:not(:disabled):not([readonly]):hover {\n border-color: var(--road-input-outline-variant);\n }\n}\n\n/**\n * Focus state\n */\n\n.plate-number-input:not([readonly]):focus {\n border-color: var(--road-input-outline-variant);\n outline: 0;\n}\n\n/* MOTORBIKE\n -------------------- */\n\n.motorbike-plate .plate-number-input {\n height: 6rem;\n padding: 0.75rem 1rem 0;\n resize: none;\n border-left: 0;\n}\n\n.motorbike-plate .input-group-prepend,\n.motorbike-plate .input-group-append {\n align-items: flex-start;\n height: 6rem;\n padding: 0;\n}\n\n.motorbike-plate .plate-number-start {\n margin-top: 1px;\n border-radius: 0.125rem 0 0;\n}\n\n.motorbike-plate .plate-number-end {\n margin-top: 1px;\n border-radius: 0 0.125rem 0 0;\n}\n","import { Component, h, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { licensePlateStarEu } from '../../../icons';\n\n@Component({\n tag: 'road-plate-number',\n styleUrl: 'plate-number.css',\n scoped: true,\n})\nexport class PlateNumber {\n\n private countries = [\n {\n country: 'FR',\n letter: 'F',\n placeholder: 'AT-857-YY',\n },\n {\n country: 'BE',\n letter: 'B',\n placeholder: '1-AAA-001',\n },\n {\n country: 'IT',\n letter: 'I',\n placeholder: 'AT 814TX',\n },\n {\n country: 'ES',\n letter: 'E',\n placeholder: '9512 HVY',\n },\n {\n country: 'PT',\n letter: 'P',\n placeholder: '13 24 PZ',\n },\n {\n country: 'PL',\n letter: 'PL',\n placeholder: 'GD 921KF',\n },\n {\n country: 'AT',\n letter: 'A',\n placeholder: 'FF 10 FF',\n },\n {\n country: 'DE',\n letter: 'D',\n placeholder: 'RA KL 8136',\n }\n ];\n\n /**\n * country of the plate\n */\n @Prop() country: 'FR' | 'BE' | 'IT' | 'ES' | 'PT' | 'PL' | 'AT' | 'DE' = 'FR';\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * overwrite the default placeholder\n */\n @Prop() placeholder?: string;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | number | null = '';\n\n /**\n * Enable motorbike display\n */\n @Prop() motorbike?: boolean;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.roadchange.emit({ value: this.value == null ? this.value : this.value.toString() });\n this.roadChange.emit({ value: this.value == null ? this.value : this.value.toString() });\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() roadinput!: EventEmitter<KeyboardEvent>;\n /** @internal */\n @Event() roadInput!: EventEmitter<KeyboardEvent>;\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 /**\n * Emitted when the input loses focus.\n */\n @Event() roadblur!: EventEmitter<void>;\n /** @internal */\n @Event() roadBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() roadfocus!: EventEmitter<void>;\n /** @internal */\n @Event() roadFocus!: EventEmitter<void>;\n\n private getValue(): string {\n return typeof this.value === 'number'\n ? this.value.toString()\n : (this.value || '').toString();\n }\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n input.value = input.value.toUpperCase() || \"\";\n }\n this.roadinput.emit(ev as KeyboardEvent);\n this.roadInput.emit(ev as KeyboardEvent);\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n this.roadBlur.emit();\n };\n\n private onFocus = () => {\n this.roadfocus.emit();\n this.roadFocus.emit();\n };\n\n render() {\n const value = this.getValue();\n const motorbikeClass = this.motorbike ? 'motorbike-plate' : '';\n\n return (\n <road-input-group class={`plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}`}>\n <label slot=\"prepend\" class=\"input-group-prepend\">\n <div class=\"plate-number-start\">\n <road-icon class=\"plate-number-icon\" icon={licensePlateStarEu}></road-icon>\n <div class=\"plate-number-location\">\n {this.countries\n .filter(item => item.country === this.country)[0].letter}\n </div>\n </div>\n </label>\n {this.motorbike\n ? (\n <textarea\n class=\"form-control plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n maxlength=\"9\"\n rows={2}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n >\n </textarea>\n )\n : (\n <input\n class=\"plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n value={value}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n />\n )}\n <label slot=\"append\" class=\"input-group-append\">\n <div class=\"plate-number-end\"></div>\n </label>\n </road-input-group>\n );\n }\n\n}"],"version":3}
1
+ {"file":"road-plate-number.entry.js","mappings":"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","names":[],"sources":["src/components/plate-number/plate-number.css?tag=road-plate-number&encapsulation=scoped","src/components/plate-number/plate-number.tsx"],"sourcesContent":["/*\n * Plate Number\n *\n * Index\n * - Plate Number\n * - Input\n */\n\n/* PLATE NUMBER\n -------------------- */\n\n:host {\n display: block;\n}\n\n.plate-number {\n --margin-bottom: 0;\n}\n\n.plate-number-start,\n.plate-number-end {\n width: 1.75rem;\n height: calc(3rem - 0.25rem);\n background: var(--road-info-50);\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-prepend,\n.input-group-append {\n padding: 0;\n}\n\n.plate-number-start {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin-right: 0;\n margin-left: 1px;\n color: var(--road-icon-inverse);\n border-radius: 0.125rem 0 0 0.125rem;\n}\n\n.plate-number-icon {\n width: 1.25rem;\n height: 1.25rem;\n color: #f3db53;\n}\n\n.plate-number-location {\n font-size: var(--road-button-medium);\n font-weight: 700;\n}\n\n.plate-number-end {\n margin-right: 1px;\n border-radius: 0 0.125rem 0.125rem 0;\n}\n\n.plate-number-be .plate-number-input {\n color: var(--road-on-danger-surface);\n}\n\n.plate-number-be .plate-number-input,\n.plate-number-be .input-group-append,\n.plate-number-be .input-group-prepend {\n border-color: var(--road-danger-outline);\n}\n\n/* INPUT\n -------------------- */\n\n.plate-number-input {\n position: relative;\n display: block;\n height: 3rem;\n margin: 0;\n font-family: var(--road-font, sans-serif);\n font-size: var(--road-heading-04);\n font-weight: 700;\n color: var(--road-on-surface);\n text-align: center;\n background: var(--road-surface);\n border: 1px solid var(--road-input-outline);\n border-radius: 0;\n outline: 0;\n box-shadow: none;\n appearance: none;\n}\n\n.plate-number-input::placeholder {\n color: var(--road-on-surface-weak);\n opacity: 1;\n}\n\n/**\n * Disabled state\n */\n\n.plate-number-input:disabled {\n color: var(--road-on-surface-disabled);\n cursor: not-allowed;\n background: var(--road-surface-disabled);\n opacity: 1;\n}\n\n.plate-number-input:disabled ~ .input-group-prepend,\n.plate-number-input:disabled ~ .input-group-append {\n cursor: not-allowed;\n background: var(--road-surface-disabled);\n}\n\n/**\n * Hover state\n */\n\n@media (hover: hover) {\n\n .plate-number-input:not(:disabled):not([readonly]):hover {\n border-color: var(--road-input-outline-variant);\n }\n}\n\n/**\n * Focus state\n */\n\n.plate-number-input:not([readonly]):focus {\n border-color: var(--road-input-outline-variant);\n outline: 0;\n}\n\n/* MOTORBIKE\n -------------------- */\n\n.motorbike-plate .plate-number-input {\n height: 6rem;\n padding: 0.75rem 1rem 0;\n resize: none;\n border-left: 0;\n}\n\n.motorbike-plate .input-group-prepend,\n.motorbike-plate .input-group-append {\n align-items: flex-start;\n height: 6rem;\n padding: 0;\n}\n\n.motorbike-plate .plate-number-start {\n margin-top: 1px;\n border-radius: 0.125rem 0 0;\n}\n\n.motorbike-plate .plate-number-end {\n margin-top: 1px;\n border-radius: 0 0.125rem 0 0;\n}\n","import { Component, h, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { licensePlateStarEu } from '../../../icons';\n\n@Component({\n tag: 'road-plate-number',\n styleUrl: 'plate-number.css',\n scoped: true,\n})\nexport class PlateNumber {\n\n private countries = [\n {\n country: 'FR',\n letter: 'F',\n placeholder: 'AT-857-YY',\n },\n {\n country: 'BE',\n letter: 'B',\n placeholder: '1-AAA-001',\n },\n {\n country: 'IT',\n letter: 'I',\n placeholder: 'AT 814TX',\n },\n {\n country: 'ES',\n letter: 'E',\n placeholder: '9512 HVY',\n },\n {\n country: 'PT',\n letter: 'P',\n placeholder: '13 24 PZ',\n },\n {\n country: 'PL',\n letter: 'PL',\n placeholder: 'GD 921KF',\n },\n {\n country: 'AT',\n letter: 'A',\n placeholder: 'FF 10 FF',\n },\n {\n country: 'DE',\n letter: 'D',\n placeholder: 'RA KL 8136',\n }\n ];\n\n /**\n * country of the plate\n */\n @Prop() country: 'FR' | 'BE' | 'IT' | 'ES' | 'PT' | 'PL' | 'AT' | 'DE' = 'FR';\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * overwrite the default placeholder\n */\n @Prop() placeholder?: string;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | number | null = '';\n\n /**\n * Enable motorbike display\n */\n @Prop() motorbike?: boolean;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.roadchange.emit({ value: this.value == null ? this.value : this.value.toString() });\n this.roadChange.emit({ value: this.value == null ? this.value : this.value.toString() });\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() roadinput!: EventEmitter<KeyboardEvent>;\n /** @internal */\n @Event() roadInput!: EventEmitter<KeyboardEvent>;\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 /**\n * Emitted when the input loses focus.\n */\n @Event() roadblur!: EventEmitter<void>;\n /** @internal */\n @Event() roadBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() roadfocus!: EventEmitter<void>;\n /** @internal */\n @Event() roadFocus!: EventEmitter<void>;\n\n private getValue(): string {\n return typeof this.value === 'number'\n ? this.value.toString()\n : (this.value || '').toString();\n }\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n input.value = input.value.toUpperCase() || \"\";\n }\n this.roadinput.emit(ev as KeyboardEvent);\n this.roadInput.emit(ev as KeyboardEvent);\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n this.roadBlur.emit();\n };\n\n private onFocus = () => {\n this.roadfocus.emit();\n this.roadFocus.emit();\n };\n\n render() {\n const value = this.getValue();\n const motorbikeClass = this.motorbike ? 'motorbike-plate' : '';\n\n return (\n <road-input-group class={`plate-number plate-number-${this.country.toLowerCase()} ${motorbikeClass}`}>\n <label slot=\"prepend\" class=\"input-group-prepend\">\n <div class=\"plate-number-start\">\n <road-icon class=\"plate-number-icon\" icon={licensePlateStarEu}></road-icon>\n <div class=\"plate-number-location\" aria-label={this.country} role=\"img\">\n {this.countries\n .filter(item => item.country === this.country)[0].letter}\n </div>\n </div>\n </label>\n {this.motorbike\n ? (\n <textarea\n class=\"form-control plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n maxlength=\"9\"\n rows={2}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n >\n </textarea>\n )\n : (\n <input\n class=\"plate-number-input mb-0\"\n disabled={this.disabled}\n placeholder={this.placeholder != null ? this.placeholder : this.countries.filter(item => item.country === this.country)[0].placeholder}\n readOnly={this.readonly}\n value={value}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n />\n )}\n <label slot=\"append\" class=\"input-group-append\">\n <div class=\"plate-number-end\"></div>\n </label>\n </road-input-group>\n );\n }\n\n}"],"version":3}
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h } from './index-52302079.js';
1
+ import { r as registerInstance, h, a as getElement } from './index-52302079.js';
2
2
 
3
- const profilDropdownCss = ":host{--margin-top:0.5rem;display:block;font-size:var(--road-font-size-16)}.dropdown{position:relative;width:max-content;font-family:var(--road-font)}.dropdown summary{display:block;cursor:pointer;outline:none}.dropdown summary::-webkit-details-marker{display:none}.dropdown-button{position:relative;z-index:1;height:3.5rem;cursor:pointer;border-radius:0.25rem}.dropdown-button:hover{background:var(--road-grey-200)}.dropdown[open] .dropdown-menu{transform:scaleY(1)}.dropdown[open] .dropdown-menu.direction-top{position:absolute;bottom:0;left:0;transform:translate3d(0, -56px, 0);will-change:transform}.dropdown-menu{position:absolute;top:0;left:5.5rem;z-index:2;display:flex;flex-direction:column;min-width:16.875rem;padding:0.5rem 0;color:var(--road-on-surface);background:var(--road-surface);border:1px solid;border-color:var(--road-outline-weak);border-radius:0.25rem;box-shadow:var(--road-elevation-low);transition:transform 0.2s ease-in-out;transform:scaleY(0);transform-origin:0 0}road-item{font-size:var(--road-button-medium)}.profil-item{display:flex;padding-bottom:1rem;margin:1rem;cursor:auto;border-bottom:1px solid var(--road-outline)}.profil-item-info{display:flex;flex-direction:column;margin-left:1rem;text-align:left}.profil-item-info-name{font-weight:700}.profil-item road-avatar:hover{box-shadow:none}.dropdown-item{display:flex;align-items:center;min-height:40px;padding:0 1rem;font-size:var(--road-button-medium);line-height:1.5;color:var(--road-on-surface);text-align:left;text-decoration:none;cursor:pointer;background:var(--road-surface);border:none;outline:none}.dropdown-item-border{border-color:var(--road-outline);border-bottom:1px solid}.dropdown-item road-icon{margin-right:0.7rem}road-item:hover:first-child,road-item.focus-visible:first-child{background:none}road-item:hover,road-item.focus-visible{background:var(--road-surface-inverse)}";
3
+ const profilDropdownCss = ":host{--margin-top:0.5rem;display:block;font-size:var(--road-font-size-16)}.dropdown{position:relative;width:max-content;font-family:var(--road-font)}.dropdown summary{display:block;width:3.5rem;cursor:pointer;border-radius:3rem;outline:none}.dropdown summary:focus,.dropdown summary.focus-visible,.dropdown summary:focus-within{box-shadow:0 0 0 4px var(--road-primary-80)}.dropdown summary::-webkit-details-marker{display:none}.dropdown-button{position:relative;z-index:1;height:3.5rem;cursor:pointer;border-radius:0.25rem}.dropdown-button:hover{background:var(--road-grey-200)}.dropdown[open] .dropdown-menu{transform:scaleY(1)}.dropdown[open] .dropdown-menu.direction-top{position:absolute;bottom:0;left:0;transform:translate3d(0, -56px, 0);will-change:transform}.dropdown-menu{position:absolute;top:0;left:5.5rem;z-index:2;display:flex;flex-direction:column;min-width:16.875rem;padding:0.5rem 0;color:var(--road-on-surface);background:var(--road-surface);border:1px solid;border-color:var(--road-outline-weak);border-radius:0.25rem;box-shadow:var(--road-elevation-low);transition:transform 0.2s ease-in-out;transform:scaleY(0);transform-origin:0 0}road-item{font-size:var(--road-button-medium)}.profil-item{display:flex;padding-bottom:1rem;margin:1rem;cursor:auto;border-bottom:1px solid var(--road-outline)}.profil-item-info{display:flex;flex-direction:column;margin-left:1rem;text-align:left}.profil-item-info-name{font-weight:700}.profil-item road-avatar:hover{box-shadow:none}.dropdown-item{display:flex;align-items:center;min-height:40px;padding:0 1rem;font-size:var(--road-button-medium);line-height:1.5;color:var(--road-on-surface);text-align:left;text-decoration:none;cursor:pointer;background:var(--road-surface);border:none;outline:none}.dropdown-item-border{border-color:var(--road-outline);border-bottom:1px solid}.dropdown-item road-icon{margin-right:0.7rem}road-item:hover:first-child,road-item.focus-visible:first-child{background:none}road-item:hover,road-item.focus-visible{background:var(--road-surface-inverse)}";
4
4
 
5
5
  const Dropdown = class {
6
6
  constructor(hostRef) {
@@ -13,9 +13,18 @@ const Dropdown = class {
13
13
  };
14
14
  this.isOpen = false;
15
15
  }
16
+ handleDocumentClick(ev) {
17
+ // Check if the clicked element is the dropdown button
18
+ if (ev.target.closest('road-profil-dropdown') === this.el) {
19
+ return; // Do nothing if clicked element is the dropdown button
20
+ }
21
+ // Close dropdown if click is outside the dropdown
22
+ this.isOpen = false;
23
+ }
16
24
  render() {
17
25
  return (h("details", { class: "dropdown", open: this.isOpen }, h("summary", { "aria-expanded": `${this.isOpen}`, tabindex: "0", role: "button", onClick: this.onClick }, h("div", { class: `d-flex` }, h("div", null, h("road-avatar", null, h("slot", { name: "avatar" }))))), h("div", { class: `dropdown-menu` }, h("div", { class: "profil-item" }, h("road-avatar", { size: "sm" }, h("slot", { name: "avatarItem" })), h("div", { class: "profil-item-info" }, h("span", { class: "profil-item-info-name" }, h("slot", { name: "name" })), h("road-label", null, h("slot", { name: "email" })))), h("slot", { name: "list" }))));
18
26
  }
27
+ get el() { return getElement(this); }
19
28
  };
20
29
  Dropdown.style = profilDropdownCss;
21
30
 
@@ -1 +1 @@
1
- {"file":"road-profil-dropdown.entry.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,i1DAAi1D;;MCkB91D,QAAQ;;;;;;IAUX,YAAO,GAAG;MAChB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC;kBAP0C,KAAK;;EASjD,MAAM;IAEJ,QACE,eAAS,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IACzC,gCAAwB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,IACxF,WAAK,KAAK,EAAE,QAAQ,IAClB,eACE,uBACE,YAAM,IAAI,EAAC,QAAQ,GAAE,CACT,CACV,CACF,CACE,EACV,WAAK,KAAK,EAAE,eAAe,IACzB,WAAK,KAAK,EAAC,aAAa,IACtB,mBAAa,IAAI,EAAC,IAAI,IACpB,YAAM,IAAI,EAAC,YAAY,GAAE,CACb,EACd,WAAK,KAAK,EAAC,kBAAkB,IAC3B,YAAM,KAAK,EAAC,uBAAuB,IACjC,YAAM,IAAI,EAAC,MAAM,GAAE,CACd,EACP,sBACE,YAAM,IAAI,EAAC,OAAO,GAAE,CACT,CACT,CACF,EACN,YAAM,IAAI,EAAC,MAAM,GAAE,CACf,CACE,EACV;GACH;;;;;;","names":[],"sources":["src/components/profil-dropdown/profil-dropdown.css?tag=road-profil-dropdown&encapsulation=shadow","src/components/profil-dropdown/profil-dropdown.tsx"],"sourcesContent":["/*\n * Profil Dropdown\n *\n * Index\n * - Dropdown\n * - Dropdown menu\n */\n\n/**\n * @prop --margin-top: Top margin of the menu\n */\n\n/* PROFIL DROPDOWN\n -------------------- */\n\n:host {\n --margin-top: 0.5rem;\n display: block;\n font-size: var(--road-font-size-16);\n}\n\n.dropdown {\n position: relative;\n width: max-content;\n font-family: var(--road-font);\n}\n\n.dropdown summary {\n display: block;\n cursor: pointer;\n outline: none;\n}\n\n.dropdown summary::-webkit-details-marker { /* remove native arrow */\n display: none;\n}\n\n.dropdown-button{\n position: relative;\n z-index: 1;\n height: 3.5rem;\n cursor: pointer;\n border-radius: 0.25rem;\n}\n\n.dropdown-button:hover{\n background: var(--road-grey-200);\n}\n\n/**\n * Open state\n */\n\n.dropdown[open] .dropdown-menu {\n transform: scaleY(1);\n}\n\n.dropdown[open] .dropdown-menu.direction-top {\n position: absolute;\n bottom: 0;\n left: 0;\n transform: translate3d(0, -56px, 0);\n will-change: transform;\n}\n\n/* MENU\n-------------------- */\n\n.dropdown-menu {\n position: absolute;\n top: 0;\n left: 5.5rem;\n z-index: 2;\n display: flex;\n flex-direction: column;\n min-width: 16.875rem;\n padding: 0.5rem 0;\n color: var(--road-on-surface);\n background: var(--road-surface);\n border: 1px solid;\n border-color: var(--road-outline-weak);\n border-radius: 0.25rem;\n box-shadow: var(--road-elevation-low);\n transition: transform 0.2s ease-in-out;\n transform: scaleY(0);\n transform-origin: 0 0;\n}\n\n/* ITEM\n -------------------- */\n\nroad-item {\n font-size: var(--road-button-medium);\n}\n\n.profil-item {\n display: flex;\n padding-bottom: 1rem;\n margin: 1rem;\n cursor: auto;\n border-bottom: 1px solid var(--road-outline);\n}\n\n.profil-item-info {\n display: flex;\n flex-direction: column;\n margin-left: 1rem;\n text-align: left;\n}\n\n.profil-item-info-name {\n font-weight: 700;\n}\n\n\n.profil-item road-avatar:hover{\n box-shadow: none;\n}\n\n.dropdown-item {\n display: flex;\n align-items: center;\n min-height: 40px;\n padding: 0 1rem;\n font-size: var(--road-button-medium);\n line-height: 1.5;\n color: var(--road-on-surface);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n background: var(--road-surface);\n border: none;\n outline: none;\n}\n\n.dropdown-item-border {\n border-color: var(--road-outline);\n border-bottom: 1px solid;\n}\n\n.dropdown-item road-icon{\n margin-right: 0.7rem;\n}\n\n/**\n * Hover state\n */\n\nroad-item:hover:first-child,\nroad-item.focus-visible:first-child {\n background: none;\n}\n\nroad-item:hover,\nroad-item.focus-visible {\n background: var(--road-surface-inverse);\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @slot - Element how will open the dropdown when clicked\n * @slot list - List of item values (you can add border with lines=`full` but not on the last item)\n * @slot avatar - Content of the avatar (img or First letter) <road-img> or <road-label>.\n * @slot avatarItem - Content of the avatar item (img or First letter) <road-img> or <road-label>.\n * @slot name - Content First and Last Name.\n * @slot email - Content email.\n\n\n */\n\n@Component({\n tag: 'road-profil-dropdown',\n styleUrl: 'profil-dropdown.css',\n shadow: true,\n})\nexport class Dropdown {\n\n /**\n * Set to `true` to open the dropdown menu and to `false` to close it.\n */\n @Prop({ mutable: true }) isOpen : boolean = false;\n\n /**\n * Toggle the display when clicking element in slot\n */\n private onClick = () => {\n this.isOpen = !this.isOpen;\n };\n\n render() {\n\n return (\n <details class=\"dropdown\" open={this.isOpen}>\n <summary aria-expanded={`${this.isOpen}`} tabindex=\"0\" role=\"button\" onClick={this.onClick}>\n <div class={`d-flex`}>\n <div>\n <road-avatar>\n <slot name=\"avatar\"/>\n </road-avatar>\n </div>\n </div>\n </summary>\n <div class={`dropdown-menu`}>\n <div class=\"profil-item\">\n <road-avatar size=\"sm\">\n <slot name=\"avatarItem\"/>\n </road-avatar>\n <div class=\"profil-item-info\">\n <span class=\"profil-item-info-name\">\n <slot name=\"name\"/>\n </span>\n <road-label>\n <slot name=\"email\"/>\n </road-label>\n </div>\n </div>\n <slot name=\"list\"/>\n </div>\n </details>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"road-profil-dropdown.entry.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,o/DAAo/D;;MCkBjgE,QAAQ;;;;;;IAYX,YAAO,GAAG;MAChB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC;kBAP0C,KAAK;;EAUjD,mBAAmB,CAAC,EAAc;;IAEhC,IAAK,EAAE,CAAC,MAAsB,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE;MAC1E,OAAO;KACR;;IAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;GACrB;EAED,MAAM;IAEJ,QACE,eAAS,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IACzC,gCAAwB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,IACxF,WAAK,KAAK,EAAE,QAAQ,IAClB,eACE,uBACE,YAAM,IAAI,EAAC,QAAQ,GAAE,CACT,CACV,CACF,CACE,EACV,WAAK,KAAK,EAAE,eAAe,IACzB,WAAK,KAAK,EAAC,aAAa,IACtB,mBAAa,IAAI,EAAC,IAAI,IACpB,YAAM,IAAI,EAAC,YAAY,GAAE,CACb,EACd,WAAK,KAAK,EAAC,kBAAkB,IAC3B,YAAM,KAAK,EAAC,uBAAuB,IACjC,YAAM,IAAI,EAAC,MAAM,GAAE,CACd,EACP,sBACE,YAAM,IAAI,EAAC,OAAO,GAAE,CACT,CACT,CACF,EACN,YAAM,IAAI,EAAC,MAAM,GAAE,CACf,CACE,EACV;GACH;;;;;;;","names":[],"sources":["src/components/profil-dropdown/profil-dropdown.css?tag=road-profil-dropdown&encapsulation=shadow","src/components/profil-dropdown/profil-dropdown.tsx"],"sourcesContent":["/*\n * Profil Dropdown\n *\n * Index\n * - Dropdown\n * - Dropdown menu\n */\n\n/**\n * @prop --margin-top: Top margin of the menu\n */\n\n/* PROFIL DROPDOWN\n -------------------- */\n\n:host {\n --margin-top: 0.5rem;\n display: block;\n font-size: var(--road-font-size-16);\n}\n\n.dropdown {\n position: relative;\n width: max-content;\n font-family: var(--road-font);\n}\n\n.dropdown summary {\n display: block;\n width: 3.5rem;\n cursor: pointer;\n border-radius: 3rem;\n outline: none;\n}\n\n.dropdown summary:focus,\n.dropdown summary.focus-visible,\n.dropdown summary:focus-within{\n box-shadow: 0 0 0 4px var(--road-primary-80);\n}\n\n.dropdown summary::-webkit-details-marker { /* remove native arrow */\n display: none;\n}\n\n.dropdown-button{\n position: relative;\n z-index: 1;\n height: 3.5rem;\n cursor: pointer;\n border-radius: 0.25rem;\n}\n\n.dropdown-button:hover{\n background: var(--road-grey-200);\n}\n\n/**\n * Open state\n */\n\n.dropdown[open] .dropdown-menu {\n transform: scaleY(1);\n}\n\n.dropdown[open] .dropdown-menu.direction-top {\n position: absolute;\n bottom: 0;\n left: 0;\n transform: translate3d(0, -56px, 0);\n will-change: transform;\n}\n\n/* MENU\n-------------------- */\n\n.dropdown-menu {\n position: absolute;\n top: 0;\n left: 5.5rem;\n z-index: 2;\n display: flex;\n flex-direction: column;\n min-width: 16.875rem;\n padding: 0.5rem 0;\n color: var(--road-on-surface);\n background: var(--road-surface);\n border: 1px solid;\n border-color: var(--road-outline-weak);\n border-radius: 0.25rem;\n box-shadow: var(--road-elevation-low);\n transition: transform 0.2s ease-in-out;\n transform: scaleY(0);\n transform-origin: 0 0;\n}\n\n/* ITEM\n -------------------- */\n\nroad-item {\n font-size: var(--road-button-medium);\n}\n\n.profil-item {\n display: flex;\n padding-bottom: 1rem;\n margin: 1rem;\n cursor: auto;\n border-bottom: 1px solid var(--road-outline);\n}\n\n.profil-item-info {\n display: flex;\n flex-direction: column;\n margin-left: 1rem;\n text-align: left;\n}\n\n.profil-item-info-name {\n font-weight: 700;\n}\n\n\n.profil-item road-avatar:hover{\n box-shadow: none;\n}\n\n.dropdown-item {\n display: flex;\n align-items: center;\n min-height: 40px;\n padding: 0 1rem;\n font-size: var(--road-button-medium);\n line-height: 1.5;\n color: var(--road-on-surface);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n background: var(--road-surface);\n border: none;\n outline: none;\n}\n\n.dropdown-item-border {\n border-color: var(--road-outline);\n border-bottom: 1px solid;\n}\n\n.dropdown-item road-icon{\n margin-right: 0.7rem;\n}\n\n/**\n * Hover state\n */\n\nroad-item:hover:first-child,\nroad-item.focus-visible:first-child {\n background: none;\n}\n\nroad-item:hover,\nroad-item.focus-visible {\n background: var(--road-surface-inverse);\n}\n","import { Component, h, Prop, Element, Listen } from '@stencil/core';\n\n/**\n * @slot - Element how will open the dropdown when clicked\n * @slot list - List of item values (you can add border with lines=`full` but not on the last item)\n * @slot avatar - Content of the avatar (img or First letter) <road-img> or <road-label>.\n * @slot avatarItem - Content of the avatar item (img or First letter) <road-img> or <road-label>.\n * @slot name - Content First and Last Name.\n * @slot email - Content email.\n\n\n */\n\n@Component({\n tag: 'road-profil-dropdown',\n styleUrl: 'profil-dropdown.css',\n shadow: true,\n})\nexport class Dropdown {\n\n @Element() el!: HTMLRoadProfilDropdownElement;\n\n /**\n * Set to `true` to open the dropdown menu and to `false` to close it.\n */\n @Prop({ mutable: true }) isOpen : boolean = false;\n\n /**\n * Toggle the display when clicking element in slot\n */\n private onClick = () => {\n this.isOpen = !this.isOpen;\n };\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(ev: MouseEvent) {\n // Check if the clicked element is the dropdown button\n if ((ev.target as HTMLElement).closest('road-profil-dropdown') === this.el) {\n return; // Do nothing if clicked element is the dropdown button\n }\n // Close dropdown if click is outside the dropdown\n this.isOpen = false;\n }\n\n render() {\n\n return (\n <details class=\"dropdown\" open={this.isOpen}>\n <summary aria-expanded={`${this.isOpen}`} tabindex=\"0\" role=\"button\" onClick={this.onClick}>\n <div class={`d-flex`}>\n <div>\n <road-avatar>\n <slot name=\"avatar\"/>\n </road-avatar>\n </div>\n </div>\n </summary>\n <div class={`dropdown-menu`}>\n <div class=\"profil-item\">\n <road-avatar size=\"sm\">\n <slot name=\"avatarItem\"/>\n </road-avatar>\n <div class=\"profil-item-info\">\n <span class=\"profil-item-info-name\">\n <slot name=\"name\"/>\n </span>\n <road-label>\n <slot name=\"email\"/>\n </road-label>\n </div>\n </div>\n <slot name=\"list\"/>\n </div>\n </details>\n );\n }\n\n}\n"],"version":3}
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-52302079.js';
2
2
 
3
- const progressIndicatorVerticalCss = ":host{display:block}.progress-indicator-vertical{display:flex;flex-direction:column;padding-left:0;list-style:none}";
3
+ const progressIndicatorVerticalCss = ":host{display:block}:host ul li{list-style:none}.progress-indicator-vertical{display:flex;flex-direction:column;padding-left:0;list-style:none}";
4
4
 
5
5
  const ProgressIndicatorVertical = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, null, h("nav", null, h("ul", null, h("slot", null)))));
10
+ return (h(Host, null, h("nav", null, h("ul", null, h("li", null, h("slot", null))))));
11
11
  }
12
12
  };
13
13
  ProgressIndicatorVertical.style = progressIndicatorVerticalCss;
@@ -1 +1 @@
1
- {"file":"road-progress-indicator-vertical.entry.js","mappings":";;AAAA,MAAM,4BAA4B,GAAG,qHAAqH;;MCmB7I,yBAAyB;;;;EAEjC,MAAM;IAEJ,QACE,EAAC,IAAI,QACH,eACE,cACE,eAAO,CACJ,CACD,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress-indicator-vertical/progress-indicator-vertical.css?tag=road-progress-indicator-vertical&encapsulation=shadow","src/components/progress-indicator-vertical/progress-indicator-vertical.tsx"],"sourcesContent":["/*\n * Progress Indicator Vertical\n *\n * Index\n * - Item\n * - Link\n * - Icon\n * - Title\n * - Completed\n */\n\n:host {\n display: block;\n}\n\n/* VERTICAL STEPPER\n -------------------- */\n\n.progress-indicator-vertical {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n list-style: none;\n}\n\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot - content of the stepper item, it should be road-vertical-stepper-item elements.\n * \n * if the state of the step is completed add the class `completed` on the road-vertical-stepper-item\n * \n * if the state of the step is in-progress add the class `in-progress` on the road-vertical-stepper-item\n * \n * if the state of the step is current add the class `current` on the road-vertical-stepper-item\n * \n * `<road-icon name=\"check-small\" class=\"d-block\" style=\"color: currentColor;\"></road-icon>`\n */\n\n@Component({\n tag: 'road-progress-indicator-vertical',\n styleUrl: 'progress-indicator-vertical.css',\n shadow: true,\n})\nexport class ProgressIndicatorVertical {\n\n render() {\n\n return (\n <Host>\n <nav>\n <ul>\n <slot/>\n </ul>\n </nav>\n </Host>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"road-progress-indicator-vertical.entry.js","mappings":";;AAAA,MAAM,4BAA4B,GAAG,iJAAiJ;;MCmBzK,yBAAyB;;;;EAEjC,MAAM;IAEJ,QACE,EAAC,IAAI,QACH,eACE,cACC,cACE,eAAO,CACH,CACF,CACD,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress-indicator-vertical/progress-indicator-vertical.css?tag=road-progress-indicator-vertical&encapsulation=shadow","src/components/progress-indicator-vertical/progress-indicator-vertical.tsx"],"sourcesContent":["/*\n * Progress Indicator Vertical\n *\n * Index\n * - Item\n * - Link\n * - Icon\n * - Title\n * - Completed\n */\n\n:host {\n display: block;\n}\n\n:host ul li{\n list-style: none;\n}\n\n\n/* VERTICAL STEPPER\n -------------------- */\n\n.progress-indicator-vertical {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n list-style: none;\n}\n\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot - content of the stepper item, it should be road-vertical-stepper-item elements.\n * \n * if the state of the step is completed add the class `completed` on the road-vertical-stepper-item\n * \n * if the state of the step is in-progress add the class `in-progress` on the road-vertical-stepper-item\n * \n * if the state of the step is current add the class `current` on the road-vertical-stepper-item\n * \n * `<road-icon name=\"check-small\" class=\"d-block\" style=\"color: currentColor;\"></road-icon>`\n */\n\n@Component({\n tag: 'road-progress-indicator-vertical',\n styleUrl: 'progress-indicator-vertical.css',\n shadow: true,\n})\nexport class ProgressIndicatorVertical {\n\n render() {\n\n return (\n <Host>\n <nav>\n <ul>\n <li>\n <slot/>\n </li>\n </ul>\n </nav>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-52302079.js';
2
2
 
3
- const progressTrackerCss = ":host{display:block}:host ul{padding-left:0}.progress-tracker{display:flex;flex-direction:column;padding-left:0;list-style:none}";
3
+ const progressTrackerCss = ":host{display:block}:host ul{padding-left:0}:host ul li{list-style:none}.progress-tracker{display:flex;flex-direction:column;padding-left:0;list-style:none}";
4
4
 
5
5
  const ProgressTracker = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, null, h("nav", null, h("ul", null, h("slot", null)))));
10
+ return (h(Host, null, h("nav", null, h("ul", null, h("li", null, h("slot", null))))));
11
11
  }
12
12
  };
13
13
  ProgressTracker.style = progressTrackerCss;
@@ -1 +1 @@
1
- {"file":"road-progress-tracker.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,kIAAkI;;MCgBhJ,eAAe;;;;EAEvB,MAAM;IAEJ,QACE,EAAC,IAAI,QACH,eACE,cACE,eAAO,CACJ,CACD,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress-tracker/progress-tracker.css?tag=road-progress-tracker&encapsulation=shadow","src/components/progress-tracker/progress-tracker.tsx"],"sourcesContent":["/*\n * Progress tracker\n *\n * Index\n * - Item\n * - Link\n * - Icon\n * - Title\n * - Completed\n */\n\n:host {\n display: block;\n}\n\n:host ul{\n padding-left: 0;\n}\n\n/* PROGRESS TRACKER\n -------------------- */\n\n.progress-tracker {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n list-style: none;\n}\n\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot - content of the progress stepper tracker item, it should be road-progress-tracker-item elements.\n * \n * if the state of the step is completed add the class `completed` on the road-progress-tracker-item\n * if the state of the step is in progress add the class `in-progress` on the road-progress-tracker-item\n * if the state of the step is current add the class `current` on the road-progress-tracker-item\n\n */\n\n@Component({\n tag: 'road-progress-tracker',\n styleUrl: 'progress-tracker.css',\n shadow: true,\n})\nexport class ProgressTracker {\n\n render() {\n\n return (\n <Host>\n <nav>\n <ul>\n <slot/>\n </ul>\n </nav>\n </Host>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"road-progress-tracker.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,8JAA8J;;MCgB5K,eAAe;;;;EAEvB,MAAM;IAEJ,QACE,EAAC,IAAI,QACH,eACE,cACG,cACE,eAAO,CACJ,CACH,CACD,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress-tracker/progress-tracker.css?tag=road-progress-tracker&encapsulation=shadow","src/components/progress-tracker/progress-tracker.tsx"],"sourcesContent":["/*\n * Progress tracker\n *\n * Index\n * - Item\n * - Link\n * - Icon\n * - Title\n * - Completed\n */\n\n:host {\n display: block;\n}\n\n:host ul{\n padding-left: 0;\n}\n\n:host ul li{\n list-style: none;\n}\n\n/* PROGRESS TRACKER\n -------------------- */\n\n.progress-tracker {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n list-style: none;\n}\n\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot - content of the progress stepper tracker item, it should be road-progress-tracker-item elements.\n * \n * if the state of the step is completed add the class `completed` on the road-progress-tracker-item\n * if the state of the step is in progress add the class `in-progress` on the road-progress-tracker-item\n * if the state of the step is current add the class `current` on the road-progress-tracker-item\n\n */\n\n@Component({\n tag: 'road-progress-tracker',\n styleUrl: 'progress-tracker.css',\n shadow: true,\n})\nexport class ProgressTracker {\n\n render() {\n\n return (\n <Host>\n <nav>\n <ul>\n <li>\n <slot/>\n </li>\n </ul>\n </nav>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -19,7 +19,7 @@ const ProgressBar = class {
19
19
  const fullwidth = this.fullwidth ? 'progress-element-info-full-width' : 'progress-element-info';
20
20
  const light = this.light ? 'progress progress-light' : 'progress';
21
21
  const animation = this.animation ? 'animation' : '';
22
- return (h(Host, { class: "progress-element" }, h("div", { class: `${light} progress-${this.color} ${animation}` }, h("div", { class: "progress-bar", role: "progressbar", style: { width: `${this.value}%` }, "aria-valuenow": this.value, "aria-valuemin": "0", "aria-valuemax": "100" })), h("div", { class: `${fullwidth}` }, h("span", { class: "progress-element-label" }, this.label), this.showstep && h("span", { class: "progress-element-step" }, valueRound, "/", this.numbersteps))));
22
+ return (h(Host, { class: "progress-element" }, h("div", { class: `${light} progress-${this.color} ${animation}` }, h("div", { class: "progress-bar", role: "progressbar", style: { width: `${this.value}%` }, "aria-valuenow": this.value, "aria-valuemin": "0", "aria-valuemax": "100", "aria-label": "progress bar" })), h("div", { class: `${fullwidth}` }, h("span", { class: "progress-element-label" }, this.label), this.showstep && h("span", { class: "progress-element-step" }, valueRound, "/", this.numbersteps))));
23
23
  }
24
24
  };
25
25
  ProgressBar.style = progressCss;
@@ -1 +1 @@
1
- {"file":"road-progress.entry.js","mappings":";;AAAA,MAAM,WAAW,GAAG,y4CAAy4C;;MCOh5C,WAAW;;;iBAME,CAAC;uBAKsB,GAAG;iBAKvB,EAAE;oBAKD,KAAK;qBAKF,KAAK;iBAKX,KAAK;qBAKA,KAAK;iBAK6D,SAAS;;EAEzG,MAAM;IAEJ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,kCAAkC,GAAG,uBAAuB,CAAC;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,yBAAyB,GAAG,UAAU,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;IAEpD,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB,IAC5B,WAAK,KAAK,EAAE,GAAG,KAAK,aAAa,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,IACxD,WAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,mBAAiB,IAAI,CAAC,KAAK,mBAAgB,GAAG,mBAAe,KAAK,GAAO,CACpJ,EACN,WAAK,KAAK,EAAE,GAAG,SAAS,EAAE,IACxB,YAAM,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAC,KAAK,CAAQ,EACvD,IAAI,CAAC,QAAQ,IAAI,YAAM,KAAK,EAAC,uBAAuB,IAAE,UAAU,OAAG,IAAI,CAAC,WAAW,CAAQ,CACxF,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress/progress.css?tag=road-progress&encapsulation=shadow","src/components/progress/progress.tsx"],"sourcesContent":["/*\n * Progress\n *\n * Index\n * - Progress\n * - Progress Bar\n * - Colors\n */\n\n/**\n * @prop --border-radius: Border radius of the progress\n */\n\n/* PROGRESS\n -------------------- */\n\n.progress{\n --border-radius: 0.25rem;\n\n display: flex;\n height: 0.25rem;\n overflow: hidden;\n font-size: var(--road-label-small);\n background-color: var(--road-surface-disabled);\n border-radius: var(--border-radius);\n}\n\n.progress-light{\n background-color: var(--road-overlay-inverse);\n}\n\n\n.progress-element-info {\n display: flex;\n justify-content: space-between;\n margin-top: 0.5rem;\n}\n\n.progress-element-info-full-width {\n display: flex;\n justify-content: space-between;\n padding: 0 1rem;\n margin-top: 0.5rem;\n}\n\n.progress-element-label {\n font-size: var(--road-label-medium);\n text-align: left;\n}\n\n.progress-element-step {\n font-size: var(--road-label-medium);\n text-align: right;\n}\n\n/* PROGRESS BAR\n -------------------- */\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n text-align: center;\n white-space: nowrap;\n transition: width 0.6s ease;\n}\n\n/* COLORS\n -------------------- */\n\n.progress.progress-primary .progress-bar {\n background: var(--road-primary);\n}\n\n.progress.progress-secondary .progress-bar {\n background: var(--road-secondary);\n}\n\n.progress.progress-info .progress-bar {\n background: var(--road-info-surface-inverse);\n}\n\n.progress.progress-success .progress-bar {\n background: var(--road-success-surface-inverse);\n}\n\n.progress.progress-warning .progress-bar {\n background: var(--road-warning-surface-inverse);\n}\n\n.progress.progress-danger .progress-bar {\n background: var(--road-danger-surface-inverse);\n}\n\n.progress.progress-rating .progress-bar {\n background: var(--road-rating);\n}\n\n\n/* ANIMATION\n -------------------- */\n\n.animation .progress-bar{\n animation: load 5s normal forwards;\n}\n\n@keyframes load {\n\n 0% {\n width: 0;\n }\n\n 100% {\n width: 100%;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'road-progress',\n styleUrl: 'progress.css',\n shadow: true,\n})\nexport class ProgressBar {\n\n /**\n * The value determines how much of the active bar should display.\n * The value should be between [0, 100].\n */\n @Prop() value: number = 0;\n\n /**\n * The number of steps should be 4 or 5.\n */\n @Prop() numbersteps?: '4' | '5' | 'default' = '4';\n\n /**\n * Label display in progress bar\n */\n @Prop() label: string = '';\n\n /**\n * Show step\n */\n @Prop() showstep: boolean = false;\n\n /**\n * Animation progress bar\n */\n @Prop() animation: boolean = false;\n\n /**\n * Light progress background\n */\n @Prop() light: boolean = false;\n\n /**\n * Add padding if the progress is full width\n */\n @Prop() fullwidth: boolean = false;\n\n /**\n * The color to use from your application's color palette.\n */\n @Prop() color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'rating' = 'primary';\n\n render() {\n\n const valueRound = Math.round(this.value/5/5);\n const fullwidth = this.fullwidth ? 'progress-element-info-full-width' : 'progress-element-info';\n const light = this.light ? 'progress progress-light' : 'progress';\n const animation = this.animation ? 'animation' : '';\n\n return (\n <Host class=\"progress-element\">\n <div class={`${light} progress-${this.color} ${animation}`}>\n <div class=\"progress-bar\" role=\"progressbar\" style={{ width: `${this.value}%` }} aria-valuenow={this.value} aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n </div>\n <div class={`${fullwidth}`}>\n <span class=\"progress-element-label\">{this.label}</span>\n {this.showstep && <span class=\"progress-element-step\">{valueRound}/{this.numbersteps}</span>}\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"road-progress.entry.js","mappings":";;AAAA,MAAM,WAAW,GAAG,y4CAAy4C;;MCOh5C,WAAW;;;iBAME,CAAC;uBAKsB,GAAG;iBAKvB,EAAE;oBAKD,KAAK;qBAKF,KAAK;iBAKX,KAAK;qBAKA,KAAK;iBAK6D,SAAS;;EAEzG,MAAM;IAEJ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,kCAAkC,GAAG,uBAAuB,CAAC;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,yBAAyB,GAAG,UAAU,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;IAEpD,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB,IAC5B,WAAK,KAAK,EAAE,GAAG,KAAK,aAAa,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,IACxD,WAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,mBAAiB,IAAI,CAAC,KAAK,mBAAgB,GAAG,mBAAe,KAAK,gBAAY,cAAc,GAAO,CAC9K,EACN,WAAK,KAAK,EAAE,GAAG,SAAS,EAAE,IACxB,YAAM,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAC,KAAK,CAAQ,EACvD,IAAI,CAAC,QAAQ,IAAI,YAAM,KAAK,EAAC,uBAAuB,IAAE,UAAU,OAAG,IAAI,CAAC,WAAW,CAAQ,CACxF,CACD,EACP;GACH;;;;;;","names":[],"sources":["src/components/progress/progress.css?tag=road-progress&encapsulation=shadow","src/components/progress/progress.tsx"],"sourcesContent":["/*\n * Progress\n *\n * Index\n * - Progress\n * - Progress Bar\n * - Colors\n */\n\n/**\n * @prop --border-radius: Border radius of the progress\n */\n\n/* PROGRESS\n -------------------- */\n\n.progress{\n --border-radius: 0.25rem;\n\n display: flex;\n height: 0.25rem;\n overflow: hidden;\n font-size: var(--road-label-small);\n background-color: var(--road-surface-disabled);\n border-radius: var(--border-radius);\n}\n\n.progress-light{\n background-color: var(--road-overlay-inverse);\n}\n\n\n.progress-element-info {\n display: flex;\n justify-content: space-between;\n margin-top: 0.5rem;\n}\n\n.progress-element-info-full-width {\n display: flex;\n justify-content: space-between;\n padding: 0 1rem;\n margin-top: 0.5rem;\n}\n\n.progress-element-label {\n font-size: var(--road-label-medium);\n text-align: left;\n}\n\n.progress-element-step {\n font-size: var(--road-label-medium);\n text-align: right;\n}\n\n/* PROGRESS BAR\n -------------------- */\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n text-align: center;\n white-space: nowrap;\n transition: width 0.6s ease;\n}\n\n/* COLORS\n -------------------- */\n\n.progress.progress-primary .progress-bar {\n background: var(--road-primary);\n}\n\n.progress.progress-secondary .progress-bar {\n background: var(--road-secondary);\n}\n\n.progress.progress-info .progress-bar {\n background: var(--road-info-surface-inverse);\n}\n\n.progress.progress-success .progress-bar {\n background: var(--road-success-surface-inverse);\n}\n\n.progress.progress-warning .progress-bar {\n background: var(--road-warning-surface-inverse);\n}\n\n.progress.progress-danger .progress-bar {\n background: var(--road-danger-surface-inverse);\n}\n\n.progress.progress-rating .progress-bar {\n background: var(--road-rating);\n}\n\n\n/* ANIMATION\n -------------------- */\n\n.animation .progress-bar{\n animation: load 5s normal forwards;\n}\n\n@keyframes load {\n\n 0% {\n width: 0;\n }\n\n 100% {\n width: 100%;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'road-progress',\n styleUrl: 'progress.css',\n shadow: true,\n})\nexport class ProgressBar {\n\n /**\n * The value determines how much of the active bar should display.\n * The value should be between [0, 100].\n */\n @Prop() value: number = 0;\n\n /**\n * The number of steps should be 4 or 5.\n */\n @Prop() numbersteps?: '4' | '5' | 'default' = '4';\n\n /**\n * Label display in progress bar\n */\n @Prop() label: string = '';\n\n /**\n * Show step\n */\n @Prop() showstep: boolean = false;\n\n /**\n * Animation progress bar\n */\n @Prop() animation: boolean = false;\n\n /**\n * Light progress background\n */\n @Prop() light: boolean = false;\n\n /**\n * Add padding if the progress is full width\n */\n @Prop() fullwidth: boolean = false;\n\n /**\n * The color to use from your application's color palette.\n */\n @Prop() color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'rating' = 'primary';\n\n render() {\n\n const valueRound = Math.round(this.value/5/5);\n const fullwidth = this.fullwidth ? 'progress-element-info-full-width' : 'progress-element-info';\n const light = this.light ? 'progress progress-light' : 'progress';\n const animation = this.animation ? 'animation' : '';\n\n return (\n <Host class=\"progress-element\">\n <div class={`${light} progress-${this.color} ${animation}`}>\n <div class=\"progress-bar\" role=\"progressbar\" style={{ width: `${this.value}%` }} aria-valuenow={this.value} aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"progress bar\"></div>\n </div>\n <div class={`${fullwidth}`}>\n <span class=\"progress-element-label\">{this.label}</span>\n {this.showstep && <span class=\"progress-element-step\">{valueRound}/{this.numbersteps}</span>}\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement } from './index-52302079.js';
2
- import { h as navigationAddMoreSolid, i as navigationAddLessSolid } from './index-891decf5.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-52302079.js';
2
+ import { h as navigationAddLessSolid, i as navigationAddMoreSolid } from './index-7a0158a4.js';
3
3
 
4
- const rangeCss = ".sc-road-range-h{display:block}.form-group.sc-road-range{width:100%}.form-range.sc-road-range{position:relative;display:flex;flex-direction:column;width:100%;margin-bottom:6px}.form-range-input.sc-road-range{position:relative;z-index:1;width:100%;background:transparent;outline:0;-webkit-appearance:none;appearance:none}.form-range.sc-road-range>output.sc-road-range::after{display:block;font-size:var(--road-label-medium);text-align:right;content:counter(variable);counter-reset:variable var(--value)}.form-range-progress.sc-road-range{position:relative;z-index:0;display:block;width:100%;margin-top:-1rem}.form-range-input.sc-road-range::-webkit-slider-runnable-track{border:0;-webkit-appearance:none;appearance:none}.form-range-input.sc-road-range::-moz-range-track{height:0.5rem;border:0;appearance:none}.form-range-progress.sc-road-range::before{display:block;height:0.5rem;content:\"\";background-color:var(--road-on-surface-disabled);border:0;border-radius:1.125rem}.form-range-progress.sc-road-range::after{position:absolute;top:0;right:0;left:0;display:block;width:calc((var(--value) * 100%) / var(--max));height:0.5rem;content:\"\";background:var(--road-primary);border-radius:1.125rem}.form-range-input.sc-road-range::-webkit-slider-thumb{position:relative;z-index:1;width:1.625rem;height:1.625rem;cursor:grab;background:var(--road-surface);border:none;border-radius:1.625rem;box-shadow:0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);-webkit-appearance:none;appearance:none}.form-range-input.sc-road-range::-moz-range-thumb{position:relative;z-index:1;box-sizing:border-box;width:1.625rem;height:1.625rem;margin-top:-0.625rem;cursor:grab;background:var(--road-surface);border:none;border-radius:1.625rem;box-shadow:0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);appearance:none}.focus-visible.sc-road-range-h .form-range-input.sc-road-range::-webkit-slider-thumb,.sc-road-range-h:active .form-range-input.sc-road-range::-webkit-slider-thumb{background:var(--road-input-surface-variant);border:0.5rem solid var(--road-grey-100-new)}.focus-visible.sc-road-range-h .form-range-input.sc-road-range::-moz-range-thumb,.sc-road-range-h:active .form-range-input.sc-road-range::-moz-range-thumb{background:var(--road-input-surface-variant);border:0.5rem solid var(--road-grey-100-new)}.sc-road-range-s>datalist{display:flex;justify-content:space-between}.sc-road-range-s>datalist option{width:32px;margin:0;font-size:var(--road-label-medium);text-align:center}";
4
+ const rangeCss = ".sc-road-range-h{display:block}.form-group.sc-road-range{width:100%}.form-range.sc-road-range{position:relative;display:flex;flex-direction:column;width:100%;margin-bottom:6px}.form-range-input.sc-road-range{position:relative;z-index:1;width:100%;background:transparent;outline:0;-webkit-appearance:none;appearance:none}.form-range.sc-road-range>output.sc-road-range::after{display:block;font-size:var(--road-label-medium);text-align:right;content:counter(variable);counter-reset:variable var(--value)}.form-range-label.sc-road-range{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.form-range-progress.sc-road-range{position:relative;z-index:0;display:block;width:100%;margin-top:-1rem}.form-range-input.sc-road-range::-webkit-slider-runnable-track{border:0;-webkit-appearance:none;appearance:none}.form-range-input.sc-road-range::-moz-range-track{height:0.5rem;border:0;appearance:none}.form-range-progress.sc-road-range::before{display:block;height:0.5rem;content:\"\";background-color:var(--road-on-surface-disabled);border:0;border-radius:1.125rem}.form-range-progress.sc-road-range::after{position:absolute;top:0;right:0;left:0;display:block;width:calc((var(--value) * 100%) / var(--max));height:0.5rem;content:\"\";background:var(--road-primary);border-radius:1.125rem}.form-range-input.sc-road-range::-webkit-slider-thumb{position:relative;z-index:1;width:1.625rem;height:1.625rem;cursor:grab;background:var(--road-surface);border:none;border-radius:1.625rem;box-shadow:0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);-webkit-appearance:none;appearance:none}.form-range-input.sc-road-range::-moz-range-thumb{position:relative;z-index:1;box-sizing:border-box;width:1.625rem;height:1.625rem;margin-top:-0.625rem;cursor:grab;background:var(--road-surface);border:none;border-radius:1.625rem;box-shadow:0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);appearance:none}.focus-visible.sc-road-range-h .form-range-input.sc-road-range::-webkit-slider-thumb,.sc-road-range-h:active .form-range-input.sc-road-range::-webkit-slider-thumb,.sc-road-range-h:focus .form-range-input.sc-road-range::-webkit-slider-thumb{background:var(--road-input-surface-variant);border:0.5rem solid var(--road-grey-100-new)}.focus-visible.sc-road-range-h .form-range-input.sc-road-range::-moz-range-thumb,.sc-road-range-h:active .form-range-input.sc-road-range::-moz-range-thumb,.sc-road-range-h:focus .form-range-input.sc-road-range::-moz-range-thumb{background:var(--road-input-surface-variant);border:0.5rem solid var(--road-grey-100-new)}.sc-road-range-s>datalist{display:flex;justify-content:space-between}.sc-road-range-s>datalist option{width:32px;margin:0;font-size:var(--road-label-medium);text-align:center}";
5
5
 
6
6
  const Range = class {
7
7
  constructor(hostRef) {
@@ -38,10 +38,34 @@ const Range = class {
38
38
  ? this.value.toString()
39
39
  : (this.value || '').toString();
40
40
  }
41
+ handleFocus() {
42
+ this.el.classList.add('focus-visible');
43
+ }
44
+ handleBlur() {
45
+ this.el.classList.remove('focus-visible');
46
+ }
47
+ componentDidLoad() {
48
+ // Cacher le label pour accessibilité
49
+ const label = this.el.querySelector('.form-label');
50
+ const input = this.el.querySelector('.form-control.sc-road-input');
51
+ if (label) {
52
+ label.style.clip = 'rect(0 0 0 0)';
53
+ label.style.border = '0';
54
+ label.style.height = '1px';
55
+ label.style.left = '0';
56
+ label.style.margin = '-1px';
57
+ label.style.overflow = 'hidden';
58
+ label.style.padding = '0';
59
+ label.style.position = 'absolute';
60
+ label.style.top = '0';
61
+ label.style.width = '1px';
62
+ input.style.padding = '0 1rem 0';
63
+ }
64
+ }
41
65
  render() {
42
66
  const value = this.getValue();
43
67
  const datalist = this.showLabels !== undefined ? `tickmarks` : '';
44
- return (h("div", { class: "form-group d-flex align-items-end" }, this.showTick && h("road-icon", { icon: navigationAddLessSolid, class: "mr-8", size: 'sm' }), h("div", { class: "form-range", style: { '--min:': this.min, '--max': this.max, '--value': value } }, this.showValue && h("output", null), this.showLabels && h("slot", { name: "datalist" }), h("input", { type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist }), h("div", { class: "form-range-progress" })), this.showTick && h("road-icon", { icon: navigationAddMoreSolid, class: "ml-8", size: 'sm' })));
68
+ return (h(Host, { tabindex: "0" }, h("div", { class: "form-group d-flex align-items-end" }, this.showTick && h("road-icon", { icon: navigationAddLessSolid, class: "mr-8", size: 'sm' }), h("div", { class: "form-range", style: { '--min:': this.min, '--max': this.max, '--value': value } }, this.showValue && h("output", null), this.showLabels && h("slot", { name: "datalist" }), h("input", { 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" }), h("label", { class: "form-range-label" }, "Valeur"), h("div", { class: "form-range-progress" })), this.showTick && h("road-icon", { icon: navigationAddMoreSolid, class: "ml-8", size: 'sm' }))));
45
69
  }
46
70
  get el() { return getElement(this); }
47
71
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"road-range.entry.js","mappings":";;;AAAA,MAAM,QAAQ,GAAG,o5EAAo5E;;MCyBx5E,KAAK;;;;;IAuER,YAAO,GAAG,CAAC,EAAS;MAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,MAAiC,CAAC;MACnD,IAAI,KAAK,EAAE;QACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;OAChC;MACD,IAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;QAClD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;OACvD;KACF,CAAC;mBAxEwB,cAAc,QAAQ,EAAE,EAAE;iBAKM,EAAE;;;;qBAqB/B,KAAK;oBAKN,KAAK;sBAKA,KAAK;;;;;EAM5B,YAAY;IACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;GAC1F;EAaO,QAAQ;IACd,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QACrB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;GACnC;EAYD,MAAM;IACJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;IAElE,QACE,WAAK,KAAK,EAAC,mCAAmC,IAC3C,IAAI,CAAC,QAAQ,IAAI,iBAAW,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAa,EAC9F,WAAK,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAC,IACrF,IAAI,CAAC,SAAS,IAAI,iBAAiB,EACnC,IAAI,CAAC,UAAU,IAAI,YAAM,IAAI,EAAC,UAAU,GAAE,EAC3C,aACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,kBAAkB,EACxB,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,QAAQ,GAEd,EACF,WAAK,KAAK,EAAC,qBAAqB,GAAO,CACnC,EACL,IAAI,CAAC,QAAQ,IAAI,iBAAW,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAa,CAC1F,EACN;GACH;;;;;;AAIH,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;;","names":[],"sources":["src/components/range/range.css?tag=road-range&encapsulation=scoped","src/components/range/range.tsx"],"sourcesContent":["/*\n * Range\n *\n *\n * Index\n * - Input\n * - Value\n * - Slider\n * - Progress\n * - Cursor\n */\n\n:host {\n display: block;\n}\n\n.form-group{\n width: 100%;\n}\n\n.form-range {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-bottom: 6px;\n}\n\n/* INPUT\n -------------------- */\n\n.form-range-input {\n position: relative;\n z-index: 1;\n width: 100%;\n background: transparent;\n outline: 0;\n appearance: none;\n}\n\n/* VALUE\n -------------------- */\n\n.form-range > output::after {\n display: block;\n font-size: var(--road-label-medium);\n text-align: right;\n content: counter(variable);\n counter-reset: variable var(--value);\n}\n\n/* SLIDER\n -------------------- */\n\n.form-range-progress {\n position: relative;\n z-index: 0;\n display: block;\n width: 100%;\n margin-top: -1rem;\n}\n\n.form-range-input::-webkit-slider-runnable-track {\n border: 0;\n appearance: none;\n}\n\n.form-range-input::-moz-range-track {\n height: 0.5rem;\n border: 0;\n appearance: none;\n}\n\n.form-range-progress::before {\n display: block;\n height: 0.5rem;\n content: \"\";\n background-color: var(--road-on-surface-disabled);\n border: 0;\n border-radius: 1.125rem;\n}\n\n/* PROGRESS\n -------------------- */\n\n.form-range-progress::after {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: calc((var(--value) * 100%) / var(--max));\n height: 0.5rem;\n content: \"\";\n background: var(--road-primary);\n border-radius: 1.125rem;\n}\n\n/* CURSOR\n-------------------- */\n\n.form-range-input::-webkit-slider-thumb {\n position: relative;\n z-index: 1;\n width: 1.625rem;\n height: 1.625rem;\n cursor: grab;\n background: var(--road-surface);\n border: none;\n border-radius: 1.625rem;\n box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);\n appearance: none;\n}\n\n.form-range-input::-moz-range-thumb {\n position: relative;\n z-index: 1;\n box-sizing: border-box;\n width: 1.625rem;\n height: 1.625rem;\n margin-top: -0.625rem;\n cursor: grab;\n background: var(--road-surface);\n border: none;\n border-radius: 1.625rem;\n box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);\n appearance: none;\n}\n\n/**\n * Focus state\n */\n\n:host(.focus-visible) .form-range-input::-webkit-slider-thumb,\n:host(:active) .form-range-input::-webkit-slider-thumb {\n background: var(--road-input-surface-variant);\n border: 0.5rem solid var(--road-grey-100-new);\n}\n\n:host(.focus-visible) .form-range-input::-moz-range-thumb,\n:host(:active) .form-range-input::-moz-range-thumb {\n background: var(--road-input-surface-variant);\n border: 0.5rem solid var(--road-grey-100-new);\n}\n\n/* DATALIST\n -------------------- */\n\n::slotted(datalist) {\n display: flex;\n justify-content: space-between;\n}\n\n::slotted(datalist) option {\n width: 32px;\n margin: 0;\n font-size: var(--road-label-medium);\n text-align: center;\n}\n\n","import { Component, h, Element, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { navigationAddLessSolid, navigationAddMoreSolid } from '../../../icons';\n\n/**\n * @slot datalist - list of labels. also put show-labels=\"true\" and max=\"10\" for this exemple\n * `<datalist id=\"tickmarks\" slot=\"datalist\" class=\"tickmarks\">`\n `<option value=\"0\" label=\"0%\"></option>`\n `<option value=\"10\" label=\"10%\"></option>`\n `<option value=\"20\" label=\"20%\"></option>`\n `<option value=\"30\" label=\"30%\"></option>`\n `<option value=\"40\" label=\"40%\"></option>`\n `<option value=\"50\" label=\"50%\"></option>`\n `<option value=\"60\" label=\"60%\"></option>`\n `<option value=\"70\" label=\"70%\"></option>`\n `<option value=\"80\" label=\"80%\"></option>`\n `<option value=\"90\" label=\"90%\"></option>`\n `<option value=\"100\" label=\"100%\"></option>`\n `</datalist>`\n */\n\n@Component({\n tag: 'road-range',\n styleUrl: 'range.css',\n scoped: true,\n})\nexport class Range {\n\n @Element() el!: HTMLRoadRangeElement;\n\n /**\n * The id of range\n */\n @Prop() rangeId: string = `road-range-${rangeIds++}`;\n\n /**\n * The value of the range.\n */\n @Prop({ mutable: true }) value?: string | number | null = '';\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min!: string;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max!: string;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * Display the current value of the range\n */\n @Prop() showValue: boolean = false;\n\n /**\n * Display Tick of the range\n */\n @Prop() showTick: boolean = false;\n\n /**\n * Display labels of the range\n */\n @Prop() showLabels: boolean = false;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.roadchange.emit({ value: this.value == null ? this.value : this.value.toString() });\n this.roadChange.emit({ value: this.value == null ? this.value : this.value.toString() });\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 getValue(): string {\n return typeof this.value === 'number'\n ? this.value.toString()\n : (this.value || '').toString();\n }\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n if(this.value !== null && this.value !== undefined) {\n this.el.style.setProperty('--value', `${this.value}`);\n }\n };\n\n render() {\n const value = this.getValue();\n const datalist = this.showLabels !== undefined ? `tickmarks` : '';\n\n return (\n <div class=\"form-group d-flex align-items-end\">\n {this.showTick && <road-icon icon={navigationAddLessSolid} class=\"mr-8\" size='sm'></road-icon>}\n <div class=\"form-range\" style={{'--min:': this.min, '--max': this.max, '--value': value}}>\n {this.showValue && <output></output>}\n {this.showLabels && <slot name=\"datalist\"/>}\n <input\n type=\"range\"\n class=\"form-range-input\"\n id={this.rangeId}\n min={this.min}\n max={this.max}\n value={value}\n onInput={this.onInput}\n list={datalist}\n \n />\n <div class=\"form-range-progress\"></div>\n </div>\n {this.showTick && <road-icon icon={navigationAddMoreSolid} class=\"ml-8\" size='sm'></road-icon>}\n </div>\n );\n }\n\n}\n\nlet rangeIds = 0;\n"],"version":3}
1
+ {"file":"road-range.entry.js","mappings":"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","names":[],"sources":["src/components/range/range.css?tag=road-range&encapsulation=scoped","src/components/range/range.tsx"],"sourcesContent":["/*\n * Range\n *\n *\n * Index\n * - Input\n * - Value\n * - Slider\n * - Progress\n * - Cursor\n */\n\n:host {\n display: block;\n}\n\n.form-group{\n width: 100%;\n}\n\n.form-range {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-bottom: 6px;\n}\n\n/* INPUT\n -------------------- */\n\n.form-range-input {\n position: relative;\n z-index: 1;\n width: 100%;\n background: transparent;\n outline: 0;\n appearance: none;\n}\n\n/* VALUE\n -------------------- */\n\n.form-range > output::after {\n display: block;\n font-size: var(--road-label-medium);\n text-align: right;\n content: counter(variable);\n counter-reset: variable var(--value);\n}\n\n/* SLIDER\n -------------------- */\n\n.form-range-label {\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n border: 0;\n}\n\n.form-range-progress {\n position: relative;\n z-index: 0;\n display: block;\n width: 100%;\n margin-top: -1rem;\n}\n\n.form-range-input::-webkit-slider-runnable-track {\n border: 0;\n appearance: none;\n}\n\n.form-range-input::-moz-range-track {\n height: 0.5rem;\n border: 0;\n appearance: none;\n}\n\n.form-range-progress::before {\n display: block;\n height: 0.5rem;\n content: \"\";\n background-color: var(--road-on-surface-disabled);\n border: 0;\n border-radius: 1.125rem;\n}\n\n/* PROGRESS\n -------------------- */\n\n.form-range-progress::after {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: calc((var(--value) * 100%) / var(--max));\n height: 0.5rem;\n content: \"\";\n background: var(--road-primary);\n border-radius: 1.125rem;\n}\n\n/* CURSOR\n-------------------- */\n\n.form-range-input::-webkit-slider-thumb {\n position: relative;\n z-index: 1;\n width: 1.625rem;\n height: 1.625rem;\n cursor: grab;\n background: var(--road-surface);\n border: none;\n border-radius: 1.625rem;\n box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);\n appearance: none;\n}\n\n.form-range-input::-moz-range-thumb {\n position: relative;\n z-index: 1;\n box-sizing: border-box;\n width: 1.625rem;\n height: 1.625rem;\n margin-top: -0.625rem;\n cursor: grab;\n background: var(--road-surface);\n border: none;\n border-radius: 1.625rem;\n box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24);\n appearance: none;\n}\n\n/**\n * Focus state\n */\n\n:host(.focus-visible) .form-range-input::-webkit-slider-thumb,\n:host(:active) .form-range-input::-webkit-slider-thumb,\n:host(:focus) .form-range-input::-webkit-slider-thumb {\n background: var(--road-input-surface-variant);\n border: 0.5rem solid var(--road-grey-100-new);\n}\n\n:host(.focus-visible) .form-range-input::-moz-range-thumb,\n:host(:active) .form-range-input::-moz-range-thumb,\n:host(:focus) .form-range-input::-moz-range-thumb {\n background: var(--road-input-surface-variant);\n border: 0.5rem solid var(--road-grey-100-new);\n}\n\n/* DATALIST\n -------------------- */\n\n::slotted(datalist) {\n display: flex;\n justify-content: space-between;\n}\n\n::slotted(datalist) option {\n width: 32px;\n margin: 0;\n font-size: var(--road-label-medium);\n text-align: center;\n}\n\n","import { Component, h, Element, Prop, Event, Host, EventEmitter, Watch, Listen } from '@stencil/core';\nimport { navigationAddLessSolid, navigationAddMoreSolid } from '../../../icons';\n\n/**\n * @slot datalist - list of labels. also put show-labels=\"true\" and max=\"10\" for this exemple\n * `<datalist id=\"tickmarks\" slot=\"datalist\" class=\"tickmarks\">`\n `<option value=\"0\" label=\"0%\"></option>`\n `<option value=\"10\" label=\"10%\"></option>`\n `<option value=\"20\" label=\"20%\"></option>`\n `<option value=\"30\" label=\"30%\"></option>`\n `<option value=\"40\" label=\"40%\"></option>`\n `<option value=\"50\" label=\"50%\"></option>`\n `<option value=\"60\" label=\"60%\"></option>`\n `<option value=\"70\" label=\"70%\"></option>`\n `<option value=\"80\" label=\"80%\"></option>`\n `<option value=\"90\" label=\"90%\"></option>`\n `<option value=\"100\" label=\"100%\"></option>`\n `</datalist>`\n */\n\n@Component({\n tag: 'road-range',\n styleUrl: 'range.css',\n scoped: true,\n})\nexport class Range {\n\n @Element() el!: HTMLRoadRangeElement;\n\n /**\n * The id of range\n */\n @Prop() rangeId: string = `road-range-${rangeIds++}`;\n\n /**\n * The value of the range.\n */\n @Prop({ mutable: true }) value?: string | number | null = '';\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min!: string;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max!: string;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * Display the current value of the range\n */\n @Prop() showValue: boolean = false;\n\n /**\n * Display Tick of the range\n */\n @Prop() showTick: boolean = false;\n\n /**\n * Display labels of the range\n */\n @Prop() showLabels: boolean = false;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.roadchange.emit({ value: this.value == null ? this.value : this.value.toString() });\n this.roadChange.emit({ value: this.value == null ? this.value : this.value.toString() });\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 getValue(): string {\n return typeof this.value === 'number'\n ? this.value.toString()\n : (this.value || '').toString();\n }\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n if(this.value !== null && this.value !== undefined) {\n this.el.style.setProperty('--value', `${this.value}`);\n }\n };\n\n @Listen('focus', { capture: true })\n handleFocus() {\n this.el.classList.add('focus-visible');\n }\n\n @Listen('blur', { capture: true })\n handleBlur() {\n this.el.classList.remove('focus-visible');\n }\n\n componentDidLoad() {\n // Cacher le label pour accessibilité\n\n const label = this.el.querySelector('.form-label') as HTMLElement;\n const input = this.el.querySelector('.form-control.sc-road-input') as HTMLElement;\n if (label) {\n label.style.clip = 'rect(0 0 0 0)';\n label.style.border = '0';\n label.style.height = '1px';\n label.style.left = '0';\n label.style.margin = '-1px';\n label.style.overflow = 'hidden';\n label.style.padding = '0';\n label.style.position = 'absolute';\n label.style.top = '0';\n label.style.width = '1px';\n\n input.style.padding = '0 1rem 0';\n \n }\n}\n\n render() {\n const value = this.getValue();\n const datalist = this.showLabels !== undefined ? `tickmarks` : '';\n\n return (\n <Host tabindex=\"0\">\n <div class=\"form-group d-flex align-items-end\">\n {this.showTick && <road-icon icon={navigationAddLessSolid} class=\"mr-8\" size='sm'></road-icon>}\n <div class=\"form-range\" style={{'--min:': this.min, '--max': this.max, '--value': value}}>\n {this.showValue && <output></output>}\n {this.showLabels && <slot name=\"datalist\"/>}\n <input\n type=\"range\"\n class=\"form-range-input\"\n id={this.rangeId}\n min={this.min}\n max={this.max}\n value={value}\n onInput={this.onInput}\n list={datalist}\n aria-label=\"Valeur\"\n tabindex=\"0\"\n />\n <label class=\"form-range-label\">Valeur</label>\n <div class=\"form-range-progress\"></div>\n </div>\n {this.showTick && <road-icon icon={navigationAddMoreSolid} class=\"ml-8\" size='sm'></road-icon>}\n </div>\n </Host>\n );\n }\n\n}\n\nlet rangeIds = 0;\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-52302079.js';
2
- import { s as star, j as starHalfColor } from './index-891decf5.js';
2
+ import { s as star, j as starHalfColor } from './index-7a0158a4.js';
3
3
 
4
4
  const ratingCss = ":host{display:flex;align-items:center}.rating-stars{display:inline-flex;flex-shrink:0}.rating-star{color:var(--road-surface-disabled)}.rating-stars.rating-stars--small .icon-sm{width:1rem;height:1rem}.rating-number{margin-left:0.5rem;font-size:var(--road-link-medium);color:var(--road-on-surface);text-decoration:underline}.rating-number.rating-number--small{font-size:var(--road-link-small)}.rating-number.readonly{text-decoration:none}";
5
5
 
@@ -52,7 +52,7 @@ const SegmentedButton = class {
52
52
  return (h(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "tab", tabindex: tabIndex, "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
53
53
  'tab-selected': selected,
54
54
  [`${sizeClass}`]: true,
55
- } }, h("button", { type: "button", tabIndex: -1, class: "button-native", part: "native" }, h("slot", null))));
55
+ } }, h("span", { tabIndex: -1, class: "button-native", part: "native", "aria-hidden": "true" }, h("slot", null))));
56
56
  }
57
57
  get el() { return getElement(this); }
58
58
  };
@@ -1 +1 @@
1
- {"file":"road-segmented-button.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,69DAA69D;;MCY3+D,eAAe;;;;;IA+DlB,YAAO,GAAG,CAAC,EAAiB;MAClC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;KACF,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS;MAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACpB,CAAC;gBAhE4B,IAAI;oBAKE,KAAK;;;EAiBzC,kBAAkB,CAAC,EAAe;IAChC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAqB,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B,CAAC;IAEpD,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;MACnH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;KAC5C;GACF;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;OACxB,CAAC,CAAC;MACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;OACxB,CAAC,CAAC;MAEH,EAAE,CAAC,cAAc,EAAE,CAAC;KACrB;GACF;EAED,IAAY,QAAQ;IAClB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,WAAW,EAAE;MACf,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;KACzC;IAED,OAAO,CAAC,CAAC;GACV;EAYD,MAAM;IACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAGpE,QACE,EAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,QAAQ,mBACH,QAAQ,GAAG,MAAM,GAAG,IAAI,EACvC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,cAAc,GAAG,EAAE,GAAG,IAAI,EAClD,KAAK,EAAE;QACL,cAAc,EAAE,QAAQ;QACxB,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI;OACvB,IAED,cAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,IACnE,eAAO,CACF,CACJ,EACP;GACH;;;;;;;","names":[],"sources":["src/components/segmented-button/segmented-button.css?tag=road-segmented-button&encapsulation=shadow","src/components/segmented-button/segmented-button.tsx"],"sourcesContent":["/*\n * Tab button\n */\n\n\n/* BUTTON\n -------------------- */\n\n\n:host {\n --border-radius: 0.25rem;\n --font-size: var(--road-button-medium);\n --margin-bottom: 1rem;\n --padding-start: 1.5rem;\n --padding-end: 1.5rem;\n box-sizing: border-box;\n flex: 1;\n align-items: center;\n justify-content: center;\n max-height: 2.5rem;\n font-size: var(--road-button-medium);\n font-weight: 700;\n color: var(--road-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n background-color: var(--road-surface);\n border-top: 1px solid var(--road-primary);\n border-bottom: 1px solid var(--road-primary);\n border-left: 1px solid var(--road-primary);\n border-radius: 0;\n transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n}\n\n\n:host(:first-child){\n border: 1px solid var(--road-primary);\n border-right: 0;\n border-radius: 999em 0 0 999em;\n}\n\n:host(:last-child){\n border: 1px solid var(--road-primary);\n border-radius: 0 999em 999em 0;\n}\n\n/**\n * Small\n */\n\n:host(.btn-sm) {\n height: 2rem;\n font-size: var(--road-button-small);\n}\n\n/**\n * Active state\n */\n\n:host(.tab-selected) {\n color: var(--road-primary-contrast);\n background-color: var(--road-primary);\n}\n\n:host(.tab-selected:hover) {\n background-color: var(--road-button-primary-variant);\n}\n\n\n/**\n * Hover state\n */\n\n:host(:hover) {\n background: var(--road-primary-90);\n}\n\n/**\n * Focus state\n */\n\n\n:host(.focus-visible) {\n background: var(--road-primary-90);\n outline: 0;\n}\n\n:host(.tab-selected.focus-visible){\n background-color: var(--road-button-primary-variant);\n}\n\n\n/* NATIVE\n -------------------- */\n\n.button-native {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: inherit;\n align-items: inherit;\n justify-content: inherit;\n width: 100%;\n height: 100%;\n max-height: 2.5rem;\n padding: 0.75rem var(--padding-end, 1.5rem) 0.75rem var(--padding-start, 1.5rem);\n margin: 0;\n overflow: hidden;\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n color: inherit;\n text-align: inherit;\n text-decoration: none;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n cursor: pointer;\n background: transparent;\n -webkit-user-drag: none;\n border-color: initial;\n border-style: initial;\n border-width: 0;\n border-radius: inherit;\n border-image: initial;\n outline: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\n\n/**\n *\n * @part native - The native HTML anchor element that wraps all child elements.\n */\n\n@Component({\n tag: 'road-segmented-button',\n styleUrl: 'segmented-button.css',\n shadow: true,\n})\nexport class SegmentedButton {\n\n @Element() el!: HTMLRoadSegmentedButtonElement;\n\n /**\n * The Segmented buttons size.\n */\n @Prop() size?: 'sm' | 'md' = 'md';\n\n /**\n * The selected tab component\n */\n @Prop({ mutable: true }) selected = false;\n\n /**\n * A tab id must be provided for each `road-tab`. It's used internally to reference\n */\n @Prop() tab?: string;\n\n /**\n * Emitted when the tab bar is clicked\n * @internal\n */\n @Event() roadsegmentedbuttonclick!: EventEmitter;\n /** @internal */\n @Event() roadSegmentedButtonClick!: EventEmitter;\n\n @Listen('roadSegmentedButtonBarChanged', { target: 'window' })\n @Listen('roadSegmentedButtonbarchanged', { target: 'window' })\n onButtonBarChanged(ev: CustomEvent) {\n const dispatchedFrom = ev.target as HTMLElement;\n const parent = this.el.parentElement as EventTarget;\n\n if ((ev.composedPath && ev.composedPath().includes(parent)) || (dispatchedFrom && dispatchedFrom.contains(this.el))) {\n this.selected = this.tab === ev.detail.tab;\n }\n }\n\n private selectTab(ev: Event | KeyboardEvent) {\n if (this.tab !== undefined) {\n this.roadsegmentedbuttonclick.emit({\n tab: this.tab,\n selected: this.selected,\n });\n this.roadSegmentedButtonClick.emit({\n tab: this.tab,\n selected: this.selected,\n });\n\n ev.preventDefault();\n }\n }\n\n private get tabIndex() {\n const hasTabIndex = this.el.hasAttribute('tabindex');\n\n if (hasTabIndex) {\n return this.el.getAttribute('tabindex');\n }\n\n return 0;\n }\n\n private onKeyUp = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.selectTab(ev);\n }\n };\n\n private onClick = (ev: Event) => {\n this.selectTab(ev);\n };\n\n render() {\n const { tabIndex, selected, tab } = this;\n\n const sizeClass = this.size !== undefined ? `btn-${this.size}` : '';\n\n\n return (\n <Host\n onClick={this.onClick}\n onKeyup={this.onKeyUp}\n role=\"tab\"\n tabindex={tabIndex}\n aria-selected={selected ? 'true' : null}\n id={tab !== undefined ? `tab-button-${tab}` : null}\n class={{\n 'tab-selected': selected,\n [`${sizeClass}`]: true,\n }}\n >\n <button type=\"button\" tabIndex={-1} class=\"button-native\" part=\"native\">\n <slot/>\n </button>\n </Host>\n );\n }\n}"],"version":3}
1
+ {"file":"road-segmented-button.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,69DAA69D;;MCY3+D,eAAe;;;;;IA+DlB,YAAO,GAAG,CAAC,EAAiB;MAClC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;KACF,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS;MAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACpB,CAAC;gBAhE4B,IAAI;oBAKE,KAAK;;;EAiBzC,kBAAkB,CAAC,EAAe;IAChC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAqB,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B,CAAC;IAEpD,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;MACnH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;KAC5C;GACF;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;OACxB,CAAC,CAAC;MACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;OACxB,CAAC,CAAC;MAEH,EAAE,CAAC,cAAc,EAAE,CAAC;KACrB;GACF;EAED,IAAY,QAAQ;IAClB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,WAAW,EAAE;MACf,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;KACzC;IAED,OAAO,CAAC,CAAC;GACV;EAYD,MAAM;IACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAGpE,QACE,EAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,QAAQ,mBACH,QAAQ,GAAG,MAAM,GAAG,IAAI,EACvC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,cAAc,GAAG,EAAE,GAAG,IAAI,EAClD,KAAK,EAAE;QACL,cAAc,EAAE,QAAQ;QACxB,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI;OACvB,IAED,YAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,iBAAa,MAAM,IACtE,eAAO,CACJ,CACF,EACP;GACH;;;;;;;","names":[],"sources":["src/components/segmented-button/segmented-button.css?tag=road-segmented-button&encapsulation=shadow","src/components/segmented-button/segmented-button.tsx"],"sourcesContent":["/*\n * Tab button\n */\n\n\n/* BUTTON\n -------------------- */\n\n\n:host {\n --border-radius: 0.25rem;\n --font-size: var(--road-button-medium);\n --margin-bottom: 1rem;\n --padding-start: 1.5rem;\n --padding-end: 1.5rem;\n box-sizing: border-box;\n flex: 1;\n align-items: center;\n justify-content: center;\n max-height: 2.5rem;\n font-size: var(--road-button-medium);\n font-weight: 700;\n color: var(--road-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n background-color: var(--road-surface);\n border-top: 1px solid var(--road-primary);\n border-bottom: 1px solid var(--road-primary);\n border-left: 1px solid var(--road-primary);\n border-radius: 0;\n transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n}\n\n\n:host(:first-child){\n border: 1px solid var(--road-primary);\n border-right: 0;\n border-radius: 999em 0 0 999em;\n}\n\n:host(:last-child){\n border: 1px solid var(--road-primary);\n border-radius: 0 999em 999em 0;\n}\n\n/**\n * Small\n */\n\n:host(.btn-sm) {\n height: 2rem;\n font-size: var(--road-button-small);\n}\n\n/**\n * Active state\n */\n\n:host(.tab-selected) {\n color: var(--road-primary-contrast);\n background-color: var(--road-primary);\n}\n\n:host(.tab-selected:hover) {\n background-color: var(--road-button-primary-variant);\n}\n\n\n/**\n * Hover state\n */\n\n:host(:hover) {\n background: var(--road-primary-90);\n}\n\n/**\n * Focus state\n */\n\n\n:host(.focus-visible) {\n background: var(--road-primary-90);\n outline: 0;\n}\n\n:host(.tab-selected.focus-visible){\n background-color: var(--road-button-primary-variant);\n}\n\n\n/* NATIVE\n -------------------- */\n\n.button-native {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: inherit;\n align-items: inherit;\n justify-content: inherit;\n width: 100%;\n height: 100%;\n max-height: 2.5rem;\n padding: 0.75rem var(--padding-end, 1.5rem) 0.75rem var(--padding-start, 1.5rem);\n margin: 0;\n overflow: hidden;\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n color: inherit;\n text-align: inherit;\n text-decoration: none;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n cursor: pointer;\n background: transparent;\n -webkit-user-drag: none;\n border-color: initial;\n border-style: initial;\n border-width: 0;\n border-radius: inherit;\n border-image: initial;\n outline: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\n\n/**\n *\n * @part native - The native HTML anchor element that wraps all child elements.\n */\n\n@Component({\n tag: 'road-segmented-button',\n styleUrl: 'segmented-button.css',\n shadow: true,\n})\nexport class SegmentedButton {\n\n @Element() el!: HTMLRoadSegmentedButtonElement;\n\n /**\n * The Segmented buttons size.\n */\n @Prop() size?: 'sm' | 'md' = 'md';\n\n /**\n * The selected tab component\n */\n @Prop({ mutable: true }) selected = false;\n\n /**\n * A tab id must be provided for each `road-tab`. It's used internally to reference\n */\n @Prop() tab?: string;\n\n /**\n * Emitted when the tab bar is clicked\n * @internal\n */\n @Event() roadsegmentedbuttonclick!: EventEmitter;\n /** @internal */\n @Event() roadSegmentedButtonClick!: EventEmitter;\n\n @Listen('roadSegmentedButtonBarChanged', { target: 'window' })\n @Listen('roadSegmentedButtonbarchanged', { target: 'window' })\n onButtonBarChanged(ev: CustomEvent) {\n const dispatchedFrom = ev.target as HTMLElement;\n const parent = this.el.parentElement as EventTarget;\n\n if ((ev.composedPath && ev.composedPath().includes(parent)) || (dispatchedFrom && dispatchedFrom.contains(this.el))) {\n this.selected = this.tab === ev.detail.tab;\n }\n }\n\n private selectTab(ev: Event | KeyboardEvent) {\n if (this.tab !== undefined) {\n this.roadsegmentedbuttonclick.emit({\n tab: this.tab,\n selected: this.selected,\n });\n this.roadSegmentedButtonClick.emit({\n tab: this.tab,\n selected: this.selected,\n });\n\n ev.preventDefault();\n }\n }\n\n private get tabIndex() {\n const hasTabIndex = this.el.hasAttribute('tabindex');\n\n if (hasTabIndex) {\n return this.el.getAttribute('tabindex');\n }\n\n return 0;\n }\n\n private onKeyUp = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.selectTab(ev);\n }\n };\n\n private onClick = (ev: Event) => {\n this.selectTab(ev);\n };\n\n render() {\n const { tabIndex, selected, tab } = this;\n\n const sizeClass = this.size !== undefined ? `btn-${this.size}` : '';\n\n\n return (\n <Host\n onClick={this.onClick}\n onKeyup={this.onKeyUp}\n role=\"tab\"\n tabindex={tabIndex}\n aria-selected={selected ? 'true' : null}\n id={tab !== undefined ? `tab-button-${tab}` : null}\n class={{\n 'tab-selected': selected,\n [`${sizeClass}`]: true,\n }}\n >\n <span tabIndex={-1} class=\"button-native\" part=\"native\" aria-hidden=\"true\">\n <slot/>\n </span>\n </Host>\n );\n }\n}"],"version":3}
@@ -1778,7 +1778,7 @@ Fuse.config = Config;
1778
1778
  register(ExtendedSearch);
1779
1779
  }
1780
1780
 
1781
- const selectFilterCss = ".sc-road-select-filter-h{--margin-top:3rem;position:relative;display:block}.select-filter-list.sc-road-select-filter{position:absolute;top:var(--margin-top);z-index:1;width:100%;max-height:16rem;padding:0.5rem 0;margin:0;overflow-y:scroll;font-family:var(--road-font, sans-serif);font-size:1rem;color:var(--road-on-surface);list-style-type:none;background:var(--road-surface);border-radius:0 0 0.25rem 0.25rem;box-shadow:var(--road-elevation-low)}.select-filter-list.not-active.sc-road-select-filter{opacity:0}.select-filter-item.sc-road-select-filter{display:flex;align-items:center;padding:0.75rem 1rem;cursor:pointer}.select-filter-item.sc-road-select-filter:hover,.select-filter-item.highlight.sc-road-select-filter{color:var(--road-on-primary);background:var(--road-primary)}";
1781
+ const selectFilterCss = ".sc-road-select-filter-h{--margin-top:3rem;position:relative;display:block}.select-filter-list.sc-road-select-filter{position:absolute;top:var(--margin-top);z-index:1;width:100%;max-height:16rem;padding:0.5rem 0;margin:0;overflow-y:scroll;font-family:var(--road-font, sans-serif);font-size:1rem;color:var(--road-on-surface);list-style-type:none;background:var(--road-surface);border-radius:0 0 0.25rem 0.25rem;box-shadow:var(--road-elevation-low)}.select-filter-list.not-active.sc-road-select-filter{opacity:0}.select-filter-item.sc-road-select-filter{display:flex;align-items:center;padding:0.75rem 1rem;cursor:pointer}.select-filter-item.active.sc-road-select-filter{outline:1px solid var(--road-input-outline-variant)}.select-filter-item.sc-road-select-filter:hover,.select-filter-item.sc-road-select-filter:focus,.select-filter-item.highlight.sc-road-select-filter{color:var(--road-on-primary);background:var(--road-primary)}";
1782
1782
 
1783
1783
  const SelectFilter = class {
1784
1784
  constructor(hostRef) {
@@ -1799,9 +1799,17 @@ const SelectFilter = class {
1799
1799
  value: value.toString(),
1800
1800
  label: label,
1801
1801
  });
1802
+ this.activeIndex = -1;
1803
+ };
1804
+ this.handleOptionMouseOver = (index) => {
1805
+ this.activeIndex = index;
1806
+ };
1807
+ this.handleOptionClick = (value, label) => {
1808
+ this.onClick(value, label);
1802
1809
  };
1803
1810
  this.isOpen = false;
1804
1811
  this.currentValue = '';
1812
+ this.activeIndex = -1;
1805
1813
  this.options = [];
1806
1814
  this.parameters = {
1807
1815
  keys: ["value", "label"],
@@ -1831,13 +1839,35 @@ const SelectFilter = class {
1831
1839
  }
1832
1840
  }
1833
1841
  }
1834
- render() {
1842
+ handleKeydown(event) {
1843
+ if (this.isOpen) {
1844
+ if (event.key === 'ArrowDown') {
1845
+ event.preventDefault();
1846
+ this.activeIndex = (this.activeIndex + 1) % this.filteredOptions.length;
1847
+ }
1848
+ else if (event.key === 'ArrowUp') {
1849
+ event.preventDefault();
1850
+ this.activeIndex = (this.activeIndex - 1 + this.filteredOptions.length) % this.filteredOptions.length;
1851
+ }
1852
+ else if (event.key === 'Enter') {
1853
+ event.preventDefault();
1854
+ const activeOption = this.filteredOptions[this.activeIndex];
1855
+ if (activeOption) {
1856
+ this.onClick(activeOption.item.value, activeOption.item.label);
1857
+ }
1858
+ }
1859
+ }
1860
+ }
1861
+ get filteredOptions() {
1835
1862
  const fuseSearch = new Fuse(this.options, this.parameters);
1836
- const options = this.currentValue === '' ? this.options.map((doc, idx) => ({ item: doc, score: 1, refIndex: idx })) : fuseSearch.search(this.currentValue);
1863
+ return this.currentValue === '' ? this.options.map((doc, idx) => ({ item: doc, score: 1, refIndex: idx })) : fuseSearch.search(this.currentValue);
1864
+ }
1865
+ render() {
1866
+ const options = this.filteredOptions;
1837
1867
  const isActive = this.isActive ? 'true' : 'false';
1838
1868
  const notActive = this.isActive ? '' : 'not-active';
1839
1869
  return (h(Host, { "is-active": isActive }, h("slot", null), this.isOpen &&
1840
- h("ul", { class: `${notActive} select-filter-list`, role: "listbox" }, options.map(option => (h("li", { class: "select-filter-item", role: "option", onClick: () => this.onClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), innerHTML: option.item.label }))))));
1870
+ h("ul", { class: `${notActive} select-filter-list`, role: "listbox" }, options.map((option, idx) => (h("li", { class: `select-filter-item ${this.activeIndex === idx ? 'active' : ''}`, role: "option", "aria-selected": this.activeIndex === idx ? 'true' : 'false', onClick: () => this.handleOptionClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), onMouseOver: () => this.handleOptionMouseOver(idx), innerHTML: option.item.label, tabindex: this.activeIndex === idx ? 0 : -1 }))))));
1841
1871
  }
1842
1872
  get el() { return getElement(this); }
1843
1873
  };