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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.md +2 -2
  2. package/dist/breakpoints.d.ts +37 -10
  3. package/dist/breakpoints.js +38 -10
  4. package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
  5. package/dist/cdn/components/chunks/chunk-36KLGY6U.js +209 -0
  6. package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
  7. package/dist/cdn/components/chunks/{chunk-IDKZKLJR.js → chunk-3PNGQEG4.js} +24 -11
  8. package/dist/cdn/components/chunks/{chunk-NBIENHLV.js → chunk-5XPOGBPL.js} +18 -18
  9. package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
  10. package/dist/cdn/components/chunks/chunk-62RLISRD.js +1 -0
  11. package/dist/cdn/components/chunks/{chunk-6ETDXUH2.js → chunk-6FYW5TQU.js} +7 -7
  12. package/dist/cdn/components/chunks/chunk-AK2DIJX7.js +1 -0
  13. package/dist/cdn/components/chunks/chunk-B5XMGWM7.js +10 -0
  14. package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
  15. package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
  16. package/dist/cdn/components/chunks/chunk-BVASCT2V.js +109 -0
  17. package/dist/cdn/components/chunks/{chunk-DKOPI7QA.js → chunk-DGI7TKCU.js} +83 -68
  18. package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
  19. package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
  20. package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
  21. package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
  22. package/dist/cdn/components/chunks/chunk-GVS6IUKC.js +1 -0
  23. package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
  24. package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-I4ERDXSM.js} +9 -4
  25. package/dist/cdn/components/chunks/{chunk-AIS3UICU.js → chunk-J3SZBXM6.js} +11 -7
  26. package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-LVKMAHMU.js} +11 -1
  27. package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-MQQJ6DID.js} +1 -1
  28. package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
  29. package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
  30. package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
  31. package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-PXF554MD.js} +10 -9
  32. package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
  33. package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-QXQ25SQS.js} +24 -20
  34. package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
  35. package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-SVGWCKWT.js} +2 -2
  36. package/dist/cdn/components/chunks/{chunk-2XASWWKR.js → chunk-TFTRCIIK.js} +9 -8
  37. package/dist/cdn/components/chunks/chunk-TLBXTBMM.js +46 -0
  38. package/dist/cdn/components/chunks/chunk-UVHVQRPT.js +1 -0
  39. package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
  40. package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
  41. package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
  42. package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
  43. package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
  44. package/dist/cdn/components/chunks/{chunk-OW7XKDCH.js → chunk-Z3OFIE7S.js} +16 -16
  45. package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
  46. package/dist/cdn/components/eun-alert.js +33 -18
  47. package/dist/cdn/components/eun-animate.js +14 -10
  48. package/dist/cdn/components/eun-badge.js +2 -2
  49. package/dist/cdn/components/eun-breadcrumb.js +25 -41
  50. package/dist/cdn/components/eun-button.js +1 -1
  51. package/dist/cdn/components/eun-calendar.js +67 -65
  52. package/dist/cdn/components/eun-card.js +34 -19
  53. package/dist/cdn/components/eun-carousel.js +76 -42
  54. package/dist/cdn/components/eun-check-card.js +13 -6
  55. package/dist/cdn/components/eun-checkbox-list.js +11 -8
  56. package/dist/cdn/components/eun-checkbox.js +1 -1
  57. package/dist/cdn/components/eun-chip.js +3 -3
  58. package/dist/cdn/components/eun-collapse.js +56 -27
  59. package/dist/cdn/components/eun-color-picker.js +79 -86
  60. package/dist/cdn/components/eun-counter.js +16 -15
  61. package/dist/cdn/components/eun-date-picker.js +71 -67
  62. package/dist/cdn/components/eun-description-list.js +152 -0
  63. package/dist/cdn/components/eun-divider.js +3 -3
  64. package/dist/cdn/components/eun-drawer.js +34 -20
  65. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  66. package/dist/cdn/components/eun-dropdown-item.js +6 -5
  67. package/dist/cdn/components/eun-fab.js +17 -16
  68. package/dist/cdn/components/eun-icon.js +1 -1
  69. package/dist/cdn/components/eun-image-card.js +79 -22
  70. package/dist/cdn/components/eun-image-carousel.js +92 -47
  71. package/dist/cdn/components/eun-infinite-list.js +23 -11
  72. package/dist/cdn/components/eun-input-file.js +20 -19
  73. package/dist/cdn/components/eun-input-phone.js +17 -16
  74. package/dist/cdn/components/eun-input.js +1 -1
  75. package/dist/cdn/components/eun-label.js +4 -4
  76. package/dist/cdn/components/eun-link.js +78 -29
  77. package/dist/cdn/components/eun-loader.js +1 -1
  78. package/dist/cdn/components/eun-modal.js +27 -20
  79. package/dist/cdn/components/eun-pagination.js +24 -19
  80. package/dist/cdn/components/eun-password-strength.js +19 -11
  81. package/dist/cdn/components/eun-progress-bar.js +13 -5
  82. package/dist/cdn/components/eun-radio-card.js +16 -9
  83. package/dist/cdn/components/eun-radio-list.js +12 -9
  84. package/dist/cdn/components/eun-radio.js +1 -1
  85. package/dist/cdn/components/eun-rating.js +276 -0
  86. package/dist/cdn/components/eun-scheduler-event-editor.js +10 -10
  87. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  88. package/dist/cdn/components/eun-scheduler.js +27 -27
  89. package/dist/cdn/components/eun-search.js +24 -25
  90. package/dist/cdn/components/eun-select.js +32 -31
  91. package/dist/cdn/components/eun-sidebar.js +40 -24
  92. package/dist/cdn/components/eun-skeleton.js +1 -1
  93. package/dist/cdn/components/eun-slider.js +15 -14
  94. package/dist/cdn/components/eun-sliding-card.js +8 -4
  95. package/dist/cdn/components/eun-step.js +22 -10
  96. package/dist/cdn/components/eun-stepper.js +41 -30
  97. package/dist/cdn/components/eun-switch.js +10 -8
  98. package/dist/cdn/components/eun-tab-group.js +24 -19
  99. package/dist/cdn/components/eun-tab-panel.js +11 -3
  100. package/dist/cdn/components/eun-tab.js +1 -1
  101. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  102. package/dist/cdn/components/eun-table.js +572 -31
  103. package/dist/cdn/components/eun-tag.js +13 -7
  104. package/dist/cdn/components/eun-textarea.js +34 -29
  105. package/dist/cdn/components/eun-time-picker.js +24 -21
  106. package/dist/cdn/components/eun-toast.js +51 -22
  107. package/dist/cdn/components/eun-toggle-group.js +57 -36
  108. package/dist/cdn/components/eun-toggle-item.js +16 -15
  109. package/dist/cdn/components/eun-toggle.js +12 -10
  110. package/dist/cdn/components/eun-toolbar.js +64 -54
  111. package/dist/cdn/components/eun-tooltip.js +30 -14
  112. package/dist/cdn/styles/breakpoints.scss +8 -0
  113. package/dist/cdn/styles/eunomia-grid.scss +6 -0
  114. package/dist/cdn/styles/eunomia-themes.css +1 -1
  115. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  116. package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
  117. package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  118. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  119. package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  120. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  121. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  122. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  123. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  124. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  125. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  126. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  127. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  128. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  129. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  130. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  131. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  132. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  133. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  134. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  135. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  136. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  137. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  138. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  139. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  140. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  141. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  142. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  143. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  144. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  145. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  146. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  147. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  148. package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  149. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  150. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  151. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  152. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  153. package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  154. package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  155. package/dist/components/action/button/button.d.ts +9 -3
  156. package/dist/components/action/button/button.js +10 -4
  157. package/dist/components/action/button/button.styles.js +61 -41
  158. package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
  159. package/dist/components/action/dropdown-button/dropdown-button.js +21 -15
  160. package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
  161. package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
  162. package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
  163. package/dist/components/action/fab/fab.styles.js +14 -13
  164. package/dist/components/action/link/link.d.ts +7 -3
  165. package/dist/components/action/link/link.js +11 -7
  166. package/dist/components/action/link/link.styles.js +66 -15
  167. package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
  168. package/dist/components/action/toggle/toggle-group.d.ts +2 -0
  169. package/dist/components/action/toggle/toggle-group.js +6 -4
  170. package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
  171. package/dist/components/action/toggle/toggle-group.styles.js +46 -23
  172. package/dist/components/action/toggle/toggle-item.styles.js +13 -12
  173. package/dist/components/action/toggle/toggle.d.ts +2 -0
  174. package/dist/components/action/toggle/toggle.js +3 -1
  175. package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
  176. package/dist/components/action/toggle/toggle.styles.js +12 -8
  177. package/dist/components/alert/alert/alert.d.ts +11 -7
  178. package/dist/components/alert/alert/alert.js +13 -14
  179. package/dist/components/alert/alert/alert.styles.js +32 -15
  180. package/dist/components/alert/drawer/drawer.d.ts +8 -6
  181. package/dist/components/alert/drawer/drawer.js +12 -14
  182. package/dist/components/alert/drawer/drawer.styles.js +26 -10
  183. package/dist/components/alert/modal/modal.d.ts +13 -11
  184. package/dist/components/alert/modal/modal.js +17 -27
  185. package/dist/components/alert/modal/modal.styles.js +16 -7
  186. package/dist/components/alert/toast/toast.d.ts +9 -5
  187. package/dist/components/alert/toast/toast.js +11 -13
  188. package/dist/components/alert/toast/toast.styles.js +49 -18
  189. package/dist/components/content/badge/badge.js +2 -2
  190. package/dist/components/content/card/card.d.ts +7 -3
  191. package/dist/components/content/card/card.js +8 -4
  192. package/dist/components/content/card/card.styles.js +28 -13
  193. package/dist/components/content/card/image-card.d.ts +60 -6
  194. package/dist/components/content/card/image-card.js +120 -11
  195. package/dist/components/content/card/image-card.styles.js +66 -15
  196. package/dist/components/content/card/sliding-card.d.ts +2 -0
  197. package/dist/components/content/card/sliding-card.js +2 -0
  198. package/dist/components/content/card/sliding-card.styles.js +5 -1
  199. package/dist/components/content/chip/chip.d.ts +4 -4
  200. package/dist/components/content/chip/chip.js +8 -8
  201. package/dist/components/content/collapse/collapse.d.ts +10 -1
  202. package/dist/components/content/collapse/collapse.js +12 -2
  203. package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
  204. package/dist/components/content/collapse/collapse.styles.js +56 -18
  205. package/dist/components/content/description-list/description-list.d.ts +87 -0
  206. package/dist/components/content/description-list/description-list.js +107 -0
  207. package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
  208. package/dist/components/content/description-list/description-list.styles.js +185 -0
  209. package/dist/components/content/icon/icon.d.ts +5 -0
  210. package/dist/components/content/icon/icon.js +5 -0
  211. package/dist/components/content/icon/icon.style.d.ts +2 -0
  212. package/dist/components/content/icon/icon.style.js +8 -1
  213. package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
  214. package/dist/components/content/image-carousel/image-carousel.js +58 -55
  215. package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
  216. package/dist/components/content/password-strength/password-strength.d.ts +21 -6
  217. package/dist/components/content/password-strength/password-strength.js +37 -16
  218. package/dist/components/content/password-strength/password-strength.styles.js +9 -1
  219. package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
  220. package/dist/components/content/shared-styles/card-link.styles.js +4 -3
  221. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
  222. package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
  223. package/dist/components/content/tag/tag.d.ts +4 -0
  224. package/dist/components/content/tag/tag.js +6 -2
  225. package/dist/components/content/tag/tag.styles.js +14 -4
  226. package/dist/components/content/tooltip/tooltip.d.ts +3 -2
  227. package/dist/components/content/tooltip/tooltip.js +12 -19
  228. package/dist/components/content/tooltip/tooltip.styles.js +25 -7
  229. package/dist/components/form/checkbox/check-card.d.ts +5 -1
  230. package/dist/components/form/checkbox/check-card.js +5 -1
  231. package/dist/components/form/checkbox/check-card.styles.js +13 -4
  232. package/dist/components/form/checkbox/checkbox-list.d.ts +21 -1
  233. package/dist/components/form/checkbox/checkbox-list.js +50 -17
  234. package/dist/components/form/checkbox/checkbox.d.ts +5 -1
  235. package/dist/components/form/checkbox/checkbox.js +7 -2
  236. package/dist/components/form/checkbox/checkbox.styles.js +5 -4
  237. package/dist/components/form/color-picker/color-picker.d.ts +48 -29
  238. package/dist/components/form/color-picker/color-picker.js +85 -71
  239. package/dist/components/form/color-picker/color-picker.styles.js +7 -6
  240. package/dist/components/form/counter/counter.d.ts +26 -19
  241. package/dist/components/form/counter/counter.js +64 -63
  242. package/dist/components/form/counter/counter.styles.js +5 -4
  243. package/dist/components/form/date-picker/date-picker.d.ts +64 -39
  244. package/dist/components/form/date-picker/date-picker.js +107 -96
  245. package/dist/components/form/date-picker/date-picker.styles.js +8 -5
  246. package/dist/components/form/input/input.d.ts +45 -40
  247. package/dist/components/form/input/input.js +93 -111
  248. package/dist/components/form/input-file/input-file.d.ts +30 -14
  249. package/dist/components/form/input-file/input-file.js +43 -40
  250. package/dist/components/form/input-file/input-file.styles.js +7 -6
  251. package/dist/components/form/input-phone/input-phone.d.ts +30 -7
  252. package/dist/components/form/input-phone/input-phone.js +54 -30
  253. package/dist/components/form/input-phone/input-phone.styles.js +4 -4
  254. package/dist/components/form/label/label.styles.js +3 -3
  255. package/dist/components/form/radio/radio-card.d.ts +6 -2
  256. package/dist/components/form/radio/radio-card.js +6 -2
  257. package/dist/components/form/radio/radio-card.styles.js +14 -5
  258. package/dist/components/form/radio/radio-list.d.ts +28 -9
  259. package/dist/components/form/radio/radio-list.js +61 -32
  260. package/dist/components/form/radio/radio.d.ts +6 -2
  261. package/dist/components/form/radio/radio.js +6 -2
  262. package/dist/components/form/radio/radio.styles.js +4 -4
  263. package/dist/components/form/rating/rating.d.ts +349 -0
  264. package/dist/components/form/rating/rating.js +665 -0
  265. package/dist/components/form/rating/rating.styles.d.ts +1 -0
  266. package/dist/components/form/rating/rating.styles.js +213 -0
  267. package/dist/components/form/search/search.d.ts +10 -9
  268. package/dist/components/form/search/search.js +29 -56
  269. package/dist/components/form/search/search.styles.js +5 -4
  270. package/dist/components/form/select/select.d.ts +32 -12
  271. package/dist/components/form/select/select.js +74 -59
  272. package/dist/components/form/select/select.styles.js +3 -2
  273. package/dist/components/form/shared-styles/card.styles.js +5 -4
  274. package/dist/components/form/shared-styles/field.styles.js +16 -6
  275. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  276. package/dist/components/form/shared-styles/listbox.styles.js +10 -0
  277. package/dist/components/form/slider/slider.d.ts +11 -9
  278. package/dist/components/form/slider/slider.js +14 -14
  279. package/dist/components/form/slider/slider.styles.js +8 -7
  280. package/dist/components/form/switch/switch.d.ts +5 -1
  281. package/dist/components/form/switch/switch.js +5 -1
  282. package/dist/components/form/switch/switch.styles.js +7 -5
  283. package/dist/components/form/textarea/textarea.d.ts +96 -24
  284. package/dist/components/form/textarea/textarea.js +206 -51
  285. package/dist/components/form/time-picker/time-picker-columns.d.ts +2 -2
  286. package/dist/components/form/time-picker/time-picker-columns.js +8 -8
  287. package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
  288. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
  289. package/dist/components/form/time-picker/time-picker.d.ts +30 -10
  290. package/dist/components/form/time-picker/time-picker.js +81 -64
  291. package/dist/components/form/time-picker/time-picker.styles.js +4 -3
  292. package/dist/components/layout/animate/animate.d.ts +37 -15
  293. package/dist/components/layout/animate/animate.js +36 -16
  294. package/dist/components/layout/animate/animate.styles.js +11 -18
  295. package/dist/components/layout/divider/divider.js +1 -1
  296. package/dist/components/layout/divider/divider.styles.js +1 -1
  297. package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
  298. package/dist/components/layout/infinite-list/infinite-list.js +115 -18
  299. package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
  300. package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
  301. package/dist/components/loader/loader/loader.js +2 -2
  302. package/dist/components/loader/loader/loader.styles.js +17 -13
  303. package/dist/components/loader/skeleton/skeleton.js +1 -1
  304. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
  305. package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
  306. package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
  307. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
  308. package/dist/components/navigation/carousel/carousel.d.ts +55 -11
  309. package/dist/components/navigation/carousel/carousel.js +101 -43
  310. package/dist/components/navigation/carousel/carousel.styles.js +65 -22
  311. package/dist/components/navigation/pagination/pagination.d.ts +23 -21
  312. package/dist/components/navigation/pagination/pagination.js +30 -53
  313. package/dist/components/navigation/pagination/pagination.styles.js +8 -3
  314. package/dist/components/navigation/sidebar/sidebar.d.ts +17 -13
  315. package/dist/components/navigation/sidebar/sidebar.js +23 -33
  316. package/dist/components/navigation/sidebar/sidebar.styles.js +32 -14
  317. package/dist/components/navigation/stepper/step.js +9 -8
  318. package/dist/components/navigation/stepper/step.styles.js +16 -5
  319. package/dist/components/navigation/stepper/stepper.js +12 -5
  320. package/dist/components/navigation/stepper/stepper.styles.js +16 -5
  321. package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
  322. package/dist/components/navigation/tabs/tab/tab.js +11 -0
  323. package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
  324. package/dist/components/navigation/tabs/tab-group/tab-group.js +9 -10
  325. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +21 -16
  326. package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
  327. package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
  328. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
  329. package/dist/components/navigation/toolbar/toolbar.d.ts +30 -62
  330. package/dist/components/navigation/toolbar/toolbar.js +43 -105
  331. package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
  332. package/dist/events/table-row-click.event.d.ts +5 -4
  333. package/dist/events/table-row-click.event.js +10 -5
  334. package/dist/features/scheduler/calendar/calendar.d.ts +6 -6
  335. package/dist/features/scheduler/calendar/calendar.js +7 -6
  336. package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
  337. package/dist/features/scheduler/scheduler/scheduler.d.ts +8 -8
  338. package/dist/features/scheduler/scheduler/scheduler.js +24 -47
  339. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
  340. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
  341. package/dist/features/scheduler/scheduler-event/scheduler-event.js +5 -3
  342. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +11 -5
  343. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +6 -4
  344. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +6 -7
  345. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
  346. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
  347. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
  348. package/dist/features/table/table/table-native.styles.d.ts +28 -0
  349. package/dist/features/table/table/table-native.styles.js +502 -0
  350. package/dist/features/table/table/table.d.ts +342 -294
  351. package/dist/features/table/table/table.js +820 -546
  352. package/dist/features/table/table/table.styles.js +31 -17
  353. package/dist/features/table/table/table.types.d.ts +11 -20
  354. package/dist/features/table/table/table.utils.d.ts +6 -36
  355. package/dist/features/table/table/table.utils.js +16 -65
  356. package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
  357. package/dist/features/table/table-action-bar/table-action-bar.js +15 -22
  358. package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
  359. package/dist/i18n/en.d.ts +99 -0
  360. package/dist/i18n/en.js +99 -0
  361. package/dist/i18n/fr.js +103 -2
  362. package/dist/index.d.ts +6 -10
  363. package/dist/index.js +7 -10
  364. package/dist/mixins/button.mixin.js +3 -2
  365. package/dist/mixins/check.mixin.js +15 -15
  366. package/dist/mixins/disabled.mixin.d.ts +5 -0
  367. package/dist/mixins/disabled.mixin.js +21 -1
  368. package/dist/mixins/editable.mixin.js +28 -5
  369. package/dist/mixins/field-appearance.mixin.js +3 -2
  370. package/dist/mixins/form.mixin.d.ts +21 -1
  371. package/dist/mixins/form.mixin.js +156 -27
  372. package/dist/mixins/localizable.mixin.d.ts +1 -1
  373. package/dist/mixins/localizable.mixin.js +1 -1
  374. package/dist/mixins/radio.mixin.js +15 -15
  375. package/dist/mixins/readonly.mixin.d.ts +2 -1
  376. package/dist/mixins/readonly.mixin.js +10 -3
  377. package/dist/mixins/validators.mixin.d.ts +7 -1
  378. package/dist/mixins/validators.mixin.js +36 -17
  379. package/dist/ssr/alert-ssr.css +187 -0
  380. package/dist/ssr/animate-ssr.css +3 -2
  381. package/dist/ssr/badge-ssr.css +67 -0
  382. package/dist/ssr/breadcrumb-ssr.css +41 -0
  383. package/dist/ssr/button-ssr.css +319 -0
  384. package/dist/ssr/card-ssr.css +196 -0
  385. package/dist/ssr/carousel-ssr.css +238 -0
  386. package/dist/ssr/checkbox-ssr.css +67 -0
  387. package/dist/ssr/chip-ssr.css +242 -0
  388. package/dist/ssr/collapse-ssr.css +151 -0
  389. package/dist/ssr/description-list-ssr.css +150 -0
  390. package/dist/ssr/field-ssr.css +163 -0
  391. package/dist/ssr/icon-ssr.css +266 -0
  392. package/dist/ssr/image-carousel-ssr.css +24 -0
  393. package/dist/ssr/links-ssr.css +8 -2
  394. package/dist/ssr/pagination-ssr.css +4 -0
  395. package/dist/ssr/rating-ssr.css +254 -0
  396. package/dist/ssr/sidebar-ssr.css +9 -1
  397. package/dist/ssr/skeleton-ssr.css +63 -0
  398. package/dist/ssr/table-ssr.css +472 -0
  399. package/dist/ssr/tabs-ssr.css +129 -0
  400. package/dist/ssr/tag-ssr.css +197 -0
  401. package/dist/ssr/toggle-group-ssr.css +182 -0
  402. package/dist/ssr/toolbar-ssr.css +34 -1
  403. package/dist/utils/drag-drop.utils.js +18 -2
  404. package/dist/utils/dropdown-menu.utils.d.ts +2 -2
  405. package/dist/utils/dropdown-menu.utils.js +4 -14
  406. package/dist/utils/implicit-submission.utils.d.ts +18 -0
  407. package/dist/utils/implicit-submission.utils.js +79 -0
  408. package/dist/utils/light-dom-styles.utils.d.ts +14 -0
  409. package/dist/utils/light-dom-styles.utils.js +37 -0
  410. package/dist/utils/listbox-options.utils.d.ts +11 -0
  411. package/dist/utils/listbox-options.utils.js +41 -3
  412. package/dist/utils/media.styles.d.ts +19 -0
  413. package/dist/utils/media.styles.js +23 -0
  414. package/dist/utils/motion.utils.d.ts +40 -0
  415. package/dist/utils/motion.utils.js +51 -0
  416. package/dist/utils/theme-generator.utils.d.ts +6 -1
  417. package/dist/utils/theme-generator.utils.js +59 -20
  418. package/package.json +39 -31
  419. package/styles/breakpoints.scss +8 -0
  420. package/styles/eunomia-grid.scss +6 -0
  421. package/styles/themes/eunomia-theme.scss +4 -3
  422. package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  423. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  424. package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  425. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  426. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  427. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  428. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  429. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  430. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  431. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  432. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  433. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  434. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  435. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  436. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  437. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  438. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  439. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  440. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  441. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  442. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  443. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  444. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  445. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  446. package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  447. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  448. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  449. package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  450. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  451. package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  452. package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  453. package/dist/cdn/components/chunks/chunk-32DTNR52.js +0 -1
  454. package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
  455. package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
  456. package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
  457. package/dist/cdn/components/chunks/chunk-E4IS25H7.js +0 -1
  458. package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
  459. package/dist/cdn/components/chunks/chunk-EAKYD33D.js +0 -110
  460. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
  461. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
  462. package/dist/cdn/components/chunks/chunk-KBH5PCUO.js +0 -3
  463. package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
  464. package/dist/cdn/components/chunks/chunk-LFCXUVDO.js +0 -1
  465. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
  466. package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
  467. package/dist/cdn/components/chunks/chunk-S2UCEWNG.js +0 -207
  468. package/dist/cdn/components/chunks/chunk-SJWRE6PW.js +0 -1
  469. package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
  470. package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
  471. package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
  472. package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
  473. package/dist/cdn/components/eun-table-cell.js +0 -1
  474. package/dist/cdn/components/eun-table-column.js +0 -1
  475. package/dist/cdn/components/eun-table-header.js +0 -1
  476. package/dist/cdn/components/eun-table-item.js +0 -1
  477. package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
  478. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  479. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  480. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
  481. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
  482. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
  483. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
  484. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
  485. package/dist/features/table/native-table.css +0 -276
  486. package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
  487. package/dist/features/table/shared-styles/table-row.styles.js +0 -47
  488. package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
  489. package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
  490. package/dist/features/table/table-cell/table-cell.d.ts +0 -59
  491. package/dist/features/table/table-cell/table-cell.js +0 -73
  492. package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
  493. package/dist/features/table/table-cell/table-cell.styles.js +0 -46
  494. package/dist/features/table/table-column/table-column.d.ts +0 -73
  495. package/dist/features/table/table-column/table-column.js +0 -89
  496. package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
  497. package/dist/features/table/table-column/table-column.styles.js +0 -51
  498. package/dist/features/table/table-header/table-header.d.ts +0 -102
  499. package/dist/features/table/table-header/table-header.js +0 -165
  500. package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
  501. package/dist/features/table/table-header/table-header.styles.js +0 -147
  502. package/dist/features/table/table-item/table-item.d.ts +0 -179
  503. package/dist/features/table/table-item/table-item.js +0 -291
  504. package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
  505. package/dist/features/table/table-item/table-item.styles.js +0 -404
  506. package/dist/features/table/table-managed/table-managed.d.ts +0 -19
  507. package/dist/features/table/table-managed/table-managed.js +0 -128
  508. package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
  509. package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
  510. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
  511. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
  512. package/dist/mixins/table-row.mixin.d.ts +0 -37
  513. package/dist/mixins/table-row.mixin.js +0 -103
  514. package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  515. package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  516. package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
