@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
@@ -20,6 +20,8 @@ import { ChangeEvent } from "../../../events/change.event.js";
20
20
  import { formLabelsStyles } from "../shared-styles/form-labels.styles.js";
21
21
  import { inputStyles } from "./input.styles.js";
22
22
  import { pickValidity } from "../../../utils/validity.utils.js";
23
+ import { isImplicitSubmissionKey, submitImplicitly, } from "../../../utils/implicit-submission.utils.js";
24
+ import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
23
25
  /**
24
26
  * Tag name of the input component.
25
27
  */
@@ -29,7 +31,7 @@ export const EunomiaInputTagName = "eun-input";
29
31
  * @internal
30
32
  */
31
33
  const Base = DisabledMixin(ValidatorsMixin(LitElement));
32
- const EunomiaInputMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base)))));
34
+ const EunomiaInputMixinBase = LocalizableMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base))))));
33
35
  /**
34
36
  * A single-line text field, supporting several native input types.
35
37
  *
@@ -45,7 +47,9 @@ const EunomiaInputMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(
45
47
  * @prop {boolean} [disabled=false] - Whether the field is disabled
46
48
  * @prop {boolean} [readonly=false] - Whether the field is read only
47
49
  * @prop {boolean} [required=false] - Whether the field is required
48
- * @prop {boolean} [hideError=false] - Whether the errors are hidden
50
+ * @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
51
+ * @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
52
+ * @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
53
  * @prop {Array<Validators<string>>} validators - The list of validation rules applied to the field value
50
54
  * @prop {EunomiaIconName} icon - An optional leading icon
51
55
  * @prop {boolean} [clearable=false] - Whether a clear button is shown when the field has a value
@@ -58,12 +62,12 @@ const EunomiaInputMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(
58
62
  * @prop {string} min - The native minimum constraint forwarded to the field
59
63
  * @prop {string} max - The native maximum constraint forwarded to the field
60
64
  * @prop {string} step - The native step constraint forwarded to the field
61
- * @prop {string} [emptyValueLabel='No value set'] - Text displayed in place of the value when readonly and empty
62
- * @prop {string} [confirmLabel='Save'] - The label of the confirm button in edit mode
63
- * @prop {string} [cancelLabel='Cancel'] - The label of the cancel button in edit mode
64
- * @prop {string} [ariaLabelClear='Clear field'] - The accessible label of the clear button
65
- * @prop {string} [ariaLabelShowPassword='Show password'] - The accessible label of the show password button
66
- * @prop {string} [ariaLabelHidePassword='Hide password'] - The accessible label of the hide password button
65
+ * @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")
66
+ * @prop {string} [confirmLabel] - The label of the confirm button in edit mode. Defaults to the localized string for the current locale (English: "Save")
67
+ * @prop {string} [cancelLabel] - The label of the cancel button in edit mode. Defaults to the localized string for the current locale (English: "Cancel")
68
+ * @prop {string} [clearLabel] - The accessible label of the clear button. Defaults to the localized string for the current locale (English: "Clear field")
69
+ * @prop {string} [showPasswordLabel] - The accessible label of the show password button. Defaults to the localized string for the current locale (English: "Show password")
70
+ * @prop {string} [hidePasswordLabel] - The accessible label of the hide password button. Defaults to the localized string for the current locale (English: "Hide password")
67
71
  * @fires {ChangeEvent} eunchange - Fired on every value change
68
72
  * @fires {CommitEvent} euncommit - Fired when an edit is confirmed in readonlyAvailable mode
69
73
  * @cssprop [--field-background] - Sets the background color of the field
@@ -72,6 +76,8 @@ const EunomiaInputMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(
72
76
  * @cssprop [--field-border-color-focus] - Sets the border color on focus
73
77
  * @cssprop [--field-border-radius] - Sets the corner radius of the field
74
78
  * @cssprop [--field-padding] - Sets the padding of the field
79
+ * @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
80
+ * @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
75
81
  * @cssprop [--field-text-color] - Sets the text color of the field
76
82
  * @cssprop [--field-placeholder-color] - Sets the color of the placeholder
77
83
  * @cssprop [--field-icon-color] - Sets the color of the leading icon and action buttons
@@ -80,11 +86,46 @@ const EunomiaInputMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(
80
86
  * @cssprop [--field-focus-outline-color] - Sets the color of the focus outline
81
87
  * @cssprop [--field-edit-confirm-color] - Sets the color of the confirm button in readonly-available edit mode
82
88
  * @cssprop [--field-edit-cancel-color] - Sets the color of the cancel button in readonly-available edit mode
89
+ * @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
90
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
91
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
83
92
  * @element eun-input
84
93
  */
