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

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 (455) hide show
  1. package/README.md +1 -1
  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-OW7XKDCH.js → chunk-2Y2EU2CI.js} +16 -16
  6. package/dist/cdn/components/chunks/{chunk-LFCXUVDO.js → chunk-4PI6RDUS.js} +1 -1
  7. package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
  8. package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
  9. package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
  10. package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
  11. package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
  12. package/dist/cdn/components/chunks/{chunk-EAKYD33D.js → chunk-BQFJR2UP.js} +4 -4
  13. package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
  14. package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
  15. package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
  16. package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
  17. package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
  18. package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
  19. package/dist/cdn/components/chunks/{chunk-IDKZKLJR.js → chunk-KDN4O5W2.js} +24 -11
  20. package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
  21. package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
  22. package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
  23. package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
  24. package/dist/cdn/components/chunks/{chunk-2XASWWKR.js → chunk-MQQ4BGVJ.js} +5 -5
  25. package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
  26. package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
  27. package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
  28. package/dist/cdn/components/chunks/{chunk-6ETDXUH2.js → chunk-PMPSJG5V.js} +7 -7
  29. package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
  30. package/dist/cdn/components/chunks/{chunk-AIS3UICU.js → chunk-QZ5SHR3I.js} +9 -5
  31. package/dist/cdn/components/chunks/{chunk-32DTNR52.js → chunk-RS7TWEMQ.js} +1 -1
  32. package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
  33. package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-SZYEBMG6.js} +10 -9
  34. package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-UDVB4LAE.js} +5 -2
  35. package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
  36. package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
  37. package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
  38. package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
  39. package/dist/cdn/components/chunks/{chunk-DKOPI7QA.js → chunk-VYFR364B.js} +73 -63
  40. package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-XDPRWUKN.js} +1 -1
  41. package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
  42. package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
  43. package/dist/cdn/components/chunks/{chunk-NBIENHLV.js → chunk-ZKZV2YG5.js} +18 -18
  44. package/dist/cdn/components/eun-alert.js +24 -16
  45. package/dist/cdn/components/eun-animate.js +12 -8
  46. package/dist/cdn/components/eun-badge.js +1 -1
  47. package/dist/cdn/components/eun-breadcrumb.js +25 -41
  48. package/dist/cdn/components/eun-button.js +1 -1
  49. package/dist/cdn/components/eun-calendar.js +67 -65
  50. package/dist/cdn/components/eun-card.js +32 -17
  51. package/dist/cdn/components/eun-carousel.js +66 -35
  52. package/dist/cdn/components/eun-check-card.js +13 -6
  53. package/dist/cdn/components/eun-checkbox-list.js +4 -4
  54. package/dist/cdn/components/eun-checkbox.js +1 -1
  55. package/dist/cdn/components/eun-chip.js +1 -1
  56. package/dist/cdn/components/eun-collapse.js +56 -27
  57. package/dist/cdn/components/eun-color-picker.js +53 -52
  58. package/dist/cdn/components/eun-counter.js +9 -8
  59. package/dist/cdn/components/eun-date-picker.js +59 -56
  60. package/dist/cdn/components/eun-description-list.js +152 -0
  61. package/dist/cdn/components/eun-divider.js +1 -1
  62. package/dist/cdn/components/eun-drawer.js +32 -18
  63. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  64. package/dist/cdn/components/eun-dropdown-item.js +6 -5
  65. package/dist/cdn/components/eun-fab.js +17 -16
  66. package/dist/cdn/components/eun-icon.js +1 -1
  67. package/dist/cdn/components/eun-image-card.js +79 -22
  68. package/dist/cdn/components/eun-image-carousel.js +92 -47
  69. package/dist/cdn/components/eun-infinite-list.js +23 -11
  70. package/dist/cdn/components/eun-input-file.js +14 -13
  71. package/dist/cdn/components/eun-input-phone.js +15 -15
  72. package/dist/cdn/components/eun-input.js +1 -1
  73. package/dist/cdn/components/eun-label.js +4 -4
  74. package/dist/cdn/components/eun-link.js +78 -29
  75. package/dist/cdn/components/eun-loader.js +1 -1
  76. package/dist/cdn/components/eun-modal.js +17 -10
  77. package/dist/cdn/components/eun-pagination.js +17 -12
  78. package/dist/cdn/components/eun-password-strength.js +6 -2
  79. package/dist/cdn/components/eun-progress-bar.js +13 -5
  80. package/dist/cdn/components/eun-radio-card.js +16 -9
  81. package/dist/cdn/components/eun-radio-list.js +4 -4
  82. package/dist/cdn/components/eun-radio.js +1 -1
  83. package/dist/cdn/components/eun-scheduler-event-editor.js +1 -1
  84. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  85. package/dist/cdn/components/eun-scheduler.js +36 -36
  86. package/dist/cdn/components/eun-search.js +11 -10
  87. package/dist/cdn/components/eun-select.js +12 -11
  88. package/dist/cdn/components/eun-sidebar.js +34 -20
  89. package/dist/cdn/components/eun-skeleton.js +1 -1
  90. package/dist/cdn/components/eun-slider.js +15 -14
  91. package/dist/cdn/components/eun-sliding-card.js +8 -4
  92. package/dist/cdn/components/eun-step.js +17 -6
  93. package/dist/cdn/components/eun-stepper.js +17 -6
  94. package/dist/cdn/components/eun-switch.js +10 -8
  95. package/dist/cdn/components/eun-tab-group.js +22 -17
  96. package/dist/cdn/components/eun-tab-panel.js +11 -3
  97. package/dist/cdn/components/eun-tab.js +1 -1
  98. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  99. package/dist/cdn/components/eun-table.js +572 -31
  100. package/dist/cdn/components/eun-tag.js +13 -7
  101. package/dist/cdn/components/eun-textarea.js +23 -23
  102. package/dist/cdn/components/eun-time-picker.js +17 -15
  103. package/dist/cdn/components/eun-toast.js +36 -16
  104. package/dist/cdn/components/eun-toggle-group.js +53 -34
  105. package/dist/cdn/components/eun-toggle-item.js +16 -15
  106. package/dist/cdn/components/eun-toggle.js +12 -10
  107. package/dist/cdn/components/eun-toolbar.js +62 -52
  108. package/dist/cdn/components/eun-tooltip.js +30 -14
  109. package/dist/cdn/styles/breakpoints.scss +8 -0
  110. package/dist/cdn/styles/eunomia-grid.scss +6 -0
  111. package/dist/cdn/styles/eunomia-themes.css +1 -1
  112. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  113. package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
  114. package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  115. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  116. package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  117. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  118. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  119. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  120. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  121. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  122. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  123. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  124. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  125. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  126. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  127. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  128. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  129. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  130. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  131. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  132. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  133. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  134. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  135. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  136. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  137. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  138. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  139. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  140. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  141. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  142. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  143. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  144. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  145. package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  146. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  147. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  148. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  149. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  150. package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  151. package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  152. package/dist/components/action/button/button.d.ts +7 -2
  153. package/dist/components/action/button/button.js +7 -2
  154. package/dist/components/action/button/button.styles.js +51 -36
  155. package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
  156. package/dist/components/action/dropdown-button/dropdown-button.js +11 -10
  157. package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
  158. package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
  159. package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
  160. package/dist/components/action/fab/fab.styles.js +14 -13
  161. package/dist/components/action/link/link.d.ts +7 -3
  162. package/dist/components/action/link/link.js +11 -7
  163. package/dist/components/action/link/link.styles.js +66 -15
  164. package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
  165. package/dist/components/action/toggle/toggle-group.d.ts +2 -0
  166. package/dist/components/action/toggle/toggle-group.js +5 -3
  167. package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
  168. package/dist/components/action/toggle/toggle-group.styles.js +42 -21
  169. package/dist/components/action/toggle/toggle-item.styles.js +13 -12
  170. package/dist/components/action/toggle/toggle.d.ts +2 -0
  171. package/dist/components/action/toggle/toggle.js +2 -0
  172. package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
  173. package/dist/components/action/toggle/toggle.styles.js +12 -8
  174. package/dist/components/alert/alert/alert.d.ts +2 -0
  175. package/dist/components/alert/alert/alert.js +2 -0
  176. package/dist/components/alert/alert/alert.styles.js +23 -13
  177. package/dist/components/alert/drawer/drawer.d.ts +3 -1
  178. package/dist/components/alert/drawer/drawer.js +4 -2
  179. package/dist/components/alert/drawer/drawer.styles.js +25 -9
  180. package/dist/components/alert/modal/modal.d.ts +3 -1
  181. package/dist/components/alert/modal/modal.js +4 -2
  182. package/dist/components/alert/modal/modal.styles.js +16 -7
  183. package/dist/components/alert/toast/toast.d.ts +2 -0
  184. package/dist/components/alert/toast/toast.js +2 -0
  185. package/dist/components/alert/toast/toast.styles.js +37 -15
  186. package/dist/components/content/card/card.d.ts +7 -3
  187. package/dist/components/content/card/card.js +7 -3
  188. package/dist/components/content/card/card.styles.js +26 -11
  189. package/dist/components/content/card/image-card.d.ts +60 -6
  190. package/dist/components/content/card/image-card.js +120 -11
  191. package/dist/components/content/card/image-card.styles.js +66 -15
  192. package/dist/components/content/card/sliding-card.d.ts +2 -0
  193. package/dist/components/content/card/sliding-card.js +2 -0
  194. package/dist/components/content/card/sliding-card.styles.js +5 -1
  195. package/dist/components/content/collapse/collapse.d.ts +10 -1
  196. package/dist/components/content/collapse/collapse.js +12 -2
  197. package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
  198. package/dist/components/content/collapse/collapse.styles.js +56 -18
  199. package/dist/components/content/description-list/description-list.d.ts +87 -0
  200. package/dist/components/content/description-list/description-list.js +107 -0
  201. package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
  202. package/dist/components/content/description-list/description-list.styles.js +185 -0
  203. package/dist/components/content/icon/icon.d.ts +2 -0
  204. package/dist/components/content/icon/icon.js +2 -0
  205. package/dist/components/content/icon/icon.style.js +4 -1
  206. package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
  207. package/dist/components/content/image-carousel/image-carousel.js +48 -45
  208. package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
  209. package/dist/components/content/password-strength/password-strength.styles.js +5 -1
  210. package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
  211. package/dist/components/content/shared-styles/card-link.styles.js +4 -3
  212. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
  213. package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
  214. package/dist/components/content/tag/tag.d.ts +4 -0
  215. package/dist/components/content/tag/tag.js +4 -0
  216. package/dist/components/content/tag/tag.styles.js +14 -4
  217. package/dist/components/content/tooltip/tooltip.d.ts +3 -2
  218. package/dist/components/content/tooltip/tooltip.js +9 -16
  219. package/dist/components/content/tooltip/tooltip.styles.js +25 -7
  220. package/dist/components/form/checkbox/check-card.d.ts +4 -1
  221. package/dist/components/form/checkbox/check-card.js +4 -1
  222. package/dist/components/form/checkbox/check-card.styles.js +13 -4
  223. package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
  224. package/dist/components/form/checkbox/checkbox-list.js +11 -7
  225. package/dist/components/form/checkbox/checkbox.d.ts +4 -1
  226. package/dist/components/form/checkbox/checkbox.js +4 -1
  227. package/dist/components/form/checkbox/checkbox.styles.js +2 -2
  228. package/dist/components/form/color-picker/color-picker.d.ts +7 -1
  229. package/dist/components/form/color-picker/color-picker.js +19 -21
  230. package/dist/components/form/color-picker/color-picker.styles.js +6 -5
  231. package/dist/components/form/counter/counter.d.ts +4 -1
  232. package/dist/components/form/counter/counter.js +5 -2
  233. package/dist/components/form/counter/counter.styles.js +5 -4
  234. package/dist/components/form/date-picker/date-picker.d.ts +37 -33
  235. package/dist/components/form/date-picker/date-picker.js +32 -42
  236. package/dist/components/form/date-picker/date-picker.styles.js +8 -5
  237. package/dist/components/form/input/input.d.ts +7 -1
  238. package/dist/components/form/input/input.js +8 -2
  239. package/dist/components/form/input-file/input-file.d.ts +4 -1
  240. package/dist/components/form/input-file/input-file.js +8 -5
  241. package/dist/components/form/input-file/input-file.styles.js +3 -2
  242. package/dist/components/form/input-phone/input-phone.d.ts +8 -2
  243. package/dist/components/form/input-phone/input-phone.js +13 -17
  244. package/dist/components/form/input-phone/input-phone.styles.js +4 -4
  245. package/dist/components/form/label/label.styles.js +3 -3
  246. package/dist/components/form/radio/radio-card.d.ts +5 -2
  247. package/dist/components/form/radio/radio-card.js +5 -2
  248. package/dist/components/form/radio/radio-card.styles.js +14 -5
  249. package/dist/components/form/radio/radio-list.d.ts +5 -2
  250. package/dist/components/form/radio/radio-list.js +14 -10
  251. package/dist/components/form/radio/radio.d.ts +5 -2
  252. package/dist/components/form/radio/radio.js +5 -2
  253. package/dist/components/form/radio/radio.styles.js +4 -4
  254. package/dist/components/form/search/search.d.ts +2 -1
  255. package/dist/components/form/search/search.js +6 -15
  256. package/dist/components/form/search/search.styles.js +5 -4
  257. package/dist/components/form/select/select.d.ts +9 -2
  258. package/dist/components/form/select/select.js +15 -18
  259. package/dist/components/form/select/select.styles.js +3 -2
  260. package/dist/components/form/shared-styles/card.styles.js +5 -4
  261. package/dist/components/form/shared-styles/field.styles.js +16 -6
  262. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  263. package/dist/components/form/slider/slider.d.ts +4 -1
  264. package/dist/components/form/slider/slider.js +5 -2
  265. package/dist/components/form/slider/slider.styles.js +8 -7
  266. package/dist/components/form/switch/switch.d.ts +4 -1
  267. package/dist/components/form/switch/switch.js +4 -1
  268. package/dist/components/form/switch/switch.styles.js +7 -5
  269. package/dist/components/form/textarea/textarea.d.ts +7 -1
  270. package/dist/components/form/textarea/textarea.js +14 -8
  271. package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
  272. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
  273. package/dist/components/form/time-picker/time-picker.d.ts +6 -2
  274. package/dist/components/form/time-picker/time-picker.js +22 -26
  275. package/dist/components/form/time-picker/time-picker.styles.js +4 -3
  276. package/dist/components/layout/animate/animate.d.ts +37 -15
  277. package/dist/components/layout/animate/animate.js +35 -15
  278. package/dist/components/layout/animate/animate.styles.js +9 -16
  279. package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
  280. package/dist/components/layout/infinite-list/infinite-list.js +115 -18
  281. package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
  282. package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
  283. package/dist/components/loader/loader/loader.styles.js +3 -1
  284. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
  285. package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
  286. package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
  287. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
  288. package/dist/components/navigation/carousel/carousel.d.ts +30 -10
  289. package/dist/components/navigation/carousel/carousel.js +37 -18
  290. package/dist/components/navigation/carousel/carousel.styles.js +60 -20
  291. package/dist/components/navigation/pagination/pagination.styles.js +8 -3
  292. package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
  293. package/dist/components/navigation/sidebar/sidebar.js +2 -0
  294. package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
  295. package/dist/components/navigation/stepper/step.styles.js +16 -5
  296. package/dist/components/navigation/stepper/stepper.styles.js +16 -5
  297. package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
  298. package/dist/components/navigation/tabs/tab/tab.js +11 -0
  299. package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
  300. package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
  301. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
  302. package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
  303. package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
  304. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
  305. package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
  306. package/dist/components/navigation/toolbar/toolbar.js +23 -71
  307. package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
  308. package/dist/events/table-row-click.event.d.ts +5 -4
  309. package/dist/events/table-row-click.event.js +10 -5
  310. package/dist/features/scheduler/calendar/calendar.d.ts +6 -6
  311. package/dist/features/scheduler/calendar/calendar.js +6 -5
  312. package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
  313. package/dist/features/scheduler/scheduler/scheduler.d.ts +1 -1
  314. package/dist/features/scheduler/scheduler/scheduler.js +9 -23
  315. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
  316. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
  317. package/dist/features/scheduler/scheduler-event/scheduler-event.js +2 -0
  318. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +10 -4
  319. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
  320. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
  321. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
  322. package/dist/features/table/table/table-native.styles.d.ts +28 -0
  323. package/dist/features/table/table/table-native.styles.js +502 -0
  324. package/dist/features/table/table/table.d.ts +342 -294
  325. package/dist/features/table/table/table.js +820 -546
  326. package/dist/features/table/table/table.styles.js +31 -17
  327. package/dist/features/table/table/table.types.d.ts +11 -20
  328. package/dist/features/table/table/table.utils.d.ts +6 -36
  329. package/dist/features/table/table/table.utils.js +16 -65
  330. package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
  331. package/dist/features/table/table-action-bar/table-action-bar.js +15 -22
  332. package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
  333. package/dist/i18n/en.d.ts +31 -0
  334. package/dist/i18n/en.js +31 -0
  335. package/dist/i18n/fr.js +35 -0
  336. package/dist/index.d.ts +4 -10
  337. package/dist/index.js +6 -10
  338. package/dist/mixins/check.mixin.js +4 -5
  339. package/dist/mixins/form.mixin.d.ts +17 -1
  340. package/dist/mixins/form.mixin.js +80 -25
  341. package/dist/mixins/radio.mixin.js +4 -5
  342. package/dist/mixins/validators.mixin.d.ts +7 -1
  343. package/dist/mixins/validators.mixin.js +36 -17
  344. package/dist/ssr/animate-ssr.css +3 -2
  345. package/dist/ssr/button-ssr.css +319 -0
  346. package/dist/ssr/card-ssr.css +184 -0
  347. package/dist/ssr/description-list-ssr.css +150 -0
  348. package/dist/ssr/links-ssr.css +1 -1
  349. package/dist/ssr/table-ssr.css +472 -0
  350. package/dist/ssr/tag-ssr.css +197 -0
  351. package/dist/ssr/toolbar-ssr.css +5 -1
  352. package/dist/utils/drag-drop.utils.js +18 -2
  353. package/dist/utils/dropdown-menu.utils.d.ts +2 -2
  354. package/dist/utils/dropdown-menu.utils.js +4 -14
  355. package/dist/utils/light-dom-styles.utils.d.ts +14 -0
  356. package/dist/utils/light-dom-styles.utils.js +37 -0
  357. package/dist/utils/media.styles.d.ts +19 -0
  358. package/dist/utils/media.styles.js +23 -0
  359. package/dist/utils/motion.utils.d.ts +40 -0
  360. package/dist/utils/motion.utils.js +51 -0
  361. package/dist/utils/theme-generator.utils.d.ts +6 -1
  362. package/dist/utils/theme-generator.utils.js +59 -20
  363. package/package.json +17 -28
  364. package/styles/breakpoints.scss +8 -0
  365. package/styles/eunomia-grid.scss +6 -0
  366. package/styles/themes/eunomia-theme.scss +4 -3
  367. package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  368. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  369. package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  370. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  371. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  372. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  373. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  374. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  375. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  376. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  377. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  378. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  379. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  380. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  381. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  382. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  383. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  384. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  385. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  386. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  387. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  388. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  389. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  390. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  391. package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  392. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  393. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  394. package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  395. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  396. package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  397. package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  398. package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
  399. package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
  400. package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
  401. package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
  402. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
  403. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
  404. package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
  405. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
  406. package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
  407. package/dist/cdn/components/chunks/chunk-SJWRE6PW.js +0 -1
  408. package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
  409. package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
  410. package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
  411. package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
  412. package/dist/cdn/components/eun-table-cell.js +0 -1
  413. package/dist/cdn/components/eun-table-column.js +0 -1
  414. package/dist/cdn/components/eun-table-header.js +0 -1
  415. package/dist/cdn/components/eun-table-item.js +0 -1
  416. package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
  417. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  418. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  419. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
  420. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
  421. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
  422. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
  423. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
  424. package/dist/features/table/native-table.css +0 -276
  425. package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
  426. package/dist/features/table/shared-styles/table-row.styles.js +0 -47
  427. package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
  428. package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
  429. package/dist/features/table/table-cell/table-cell.d.ts +0 -59
  430. package/dist/features/table/table-cell/table-cell.js +0 -73
  431. package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
  432. package/dist/features/table/table-cell/table-cell.styles.js +0 -46
  433. package/dist/features/table/table-column/table-column.d.ts +0 -73
  434. package/dist/features/table/table-column/table-column.js +0 -89
  435. package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
  436. package/dist/features/table/table-column/table-column.styles.js +0 -51
  437. package/dist/features/table/table-header/table-header.d.ts +0 -102
  438. package/dist/features/table/table-header/table-header.js +0 -165
  439. package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
  440. package/dist/features/table/table-header/table-header.styles.js +0 -147
  441. package/dist/features/table/table-item/table-item.d.ts +0 -179
  442. package/dist/features/table/table-item/table-item.js +0 -291
  443. package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
  444. package/dist/features/table/table-item/table-item.styles.js +0 -404
  445. package/dist/features/table/table-managed/table-managed.d.ts +0 -19
  446. package/dist/features/table/table-managed/table-managed.js +0 -128
  447. package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
  448. package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
  449. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
  450. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
  451. package/dist/mixins/table-row.mixin.d.ts +0 -37
  452. package/dist/mixins/table-row.mixin.js +0 -103
  453. package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  454. package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  455. package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
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";
@@ -94,17 +94,11 @@ export type { EunomiaSchedulerEventAppearance } from "./features/scheduler/sched
94
94
  export { EunomiaSchedulerEventEditor, EunomiaSchedulerEventEditorTagName, } from "./features/scheduler/scheduler-event-editor/scheduler-event-editor.js";
