@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
@@ -4,6 +4,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ 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");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
15
+ 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");
16
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
+ };
18
+ var _EunomiaButton_blockedAnchor, _EunomiaButton_newTab;
7
19
  import { customElement, property } from "lit/decorators.js";
8
20
  import { html, LitElement, nothing } from "lit";
9
21
  import { ifDefined } from "lit/directives/if-defined.js";
@@ -11,7 +23,9 @@ import { ButtonMixin, } from "../../../mixins/button.mixin.js";
11
23
  import { buttonStyles } from "./button.styles.js";
12
24
  import { CommandMixin } from "../../../mixins/command.mixin.js";
13
25
  import { DisabledMixin } from "../../../mixins/disabled.mixin.js";
14
- import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
26
+ import { handleLinkNavigation, warnIgnoredHostLinkAttributes, } from "../../../utils/navigation.utils.js";
27
+ import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
28
+ import { NewTabAnchorController } from "../../../utils/new-tab-anchor.controller.js";
15
29
  import { resolveIcon } from "../../../utils/severity-icon.utils.js";
16
30
  /**
17
31
  * Tag name of the button component.
@@ -19,50 +33,56 @@ import { resolveIcon } from "../../../utils/severity-icon.utils.js";
19
33
  export const EunomiaButtonTagName = "eun-button";
20
34
  /**
21
35
  * A clickable control for performing an action or navigating to a link,
22
- * available in several variants, sizes, and surface styles.
36
+ * available in several colors, sizes, and surface styles.
23
37
  *
24
38
  * @slot [default] - The button content
25
39
  * @slot [start] - An icon or other content shown at the start of the button. Takes priority over the default icon from icon or severity. Leave empty to let one of those render instead
26
- * @slot [end] - An icon or other content shown at the end of the button. Ignored when href and target are set to open in a new tab, since an external link indicator takes its place
40
+ * @slot [end] - An icon or other content shown at the end of the button. Ignored when the button opens a link in a new tab, through href and target or a slotted anchor, since an external link indicator takes its place
27
41
  * @prop {'button' | 'submit' | 'reset'} [type='button'] - The button's native type. Ignored when href is set
28
- * @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning' | 'light' | 'medium' | 'dark'} [variant='primary'] - The color theme applied to the button. light/medium/dark are neutral grey tones with no semantic meaning, matching eun-tag's color scale, for a de-emphasized action next to a semantically-colored one
29
- * @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other variants
30
- * @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other variants
42
+ * @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning' | 'light' | 'medium' | 'dark'} [color='primary'] - The color applied to the button. light/medium/dark are neutral grey tones with no semantic meaning, matching eun-tag's color scale, for a de-emphasized action next to a semantically-colored one
43
+ * @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
44
+ * @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
31
45
  * @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional leading icon, shown at the start of the button. Ignored once something is slotted into start, and overridden by the default icon from severity when both are set
32
- * @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this button leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by variant
46
+ * @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this button leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by color
33
47
  * @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the button
34
48
  * @prop {boolean} rounded - Whether the button has fully rounded corners
35
49
  * @prop {boolean} slide - Whether the button uses a sliding open animation
36
50
  * @prop {boolean} full - Whether the button stretches to fill 100% of the width available from its parent, instead of sizing to its content. Its content stays centered once stretched
37
51
  * @prop {boolean} [disabled=false] - Whether the button is disabled. For a link button, this removes the href instead, since links have no native disabled state
38
52
  * @prop {string} href - The URL the button navigates to. When set, the button renders as a link instead of a button
39
- * @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link icon and announces it to assistive technology
53
+ * @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link icon and announces it to assistive technology, in the current locale. A slotted anchor opening in a new tab gets the same icon and announcement
54
+ * @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
40
55
  * @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
41
56
  * @prop {boolean} [loading=false] - Whether the button shows a loading indicator. Like disabled, it blocks interaction, but keeps the original content in place so the button doesn't change size
42
57
  * @prop {string} [loadingLabel='Loading…'] - The accessible label announced while the button is loading
43
58
  * @prop {string} command - The command sent to the element targeted by commandFor when the button is clicked, following the Invoker Commands API
44
59
  * @prop {string} commandFor - The id of the element that command is sent to
45
- * @attr {string} aria-label - The accessible label for the button. When the button opens a link in a new tab, this automatically gets a note appended announcing it
46
- * @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='fill'] - The button's surface style. Fill is a solid, colored background with light text. Default is a paler tint of the same color. Outline keeps the color as a border instead of a fill. Flat always renders a muted, low emphasis surface regardless of variant. Raised adds a drop shadow. Ghost shows no surface at rest, only gaining a border and a tinted background on hover, focus, or press
60
+ * @attr {string} aria-label - The accessible label for the button. When the button opens a link in a new tab, this automatically gets a note appended announcing it. Ignored with a slotted anchor, which takes it instead
61
+ * @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='fill'] - The button's surface style. Fill is a solid, colored background with light text. Default is a paler tint of the same color. Outline keeps the color as a border instead of a fill. Flat always renders a muted, low emphasis surface regardless of color. Raised adds a drop shadow. Ghost shows no surface at rest, only gaining a border and a tinted background on hover, focus, or press
47
62
  * @fires click - Fired when the button is activated by mouse, Enter, or Space
48
63
  * @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
49
64
  * @cssprop [--button-background] - Sets the background color
50
65
  * @cssprop [--button-background-hover] - Sets the background color on hover
51
66
  * @cssprop [--button-background-active] - Sets the background color while pressed
52
67
  * @cssprop [--button-text] - Sets the text color
53
- * @cssprop [--button-padding] - Sets the button's padding
54
- * @cssprop [--button-border-radius] - Sets the corner radius of the button
68
+ * @cssprop [--button-padding] - Sets the button's padding, for every size
69
+ * @cssprop [--button-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --button-padding is set
70
+ * @cssprop [--button-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --button-padding is set
71
+ * @cssprop [--button-border-radius] - Sets the corner radius of the button, for every size and over rounded
55
72
  * @cssprop [--button-focus-outline] - Sets the color of the focus outline
56
73
  * @cssprop [--button-transition] - Sets the duration of the button's transitions
57
74
  * @cssprop [--button-shadow] - Sets a box shadow. None is applied by default
58
75
  * @cssprop [--button-shadow-hover] - Sets the box shadow on hover, falling back to button-shadow when unset
59
- * @cssprop [--button-border-color] - Sets the border color, overriding the color the active variant would otherwise use
76
+ * @cssprop [--button-border-color] - Sets the border color, overriding the color the active color would otherwise use
60
77
  * @cssprop [--button-border-color-hover] - Sets the border color on hover or focus, falling back to button-border-color when unset
61
- * @cssprop [--button-border-size] - Sets the width of the border
78
+ * @cssprop [--button-border-size] - Sets the width of the border. Defaults to 1px for outline and 1.5px otherwise
79
+ * @cssprop [--button-font-size] - Sets the font size, for every size
80
+ * @cssprop [--button-font-weight] - Sets the font weight
81
+ * @cssprop [--button-line-height] - Sets the line height, for every size. Also sizes the icons
62
82
  * @cssprop [--button-full] - Set to true to stretch the button like the full attribute does. Unlike the attribute, a container query can set it, keeping the responsive behavior in pure CSS. Needs a browser supporting the CSS if() function
63
83
  * @element eun-button
64
84
  */