85
94
  let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
95
+ /**
96
+ * The default value applied on connection and form reset. Overrides the
97
+ * `defaultValue` accessor inherited from `FormMixin` only to drop its
98
+ * generic attribute converter, which always splits `default-value` on
99
+ * commas (appropriate for an array-valued field, not this component's
100
+ * plain `string` value) — `default-value="foo,bar"` would otherwise be
101
+ * parsed as `['foo', 'bar']` and silently assigned to a `string`-typed
102
+ * `value`. The actual get/set logic still comes from `FormMixin` itself,
103
+ * via `super`.
104
+ */
105
+ get defaultValue() {
106
+ return super.defaultValue;
107
+ }
108
+ set defaultValue(value) {
109
+ // `FormMixinInterface.defaultValue` is declared getter-only (the
110
+ // mixin's real class has a working setter too — the interface used to
111
+ // type this component's base just omits it), so TS treats this as
112
+ // read-only even though it's correct and necessary at runtime.
113
+ // @ts-expect-error — see comment above ; FormMixin's real setter exists.
114
+ super.defaultValue = value;
115
+ }
116
+ /**
117
+ * The element a direct `.focus()` call on the host actually focuses.
118
+ * Defaults to the native field ; overridden by a subclass whose real,
119
+ * visible focusable proxy is something else — e.g. `eun-search`'s
120
+ * `panel` mode, whose native field lives inside a closed modal and isn't
121
+ * a valid focus target until it's open.
122
+ * @protected
123
+ */
124
+ focusTarget() {
125
+ return this.fieldEl;
126
+ }
86
127
  constructor() {
87
- super(...arguments);
128
+ super();
88
129
  /**
89
130
  * The native input type to apply.
90
131
  * @default text
@@ -100,36 +141,6 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
100
141
  * @default off
101
142
  */
102
143
  this.autocomplete = "off";
103
- /**
104
- * Text displayed in place of the value when readonly and empty.
105
- * @default No value set
106
- */
107
- this.emptyValueLabel = "No value set";
108
- /**
109
- * Label of the confirm button in edit mode.
110
- * @default Save
111
- */
112
- this.confirmLabel = "Save";
113
- /**
114
- * Label of the cancel button in edit mode.
115
- * @default Cancel
116
- */
117
- this.cancelLabel = "Cancel";
118
- /**
119
- * Accessible label of the clear button.
120
- * @default Clear field
121
- */
122
- this.ariaLabelClear = "Clear field";
123
- /**
124
- * Accessible label of the show-password button.
125
- * @default Show password
126
- */
127
- this.ariaLabelShowPassword = "Show password";
128
- /**
129
- * Accessible label of the hide-password button.
130
- * @default Hide password
131
- */
132
- this.ariaLabelHidePassword = "Hide password";
133
144
  /**
134
145
  * Whether the password's plain value is currently revealed.
135
146
  * @internal
@@ -144,6 +155,25 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
144
155
  this.handleIconSlotChange = () => {
145
156
  this.requestUpdate();
146
157
  };
158
+ /**
159
+ * Submits the owning form on Enter in the field, as a native text input
160
+ * does, since the browser never does it from a shadow root. Listened to
161
+ * on the host so a handler inside, such as `eun-search` picking a
162
+ * suggestion, can claim the key first. Skipped while editing in
163
+ * `readonlyAvailable` mode, whose own buttons confirm the edit.
164
+ * @private
165
+ */
166
+ this.handleImplicitSubmission = (event) => {
167
+ const form = this.internals.form;
168
+ if (!form ||
169
+ event.composedPath()[0] !== this.fieldEl ||
170
+ !isImplicitSubmissionKey(event) ||
171
+ (this.readonlyAvailable && this.editing)) {
172
+ return;
173
+ }
174
+ event.preventDefault();
175
+ submitImplicitly(form);
176
+ };
147
177
  /**
148
178
  * Reads native HTML constraint validation from the underlying field element
149
179
  * (`required`, `minlength`, `maxlength`, `pattern`, `min`, `max`, `type="email"`, etc.).
@@ -163,61 +193,19 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
163
193
  "badInput",
164
194
  ]);
165
195
  };
196
+ this.addEventListener("keydown", this.handleImplicitSubmission);
166
197
  }
167
198
  /**
168
- * The default value applied on connection and form reset. Overrides the
169
- * `defaultValue` accessor inherited from `FormMixin` only to drop its
170
- * generic attribute converter, which always splits `default-value` on
171
- * commas (appropriate for an array-valued field, not this component's
172
- * plain `string` value) — `default-value="foo,bar"` would otherwise be
173
- * parsed as `['foo', 'bar']` and silently assigned to a `string`-typed
174
- * `value`. The actual get/set logic still comes from `FormMixin` itself,
175
- * via `super`.
199
+ * The host is never a tab stop of its own : sequential navigation goes
200
+ * straight to the native field inside, in both directions, and
201
+ * {@link focus} covers a direct call on the host.
176
202
  */
177
- get defaultValue() {
178
- return super.defaultValue;
179
- }
180
- set defaultValue(value) {
181
- // `FormMixinInterface.defaultValue` is declared getter-only (the
182
- // mixin's real class has a working setter too — the interface used to
183
- // type this component's base just omits it), so TS treats this as
184
- // read-only even though it's correct and necessary at runtime.
185
- // @ts-expect-error — see comment above ; FormMixin's real setter exists.
186
- super.defaultValue = value;
187
- }
188
- /**
189
- * The element a direct `.focus()` call on the host actually focuses.
190
- * Defaults to the native field ; overridden by a subclass whose real,
191
- * visible focusable proxy is something else — e.g. `eun-search`'s
192
- * `panel` mode, whose native field lives inside a closed modal and isn't
193
- * a valid focus target until it's open.
194
- * @protected
195
- */
196
- focusTarget() {
197
- return this.fieldEl;
203
+ get hostTabStop() {
204
+ return false;
198
205
  }
199
206
  /**
200
207
  * Lifecycle hook called whenever reactive properties change. Focuses the
201
- * field when entering edit mode, and corrects the host's own `tabindex`
202
- * after every `disabled` change.
203
- *
204
- * `DisabledMixin` puts a real `tabindex="0"` on the host so Tab still
205
- * reaches it while enabled — appropriate for a component whose host
206
- * *is* the sole interactive surface, but this one always has its own
207
- * focusable native field nested inside instead, and keeping the host
208
- * itself as a *second*, independent tab stop right next to it broke
209
- * Shift+Tab : landing back on the host is a genuine stop of its own as
210
- * far as the browser's own backward sequential-navigation is concerned,
211
- * and redirecting focus straight back into the field from there (this
212
- * class's previous approach) fights that navigation mid-flight, leaving
213
- * focus stranded on the host with nothing focused inside it. Removing
214
- * the attribute instead lets sequential focus navigation descend
215
- * straight into the field on its own, correctly in both directions, with
216
- * no separate host stop and no redirect involved at all — this class's
217
- * own `focus()` method (see below) covers a direct, explicit call on the
218
- * host, the one case that genuinely still needs one. The disabled case
219
- * still gets an explicit `-1` so a disabled field is skipped entirely
220
- * rather than becoming its own (empty) stop.
208
+ * field when entering edit mode.
221
209
  *
222
210
  * @param _changedProperties - Map of changed properties
223
211
  */
@@ -226,14 +214,6 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
226
214
  if (_changedProperties.has("editing") && this.editing) {
227
215
  this.fieldEl?.focus();
228
216
  }
229
- if (_changedProperties.has("disabled")) {
230
- if (this.disabled) {
231
- this.setAttribute("tabindex", "-1");
232
- }
233
- else {
234
- this.removeAttribute("tabindex");
235
- }
236
- }
237
217
  }
238
218
  /**
239
219
  * Returns the field element to focus/anchor on validation errors.
@@ -298,7 +278,9 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
298
278
  @keydown=${(event) => (event.key === "Enter" || event.key === " ") && this.startEdit()}
299
279
  >
300
280
  <span class=${classMap({ empty: !hasValue })}
301
- >${hasValue ? this.value : this.emptyValueLabel}</span
281
+ >${hasValue
282
+ ? this.value
283
+ : (this.emptyValueLabel ?? this.dictionary.common.noValue)}</span
302
284
  >
303
285
  </div>
304
286
  `;
@@ -381,7 +363,7 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
381
363
  : this.type === "email"
382
364
  ? "email"
383
365
  : nothing}
384
- aria-invalid=${!this.hideError && !this.disabled && !this.valid}
366
+ aria-invalid=${this.showError}
385
367
  aria-label=${ifDefined(this.label)}
386
368
  aria-describedby=${hasDescription ? "description" : nothing}
387
369
  @input=${this.handleInput}
@@ -391,7 +373,7 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
391
373
  type="button"
392
374
  id="clear"
393
375
  @click=${this.handleClear}
394
- aria-label=${this.ariaLabelClear}
376
+ aria-label=${this.clearLabel ?? this.dictionary.input.clear}
395
377
  tabindex="-1"
396
378
  >
397
379
  <eun-icon name="cancel" size="16"></eun-icon>
@@ -403,10 +385,10 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
403
385
  id="password-toggle"
404
386
  @click=${this.togglePasswordVisibility}
405
387
  aria-label=${this.showPassword
406
- ? this.ariaLabelHidePassword
407
- : this.ariaLabelShowPassword}
388
+ ? (this.hidePasswordLabel ?? this.dictionary.input.hidePassword)
389
+ : (this.showPasswordLabel ??
390
+ this.dictionary.input.showPassword)}
408
391
  aria-pressed=${this.showPassword}
409
- tabindex="-1"
410
392
  >
411
393
  <eun-icon
412
394
  name=${this.showPassword ? "visibility_off" : "visibility"}
@@ -426,7 +408,7 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
426
408
  rounded
427
409
  type="button"
428
410
  @click=${this.confirmEdit}
429
- >${this.confirmLabel}</eun-button
411
+ >${this.confirmLabel ?? this.dictionary.common.save}</eun-button
430
412
  >
431
413
  <eun-button
432
414
  class="cancel"
@@ -435,7 +417,7 @@ let EunomiaInput = class EunomiaInput extends EunomiaInputMixinBase {
435
417
  rounded
436
418
  type="button"
437
419
  @click=${this.cancelEdit}
438
- >${this.cancelLabel}</eun-button
420
+ >${this.cancelLabel ?? this.dictionary.common.cancel}</eun-button
439
421
  >
440
422
  </div>
441
423
  `)}
@@ -477,7 +459,7 @@ EunomiaInput.styles = [
477
459
  formLabelsStyles.hintMessages,
478
460
  ];
479
461
  __decorate([
480
- property({ reflect: true })
462
+ property({ reflect: true, useDefault: true })
481
463
  ], EunomiaInput.prototype, "type", void 0);
482
464
  __decorate([
483
465
  property({ attribute: "default-value" })
@@ -522,14 +504,14 @@ __decorate([
522
504
  property({ attribute: "cancel-label" })
523
505
  ], EunomiaInput.prototype, "cancelLabel", void 0);
524
506
  __decorate([
525
- property({ attribute: "aria-label-clear" })
526
- ], EunomiaInput.prototype, "ariaLabelClear", void 0);
507
+ property({ attribute: "clear-label" })
508
+ ], EunomiaInput.prototype, "clearLabel", void 0);
527
509
  __decorate([
528
- property({ attribute: "aria-label-show-password" })
529
- ], EunomiaInput.prototype, "ariaLabelShowPassword", void 0);
510
+ property({ attribute: "show-password-label" })
511
+ ], EunomiaInput.prototype, "showPasswordLabel", void 0);
530
512
  __decorate([
531
- property({ attribute: "aria-label-hide-password" })
532
- ], EunomiaInput.prototype, "ariaLabelHidePassword", void 0);
513
+ property({ attribute: "hide-password-label" })
514
+ ], EunomiaInput.prototype, "hidePasswordLabel", void 0);
533
515
  __decorate([
534
516
  state()
535
517
  ], EunomiaInput.prototype, "showPassword", void 0);
@@ -5,6 +5,7 @@ import { ValidatorsMixinInterface } from "../../../mixins/validators.mixin.js";
5
5
  import { FormMixinInterface } from "../../../mixins/form.mixin.js";
6
6
  import { FormLabelMixinInterface } from "../../../mixins/form-label.mixin.js";
7
7
  import { Constructor } from "../../../utils/constructor.type.js";
8
+ import { LocalizableMixinInterface } from "../../../mixins/localizable.mixin.js";
8
9
  /**
9
10
  * Tag name of the input-file component.
10
11
  */
@@ -18,7 +19,7 @@ export type EunomiaInputFileKind = "image" | "file";
18
19
  * Type of the input-file base used to declare every necessary Mixin interface elements.
19
20
  * @internal
20
21
  */
21
- type EunomiaInputFileBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<File[]> & FormMixinInterface<File[]> & FormLabelMixinInterface;
22
+ type EunomiaInputFileBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<File[]> & FormMixinInterface<File[]> & FormLabelMixinInterface & LocalizableMixinInterface;
22
23
  declare const EunomiaInputFileMixinBase: Constructor<EunomiaInputFileBase>;
23
24
  /**
24
25
  * A file upload field with a dropzone, showing image thumbnails or generic
@@ -37,24 +38,26 @@ declare const EunomiaInputFileMixinBase: Constructor<EunomiaInputFileBase>;
37
38
  * @prop {boolean} [disabled=false] - Whether the field is disabled
38
39
  * @prop {boolean} [readonly=false] - Whether the field is read only
39
40
  * @prop {boolean} [required=false] - Whether at least one file is required
40
- * @prop {boolean} [hideError=false] - Whether the errors are 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
41
44
  * @prop {Array<import('../../../types/form-validators.type.js').Validators<File[]>>} validators - The list of validation rules applied to the field value
42
45
  * @prop {string} [dropLabel='Drag and drop files here, or'] - Static text displayed in the dropzone
43
46
  * @attr {string} [drop-label='Drag and drop files here, or'] - Static text displayed in the dropzone
44
47
  * @prop {string} [browseLabel='browse files'] - The visible text of the dropzone's browse link
45
48
  * @attr {string} [browse-label='browse files'] - The visible text of the dropzone's browse link
46
- * @prop {string} [ariaLabelRemove='Remove file'] - The accessible label of each item's remove button
47
- * @attr {string} [aria-label-remove='Remove file'] - The accessible label of each item's remove button
48
- * @prop {string} [ariaLabelSelect='Select file'] - The accessible label prefix of each item's checkbox
49
- * @attr {string} [aria-label-select='Select file'] - The accessible label prefix of each item's checkbox
49
+ * @prop {string} [removeLabel] - The accessible label of each item's remove button. Defaults to the localized string for the current locale (English: "Remove file")
50
+ * @attr {string} [remove-label] - The accessible label of each item's remove button. Defaults to the localized string for the current locale (English: "Remove file")
51
+ * @prop {string} [selectLabel] - The accessible label prefix of each item's checkbox. Defaults to the localized string for the current locale (English: "Select file")
52
+ * @attr {string} [select-label] - The accessible label prefix of each item's checkbox. Defaults to the localized string for the current locale (English: "Select file")
50
53
  * @prop {string} [removeAllLabel='Remove all'] - The label of the always-available bulk clear action
51
54
  * @attr {string} [remove-all-label='Remove all'] - The label of the always-available bulk clear action
52
55
  * @prop {string} [selectAllLabel='Select all'] - The label of the selection toolbar's select-all checkbox
53
56
  * @attr {string} [select-all-label='Select all'] - The label of the selection toolbar's select-all checkbox
54
57
  * @prop {string} [deleteSelectedLabel='Delete selected'] - The label of the selection toolbar's bulk delete button
55
58
  * @attr {string} [delete-selected-label='Delete selected'] - The label of the selection toolbar's bulk delete button
56
- * @prop {string} [ariaLabelOpen='Open in a new tab'] - Appended to each item's accessible name
57
- * @attr {string} [aria-label-open='Open in a new tab'] - Appended to each item's accessible name
59
+ * @prop {string} [openLabel] - Appended to each item's accessible name. Defaults to the localized string for the current locale (English: "Open in a new tab")
60
+ * @attr {string} [open-label] - Appended to each item's accessible name. Defaults to the localized string for the current locale (English: "Open in a new tab")
58
61
  * @fires {ChangeEvent} eunchange - Fired whenever the selected files change
59
62
  * @fires {FileRejectEvent} eunfilereject - Fired whenever one or more offered files are rejected, for the wrong type or exceeding the size or count limit
60
63
  * @cssprop [--input-file-border-color] - Sets the border color of the dropzone
@@ -72,6 +75,8 @@ declare const EunomiaInputFileMixinBase: Constructor<EunomiaInputFileBase>;
72
75
  * @cssprop [--input-file-item-border-color] - Sets the border color of each item
73
76
  * @cssprop [--input-file-gap] - Sets the gap between the dropzone, header, and items
74
77
  * @cssprop [--input-file-thumbnail-size] - Sets the minimum size of image thumbnails
78
+ * @cssprop [--field-label-font-size] - Sets the font size of the label
79
+ * @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
75
80
  * @element eun-input-file
76
81
  */
77
82
  export declare class EunomiaInputFile extends EunomiaInputFileMixinBase {
@@ -82,6 +87,11 @@ export declare class EunomiaInputFile extends EunomiaInputFileMixinBase {
82
87
  * @internal
83
88
  */
84
89
  static styles: CSSResultGroup;
90
+ /**
91
+ * Every change is a complete choice, so its error shows right away.
92
+ * @internal
93
+ */
94
+ errorOnChange: boolean;
85
95
  /**
86
96
  * Accepted content kind: image thumbnails vs. generic file rows.
87
97
  * @default image
@@ -125,15 +135,15 @@ export declare class EunomiaInputFile extends EunomiaInputFileMixinBase {
125
135
  /**
126
136
  * Accessible label prefix of each item's remove button (suffixed with the
127
137
  * file name).
128
- * @default Remove file
138
+ * Falls back to the localized string for the current locale when unset.
129
139
  */
130
- ariaLabelRemove: string;
140
+ removeLabel?: string;
131
141
  /**
132
142
  * Accessible label prefix of each item's checkbox (suffixed with the file
133
143
  * name), when `selectable`.
134
- * @default Select file
144
+ * Falls back to the localized string for the current locale when unset.
135
145
  */
136
- ariaLabelSelect: string;
146
+ selectLabel?: string;
137
147
  /**
138
148
  * Label of the always-available bulk clear action, shown once at least one
139
149
  * file is present.
@@ -154,9 +164,9 @@ export declare class EunomiaInputFile extends EunomiaInputFileMixinBase {
154
164
  /**
155
165
  * Appended to each item's accessible name (its primary action is opening
156
166
  * the file in a new tab).
157
- * @default Open in a new tab
167
+ * Falls back to the localized string for the current locale when unset.
158
168
  */
159
- ariaLabelOpen: string;
169
+ openLabel?: string;
160
170
  /**
161
171
  * Whether a drag carrying files is currently over the host — reflected so
162
172
  * `:host([dragging])` can drive the dropzone's highlight.
@@ -220,6 +230,12 @@ export declare class EunomiaInputFile extends EunomiaInputFileMixinBase {
220
230
  * @param changedProperties - Map of changed properties
221
231
  */
222
232
  protected updated(changedProperties: PropertyValues): void;
233
+ /**
234
+ * The host is never a tab stop of its own : sequential navigation goes
235
+ * straight to the controls inside, in both directions, and
236
+ * {@link focus} covers a direct call on the host.
237
+ */
238
+ protected get hostTabStop(): boolean;
223
239
  /**
224
240
  * Returns the element to focus/anchor on validation errors.
225
241
  *