95
95
  export type { EunomiaSchedulerEvent, EunomiaSchedulerEventColor, EunomiaSchedulerEventPriority, EunomiaSchedulerGuest, EunomiaSchedulerGuestStatus, EunomiaSchedulerView, } from "./features/scheduler/shared/scheduler.types.js";
96
96
  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
97
  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";
98
+ export type { EunomiaTableAction, EunomiaTableColumnDef, EunomiaTableColumnSort, EunomiaTableRowButtonActionDef, EunomiaTableRowDropdownActionDef, EunomiaTableRowActionDef, } from "./features/table/table/table.types.js";
105
99
  export { debounce, throttle } from "./utils/time.utils.js";
106
100
  export { createDragReorder } from "./utils/drag-drop.utils.js";
107
- export { EUNOMIA_BREAKPOINTS } from "./breakpoints.js";
101
+ export { EUNOMIA_BREAKPOINTS, mediaBelow, mediaFrom } from "./breakpoints.js";
108
102
  export type { EunomiaBreakpoint } from "./breakpoints.js";
109
103
  export { setDefaultLocale, getDefaultLocale } from "./i18n/index.js";
110
104
  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";
@@ -96,15 +97,10 @@ export { EunomiaCalendar, EunomiaCalendarTagName, } from "./features/scheduler/c
96
97
  export { EunomiaSchedulerEventCard, EunomiaSchedulerEventCardTagName, } from "./features/scheduler/scheduler-event/scheduler-event.js";
