@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
package/dist/i18n/en.js CHANGED
@@ -6,7 +6,15 @@
6
6
  * silent runtime fallback.
7
7
  */
8
8
  export const en = {
9
+ common: {
10
+ close: "Close",
11
+ cancel: "Cancel",
12
+ confirm: "Confirm",
13
+ noValue: "No value set",
14
+ save: "Save",
15
+ },
9
16
  datePicker: {
17
+ openCalendar: "Open calendar",
10
18
  previousMonth: "Previous month",
11
19
  chooseMonthYear: "Choose month and year",
12
20
  nextMonth: "Next month",
@@ -19,6 +27,11 @@ export const en = {
19
27
  amPm: "AM/PM",
20
28
  hour: "Hour",
21
29
  minute: "Minute",
30
+ day: "Day",
31
+ month: "Month",
32
+ year: "Year",
33
+ startDate: "Start date",
34
+ endDate: "End date",
22
35
  heading: {
23
36
  day: { single: "Select a date", range: "Select a date range" },
24
37
  month: { single: "Select a month", range: "Select a month range" },
@@ -31,6 +44,7 @@ export const en = {
31
44
  },
32
45
  },
33
46
  timePicker: {
47
+ openClock: "Open clock",
34
48
  amPm: "AM/PM",
35
49
  hour: "Hour",
36
50
  minute: "Minute",
@@ -40,14 +54,23 @@ export const en = {
40
54
  mustBeAtOrBefore: (time) => `Time must be at or before ${time}`,
41
55
  },
42
56
  scheduler: {
57
+ previous: "Previous period",
58
+ next: "Next period",
43
59
  calendarView: "Calendar view",
44
60
  },
45
61
  carousel: {
46
62
  ofTotal: (index, total) => `${index} of ${total}`,
47
63
  slideNavigation: "Slide navigation",
64
+ previous: "Previous slide",
65
+ next: "Next slide",
48
66
  goToSlide: (index, total) => `Go to slide ${index} of ${total}`,
49
67
  },
50
68
  imageCarousel: {
69
+ gallery: "Image gallery",
70
+ previous: "Previous image",
71
+ next: "Next image",
72
+ expand: "View full-size image",
73
+ lightbox: "Image viewer",
51
74
  selectImage: "Select image",
52
75
  showImage: (index, total) => `Show image ${index} of ${total}`,
53
76
  imageNavigation: "Image navigation",
@@ -57,7 +80,83 @@ export const en = {
57
80
  chip: {
58
81
  remove: "Remove",
59
82
  },
83
+ passwordStrength: {
84
+ label: "Password strength",
85
+ levels: ["Weak", "Fair", "Good", "Strong"],
86
+ caption: (label) => `${label}:`,
87
+ },
88
+ infiniteList: {
89
+ loadingMore: "Loading more items…",
90
+ itemsLoaded: (count) => `${count} more item${count > 1 ? "s" : ""} loaded`,
91
+ },
92
+ table: {
93
+ loadingMore: "Loading more rows…",
94
+ selected: "selected",
95
+ selectAll: "Select all",
96
+ deselectAll: "Deselect all",
97
+ selectAllRows: "Select all rows",
98
+ deselectAllRows: "Deselect all rows",
99
+ selectRow: "Select row",
100
+ selectionActions: "Selection actions",
101
+ clearSelection: "Clear selection",
102
+ rowActions: "Row actions",
103
+ rowsLoaded: (count) => `${count} more row${count > 1 ? "s" : ""} loaded`,
104
+ },
60
105
  link: {
61
106
  opensInNewTab: "opens in a new tab",
62
107
  },
108
+ input: {
109
+ clear: "Clear field",
110
+ showPassword: "Show password",
111
+ hidePassword: "Hide password",
112
+ },
113
+ search: {
114
+ panel: "Search",
115
+ },
116
+ counter: {
117
+ increment: "Increase value",
118
+ decrement: "Decrease value",
119
+ },
120
+ inputFile: {
121
+ remove: "Remove file",
122
+ select: "Select file",
123
+ open: "Open in a new tab",
124
+ },
125
+ inputPhone: {
126
+ selectCountry: "Select a country",
127
+ },
128
+ colorPicker: {
129
+ noColor: "No color selected",
130
+ },
131
+ pagination: {
132
+ previous: "Previous page",
133
+ next: "Next page",
134
+ first: "First page",
135
+ last: "Last page",
136
+ page: "Page",
137
+ },
138
+ sidebar: {
139
+ expand: "Expand sidebar",
140
+ collapse: "Collapse sidebar",
141
+ resize: "Resize sidebar",
142
+ },
143
+ toolbar: {
144
+ menuOpen: "Open menu",
145
+ menuClose: "Close menu",
146
+ menu: "Menu",
147
+ },
148
+ rating: {
149
+ label: "Rating",
150
+ valueText: (value, max) => `${value} out of ${max}`,
151
+ summary: (label, valueText) => `${label}: ${valueText}`,
152
+ noValue: "Not rated",
153
+ clear: "Clear rating",
154
+ },
155
+ validation: {
156
+ valueMissing: "This field is required",
157
+ tooShort: (min, length) => `Please lengthen this text to ${min} characters or more (you are currently using ${length} characters).`,
158
+ tooLong: (max, length) => `Please shorten this text to ${max} characters or less (you are currently using ${length} characters).`,
159
+ invalidDate: "Enter a valid date",
160
+ invalidTime: "Enter a valid time",
161
+ },
63
162
  };
package/dist/i18n/fr.js CHANGED
@@ -4,7 +4,15 @@
4
4
  * error here, not a silent fallback to English at runtime.
5
5
  */
6
6
  export const fr = {
7
+ common: {
8
+ close: "Fermer",
9
+ cancel: "Annuler",
10
+ confirm: "Confirmer",
11
+ save: "Enregistrer",
12
+ noValue: "Aucune valeur",
13
+ },
7
14
  datePicker: {
15
+ openCalendar: "Ouvrir le calendrier",
8
16
  previousMonth: "Mois précédent",
9
17
  chooseMonthYear: "Choisir le mois et l'année",
10
18
  nextMonth: "Mois suivant",
@@ -17,6 +25,11 @@ export const fr = {
17
25
  amPm: "AM/PM",
18
26
  hour: "Heure",
19
27
  minute: "Minute",
28
+ day: "Jour",
29
+ month: "Mois",
30
+ year: "Année",
31
+ startDate: "Date de début",
32
+ endDate: "Date de fin",
20
33
  heading: {
21
34
  day: {
22
35
  single: "Sélectionner une date",
@@ -31,8 +44,6 @@ export const fr = {
31
44
  range: "Sélectionner une plage d'années",
32
45
  },
33
46
  },
34
- // French keeps the article in both contexts, unlike English's shorter
35
- // "Select date" — same phrasing as `heading` above.
36
47
  modalPreview: {
37
48
  day: {
38
49
  single: "Sélectionner une date",
@@ -49,6 +60,7 @@ export const fr = {
49
60
  },
50
61
  },
51
62
  timePicker: {
63
+ openClock: "Ouvrir l'horloge",
52
64
  amPm: "AM/PM",
53
65
  hour: "Heure",
54
66
  minute: "Minute",
@@ -58,14 +70,23 @@ export const fr = {
58
70
  mustBeAtOrBefore: (time) => `L'heure doit être à ${time} ou avant`,
59
71
  },
60
72
  scheduler: {
73
+ previous: "Période précédente",
74
+ next: "Période suivante",
61
75
  calendarView: "Vue du calendrier",
62
76
  },
63
77
  carousel: {
64
78
  ofTotal: (index, total) => `${index} sur ${total}`,
65
79
  slideNavigation: "Navigation des diapositives",
80
+ previous: "Diapositive précédente",
81
+ next: "Diapositive suivante",
66
82
  goToSlide: (index, total) => `Aller à la diapositive ${index} sur ${total}`,
67
83
  },
68
84
  imageCarousel: {
85
+ gallery: "Galerie d'images",
86
+ previous: "Image précédente",
87
+ next: "Image suivante",
88
+ expand: "Voir l'image en taille réelle",
89
+ lightbox: "Visionneuse d'images",
69
90
  selectImage: "Sélectionner une image",
70
91
  showImage: (index, total) => `Afficher l'image ${index} sur ${total}`,
71
92
  imageNavigation: "Navigation des images",
@@ -75,7 +96,87 @@ export const fr = {
75
96
  chip: {
76
97
  remove: "Retirer",
77
98
  },
99
+ passwordStrength: {
100
+ label: "Robustesse du mot de passe",
101
+ levels: ["Faible", "Moyen", "Bon", "Fort"],
102
+ caption: (label) => `${label}\u00A0:`,
103
+ },
104
+ infiniteList: {
105
+ loadingMore: "Chargement d'autres éléments…",
106
+ itemsLoaded: (count) => count > 1
107
+ ? `${count} éléments supplémentaires chargés`
108
+ : `${count} élément supplémentaire chargé`,
109
+ },
110
+ table: {
111
+ loadingMore: "Chargement d'autres lignes…",
112
+ selected: "sélectionnée(s)",
113
+ selectAll: "Tout sélectionner",
114
+ deselectAll: "Tout désélectionner",
115
+ selectAllRows: "Sélectionner toutes les lignes",
116
+ deselectAllRows: "Désélectionner toutes les lignes",
117
+ selectRow: "Sélectionner la ligne",
118
+ selectionActions: "Actions de sélection",
119
+ clearSelection: "Vider la sélection",
120
+ rowActions: "Actions de la ligne",
121
+ rowsLoaded: (count) => count > 1
122
+ ? `${count} lignes supplémentaires chargées`
123
+ : `${count} ligne supplémentaire chargée`,
124
+ },
78
125
  link: {
79
126
  opensInNewTab: "ouvre dans un nouvel onglet",
80
127
  },
128
+ input: {
129
+ clear: "Effacer le champ",
130
+ showPassword: "Afficher le mot de passe",
131
+ hidePassword: "Masquer le mot de passe",
132
+ },
133
+ search: {
134
+ panel: "Rechercher",
135
+ },
136
+ counter: {
137
+ increment: "Augmenter la valeur",
138
+ decrement: "Diminuer la valeur",
139
+ },
140
+ inputFile: {
141
+ remove: "Retirer le fichier",
142
+ select: "Sélectionner un fichier",
143
+ open: "Ouvrir dans un nouvel onglet",
144
+ },
145
+ inputPhone: {
146
+ selectCountry: "Sélectionner un pays",
147
+ },
148
+ colorPicker: {
149
+ noColor: "Aucune couleur sélectionnée",
150
+ },
151
+ pagination: {
152
+ previous: "Page précédente",
153
+ next: "Page suivante",
154
+ first: "Première page",
155
+ last: "Dernière page",
156
+ page: "Page",
157
+ },
158
+ sidebar: {
159
+ expand: "Déplier la barre latérale",
160
+ collapse: "Replier la barre latérale",
161
+ resize: "Redimensionner la barre latérale",
162
+ },
163
+ toolbar: {
164
+ menuOpen: "Ouvrir le menu",
165
+ menuClose: "Fermer le menu",
166
+ menu: "Menu",
167
+ },
168
+ rating: {
169
+ label: "Note",
170
+ valueText: (value, max) => `${value} sur ${max}`,
171
+ summary: (label, valueText) => `${label}\u00A0: ${valueText}`,
172
+ noValue: "Non noté",
173
+ clear: "Effacer la note",
174
+ },
175
+ validation: {
176
+ valueMissing: "Ce champ est obligatoire",
177
+ tooShort: (min, length) => `Saisissez au moins ${min} caractères (actuellement ${length}).`,
178
+ tooLong: (max, length) => `Saisissez au plus ${max} caractères (actuellement ${length}).`,
179
+ invalidDate: "Saisissez une date valide",
180
+ invalidTime: "Saisissez une heure valide",
181
+ },
81
182
  };
package/dist/index.d.ts CHANGED
@@ -18,6 +18,8 @@ export { EunomiaLink, EunomiaLinkTagName, } from "./components/action/link/link.
18
18
  export { EunomiaIcon, EunomiaIconTagName, setIconBaseUrl, } from "./components/content/icon/icon.js";
19
19
  export type { EunomiaIconName, EunomiaIconType, } from "./components/content/icon/icon.type.js";
20
20
  export { EunomiaTag, EunomiaTagTagName } from "./components/content/tag/tag.js";
21
+ export { EunomiaDescriptionList, EunomiaDescriptionListTagName, } from "./components/content/description-list/description-list.js";
22
+ export type { EunomiaDescriptionListAlign, EunomiaDescriptionListLayout, } from "./components/content/description-list/description-list.js";
21
23
  export { EunomiaChip, EunomiaChipTagName, } from "./components/content/chip/chip.js";
22
24
  export type { EunomiaChipColor, EunomiaChipAppearance, EunomiaChipSeverity, EunomiaChipSize, EunomiaChipAvatarShape, } from "./components/content/chip/chip.js";
23
25
  export { EunomiaBadge, EunomiaBadgeTagName, } from "./components/content/badge/badge.js";
@@ -41,8 +43,6 @@ export { EunomiaTabPanel, EunomiaTabPanelTagName, } from "./components/navigatio
41
43
  export { EunomiaCarousel, EunomiaCarouselTagName, } from "./components/navigation/carousel/carousel.js";
42
44
  export type { EunomiaCarouselLayout } from "./components/navigation/carousel/carousel.js";
43
45
  export { EunomiaBreadcrumb, EunomiaBreadcrumbTagName, } from "./components/navigation/breadcrumb/breadcrumb.js";
44
- export type { EunomiaBreadcrumbItemData } from "./components/navigation/breadcrumb/breadcrumb.js";
45
- export { EunomiaBreadcrumbItem, EunomiaBreadcrumbItemTagName, } from "./components/navigation/breadcrumb/breadcrumb-item.js";
46
46
  export { EunomiaPagination, EunomiaPaginationTagName, } from "./components/navigation/pagination/pagination.js";
47
47
  export { EunomiaStepper, EunomiaStepperTagName, } from "./components/navigation/stepper/stepper.js";
48
48
  export type { EunomiaStepperItemState, EunomiaStepperOrientation, EunomiaStepperStepData, EunomiaStepperSubstepData, EunomiaStepperVariant, } from "./components/navigation/stepper/stepper.js";
@@ -83,6 +83,8 @@ export { EunomiaColorPicker, EunomiaColorPickerTagName, } from "./components/for
83
83
  export { EunomiaInputFile, EunomiaInputFileTagName, } from "./components/form/input-file/input-file.js";
84
84
  export type { EunomiaInputFileKind } from "./components/form/input-file/input-file.js";
85
85
  export { EunomiaSlider, EunomiaSliderTagName, } from "./components/form/slider/slider.js";
86
+ export { EunomiaRating, EunomiaRatingTagName, } from "./components/form/rating/rating.js";
87
+ export type { EunomiaRatingStep } from "./components/form/rating/rating.js";
86
88
  export { EunomiaLoader, EunomiaLoaderTagName, } from "./components/loader/loader/loader.js";
87
89
  export type { EunomiaLoaderVariant } from "./components/loader/loader/loader.js";
88
90
  export { EunomiaSkeleton, EunomiaSkeletonTagName, } from "./components/loader/skeleton/skeleton.js";
@@ -94,17 +96,11 @@ export type { EunomiaSchedulerEventAppearance } from "./features/scheduler/sched
94
96
  export { EunomiaSchedulerEventEditor, EunomiaSchedulerEventEditorTagName, } from "./features/scheduler/scheduler-event-editor/scheduler-event-editor.js";
95
97
  export type { EunomiaSchedulerEvent, EunomiaSchedulerEventColor, EunomiaSchedulerEventPriority, EunomiaSchedulerGuest, EunomiaSchedulerGuestStatus, EunomiaSchedulerView, } from "./features/scheduler/shared/scheduler.types.js";
96
98
  export { EunomiaTable, EunomiaTableTagName, } from "./features/table/table/table.js";
97
- export { EunomiaTableHeader, EunomiaTableHeaderTagName, } from "./features/table/table-header/table-header.js";
98
- export { EunomiaTableColumn, EunomiaTableColumnTagName, } from "./features/table/table-column/table-column.js";
99
- export type { EunomiaTableColumnSort } from "./features/table/table-column/table-column.js";
100
- export { EunomiaTableItem, EunomiaTableItemTagName, } from "./features/table/table-item/table-item.js";
101
- export { EunomiaTableCell, EunomiaTableCellTagName, } from "./features/table/table-cell/table-cell.js";
102
99
  export { EunomiaTableActionBar, EunomiaTableActionBarTagName, } from "./features/table/table-action-bar/table-action-bar.js";
103
- export { EunomiaTableSkeletonRow, EunomiaTableSkeletonRowTagName, } from "./features/table/table-skeleton-row/table-skeleton-row.js";
104
- export type { EunomiaTableAction, EunomiaTableColumnDef, EunomiaTableRowButtonActionDef, EunomiaTableRowDropdownActionDef, EunomiaTableRowActionDef, } from "./features/table/table/table.types.js";
100
+ export type { EunomiaTableAction, EunomiaTableColumnDef, EunomiaTableColumnSort, EunomiaTableRowButtonActionDef, EunomiaTableRowDropdownActionDef, EunomiaTableRowActionDef, } from "./features/table/table/table.types.js";
105
101
  export { debounce, throttle } from "./utils/time.utils.js";
106
102
  export { createDragReorder } from "./utils/drag-drop.utils.js";
107
- export { EUNOMIA_BREAKPOINTS } from "./breakpoints.js";
103
+ export { EUNOMIA_BREAKPOINTS, mediaBelow, mediaFrom } from "./breakpoints.js";
108
104
  export type { EunomiaBreakpoint } from "./breakpoints.js";
109
105
  export { setDefaultLocale, getDefaultLocale } from "./i18n/index.js";
110
106
  export type { Dictionary } from "./i18n/index.js";
package/dist/index.js CHANGED
@@ -28,9 +28,10 @@
28
28
  // `buildThemeCss` is its pure counterpart, returning the same tokens as a
29
29
  // stylesheet so an SSR app can ship the brand in the HTML itself instead
30
30
  // of flashing the base theme until `initializeTheme` runs after hydration.
31
- // `EUNOMIA_BREAKPOINTS` is exported so a consumer's own responsive layout
32
- // code can switch at the exact same pixel widths the components already
33
- // react to internally, instead of guessing or duplicating those numbers.
31
+ // `EUNOMIA_BREAKPOINTS`, `mediaBelow` and `mediaFrom` are exported so a
32
+ // consumer's own responsive code switches at the exact same widths the
33
+ // components react to internally. They're also published on their own as
34
+ // the `./breakpoints.js` subpath, which registers no component.
34
35
  export { EunomiaAnimate, EunomiaAnimateTagName, } from "./components/layout/animate/animate.js";
35
36
  export { EunomiaInfiniteList, EunomiaInfiniteListTagName, } from "./components/layout/infinite-list/infinite-list.js";
36
37
  export { EunomiaDivider, EunomiaDividerTagName, } from "./components/layout/divider/divider.js";
@@ -44,6 +45,7 @@ export { EunomiaToggleGroup, EunomiaToggleGroupTagName, } from "./components/act
44
45
  export { EunomiaLink, EunomiaLinkTagName, } from "./components/action/link/link.js";
45
46
  export { EunomiaIcon, EunomiaIconTagName, setIconBaseUrl, } from "./components/content/icon/icon.js";
46
47
  export { EunomiaTag, EunomiaTagTagName } from "./components/content/tag/tag.js";
48
+ export { EunomiaDescriptionList, EunomiaDescriptionListTagName, } from "./components/content/description-list/description-list.js";
47
49
  export { EunomiaChip, EunomiaChipTagName, } from "./components/content/chip/chip.js";
48
50
  export { EunomiaBadge, EunomiaBadgeTagName, } from "./components/content/badge/badge.js";
49
51
  export { EunomiaCollapse, EunomiaCollapseTagName, } from "./components/content/collapse/collapse.js";
@@ -60,7 +62,6 @@ export { EunomiaTab, EunomiaTabTagName, } from "./components/navigation/tabs/tab
60
62
  export { EunomiaTabPanel, EunomiaTabPanelTagName, } from "./components/navigation/tabs/tab-panel/tab-panel.js";
61
63
  export { EunomiaCarousel, EunomiaCarouselTagName, } from "./components/navigation/carousel/carousel.js";
62
64
  export { EunomiaBreadcrumb, EunomiaBreadcrumbTagName, } from "./components/navigation/breadcrumb/breadcrumb.js";
63
- export { EunomiaBreadcrumbItem, EunomiaBreadcrumbItemTagName, } from "./components/navigation/breadcrumb/breadcrumb-item.js";
64
65
  export { EunomiaPagination, EunomiaPaginationTagName, } from "./components/navigation/pagination/pagination.js";
65
66
  export { EunomiaStepper, EunomiaStepperTagName, } from "./components/navigation/stepper/stepper.js";
66
67
  export { EunomiaStep, EunomiaStepTagName, } from "./components/navigation/stepper/step.js";
@@ -89,6 +90,7 @@ export { EunomiaSelect, EunomiaSelectTagName, } from "./components/form/select/s
89
90
  export { EunomiaColorPicker, EunomiaColorPickerTagName, } from "./components/form/color-picker/color-picker.js";
90
91
  export { EunomiaInputFile, EunomiaInputFileTagName, } from "./components/form/input-file/input-file.js";
91
92
  export { EunomiaSlider, EunomiaSliderTagName, } from "./components/form/slider/slider.js";
93
+ export { EunomiaRating, EunomiaRatingTagName, } from "./components/form/rating/rating.js";
92
94
  export { EunomiaLoader, EunomiaLoaderTagName, } from "./components/loader/loader/loader.js";
93
95
  export { EunomiaSkeleton, EunomiaSkeletonTagName, } from "./components/loader/skeleton/skeleton.js";
94
96
  export { EunomiaScheduler, EunomiaSchedulerTagName, } from "./features/scheduler/scheduler/scheduler.js";
@@ -96,15 +98,10 @@ export { EunomiaCalendar, EunomiaCalendarTagName, } from "./features/scheduler/c
96
98
  export { EunomiaSchedulerEventCard, EunomiaSchedulerEventCardTagName, } from "./features/scheduler/scheduler-event/scheduler-event.js";
97
99
  export { EunomiaSchedulerEventEditor, EunomiaSchedulerEventEditorTagName, } from "./features/scheduler/scheduler-event-editor/scheduler-event-editor.js";
98
100
  export { EunomiaTable, EunomiaTableTagName, } from "./features/table/table/table.js";
99
- export { EunomiaTableHeader, EunomiaTableHeaderTagName, } from "./features/table/table-header/table-header.js";
100
- export { EunomiaTableColumn, EunomiaTableColumnTagName, } from "./features/table/table-column/table-column.js";
101
- export { EunomiaTableItem, EunomiaTableItemTagName, } from "./features/table/table-item/table-item.js";
102
- export { EunomiaTableCell, EunomiaTableCellTagName, } from "./features/table/table-cell/table-cell.js";
103
101
  export { EunomiaTableActionBar, EunomiaTableActionBarTagName, } from "./features/table/table-action-bar/table-action-bar.js";
104
- export { EunomiaTableSkeletonRow, EunomiaTableSkeletonRowTagName, } from "./features/table/table-skeleton-row/table-skeleton-row.js";
105
102
  export { debounce, throttle } from "./utils/time.utils.js";
106
103
  export { createDragReorder } from "./utils/drag-drop.utils.js";
107
- export { EUNOMIA_BREAKPOINTS } from "./breakpoints.js";
104
+ export { EUNOMIA_BREAKPOINTS, mediaBelow, mediaFrom } from "./breakpoints.js";
108
105
  export { setDefaultLocale, getDefaultLocale } from "./i18n/index.js";
109
106
  export { buildPalette, buildTints, buildThemeCss, initializeTheme, } from "./utils/theme-generator.utils.js";
110
107
  export { findRichTextColor, formatRichText, getPlainTextLength, joinAlign, parseInlineNodes, RICH_TEXT_COLORS, splitAlign, toHtml, toPlainText, } from "./utils/rich-text.utils.js";
@@ -36,7 +36,8 @@ export const ButtonMixin = (superClass) => {
36
36
  */
37
37
  this.fixedColor = false;
38
38
  /**
39
- * The button size.
39
+ * The button size. The default isn't reflected, so an SSR framework
40
+ * doesn't see an attribute it never rendered.
40
41
  * @default "m"
41
42
  */
42
43
  this.size = "m";
@@ -171,7 +172,7 @@ export const ButtonMixin = (superClass) => {
171
172
  property({ type: Boolean, reflect: true, attribute: "fixed-color" })
172
173
  ], ButtonMixinClass.prototype, "fixedColor", void 0);
173
174
  __decorate([
174
- property({ reflect: true })
175
+ property({ reflect: true, useDefault: true })
175
176
  ], ButtonMixinClass.prototype, "size", void 0);
176
177
  __decorate([
177
178
  property({ type: Boolean, reflect: true })
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { property } from "lit/decorators.js";
8
+ import { hasErrorDisplayChange } from "./form.mixin.js";
8
9
  import { ChangeEvent } from "../events/change.event.js";
9
10
  /**
10
11
  * Mixin adding "checkable" behavior to a component.
@@ -29,6 +30,17 @@ export const CheckMixin = (superClass) => {
29
30
  * @default true
30
31
  */
31
32
  this.checkable = true;
33
+ /**
34
+ * The host is the control, so its hint or error goes on its own
35
+ * `aria-description`.
36
+ * @internal
37
+ */
38
+ this.descriptionOnHost = true;
39
+ /**
40
+ * Every change is a complete choice, so its error shows right away.
41
+ * @internal
42
+ */
43
+ this.errorOnChange = true;
32
44
  /**
33
45
  * Overrides `ValidatorsMixin`'s own `required` check, which validates
34
46
  * emptiness of `this.value` — meaningless here, since a checkable
@@ -47,7 +59,7 @@ export const CheckMixin = (superClass) => {
47
59
  if (this.required && !this.checked) {
48
60
  return {
49
61
  validity: { valueMissing: true },
50
- message: "Field value is missing",
62
+ message: this.validationDictionary.validation.valueMissing,
51
63
  };
52
64
  }
53
65
  return { validity: {} };
@@ -98,10 +110,8 @@ export const CheckMixin = (superClass) => {
98
110
  this.setAttribute("aria-checked", String(this.checked));
99
111
  this.updateInternals();
100
112
  }
101
- if (_changedProperties.has("valid") ||
102
- _changedProperties.has("hideError") ||
103
- _changedProperties.has("disabled")) {
104
- this.setAttribute("aria-invalid", String(!this.hideError && !this.disabled && !this.valid));
113
+ if (hasErrorDisplayChange(_changedProperties)) {
114
+ this.setAttribute("aria-invalid", String(this.showError));
105
115
  }
106
116
  if (_changedProperties.has("required")) {
107
117
  this.setAttribute("aria-required", String(this.required));
@@ -121,7 +131,6 @@ export const CheckMixin = (superClass) => {
121
131
  * - Prevents propagation.
122
132
  * - Ignores action if `disabled` or `readonly`.
123
133
  * - Toggles the `checked` state.
124
- * - Updates ARIA attributes (`aria-description`).
125
134
  * - Dispatches a custom `ChangeEvent`.
126
135
  *
127
136
  * @param event The triggered mouse or keyboard event
@@ -135,15 +144,6 @@ export const CheckMixin = (superClass) => {
135
144
  this.checked = !this.checked;
136
145
  this.updateInternals();
137
146
  this.checkValidity(this.checked);
138
- if (this.description) {
139
- const attribute = this.description instanceof Array
140
- ? this.description.join(",")
141
- : this.description;
142
- this.setAttribute("aria-description", attribute);
143
- }
144
- else {
145
- this.removeAttribute("aria-description");
146
- }
147
147
  this.dispatchEvent(new ChangeEvent(this.checked));
148
148
  }
149
149
  /**
@@ -13,6 +13,11 @@ export declare class DisabledMixinInterface {
13
13
  * - `tabindex` (to prevent focus when disabled),
14
14
  * - `aria-disabled` for accessibility, only present while disabled.
15
15
  *
16
+ * A component whose host is the control itself (a checkbox, a button) gets
17
+ * `tabindex="0"` while enabled. One rendering its own focusable controls
18
+ * inside its shadow root overrides {@link hostTabStop} to `false`, so the
19
+ * host never becomes an extra, empty stop in front of them.
20
+ *
16
21
  * @param superClass - The base class to extend.
17
22
  * @returns A new class extending the base with `disabled` behavior.
18
23
  */
@@ -12,6 +12,11 @@ import { property } from "lit/decorators.js";
12
12
  * - `tabindex` (to prevent focus when disabled),
13
13
  * - `aria-disabled` for accessibility, only present while disabled.
14
14
  *
15
+ * A component whose host is the control itself (a checkbox, a button) gets
16
+ * `tabindex="0"` while enabled. One rendering its own focusable controls
17
+ * inside its shadow root overrides {@link hostTabStop} to `false`, so the
18
+ * host never becomes an extra, empty stop in front of them.
19
+ *
15
20
  * @param superClass - The base class to extend.
16
21
  * @returns A new class extending the base with `disabled` behavior.
17
22
  */
@@ -26,6 +31,13 @@ export const DisabledMixin = (superClass) => {
26
31
  */
27
32
  this.disabled = false;
28
33
  }
34
+ /**
35
+ * Whether the host itself is a tab stop while enabled. `false` for a
36
+ * component whose focusable controls live inside its shadow root.
37
+ */
38
+ get hostTabStop() {
39
+ return true;
40
+ }
29
41
  /**
30
42
  * LitElement lifecycle method.
31
43
  * Called when reactive properties are updated.
@@ -35,7 +47,15 @@ export const DisabledMixin = (superClass) => {
35
47
  updated(_changedProperties) {
36
48
  super.updated(_changedProperties);
37
49
  if (_changedProperties.has("disabled")) {
38
- this.setAttribute("tabindex", this.disabled ? "-1" : "0");
50
+ if (this.disabled) {
51
+ this.setAttribute("tabindex", "-1");
52
+ }
53
+ else if (this.hostTabStop) {
54
+ this.setAttribute("tabindex", "0");
55
+ }
56
+ else {
57
+ this.removeAttribute("tabindex");
58
+ }
39
59
  if (this.disabled) {
40
60
  this.setAttribute("aria-disabled", "true");
41
61
  }
@@ -4,6 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
7
12
  import { property } from "lit/decorators.js";
8
13
  import { CommitEvent } from "../events/commit.event.js";
9
14
  /**
@@ -22,9 +27,11 @@ import { CommitEvent } from "../events/commit.event.js";
22
27
  * @returns A class extending the provided superclass with editable behavior.
23
28
  */
24
29
  export const EditableMixin = (superClass) => {
30
+ var _EditableMixinClass_instances, _EditableMixinClass_leaveEdit, _EditableMixinClass_ownsFocus;
25
31
  class EditableMixinClass extends superClass {
26
32
  constructor() {
27
33
  super(...arguments);
34
+ _EditableMixinClass_instances.add(this);
28
35
  /**
29
36
  * Whether the field can switch between a static read display and an
30
37
  * editable one. When false, the field always renders as fully editable.
@@ -50,15 +57,19 @@ export const EditableMixin = (superClass) => {
50
57
  }
51
58
  /**
52
59
  * Confirms the current edit. Runs validation first; if it fails, the
53
- * field stays in edit mode and the error is shown instead of committing.
54
- * On success, dispatches a {@link CommitEvent} so consumers can persist
55
- * the new value.
60
+ * field stays in edit mode, shows its error and gets the focus back
61
+ * instead of committing. On success, dispatches a {@link CommitEvent}
62
+ * so consumers can persist the new value.
56
63
  */
57
64
  confirmEdit() {
58
65
  if (!this.checkValidity(this.value)) {
66
+ this.validationRequested = true;
67
+ if (__classPrivateFieldGet(this, _EditableMixinClass_instances, "m", _EditableMixinClass_ownsFocus).call(this)) {
68
+ this.focus();
69
+ }
59
70
  return;
60
71
  }
61
- this.editing = false;
72
+ __classPrivateFieldGet(this, _EditableMixinClass_instances, "m", _EditableMixinClass_leaveEdit).call(this);
62
73
  this.dispatchEvent(new CommitEvent());
63
74
  }
64
75
  /**
@@ -67,9 +78,21 @@ export const EditableMixin = (superClass) => {
67
78
  */
68
79
  cancelEdit() {
69
80
  this.value = this.valueOnEditStart;
70
- this.editing = false;
81
+ __classPrivateFieldGet(this, _EditableMixinClass_instances, "m", _EditableMixinClass_leaveEdit).call(this);
71
82
  }
72
83
  }
84
+ _EditableMixinClass_instances = new WeakSet(), _EditableMixinClass_leaveEdit = function _EditableMixinClass_leaveEdit() {
85
+ const restoreFocus = __classPrivateFieldGet(this, _EditableMixinClass_instances, "m", _EditableMixinClass_ownsFocus).call(this);
86
+ this.editing = false;
87
+ if (restoreFocus) {
88
+ void this.updateComplete.then(() => this.shadowRoot
89
+ ?.querySelector("#readonly-display")
90
+ ?.focus());
91
+ }
92
+ }, _EditableMixinClass_ownsFocus = function _EditableMixinClass_ownsFocus() {
93
+ const active = document.activeElement;
94
+ return (!active || active === document.body || this.matches(":focus-within"));
95
+ };
73
96
  __decorate([
74
97
  property({
75
98
  type: Boolean,
@@ -20,13 +20,14 @@ export const FieldAppearanceMixin = (superClass) => {
20
20
  super(...arguments);
21
21
  /**
22
22
  * How the field's surface is drawn.
23
- * By default, set to "outline".
23
+ * By default, set to "outline". The default isn't reflected, so an SSR
24
+ * framework doesn't see an attribute it never rendered.
24
25
  */
25
26
  this.appearance = "outline";
26
27
  }
27
28
  }
28
29
  __decorate([
29
- property({ reflect: true })
30
+ property({ reflect: true, useDefault: true })
30
31
  ], FieldAppearanceMixinClass.prototype, "appearance", void 0);
31
32
  return FieldAppearanceMixinClass;
32
33
  };