65
- let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(DisabledMixin(LitElement))) {
85
+ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(DisabledMixin(LocalizableMixin(LitElement)))) {
66
86
  constructor() {
67
87
  super(...arguments);
68
88
  /**
@@ -72,13 +92,13 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
72
92
  this.loadingLabel = "Loading…";
73
93
  /**
74
94
  * The button's surface treatment. `fill` is a solid, opaque
75
- * `variant`-colored background with light text ; `default` is a pale
95
+ * `color`-colored background with light text ; `default` is a pale
76
96
  * tinted wash of the same color ; `outline` drops the fill for a colored
77
97
  * border ; `flat` always renders the same muted, low-emphasis surface
78
- * regardless of `variant` ; `raised` adds a drop shadow ; `ghost` has no
98
+ * regardless of `color` ; `raised` adds a drop shadow ; `ghost` has no
79
99
  * visible surface at rest at all — a border (and a tinted background)
80
100
  * only appear on hover/focus/active, defaulting to a neutral gray when
81
- * `variant` isn't also set.
101
+ * `color` isn't also set.
82
102
  * @default fill
83
103
  */
84
104
  this.appearance = "fill";
@@ -89,6 +109,25 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
89
109
  * @default false
90
110
  */
91
111
  this.full = false;
112
+ /**
113
+ * Whether {@link syncSlottedAnchor} is the one that took the slotted
114
+ * anchor out of the tab order, so it only ever restores what it changed.
115
+ * @internal
116
+ */
117
+ _EunomiaButton_blockedAnchor.set(this, void 0);
118
+ /**
119
+ * Announces the slotted anchor opening in a new tab.
120
+ * @internal
121
+ */
122
+ _EunomiaButton_newTab.set(this, new NewTabAnchorController(this, () => this.slottedAnchor, () => this.dictionary.link.opensInNewTab));
123
+ /**
124
+ * Re-renders when the default slot changes, so an anchor added or removed
125
+ * after the first render switches between the two modes.
126
+ * @private
127
+ */
128
+ this.handleDefaultSlotChange = () => {
129
+ this.requestUpdate();
130
+ };
92
131
  }
93
132
  /**
94
133
  * Lifecycle hook called whenever reactive properties change. Manages the
@@ -105,6 +144,13 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
105
144
  */
106
145
  updated(_changedProperties) {
107
146
  super.updated(_changedProperties);
147
+ const anchor = this.slottedAnchor;
148
+ if (anchor) {
149
+ this.removeAttribute("tabindex");
150
+ this.syncSlottedAnchor(anchor);
151
+ warnIgnoredHostLinkAttributes(this);
152
+ return;
153
+ }
108
154
  if (_changedProperties.has("href") ||
109
155
  _changedProperties.has("disabled") ||
110
156
  _changedProperties.has("loading")) {
@@ -117,21 +163,55 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
117
163
  }
118
164
  }
119
165
  }
