@eunomia/elements 1.0.0-beta.5 → 1.0.0-beta.7

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 (516) hide show
  1. package/README.md +2 -2
  2. package/dist/breakpoints.d.ts +37 -10
  3. package/dist/breakpoints.js +38 -10
  4. package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
  5. package/dist/cdn/components/chunks/chunk-36KLGY6U.js +209 -0
  6. package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
  7. package/dist/cdn/components/chunks/{chunk-IDKZKLJR.js → chunk-3PNGQEG4.js} +24 -11
  8. package/dist/cdn/components/chunks/{chunk-NBIENHLV.js → chunk-5XPOGBPL.js} +18 -18
  9. package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
  10. package/dist/cdn/components/chunks/chunk-62RLISRD.js +1 -0
  11. package/dist/cdn/components/chunks/{chunk-6ETDXUH2.js → chunk-6FYW5TQU.js} +7 -7
  12. package/dist/cdn/components/chunks/chunk-AK2DIJX7.js +1 -0
  13. package/dist/cdn/components/chunks/chunk-B5XMGWM7.js +10 -0
  14. package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
  15. package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
  16. package/dist/cdn/components/chunks/chunk-BVASCT2V.js +109 -0
  17. package/dist/cdn/components/chunks/{chunk-DKOPI7QA.js → chunk-DGI7TKCU.js} +83 -68
  18. package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
  19. package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
  20. package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
  21. package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
  22. package/dist/cdn/components/chunks/chunk-GVS6IUKC.js +1 -0
  23. package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
  24. package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-I4ERDXSM.js} +9 -4
  25. package/dist/cdn/components/chunks/{chunk-AIS3UICU.js → chunk-J3SZBXM6.js} +11 -7
  26. package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-LVKMAHMU.js} +11 -1
  27. package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-MQQJ6DID.js} +1 -1
  28. package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
  29. package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
  30. package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
  31. package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-PXF554MD.js} +10 -9
  32. package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
  33. package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-QXQ25SQS.js} +24 -20
  34. package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
  35. package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-SVGWCKWT.js} +2 -2
  36. package/dist/cdn/components/chunks/{chunk-2XASWWKR.js → chunk-TFTRCIIK.js} +9 -8
  37. package/dist/cdn/components/chunks/chunk-TLBXTBMM.js +46 -0
  38. package/dist/cdn/components/chunks/chunk-UVHVQRPT.js +1 -0
  39. package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
  40. package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
  41. package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
  42. package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
  43. package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
  44. package/dist/cdn/components/chunks/{chunk-OW7XKDCH.js → chunk-Z3OFIE7S.js} +16 -16
  45. package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
  46. package/dist/cdn/components/eun-alert.js +33 -18
  47. package/dist/cdn/components/eun-animate.js +14 -10
  48. package/dist/cdn/components/eun-badge.js +2 -2
  49. package/dist/cdn/components/eun-breadcrumb.js +25 -41
  50. package/dist/cdn/components/eun-button.js +1 -1
  51. package/dist/cdn/components/eun-calendar.js +67 -65
  52. package/dist/cdn/components/eun-card.js +34 -19
  53. package/dist/cdn/components/eun-carousel.js +76 -42
  54. package/dist/cdn/components/eun-check-card.js +13 -6
  55. package/dist/cdn/components/eun-checkbox-list.js +11 -8
  56. package/dist/cdn/components/eun-checkbox.js +1 -1
  57. package/dist/cdn/components/eun-chip.js +3 -3
  58. package/dist/cdn/components/eun-collapse.js +56 -27
  59. package/dist/cdn/components/eun-color-picker.js +79 -86
  60. package/dist/cdn/components/eun-counter.js +16 -15
  61. package/dist/cdn/components/eun-date-picker.js +71 -67
  62. package/dist/cdn/components/eun-description-list.js +152 -0
  63. package/dist/cdn/components/eun-divider.js +3 -3
  64. package/dist/cdn/components/eun-drawer.js +34 -20
  65. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  66. package/dist/cdn/components/eun-dropdown-item.js +6 -5
  67. package/dist/cdn/components/eun-fab.js +17 -16
  68. package/dist/cdn/components/eun-icon.js +1 -1
  69. package/dist/cdn/components/eun-image-card.js +79 -22
  70. package/dist/cdn/components/eun-image-carousel.js +92 -47
  71. package/dist/cdn/components/eun-infinite-list.js +23 -11
  72. package/dist/cdn/components/eun-input-file.js +20 -19
  73. package/dist/cdn/components/eun-input-phone.js +17 -16
  74. package/dist/cdn/components/eun-input.js +1 -1
  75. package/dist/cdn/components/eun-label.js +4 -4
  76. package/dist/cdn/components/eun-link.js +78 -29
  77. package/dist/cdn/components/eun-loader.js +1 -1
  78. package/dist/cdn/components/eun-modal.js +27 -20
  79. package/dist/cdn/components/eun-pagination.js +24 -19
  80. package/dist/cdn/components/eun-password-strength.js +19 -11
  81. package/dist/cdn/components/eun-progress-bar.js +13 -5
  82. package/dist/cdn/components/eun-radio-card.js +16 -9
  83. package/dist/cdn/components/eun-radio-list.js +12 -9
  84. package/dist/cdn/components/eun-radio.js +1 -1
  85. package/dist/cdn/components/eun-rating.js +276 -0
  86. package/dist/cdn/components/eun-scheduler-event-editor.js +10 -10
  87. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  88. package/dist/cdn/components/eun-scheduler.js +27 -27
  89. package/dist/cdn/components/eun-search.js +24 -25
  90. package/dist/cdn/components/eun-select.js +32 -31
  91. package/dist/cdn/components/eun-sidebar.js +40 -24
  92. package/dist/cdn/components/eun-skeleton.js +1 -1
  93. package/dist/cdn/components/eun-slider.js +15 -14
  94. package/dist/cdn/components/eun-sliding-card.js +8 -4
  95. package/dist/cdn/components/eun-step.js +22 -10
  96. package/dist/cdn/components/eun-stepper.js +41 -30
  97. package/dist/cdn/components/eun-switch.js +10 -8
  98. package/dist/cdn/components/eun-tab-group.js +24 -19
  99. package/dist/cdn/components/eun-tab-panel.js +11 -3
  100. package/dist/cdn/components/eun-tab.js +1 -1
  101. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  102. package/dist/cdn/components/eun-table.js +572 -31
  103. package/dist/cdn/components/eun-tag.js +13 -7
  104. package/dist/cdn/components/eun-textarea.js +34 -29
  105. package/dist/cdn/components/eun-time-picker.js +24 -21
  106. package/dist/cdn/components/eun-toast.js +51 -22
  107. package/dist/cdn/components/eun-toggle-group.js +57 -36
  108. package/dist/cdn/components/eun-toggle-item.js +16 -15
  109. package/dist/cdn/components/eun-toggle.js +12 -10
  110. package/dist/cdn/components/eun-toolbar.js +64 -54
  111. package/dist/cdn/components/eun-tooltip.js +30 -14
  112. package/dist/cdn/styles/breakpoints.scss +8 -0
  113. package/dist/cdn/styles/eunomia-grid.scss +6 -0
  114. package/dist/cdn/styles/eunomia-themes.css +1 -1
  115. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  116. package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
  117. package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  118. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  119. package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  120. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  121. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  122. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  123. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  124. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  125. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  126. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  127. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  128. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  129. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  130. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  131. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  132. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  133. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  134. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  135. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  136. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  137. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  138. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  139. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  140. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  141. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  142. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  143. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  144. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  145. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  146. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  147. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  148. package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  149. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  150. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  151. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  152. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  153. package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  154. package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  155. package/dist/components/action/button/button.d.ts +9 -3
  156. package/dist/components/action/button/button.js +10 -4
  157. package/dist/components/action/button/button.styles.js +61 -41
  158. package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
  159. package/dist/components/action/dropdown-button/dropdown-button.js +21 -15
  160. package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
  161. package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
  162. package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
  163. package/dist/components/action/fab/fab.styles.js +14 -13
  164. package/dist/components/action/link/link.d.ts +7 -3
  165. package/dist/components/action/link/link.js +11 -7
  166. package/dist/components/action/link/link.styles.js +66 -15
  167. package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
  168. package/dist/components/action/toggle/toggle-group.d.ts +2 -0
  169. package/dist/components/action/toggle/toggle-group.js +6 -4
  170. package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
  171. package/dist/components/action/toggle/toggle-group.styles.js +46 -23
  172. package/dist/components/action/toggle/toggle-item.styles.js +13 -12
  173. package/dist/components/action/toggle/toggle.d.ts +2 -0
  174. package/dist/components/action/toggle/toggle.js +3 -1
  175. package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
  176. package/dist/components/action/toggle/toggle.styles.js +12 -8
  177. package/dist/components/alert/alert/alert.d.ts +11 -7
  178. package/dist/components/alert/alert/alert.js +13 -14
  179. package/dist/components/alert/alert/alert.styles.js +32 -15
  180. package/dist/components/alert/drawer/drawer.d.ts +8 -6
  181. package/dist/components/alert/drawer/drawer.js +12 -14
  182. package/dist/components/alert/drawer/drawer.styles.js +26 -10
  183. package/dist/components/alert/modal/modal.d.ts +13 -11
  184. package/dist/components/alert/modal/modal.js +17 -27
  185. package/dist/components/alert/modal/modal.styles.js +16 -7
  186. package/dist/components/alert/toast/toast.d.ts +9 -5
  187. package/dist/components/alert/toast/toast.js +11 -13
  188. package/dist/components/alert/toast/toast.styles.js +49 -18
  189. package/dist/components/content/badge/badge.js +2 -2
  190. package/dist/components/content/card/card.d.ts +7 -3
  191. package/dist/components/content/card/card.js +8 -4
  192. package/dist/components/content/card/card.styles.js +28 -13
  193. package/dist/components/content/card/image-card.d.ts +60 -6
  194. package/dist/components/content/card/image-card.js +120 -11
  195. package/dist/components/content/card/image-card.styles.js +66 -15
  196. package/dist/components/content/card/sliding-card.d.ts +2 -0
  197. package/dist/components/content/card/sliding-card.js +2 -0
  198. package/dist/components/content/card/sliding-card.styles.js +5 -1
  199. package/dist/components/content/chip/chip.d.ts +4 -4
  200. package/dist/components/content/chip/chip.js +8 -8
  201. package/dist/components/content/collapse/collapse.d.ts +10 -1
  202. package/dist/components/content/collapse/collapse.js +12 -2
  203. package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
  204. package/dist/components/content/collapse/collapse.styles.js +56 -18
  205. package/dist/components/content/description-list/description-list.d.ts +87 -0
  206. package/dist/components/content/description-list/description-list.js +107 -0
  207. package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
  208. package/dist/components/content/description-list/description-list.styles.js +185 -0
  209. package/dist/components/content/icon/icon.d.ts +5 -0
  210. package/dist/components/content/icon/icon.js +5 -0
  211. package/dist/components/content/icon/icon.style.d.ts +2 -0
  212. package/dist/components/content/icon/icon.style.js +8 -1
  213. package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
  214. package/dist/components/content/image-carousel/image-carousel.js +58 -55
  215. package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
  216. package/dist/components/content/password-strength/password-strength.d.ts +21 -6
  217. package/dist/components/content/password-strength/password-strength.js +37 -16
  218. package/dist/components/content/password-strength/password-strength.styles.js +9 -1
  219. package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
  220. package/dist/components/content/shared-styles/card-link.styles.js +4 -3
  221. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
  222. package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
  223. package/dist/components/content/tag/tag.d.ts +4 -0
  224. package/dist/components/content/tag/tag.js +6 -2
  225. package/dist/components/content/tag/tag.styles.js +14 -4
  226. package/dist/components/content/tooltip/tooltip.d.ts +3 -2
  227. package/dist/components/content/tooltip/tooltip.js +12 -19
  228. package/dist/components/content/tooltip/tooltip.styles.js +25 -7
  229. package/dist/components/form/checkbox/check-card.d.ts +5 -1
  230. package/dist/components/form/checkbox/check-card.js +5 -1
  231. package/dist/components/form/checkbox/check-card.styles.js +13 -4
  232. package/dist/components/form/checkbox/checkbox-list.d.ts +21 -1
  233. package/dist/components/form/checkbox/checkbox-list.js +50 -17
  234. package/dist/components/form/checkbox/checkbox.d.ts +5 -1
  235. package/dist/components/form/checkbox/checkbox.js +7 -2
  236. package/dist/components/form/checkbox/checkbox.styles.js +5 -4
  237. package/dist/components/form/color-picker/color-picker.d.ts +48 -29
  238. package/dist/components/form/color-picker/color-picker.js +85 -71
  239. package/dist/components/form/color-picker/color-picker.styles.js +7 -6
  240. package/dist/components/form/counter/counter.d.ts +26 -19
  241. package/dist/components/form/counter/counter.js +64 -63
  242. package/dist/components/form/counter/counter.styles.js +5 -4
  243. package/dist/components/form/date-picker/date-picker.d.ts +64 -39
  244. package/dist/components/form/date-picker/date-picker.js +107 -96
  245. package/dist/components/form/date-picker/date-picker.styles.js +8 -5
  246. package/dist/components/form/input/input.d.ts +45 -40
  247. package/dist/components/form/input/input.js +93 -111
  248. package/dist/components/form/input-file/input-file.d.ts +30 -14
  249. package/dist/components/form/input-file/input-file.js +43 -40
  250. package/dist/components/form/input-file/input-file.styles.js +7 -6
  251. package/dist/components/form/input-phone/input-phone.d.ts +30 -7
  252. package/dist/components/form/input-phone/input-phone.js +54 -30
  253. package/dist/components/form/input-phone/input-phone.styles.js +4 -4
  254. package/dist/components/form/label/label.styles.js +3 -3
  255. package/dist/components/form/radio/radio-card.d.ts +6 -2
  256. package/dist/components/form/radio/radio-card.js +6 -2
  257. package/dist/components/form/radio/radio-card.styles.js +14 -5
  258. package/dist/components/form/radio/radio-list.d.ts +28 -9
  259. package/dist/components/form/radio/radio-list.js +61 -32
  260. package/dist/components/form/radio/radio.d.ts +6 -2
  261. package/dist/components/form/radio/radio.js +6 -2
  262. package/dist/components/form/radio/radio.styles.js +4 -4
  263. package/dist/components/form/rating/rating.d.ts +349 -0
  264. package/dist/components/form/rating/rating.js +665 -0
  265. package/dist/components/form/rating/rating.styles.d.ts +1 -0
  266. package/dist/components/form/rating/rating.styles.js +213 -0
  267. package/dist/components/form/search/search.d.ts +10 -9
  268. package/dist/components/form/search/search.js +29 -56
  269. package/dist/components/form/search/search.styles.js +5 -4
  270. package/dist/components/form/select/select.d.ts +32 -12
  271. package/dist/components/form/select/select.js +74 -59
  272. package/dist/components/form/select/select.styles.js +3 -2
  273. package/dist/components/form/shared-styles/card.styles.js +5 -4
  274. package/dist/components/form/shared-styles/field.styles.js +16 -6
  275. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  276. package/dist/components/form/shared-styles/listbox.styles.js +10 -0
  277. package/dist/components/form/slider/slider.d.ts +11 -9
  278. package/dist/components/form/slider/slider.js +14 -14
  279. package/dist/components/form/slider/slider.styles.js +8 -7
  280. package/dist/components/form/switch/switch.d.ts +5 -1
  281. package/dist/components/form/switch/switch.js +5 -1
  282. package/dist/components/form/switch/switch.styles.js +7 -5
  283. package/dist/components/form/textarea/textarea.d.ts +96 -24
  284. package/dist/components/form/textarea/textarea.js +206 -51
  285. package/dist/components/form/time-picker/time-picker-columns.d.ts +2 -2
  286. package/dist/components/form/time-picker/time-picker-columns.js +8 -8
  287. package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
  288. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
  289. package/dist/components/form/time-picker/time-picker.d.ts +30 -10
  290. package/dist/components/form/time-picker/time-picker.js +81 -64
  291. package/dist/components/form/time-picker/time-picker.styles.js +4 -3
  292. package/dist/components/layout/animate/animate.d.ts +37 -15
  293. package/dist/components/layout/animate/animate.js +36 -16
  294. package/dist/components/layout/animate/animate.styles.js +11 -18
  295. package/dist/components/layout/divider/divider.js +1 -1
  296. package/dist/components/layout/divider/divider.styles.js +1 -1
  297. package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
  298. package/dist/components/layout/infinite-list/infinite-list.js +115 -18
  299. package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
  300. package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
  301. package/dist/components/loader/loader/loader.js +2 -2
  302. package/dist/components/loader/loader/loader.styles.js +17 -13
  303. package/dist/components/loader/skeleton/skeleton.js +1 -1
  304. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
  305. package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
  306. package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
  307. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
  308. package/dist/components/navigation/carousel/carousel.d.ts +55 -11
  309. package/dist/components/navigation/carousel/carousel.js +101 -43
  310. package/dist/components/navigation/carousel/carousel.styles.js +65 -22
  311. package/dist/components/navigation/pagination/pagination.d.ts +23 -21
  312. package/dist/components/navigation/pagination/pagination.js +30 -53
  313. package/dist/components/navigation/pagination/pagination.styles.js +8 -3
  314. package/dist/components/navigation/sidebar/sidebar.d.ts +17 -13
  315. package/dist/components/navigation/sidebar/sidebar.js +23 -33
  316. package/dist/components/navigation/sidebar/sidebar.styles.js +32 -14
  317. package/dist/components/navigation/stepper/step.js +9 -8
  318. package/dist/components/navigation/stepper/step.styles.js +16 -5
  319. package/dist/components/navigation/stepper/stepper.js +12 -5
  320. package/dist/components/navigation/stepper/stepper.styles.js +16 -5
  321. package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
  322. package/dist/components/navigation/tabs/tab/tab.js +11 -0
  323. package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
  324. package/dist/components/navigation/tabs/tab-group/tab-group.js +9 -10
  325. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +21 -16
  326. package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
  327. package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
  328. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
  329. package/dist/components/navigation/toolbar/toolbar.d.ts +30 -62
  330. package/dist/components/navigation/toolbar/toolbar.js +43 -105
  331. package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
  332. package/dist/events/table-row-click.event.d.ts +5 -4
  333. package/dist/events/table-row-click.event.js +10 -5
  334. package/dist/features/scheduler/calendar/calendar.d.ts +6 -6
  335. package/dist/features/scheduler/calendar/calendar.js +7 -6
  336. package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
  337. package/dist/features/scheduler/scheduler/scheduler.d.ts +8 -8
  338. package/dist/features/scheduler/scheduler/scheduler.js +24 -47
  339. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
  340. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
  341. package/dist/features/scheduler/scheduler-event/scheduler-event.js +5 -3
  342. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +11 -5
  343. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +6 -4
  344. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +6 -7
  345. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
  346. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
  347. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
  348. package/dist/features/table/table/table-native.styles.d.ts +28 -0
  349. package/dist/features/table/table/table-native.styles.js +502 -0
  350. package/dist/features/table/table/table.d.ts +342 -294
  351. package/dist/features/table/table/table.js +820 -546
  352. package/dist/features/table/table/table.styles.js +31 -17
  353. package/dist/features/table/table/table.types.d.ts +11 -20
  354. package/dist/features/table/table/table.utils.d.ts +6 -36
  355. package/dist/features/table/table/table.utils.js +16 -65
  356. package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
  357. package/dist/features/table/table-action-bar/table-action-bar.js +15 -22
  358. package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
  359. package/dist/i18n/en.d.ts +99 -0
  360. package/dist/i18n/en.js +99 -0
  361. package/dist/i18n/fr.js +103 -2
  362. package/dist/index.d.ts +6 -10
  363. package/dist/index.js +7 -10
  364. package/dist/mixins/button.mixin.js +3 -2
  365. package/dist/mixins/check.mixin.js +15 -15
  366. package/dist/mixins/disabled.mixin.d.ts +5 -0
  367. package/dist/mixins/disabled.mixin.js +21 -1
  368. package/dist/mixins/editable.mixin.js +28 -5
  369. package/dist/mixins/field-appearance.mixin.js +3 -2
  370. package/dist/mixins/form.mixin.d.ts +21 -1
  371. package/dist/mixins/form.mixin.js +156 -27
  372. package/dist/mixins/localizable.mixin.d.ts +1 -1
  373. package/dist/mixins/localizable.mixin.js +1 -1
  374. package/dist/mixins/radio.mixin.js +15 -15
  375. package/dist/mixins/readonly.mixin.d.ts +2 -1
  376. package/dist/mixins/readonly.mixin.js +10 -3
  377. package/dist/mixins/validators.mixin.d.ts +7 -1
  378. package/dist/mixins/validators.mixin.js +36 -17
  379. package/dist/ssr/alert-ssr.css +187 -0
  380. package/dist/ssr/animate-ssr.css +3 -2
  381. package/dist/ssr/badge-ssr.css +67 -0
  382. package/dist/ssr/breadcrumb-ssr.css +41 -0
  383. package/dist/ssr/button-ssr.css +319 -0
  384. package/dist/ssr/card-ssr.css +196 -0
  385. package/dist/ssr/carousel-ssr.css +238 -0
  386. package/dist/ssr/checkbox-ssr.css +67 -0
  387. package/dist/ssr/chip-ssr.css +242 -0
  388. package/dist/ssr/collapse-ssr.css +151 -0
  389. package/dist/ssr/description-list-ssr.css +150 -0
  390. package/dist/ssr/field-ssr.css +163 -0
  391. package/dist/ssr/icon-ssr.css +266 -0
  392. package/dist/ssr/image-carousel-ssr.css +24 -0
  393. package/dist/ssr/links-ssr.css +8 -2
  394. package/dist/ssr/pagination-ssr.css +4 -0
  395. package/dist/ssr/rating-ssr.css +254 -0
  396. package/dist/ssr/sidebar-ssr.css +9 -1
  397. package/dist/ssr/skeleton-ssr.css +63 -0
  398. package/dist/ssr/table-ssr.css +472 -0
  399. package/dist/ssr/tabs-ssr.css +129 -0
  400. package/dist/ssr/tag-ssr.css +197 -0
  401. package/dist/ssr/toggle-group-ssr.css +182 -0
  402. package/dist/ssr/toolbar-ssr.css +34 -1
  403. package/dist/utils/drag-drop.utils.js +18 -2
  404. package/dist/utils/dropdown-menu.utils.d.ts +2 -2
  405. package/dist/utils/dropdown-menu.utils.js +4 -14
  406. package/dist/utils/implicit-submission.utils.d.ts +18 -0
  407. package/dist/utils/implicit-submission.utils.js +79 -0
  408. package/dist/utils/light-dom-styles.utils.d.ts +14 -0
  409. package/dist/utils/light-dom-styles.utils.js +37 -0
  410. package/dist/utils/listbox-options.utils.d.ts +11 -0
  411. package/dist/utils/listbox-options.utils.js +41 -3
  412. package/dist/utils/media.styles.d.ts +19 -0
  413. package/dist/utils/media.styles.js +23 -0
  414. package/dist/utils/motion.utils.d.ts +40 -0
  415. package/dist/utils/motion.utils.js +51 -0
  416. package/dist/utils/theme-generator.utils.d.ts +6 -1
  417. package/dist/utils/theme-generator.utils.js +59 -20
  418. package/package.json +39 -31
  419. package/styles/breakpoints.scss +8 -0
  420. package/styles/eunomia-grid.scss +6 -0
  421. package/styles/themes/eunomia-theme.scss +4 -3
  422. package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  423. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  424. package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  425. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  426. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  427. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  428. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  429. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  430. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  431. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  432. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  433. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  434. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  435. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  436. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  437. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  438. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  439. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  440. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  441. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  442. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  443. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  444. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  445. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  446. package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  447. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  448. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  449. package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  450. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  451. package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  452. package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  453. package/dist/cdn/components/chunks/chunk-32DTNR52.js +0 -1
  454. package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
  455. package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
  456. package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
  457. package/dist/cdn/components/chunks/chunk-E4IS25H7.js +0 -1
  458. package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
  459. package/dist/cdn/components/chunks/chunk-EAKYD33D.js +0 -110
  460. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
  461. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
  462. package/dist/cdn/components/chunks/chunk-KBH5PCUO.js +0 -3
  463. package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
  464. package/dist/cdn/components/chunks/chunk-LFCXUVDO.js +0 -1
  465. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
  466. package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
  467. package/dist/cdn/components/chunks/chunk-S2UCEWNG.js +0 -207
  468. package/dist/cdn/components/chunks/chunk-SJWRE6PW.js +0 -1
  469. package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
  470. package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
  471. package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
  472. package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
  473. package/dist/cdn/components/eun-table-cell.js +0 -1
  474. package/dist/cdn/components/eun-table-column.js +0 -1
  475. package/dist/cdn/components/eun-table-header.js +0 -1
  476. package/dist/cdn/components/eun-table-item.js +0 -1
  477. package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
  478. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  479. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  480. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
  481. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
  482. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
  483. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
  484. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
  485. package/dist/features/table/native-table.css +0 -276
  486. package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
  487. package/dist/features/table/shared-styles/table-row.styles.js +0 -47
  488. package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
  489. package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
  490. package/dist/features/table/table-cell/table-cell.d.ts +0 -59
  491. package/dist/features/table/table-cell/table-cell.js +0 -73
  492. package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
  493. package/dist/features/table/table-cell/table-cell.styles.js +0 -46
  494. package/dist/features/table/table-column/table-column.d.ts +0 -73
  495. package/dist/features/table/table-column/table-column.js +0 -89
  496. package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
  497. package/dist/features/table/table-column/table-column.styles.js +0 -51
  498. package/dist/features/table/table-header/table-header.d.ts +0 -102
  499. package/dist/features/table/table-header/table-header.js +0 -165
  500. package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
  501. package/dist/features/table/table-header/table-header.styles.js +0 -147
  502. package/dist/features/table/table-item/table-item.d.ts +0 -179
  503. package/dist/features/table/table-item/table-item.js +0 -291
  504. package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
  505. package/dist/features/table/table-item/table-item.styles.js +0 -404
  506. package/dist/features/table/table-managed/table-managed.d.ts +0 -19
  507. package/dist/features/table/table-managed/table-managed.js +0 -128
  508. package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
  509. package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
  510. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
  511. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
  512. package/dist/mixins/table-row.mixin.d.ts +0 -37
  513. package/dist/mixins/table-row.mixin.js +0 -103
  514. package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  515. package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  516. package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
