@eunomia/elements 1.0.0-beta.4 → 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 (496) 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-4MXL6PZC.js → chunk-2Y2EU2CI.js} +28 -28
  6. package/dist/cdn/components/chunks/chunk-3MTUVMM5.js +1 -0
  7. package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +1 -0
  8. package/dist/cdn/components/chunks/chunk-5GKM5DIB.js +1 -0
  9. package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
  10. package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
  11. package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
  12. package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
  13. package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
  14. package/dist/cdn/components/chunks/{chunk-NHFWATVN.js → chunk-BQFJR2UP.js} +5 -5
  15. package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
  16. package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
  17. package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
  18. package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
  19. package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
  20. package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
  21. package/dist/cdn/components/chunks/{chunk-EOWBYZV7.js → chunk-KDN4O5W2.js} +26 -13
  22. package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
  23. package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
  24. package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
  25. package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
  26. package/dist/cdn/components/chunks/{chunk-SIHZFOTK.js → chunk-MQQ4BGVJ.js} +5 -5
  27. package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
  28. package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
  29. package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
  30. package/dist/cdn/components/chunks/{chunk-GSJEJLFA.js → chunk-PMPSJG5V.js} +7 -7
  31. package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
  32. package/dist/cdn/components/chunks/{chunk-EJIX2D4Z.js → chunk-QZ5SHR3I.js} +15 -11
  33. package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +1 -0
  34. package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
  35. package/dist/cdn/components/chunks/{chunk-YGUJJ25C.js → chunk-SZYEBMG6.js} +11 -10
  36. package/dist/cdn/components/chunks/chunk-UDVB4LAE.js +56 -0
  37. package/dist/cdn/components/chunks/{chunk-UAGCQF23.js → chunk-UYZR4JXZ.js} +17 -12
  38. package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
  39. package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
  40. package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
  41. package/dist/cdn/components/chunks/{chunk-BMQOI7HX.js → chunk-VYFR364B.js} +128 -74
  42. package/dist/cdn/components/chunks/{chunk-IJ5WFMK4.js → chunk-XDPRWUKN.js} +7 -6
  43. package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
  44. package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
  45. package/dist/cdn/components/chunks/{chunk-RJCJXB7Y.js → chunk-ZKZV2YG5.js} +18 -18
  46. package/dist/cdn/components/eun-alert.js +24 -16
  47. package/dist/cdn/components/eun-animate.js +12 -6
  48. package/dist/cdn/components/eun-badge.js +7 -7
  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 +68 -66
  52. package/dist/cdn/components/eun-card.js +67 -13
  53. package/dist/cdn/components/eun-carousel.js +66 -35
  54. package/dist/cdn/components/eun-check-card.js +13 -6
  55. package/dist/cdn/components/eun-checkbox-list.js +4 -4
  56. package/dist/cdn/components/eun-checkbox.js +1 -1
  57. package/dist/cdn/components/eun-chip.js +1 -1
  58. package/dist/cdn/components/eun-collapse.js +87 -39
  59. package/dist/cdn/components/eun-color-picker.js +54 -53
  60. package/dist/cdn/components/eun-counter.js +14 -13
  61. package/dist/cdn/components/eun-date-picker.js +66 -63
  62. package/dist/cdn/components/eun-description-list.js +152 -0
  63. package/dist/cdn/components/eun-divider.js +1 -1
  64. package/dist/cdn/components/eun-drawer.js +26 -12
  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 +20 -19
  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 +14 -13
  73. package/dist/cdn/components/eun-input-phone.js +26 -26
  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 +174 -27
  77. package/dist/cdn/components/eun-loader.js +1 -1
  78. package/dist/cdn/components/eun-modal.js +29 -22
  79. package/dist/cdn/components/eun-pagination.js +17 -12
  80. package/dist/cdn/components/eun-password-strength.js +6 -2
  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 +4 -4
  84. package/dist/cdn/components/eun-radio.js +1 -1
  85. package/dist/cdn/components/eun-scheduler-event-editor.js +8 -8
  86. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  87. package/dist/cdn/components/eun-scheduler.js +42 -42
  88. package/dist/cdn/components/eun-search.js +21 -20
  89. package/dist/cdn/components/eun-select.js +12 -11
  90. package/dist/cdn/components/eun-sidebar.js +34 -20
  91. package/dist/cdn/components/eun-skeleton.js +1 -1
  92. package/dist/cdn/components/eun-slider.js +15 -14
  93. package/dist/cdn/components/eun-sliding-card.js +8 -4
  94. package/dist/cdn/components/eun-step.js +17 -6
  95. package/dist/cdn/components/eun-stepper.js +17 -6
  96. package/dist/cdn/components/eun-switch.js +10 -8
  97. package/dist/cdn/components/eun-tab-group.js +22 -17
  98. package/dist/cdn/components/eun-tab-panel.js +11 -3
  99. package/dist/cdn/components/eun-tab.js +1 -1
  100. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  101. package/dist/cdn/components/eun-table.js +572 -31
  102. package/dist/cdn/components/eun-tag.js +13 -7
  103. package/dist/cdn/components/eun-textarea.js +24 -24
  104. package/dist/cdn/components/eun-time-picker.js +21 -19
  105. package/dist/cdn/components/eun-toast.js +36 -16
  106. package/dist/cdn/components/eun-toggle-group.js +64 -37
  107. package/dist/cdn/components/eun-toggle-item.js +24 -21
  108. package/dist/cdn/components/eun-toggle.js +12 -10
  109. package/dist/cdn/components/eun-toolbar.js +62 -52
  110. package/dist/cdn/components/eun-tooltip.js +30 -14
  111. package/dist/cdn/styles/breakpoints.scss +8 -0
  112. package/dist/cdn/styles/eunomia-grid.scss +6 -0
  113. package/dist/cdn/styles/eunomia-themes.css +1 -1
  114. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  115. package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
  116. package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  117. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  118. package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  119. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  120. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  121. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  122. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  123. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  124. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  125. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  126. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  127. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  128. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  129. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  130. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  131. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  132. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  133. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  134. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  135. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  136. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  137. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  138. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  139. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  140. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  141. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  142. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  143. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  144. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  145. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  146. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  147. package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  148. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  149. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  150. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  151. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  152. package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  153. package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  154. package/dist/components/action/button/button.d.ts +51 -19
  155. package/dist/components/action/button/button.js +107 -24
  156. package/dist/components/action/button/button.styles.js +115 -62
  157. package/dist/components/action/dropdown-button/dropdown-button.d.ts +10 -10
  158. package/dist/components/action/dropdown-button/dropdown-button.js +18 -17
  159. package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
  160. package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
  161. package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
  162. package/dist/components/action/fab/fab.d.ts +7 -6
  163. package/dist/components/action/fab/fab.js +11 -8
  164. package/dist/components/action/fab/fab.styles.js +18 -17
  165. package/dist/components/action/link/link.d.ts +72 -9
  166. package/dist/components/action/link/link.js +183 -23
  167. package/dist/components/action/link/link.styles.js +146 -10
  168. package/dist/components/action/shared-styles/button-palette.styles.d.ts +3 -3
  169. package/dist/components/action/shared-styles/button-palette.styles.js +29 -29
  170. package/dist/components/action/toggle/toggle-group.d.ts +17 -5
  171. package/dist/components/action/toggle/toggle-group.js +46 -19
  172. package/dist/components/action/toggle/toggle-group.styles.d.ts +4 -1
  173. package/dist/components/action/toggle/toggle-group.styles.js +56 -27
  174. package/dist/components/action/toggle/toggle-item.d.ts +4 -4
  175. package/dist/components/action/toggle/toggle-item.js +2 -2
  176. package/dist/components/action/toggle/toggle-item.styles.js +20 -17
  177. package/dist/components/action/toggle/toggle.d.ts +2 -0
  178. package/dist/components/action/toggle/toggle.js +2 -0
  179. package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
  180. package/dist/components/action/toggle/toggle.styles.js +12 -8
  181. package/dist/components/alert/alert/alert.d.ts +2 -0
  182. package/dist/components/alert/alert/alert.js +2 -0
  183. package/dist/components/alert/alert/alert.styles.js +23 -13
  184. package/dist/components/alert/drawer/drawer.d.ts +3 -1
  185. package/dist/components/alert/drawer/drawer.js +5 -3
  186. package/dist/components/alert/drawer/drawer.styles.js +25 -9
  187. package/dist/components/alert/modal/modal.d.ts +11 -9
  188. package/dist/components/alert/modal/modal.js +15 -13
  189. package/dist/components/alert/modal/modal.styles.js +16 -7
  190. package/dist/components/alert/toast/toast.d.ts +2 -0
  191. package/dist/components/alert/toast/toast.js +2 -0
  192. package/dist/components/alert/toast/toast.styles.js +37 -15
  193. package/dist/components/content/badge/badge.d.ts +6 -6
  194. package/dist/components/content/badge/badge.js +4 -4
  195. package/dist/components/content/badge/badge.styles.js +4 -4
  196. package/dist/components/content/card/card.d.ts +39 -7
  197. package/dist/components/content/card/card.js +71 -7
  198. package/dist/components/content/card/card.styles.js +58 -11
  199. package/dist/components/content/card/image-card.d.ts +62 -7
  200. package/dist/components/content/card/image-card.js +121 -11
  201. package/dist/components/content/card/image-card.styles.js +66 -15
  202. package/dist/components/content/card/sliding-card.d.ts +4 -1
  203. package/dist/components/content/card/sliding-card.js +3 -0
  204. package/dist/components/content/card/sliding-card.styles.js +5 -1
  205. package/dist/components/content/collapse/collapse.d.ts +39 -12
  206. package/dist/components/content/collapse/collapse.js +65 -25
  207. package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
  208. package/dist/components/content/collapse/collapse.styles.js +69 -18
  209. package/dist/components/content/description-list/description-list.d.ts +87 -0
  210. package/dist/components/content/description-list/description-list.js +107 -0
  211. package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
  212. package/dist/components/content/description-list/description-list.styles.js +185 -0
  213. package/dist/components/content/icon/icon.d.ts +14 -2
  214. package/dist/components/content/icon/icon.js +54 -22
  215. package/dist/components/content/icon/icon.style.d.ts +2 -0
  216. package/dist/components/content/icon/icon.style.js +8 -2
  217. package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
  218. package/dist/components/content/image-carousel/image-carousel.js +48 -45
  219. package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
  220. package/dist/components/content/password-strength/password-strength.styles.js +5 -1
  221. package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
  222. package/dist/components/content/shared-styles/card-link.styles.js +5 -3
  223. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
  224. package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
  225. package/dist/components/content/tag/tag.d.ts +4 -0
  226. package/dist/components/content/tag/tag.js +4 -0
  227. package/dist/components/content/tag/tag.styles.js +14 -4
  228. package/dist/components/content/tooltip/tooltip.d.ts +3 -2
  229. package/dist/components/content/tooltip/tooltip.js +9 -16
  230. package/dist/components/content/tooltip/tooltip.styles.js +25 -7
  231. package/dist/components/form/checkbox/check-card.d.ts +4 -1
  232. package/dist/components/form/checkbox/check-card.js +4 -1
  233. package/dist/components/form/checkbox/check-card.styles.js +13 -4
  234. package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
  235. package/dist/components/form/checkbox/checkbox-list.js +11 -7
  236. package/dist/components/form/checkbox/checkbox.d.ts +4 -1
  237. package/dist/components/form/checkbox/checkbox.js +4 -1
  238. package/dist/components/form/checkbox/checkbox.styles.js +2 -2
  239. package/dist/components/form/color-picker/color-picker.d.ts +10 -4
  240. package/dist/components/form/color-picker/color-picker.js +23 -25
  241. package/dist/components/form/color-picker/color-picker.styles.js +6 -5
  242. package/dist/components/form/counter/counter.d.ts +7 -4
  243. package/dist/components/form/counter/counter.js +8 -5
  244. package/dist/components/form/counter/counter.styles.js +10 -9
  245. package/dist/components/form/date-picker/date-picker.d.ts +40 -36
  246. package/dist/components/form/date-picker/date-picker.js +35 -45
  247. package/dist/components/form/date-picker/date-picker.styles.js +13 -10
  248. package/dist/components/form/input/input.d.ts +10 -4
  249. package/dist/components/form/input/input.js +12 -6
  250. package/dist/components/form/input-file/input-file.d.ts +4 -1
  251. package/dist/components/form/input-file/input-file.js +8 -5
  252. package/dist/components/form/input-file/input-file.styles.js +3 -2
  253. package/dist/components/form/input-phone/input-phone.d.ts +11 -5
  254. package/dist/components/form/input-phone/input-phone.js +16 -20
  255. package/dist/components/form/input-phone/input-phone.styles.js +16 -16
  256. package/dist/components/form/label/label.styles.js +3 -3
  257. package/dist/components/form/radio/radio-card.d.ts +5 -2
  258. package/dist/components/form/radio/radio-card.js +5 -2
  259. package/dist/components/form/radio/radio-card.styles.js +14 -5
  260. package/dist/components/form/radio/radio-list.d.ts +5 -2
  261. package/dist/components/form/radio/radio-list.js +14 -10
  262. package/dist/components/form/radio/radio.d.ts +5 -2
  263. package/dist/components/form/radio/radio.js +5 -2
  264. package/dist/components/form/radio/radio.styles.js +4 -4
  265. package/dist/components/form/search/search.d.ts +2 -1
  266. package/dist/components/form/search/search.js +6 -15
  267. package/dist/components/form/search/search.styles.js +8 -7
  268. package/dist/components/form/select/select.d.ts +12 -5
  269. package/dist/components/form/select/select.js +18 -21
  270. package/dist/components/form/select/select.styles.js +3 -2
  271. package/dist/components/form/shared-styles/card.styles.js +5 -4
  272. package/dist/components/form/shared-styles/field.styles.js +21 -11
  273. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  274. package/dist/components/form/slider/slider.d.ts +4 -1
  275. package/dist/components/form/slider/slider.js +5 -2
  276. package/dist/components/form/slider/slider.styles.js +8 -7
  277. package/dist/components/form/switch/switch.d.ts +4 -1
  278. package/dist/components/form/switch/switch.js +4 -1
  279. package/dist/components/form/switch/switch.styles.js +7 -5
  280. package/dist/components/form/textarea/textarea.d.ts +10 -4
  281. package/dist/components/form/textarea/textarea.js +18 -12
  282. package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
  283. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
  284. package/dist/components/form/time-picker/time-picker.d.ts +9 -5
  285. package/dist/components/form/time-picker/time-picker.js +25 -29
  286. package/dist/components/form/time-picker/time-picker.styles.js +9 -8
  287. package/dist/components/layout/animate/animate.d.ts +41 -11
  288. package/dist/components/layout/animate/animate.js +48 -16
  289. package/dist/components/layout/animate/animate.styles.js +9 -16
  290. package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
  291. package/dist/components/layout/infinite-list/infinite-list.js +115 -18
  292. package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
  293. package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
  294. package/dist/components/loader/loader/loader.styles.js +3 -1
  295. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
  296. package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
  297. package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
  298. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
  299. package/dist/components/navigation/carousel/carousel.d.ts +30 -10
  300. package/dist/components/navigation/carousel/carousel.js +37 -18
  301. package/dist/components/navigation/carousel/carousel.styles.js +60 -20
  302. package/dist/components/navigation/pagination/pagination.styles.js +8 -3
  303. package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
  304. package/dist/components/navigation/sidebar/sidebar.js +2 -0
  305. package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
  306. package/dist/components/navigation/stepper/step.styles.js +16 -5
  307. package/dist/components/navigation/stepper/stepper.styles.js +16 -5
  308. package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
  309. package/dist/components/navigation/tabs/tab/tab.js +11 -0
  310. package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
  311. package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
  312. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
  313. package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
  314. package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
  315. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
  316. package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
  317. package/dist/components/navigation/toolbar/toolbar.js +23 -71
  318. package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
  319. package/dist/events/table-row-click.event.d.ts +5 -4
  320. package/dist/events/table-row-click.event.js +10 -5
  321. package/dist/features/scheduler/calendar/calendar.d.ts +12 -12
  322. package/dist/features/scheduler/calendar/calendar.js +15 -14
  323. package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
  324. package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
  325. package/dist/features/scheduler/scheduler/scheduler.js +21 -35
  326. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
  327. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +12 -8
  328. package/dist/features/scheduler/scheduler-event/scheduler-event.js +9 -7
  329. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +16 -10
  330. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +5 -5
  331. package/dist/features/scheduler/shared/scheduler-event-popover.js +2 -2
  332. package/dist/features/scheduler/shared/scheduler-hour-grid.d.ts +2 -2
  333. package/dist/features/scheduler/shared/scheduler-hour-grid.js +3 -3
  334. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
  335. package/dist/features/scheduler/shared/scheduler-month-view.d.ts +3 -3
  336. package/dist/features/scheduler/shared/scheduler-month-view.js +2 -2
  337. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
  338. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
  339. package/dist/features/table/table/table-native.styles.d.ts +28 -0
  340. package/dist/features/table/table/table-native.styles.js +502 -0
  341. package/dist/features/table/table/table.d.ts +342 -294
  342. package/dist/features/table/table/table.js +820 -546
  343. package/dist/features/table/table/table.styles.js +31 -17
  344. package/dist/features/table/table/table.types.d.ts +18 -23
  345. package/dist/features/table/table/table.utils.d.ts +6 -36
  346. package/dist/features/table/table/table.utils.js +16 -65
  347. package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
  348. package/dist/features/table/table-action-bar/table-action-bar.js +18 -25
  349. package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
  350. package/dist/i18n/en.d.ts +34 -0
  351. package/dist/i18n/en.js +34 -0
  352. package/dist/i18n/fr.js +38 -0
  353. package/dist/index.d.ts +7 -13
  354. package/dist/index.js +6 -10
  355. package/dist/jsx.d.ts +1 -1
  356. package/dist/mixins/button.mixin.d.ts +10 -9
  357. package/dist/mixins/button.mixin.js +14 -6
  358. package/dist/mixins/card-link.mixin.d.ts +3 -2
  359. package/dist/mixins/card-link.mixin.js +12 -5
  360. package/dist/mixins/check.mixin.js +4 -5
  361. package/dist/mixins/disabled.mixin.d.ts +3 -3
  362. package/dist/mixins/disabled.mixin.js +10 -5
  363. package/dist/mixins/field-appearance.mixin.d.ts +19 -0
  364. package/dist/mixins/{field-variant.mixin.js → field-appearance.mixin.js} +11 -11
  365. package/dist/mixins/form.mixin.d.ts +17 -1
  366. package/dist/mixins/form.mixin.js +80 -25
  367. package/dist/mixins/radio.mixin.js +4 -5
  368. package/dist/mixins/validators.mixin.d.ts +7 -1
  369. package/dist/mixins/validators.mixin.js +36 -17
  370. package/dist/ssr/animate-ssr.css +27 -72
  371. package/dist/ssr/button-ssr.css +319 -0
  372. package/dist/ssr/card-ssr.css +184 -0
  373. package/dist/ssr/description-list-ssr.css +150 -0
  374. package/dist/ssr/links-ssr.css +35 -0
  375. package/dist/ssr/overlay-ssr.css +0 -41
  376. package/dist/ssr/rich-text.css +38 -0
  377. package/dist/ssr/sidebar-ssr.css +0 -38
  378. package/dist/ssr/table-ssr.css +472 -0
  379. package/dist/ssr/tag-ssr.css +197 -0
  380. package/dist/ssr/toolbar-ssr.css +77 -39
  381. package/dist/types/variant.type.d.ts +26 -10
  382. package/dist/utils/drag-drop.utils.js +18 -2
  383. package/dist/utils/dropdown-menu.utils.d.ts +2 -2
  384. package/dist/utils/dropdown-menu.utils.js +4 -14
  385. package/dist/utils/light-dom-styles.utils.d.ts +14 -0
  386. package/dist/utils/light-dom-styles.utils.js +37 -0
  387. package/dist/utils/media.styles.d.ts +19 -0
  388. package/dist/utils/media.styles.js +23 -0
  389. package/dist/utils/motion.utils.d.ts +40 -0
  390. package/dist/utils/motion.utils.js +51 -0
  391. package/dist/utils/navigation.utils.d.ts +14 -0
  392. package/dist/utils/navigation.utils.js +33 -0
  393. package/dist/utils/new-tab-anchor.controller.d.ts +44 -0
  394. package/dist/utils/new-tab-anchor.controller.js +102 -0
  395. package/dist/utils/severity-icon.utils.d.ts +1 -1
  396. package/dist/utils/severity-icon.utils.js +1 -1
  397. package/dist/utils/theme-generator.utils.d.ts +9 -2
  398. package/dist/utils/theme-generator.utils.js +62 -21
  399. package/package.json +24 -29
  400. package/styles/breakpoints.scss +8 -0
  401. package/styles/eunomia-grid.scss +6 -0
  402. package/styles/themes/eunomia-theme.scss +4 -3
  403. package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  404. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  405. package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  406. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  407. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  408. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  409. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  410. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  411. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  412. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  413. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  414. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  415. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  416. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  417. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  418. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  419. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  420. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  421. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  422. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  423. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  424. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  425. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  426. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  427. package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  428. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  429. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  430. package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  431. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  432. package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  433. package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  434. package/dist/cdn/components/chunks/chunk-2JLDJFYD.js +0 -48
  435. package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
  436. package/dist/cdn/components/chunks/chunk-ATH2OAMU.js +0 -1
  437. package/dist/cdn/components/chunks/chunk-BKHD4S57.js +0 -1
  438. package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
  439. package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
  440. package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
  441. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
  442. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
  443. package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
  444. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
  445. package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
  446. package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
  447. package/dist/cdn/components/chunks/chunk-T7WABJEJ.js +0 -1
  448. package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
  449. package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
  450. package/dist/cdn/components/chunks/chunk-XSMCT4DF.js +0 -1
  451. package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
  452. package/dist/cdn/components/eun-table-cell.js +0 -1
  453. package/dist/cdn/components/eun-table-column.js +0 -1
  454. package/dist/cdn/components/eun-table-header.js +0 -1
  455. package/dist/cdn/components/eun-table-item.js +0 -1
  456. package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
  457. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  458. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  459. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
  460. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
  461. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
  462. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
  463. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
  464. package/dist/features/table/native-table.css +0 -276
  465. package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
  466. package/dist/features/table/shared-styles/table-row.styles.js +0 -47
  467. package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
  468. package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
  469. package/dist/features/table/table-cell/table-cell.d.ts +0 -59
  470. package/dist/features/table/table-cell/table-cell.js +0 -73
  471. package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
  472. package/dist/features/table/table-cell/table-cell.styles.js +0 -46
  473. package/dist/features/table/table-column/table-column.d.ts +0 -73
  474. package/dist/features/table/table-column/table-column.js +0 -89
  475. package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
  476. package/dist/features/table/table-column/table-column.styles.js +0 -51
  477. package/dist/features/table/table-header/table-header.d.ts +0 -102
  478. package/dist/features/table/table-header/table-header.js +0 -165
  479. package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
  480. package/dist/features/table/table-header/table-header.styles.js +0 -147
  481. package/dist/features/table/table-item/table-item.d.ts +0 -179
  482. package/dist/features/table/table-item/table-item.js +0 -291
  483. package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
  484. package/dist/features/table/table-item/table-item.styles.js +0 -404
  485. package/dist/features/table/table-managed/table-managed.d.ts +0 -19
  486. package/dist/features/table/table-managed/table-managed.js +0 -128
  487. package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
  488. package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
  489. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
  490. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
  491. package/dist/mixins/field-variant.mixin.d.ts +0 -22
  492. package/dist/mixins/table-row.mixin.d.ts +0 -37
  493. package/dist/mixins/table-row.mixin.js +0 -103
  494. package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  495. package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  496. package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
