@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
@@ -23,6 +23,8 @@ import { colorPickerStyles } from "./color-picker.styles.js";
23
23
  import { isWebKit } from "../../../utils/browser.utils.js";
24
24
  import { normalizeHexColor } from "../../../utils/color.utils.js";
25
25
  import { parseListboxOptions, } from "../../../utils/listbox-options.utils.js";
26
+ import { resolveDurationMs, resolveEasing, } from "../../../utils/motion.utils.js";
27
+ import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
26
28
  /**
27
29
  * Tag name of the color picker component.
28
30
  */
@@ -32,7 +34,7 @@ export const EunomiaColorPickerTagName = "eun-color-picker";
32
34
  * @internal
33
35
  */
34
36
  const Base = DisabledMixin(ValidatorsMixin(LitElement));
35
- const EunomiaColorPickerMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base))))));
37
+ const EunomiaColorPickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base)))))));
36
38
  /**
37
39
  * A field for picking a color, as a `#rrggbb` hex string. Declare preset
38
40
  * swatches as light DOM `option` children, exactly like `eun-select` does
@@ -75,12 +77,14 @@ const EunomiaColorPickerMixinBase = AnchorPositionMixin(FieldAppearanceMixin(For
75
77
  * @prop {boolean} [disabled=false] - Whether the field is disabled
76
78
  * @prop {boolean} [readonly=false] - Whether the field is read only
77
79
  * @prop {boolean} [required=false] - Whether a color is required
78
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
80
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
81
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
82
+ * @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
79
83
  * @prop {Array<Validators<string>>} validators - The list of validation rules applied to the field value
80
84
  * @prop {boolean} [readonlyAvailable=false] - Whether the field can switch between a static display and an editable one
81
85
  * @attr {boolean} [readonly-available=false] - Whether the field can switch between a static display and an editable one
82
- * @prop {string} [emptyValueLabel='No color selected'] - Text displayed in place of the value when empty
83
- * @attr {string} [empty-value-label='No color selected'] - Text displayed in place of the value when empty
86
+ * @prop {string} [emptyValueLabel] - Text displayed in place of the value when empty. Defaults to the localized string for the current locale (English: "No color selected")
87
+ * @attr {string} [empty-value-label] - Text displayed in place of the value when empty. Defaults to the localized string for the current locale (English: "No color selected")
84
88
  * @prop {string} [swatchesLabel='Presets'] - Heading shown above the preset swatches, while any are declared
85
89
  * @attr {string} [swatches-label='Presets'] - Heading shown above the preset swatches
86
90
  * @prop {string} [customLabel='Custom'] - Heading shown above the custom color row
@@ -89,10 +93,10 @@ const EunomiaColorPickerMixinBase = AnchorPositionMixin(FieldAppearanceMixin(For
89
93
  * @attr {string} [native-input-label='Pick a custom color'] - Accessible label for the native OS color picker
90
94
  * @prop {string} [hexInputLabel='Hex color'] - Accessible label for the hex text input
91
95
  * @attr {string} [hex-input-label='Hex color'] - Accessible label for the hex text input
92
- * @prop {string} [confirmLabel='Confirm'] - The label of the confirm button in edit mode
93
- * @attr {string} [confirm-label='Confirm'] - The label of the confirm button in edit mode
94
- * @prop {string} [cancelLabel='Cancel'] - The label of the cancel button in edit mode
95
- * @attr {string} [cancel-label='Cancel'] - The label of the cancel button in edit mode
96
+ * @prop {string} [confirmLabel] - The label of the confirm button in edit mode. Defaults to the localized string for the current locale (English: "Confirm")
97
+ * @attr {string} [confirm-label] - The label of the confirm button in edit mode. Defaults to the localized string for the current locale (English: "Confirm")
98
+ * @prop {string} [cancelLabel] - The label of the cancel button in edit mode. Defaults to the localized string for the current locale (English: "Cancel")
99
+ * @attr {string} [cancel-label] - The label of the cancel button in edit mode. Defaults to the localized string for the current locale (English: "Cancel")
96
100
  * @prop {boolean} [noAnimation=false] - Disables the dropdown panel's open and close height transition, on top of the automatic reduced motion handling
97
101
  * @attr {boolean} [no-animation=false] - Disables the dropdown panel's open and close height transition
98
102
  * @prop {boolean} [swatchOnly=false] - Renders as a native input type="color" styled as a plain swatch, with no panel, no presets, and no hex input at all — only the browser/OS's own color picker. Presets declared as option children are ignored while this is set
@@ -109,6 +113,8 @@ const EunomiaColorPickerMixinBase = AnchorPositionMixin(FieldAppearanceMixin(For
109
113
  * @cssprop [--field-border-color-focus] - Sets the border color on focus
110
114
  * @cssprop [--field-border-radius] - Sets the corner radius of the field
111
115
  * @cssprop [--field-padding] - Sets the padding of the field
116
+ * @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
117
+ * @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
112
118
  * @cssprop [--field-text-color] - Sets the text color of the field
113
119
  * @cssprop [--field-placeholder-color] - Sets the color of the empty-value text
114
120
  * @cssprop [--field-icon-color] - Sets the color of the dropdown arrow
@@ -122,16 +128,14 @@ const EunomiaColorPickerMixinBase = AnchorPositionMixin(FieldAppearanceMixin(For
122
128
  * @cssprop [--color-picker-swatch-size=20px] - Sets the diameter of every swatch
123
129
  * @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
124
130
  * @cssprop [--eun-viewport-inset-bottom] - The same as eun-viewport-inset-top, reserved at the bottom of the viewport
131
+ * @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
132
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
133
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
125
134
  * @element eun-color-picker
126
135
  */