@@ -21,7 +21,9 @@ import { ChangeEvent } from "../../../events/change.event.js";
21
21
  import { formLabelsStyles } from "../shared-styles/form-labels.styles.js";
22
22
  import { selectStyles } from "./select.styles.js";
23
23
  import { isWebKit } from "../../../utils/browser.utils.js";
24
- import { parseListboxOptions, renderHighlightedLabel, } from "../../../utils/listbox-options.utils.js";
24
+ import { parseListboxOptions, renderHighlightedLabel, renderListboxRows, } from "../../../utils/listbox-options.utils.js";
25
+ import { resolveDurationMs, resolveEasing, } from "../../../utils/motion.utils.js";
26
+ import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
25
27
  /**
26
28
  * Tag name of the select component.
27
29
  */
@@ -31,7 +33,7 @@ export const EunomiaSelectTagName = "eun-select";
31
33
  * @internal
32
34
  */
33
35
  const Base = DisabledMixin(ValidatorsMixin(LitElement));
34
- const EunomiaSelectMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base))))));
36
+ const EunomiaSelectMixinBase = LocalizableMixin(AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base)))))));
35
37
  /**
36
38
  * A field that picks one or more values from a list of option and optgroup
37
39
  * children. Set searchable to let the field also filter that list as the
@@ -67,7 +69,9 @@ const EunomiaSelectMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabe
67
69
  * @prop {boolean} [disabled=false] - Whether the field is disabled
68
70
  * @prop {boolean} [readonly=false] - Whether the field is read only
69
71
  * @prop {boolean} [required=false] - Whether a selection is required
70
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
72
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
73
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
74
+ * @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
71
75
  * @prop {Array<Validators<string | string[]>>} validators - The list of validation rules applied to the field value
72
76
  * @prop {EunomiaIconName} icon - An optional leading icon
73
77
  * @prop {string} [placeholder] - The placeholder shown when the field is empty. Defaults to searchPlaceholder when searchable, and selectPlaceholder otherwise
@@ -77,10 +81,10 @@ const EunomiaSelectMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabe
77
81
  * @attr {string} [select-placeholder='Select…'] - The fallback for placeholder when searchable isn't set
78
82
  * @prop {boolean} [readonlyAvailable=false] - Whether the field can switch between a static display and an editable one
79
83
  * @attr {boolean} [readonly-available=false] - Whether the field can switch between a static display and an editable one
80
- * @prop {string} [emptyValueLabel='No value set'] - Text displayed in place of the value when readonly and empty
84
+ * @prop {string} [emptyValueLabel] - Text displayed in place of the value when readonly and empty. Defaults to the localized string for the current locale (English: "No value set")
81
85
  * @prop {string} [noResultsLabel='No results'] - Text displayed in the dropdown when no option matches the search
82
- * @prop {string} [confirmLabel='Confirm'] - The label of the confirm button, shown while editing in readonlyAvailable mode or while multiple and the dropdown is open. Set to an empty string to hide the button entirely
83
- * @attr {string} [confirm-label='Confirm'] - The label of the confirm button, shown while editing in readonlyAvailable mode or while multiple and the dropdown is open. Set to an empty string to hide the button entirely
86
+ * @prop {string} [confirmLabel] - The label of the confirm button, shown while editing in readonlyAvailable mode or while multiple and the dropdown is open. Set to an empty string to hide the button entirely. Defaults to the localized string for the current locale (English: "Confirm")
87
+ * @attr {string} [confirm-label] - The label of the confirm button, shown while editing in readonlyAvailable mode or while multiple and the dropdown is open. Set to an empty string to hide the button entirely. Defaults to the localized string for the current locale (English: "Confirm")
84
88
  * @prop {boolean} [noAnimation=false] - Disables the dropdown panel's open and close height transition, on top of the automatic reduced motion handling
85
89
  * @prop {boolean} [loading=false] - Whether options are currently being fetched. Shows a spinning loading indicator in place of the dropdown arrow, and a single disabled loading row instead of the option list. Has no effect while native, beyond the arrow swap
86
90
  * @prop {string} [loadingLabel='Loading…'] - The accessible label announced by the loading indicator while loading is set
@@ -93,9 +97,12 @@ const EunomiaSelectMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabe
93
97
  * @cssprop [--field-border-color-focus] - Sets the border color on focus
94
98
  * @cssprop [--field-border-radius] - Sets the corner radius of the field
95
99
  * @cssprop [--field-padding] - Sets the padding of the field
100
+ * @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
101
+ * @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
96
102
  * @cssprop [--field-text-color] - Sets the text color of the field
97
103
  * @cssprop [--field-placeholder-color] - Sets the color of the placeholder
98
104
  * @cssprop [--field-icon-color] - Sets the color of the leading icon and the dropdown arrow
105
+ * @cssprop [--field-loader-color] - Sets the color of the spinner shown while loading, the icon color by default. Shared with the search component
99
106
  * @cssprop [--field-error-color] - Sets the color of the error message
100
107
  * @cssprop [--field-hint-color] - Sets the color of the hint message
101
108
  * @cssprop [--field-focus-outline-color] - Sets the color of the focus outline
@@ -109,11 +116,19 @@ const EunomiaSelectMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabe
109
116
  * @cssprop [--field-listbox-transition-duration=200ms] - Sets the duration of the dropdown panel's open and close height transition, disabled entirely by the no-animation attribute or reduced motion settings
110
117
  * @cssprop [--eun-viewport-inset-top] - Reserves space, such as a page's sticky header height, that the dropdown panel keeps clear of at the top of the viewport. Set on the root or an ancestor rather than on the field itself
111
118
  * @cssprop [--eun-viewport-inset-bottom] - The same as eun-viewport-inset-top, reserved at the bottom of the viewport, such as for a sticky footer
119
+ * @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
120
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
121
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
112
122
  * @element eun-select
113
123
  */