@@ -15,3 +15,17 @@
15
15
  * @param target the anchor's target, if any.
16
16
  */
17
17
  export declare function handleLinkNavigation(host: HTMLElement, event: MouseEvent, href: string | undefined, target?: string | null): void;
18
+ /**
19
+ * Warns once when a host in slotted anchor mode (a native `<a>` as a direct
20
+ * child, `href` unset) still carries link attributes of its own. The
21
+ * anchor is the link in that mode, so `aria-label`, `target`, `rel` and
22
+ * `download` left on the host are ignored without any visible sign : a
23
+ * forgotten `aria-label` ends up on an element with no role, and the link
24
+ * loses its accessible name.
25
+ *
26
+ * @param host the link, button or card whose anchor is slotted.
27
+ */
28
+ export declare function warnIgnoredHostLinkAttributes(host: HTMLElement & {
29
+ target?: string;
30
+ download?: string;
31
+ }): void;
@@ -42,3 +42,36 @@ export function handleLinkNavigation(host, event, href, target) {
42
42
  event.preventDefault();
43
43
  }
44
44
  }
45
+ /**
46
+ * Hosts already warned by {@link warnIgnoredHostLinkAttributes}, so each
47
+ * one only logs once however often it updates.
48
+ */
49
+ const warnedHosts = new WeakSet();
50
+ /**
51
+ * Warns once when a host in slotted anchor mode (a native `<a>` as a direct
52
+ * child, `href` unset) still carries link attributes of its own. The
53
+ * anchor is the link in that mode, so `aria-label`, `target`, `rel` and
54
+ * `download` left on the host are ignored without any visible sign : a
55
+ * forgotten `aria-label` ends up on an element with no role, and the link
56
+ * loses its accessible name.
57
+ *
58
+ * @param host the link, button or card whose anchor is slotted.
59
+ */
60
+ export function warnIgnoredHostLinkAttributes(host) {
61
+ if (warnedHosts.has(host)) {
62
+ return;
63
+ }
64
+ const ignored = ['aria-label', 'target', 'rel', 'download'].filter((name) => host.hasAttribute(name));
65
+ if (!ignored.includes('target') && host.target && host.target !== '_self') {
66
+ ignored.push('target');
67
+ }
68
+ if (!ignored.includes('download') && host.download) {
69
+ ignored.push('download');
70
+ }
71
+ if (!ignored.length) {
72
+ return;
73
+ }
74
+ warnedHosts.add(host);
75
+ console.warn(`<${host.localName}>: ${ignored.join(', ')} ignored on the host, since ` +
76
+ 'the slotted <a> is the link. Move them onto the <a> itself.', host);
77
+ }
@@ -0,0 +1,44 @@
1
+ import { ReactiveController, ReactiveControllerHost } from "lit";
2
+ /**
3
+ * Class of a visually-hidden "opens in a new tab" text the consumer writes
4
+ * inside the slotted anchor, hidden by `links-ssr.css`. It's part of the
5
+ * anchor's accessible name and of the server-rendered HTML, so it's
6
+ * announced everywhere, links lists and no-JS pages included, and the
7
+ * controller then leaves the anchor's `aria-description` alone.
8
+ */
9
+ export declare const NEW_TAB_HINT_CLASS = "eun-new-tab-hint";
10
+ /**
11
+ * Announces a slotted anchor opening in a new tab, for a link, button or
12
+ * card whose native `<a>` is slotted as a direct child. The anchor belongs
13
+ * to the consumer (and to their framework, which would undo or trip over an
14
+ * injected child during hydration), so the hint goes on its
15
+ * `aria-description` rather than into its content, leaving its text and
16
+ * `aria-label` untouched. A description the consumer set themselves is
17
+ * never overwritten, and only the one this controller wrote is ever removed.
18
+ * A description only reaches some assistive technology, so an anchor
19
+ * holding a {@link NEW_TAB_HINT_CLASS} text of its own gets none.
20
+ *
21
+ * The anchor's `target` and content can change after the first render (a
22
+ * framework re-render), which no `slotchange` reports, so they're observed
23
+ * directly and re-render the host, whose visible new-tab icon keys off
24
+ * {@link isBlank}.
25
+ */
26
+ export declare class NewTabAnchorController implements ReactiveController {
27
+ #private;
28
+ private readonly host;
29
+ private readonly getAnchor;
30
+ private readonly getHint;
31
+ /**
32
+ * @param host the link, button or card.
33
+ * @param getAnchor returns the slotted anchor, or null outside that mode.
34
+ * @param getHint returns the localized "opens in a new tab" wording.
35
+ */
36
+ constructor(host: ReactiveControllerHost & HTMLElement, getAnchor: () => HTMLAnchorElement | null, getHint: () => string);
37
+ /**
38
+ * Whether the slotted anchor, if any, opens in a new tab.
39
+ */
40
+ get isBlank(): boolean;
41
+ hostConnected(): void;
42
+ hostDisconnected(): void;
43
+ hostUpdated(): void;
44
+ }
@@ -0,0 +1,102 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _NewTabAnchorController_instances, _NewTabAnchorController_described, _NewTabAnchorController_observer, _NewTabAnchorController_clear;
13
+ /**
14
+ * Class of a visually-hidden "opens in a new tab" text the consumer writes
15
+ * inside the slotted anchor, hidden by `links-ssr.css`. It's part of the
16
+ * anchor's accessible name and of the server-rendered HTML, so it's
17
+ * announced everywhere, links lists and no-JS pages included, and the
18
+ * controller then leaves the anchor's `aria-description` alone.
19
+ */
20
+ export const NEW_TAB_HINT_CLASS = "eun-new-tab-hint";
21
+ /**
22
+ * Announces a slotted anchor opening in a new tab, for a link, button or
23
+ * card whose native `<a>` is slotted as a direct child. The anchor belongs
24
+ * to the consumer (and to their framework, which would undo or trip over an
25
+ * injected child during hydration), so the hint goes on its
26
+ * `aria-description` rather than into its content, leaving its text and
27
+ * `aria-label` untouched. A description the consumer set themselves is
28
+ * never overwritten, and only the one this controller wrote is ever removed.
29
+ * A description only reaches some assistive technology, so an anchor
30
+ * holding a {@link NEW_TAB_HINT_CLASS} text of its own gets none.
31
+ *
32
+ * The anchor's `target` and content can change after the first render (a
33
+ * framework re-render), which no `slotchange` reports, so they're observed
34
+ * directly and re-render the host, whose visible new-tab icon keys off
35
+ * {@link isBlank}.
36
+ */
37
+ export class NewTabAnchorController {
38
+ /**
39
+ * @param host the link, button or card.
40
+ * @param getAnchor returns the slotted anchor, or null outside that mode.
41
+ * @param getHint returns the localized "opens in a new tab" wording.
42
+ */
43
+ constructor(host, getAnchor, getHint) {
44
+ _NewTabAnchorController_instances.add(this);
45
+ this.host = host;
46
+ this.getAnchor = getAnchor;
47
+ this.getHint = getHint;
48
+ /**
49
+ * The anchor this controller last wrote `aria-description` on, so it can
50
+ * clear it once the anchor stops opening in a new tab or is swapped out.
51
+ */
52
+ _NewTabAnchorController_described.set(this, void 0);
53
+ _NewTabAnchorController_observer.set(this, new MutationObserver((records) => {
54
+ const anchor = this.getAnchor();
55
+ if (anchor && records.some((record) => anchor.contains(record.target))) {
56
+ this.host.requestUpdate();
57
+ }
58
+ }));
59
+ host.addController(this);
60
+ }
61
+ /**
62
+ * Whether the slotted anchor, if any, opens in a new tab.
63
+ */
64
+ get isBlank() {
65
+ return this.getAnchor()?.target === "_blank";
66
+ }
67
+ hostConnected() {
68
+ __classPrivateFieldGet(this, _NewTabAnchorController_observer, "f").observe(this.host, {
69
+ subtree: true,
70
+ childList: true,
71
+ attributeFilter: ["target"],
72
+ });
73
+ }
74
+ hostDisconnected() {
75
+ __classPrivateFieldGet(this, _NewTabAnchorController_observer, "f").disconnect();
76
+ }
77
+ hostUpdated() {
78
+ const anchor = this.getAnchor();
79
+ if (__classPrivateFieldGet(this, _NewTabAnchorController_described, "f") && __classPrivateFieldGet(this, _NewTabAnchorController_described, "f") !== anchor) {
80
+ __classPrivateFieldGet(this, _NewTabAnchorController_instances, "m", _NewTabAnchorController_clear).call(this);
81
+ }
82
+ if (!anchor) {
83
+ return;
84
+ }
85
+ const ownHint = !!anchor.querySelector(`.${NEW_TAB_HINT_CLASS}`);
86
+ if (!this.isBlank || ownHint) {
87
+ if (__classPrivateFieldGet(this, _NewTabAnchorController_described, "f") === anchor) {
88
+ __classPrivateFieldGet(this, _NewTabAnchorController_instances, "m", _NewTabAnchorController_clear).call(this);
89
+ }
90
+ return;
91
+ }
92
+ if (__classPrivateFieldGet(this, _NewTabAnchorController_described, "f") !== anchor && anchor.hasAttribute("aria-description")) {
93
+ return;
94
+ }
95
+ anchor.setAttribute("aria-description", this.getHint());
96
+ __classPrivateFieldSet(this, _NewTabAnchorController_described, anchor, "f");
97
+ }
98
+ }
99
+ _NewTabAnchorController_described = new WeakMap(), _NewTabAnchorController_observer = new WeakMap(), _NewTabAnchorController_instances = new WeakSet(), _NewTabAnchorController_clear = function _NewTabAnchorController_clear() {
100
+ __classPrivateFieldGet(this, _NewTabAnchorController_described, "f")?.removeAttribute("aria-description");
101
+ __classPrivateFieldSet(this, _NewTabAnchorController_described, undefined, "f");
102
+ };
@@ -21,7 +21,7 @@ export declare const SEVERITY_ICONS: {
21
21
  * difference in what `severity` means on each family of component :
22
22
  * - `"icon"` (the default) — action components (`eun-button`,
23
23
  * `eun-dropdown-button`) and `eun-chip`, where `severity` only ever
24
- * drives the icon, never the color (color stays on `variant`/`color`) ;
24
+ * drives the icon, never the color (color stays on `color`) ;
25
25
  * an explicit `icon` naming something more specific than the generic
26
26
  * severity glyph should still win.
27
27
  * - `"severity"` — `eun-alert`/`eun-toast`/`eun-tag`, where `severity`
@@ -23,7 +23,7 @@ export const SEVERITY_ICONS = {
23
23
  * difference in what `severity` means on each family of component :
24
24
  * - `"icon"` (the default) — action components (`eun-button`,
25
25
  * `eun-dropdown-button`) and `eun-chip`, where `severity` only ever
26
- * drives the icon, never the color (color stays on `variant`/`color`) ;
26
+ * drives the icon, never the color (color stays on `color`) ;
27
27
  * an explicit `icon` naming something more specific than the generic
28
28
  * severity glyph should still win.
29
29
  * - `"severity"` — `eun-alert`/`eun-toast`/`eun-tag`, where `severity`
@@ -7,7 +7,9 @@
7
7
  *
8
8
  * Only `buildPalette`, `buildTints`, `initializeTheme`, and
9
9
  * `buildThemeCss` (plus the types their signatures need) are exported
10
- * from `index.ts`. Everything
10
+ * from `index.ts`, and this file is also published as-is as the
11
+ * `./theme.js` subpath. It must stay free of imports and side effects for
12
+ * that subpath to remain safe on a server. Everything
11
13
  * else below, the raw color math, the shade/tint step definitions, is
12
14
  * kept file-private on purpose: none of it is meant to be reached on its
13
15
  * own, it exists to be composed by those four, and every extra export
@@ -46,7 +48,7 @@ export declare function buildTints(primaryHex: EunomiaHexColor, isDark: boolean)
46
48
  * custom brand from two hex seed colors by composing `buildPalette` and
47
49
  * `buildTints` above, then writing every result straight onto
48
50
  * `document.documentElement`, both 11-step shade scales, their `on-*`
49
- * text colors, the transparent hover/active tokens, and the `-tint`
51
+ * text colors, the `alpha-*` tokens, and the `-tint`
50
52
  * neutrals. Everything else (grey scale, spacing, radius, shadows,
51
53
  * semantic state colors) still comes from whichever base theme class or
52
54
  * `data-theme` is already applied; this deliberately doesn't touch those.
@@ -68,6 +70,11 @@ export declare function initializeTheme(primary: EunomiaHexColor, secondary: Eun
68
70
  export interface EunomiaThemeCssOptions {
69
71
  surfaceColor?: EunomiaHexColor;
70
72
  darkSurfaceColor?: EunomiaHexColor;
73
+ darkSecondaryColor?: EunomiaHexColor;
74
+ inverseSurfaceColor?: EunomiaHexColor;
75
+ darkInverseSurfaceColor?: EunomiaHexColor;
76
+ textColor?: EunomiaHexColor;
77
+ darkTextColor?: EunomiaHexColor;
71
78
  fontFamily?: string;
72
79
  brand?: string;
73
80
  }
@@ -7,7 +7,9 @@
7
7
  *
8
8
  * Only `buildPalette`, `buildTints`, `initializeTheme`, and
9
9
  * `buildThemeCss` (plus the types their signatures need) are exported
10
- * from `index.ts`. Everything
10
+ * from `index.ts`, and this file is also published as-is as the
11
+ * `./theme.js` subpath. It must stay free of imports and side effects for
12
+ * that subpath to remain safe on a server. Everything
11
13
  * else below, the raw color math, the shade/tint step definitions, is
12
14
  * kept file-private on purpose: none of it is meant to be reached on its
13
15
  * own, it exists to be composed by those four, and every extra export
@@ -157,12 +159,12 @@ export function buildPalette(baseHex, isDark) {
157
159
  };
158
160
  });
159
161
  }