127
136
  let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixinBase {
128
137
  constructor() {
129
138
  super(...arguments);
130
- /**
131
- * Text displayed in place of the value when empty.
132
- * @default No color selected
133
- */
134
- this.emptyValueLabel = "No color selected";
135
139
  /**
136
140
  * Heading shown above the preset swatches, while any are declared.
137
141
  * @default Presets
@@ -152,16 +156,6 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
152
156
  * @default Hex color
153
157
  */
154
158
  this.hexInputLabel = "Hex color";
155
- /**
156
- * Label of the confirm button in edit mode.
157
- * @default Confirm
158
- */
159
- this.confirmLabel = "Confirm";
160
- /**
161
- * Label of the cancel button in edit mode.
162
- * @default Cancel
163
- */
164
- this.cancelLabel = "Cancel";
165
159
  /**
166
160
  * Disables the dropdown panel's open/close height transition, both set
167
161
  * explicitly and whenever the browser reports `prefers-reduced-motion:
@@ -190,7 +184,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
190
184
  * opposite trade-off from `swatchOnly`. The leading native color swatch
191
185
  * that normally sits before the trigger button is gone entirely (the
192
186
  * button itself shows a plain decorative swatch instead), and the panel
193
- * drops its hex input, leaving only the preset radiogroup : nothing
187
+ * drops its hex input, leaving only the preset listbox : nothing
194
188
  * outside the curated palette is reachable at all, not even by typing a
195
189
  * hex value. Has no effect without at least one `option` declared —
196
190
  * with none, {@link renderInlineCustomField} already offers nothing but
@@ -202,7 +196,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
202
196
  this.presetsOnly = false;
203
197
  /**
204
198
  * Renders the declared `option` presets directly as the field itself,
205
- * the exact swatch radiogroup {@link renderPresets} already renders
199
+ * the exact swatch listbox {@link renderPresets} already renders
206
200
  * inside the panel, just in place of a trigger button and a panel to
207
201
  * open. No native color swatch, no hex input, no button, no popover of
208
202
  * any kind, since there is nothing left for one to open. Takes priority
@@ -227,6 +221,13 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
227
221
  * @internal
228
222
  */
229
223
  this.hexDraft = "";
224
+ /**
225
+ * The preset swatch last moved to with the keyboard, which holds the
226
+ * swatches' single tab stop ; `-1` until then, leaving it on the selected
227
+ * swatch (or the first one).
228
+ * @internal
229
+ */
230
+ this.presetFocusIndex = -1;
230
231
  /**
231
232
  * Reacts to the dropdown panel's native `toggle` event : the single
232
233
  * source of truth for open/close state. The panel is `popover="auto"`,
@@ -375,7 +376,10 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
375
376
  if (this.ariaLabel) {
376
377
  return this.ariaLabel;
377
378
  }
378
- return this.swatchOnly ? this.value || this.emptyValueLabel : undefined;
379
+ return this.swatchOnly
380
+ ? this.value ||
381
+ (this.emptyValueLabel ?? this.dictionary.colorPicker.noColor)
382
+ : undefined;
379
383
  }
380
384
  /**
381
385
  * Lifecycle hook called when the element is connected to the DOM.
@@ -406,6 +410,14 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
406
410
  this.hexDraft = this.value ?? "";
407
411
  }
408
412
  }
413
+ /**
414
+ * The host is never a tab stop of its own : sequential navigation goes
415
+ * straight to the controls inside, in both directions, and
416
+ * {@link focus} covers a direct call on the host.
417
+ */
418
+ get hostTabStop() {
419
+ return false;
420
+ }
409
421
  /**
410
422
  * Returns the field element to focus/anchor on validation errors.
411
423
  */
@@ -449,18 +461,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
449
461
  window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
450
462
  return 0;
451
463
  }
452
- const raw = getComputedStyle(el)
453
- .getPropertyValue("--field-listbox-transition-duration")
454
- .trim();
455
- if (raw) {
456
- const parsed = raw.endsWith("ms")
457
- ? Number.parseFloat(raw)
458
- : Number.parseFloat(raw) * 1000;
459
- if (Number.isFinite(parsed) && parsed >= 0) {
460
- return parsed;
461
- }
462
- }
463
- return 200;
464
+ return resolveDurationMs(el, "--field-listbox-transition-duration", "m", 200);
464
465
  }