166
+ /**
167
+ * The native `<a>` slotted as a direct child while `href` is unset, which
168
+ * then acts as the button's link : it's in the light DOM, so it's part of
169
+ * the server-rendered HTML, and a framework's own link component can be
170
+ * that anchor. Navigation, `target`/`rel` and the new-tab hint are the
171
+ * consumer's own in this mode.
172
+ * @internal
173
+ */
174
+ get slottedAnchor() {
175
+ return this.href ? null : this.querySelector(":scope > a");
176
+ }
177
+ /**
178
+ * Links have no native disabled state : while `disabled` or `loading`,
179
+ * the slotted anchor is announced as disabled and taken out of the tab
180
+ * order (its pointer events are cut by the stylesheet), then restored.
181
+ * @param anchor the slotted anchor.
182
+ * @private
183
+ */
184
+ syncSlottedAnchor(anchor) {
185
+ if (this.disabled || this.loading) {
186
+ anchor.setAttribute("aria-disabled", "true");
187
+ anchor.setAttribute("tabindex", "-1");
188
+ __classPrivateFieldSet(this, _EunomiaButton_blockedAnchor, anchor, "f");
189
+ }
190
+ else if (__classPrivateFieldGet(this, _EunomiaButton_blockedAnchor, "f") === anchor) {
191
+ anchor.removeAttribute("aria-disabled");
192
+ anchor.removeAttribute("tabindex");
193
+ __classPrivateFieldSet(this, _EunomiaButton_blockedAnchor, undefined, "f");
194
+ }
195
+ }
120
196
  /**
121
197
  * Renders the end-of-content slot, replaced by an external-link indicator
122
- * (icon + accessible hint) when navigating away in a new tab.
198
+ * (icon + accessible hint) when navigating away in a new tab. A slotted
199
+ * anchor gets the icon only : the hint would sit outside it, so it's
200
+ * announced through its aria-description instead.
123
201
  * @private
124
202
  */