160
- const TRANSPARENT_TOKENS = [
161
- { name: "bg-hover", alpha: 0.08 },
162
- { name: "bg-active", alpha: 0.08 },
163
- { name: "transparent", alpha: 0.2 },
164
- { name: "transparent-hover", alpha: 0.3 },
165
- { name: "transparent-active", alpha: 0.4 },
162
+ const ALPHA_TOKENS = [
163
+ { name: "alpha-5", alpha: 0.05 },
164
+ { name: "alpha-10", alpha: 0.1 },
165
+ { name: "alpha-20", alpha: 0.2 },
166
+ { name: "alpha-30", alpha: 0.3 },
167
+ { name: "alpha-40", alpha: 0.4 },
166
168
  ];
167
169
  /**
168
170
  * 5% of the effective `primary-500` (already dark-accessible-adjusted in
@@ -202,25 +204,44 @@ export function buildTints(primaryHex, isDark) {
202
204
  contentPressedTint: mix(LIGHT_TINT_BASE.contentPressed, primary500, TINT_RATIO),
203
205
  };
204
206
  }
207
+ /**
208
+ * The muted `--eun-text-secondary` for a custom text color: `text` mixed
209
+ * 30% toward `surface`, backed off in 5% steps until it still clears WCAG
210
+ * AA against that surface.
211
+ */
212
+ function secondaryText(text, surface) {
213
+ let percent = 30;
214
+ let result = mix(text, surface, percent / 100);
215
+ while (contrastRatio(result, surface) < MIN_CONTRAST && percent > 0) {
216
+ percent -= 5;
217
+ result = mix(text, surface, percent / 100);
218
+ }
219
+ return result;
220
+ }
205
221
  /**
206
222
  * Every custom property a custom brand sets for one mode, as ordered
207
223
  * `[property, value]` pairs: both 11-step shade scales, their `on-*`
208
- * text colors, the transparent hover/active tokens, the surface color,
209
- * the `-tint` neutrals, and `--eun-font-family` when one is passed.
210
- * Shared by `initializeTheme` and `buildThemeCss` so the inline and the
211
- * stylesheet output can never drift apart.
224
+ * text colors, the `alpha-*` tokens, the surface color,
225
+ * the `-tint` neutrals, and `--eun-font-family`, the inverse surface and
226
+ * the text colors when they are passed. Shared by `initializeTheme` and `buildThemeCss`
227
+ * so the inline and the stylesheet output can never drift apart.
212
228
  */
213
- function buildThemeTokens(primary, secondary, isDark, surfaceColor, fontFamily) {
229
+ function buildThemeTokens(primary, secondary, isDark, options) {
230
+ const { surfaceColor, fontFamily, darkSecondaryColor, inverseSurfaceColor, textColor, } = options;
214
231
  const tokens = [];
215
- for (const [type, seed] of [
216
- ["primary", primary],
217
- ["secondary", secondary],
232
+ for (const [type, seed, checkDark] of [
233
+ ["primary", primary, isDark],
234
+ [
235
+ "secondary",
236
+ darkSecondaryColor ?? secondary,
237
+ isDark && !darkSecondaryColor,
238
+ ],
218
239
  ]) {
219
- for (const shade of buildPalette(seed, isDark)) {
240
+ for (const shade of buildPalette(seed, checkDark)) {
220
241
  tokens.push([`--eun-color-${type}-${shade.name}`, shade.value]);
221
242
  tokens.push([`--eun-color-on-${type}-${shade.name}`, shade.on]);
222
243
  }
223
- for (const token of TRANSPARENT_TOKENS) {
244
+ for (const token of ALPHA_TOKENS) {
224
245
  tokens.push([
225
246
  `--eun-color-${type}-${token.name}`,
226
247
  toRgba(seed, token.alpha),
@@ -228,6 +249,12 @@ function buildThemeTokens(primary, secondary, isDark, surfaceColor, fontFamily)
228
249
  }
229
250
  }
230
251
  tokens.push(["--eun-surface-color", surfaceColor]);
252
+ if (inverseSurfaceColor) {
253
+ tokens.push(["--eun-surface-inverse", inverseSurfaceColor], ["--eun-text-on-inverse", pickOnColor(inverseSurfaceColor)]);
254
+ }
255
+ if (textColor) {
256
+ tokens.push(["--eun-text-color", textColor], ["--eun-text-secondary", secondaryText(textColor, surfaceColor)]);
257
+ }
231
258
  if (fontFamily) {
232
259
  tokens.push(["--eun-font-family", fontFamily]);
233
260
  }
@@ -244,7 +271,7 @@ function buildThemeTokens(primary, secondary, isDark, surfaceColor, fontFamily)
244
271
  * custom brand from two hex seed colors by composing `buildPalette` and
245
272
  * `buildTints` above, then writing every result straight onto
246
273
  * `document.documentElement`, both 11-step shade scales, their `on-*`
247
- * text colors, the transparent hover/active tokens, and the `-tint`
274
+ * text colors, the `alpha-*` tokens, and the `-tint`
248
275
  * neutrals. Everything else (grey scale, spacing, radius, shadows,
249
276
  * semantic state colors) still comes from whichever base theme class or
250
277
  * `data-theme` is already applied; this deliberately doesn't touch those.
@@ -264,7 +291,10 @@ function buildThemeTokens(primary, secondary, isDark, surfaceColor, fontFamily)
264
291
  */
265
292
  export function initializeTheme(primary, secondary, isDark = false, surfaceColor = "#ffffff", darkSurfaceColor = DARK_SURFACE, fontFamily) {
266
293
  const root = document.documentElement.style;
267
- const tokens = buildThemeTokens(primary, secondary, isDark, isDark ? darkSurfaceColor : surfaceColor, fontFamily);
294
+ const tokens = buildThemeTokens(primary, secondary, isDark, {
295
+ surfaceColor: isDark ? darkSurfaceColor : surfaceColor,
296
+ fontFamily,
297
+ });
268
298
  for (const [property, value] of tokens) {
269
299
  root.setProperty(property, value);
270
300
  }
@@ -281,9 +311,20 @@ export function initializeTheme(primary, secondary, isDark = false, surfaceColor
281
311
  * switching mode is just a `data-theme` change, no regeneration needed.
282
312
  */
283
313
  export function buildThemeCss(primary, secondary, options = {}) {
284
- const { surfaceColor = "#ffffff", darkSurfaceColor = DARK_SURFACE, fontFamily, brand = "custom", } = options;
314
+ const { surfaceColor = "#ffffff", darkSurfaceColor = DARK_SURFACE, darkSecondaryColor, inverseSurfaceColor, darkInverseSurfaceColor = inverseSurfaceColor, textColor, darkTextColor, fontFamily, brand = "custom", } = options;
285
315
  const rule = (selector, isDark) => {
286
- const tokens = buildThemeTokens(primary, secondary, isDark, isDark ? darkSurfaceColor : surfaceColor, fontFamily);
316
+ const tokens = buildThemeTokens(primary, secondary, isDark, {
317
+ surfaceColor: isDark ? darkSurfaceColor : surfaceColor,
318
+ fontFamily,
319
+ darkSecondaryColor: isDark ? darkSecondaryColor : undefined,
320
+ inverseSurfaceColor: isDark
321
+ ? darkInverseSurfaceColor
322
+ : inverseSurfaceColor,
323
+ textColor: isDark ? darkTextColor : textColor,
324
+ });
325
+ if (isDark && textColor && !darkTextColor) {
326
+ tokens.push(["--eun-text-color", "var(--eun-color-grey-800)"], ["--eun-text-secondary", "var(--eun-color-grey-700)"]);
327
+ }
287
328
  const body = tokens
288
329
  .map(([property, value]) => ` ${property}: ${value};`)
289
330
  .join("\n");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eunomia/elements",
3
- "version": "1.0.0-beta.4",
4
- "description": "Eunomia — a framework-agnostic web component design system",
3
+ "version": "1.0.0-beta.6",
4
+ "description": "Eunomia the framework-agnostic web component design system",
5
5
  "type": "module",
6
6
  "homepage": "https://eunomia-ds.vercel.app",
7
7
  "license": "SEE LICENSE IN LICENSE",
@@ -25,10 +25,6 @@
25
25
  "types": "./dist/components/content/badge/badge.d.ts",
26
26
  "default": "./dist/components/content/badge/badge.js"
27
27
  },
28
- "./breadcrumb-item.js": {
29
- "types": "./dist/components/navigation/breadcrumb/breadcrumb-item.d.ts",
30
- "default": "./dist/components/navigation/breadcrumb/breadcrumb-item.js"
31
- },
32
28
  "./breadcrumb.js": {
33
29
  "types": "./dist/components/navigation/breadcrumb/breadcrumb.d.ts",
34
30
  "default": "./dist/components/navigation/breadcrumb/breadcrumb.js"
@@ -81,6 +77,10 @@
81
77
  "types": "./dist/components/form/date-picker/date-picker.d.ts",
82
78
  "default": "./dist/components/form/date-picker/date-picker.js"
83
79
  },
80
+ "./description-list.js": {
81
+ "types": "./dist/components/content/description-list/description-list.d.ts",
82
+ "default": "./dist/components/content/description-list/description-list.js"
83
+ },
84
84
  "./divider.js": {
85
85
  "types": "./dist/components/layout/divider/divider.d.ts",
86
86
  "default": "./dist/components/layout/divider/divider.js"
@@ -233,26 +233,6 @@
233
233
  "types": "./dist/features/table/table-action-bar/table-action-bar.d.ts",
234
234
  "default": "./dist/features/table/table-action-bar/table-action-bar.js"
235
235
  },
236
- "./table-cell.js": {
237
- "types": "./dist/features/table/table-cell/table-cell.d.ts",
238
- "default": "./dist/features/table/table-cell/table-cell.js"
239
- },
240
- "./table-column.js": {
241
- "types": "./dist/features/table/table-column/table-column.d.ts",
242
- "default": "./dist/features/table/table-column/table-column.js"
243
- },
244
- "./table-header.js": {
245
- "types": "./dist/features/table/table-header/table-header.d.ts",
246
- "default": "./dist/features/table/table-header/table-header.js"
247
- },
248
- "./table-item.js": {
249
- "types": "./dist/features/table/table-item/table-item.d.ts",
250
- "default": "./dist/features/table/table-item/table-item.js"
251
- },
252
- "./table-skeleton-row.js": {
253
- "types": "./dist/features/table/table-skeleton-row/table-skeleton-row.d.ts",
254
- "default": "./dist/features/table/table-skeleton-row/table-skeleton-row.js"
255
- },
256
236
  "./table.js": {
257
237
  "types": "./dist/features/table/table/table.d.ts",
258
238
  "default": "./dist/features/table/table/table.js"
@@ -297,6 +277,14 @@
297
277
  "types": "./dist/utils/rich-text.utils.d.ts",
298
278
  "default": "./dist/utils/rich-text.utils.js"
299
279
  },
280
+ "./theme.js": {
281
+ "types": "./dist/utils/theme-generator.utils.d.ts",
282
+ "default": "./dist/utils/theme-generator.utils.js"
283
+ },
284
+ "./breakpoints.js": {
285
+ "types": "./dist/breakpoints.d.ts",
286
+ "default": "./dist/breakpoints.js"
287
+ },
300
288
  "./jsx": {
301
289
  "types": "./dist/jsx.d.ts",
302
290
  "default": "./dist/jsx.js"
@@ -307,7 +295,13 @@
307
295
  "./toolbar-ssr.css": "./dist/ssr/toolbar-ssr.css",
308
296
  "./sidebar-ssr.css": "./dist/ssr/sidebar-ssr.css",
309
297
  "./overlay-ssr.css": "./dist/ssr/overlay-ssr.css",
310
- "./native-table.css": "./dist/features/table/native-table.css"
298
+ "./links-ssr.css": "./dist/ssr/links-ssr.css",
299
+ "./button-ssr.css": "./dist/ssr/button-ssr.css",
300
+ "./tag-ssr.css": "./dist/ssr/tag-ssr.css",
301
+ "./card-ssr.css": "./dist/ssr/card-ssr.css",
302
+ "./rich-text.css": "./dist/ssr/rich-text.css",
303
+ "./table-ssr.css": "./dist/ssr/table-ssr.css",
304
+ "./description-list-ssr.css": "./dist/ssr/description-list-ssr.css"
311
305
  },
312
306
  "files": [
313
307
  "dist",
@@ -320,12 +314,13 @@
320
314
  "./dist/features/**/*.js"
321
315
  ],
322
316
  "scripts": {
323
- "build": "tsc --noEmit",
317
+ "build": "tsc --noEmit -p tsconfig.build.json",
324
318
  "build:dist": "node scripts/build-dist.mjs",
325
319
  "build:dist:watch": "tsc -p tsconfig.build.json && node scripts/copy-assets.mjs && node scripts/generate-exports.mjs && tsc -p tsconfig.build.json --watch",
326
320
  "build:cdn": "node scripts/build-cdn.mjs",
327
321
  "prepublishOnly": "npm run build:dist && npm run build:cdn",
328
- "lint": "eslint . --config ../eslint.config.js",
322
+ "lint": "eslint . --config ../eslint.config.js && node scripts/breakpoints.mjs --check",
323
+ "breakpoints": "node scripts/breakpoints.mjs",
329
324
  "test": "web-test-runner --config ../web-test-runner.config.mjs",
330
325
  "test:coverage": "web-test-runner --config ../web-test-runner.config.mjs --coverage"
331
326
  },
@@ -0,0 +1,8 @@
1
+ // Short entry point for the breakpoints : the `eunomia-below-*` and
2
+ // `eunomia-from-*` mixins, and the `$map-device-width` scale they read.
3
+ //
4
+ // @use "@eunomia/elements/styles/breakpoints" as *;
5
+ //
6
+ // Emits no CSS, so it can be used in every stylesheet that needs it.
7
+ @forward "./tools/mixins/media-queries/eunomia-media-queries.mixin.scss";
8
+ @forward "./tools/variables/eunomia.breakpoints.scss";
@@ -0,0 +1,6 @@
1
+ // Grid utility classes, emitted once at the top level. Every theme entry
2
+ // file uses this module, and Sass outputs a module's CSS only once per
3
+ // compilation, so loading several themes never duplicates the classes.
4
+ @use "./tools/mixins/layout/eunomia-grid.mixin.scss" as *;
5
+
6
+ @include eunomia-grid-layouts();
@@ -1,5 +1,6 @@
1
- @use './../tools/indexes/eunomia-tools.index.scss' as *;
2
- @use './mixins/eunomia-scales.mixin.scss' as *;
1
+ @use "./../tools/indexes/eunomia-tools.index.scss" as *;
2
+ @use "./mixins/eunomia-scales.mixin.scss" as *;
3
+ @use "./../eunomia-grid.scss";
3
4
 
4
5
  @mixin default-settings {
5
6
  @include eunomia-font-family();
@@ -9,10 +10,10 @@
9
10
  @include eunomia-border-radius();
10
11
  @include eunomia-border-width();
11
12
  @include eunomia-shadows();
13
+ @include eunomia-motion();
12
14
  @include eunomia-alpha();
13
15
  @include eunomia-height();
14
16
  @include eunomia-breakpoints();
15
- @include eunomia-grid-layouts();
16
17
  }
17
18
 
18
19
  .eunomia-theme {
@@ -48,7 +48,10 @@
48
48
  $result: $color;
49
49
  $guard: 0;
50
50
 
51
- @while eunomia-contrast-ratio($result, $surface) < $min-contrast and $guard < 60
51
+ @while eunomia-contrast-ratio($result, $surface) <
52
+ $min-contrast and
53
+ $guard <
54
+ 60
52
55
  {
53
56
  $result: color.adjust($result, $lightness: $step, $space: hsl);
54
57
  $guard: $guard + 1;
@@ -64,3 +67,33 @@
64
67
 
65
68
  @return rgb($r, $g, $b);
66
69
  }
70
+
71
+ @function eunomia-light-accessible(
72
+ $color,
73
+ $surface: #ffffff,
74
+ $min-contrast: 4.5,
75
+ $min-lightness: 10%,
76
+ $step: 1.5%
77
+ ) {
78
+ $result: $color;
79
+ $guard: 0;
80
+
81
+ @while eunomia-contrast-ratio($result, $surface) <
82
+ $min-contrast and
83
+ $guard <
84
+ 60
85
+ {
86
+ $result: color.adjust($result, $lightness: -$step, $space: hsl);
87
+ $guard: $guard + 1;
88
+
89
+ @if color.channel($result, "lightness", $space: hsl) <= $min-lightness {
90
+ $guard: 60;
91
+ }
92
+ }
93
+
94
+ $r: math.round(color.channel($result, "red"));
95
+ $g: math.round(color.channel($result, "green"));
96
+ $b: math.round(color.channel($result, "blue"));
97
+
98
+ @return rgb($r, $g, $b);
99
+ }
@@ -32,6 +32,8 @@
32
32
  --eun-text-disabled-color: #8d93aa;
33
33
  --eun-text-readonly-color: #c1c9d6;
34
34
  --eun-disabled-content: #c1c9d6;
35
+ --eun-surface-inverse: #0b1620;
36
+ --eun-text-on-inverse: #f5f7fa;
35
37
  }
36
38
 
37
39
  @mixin eunomia-dark-neutrals {
@@ -68,4 +70,6 @@
68
70
  --eun-text-disabled-color: var(--eun-color-grey-500);
69
71
  --eun-text-readonly-color: var(--eun-color-grey-400);
70
72
  --eun-disabled-content: var(--eun-color-grey-400);
73
+ --eun-surface-inverse: #0b1620;
74
+ --eun-text-on-inverse: #f5f7fa;
71
75
  }