114
124
  let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectMixinBase {
115
125
  constructor() {
116
126
  super(...arguments);
127
+ /**
128
+ * Every change is a complete choice, so its error shows right away.
129
+ * @internal
130
+ */
131
+ this.errorOnChange = true;
117
132
  /**
118
133
  * Indicates whether the field filters its options as the user types.
119
134
  * When false, the field is read-only and driven by Arrow keys, `Enter`,
@@ -157,27 +172,11 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
157
172
  * @default Select…
158
173
  */
159
174
  this.selectPlaceholder = "Select…";
160
- /**
161
- * Text displayed in place of the value when readonly and empty.
162
- * @default No value set
163
- */
164
- this.emptyValueLabel = "No value set";
165
175
  /**
166
176
  * Text displayed in the dropdown when no option matches the search.
167
177
  * @default No results
168
178
  */
169
179
  this.noResultsLabel = "No results";
170
- /**
171
- * Label of the confirm button — shown while editing in `readonlyAvailable`
172
- * mode, or while `multiple` and the dropdown is open (see the class doc).
173
- * Slot content into `confirm` instead for anything richer than plain text
174
- * (an icon, for instance) ; slotted content, when present, overrides this.
175
- * Set to an empty string to hide the button entirely — e.g. for a
176
- * `readonlyAvailable` field where picking an option is already confirmation
177
- * enough on its own, and the extra button would just be clutter.
178
- * @default Confirm
179
- */
180
- this.confirmLabel = "Confirm";
181
180
  /**
182
181
  * Indicates whether options are currently being fetched (e.g. a
183
182
  * server-filtered `searchable` field). Shows a spinning `eun-loader` in
@@ -507,7 +506,8 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
507
506
  * @internal
508
507
  */
509
508
  get hasConfirmContent() {
510
- return this.hasConfirmSlot || !!this.confirmLabel;
509
+ return (this.hasConfirmSlot ||
510
+ !!(this.confirmLabel ?? this.dictionary.common.confirm));
511
511
  }
512
512
  /**
513
513
  * The normalised search query driving both filtering and highlighting.
@@ -600,9 +600,22 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
600
600
  }
601
601
  if (_changedProperties.has("readonly") ||
602
602
  _changedProperties.has("disabled")) {
603
- this.setAttribute("tabindex", this.disabled || this.readonly ? "-1" : "0");
603
+ if (this.disabled || this.readonly) {
604
+ this.setAttribute("tabindex", "-1");
605
+ }
606
+ else {
607
+ this.removeAttribute("tabindex");
608
+ }
604
609
  }
605
610
  }
611
+ /**
612
+ * The host is never a tab stop of its own : sequential navigation goes
613
+ * straight to the controls inside, in both directions, and
614
+ * {@link focus} covers a direct call on the host.
615
+ */
616
+ get hostTabStop() {
617
+ return false;
618
+ }
606
619
  /**
607
620
  * Returns the field element to focus/anchor on validation errors.
608
621
  *
@@ -656,7 +669,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
656
669
  * The listbox's open/close animation duration, in ms : `0` if `
657
670
  * noAnimation` is set or the browser reports `prefers-reduced-motion:
658
671
  * reduce`, otherwise `--field-listbox-transition-duration` (default
659
- * `200ms`).
672
+ * `--eun-duration-m`).
660
673
  *
661
674
  * @param el the listbox to read `--field-listbox-transition-duration` off.
662
675
  * @private
@@ -666,18 +679,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
666
679
  window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
667
680
  return 0;
668
681
  }
669
- const raw = getComputedStyle(el)
670
- .getPropertyValue("--field-listbox-transition-duration")
671
- .trim();
672
- if (raw) {
673
- const parsed = raw.endsWith("ms")
674
- ? Number.parseFloat(raw)
675
- : Number.parseFloat(raw) * 1000;
676
- if (Number.isFinite(parsed) && parsed >= 0) {
677
- return parsed;
678
- }
679
- }
680
- return 200;
682
+ return resolveDurationMs(el, "--field-listbox-transition-duration", "m", 200);
681
683
  }
682
684
  /**
683
685
  * Plays the fade/scaleY-in, replacing any {@link listboxAnimation}
@@ -695,7 +697,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
695
697
  this.listboxAnimation = listbox.animate([
696
698
  { opacity: 0, transform: "scaleY(0.01)" },
697
699
  { opacity: 1, transform: "scaleY(1)" },
698
- ], { duration, easing: "ease", fill: "forwards" });
700
+ ], { duration, easing: resolveEasing(listbox), fill: "forwards" });
699
701
  }
700
702
  /**
701
703
  * Closes the dropdown panel, if open. All state cleanup happens in
@@ -738,7 +740,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
738
740
  const animation = listbox.animate([
739
741
  { opacity: 1, transform: "scaleY(1)" },
740
742
  { opacity: 0, transform: "scaleY(0.01)" },
741
- ], { duration, easing: "ease", fill: "forwards" });
743
+ ], { duration, easing: resolveEasing(listbox), fill: "forwards" });
742
744
  this.listboxAnimation = animation;
743
745
  animation.finished
744
746
  .then(() => {
@@ -932,6 +934,27 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
932
934
  }
933
935
  break;
934
936
  }
937
+ case " ": {
938
+ // Space opens the list, then picks the highlighted option, as in
939
+ // a select-only combobox, unless it continues a type-ahead search
940
+ // or is typed into the search text.
941
+ if (this.searchable || this.typeaheadBuffer) {
942
+ if (!this.searchable) {
943
+ this.handleTypeahead(event);
944
+ }
945
+ break;
946
+ }
947
+ event.preventDefault();
948
+ if (!this.isOpen) {
949
+ this.openListbox();
950
+ break;
951
+ }
952
+ const option = this.filteredOptions[this.highlightedIndex];
953
+ if (option) {
954
+ this.handleSelect(option);
955
+ }
956
+ break;
957
+ }
935
958
  default:
936
959
  if (!this.searchable) {
937
960
  this.handleTypeahead(event);
@@ -991,27 +1014,17 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
991
1014
  return renderHighlightedLabel(label, this.effectiveQuery);
992
1015
  }
993
1016
  /**
994
- * Renders the dropdown's option rows, inserting a non-interactive group
995
- * heading whenever an option's `group` differs from the previous row's.
1017
+ * Renders the dropdown's option rows, grouped under their `optgroup`
1018
+ * label (see {@link renderListboxRows}).
996
1019
  *
997
1020
  * @param options the options to render, already filtered.
998
1021
  * @returns the rendered rows.
999
1022
  * @private
1000
1023
  */
1001
1024
  renderOptionRows(options) {
1002
- const rows = [];
1003
- let lastGroup;
1004
- options.forEach((option, index) => {
1005
- if (option.group !== lastGroup) {
1006
- lastGroup = option.group;
1007
- if (option.group) {
1008
- rows.push(html `<li class="group-label" role="presentation">
1009
- ${option.group}
1010
- </li>`);
1011
- }
1012
- }
1025
+ return renderListboxRows(options, (option, index) => {
1013
1026
  const selected = this.isSelected(option);
1014
- rows.push(html `
1027
+ return html `
1015
1028
  <li
1016
1029
  id="listbox-option-${index}"
1017
1030
  role="option"
@@ -1037,9 +1050,8 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
1037
1050
  ? this.renderHighlighted(option.label)
1038
1051
  : option.label}
1039
1052
  </li>
1040
- `);
1053
+ `;
1041
1054
  });
1042
- return rows;
1043
1055
  }
1044
1056
  /**
1045
1057
  * Whether the confirm trigger should render at all right now — while
@@ -1092,7 +1104,9 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
1092
1104
  }
1093
1105
  return html `
1094
1106
  <button type="button" id="confirm-link" @click=${this.handleConfirmClick}>
1095
- <slot name="confirm">${this.confirmLabel}</slot>
1107
+ <slot name="confirm"
1108
+ >${this.confirmLabel ?? this.dictionary.common.confirm}</slot
1109
+ >
1096
1110
  </button>
1097
1111
  `;
1098
1112
  }
@@ -1115,7 +1129,8 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
1115
1129
  >
1116
1130
  <slot name="readonly-content">
1117
1131
  <span class=${classMap({ empty: !label })}
1118
- >${label || this.emptyValueLabel}</span
1132
+ >${label ||
1133
+ (this.emptyValueLabel ?? this.dictionary.common.noValue)}</span
1119
1134
  >
1120
1135
  </slot>
1121
1136
  </div>
@@ -1176,7 +1191,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
1176
1191
  aria-describedby=${hasDescription ? "description" : nothing}
1177
1192
  ?disabled=${this.disabled || this.readonly}
1178
1193
  ?required=${this.required}
1179
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
1194
+ aria-invalid=${this.showError}
1180
1195
  @change=${this.handleNativeChange}
1181
1196
  ></select>
1182
1197
  ${this.showConfirmLink ? this.renderConfirmLink() : nothing}
@@ -1225,7 +1240,7 @@ let EunomiaSelect = EunomiaSelect_1 = class EunomiaSelect extends EunomiaSelectM
1225
1240
  ?disabled=${this.disabled}
1226
1241
  ?readonly=${this.readonly || !this.searchable}
1227
1242
  aria-required=${this.required ? "true" : "false"}
1228
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
1243
+ aria-invalid=${this.showError}
1229
1244
  @pointerdown=${this.handleFieldPointerDown}
1230
1245
  @focus=${this.handleFieldActivate}
1231
1246
  @click=${this.handleFieldActivate}
@@ -28,7 +28,8 @@ const select = css `
28
28
  pointer-events: none;
29
29
  color: var(--_iconColor);
30
30
  font-size: var(--eun-font-size-s, 14px);
31
- transition: transform 0.15s ease;
31
+ transition: transform var(--eun-duration-s, 150ms)
32
+ var(--eun-easing-default, ease);
32
33
  }
33
34
  #select-arrow.open {
34
35
  transform: rotate(180deg);
@@ -37,7 +38,7 @@ const select = css `
37
38
  position: absolute;
38
39
  right: var(--eun-space-m, 16px);
39
40
  pointer-events: none;
40
- color: var(--_iconColor);
41
+ color: var(--field-loader-color, var(--_iconColor));
41
42
  }
42
43
  .has-icon #field {
43
44
  padding-inline-start: calc(
@@ -69,9 +69,9 @@ const base = css `
69
69
  outline: 2px solid transparent;
70
70
  cursor: pointer;
71
71
  transition:
72
- outline 0.2s ease-out,
73
- border-color 0.15s ease,
74
- background 0.15s ease;
72
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
73
+ border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
74
+ background var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
75
75
  user-select: none;
76
76
  }
77
77
 
@@ -82,7 +82,8 @@ const base = css `
82
82
  display: block;
83
83
  color: var(--_iconColor);
84
84
  margin-block-end: var(--eun-space-s, 8px);
85
- transition: color 0.15s ease;
85
+ transition: color var(--eun-duration-s, 150ms)
86
+ var(--eun-easing-default, ease);
86
87
  }
87
88
 
88
89
  slot {
@@ -9,11 +9,16 @@ import { css } from "lit";
9
9
  * [--field-border-color-focus] - Set a custom border color on focus state
10
10
  * [--field-border-radius] - Set a custom border radius to the field
11
11
  * [--field-padding] - Set a custom padding to the field
12
+ * [--field-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --field-padding is set
13
+ * [--field-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
12
14
  * [--field-text-color] - Set a custom text color
13
15
  * [--field-placeholder-color] - Set a custom placeholder color
14
16
  * [--field-icon-color] - Set a custom color to the leading icon and action buttons
15
17
  * [--field-error-color] - Set a custom color to the error state content
16
18
  * [--field-hint-color] - Set a custom color to the hint message
19
+ * [--field-font-size] - Set a custom font size for the field's value and placeholder
20
+ * [--field-label-font-size] - Set a custom font size for the label (see label.styles.ts)
21
+ * [--field-message-font-size] - Set a custom font size for the hint, error and instructions (see form-labels.styles.ts)
17
22
  * [--field-focus-outline-color] - Set a custom color to the focus outline
18
23
  * [--field-edit-confirm-color] - Set a custom color for the confirm button in `readonly-available` edit mode
19
24
  * [--field-edit-cancel-color] - Set a custom color for the cancel button in `readonly-available` edit mode
@@ -38,14 +43,18 @@ const base = css `
38
43
  --field-focus-outline-color,
39
44
  var(--eun-color-primary-500, #3d6fff)
40
45
  );
41
- --_borderRadius: var(--field-border-radius, var(--eun-border-radius-m, 8px));
46
+ --_borderRadius: var(
47
+ --field-border-radius,
48
+ var(--eun-border-radius-m, 8px)
49
+ );
42
50
  --_padding: var(
43
51
  --field-padding,
44
- var(--eun-space-s, 8px) var(--eun-space-s, 8px)
52
+ var(--field-padding-block, var(--eun-space-s, 8px))
53
+ var(--field-padding-inline, var(--eun-space-s, 8px))
45
54
  );
46
55
  --_shadow: var(--field-shadow, none);
47
56
  font-family: var(--eun-font-family, "Mulish", sans-serif);
48
- font-size: var(--eun-font-size-s, 14px);
57
+ font-size: var(--field-font-size, var(--eun-font-size-s, 14px));
49
58
  display: block;
50
59
  width: 100%;
51
60
  outline: none;
@@ -72,8 +81,8 @@ const base = css `
72
81
  box-shadow: var(--_shadow);
73
82
  box-sizing: border-box;
74
83
  transition:
75
- border-color 0.15s ease,
76
- outline-color 0.15s ease;
84
+ border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
85
+ outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
77
86
  appearance: none;
78
87
  }
79
88
  #field::placeholder {
@@ -176,7 +185,8 @@ const base = css `
176
185
  border-radius: var(--_borderRadius);
177
186
  box-sizing: border-box;
178
187
  cursor: text;
179
- transition: background-color 0.15s ease;
188
+ transition: background-color var(--eun-duration-s, 150ms)
189
+ var(--eun-easing-default, ease);
180
190
  }
181
191
  #readonly-display:hover {
182
192
  background-color: var(--eun-content-hover, #edeff0);
@@ -4,7 +4,7 @@ const base = css `
4
4
  font-family: var(--eun-font-family, "Mulish", sans-serif);
5
5
  display: block;
6
6
  margin-block-start: var(--eun-space-xs, 4px);
7
- font-size: var(--eun-font-size-xs, 12px);
7
+ font-size: var(--field-message-font-size, var(--eun-font-size-xs, 12px));
8
8
  margin-block: 0;
9
9
  }
10
10
  #description span {
@@ -89,7 +89,17 @@ const listbox = css `
89
89
  text-align: center;
90
90
  color: var(--_placeholderColor);
91
91
  }
92
+ #listbox li.option-group {
93
+ padding: 0;
94
+ cursor: default;
95
+ }
96
+ #listbox .group-options {
97
+ margin: 0;
98
+ padding: 0;
99
+ list-style: none;
100
+ }
92
101
  #listbox .group-label {
102
+ padding: var(--eun-space-s, 8px) var(--eun-space-m, 16px);
93
103
  cursor: default;
94
104
  padding-block-end: var(--eun-space-xxs, 1.6px);
95
105
  font-size: var(--eun-font-size-xs, 12px);
@@ -45,7 +45,9 @@ declare const EunomiaSliderMixinBase: Constructor<EunomiaSliderBase>;
45
45
  * @prop {boolean} [disabled=false] - Whether the field is disabled
46
46
  * @prop {boolean} [readonly=false] - Whether the field is read only
47
47
  * @prop {boolean} [required=false] - Present for API consistency with every other field, but inert here, since a slider's value can never be empty the way a text field's can
48
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
48
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
49
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
50
+ * @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
49
51
  * @attr {boolean} [hide-error=false] - Whether the errors are hidden
50
52
  * @prop {boolean} [hideTooltip=false] - Hides the floating value bubble that otherwise appears above the thumb while dragging or focused
51
53
  * @attr {boolean} [hide-tooltip=false] - Hides the floating value bubble that otherwise appears above the thumb while dragging or focused
@@ -71,6 +73,8 @@ declare const EunomiaSliderMixinBase: Constructor<EunomiaSliderBase>;
71
73
  * @cssprop [--slider-error-color] - Sets the color of the error message
72
74
  * @cssprop [--slider-hint-color] - Sets the color of the hint message
73
75
  * @cssprop [--slider-focus-outline-color] - Sets the color of the focus outline drawn around the thumb
76
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
77
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
74
78
  * @element eun-slider
75
79
  */
76
80
  export declare class EunomiaSlider extends EunomiaSliderMixinBase {
@@ -175,14 +179,6 @@ export declare class EunomiaSlider extends EunomiaSliderMixinBase {
175
179
  private hasFocus;
176
180
  connectedCallback(): void;
177
181
  disconnectedCallback(): void;
178
- /**
179
- * Redirects focus to the native field whenever the host itself receives
180
- * it — the same pattern `eun-counter`/`eun-input` use, so the host stays
181
- * in the tab order (`DisabledMixin`) rather than excluded via
182
- * `tabindex="-1"`, which would break Tab from reaching the field at all.
183
- * @private
184
- */
185
- private readonly handleHostFocus;
186
182
  /**
187
183
  * The value a native `<input type="range">` with no `value` attribute
188
184
  * resolves to on its own.
@@ -240,6 +236,12 @@ export declare class EunomiaSlider extends EunomiaSliderMixinBase {
240
236
  * @private
241
237
  */
242
238
  private get tickValues();
239
+ /**
240
+ * The host is never a tab stop of its own : sequential navigation goes
241
+ * straight to the controls inside, in both directions, and
242
+ * {@link focus} covers a direct call on the host.
243
+ */
244
+ protected get hostTabStop(): boolean;
243
245
  /**
244
246
  * Returns the field element to focus/anchor on validation errors.
245
247
  *
@@ -57,7 +57,9 @@ const EunomiaSliderMixinBase = FormLabelMixin(ReadonlyMixin(FormMixin(Base)));
57
57
  * @prop {boolean} [disabled=false] - Whether the field is disabled
58
58
  * @prop {boolean} [readonly=false] - Whether the field is read only
59
59
  * @prop {boolean} [required=false] - Present for API consistency with every other field, but inert here, since a slider's value can never be empty the way a text field's can
60
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
60
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
61
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
62
+ * @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
61
63
  * @attr {boolean} [hide-error=false] - Whether the errors are hidden
62
64
  * @prop {boolean} [hideTooltip=false] - Hides the floating value bubble that otherwise appears above the thumb while dragging or focused
63
65
  * @attr {boolean} [hide-tooltip=false] - Hides the floating value bubble that otherwise appears above the thumb while dragging or focused
@@ -83,6 +85,8 @@ const EunomiaSliderMixinBase = FormLabelMixin(ReadonlyMixin(FormMixin(Base)));
83
85
  * @cssprop [--slider-error-color] - Sets the color of the error message
84
86
  * @cssprop [--slider-hint-color] - Sets the color of the hint message
85
87
  * @cssprop [--slider-focus-outline-color] - Sets the color of the focus outline drawn around the thumb
88
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
89
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
86
90
  * @element eun-slider
87
91
  */
88
92
  let EunomiaSlider = class EunomiaSlider extends EunomiaSliderMixinBase {
@@ -130,16 +134,6 @@ let EunomiaSlider = class EunomiaSlider extends EunomiaSliderMixinBase {
130
134
  * @internal
131
135
  */
132
136
  this.hasFocus = false;
133
- /**
134
- * Redirects focus to the native field whenever the host itself receives
135
- * it — the same pattern `eun-counter`/`eun-input` use, so the host stays
136
- * in the tab order (`DisabledMixin`) rather than excluded via
137
- * `tabindex="-1"`, which would break Tab from reaching the field at all.
138
- * @private
139
- */
140
- this.handleHostFocus = () => {
141
- this.fieldEl?.focus();
142
- };
143
137
  /**
144
138
  * Updates the value from dragging or a keyboard-driven native step, and
145
139
  * notifies consumers — fires on every native `input` event, so live and
@@ -253,10 +247,8 @@ let EunomiaSlider = class EunomiaSlider extends EunomiaSliderMixinBase {
253
247
  connectedCallback() {
254
248
  super.connectedCallback?.();
255
249
  this.value ??= this.clamp(this.defaultRangeValue);
256
- this.addEventListener("focus", this.handleHostFocus);
257
250
  }
258
251
  disconnectedCallback() {
259
- this.removeEventListener("focus", this.handleHostFocus);
260
252
  window.removeEventListener("pointerup", this.handlePointerUp);
261
253
  window.removeEventListener("pointercancel", this.handlePointerUp);
262
254
  super.disconnectedCallback?.();
@@ -358,6 +350,14 @@ let EunomiaSlider = class EunomiaSlider extends EunomiaSliderMixinBase {
358
350
  values.push(this.max);
359
351
  return values;
360
352
  }
353
+ /**
354
+ * The host is never a tab stop of its own : sequential navigation goes
355
+ * straight to the controls inside, in both directions, and
356
+ * {@link focus} covers a direct call on the host.
357
+ */
358
+ get hostTabStop() {
359
+ return false;
360
+ }
361
361
  /**
362
362
  * Returns the field element to focus/anchor on validation errors.
363
363
  *
@@ -431,7 +431,7 @@ let EunomiaSlider = class EunomiaSlider extends EunomiaSliderMixinBase {
431
431
  step=${this.step}
432
432
  .value=${String(value)}
433
433
  ?disabled=${this.disabled}
434
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
434
+ aria-invalid=${this.showError}
435
435
  aria-label=${ifDefined(this.label)}
436
436
  aria-describedby=${hasDescription ? "description" : nothing}
437
437
  @input=${this.handleInput}
@@ -96,7 +96,8 @@ const base = css `
96
96
  border-radius: 50%;
97
97
  background: var(--_tickColor);
98
98
  transform: translate(-50%, -50%);
99
- transition: background-color 0.15s ease;
99
+ transition: background-color var(--eun-duration-s, 150ms)
100
+ var(--eun-easing-default, ease);
100
101
  }
101
102
 
102
103
  .tick.tick-active {
@@ -173,9 +174,9 @@ const base = css `
173
174
  outline: 2px solid transparent;
174
175
  cursor: grab;
175
176
  transition:
176
- transform 0.1s ease,
177
- outline 0.2s ease-out,
178
- outline-color 0.15s ease;
177
+ transform var(--eun-duration-xs, 100ms) var(--eun-easing-default, ease),
178
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
179
+ outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
179
180
  }
180
181
 
181
182
  #field:active::-webkit-slider-thumb {
@@ -211,9 +212,9 @@ const base = css `
211
212
  outline: 2px solid transparent;
212
213
  cursor: grab;
213
214
  transition:
214
- outline 0.2s ease-out,
215
- transform 0.1s ease,
216
- outline-color 0.15s ease;
215
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
216
+ transform var(--eun-duration-xs, 100ms) var(--eun-easing-default, ease),
217
+ outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
217
218
  }
218
219
 
219
220
  #field:active::-moz-range-thumb {
@@ -38,7 +38,9 @@ declare const EunomiaSwitchMixinBase: Constructor<EunomiaSwitchBase>;
38
38
  * @prop {boolean} [readonly=false] - Whether the switch is read only
39
39
  * @prop {boolean} [hideIcon=false] - Whether the icon inside the thumb is hidden
40
40
  * @attr {boolean} [hide-icon=false] - Whether the icon inside the thumb is hidden
41
- * @prop {boolean} [hideError=false] - Whether the error message is hidden
41
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
42
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
43
+ * @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
42
44
  * @attr {boolean} [hide-error=false] - Whether the error message is hidden
43
45
  * @prop {boolean} [required=false] - Whether the switch must be turned on to be valid
44
46
  * @prop {string} name - The name of the switch field
@@ -62,6 +64,8 @@ declare const EunomiaSwitchMixinBase: Constructor<EunomiaSwitchBase>;
62
64
  * @cssprop [--switch-error-color] - Sets the color of the error message
63
65
  * @cssprop [--switch-hint-color] - Sets the color of the hint message
64
66
  * @cssprop [--switch-focus-outline-color] - Sets the color of the focus outline
67
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
68
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
65
69
  * @fires click - Fired when the switch is clicked
66
70
  * @fires {ChangeEvent} eunchange - Fired when the switch's checked state changes
67
71
  * @element eun-switch
@@ -43,7 +43,9 @@ const EunomiaSwitchMixinBase = CheckMixin(ReadonlyMixin(FormMixin(DisabledMixin(
43
43
  * @prop {boolean} [readonly=false] - Whether the switch is read only
44
44
  * @prop {boolean} [hideIcon=false] - Whether the icon inside the thumb is hidden
45
45
  * @attr {boolean} [hide-icon=false] - Whether the icon inside the thumb is hidden
46
- * @prop {boolean} [hideError=false] - Whether the error message is hidden
46
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
47
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
48
+ * @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
47
49
  * @attr {boolean} [hide-error=false] - Whether the error message is hidden
48
50
  * @prop {boolean} [required=false] - Whether the switch must be turned on to be valid
49
51
  * @prop {string} name - The name of the switch field
@@ -67,6 +69,8 @@ const EunomiaSwitchMixinBase = CheckMixin(ReadonlyMixin(FormMixin(DisabledMixin(
67
69
  * @cssprop [--switch-error-color] - Sets the color of the error message
68
70
  * @cssprop [--switch-hint-color] - Sets the color of the hint message
69
71
  * @cssprop [--switch-focus-outline-color] - Sets the color of the focus outline
72
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
73
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
70
74
  * @fires click - Fired when the switch is clicked
71
75
  * @fires {ChangeEvent} eunchange - Fired when the switch's checked state changes
72
76
  * @element eun-switch
@@ -39,7 +39,7 @@ const base = css `
39
39
  );
40
40
  --_trackBorderWidth: var(--eun-border-width-s, 1px);
41
41
  font-family: var(--eun-font-family, "Mulish", sans-serif);
42
- font-size: var(--eun-font-size-s, 14px);
42
+ font-size: var(--field-label-font-size, var(--eun-font-size-s, 14px));
43
43
  display: flex;
44
44
  width: 100%;
45
45
  outline: none;
@@ -166,9 +166,10 @@ const base = css `
166
166
  box-sizing: border-box;
167
167
  outline: 2px solid transparent;
168
168
  transition:
169
- background-color 0.15s ease,
170
- outline 0.3s ease,
171
- border-color 0.15s ease;
169
+ background-color var(--eun-duration-s, 150ms)
170
+ var(--eun-easing-default, ease),
171
+ outline var(--eun-duration-xl, 300ms) var(--eun-easing-default, ease),
172
+ border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
172
173
  }
173
174
 
174
175
  #thumb {
@@ -183,7 +184,8 @@ const base = css `
183
184
  display: flex;
184
185
  align-items: center;
185
186
  justify-content: center;
186
- transition: transform 0.15s ease;
187
+ transition: transform var(--eun-duration-s, 150ms)
188
+ var(--eun-easing-default, ease);
187
189
  }
188
190
  :host([aria-checked="true"]) #thumb {
189
191
  transform: translateX(