@@ -4,8 +4,11 @@ import { css } from "lit";
4
4
  *
5
5
  * Custom css variables:
6
6
  * [--infinite-list-height] - Set a custom fixed height, past which the list scrolls internally instead of the surrounding page ; unset (the default), the list grows with its content and the page scrolls it like any other block
7
+ * [--infinite-list-columns] - Set the number of columns items are laid out in, as a grid
7
8
  * [--infinite-list-gap] - Set a custom gap between items
8
9
  * [--infinite-list-padding] - Set a custom padding around the scrollable area
10
+ * [--infinite-list-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
11
+ * [--infinite-list-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
9
12
  * [--infinite-list-loading-padding] - Set a custom padding around the trailing loading indicator
10
13
  * [--infinite-list-end-color] - Set a custom color for the "end" slot's default position
11
14
  * [--infinite-list-focus-outline-color] - Set a custom focus outline color applied to slotted items
@@ -17,17 +20,26 @@ export const infiniteListStyles = css `
17
20
  }
18
21
  #scroller {
19
22
  max-block-size: var(--infinite-list-height, none);
23
+ padding: var(
24
+ --infinite-list-padding,
25
+ var(--infinite-list-padding-block, 0)
26
+ var(--infinite-list-padding-inline, 0)
27
+ );
28
+ }
29
+ #scroller.contained {
20
30
  overflow-y: auto;
21
31
  overscroll-behavior: contain;
22
- padding: var(--infinite-list-padding, 0);
23
32
  }
24
33
  #feed {
25
- display: flex;
26
- flex-direction: column;
34
+ display: grid;
35
+ grid-template-columns: repeat(
36
+ var(--infinite-list-columns, 1),
37
+ minmax(0, 1fr)
38
+ );
27
39
  gap: var(--infinite-list-gap, var(--eun-space-m, 16px));
28
40
  }
29
- .eun-il-spacer {
30
- flex: none;
41
+ ::slotted(.eun-il-spacer) {
42
+ grid-column: 1 / -1;
31
43
  visibility: hidden;
32
44
  }
33
45
  #sentinel {
@@ -170,7 +170,7 @@ __decorate([
170
170
  property()
171
171
  ], EunomiaLoader.prototype, "label", void 0);
172
172
  __decorate([
173
- property({ reflect: true })
173
+ property({ reflect: true, useDefault: true })
174
174
  ], EunomiaLoader.prototype, "variant", void 0);
175
175
  __decorate([
176
176
  property({ hasChanged: () => false })
@@ -182,7 +182,7 @@ __decorate([
182
182
  property({ type: Boolean, reflect: true })
183
183
  ], EunomiaLoader.prototype, "sticky", void 0);
184
184
  __decorate([
185
- property({ attribute: "sticky-position", reflect: true })
185
+ property({ attribute: "sticky-position", reflect: true, useDefault: true })
186
186
  ], EunomiaLoader.prototype, "stickyPosition", void 0);
187
187
  EunomiaLoader = __decorate([
188
188
  customElement(EunomiaLoaderTagName)
@@ -19,9 +19,9 @@ const base = css `
19
19
  font-size: var(--_size);
20
20
  }
21
21
 
22
- :host([variant="dots"]) span,
23
- :host([variant="dots"]) span::before,
24
- :host([variant="dots"]) span::after {
22
+ :host(:is([variant="dots"], :not([variant]))) span,
23
+ :host(:is([variant="dots"], :not([variant]))) span::before,
24
+ :host(:is([variant="dots"], :not([variant]))) span::after {
25
25
  border-radius: 50%;
26
26
  width: 0.5em;
27
27
  height: 0.5em;
@@ -30,22 +30,22 @@ const base = css `
30
30
  animation: eun-loader-fade 1.4s infinite ease-in-out;
31
31
  animation-fill-mode: both;
32
32
  }
33
- :host([variant="dots"]) span {
33
+ :host(:is([variant="dots"], :not([variant]))) span {
34
34
  position: relative;
35
35
  margin: 0 0.75em;
36
36
  animation-delay: -0.16s;
37
37
  }
38
- :host([variant="dots"]) span::before,
39
- :host([variant="dots"]) span::after {
38
+ :host(:is([variant="dots"], :not([variant]))) span::before,
39
+ :host(:is([variant="dots"], :not([variant]))) span::after {
40
40
  content: "";
41
41
  position: absolute;
42
42
  top: 0;
43
43
  }
44
- :host([variant="dots"]) span::before {
44
+ :host(:is([variant="dots"], :not([variant]))) span::before {
45
45
  left: -0.75em;
46
46
  animation-delay: -0.32s;
47
47
  }
48
- :host([variant="dots"]) span::after {
48
+ :host(:is([variant="dots"], :not([variant]))) span::after {
49
49
  left: 0.75em;
50
50
  }
51
51
  @keyframes eun-loader-fade {
@@ -77,9 +77,9 @@ const base = css `
77
77
  }
78
78
 
79
79
  @media (prefers-reduced-motion: reduce) {
80
- :host([variant="dots"]) span,
81
- :host([variant="dots"]) span::before,
82
- :host([variant="dots"]) span::after {
80
+ :host(:is([variant="dots"], :not([variant]))) span,
81
+ :host(:is([variant="dots"], :not([variant]))) span::before,
82
+ :host(:is([variant="dots"], :not([variant]))) span::after {
83
83
  animation-duration: 2.8s;
84
84
  }
85
85
  :host([variant="spinner"]) span {
@@ -115,7 +115,9 @@ const bar = css `
115
115
  height: 100%;
116
116
  border-radius: inherit;
117
117
  background-color: var(--loader-bar-fill-color, currentColor);
118
- transition: width var(--loader-bar-transition-duration, 0.3s) ease;
118
+ transition: width
119
+ var(--loader-bar-transition-duration, var(--eun-duration-xl, 300ms))
120
+ var(--eun-easing-default, ease);
119
121
  }
120
122
 
121
123
  :host([variant="bar"]) #fill.indeterminate {
@@ -138,7 +140,9 @@ const bar = css `
138
140
  z-index: var(--loader-bar-z-index, 10);
139
141
  }
140
142
 
141
- :host([variant="bar"][sticky][sticky-position="top"]) {
143
+ :host(
144
+ [variant="bar"][sticky]:is([sticky-position="top"], :not([sticky-position]))
145
+ ) {
142
146
  top: var(--loader-bar-sticky-offset, 0);
143
147
  }
144
148
 
@@ -82,7 +82,7 @@ let EunomiaSkeleton = class EunomiaSkeleton extends LitElement {
82
82
  */
83
83
  EunomiaSkeleton.styles = skeletonStyles;
84
84
  __decorate([
85
- property({ reflect: true })
85
+ property({ reflect: true, useDefault: true })
86
86
  ], EunomiaSkeleton.prototype, "variant", void 0);
87
87
  __decorate([
88
88
  property()
@@ -1,34 +1,27 @@
1
- import { LitElement, TemplateResult } from "lit";
2
- import { EunomiaIconName } from "../../content/icon/icon.type.js";
1
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
3
2
  /**
4
3
  * Tag name of the breadcrumb component.
5
4
  */
6
5
  export declare const EunomiaBreadcrumbTagName = "eun-breadcrumb";
7
- /**
8
- * A single step in a `eun-breadcrumb` trail.
9
- */
10
- export type EunomiaBreadcrumbItemData = {
11
- label: string;
12
- href?: string;
13
- icon?: EunomiaIconName;
14
- };
15
6
  /**
16
7
  * A trail of links showing the current page's position within a site's
17
- * hierarchy. The last item always renders as the current, unlinked page
18
- * regardless of whether it has an href. Intermediate items without an
19
- * href render as plain, unlinked text, such as a category that groups
20
- * pages but isn't itself a page.
8
+ * hierarchy. Each direct child is one step, in order, from the root to the
9
+ * current page: a native anchor, or any other element, such as a span,
10
+ * for a step that isn't itself a page. The links stay in the light
11
+ * DOM, so a framework's own link component, such as Next's Link, keeps its
12
+ * client-side navigation and prefetching.
21
13
  *
22
- * There are two ways to declare items, usable together: the data-driven
23
- * items array for the common case, including an optional leading icon per
24
- * step, or slotted breadcrumb item elements when a step needs more than
25
- * plain text and an icon, such as rich content.
14
+ * The breadcrumb wraps each step in its own list item with a separator.
15
+ * The last step is the current page : unless a step already sets
16
+ * aria-current, the breadcrumb marks the last one itself.
26
17
  *
27
- * @slot [default] - Breadcrumb item elements, used instead of or alongside items
28
- * @prop {Array<EunomiaBreadcrumbItemData>} [items=[]] - The trail's steps, in order, from the root to the current page. Each entry may set a label, an href, and an optional leading icon
18
+ * @slot [default] - The steps, one per direct child : an anchor, or a plain element for an unlinked step
29
19
  * @attr {string} [aria-label='Breadcrumb'] - The accessible label for the navigation landmark
20
+ * @cssprop [--breadcrumb-font-size] - Sets the font size of the whole trail, 14px by default
30
21
  * @cssprop [--breadcrumb-link-color] - Sets the color of linked steps
31
22
  * @cssprop [--breadcrumb-link-color-hover] - Sets the color of linked steps on hover or focus
23
+ * @cssprop [--breadcrumb-link-text-decoration] - Sets the text decoration of linked steps, underline by default, such as none
24
+ * @cssprop [--breadcrumb-link-text-decoration-hover] - Sets the text decoration of linked steps on hover or focus, underline by default
32
25
  * @cssprop [--breadcrumb-current-color] - Sets the color of the current page and unlinked steps
33
26
  * @cssprop [--breadcrumb-focus-outline-color] - Sets the color of a linked step's focus outline
34
27
  * @cssprop [--breadcrumb-separator] - Sets the separator between steps, as a quoted CSS string, such as '>'
@@ -37,10 +30,10 @@ export type EunomiaBreadcrumbItemData = {
37
30
  * @cssprop [--breadcrumb-item-max-width] - Sets the maximum width of each step, beyond which its label truncates with an ellipsis
38
31
  * @cssprop [--breadcrumb-gap] - Sets the row gap, used when the trail wraps onto multiple lines
39
32
  * @cssprop [--breadcrumb-transition-duration] - Sets the duration of the link hover color transition
40
- * @fires {NavigationEvent} eunnavigate - Fired before following a step's link, so a client-side router can intercept the navigation. Cancelable
41
33
  * @element eun-breadcrumb
42
34
  */
43
35
  export declare class EunomiaBreadcrumb extends LitElement {
36
+ #private;
44
37
  /**
45
38
  * Styles to import to the component.
46
39
  *
@@ -50,35 +43,28 @@ export declare class EunomiaBreadcrumb extends LitElement {
50
43
  */
51
44
  static readonly styles: import("lit").CSSResult[];
52
45
  /**
53
- * The trail's steps, in order, from the root to the current page. Also
54
- * reflected as a JSON-serialized `items` attribute (Lit's default
55
- * `Array` converter), matching `eun-toggle-group`/`eun-segmented-filter`
56
- * — needed for the API tab's playground, which round-trips components
57
- * through an HTML string and would otherwise drop a JS-only property.
58
- * @default []
46
+ * Manual slot assignment : each step is assigned to the slot of its own
47
+ * list item without the breadcrumb writing a `slot` attribute on the
48
+ * consumer's elements, which a framework would then reset or report as
49
+ * a hydration mismatch.
50
+ * @internal
59
51
  */
60
- items: EunomiaBreadcrumbItemData[];
52
+ static readonly shadowRootOptions: ShadowRootInit;
61
53
  /**
62
- * Re-renders when the slotted `eun-breadcrumb-item`s change, since that
63
- * affects both whether the data-driven trail's own last item still
64
- * counts as the overall trail's last (current) step, and whether the
65
- * items-slot wrapper should stay hidden.
66
- * @private
54
+ * The steps, the host's element children in order.
55
+ * @internal
67
56
  */
68
- private readonly handleItemsSlotChange;
69
- render(): TemplateResult;
57
+ private steps;
70
58
  /**
71
- * Renders a single data-driven step, including its trailing separator —
72
- * skipped only when this is genuinely the trail's last visible step, so
73
- * it doesn't dangle after a step that's actually followed by slotted
74
- * items (see {@link render}).
75
- *
76
- * @param item the step to render.
77
- * @param isLastVisible whether this is the trail's actual last step.
78
- * @returns the rendered template.
79
- * @private
59
+ * One slot per step, in order.
60
+ * @internal
61
+ * @readonly
80
62
  */
81
- private renderItem;
63
+ private readonly stepSlots;
64
+ connectedCallback(): void;
65
+ disconnectedCallback(): void;
66
+ protected updated(changed: PropertyValues): void;
67
+ render(): TemplateResult;
82
68
  }
83
69
  declare global {
84
70
  interface HTMLElementTagNameMap {
@@ -4,32 +4,44 @@ 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
- import { customElement, property } from "lit/decorators.js";
8
- import { html, LitElement, nothing } from "lit";
9
- import { classMap } from "lit/directives/class-map.js";
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
+ if (kind === "m") throw new TypeError("Private method is not writable");
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
15
+ 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");
16
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
+ };
18
+ var _EunomiaBreadcrumb_instances, _EunomiaBreadcrumb_autoCurrent, _EunomiaBreadcrumb_childObserver, _EunomiaBreadcrumb_syncSteps, _EunomiaBreadcrumb_markCurrent, _EunomiaBreadcrumb_setCurrent;
19
+ import { customElement, queryAll, state } from "lit/decorators.js";
20
+ import { html, LitElement } from "lit";
10
21
  import { breadcrumbStyles } from "./breadcrumb.styles.js";
11
- import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
12
22
  /**
13
23
  * Tag name of the breadcrumb component.
14
24
  */
15
25
  export const EunomiaBreadcrumbTagName = "eun-breadcrumb";
16
26
  /**
17
27
  * A trail of links showing the current page's position within a site's
18
- * hierarchy. The last item always renders as the current, unlinked page
19
- * regardless of whether it has an href. Intermediate items without an
20
- * href render as plain, unlinked text, such as a category that groups
21
- * pages but isn't itself a page.
28
+ * hierarchy. Each direct child is one step, in order, from the root to the
29
+ * current page: a native anchor, or any other element, such as a span,
30
+ * for a step that isn't itself a page. The links stay in the light
31
+ * DOM, so a framework's own link component, such as Next's Link, keeps its
32
+ * client-side navigation and prefetching.
22
33
  *
23
- * There are two ways to declare items, usable together: the data-driven
24
- * items array for the common case, including an optional leading icon per
25
- * step, or slotted breadcrumb item elements when a step needs more than
26
- * plain text and an icon, such as rich content.
34
+ * The breadcrumb wraps each step in its own list item with a separator.
35
+ * The last step is the current page : unless a step already sets
36
+ * aria-current, the breadcrumb marks the last one itself.
27
37
  *
28
- * @slot [default] - Breadcrumb item elements, used instead of or alongside items
29
- * @prop {Array<EunomiaBreadcrumbItemData>} [items=[]] - The trail's steps, in order, from the root to the current page. Each entry may set a label, an href, and an optional leading icon
38
+ * @slot [default] - The steps, one per direct child : an anchor, or a plain element for an unlinked step
30
39
  * @attr {string} [aria-label='Breadcrumb'] - The accessible label for the navigation landmark
40
+ * @cssprop [--breadcrumb-font-size] - Sets the font size of the whole trail, 14px by default
31
41
  * @cssprop [--breadcrumb-link-color] - Sets the color of linked steps
32
42
  * @cssprop [--breadcrumb-link-color-hover] - Sets the color of linked steps on hover or focus
43
+ * @cssprop [--breadcrumb-link-text-decoration] - Sets the text decoration of linked steps, underline by default, such as none
44
+ * @cssprop [--breadcrumb-link-text-decoration-hover] - Sets the text decoration of linked steps on hover or focus, underline by default
33
45
  * @cssprop [--breadcrumb-current-color] - Sets the color of the current page and unlinked steps
34
46
  * @cssprop [--breadcrumb-focus-outline-color] - Sets the color of a linked step's focus outline
35
47
  * @cssprop [--breadcrumb-separator] - Sets the separator between steps, as a quoted CSS string, such as '>'
@@ -38,87 +50,95 @@ export const EunomiaBreadcrumbTagName = "eun-breadcrumb";
38
50
  * @cssprop [--breadcrumb-item-max-width] - Sets the maximum width of each step, beyond which its label truncates with an ellipsis
39
51
  * @cssprop [--breadcrumb-gap] - Sets the row gap, used when the trail wraps onto multiple lines
40
52
  * @cssprop [--breadcrumb-transition-duration] - Sets the duration of the link hover color transition
41
- * @fires {NavigationEvent} eunnavigate - Fired before following a step's link, so a client-side router can intercept the navigation. Cancelable
42
53
  * @element eun-breadcrumb
43
54
  */
44
55
  let EunomiaBreadcrumb = class EunomiaBreadcrumb extends LitElement {
45
56
  constructor() {
46
57
  super(...arguments);
58
+ _EunomiaBreadcrumb_instances.add(this);
47
59
  /**
48
- * The trail's steps, in order, from the root to the current page. Also
49
- * reflected as a JSON-serialized `items` attribute (Lit's default
50
- * `Array` converter), matching `eun-toggle-group`/`eun-segmented-filter`
51
- * — needed for the API tab's playground, which round-trips components
52
- * through an HTML string and would otherwise drop a JS-only property.
53
- * @default []
60
+ * The steps, the host's element children in order.
61
+ * @internal
54
62
  */
55
- this.items = [];
63
+ this.steps = [];
56
64
  /**
57
- * Re-renders when the slotted `eun-breadcrumb-item`s change, since that
58
- * affects both whether the data-driven trail's own last item still
59
- * counts as the overall trail's last (current) step, and whether the
60
- * items-slot wrapper should stay hidden.
61
- * @private
65
+ * The step this breadcrumb marked as the current page itself, so the
66
+ * mark can be removed once it stops being the last step.
67
+ * @internal
62
68
  */
63
- this.handleItemsSlotChange = () => {
64
- this.requestUpdate();
65
- };
69
+ _EunomiaBreadcrumb_autoCurrent.set(this, void 0);
70
+ /**
71
+ * Keeps {@link steps} in sync with the host's children. Created on
72
+ * connection rather than as a field, so the class stays constructible
73
+ * where `MutationObserver` doesn't exist, such as during SSR.
74
+ * @internal
75
+ */
76
+ _EunomiaBreadcrumb_childObserver.set(this, void 0);
77
+ }
78
+ connectedCallback() {
79
+ super.connectedCallback();
80
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_instances, "m", _EunomiaBreadcrumb_syncSteps).call(this);
81
+ __classPrivateFieldSet(this, _EunomiaBreadcrumb_childObserver, __classPrivateFieldGet(this, _EunomiaBreadcrumb_childObserver, "f") ?? new MutationObserver(() => __classPrivateFieldGet(this, _EunomiaBreadcrumb_instances, "m", _EunomiaBreadcrumb_syncSteps).call(this)), "f");
82
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_childObserver, "f").observe(this, { childList: true });
83
+ }
84
+ disconnectedCallback() {
85
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_childObserver, "f")?.disconnect();
86
+ super.disconnectedCallback();
87
+ }
88
+ updated(changed) {
89
+ super.updated(changed);
90
+ this.stepSlots.forEach((slot, index) => {
91
+ const step = this.steps[index];
92
+ if (step && slot.assignedElements()[0] !== step) {
93
+ slot.assign(step);
94
+ }
95
+ });
96
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_instances, "m", _EunomiaBreadcrumb_markCurrent).call(this);
66
97
  }
67
98
  render() {
68
- // Whichever step ends up last overall — a slotted `eun-breadcrumb-item`
69
- // if there's one, otherwise the last data-driven item — is the trail's
70
- // real current step. `this.children` (not a queried `<slot>`) is what
71
- // makes this available synchronously on the very first render.
72
- const hasSlottedItems = this.children.length > 0;
73
- const lastIndex = this.items.length - 1;
74
- // `role="list"` below is deliberate, not redundant : Safari drops the
75
- // implicit "list" role once `list-style: none` is applied (see #list
76
- // in the stylesheet), silently skipping this list for VoiceOver users
77
- // unless it's restored explicitly.
99
+ const lastIndex = this.steps.length - 1;
78
100
  /* eslint-disable lit-a11y/no-redundant-role */
79
101
  return html `
80
102
  <nav aria-label=${this.ariaLabel ?? "Breadcrumb"}>
81
103
  <ol id="list" role="list">
82
- ${this.items.map((item, index) => this.renderItem(item, !hasSlottedItems && index === lastIndex))}
83
- <li id="items-slot" class=${classMap({ hidden: !hasSlottedItems })}>
84
- <slot @slotchange=${this.handleItemsSlotChange}></slot>
85
- </li>
104
+ ${this.steps.map((_, index) => html `<li>
105
+ <slot></slot>${index < lastIndex
106
+ ? html `<span class="separator" aria-hidden="true"></span>`
107
+ : ""}
108
+ </li>`)}
86
109
  </ol>
87
110
  </nav>
88
111
  `;
89
112
  /* eslint-enable lit-a11y/no-redundant-role */
90
113
  }
91
- /**
92
- * Renders a single data-driven step, including its trailing separator —
93
- * skipped only when this is genuinely the trail's last visible step, so
94
- * it doesn't dangle after a step that's actually followed by slotted
95
- * items (see {@link render}).
96
- *
97
- * @param item the step to render.
98
- * @param isLastVisible whether this is the trail's actual last step.
99
- * @returns the rendered template.
100
- * @private
101
- */
102
- renderItem(item, isLastVisible) {
103
- const icon = item.icon
104
- ? html `<eun-icon name=${item.icon} size="14"></eun-icon>`
105
- : nothing;
106
- if (isLastVisible) {
107
- return html `<li>
108
- <span aria-current="page">${icon}${item.label}</span>
109
- </li>`;
110
- }
111
- const separator = html `<span class="separator" aria-hidden="true"></span>`;
112
- if (item.href) {
113
- return html `<li>
114
- <a
115
- href=${item.href}
116
- @click=${(event) => handleLinkNavigation(this, event, item.href)}
117
- >${icon}${item.label}</a
118
- >${separator}
119
- </li>`;
120
- }
121
- return html `<li><span>${icon}${item.label}</span>${separator}</li>`;
114
+ };
115
+ _EunomiaBreadcrumb_autoCurrent = new WeakMap();
116
+ _EunomiaBreadcrumb_childObserver = new WeakMap();
117
+ _EunomiaBreadcrumb_instances = new WeakSet();
118
+ _EunomiaBreadcrumb_syncSteps = function _EunomiaBreadcrumb_syncSteps() {
119
+ this.steps = Array.from(this.children);
120
+ };
121
+ _EunomiaBreadcrumb_markCurrent = function _EunomiaBreadcrumb_markCurrent() {
122
+ const last = this.steps[this.steps.length - 1];
123
+ if (__classPrivateFieldGet(this, _EunomiaBreadcrumb_autoCurrent, "f") && __classPrivateFieldGet(this, _EunomiaBreadcrumb_autoCurrent, "f") !== last) {
124
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_instances, "m", _EunomiaBreadcrumb_setCurrent).call(this, __classPrivateFieldGet(this, _EunomiaBreadcrumb_autoCurrent, "f"), false);
125
+ __classPrivateFieldSet(this, _EunomiaBreadcrumb_autoCurrent, undefined, "f");
126
+ }
127
+ if (!last || last === __classPrivateFieldGet(this, _EunomiaBreadcrumb_autoCurrent, "f")) {
128
+ return;
129
+ }
130
+ const hasCurrent = this.steps.some((step) => step.getAttribute("aria-current") === "page");
131
+ if (!hasCurrent) {
132
+ __classPrivateFieldGet(this, _EunomiaBreadcrumb_instances, "m", _EunomiaBreadcrumb_setCurrent).call(this, last, true);
133
+ __classPrivateFieldSet(this, _EunomiaBreadcrumb_autoCurrent, last, "f");
134
+ }
135
+ };
136
+ _EunomiaBreadcrumb_setCurrent = function _EunomiaBreadcrumb_setCurrent(step, current) {
137
+ if (current) {
138
+ step.setAttribute("aria-current", "page");
139
+ }
140
+ else {
141
+ step.removeAttribute("aria-current");
122
142
  }
123
143
  };
124
144
  /**
@@ -129,9 +149,23 @@ let EunomiaBreadcrumb = class EunomiaBreadcrumb extends LitElement {
129
149
  * @readonly
130
150
  */
131
151
  EunomiaBreadcrumb.styles = [breadcrumbStyles];
152
+ /**
153
+ * Manual slot assignment : each step is assigned to the slot of its own
154
+ * list item without the breadcrumb writing a `slot` attribute on the
155
+ * consumer's elements, which a framework would then reset or report as
156
+ * a hydration mismatch.
157
+ * @internal
158
+ */
159
+ EunomiaBreadcrumb.shadowRootOptions = {
160
+ ...LitElement.shadowRootOptions,
161
+ slotAssignment: "manual",
162
+ };
163
+ __decorate([
164
+ state()
165
+ ], EunomiaBreadcrumb.prototype, "steps", void 0);
132
166
  __decorate([
133
- property({ type: Array, reflect: true })
134
- ], EunomiaBreadcrumb.prototype, "items", void 0);
167
+ queryAll("#list slot")
168
+ ], EunomiaBreadcrumb.prototype, "stepSlots", void 0);
135
169
  EunomiaBreadcrumb = __decorate([
136
170
  customElement(EunomiaBreadcrumbTagName)
137
171
  ], EunomiaBreadcrumb);
@@ -2,8 +2,11 @@
2
2
  * Base style for the breadcrumb component.
3
3
  *
4
4
  * Custom css variables:
5
+ * [--breadcrumb-font-size] - Set a custom font size for the whole trail
5
6
  * [--breadcrumb-link-color] - Set a custom color for linked steps
6
7
  * [--breadcrumb-link-color-hover] - Set a custom color for linked steps on hover/focus
8
+ * [--breadcrumb-link-text-decoration] - Set a custom text decoration for linked steps, underline by default
9
+ * [--breadcrumb-link-text-decoration-hover] - Set a custom text decoration for linked steps on hover/focus, underline by default
7
10
  * [--breadcrumb-current-color] - Set a custom color for the current page and unlinked steps
8
11
  * [--breadcrumb-focus-outline-color] - Set a custom color for a linked step's focus outline
9
12
  * [--breadcrumb-separator] - Set a custom separator between steps ; a quoted CSS string, e.g. '>'
@@ -3,8 +3,11 @@ import { css } from "lit";
3
3
  * Base style for the breadcrumb component.
4
4
  *
5
5
  * Custom css variables:
6
+ * [--breadcrumb-font-size] - Set a custom font size for the whole trail
6
7
  * [--breadcrumb-link-color] - Set a custom color for linked steps
7
8
  * [--breadcrumb-link-color-hover] - Set a custom color for linked steps on hover/focus
9
+ * [--breadcrumb-link-text-decoration] - Set a custom text decoration for linked steps, underline by default
10
+ * [--breadcrumb-link-text-decoration-hover] - Set a custom text decoration for linked steps on hover/focus, underline by default
8
11
  * [--breadcrumb-current-color] - Set a custom color for the current page and unlinked steps
9
12
  * [--breadcrumb-focus-outline-color] - Set a custom color for a linked step's focus outline
10
13
  * [--breadcrumb-separator] - Set a custom separator between steps ; a quoted CSS string, e.g. '>'
@@ -18,7 +21,7 @@ export const breadcrumbStyles = css `
18
21
  :host {
19
22
  display: block;
20
23
  font-family: var(--eun-font-family, "Mulish", sans-serif);
21
- font-size: var(--eun-font-size-s, 14px);
24
+ font-size: var(--breadcrumb-font-size, var(--eun-font-size-s, 14px));
22
25
  }
23
26
  #list {
24
27
  display: flex;
@@ -32,54 +35,47 @@ export const breadcrumbStyles = css `
32
35
  #list li {
33
36
  display: inline-flex;
34
37
  align-items: center;
35
- max-width: var(--breadcrumb-item-max-width, 240px);
36
- }
37
- #items-slot {
38
- display: contents;
39
- }
40
- #items-slot.hidden {
41
- display: none;
38
+ min-width: 0;
42
39
  }