465
466
  /**
466
467
  * Plays the fade/scaleY-in, replacing any {@link listboxAnimation}
@@ -477,7 +478,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
477
478
  this.listboxAnimation = listbox.animate([
478
479
  { opacity: 0, transform: "scaleY(0.01)" },
479
480
  { opacity: 1, transform: "scaleY(1)" },
480
- ], { duration, easing: "ease", fill: "forwards" });
481
+ ], { duration, easing: resolveEasing(listbox), fill: "forwards" });
481
482
  }
482
483
  /**
483
484
  * Closes the dropdown panel, if open. All state cleanup happens in
@@ -509,7 +510,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
509
510
  const animation = listbox.animate([
510
511
  { opacity: 1, transform: "scaleY(1)" },
511
512
  { opacity: 0, transform: "scaleY(0.01)" },
512
- ], { duration, easing: "ease", fill: "forwards" });
513
+ ], { duration, easing: resolveEasing(listbox), fill: "forwards" });
513
514
  this.listboxAnimation = animation;
514
515
  animation.finished
515
516
  .then(() => {
@@ -553,6 +554,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
553
554
  * @private
554
555
  */
555
556
  handleSelect(value) {
557
+ this.presetFocusIndex = -1;
556
558
  this.value = value;
557
559
  this.hexDraft = value;
558
560
  this.dispatchEvent(new ChangeEvent(this.value));
@@ -561,13 +563,11 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
561
563
  /**
562
564
  * Moves focus among preset swatches on Arrow/Home/End, without picking
563
565
  * anything : browsing the palette with the keyboard is deliberately
564
- * non-destructive, since arrow keys are also how a screen reader user
565
- * reviews the options before deciding on one. Picking only ever happens
566
- * through an explicit activation instead, a click or an Enter/Space
567
- * press, both already wired through the button's own native `click`
568
- * handling. Every swatch is its own real Tab stop (see
569
- * {@link renderSwatchRadiogroup}), so this is an alternative to Tab/
570
- * Shift+Tab for moving between them, not the only way to reach one.
566
+ * non-destructive, as a listbox whose selection doesn't follow focus.
567
+ * Picking only ever happens through an explicit activation instead, a
568
+ * click or an Enter/Space press, both already wired through the button's
569
+ * own native `click` handling. The swatches share a single Tab stop,
570
+ * which follows the focus (see {@link renderSwatchListbox}).
571
571
  * @param event the native keyboard event.
572
572
  * @param index the index of the swatch that received the key press.
573
573
  * @private
@@ -594,6 +594,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
594
594
  return;
595
595
  }
596
596
  event.preventDefault();
597
+ this.presetFocusIndex = nextIndex;
597
598
  this.presetButtonEls[nextIndex]?.focus();
598
599
  }
599
600
  /**
@@ -654,7 +655,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
654
655
  rounded
655
656
  type="button"
656
657
  @click=${this.handleConfirmClick}
657
- >${this.confirmLabel}</eun-button
658
+ >${this.confirmLabel ?? this.dictionary.common.confirm}</eun-button
658
659
  >
659
660
  <eun-button
660
661
  class="cancel"
@@ -663,7 +664,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
663
664
  rounded
664
665
  type="button"
665
666
  @click=${this.handleCancelClick}
666
- >${this.cancelLabel}</eun-button
667
+ >${this.cancelLabel ?? this.dictionary.common.cancel}</eun-button
667
668
  >
668
669
  </div>
669
670
  `;
@@ -691,14 +692,16 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
691
692
  ? nothing
692
693
  : html `
693
694
  <span class=${classMap({ empty: !this.value })}
694
- >${this.value || this.emptyValueLabel}</span
695
+ >${this.value ||
696
+ (this.emptyValueLabel ??
697
+ this.dictionary.colorPicker.noColor)}</span
695
698
  >
696
699
  `}
697
700
  </div>
698
701
  `;
699
702
  }
700
703
  /**
701
- * Renders the preset swatch radiogroup, while any presets are declared.
704
+ * Renders the preset swatch listbox, while any presets are declared.
702
705
  * @param presets the parsed preset options.
703
706
  * @returns the rendered template.
704
707
  * @private
@@ -707,43 +710,47 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
707
710
  return html `
708
711
  <div>
709
712
  <span id="swatches-label">${this.swatchesLabel}</span>
710
- ${this.renderSwatchRadiogroup(presets, this.swatchesLabel, false)}
713
+ ${this.renderSwatchListbox(presets, this.swatchesLabel, false)}
711
714
  </div>
712
715
  `;
713
716
  }
714
717
  /**
715
- * Renders the preset swatch radiogroup itself, shared between
718
+ * Renders the preset swatch listbox itself, shared between
716
719
  * {@link renderPresets} (inside the panel, under its own "Presets"
717
720
  * heading) and {@link renderInlinePresetsField} (as the whole field,
718
721
  * with no heading of its own since the field's own label already names
719
722
  * it).
720
723
  * @param presets the preset options to render.
721
- * @param ariaLabel the radiogroup's accessible name.
724
+ * @param ariaLabel the listbox's accessible name.
722
725
  * @param hasDescription whether a hint/error `#description` is being
723
726
  * rendered alongside the field, so it can be wired to `aria-describedby`
724
- * directly on the radiogroup ; only relevant when it stands in for the
727
+ * directly on the listbox ; only relevant when it stands in for the
725
728
  * whole field on its own, see {@link renderInlinePresetsField}.
726
729
  * @returns the rendered template.
727
730
  * @private
728
731
  */
729
- renderSwatchRadiogroup(presets, ariaLabel, hasDescription) {
732
+ renderSwatchListbox(presets, ariaLabel, hasDescription) {
733
+ const selectedIndex = presets.findIndex((preset) => preset.value === this.value);
734
+ const tabStop = this.presetFocusIndex >= 0 && this.presetFocusIndex < presets.length
735
+ ? this.presetFocusIndex
736
+ : Math.max(selectedIndex, 0);
730
737
  return html `
731
738
  <div
732
739
  id="swatches"
733
- role="radiogroup"
740
+ role="listbox"
734
741
  aria-label=${ifDefined(ariaLabel)}
735
742
  aria-describedby=${hasDescription ? "description" : nothing}
736
743
  >
737
744
  ${presets.map((preset, index) => {
738
- const checked = this.value === preset.value;
745
+ const selected = index === selectedIndex;
739
746
  return html `
740
747
  <button
741
748
  type="button"
742
749
  class="swatch-button"
743
- role="radio"
744
- aria-checked=${checked ? "true" : "false"}
750
+ role="option"
751
+ aria-selected=${selected ? "true" : "false"}
745
752
  aria-label=${preset.label}
746
- tabindex="0"
753
+ tabindex=${index === tabStop ? "0" : "-1"}
747
754
  style="--_optionColor: ${preset.value}"
748
755
  @click=${() => this.handleSelect(preset.value)}
749
756
  @keydown=${(event) => this.handlePresetKeydown(event, index)}
@@ -775,9 +782,10 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
775
782
  type="text"
776
783
  id="hex-input"
777
784
  aria-label=${this.hexInputLabel}
778
- aria-invalid=${!this.hideError &&
785
+ aria-invalid=${(!this.hideError &&
779
786
  !this.disabled &&
780
- this.hexDraftInvalid}
787
+ this.hexDraftInvalid) ||
788
+ this.showError}
781
789
  ?disabled=${this.disabled}
782
790
  ?readonly=${this.readonly}
783
791
  .value=${live(this.hexDraft)}
@@ -795,7 +803,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
795
803
  }
796
804
  /**
797
805
  * Renders the declared `option` presets directly as the field itself,
798
- * the same swatch radiogroup {@link renderPresets} renders inside the
806
+ * the same swatch listbox {@link renderPresets} renders inside the
799
807
  * panel, just in place of a trigger button and a panel to open at all.
800
808
  * Used whenever {@link presetsInline} is set and at least one preset is
801
809
  * declared (see {@link render}).
@@ -807,7 +815,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
807
815
  renderInlinePresetsField(hasDescription) {
808
816
  return html `
809
817
  <div id="field-wrapper">
810
- ${this.renderSwatchRadiogroup(this.presets, this.triggerAccessibleLabel, hasDescription)}
818
+ ${this.renderSwatchListbox(this.presets, this.triggerAccessibleLabel, hasDescription)}
811
819
  </div>
812
820
  ${this.readonlyAvailable ? this.renderEditActions() : nothing}
813
821
  `;
@@ -851,9 +859,10 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
851
859
  aria-label=${this.label || this.hexInputLabel}
852
860
  aria-describedby=${hasDescription ? "description" : nothing}
853
861
  aria-required=${this.required ? "true" : "false"}
854
- aria-invalid=${!this.hideError &&
862
+ aria-invalid=${(!this.hideError &&
855
863
  !this.disabled &&
856
- (this.hexDraftInvalid || !this.valid)}
864
+ this.hexDraftInvalid) ||
865
+ this.showError}
857
866
  ?disabled=${this.disabled}
858
867
  ?readonly=${this.readonly}
859
868
  .value=${live(this.hexDraft)}
@@ -909,13 +918,13 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
909
918
  <button
910
919
  type="button"
911
920
  id="field"
912
- aria-haspopup="true"
921
+ aria-haspopup="dialog"
913
922
  aria-expanded=${this.isOpen}
914
923
  aria-label=${ifDefined(this.triggerAccessibleLabel)}
915
924
  aria-describedby=${hasDescription ? "description" : nothing}
916
925
  ?disabled=${this.disabled}
917
926
  aria-required=${this.required ? "true" : "false"}
918
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
927
+ aria-invalid=${this.showError}
919
928
  @click=${this.handleFieldActivate}
920
929
  @keydown=${this.handleFieldKeydown}
921
930
  >
@@ -929,7 +938,8 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
929
938
  `
930
939
  : nothing}
931
940
  <span id="value-text" class=${classMap({ empty: !this.value })}>
932
- ${this.value || this.emptyValueLabel}
941
+ ${this.value ||
942
+ (this.emptyValueLabel ?? this.dictionary.colorPicker.noColor)}
933
943
  </span>
934
944
  <span
935
945
  id="field-arrow"
@@ -942,6 +952,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
942
952
  ${this.readonlyAvailable ? this.renderEditActions() : nothing}
943
953
  <div
944
954
  id="listbox"
955
+ role="dialog"
945
956
  popover="auto"
946
957
  aria-label=${ifDefined(this.label)}
947
958
  @toggle=${this.handlePopoverToggle}
@@ -988,7 +999,7 @@ let EunomiaColorPicker = class EunomiaColorPicker extends EunomiaColorPickerMixi
988
999
  aria-label=${ifDefined(this.triggerAccessibleLabel)}
989
1000
  aria-describedby=${hasDescription ? "description" : nothing}
990
1001
  ?disabled=${this.disabled || this.readonly}
991
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
1002
+ aria-invalid=${this.showError}
992
1003
  .value=${live(this.value || "#000000")}
993
1004
  @input=${this.handleNativeInput}
994
1005
  />
@@ -1085,6 +1096,9 @@ __decorate([
1085
1096
  __decorate([
1086
1097
  state()
1087
1098
  ], EunomiaColorPicker.prototype, "hexDraft", void 0);
1099
+ __decorate([
1100
+ state()
1101
+ ], EunomiaColorPicker.prototype, "presetFocusIndex", void 0);
1088
1102
  __decorate([
1089
1103
  query("#field")
1090
1104
  ], EunomiaColorPicker.prototype, "fieldEl", void 0);
@@ -45,7 +45,8 @@ const colorPicker = css `
45
45
  flex: 0 0 auto;
46
46
  color: var(--_iconColor);
47
47
  font-size: var(--eun-font-size-s, 14px);
48
- transition: transform 0.15s ease;
48
+ transition: transform var(--eun-duration-s, 150ms)
49
+ var(--eun-easing-default, ease);
49
50
  }
50
51
  #field-arrow.open {
51
52
  transform: rotate(180deg);
@@ -60,8 +61,8 @@ const colorPicker = css `
60
61
  background-color: var(--_swatchColor, transparent);
61
62
  outline: 2px solid transparent;
62
63
  transition:
63
- outline 0.2s ease-out,
64
- border 0.2s ease-out;
64
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
65
+ border var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out);
65
66
  }
66
67
  .swatch.empty {
67
68
  background-image: conic-gradient(
@@ -101,10 +102,10 @@ const colorPicker = css `
101
102
  --_swatchColor: var(--_optionColor);
102
103
  outline: 2px solid transparent;
103
104
  transition:
104
- outline 0.2s ease-out,
105
- border 0.2s ease-out;
105
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
106
+ border var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out);
106
107
  }
107
- .swatch-button[aria-checked="true"] .swatch {
108
+ .swatch-button[aria-selected="true"] .swatch {
108
109
  border-color: var(--eun-color-primary-500, #3d6fff);
109
110
  border-width: calc(var(--eun-border-width-m, 1.5px) * 2);
110
111
  }
@@ -6,6 +6,7 @@ import { FormMixinInterface } from "../../../mixins/form.mixin.js";
6
6
  import { FormLabelMixinInterface } from "../../../mixins/form-label.mixin.js";
7
7
  import { FieldAppearanceMixinInterface } from "../../../mixins/field-appearance.mixin.js";
8
8
  import { Constructor } from "../../../utils/constructor.type.js";
9
+ import { LocalizableMixinInterface } from "../../../mixins/localizable.mixin.js";
9
10
  /**
10
11
  * Tag name of the counter component.
11
12
  */
@@ -14,7 +15,7 @@ export declare const EunomiaCounterTagName = "eun-counter";
14
15
  * Type of the counter base used to declare every necessary Mixin interface elements.
15
16
  * @internal
16
17
  */
17
- type EunomiaCounterBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<number> & FormMixinInterface<number> & FormLabelMixinInterface & FieldAppearanceMixinInterface;
18
+ type EunomiaCounterBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<number> & FormMixinInterface<number> & FormLabelMixinInterface & FieldAppearanceMixinInterface & LocalizableMixinInterface;
18
19
  declare const EunomiaCounterMixinBase: Constructor<EunomiaCounterBase>;
19
20
  /**
20
21
  * A numeric field with increment and decrement buttons, built on a native
@@ -33,13 +34,15 @@ declare const EunomiaCounterMixinBase: Constructor<EunomiaCounterBase>;
33
34
  * @prop {boolean} [disabled=false] - Whether the field is disabled
34
35
  * @prop {boolean} [readonly=false] - Whether the field is read only
35
36
  * @prop {boolean} [required=false] - Whether the field is required
36
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
37
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
38
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
39
+ * @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
37
40
  * @attr {boolean} [hide-error=false] - Whether the errors are hidden
38
41
  * @prop {Array<import('../../../types/form-validators.type.js').Validators<number>>} validators - The list of validation rules applied to the field value
39
- * @prop {string} [ariaLabelIncrement='Increase value'] - The accessible label of the increment button
40
- * @attr {string} [aria-label-increment='Increase value'] - The accessible label of the increment button
41
- * @prop {string} [ariaLabelDecrement='Decrease value'] - The accessible label of the decrement button
42
- * @attr {string} [aria-label-decrement='Decrease value'] - The accessible label of the decrement button
42
+ * @prop {string} [incrementLabel] - The accessible label of the increment button. Defaults to the localized string for the current locale (English: "Increase value")
43
+ * @attr {string} [increment-label] - The accessible label of the increment button. Defaults to the localized string for the current locale (English: "Increase value")
44
+ * @prop {string} [decrementLabel] - The accessible label of the decrement button. Defaults to the localized string for the current locale (English: "Decrease value")
45
+ * @attr {string} [decrement-label] - The accessible label of the decrement button. Defaults to the localized string for the current locale (English: "Decrease value")
43
46
  * @fires {ChangeEvent} eunchange - Fired on every value change
44
47
  * @cssprop [--counter-background] - Sets the background color of the field
45
48
  * @cssprop [--counter-border-color] - Sets the border color of the field
@@ -53,6 +56,8 @@ declare const EunomiaCounterMixinBase: Constructor<EunomiaCounterBase>;
53
56
  * @cssprop [--counter-hint-color] - Sets the color of the hint message
54
57
  * @cssprop [--counter-focus-outline-color] - Sets the color of the focus outline
55
58
  * @cssprop [--counter-field-width] - Sets the width of the numeric value area
59
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
60
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
56
61
  * @element eun-counter
57
62
  */
58
63
  export declare class EunomiaCounter extends EunomiaCounterMixinBase {
@@ -78,14 +83,14 @@ export declare class EunomiaCounter extends EunomiaCounterMixinBase {
78
83
  step: number;
79
84
  /**
80
85
  * Accessible label of the increment button.
81
- * @default Increase value
86
+ * Falls back to the localized string for the current locale when unset.
82
87
  */
83
- ariaLabelIncrement: string;
88
+ incrementLabel?: string;
84
89
  /**
85
90
  * Accessible label of the decrement button.
86
- * @default Decrease value
91
+ * Falls back to the localized string for the current locale when unset.
87
92
  */
88
- ariaLabelDecrement: string;
93
+ decrementLabel?: string;
89
94
  /**
90
95
  * The current numeric value, `undefined` while empty (e.g. after the
91
96
  * field is cleared by the user). Overrides the `value` accessor
@@ -118,17 +123,13 @@ export declare class EunomiaCounter extends EunomiaCounterMixinBase {
118
123
  * @readonly
119
124
  */
120
125
  private readonly fieldEl?;
121
- connectedCallback(): void;
122
- disconnectedCallback(): void;
123
- /**
124
- * Redirects focus to the native field whenever the host itself receives
125
- * it. See `eun-input`'s identical pattern : the host stays in the tab
126
- * order (`DisabledMixin`) rather than being excluded via `tabindex="-1"`,
127
- * which broke Tab from reaching the field entirely for this
128
- * form-associated component, instead of just skipping the host.
126
+ constructor();
127
+ /**
128
+ * Submits the owning form on Enter in the field, as a native number
129
+ * input does, since the browser never does it from a shadow root.
129
130
  * @private
130
131
  */
131
- private handleHostFocus;
132
+ private readonly handleImplicitSubmission;
132
133
  /**
133
134
  * Reads native HTML constraint validation from the underlying field
134
135
  * element (`required`, `min`, `max`, `step`, `badInput`).
@@ -136,6 +137,12 @@ export declare class EunomiaCounter extends EunomiaCounterMixinBase {
136
137
  * @returns validity state and optional message.
137
138
  */
138
139
  checkLocalValidators: () => Validity;
140
+ /**
141
+ * The host is never a tab stop of its own : sequential navigation goes
142
+ * straight to the controls inside, in both directions, and
143
+ * {@link focus} covers a direct call on the host.
144
+ */
145
+ protected get hostTabStop(): boolean;
139
146
  /**
140
147
  * Returns the field element to focus/anchor on validation errors.
141
148
  *