97
98
  export { EunomiaSchedulerEventEditor, EunomiaSchedulerEventEditorTagName, } from "./features/scheduler/scheduler-event-editor/scheduler-event-editor.js";
98
99
  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
100
  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
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 { setDefaultLocale, getDefaultLocale } from "./i18n/index.js";
109
105
  export { buildPalette, buildTints, buildThemeCss, initializeTheme, } from "./utils/theme-generator.utils.js";
110
106
  export { findRichTextColor, formatRichText, getPlainTextLength, joinAlign, parseInlineNodes, RICH_TEXT_COLORS, splitAlign, toHtml, toPlainText, } from "./utils/rich-text.utils.js";
@@ -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.
@@ -47,7 +48,7 @@ export const CheckMixin = (superClass) => {
47
48
  if (this.required && !this.checked) {
48
49
  return {
49
50
  validity: { valueMissing: true },
50
- message: "Field value is missing",
51
+ message: this.validationDictionary.validation.valueMissing,
51
52
  };
52
53
  }
53
54
  return { validity: {} };
@@ -98,10 +99,8 @@ export const CheckMixin = (superClass) => {
98
99
  this.setAttribute("aria-checked", String(this.checked));
99
100
  this.updateInternals();
100
101
  }
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));
102
+ if (hasErrorDisplayChange(_changedProperties)) {
103
+ this.setAttribute("aria-invalid", String(this.showError));
105
104
  }