125
203
  renderEndContent() {
126
- if (!(this.href && this.target === "_blank")) {
204
+ const hrefBlank = !!this.href && this.target === "_blank";
205
+ const newTabHint = this.dictionary.link.opensInNewTab;
206
+ if (!hrefBlank && !__classPrivateFieldGet(this, _EunomiaButton_newTab, "f").isBlank) {
127
207
  return html `<slot name="end"></slot>`;
128
208
  }
129
209
  return html `
130
210
  <span id="external-link-icon">
131
211
  <eun-icon name="arrow_forward" shape="round" size="12"></eun-icon>
132
- ${this.ariaLabel
212
+ ${!hrefBlank || this.ariaLabel
133
213
  ? nothing
134
- : html `<span class="sr-only"> (opens in a new tab)</span>`}
214
+ : html `<span class="sr-only"> (${newTabHint})</span>`}
135
215
  </span>
136
216
  `;
137
217
  }
@@ -152,7 +232,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
152
232
  ></eun-icon>`
153
233
  : nothing}
154
234
  </slot>
155
- <slot></slot>
235
+ <slot @slotchange=${this.handleDefaultSlotChange}></slot>
156
236
  ${this.renderEndContent()}
157
237
  `;
158
238
  if (!this.loading) {
@@ -197,7 +277,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
197
277
  rel=${ifDefined(isBlank ? "noopener noreferrer" : undefined)}
198
278
  download=${ifDefined(this.download)}
199
279
  aria-label=${ifDefined(isBlank && this.ariaLabel
200
- ? `${this.ariaLabel} (opens in a new tab)`
280
+ ? `${this.ariaLabel} (${this.dictionary.link.opensInNewTab})`
201
281
  : (this.ariaLabel ?? undefined))}
202
282
  aria-disabled=${ifDefined(this.disabled ? "true" : undefined)}
203
283
  aria-busy=${ifDefined(this.loading ? "true" : undefined)}
@@ -210,6 +290,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
210
290
  return html `
211
291
  <div
212
292
  id="button"
293
+ class=${ifDefined(this.slottedAnchor ? "slotted-link" : undefined)}
213
294
  aria-busy=${ifDefined(this.loading ? "true" : undefined)}
214
295
  >
215
296
  ${content}
@@ -217,6 +298,8 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
217
298
  `;
218
299
  }
219
300
  };