43
- #list li > a,
44
- #list li > span {
40
+ ::slotted(*) {
41
+ max-width: var(--breadcrumb-item-max-width, 240px);
45
42
  overflow: hidden;
46
43
  text-overflow: ellipsis;
47
44
  white-space: nowrap;
45
+ color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
46
+ font-weight: var(--eun-font-weight-m, 500);
48
47
  }
49
- #list li eun-icon {
50
- display: inline-flex;
51
- vertical-align: middle;
52
- margin-inline-end: var(--eun-space-xxs, 1.6px);
53
- margin-block-end: 3px;
54
- }
55
- #list li > a {
48
+ ::slotted(a[href]) {
56
49
  color: var(--breadcrumb-link-color, var(--eun-color-primary-500, #3d6fff));
57
- text-decoration: none;
50
+ font-weight: inherit;
51
+ text-decoration: var(--breadcrumb-link-text-decoration, underline);
58
52
  border-radius: var(--eun-border-radius-s, 5px);
59
53
  outline: 2px solid transparent;
60
54
  transition:
61
- color var(--breadcrumb-transition-duration, 0.2s) ease-out,
62
- outline 0.2s ease-out;
55
+ color var(--breadcrumb-transition-duration, var(--eun-duration-m, 200ms))
56
+ var(--eun-easing-out, ease-out),
57
+ outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out);
63
58
  }
64
- #list li > a:hover,
65
- #list li > a:focus-visible {
59
+ ::slotted(a[href]:hover),
60
+ ::slotted(a[href]:focus-visible) {
66
61
  color: var(
67
62
  --breadcrumb-link-color-hover,
68
63
  var(--eun-color-primary-700, #3662e0)
69
64
  );
70
- text-decoration: underline;
65
+ text-decoration: var(--breadcrumb-link-text-decoration-hover, underline);
71
66
  }
72
- #list li > a:focus-visible {
73
- text-decoration: none;
67
+ ::slotted(a[href]:focus-visible) {
74
68
  outline-color: var(
75
69
  --breadcrumb-focus-outline-color,
76
70
  var(--eun-color-primary-500, #3d6fff)
77
71
  );
78
72
  outline-offset: 2px;
79
73
  }
80
- #list li > span {
74
+ ::slotted(a[aria-current="page"]),
75
+ ::slotted(a[aria-current="page"]:hover) {
81
76
  color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
82
77
  font-weight: var(--eun-font-weight-m, 500);
78
+ text-decoration: none;
83
79
  }
84
80
  #list li > .separator {
85
81
  margin-inline: var(--breadcrumb-separator-gap, var(--eun-space-s, 8px));