106
105
  if (_changedProperties.has("required")) {
107
106
  this.setAttribute("aria-required", String(this.required));
@@ -1,4 +1,4 @@
1
- import { LitElement, nothing, TemplateResult } from "lit";
1
+ import { LitElement, nothing, PropertyValues, TemplateResult } from "lit";
2
2
  import { DisabledMixinInterface } from "./disabled.mixin.js";
3
3
  import { ValidatorsMixinInterface } from "./validators.mixin.js";
4
4
  import { Constructor } from "../utils/constructor.type.js";
@@ -20,13 +20,29 @@ export declare class FormMixinInterface<T> {
20
20
  form: HTMLFormElement | null;
21
21
  dirty: boolean;
22
22
  touched: boolean;
23
+ validationRequested: boolean;
23
24
  controlled: boolean;
25
+ get showError(): boolean;
24
26
  get pristine(): boolean;
25
27
  get untouched(): boolean;
26
28
  get value(): T;
27
29
  set value(value: T);
28
30
  get defaultValue(): T | undefined;
29
31
  }
32
+ /**
33
+ * Every property {@link FormMixinInterface.showError} depends on, for
34
+ * components mirroring it outside their template (e.g. onto the host's
35
+ * `aria-invalid`).
36
+ */
37
+ export declare const ERROR_DISPLAY_PROPERTIES: string[];
38
+ /**
39
+ * Whether any property {@link FormMixinInterface.showError} depends on
40
+ * changed in this update.
41
+ *
42
+ * @param changed - The changed properties of the update.
43
+ * @returns true when the error display may have changed.
44
+ */
45
+ export declare const hasErrorDisplayChange: (changed: PropertyValues) => boolean;
30
46
  /**
31
47
  * Mixin that adds form-related behavior and value management.
32
48
  *
@@ -13,14 +13,36 @@ import { html, nothing } from "lit";
13
13
  import { property, state } from "lit/decorators.js";
14
14
  import { when } from "lit/directives/when.js";
15
15
  import { ChangeEvent } from "../events/change.event.js";
16
+ /**
17
+ * Every property {@link FormMixinInterface.showError} depends on, for
18
+ * components mirroring it outside their template (e.g. onto the host's
19
+ * `aria-invalid`).
20
+ */
21
+ export const ERROR_DISPLAY_PROPERTIES = [
22
+ "valid",
23
+ "hideError",
24
+ "disabled",
25
+ "touched",
26
+ "dirty",
27
+ "validationRequested",
28
+ "error",
29
+ ];
30
+ /**
31
+ * Whether any property {@link FormMixinInterface.showError} depends on
32
+ * changed in this update.
33
+ *
34
+ * @param changed - The changed properties of the update.
35
+ * @returns true when the error display may have changed.
36
+ */
37
+ export const hasErrorDisplayChange = (changed) => ERROR_DISPLAY_PROPERTIES.some((name) => changed.has(name));
16
38
  export const FormMixin = (superClass) => {
17
- var _FormMixinClass_markDirty, _FormMixinClass_markTouched;
39
+ var _FormMixinClass_markDirty, _FormMixinClass_markTouched, _FormMixinClass_markValidationRequested;
18
40
  class FormMixinClass extends superClass {
19
41
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
42
  constructor(...args) {
21
43
  super(...args);
22
44
  /**
23
- * When true, validation error messages are hidden.
45
+ * When true, validation error messages are hidden. The hint stays visible.
24
46
  * @default false
25
47
  */
26
48
  this.hideError = false;
@@ -53,6 +75,13 @@ export const FormMixin = (superClass) => {
53
75
  * @default false
54
76
  */
55
77
  this.touched = false;
78
+ /**
79
+ * Whether the form asked for this field's validity, on a submit attempt
80
+ * or a `reportValidity()` call, since it connected (or since the last
81
+ * reset). Reveals errors on a field the user never reached.
82
+ * @default false
83
+ */
84
+ this.validationRequested = false;
56
85
  /**
57
86
  * Opts this field out of the native reset algorithm's value wipe: when
58
87
  * `true`, `formResetCallback` leaves `value`/`checked` untouched.
@@ -89,10 +118,29 @@ export const FormMixin = (superClass) => {
89
118
  this.touched = true;
90
119
  }
91
120
  });
121
+ /**
122
+ * Marks validation as requested when the form checks this field, which
123
+ * fires `invalid` on it.
124
+ */
125
+ _FormMixinClass_markValidationRequested.set(this, () => {
126
+ this.validationRequested = true;
127
+ });
92
128
  if (!this.internals) {
93
129
  this.internals = this.attachInternals();
94
130
  }
95
131
  }
132
+ /**
133
+ * Whether the field currently shows its error : invalid, not disabled,
134
+ * not `hideError`, and either interacted with (`touched`, `dirty`),
135
+ * checked by its form, or given an external `error`. A required field
136
+ * left empty stays quiet until then.
137
+ */
138
+ get showError() {
139
+ return (!this.valid &&
140
+ !this.hideError &&
141
+ !this.disabled &&
142
+ (this.touched || this.dirty || this.validationRequested || !!this.error));
143
+ }
96
144
  /**
97
145
  * Whether the value hasn't changed since the field connected (or since
98
146
  * the last reset). The inverse of {@link dirty}.
@@ -150,14 +198,14 @@ export const FormMixin = (superClass) => {
150
198
  this.setFormValue(value);
151
199
  }
152
200
  /**
153
- * Gets the current description or validation errors.
154
- * Returns undefined if errors are hidden.
201
+ * Gets the validation errors while {@link showError} is true, the hint
202
+ * otherwise.
155
203
  *
156
- * @returns Error message string, array of messages, or undefined.
204
+ * @returns Error message string, array of messages, or the hint.
157
205
  */
158
206
  get description() {
159
- if (this.hideError) {
160
- return undefined;
207
+ if (!this.showError) {
208
+ return this.hint;
161
209
  }
162
210
  if (this.errorMessages.length) {
163
211
  return this.errorMessages;
@@ -179,6 +227,15 @@ export const FormMixin = (superClass) => {
179
227
  get type() {
180
228
  return this.localName;
181
229
  }
230
+ /**
231
+ * Validates `checked` rather than `value` for a checkable field.
232
+ *
233
+ * @returns the value {@link checkValidity} validates by default.
234
+ */
235
+ getValueToValidate() {
236
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
237
+ return (this.checkable ? this.checked : this.value);
238
+ }
182
239
  /**
183
240
  * Lifecycle callback called when element is connected to the DOM.
184
241
  * Initializes the form value depending on state.
@@ -196,6 +253,7 @@ export const FormMixin = (superClass) => {
196
253
  this.checkValidity(this.value);
197
254
  this.addEventListener(ChangeEvent.eventName, __classPrivateFieldGet(this, _FormMixinClass_markDirty, "f"));
198
255
  this.addEventListener("focusout", __classPrivateFieldGet(this, _FormMixinClass_markTouched, "f"));
256
+ this.addEventListener("invalid", __classPrivateFieldGet(this, _FormMixinClass_markValidationRequested, "f"));
199
257
  }
200
258
  /**
201
259
  * Lifecycle callback called when element is disconnected from the DOM.
@@ -204,6 +262,7 @@ export const FormMixin = (superClass) => {
204
262
  disconnectedCallback() {
205
263
  this.removeEventListener(ChangeEvent.eventName, __classPrivateFieldGet(this, _FormMixinClass_markDirty, "f"));
206
264
  this.removeEventListener("focusout", __classPrivateFieldGet(this, _FormMixinClass_markTouched, "f"));
265
+ this.removeEventListener("invalid", __classPrivateFieldGet(this, _FormMixinClass_markValidationRequested, "f"));
207
266
  super.disconnectedCallback?.();
208
267
  }
209
268
  /**
@@ -217,10 +276,9 @@ export const FormMixin = (superClass) => {
217
276
  changedProperties.has("valueState") ||
218
277
  changedProperties.has("checked") ||
219
278
  changedProperties.has("validators") ||
220
- changedProperties.has("required")) {
221
- const valToCheck = this.checkable ? this.checked : this.value;
222
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
223
- this.checkValidity(valToCheck);
279
+ changedProperties.has("required") ||
280
+ changedProperties.has("error")) {
281
+ this.checkValidity();
224
282
  }
225
283
  super.willUpdate(changedProperties);
226
284
  }
@@ -282,6 +340,7 @@ export const FormMixin = (superClass) => {
282
340
  }
283
341
  this.dirty = false;
284
342
  this.touched = false;
343
+ this.validationRequested = false;
285
344
  }
286
345
  /**
287
346
  * Renders the description or error messages.
@@ -292,30 +351,23 @@ export const FormMixin = (superClass) => {
292
351
  return this.renderError();
293
352
  }
294
353
  /**
295
- * Renders the error messages if the field is invalid and errors are visible.
296
- * If no error messages are retrived but an hint has been set, the hint will be returned.
354
+ * Renders the error messages while {@link showError} is true, the hint
355
+ * otherwise.
297
356
  *
298
357
  * @returns Template result with error messages, hint or nothing.
299
358
  */
300
359
  renderError() {
301
360
  const { description } = this;
302
- const isHint = description &&
303
- description.length &&
304
- !(this.errorMessages && this.errorMessages.length) &&
305
- !(this.validationMessage || this.validationMessage.length);
306
- if (isHint) {
361
+ if (!description?.length) {
362
+ return nothing;
363
+ }
364
+ if (!this.showError) {
307
365
  return html `
308
366
  <p id="description" class="hint-messages">
309
367
  <span>${description}</span>
310
368
  </p>
311
369
  `;
312
370
  }
313
- if (this.valid ||
314
- this.hideError ||
315
- this.disabled ||
316
- !description?.length) {
317
- return nothing;
318
- }
319
371
  return html `
320
372
  <p id="description" class="error-messages">
321
373
  ${when(Array.isArray(description), () => description.map((msg) => html `<span>${msg}</span>`), () => html `<span>${description}</span>`)}
@@ -323,7 +375,7 @@ export const FormMixin = (superClass) => {
323
375
  `;
324
376
  }
325
377
  }
326
- _FormMixinClass_markDirty = new WeakMap(), _FormMixinClass_markTouched = new WeakMap();
378
+ _FormMixinClass_markDirty = new WeakMap(), _FormMixinClass_markTouched = new WeakMap(), _FormMixinClass_markValidationRequested = new WeakMap();
327
379
  FormMixinClass.formAssociated = true;
328
380
  __decorate([
329
381
  property({ reflect: true })
@@ -343,6 +395,9 @@ export const FormMixin = (superClass) => {
343
395
  __decorate([
344
396
  state()
345
397
  ], FormMixinClass.prototype, "touched", void 0);
398
+ __decorate([
399
+ state()
400
+ ], FormMixinClass.prototype, "validationRequested", void 0);
346
401
  __decorate([
347
402
  property({ type: Boolean })
348
403
  ], FormMixinClass.prototype, "controlled", void 0);
@@ -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 "radio selectable" behavior to a component.
@@ -54,7 +55,7 @@ export const RadioMixin = (superClass) => {
54
55
  if (this.required && !this.checked) {
55
56
  return {
56
57
  validity: { valueMissing: true },
57
- message: "Field value is missing",
58
+ message: this.validationDictionary.validation.valueMissing,
58
59
  };
59
60
  }
60
61
  return { validity: {} };
@@ -105,10 +106,8 @@ export const RadioMixin = (superClass) => {
105
106
  this.setAttribute("aria-checked", String(this.checked));
106
107
  this.updateInternals();
107
108
  }
108
- if (_changedProperties.has("valid") ||
109
- _changedProperties.has("hideError") ||
110
- _changedProperties.has("disabled")) {
111
- this.setAttribute("aria-invalid", String(!this.hideError && !this.disabled && !this.valid));
109
+ if (hasErrorDisplayChange(_changedProperties)) {
110
+ this.setAttribute("aria-invalid", String(this.showError));
112
111
  }
113
112
  }
114
113
  /**
@@ -1,6 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import { Mutable, Validators } from "../types/form-validators.type.js";
3
3
  import { Constructor } from "../utils/constructor.type.js";
4
+ import { Dictionary } from "../i18n/index.js";
4
5
  /**
5
6
  * Defines a Validity object.
6
7
  */
@@ -20,10 +21,15 @@ export interface Validity {
20
21
  export declare class ValidatorsMixinInterface<U = unknown> {
21
22
  checkLocalValidators: () => Validity;
22
23
  buildCommonValidators: () => Validity;
23
- checkValidity: (dataToCheck: any) => boolean;
24
+ checkValidity: (dataToCheck?: any) => boolean;
25
+ reportValidity: (valToCheck?: any) => boolean;
26
+ get validity(): ValidityState;
27
+ get willValidate(): boolean;
24
28
  internals: globalThis.ElementInternals;
25
29
  valid: boolean;
26
30
  required: boolean;
31
+ error?: string;
32
+ get validationDictionary(): Dictionary;
27
33
  errorMessages: string[];
28
34
  validationMessage: string | string[];
29
35
  validators?: Validators<U>[];
@@ -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, state } from "lit/decorators.js";
8
+ import { dictionaries, getDefaultLocale } from "../i18n/index.js";
8
9
  /**
9
10
  * Mixin that adds validation capabilities to a LitElement.
10
11
  *
@@ -13,6 +14,15 @@ import { property, state } from "lit/decorators.js";
13
14
  */
14
15
  export const ValidatorsMixin = (superClass) => {
15
16
  class ValidatorsMixinClass extends superClass {
17
+ /**
18
+ * The dictionary built-in validation messages are read from: the field's
19
+ * own `locale` when it has one, the shared default locale otherwise.
20
+ */
21
+ get validationDictionary() {
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const locale = this.locale;
24
+ return dictionaries[locale ?? getDefaultLocale()] ?? dictionaries.en;
25
+ }
16
26
  /**
17
27
  * Current validity state of the element.
18
28
  */
@@ -79,18 +89,18 @@ export const ValidatorsMixin = (superClass) => {
79
89
  (value instanceof Array && !value.length);
80
90
  if (this.required && isEmpty) {
81
91
  validity.valueMissing = true;
82
- message = "Field value is missing";
92
+ message = this.validationDictionary.validation.valueMissing;
83
93
  }
84
94
  return { validity, message };
85
95
  }
86
96
  /**
87
97
  * Runs all validation rules and updates internal validity.
88
98
  *
89
- * @param dataToCheck The value to validate.
99
+ * @param dataToCheck The value to validate, the field's own one when omitted.
90
100
  * @returns true if valid, false otherwise.
91
101
  * @throws Error if any async validator is passed (only sync supported).
92
102
  */
93
- checkValidity(dataToCheck) {
103
+ checkValidity(dataToCheck = this.getValueToValidate()) {
94
104
  const localResult = this.checkLocalValidators();
95
105
  const commonResult = this.buildCommonValidators();
96
106
  const combinedValidity = {
@@ -98,16 +108,12 @@ export const ValidatorsMixin = (superClass) => {
98
108
  ...commonResult.validity,
99
109
  };
100
110
  let message = commonResult.message || localResult.message;
101
- if (this.validators && this.validators?.length) {
102
- const errorMessages = this.validators.reduce((messages, validator) => this.collectErrors(messages, validator, dataToCheck), []);
103
- this.errorMessages = errorMessages;
104
- if (errorMessages.length > 0) {
105
- combinedValidity.customError = true;
106
- message = errorMessages.join(" ; ");
107
- }
108
- }
109
- else {
110
- this.errorMessages = [];
111
+ const errorMessages = this.error ? [this.error] : [];
112
+ this.validators?.forEach((validator) => this.collectErrors(errorMessages, validator, dataToCheck));
113
+ this.errorMessages = errorMessages;
114
+ if (errorMessages.length > 0) {
115
+ combinedValidity.customError = true;
116
+ message = errorMessages.join(" ; ");
111
117
  }
112
118
  this.valid = !Object.values(combinedValidity).some(Boolean);
113
119
  const anchor = this.getFocusAnchor?.();
@@ -115,17 +121,17 @@ export const ValidatorsMixin = (superClass) => {
115
121
  this.setValidity(combinedValidity, message, anchor);
116
122
  }
117
123
  else {
118
- this.updateComplete.then(() => this.setValidity(combinedValidity, message, anchor));
124
+ void this.updateComplete.then(() => this.setValidity(combinedValidity, message, anchor));
119
125
  }
120
- return this.internals.checkValidity();
126
+ return this.valid;
121
127
  }
122
128
  /**
123
129
  * Reports validity and shows native validation UI.
124
130
  *
125
- * @param valToCheck Value to validate and report.
131
+ * @param valToCheck Value to validate and report, the field's own one when omitted.
126
132
  * @returns true if valid, false otherwise.
127
133
  */
128
- reportValidity(valToCheck) {
134
+ reportValidity(valToCheck = this.getValueToValidate()) {
129
135
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
136
  this.checkValidity(valToCheck);
131
137
  return this.internals.reportValidity();
@@ -180,6 +186,16 @@ export const ValidatorsMixin = (superClass) => {
180
186
  this.requestUpdate("valid");
181
187
  }
182
188
  }
189
+ /**
190
+ * The value {@link checkValidity} validates when called without one.
191
+ * `FormMixin` overrides it to return `checked` for a checkable field.
192
+ *
193
+ * @returns the field's current value.
194
+ */
195
+ getValueToValidate() {
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
+ return this.value;
198
+ }
183
199
  /**
184
200
  * Provides extra data to validators if needed.
185
201
  * Override in subclass.
@@ -194,6 +210,9 @@ export const ValidatorsMixin = (superClass) => {
194
210
  __decorate([
195
211
  property({ type: Boolean })
196
212
  ], ValidatorsMixinClass.prototype, "required", void 0);
213
+ __decorate([
214
+ property()
215
+ ], ValidatorsMixinClass.prototype, "error", void 0);
197
216
  __decorate([
198
217
  state()
199
218
  ], ValidatorsMixinClass.prototype, "valid", void 0);
@@ -3,6 +3,7 @@ eun-animate:not(:defined) {
3
3
  }
4
4
 
5
5
  @media (scripting: enabled) {
6
+ eun-animate:not([animation]):not(:defined),
6
7
  eun-animate[animation="fade"]:not(:defined),
7
8
  eun-animate[animation="faded-scroll-right"]:not(:defined),
8
9
  eun-animate[animation="faded-scroll-left"]:not(:defined),
@@ -32,7 +33,7 @@ eun-animate:not(:defined) {
32
33
  }
33
34
  }
34
35
 
35
- @media (scripting: enabled) and (max-width: 768px) {
36
+ @media (scripting: enabled) and (width < 768px) {
36
37
  eun-animate[tablet-animation="none"]:not(:defined) {
37
38
  opacity: 1;
38
39
  transform: none;
@@ -67,7 +68,7 @@ eun-animate:not(:defined) {
67
68
  }
68
69
  }
69
70
 
70
- @media (scripting: enabled) and (max-width: 600px) {
71
+ @media (scripting: enabled) and (width < 600px) {
71
72
  eun-animate[mobile-animation="none"]:not(:defined) {
72
73
  opacity: 1;
73
74
  transform: none;