301
+ _EunomiaButton_blockedAnchor = new WeakMap();
302
+ _EunomiaButton_newTab = new WeakMap();
220
303
  /**
221
304
  * Style to import to the component.
222
305
  *
@@ -4,28 +4,26 @@ import { buttonPaletteStyles } from "../shared-styles/button-palette.styles.js";
4
4
  * Base style for button.
5
5
  *
6
6
  * Custom css variables:
7
- * [--button-background] - Set a custom background color, for every appearance and variant
7
+ * [--button-background] - Set a custom background color, for every appearance and color
8
8
  * [--button-background-hover] - Set a custom button background color for hover state. Derived from --button-background when only that one is set
9
9
  * [--button-background-active] - Set a custom button background color for active state. Derived from --button-background when only that one is set
10
- * [--button-text] - Set a custom button text color, for every appearance and variant
11
- * [--button-padding] - Set a custom padding to the button. Note that thee padding is initialized through the `padding` css.
12
- * [--button-border-radius] - Set a custom radius to the button border
10
+ * [--button-text] - Set a custom button text color, for every appearance and color
11
+ * [--button-padding] - Set a custom padding to the button, for every size
12
+ * [--button-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --button-padding is set
13
+ * [--button-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --button-padding is set
14
+ * [--button-border-radius] - Set a custom radius to the button border, for every size and over `rounded`
13
15
  * [--button-focus-outline] - Set a custom color to the focus outline
14
16
  * [--button-transition] - Set a custom button transition time
15
17
  * [--button-shadow] - Set a custom box shadow to the button (used by the `raised` variant)
16
18
  * [--button-shadow-hover] - Set a custom box shadow to the button on hover state (used by the `raised` variant)
17
- * [--button-border-color] - Set a custom border color, for every appearance and variant
19
+ * [--button-border-color] - Set a custom border color, for every appearance and color
18
20
  * [--button-border-color-hover] - Set a custom border color for hover/focus-visible state, falling back to --button-border-color
19
- * [--button-border-size] - Set a custom border width
21
+ * [--button-border-size] - Set a custom border width. Defaults to 1px for `outline` and 1.5px otherwise
22
+ * [--button-font-size] - Set a custom font size, for every size
23
+ * [--button-font-weight] - Set a custom font weight
24
+ * [--button-line-height] - Set a custom line height, for every size. Also sizes the icons
20
25
  * [--button-full] - Set to `true` to get the same result as the `full` attribute. Meant to be set from a container query
21
26
  */
22
- /*
23
- * The variant fills the palette slots (see {@link buttonPaletteStyles}), the
24
- * appearance reads them into --_bg / --_bg-hover / --_bg-active / --_fg /
25
- * --_bd, and #button finally reads those *behind* the --button-* custom
26
- * properties, so a custom property always wins over any variant, appearance
27
- * and state. Only `disabled` stays above them, so it never loses its look.
28
- */
29
27
  const base = css `
30
28
  :host {
31
29
  --_focusIndicator: var(--button-focus-outline, var(--_ring));
@@ -35,21 +33,24 @@ const base = css `
35
33
  var(--button-background) 76%,
36
34
  black
37
35
  );
38
- --_borderRadius: var(
39
- --button-border-radius,
40
- var(--eun-border-radius-m, 8px)
41
- );
36
+ --_defaultBorderRadius: var(--eun-border-radius-m, 8px);
37
+ --_defaultPaddingBlock: var(--eun-space-s, 8px);
38
+ --_defaultPaddingInline: calc(var(--eun-space-l, 32px) / 2);
39
+ --_borderRadius: var(--button-border-radius, var(--_defaultBorderRadius));
42
40
  --_padding: var(
43
41
  --button-padding,
44
- var(--eun-space-s, 8px) calc(var(--eun-space-l, 32px) / 2)
42
+ var(--button-padding-block, var(--_defaultPaddingBlock))
43
+ var(--button-padding-inline, var(--_defaultPaddingInline))
45
44
  );
46
45
  --_boxShadow: var(--button-shadow, none);
47
46
  --_boxShadow-hover: var(--button-shadow-hover, var(--_boxShadow));
48
- --_transition: var(--button-transition, 0.2s);
47
+ --_transition: var(--button-transition, var(--eun-duration-m, 200ms));
49
48
  --_borderSize: var(--button-border-size, 1.5px);
50
- --_fontSize: var(--eun-font-size-s, 14px);
49
+ --_defaultFontSize: var(--eun-font-size-s, 14px);
50
+ --_fontSize: var(--button-font-size, var(--_defaultFontSize));
51
51
  --_gap: var(--eun-space-xs, 4px);
52
- --_lineHeight: 1rem;
52
+ --_defaultLineHeight: 1rem;
53
+ --_lineHeight: var(--button-line-height, var(--_defaultLineHeight));
53
54
  --icon-size: var(--_lineHeight);
54
55
  --_before-display: none;
55
56
  --_cursor: pointer;
@@ -59,7 +60,9 @@ const base = css `
59
60
  user-select: none;
60
61
  cursor: var(--_cursor);
61
62
  outline: 2px solid transparent;
62
- transition: all ease-out var(--_transition);
63
+ transition:
64
+ outline var(--eun-easing-out, ease-out) var(--_transition),
65
+ outline-offset var(--eun-easing-out, ease-out) var(--_transition);
63
66
  border-radius: var(--_borderRadius);
64
67
  z-index: 0;
65
68
  }
@@ -72,31 +75,35 @@ const base = css `
72
75
  outline-color: var(--_focusIndicator);
73
76
  }
74
77
  :host([size="xs"]) {
75
- --_fontSize: var(--eun-font-size-xs, 10px);
76
- --_padding: var(--eun-space-xxs, 1.6px) var(--eun-space-xs, 4px);
77
- --_lineHeight: 10px;
78
- --_borderRadius: var(--eun-border-radius-s, 999px);
78
+ --_defaultFontSize: var(--eun-font-size-xs, 10px);
79
+ --_defaultPaddingBlock: var(--eun-space-xxs, 1.6px);
80
+ --_defaultPaddingInline: var(--eun-space-xs, 4px);
81
+ --_defaultLineHeight: 10px;
82
+ --_defaultBorderRadius: var(--eun-border-radius-s, 999px);
79
83
  }
80
84
  :host([size="s"]) {
81
- --_fontSize: var(--eun-font-size-xs, 10px);
82
- --_padding: calc(var(--eun-space-s) / 2) var(--eun-space-s);
83
- --_lineHeight: 10px;
84
- --_borderRadius: var(--eun-border-radius-s, 999px);
85
+ --_defaultFontSize: var(--eun-font-size-xs, 10px);
86
+ --_defaultPaddingBlock: calc(var(--eun-space-s) / 2);
87
+ --_defaultPaddingInline: var(--eun-space-s);
88
+ --_defaultLineHeight: 10px;
89
+ --_defaultBorderRadius: var(--eun-border-radius-s, 999px);
85
90
  }
86
91
  :host([size="l"]) {
87
- --_fontSize: var(--eun-font-size-m, 16px);
92
+ --_defaultFontSize: var(--eun-font-size-m, 16px);
88
93
  --_gap: var(--eun-space-m, 16px);
89
- --_padding: calc(var(--eun-space-s, 8px) * 1.25) var(--eun-space-l, 32px);
90
- --_lineHeight: 1.1rem;
94
+ --_defaultPaddingBlock: calc(var(--eun-space-s, 8px) * 1.25);
95
+ --_defaultPaddingInline: var(--eun-space-l, 32px);
96
+ --_defaultLineHeight: 1.1rem;
91
97
  }
92
98
  :host([size="xl"]) {
93
- --_fontSize: var(--eun-font-size-l, 1.3rem);
99
+ --_defaultFontSize: var(--eun-font-size-l, 1.3rem);
94
100
  --_gap: var(--eun-space-m, 16px);
95
- --_padding: calc(var(--eun-space-s, 8px) * 1.5) var(--eun-space-l, 32px);
96
- --_lineHeight: 1.3rem;
101
+ --_defaultPaddingBlock: calc(var(--eun-space-s, 8px) * 1.5);
102
+ --_defaultPaddingInline: var(--eun-space-l, 32px);
103
+ --_defaultLineHeight: 1.3rem;
97
104
  }
98
105
  :host([rounded]) {
99
- --_borderRadius: var(--eun-border-radius-xl, 999px);
106
+ --_defaultBorderRadius: var(--eun-border-radius-xl, 999px);
100
107
  }
101
108
  slot::slotted(*) {
102
109
  color: var(--_textColor);
@@ -126,11 +133,13 @@ const base = css `
126
133
  outline: 2px solid transparent;
127
134
  padding: var(--_padding);
128
135
  gap: var(--_gap);
129
- transition: all ease-out var(--_transition);
136
+ transition: all var(--eun-easing-out, ease-out) var(--_transition);
130
137
  font-size: var(--_fontSize);
138
+ font-weight: var(--button-font-weight, inherit);
131
139
  line-height: var(--_lineHeight);
132
140
  text-decoration: none;
133
141
  align-items: center;
142
+ justify-content: center;
134
143
  white-space: nowrap;
135
144
  }
136
145
  #button:hover,
@@ -178,6 +187,53 @@ const base = css `
178
187
  border: 0;
179
188
  }
180
189
  `;
190
+ const slottedLink = css `
191
+ #button.slotted-link {
192
+ position: relative;
193
+ }
194
+ ::slotted(a) {
195
+ color: inherit;
196
+ text-decoration: none;
197
+ outline: none !important;
198
+ }
199
+ ::slotted(a)::after {
200
+ content: "";
201
+ position: absolute;
202
+ inset: calc(-1 * var(--_borderSize));
203
+ border-radius: var(--_borderRadius);
204
+ outline: 2px solid transparent;
205
+ transition: outline var(--eun-easing-out, ease-out) var(--_transition);
206
+ }
207
+ ::slotted(a:focus-visible)::after {
208
+ outline-offset: 2px;
209
+ outline-color: var(--_focusIndicator);
210
+ }
211
+ :host(:focus-within) #button.slotted-link {
212
+ box-shadow: var(--_boxShadow-hover);
213
+ border-color: var(
214
+ --button-border-color-hover,
215
+ var(--button-border-color, var(--_bd))
216
+ );
217
+ }
218
+ :host(:not([disabled]):focus-within) #button.slotted-link {
219
+ background: var(
220
+ --button-background-hover,
221
+ var(--_hoverFromCustom, var(--_bg-hover))
222
+ );
223
+ }
224
+ :host([slide]:focus-within) #button.slotted-link {
225
+ grid-template-columns: auto 1fr auto;
226
+ }
227
+ :host([slide]:focus-within) #button.slotted-link slot:not([name]) {
228
+ margin-left: var(--_gap);
229
+ opacity: 1;
230
+ }
231
+ :host([disabled]) ::slotted(a),
232
+ :host([loading]) ::slotted(a) {
233
+ pointer-events: none;
234
+ cursor: inherit;
235
+ }
236
+ `;
181
237
  const appearances = css `
182
238
  :host([appearance="fill"]),
183
239
  :host(:not([appearance])) {
@@ -195,6 +251,7 @@ const appearances = css `
195
251
  --_bd: transparent;
196
252
  }
197
253
  :host([appearance="outline"]) {
254
+ --_borderSize: var(--button-border-size, 1px);
198
255
  --_bg: transparent;
199
256
  --_bg-hover: var(--_wash-hover);
200
257
  --_bg-active: var(--_wash-active);
@@ -208,7 +265,7 @@ const appearances = css `
208
265
  --_fg: var(--_accent);
209
266
  --_bd: transparent;
210
267
  }
211
- :host([appearance="ghost"]:not([variant])) {
268
+ :host([appearance="ghost"]:not([color])) {
212
269
  --_accent: var(--eun-text-secondary, #484e61);
213
270
  --_wash-hover: var(--eun-content-hover, #edeff0);
214
271
  --_wash-active: var(--eun-disabled-color, #ecedf0);
@@ -221,13 +278,14 @@ const appearances = css `
221
278
  --_bd: transparent;
222
279
  --_boxShadow: var(
223
280
  --button-shadow,
224
- var(--eun-shadow-s, "rgba(149, 157, 165, 0.2) 0px 8px 24px")
281
+ var(--eun-shadow-s, rgba(149, 157, 165, 0.2) 0px 8px 24px)
225
282
  );
226
283
  --_boxShadow-hover: var(
227
284
  --button-shadow-hover,
228
285
  var(
229
286
  --eun-shadow-m,
230
- "rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px"
287
+ rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,
288
+ rgba(0, 0, 0, 0.05) 0px 4px 6px -2px
231
289
  )
232
290
  );
233
291
  }
@@ -239,7 +297,6 @@ const appearances = css `
239
297
  --_bd: transparent;
240
298
  }
241
299
 
242
- /* States : a custom background wins, derived when only the rest one is set. */
243
300
  :host(:not([disabled])) #button:is(:hover, :focus-visible),
244
301
  :host(:not([disabled]):focus-visible) #button {
245
302
  background: var(
@@ -256,32 +313,32 @@ const appearances = css `
256
313
  :host([appearance="raised"]:not([disabled])) #button:active {
257
314
  box-shadow: var(
258
315
  --eun-shadow-l,
259
- "rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px"
316
+ rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,
317
+ rgba(0, 0, 0, 0.05) 0px 4px 6px -2px
260
318
  );
261
319
  }
262
320
 
263
- /* A solid semantic button darkens instead of switching color. */
264
321
  :host(
265
322
  [appearance="fill"]:is(
266
- [variant="critical"],
267
- [variant="success"],
268
- [variant="warning"]
323
+ [color="critical"],
324
+ [color="success"],
325
+ [color="warning"]
269
326
  ):not([disabled]):is(:hover, :focus-visible)
270
327
  )
271
328
  #button,
272
329
  :host(
273
330
  [appearance="fill"]:is(
274
- [variant="critical"],
275
- [variant="success"],
276
- [variant="warning"]
331
+ [color="critical"],
332
+ [color="success"],
333
+ [color="warning"]
277
334
  ):not([disabled])
278
335
  )
279
336
  #button:is(:hover, :focus-visible) {
280
337
  filter: brightness(0.9);
281
338
  }
282
- :host([appearance="fill"][variant="critical"]:not([disabled])) #button:active,
283
- :host([appearance="fill"][variant="success"]:not([disabled])) #button:active,
284
- :host([appearance="fill"][variant="warning"]:not([disabled])) #button:active {
339
+ :host([appearance="fill"][color="critical"]:not([disabled])) #button:active,
340
+ :host([appearance="fill"][color="success"]:not([disabled])) #button:active,
341
+ :host([appearance="fill"][color="warning"]:not([disabled])) #button:active {
285
342
  filter: brightness(0.8);
286
343
  }
287
344
  `;
@@ -314,7 +371,8 @@ const slide = css `
314
371
  gap: 0;
315
372
  align-items: center;
316
373
  justify-content: start;
317
- transition: grid-template-columns ease var(--_transition);
374
+ transition: grid-template-columns var(--eun-easing-default, ease)
375
+ var(--_transition);
318
376
  }
319
377
  :host([slide]:hover) #button,
320
378
  :host([slide]:focus-visible) #button,
@@ -329,8 +387,8 @@ const slide = css `
329
387
  margin-left: 0;
330
388
  opacity: 0;
331
389
  transition:
332
- margin-left ease var(--_transition),
333
- opacity ease var(--_transition);
390
+ margin-left var(--eun-easing-default, ease) var(--_transition),
391
+ opacity var(--eun-easing-default, ease) var(--_transition);
334
392
  }
335
393
  :host([slide]:hover) slot:not([name]),
336
394
  :host([slide]:focus-visible) slot:not([name]),
@@ -344,18 +402,12 @@ const full = css `
344
402
  display: flex;
345
403
  width: 100%;
346
404
  }
347
- :host([full]) #button {
348
- justify-content: center;
349
- }
350
405
  `;
351
406
  const fullVariable = css `
352
407
  @supports (width: if(style(--a: b): 1px; else: 2px)) {
353
408
  :host {
354
409
  width: if(style(--button-full: true): 100%; else: fit-content);
355
410
  }
356
- #button {
357
- justify-content: if(style(--button-full: true): center; else: normal);
358
- }
359
411
  }
360
412
  `;
361
413
  export const buttonStyles = [
@@ -364,6 +416,7 @@ export const buttonStyles = [
364
416
  appearances,
365
417
  disabled,
366
418
  slide,
419
+ slottedLink,
367
420
  fullVariable,
368
421
  full,
369
422
  ];