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

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 (327) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/components/chunks/{chunk-KDN4O5W2.js → chunk-32L2QYWQ.js} +5 -5
  3. package/dist/cdn/components/chunks/{chunk-JYIIWN2P.js → chunk-36KLGY6U.js} +8 -8
  4. package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
  5. package/dist/cdn/components/chunks/{chunk-2Y2EU2CI.js → chunk-3UUZM7X2.js} +1 -1
  6. package/dist/cdn/components/chunks/chunk-55PUDL7D.js +109 -0
  7. package/dist/cdn/components/chunks/chunk-5LA5DQMP.js +1 -0
  8. package/dist/cdn/components/chunks/chunk-5LXGJVJR.js +1 -0
  9. package/dist/cdn/components/chunks/{chunk-ZKZV2YG5.js → chunk-5XPOGBPL.js} +1 -1
  10. package/dist/cdn/components/chunks/{chunk-LMVW522V.js → chunk-62RLISRD.js} +1 -1
  11. package/dist/cdn/components/chunks/{chunk-PMPSJG5V.js → chunk-6FYW5TQU.js} +3 -3
  12. package/dist/cdn/components/chunks/chunk-6TIEBY34.js +1 -0
  13. package/dist/cdn/components/chunks/{chunk-MOMYII3P.js → chunk-AH2SKZ7T.js} +14 -1
  14. package/dist/cdn/components/chunks/chunk-AK2DIJX7.js +1 -0
  15. package/dist/cdn/components/chunks/chunk-B5XMGWM7.js +10 -0
  16. package/dist/cdn/components/chunks/chunk-GVS6IUKC.js +1 -0
  17. package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
  18. package/dist/cdn/components/chunks/{chunk-UDVB4LAE.js → chunk-I4ERDXSM.js} +5 -3
  19. package/dist/cdn/components/chunks/{chunk-QZ5SHR3I.js → chunk-J3SZBXM6.js} +2 -2
  20. package/dist/cdn/components/chunks/chunk-JAGZL7JH.js +1 -0
  21. package/dist/cdn/components/chunks/{chunk-VYFR364B.js → chunk-LD35BFNK.js} +18 -17
  22. package/dist/cdn/components/chunks/{chunk-XDPRWUKN.js → chunk-MQQJ6DID.js} +1 -1
  23. package/dist/cdn/components/chunks/chunk-P6LGU3FT.js +1 -0
  24. package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
  25. package/dist/cdn/components/chunks/{chunk-UYZR4JXZ.js → chunk-QSZO4GIH.js} +45 -9
  26. package/dist/cdn/components/chunks/{chunk-7KKWYPHY.js → chunk-QXQ25SQS.js} +21 -19
  27. package/dist/cdn/components/chunks/{chunk-SZYEBMG6.js → chunk-QYB6Z6FG.js} +5 -5
  28. package/dist/cdn/components/chunks/{chunk-RIFF2D2F.js → chunk-RGC3I6MK.js} +1 -1
  29. package/dist/cdn/components/chunks/{chunk-L2ADCEN7.js → chunk-SVGWCKWT.js} +1 -1
  30. package/dist/cdn/components/chunks/{chunk-N6ZW5CDN.js → chunk-TCSB2MLU.js} +1 -1
  31. package/dist/cdn/components/chunks/{chunk-MQQ4BGVJ.js → chunk-TFTRCIIK.js} +7 -6
  32. package/dist/cdn/components/chunks/chunk-TLBXTBMM.js +46 -0
  33. package/dist/cdn/components/chunks/chunk-UVHVQRPT.js +1 -0
  34. package/dist/cdn/components/chunks/chunk-WIUERJII.js +1 -0
  35. package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
  36. package/dist/cdn/components/eun-alert.js +13 -6
  37. package/dist/cdn/components/eun-animate.js +6 -6
  38. package/dist/cdn/components/eun-badge.js +1 -1
  39. package/dist/cdn/components/eun-button.js +1 -1
  40. package/dist/cdn/components/eun-calendar.js +2 -2
  41. package/dist/cdn/components/eun-card.js +4 -4
  42. package/dist/cdn/components/eun-carousel.js +26 -22
  43. package/dist/cdn/components/eun-check-card.js +1 -1
  44. package/dist/cdn/components/eun-checkbox-list.js +11 -8
  45. package/dist/cdn/components/eun-checkbox.js +1 -1
  46. package/dist/cdn/components/eun-chip.js +17 -11
  47. package/dist/cdn/components/eun-collapse.js +1 -1
  48. package/dist/cdn/components/eun-color-picker.js +74 -69
  49. package/dist/cdn/components/eun-counter.js +16 -14
  50. package/dist/cdn/components/eun-date-picker.js +67 -63
  51. package/dist/cdn/components/eun-description-list.js +2 -2
  52. package/dist/cdn/components/eun-divider.js +3 -3
  53. package/dist/cdn/components/eun-drawer.js +21 -22
  54. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  55. package/dist/cdn/components/eun-dropdown-item.js +3 -3
  56. package/dist/cdn/components/eun-fab.js +2 -2
  57. package/dist/cdn/components/eun-icon.js +1 -1
  58. package/dist/cdn/components/eun-image-card.js +1 -1
  59. package/dist/cdn/components/eun-image-carousel.js +10 -10
  60. package/dist/cdn/components/eun-infinite-list.js +1 -1
  61. package/dist/cdn/components/eun-input-file.js +21 -21
  62. package/dist/cdn/components/eun-input-phone.js +16 -12
  63. package/dist/cdn/components/eun-input.js +1 -1
  64. package/dist/cdn/components/eun-link.js +59 -13
  65. package/dist/cdn/components/eun-loader.js +1 -1
  66. package/dist/cdn/components/eun-modal.js +33 -23
  67. package/dist/cdn/components/eun-pagination.js +16 -16
  68. package/dist/cdn/components/eun-password-strength.js +14 -10
  69. package/dist/cdn/components/eun-radio-card.js +1 -1
  70. package/dist/cdn/components/eun-radio-list.js +11 -8
  71. package/dist/cdn/components/eun-radio.js +1 -1
  72. package/dist/cdn/components/eun-rating.js +276 -0
  73. package/dist/cdn/components/eun-scheduler-event-editor.js +11 -11
  74. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  75. package/dist/cdn/components/eun-scheduler.js +28 -28
  76. package/dist/cdn/components/eun-search.js +36 -32
  77. package/dist/cdn/components/eun-select.js +27 -27
  78. package/dist/cdn/components/eun-sidebar.js +73 -26
  79. package/dist/cdn/components/eun-skeleton.js +1 -1
  80. package/dist/cdn/components/eun-slider.js +3 -3
  81. package/dist/cdn/components/eun-sliding-card.js +1 -1
  82. package/dist/cdn/components/eun-step.js +5 -4
  83. package/dist/cdn/components/eun-stepper.js +30 -30
  84. package/dist/cdn/components/eun-switch.js +1 -1
  85. package/dist/cdn/components/eun-tab-group.js +4 -4
  86. package/dist/cdn/components/eun-tab-panel.js +1 -1
  87. package/dist/cdn/components/eun-tab.js +1 -1
  88. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  89. package/dist/cdn/components/eun-table.js +2 -2
  90. package/dist/cdn/components/eun-tag.js +3 -3
  91. package/dist/cdn/components/eun-textarea.js +36 -28
  92. package/dist/cdn/components/eun-time-picker.js +31 -28
  93. package/dist/cdn/components/eun-toast.js +24 -15
  94. package/dist/cdn/components/eun-toggle-group.js +75 -37
  95. package/dist/cdn/components/eun-toggle-item.js +9 -9
  96. package/dist/cdn/components/eun-toggle.js +2 -2
  97. package/dist/cdn/components/eun-toolbar.js +22 -22
  98. package/dist/cdn/components/eun-tooltip.js +6 -6
  99. package/dist/cdn/styles/eunomia-themes.css +1 -1
  100. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
  101. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
  102. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  103. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
  104. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  105. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
  106. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  107. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
  108. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  109. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
  110. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  111. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
  112. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  113. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
  114. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  115. package/dist/components/action/button/button.d.ts +4 -3
  116. package/dist/components/action/button/button.js +6 -9
  117. package/dist/components/action/button/button.styles.js +13 -8
  118. package/dist/components/action/dropdown-button/dropdown-button.d.ts +4 -6
  119. package/dist/components/action/dropdown-button/dropdown-button.js +16 -13
  120. package/dist/components/action/dropdown-button/dropdown-item.d.ts +10 -2
  121. package/dist/components/action/dropdown-button/dropdown-item.js +24 -9
  122. package/dist/components/action/link/link.d.ts +10 -1
  123. package/dist/components/action/link/link.js +13 -1
  124. package/dist/components/action/link/link.styles.js +50 -3
  125. package/dist/components/action/toggle/toggle-group.d.ts +12 -2
  126. package/dist/components/action/toggle/toggle-group.js +18 -3
  127. package/dist/components/action/toggle/toggle-group.styles.js +58 -20
  128. package/dist/components/action/toggle/toggle-item.js +1 -3
  129. package/dist/components/action/toggle/toggle-item.styles.js +7 -7
  130. package/dist/components/action/toggle/toggle.js +1 -1
  131. package/dist/components/alert/alert/alert.d.ts +9 -7
  132. package/dist/components/alert/alert/alert.js +11 -14
  133. package/dist/components/alert/alert/alert.styles.js +9 -2
  134. package/dist/components/alert/drawer/drawer.d.ts +30 -5
  135. package/dist/components/alert/drawer/drawer.js +48 -13
  136. package/dist/components/alert/drawer/drawer.styles.js +7 -7
  137. package/dist/components/alert/modal/modal.d.ts +35 -10
  138. package/dist/components/alert/modal/modal.js +55 -28
  139. package/dist/components/alert/modal/modal.styles.js +17 -6
  140. package/dist/components/alert/toast/toast.d.ts +7 -5
  141. package/dist/components/alert/toast/toast.js +12 -15
  142. package/dist/components/alert/toast/toast.styles.js +18 -9
  143. package/dist/components/content/badge/badge.js +2 -2
  144. package/dist/components/content/card/card.js +1 -1
  145. package/dist/components/content/card/card.styles.js +2 -2
  146. package/dist/components/content/chip/chip.d.ts +4 -4
  147. package/dist/components/content/chip/chip.js +11 -10
  148. package/dist/components/content/chip/chip.styles.js +9 -3
  149. package/dist/components/content/description-list/description-list.js +3 -3
  150. package/dist/components/content/icon/icon.d.ts +3 -0
  151. package/dist/components/content/icon/icon.js +3 -0
  152. package/dist/components/content/icon/icon.style.d.ts +2 -0
  153. package/dist/components/content/icon/icon.style.js +4 -0
  154. package/dist/components/content/image-carousel/image-carousel.d.ts +12 -12
  155. package/dist/components/content/image-carousel/image-carousel.js +29 -28
  156. package/dist/components/content/password-strength/password-strength.d.ts +21 -6
  157. package/dist/components/content/password-strength/password-strength.js +37 -16
  158. package/dist/components/content/password-strength/password-strength.styles.js +4 -0
  159. package/dist/components/content/tag/tag.js +2 -2
  160. package/dist/components/content/tooltip/tooltip.d.ts +16 -9
  161. package/dist/components/content/tooltip/tooltip.js +31 -15
  162. package/dist/components/content/tooltip/tooltip.styles.js +1 -1
  163. package/dist/components/form/checkbox/check-card.d.ts +1 -0
  164. package/dist/components/form/checkbox/check-card.js +1 -0
  165. package/dist/components/form/checkbox/checkbox-list.d.ts +17 -0
  166. package/dist/components/form/checkbox/checkbox-list.js +39 -10
  167. package/dist/components/form/checkbox/checkbox.d.ts +1 -0
  168. package/dist/components/form/checkbox/checkbox.js +3 -1
  169. package/dist/components/form/checkbox/checkbox.styles.js +3 -2
  170. package/dist/components/form/color-picker/color-picker.d.ts +47 -28
  171. package/dist/components/form/color-picker/color-picker.js +73 -51
  172. package/dist/components/form/color-picker/color-picker.styles.js +14 -1
  173. package/dist/components/form/counter/counter.d.ts +24 -18
  174. package/dist/components/form/counter/counter.js +61 -61
  175. package/dist/components/form/counter/counter.styles.js +6 -4
  176. package/dist/components/form/date-picker/date-picker.d.ts +33 -7
  177. package/dist/components/form/date-picker/date-picker.js +82 -56
  178. package/dist/components/form/date-picker/date-picker.styles.js +9 -6
  179. package/dist/components/form/input/input.d.ts +43 -39
  180. package/dist/components/form/input/input.js +91 -110
  181. package/dist/components/form/input-file/input-file.d.ts +26 -13
  182. package/dist/components/form/input-file/input-file.js +35 -35
  183. package/dist/components/form/input-file/input-file.styles.js +4 -4
  184. package/dist/components/form/input-phone/input-phone.d.ts +28 -5
  185. package/dist/components/form/input-phone/input-phone.js +47 -13
  186. package/dist/components/form/input-phone/input-phone.styles.js +6 -3
  187. package/dist/components/form/radio/radio-card.d.ts +1 -0
  188. package/dist/components/form/radio/radio-card.js +1 -0
  189. package/dist/components/form/radio/radio-list.d.ts +23 -7
  190. package/dist/components/form/radio/radio-list.js +47 -22
  191. package/dist/components/form/radio/radio.d.ts +1 -0
  192. package/dist/components/form/radio/radio.js +1 -0
  193. package/dist/components/form/rating/rating.d.ts +349 -0
  194. package/dist/components/form/rating/rating.js +665 -0
  195. package/dist/components/form/rating/rating.styles.d.ts +1 -0
  196. package/dist/components/form/rating/rating.styles.js +213 -0
  197. package/dist/components/form/search/search.d.ts +72 -18
  198. package/dist/components/form/search/search.js +135 -72
  199. package/dist/components/form/search/search.styles.js +2 -0
  200. package/dist/components/form/select/select.d.ts +29 -10
  201. package/dist/components/form/select/select.js +65 -41
  202. package/dist/components/form/shared-styles/field.styles.js +45 -8
  203. package/dist/components/form/shared-styles/listbox.styles.js +15 -1
  204. package/dist/components/form/slider/slider.d.ts +7 -8
  205. package/dist/components/form/slider/slider.js +9 -12
  206. package/dist/components/form/switch/switch.d.ts +1 -0
  207. package/dist/components/form/switch/switch.js +1 -0
  208. package/dist/components/form/textarea/textarea.d.ts +90 -23
  209. package/dist/components/form/textarea/textarea.js +194 -44
  210. package/dist/components/form/textarea/textarea.styles.js +3 -0
  211. package/dist/components/form/time-picker/time-picker-columns.d.ts +2 -2
  212. package/dist/components/form/time-picker/time-picker-columns.js +8 -8
  213. package/dist/components/form/time-picker/time-picker.d.ts +30 -9
  214. package/dist/components/form/time-picker/time-picker.js +66 -40
  215. package/dist/components/form/time-picker/time-picker.styles.js +7 -5
  216. package/dist/components/layout/animate/animate.js +3 -2
  217. package/dist/components/layout/animate/animate.styles.js +2 -2
  218. package/dist/components/layout/divider/divider.js +1 -1
  219. package/dist/components/layout/divider/divider.styles.js +1 -1
  220. package/dist/components/loader/loader/loader.js +2 -2
  221. package/dist/components/loader/loader/loader.styles.js +14 -12
  222. package/dist/components/loader/skeleton/skeleton.js +1 -1
  223. package/dist/components/navigation/carousel/carousel.d.ts +32 -9
  224. package/dist/components/navigation/carousel/carousel.js +88 -41
  225. package/dist/components/navigation/carousel/carousel.styles.js +10 -6
  226. package/dist/components/navigation/pagination/pagination.d.ts +23 -21
  227. package/dist/components/navigation/pagination/pagination.js +30 -53
  228. package/dist/components/navigation/sidebar/sidebar.d.ts +113 -65
  229. package/dist/components/navigation/sidebar/sidebar.js +161 -118
  230. package/dist/components/navigation/sidebar/sidebar.styles.d.ts +1 -1
  231. package/dist/components/navigation/sidebar/sidebar.styles.js +74 -24
  232. package/dist/components/navigation/stepper/step.js +9 -8
  233. package/dist/components/navigation/stepper/stepper.d.ts +1 -3
  234. package/dist/components/navigation/stepper/stepper.js +15 -26
  235. package/dist/components/navigation/tabs/tab-group/tab-group.js +2 -2
  236. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +2 -2
  237. package/dist/components/navigation/toolbar/toolbar.d.ts +23 -13
  238. package/dist/components/navigation/toolbar/toolbar.js +28 -35
  239. package/dist/components/navigation/toolbar/toolbar.styles.js +18 -17
  240. package/dist/events/select.event.d.ts +3 -2
  241. package/dist/events/select.event.js +2 -1
  242. package/dist/features/scheduler/calendar/calendar.js +1 -1
  243. package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
  244. package/dist/features/scheduler/scheduler/scheduler.js +15 -24
  245. package/dist/features/scheduler/scheduler-event/scheduler-event.js +3 -3
  246. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +1 -1
  247. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +6 -4
  248. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +7 -8
  249. package/dist/features/table/table/table.js +1 -1
  250. package/dist/features/table/table-action-bar/table-action-bar.js +2 -2
  251. package/dist/i18n/en.d.ts +68 -0
  252. package/dist/i18n/en.js +68 -0
  253. package/dist/i18n/fr.js +68 -2
  254. package/dist/index.d.ts +3 -0
  255. package/dist/index.js +1 -0
  256. package/dist/mixins/button.mixin.d.ts +1 -1
  257. package/dist/mixins/button.mixin.js +9 -6
  258. package/dist/mixins/check.mixin.js +11 -10
  259. package/dist/mixins/dialog-surface.mixin.d.ts +8 -0
  260. package/dist/mixins/disabled.mixin.d.ts +5 -0
  261. package/dist/mixins/disabled.mixin.js +21 -1
  262. package/dist/mixins/editable.mixin.js +28 -5
  263. package/dist/mixins/field-appearance.mixin.js +3 -2
  264. package/dist/mixins/field-size.mixin.d.ts +19 -0
  265. package/dist/mixins/field-size.mixin.js +33 -0
  266. package/dist/mixins/form.mixin.d.ts +4 -0
  267. package/dist/mixins/form.mixin.js +87 -13
  268. package/dist/mixins/localizable.mixin.d.ts +1 -1
  269. package/dist/mixins/localizable.mixin.js +1 -1
  270. package/dist/mixins/radio.mixin.js +11 -10
  271. package/dist/mixins/readonly.mixin.d.ts +2 -1
  272. package/dist/mixins/readonly.mixin.js +10 -3
  273. package/dist/mixins/rounded.mixin.d.ts +18 -0
  274. package/dist/mixins/rounded.mixin.js +32 -0
  275. package/dist/ssr/alert-ssr.css +187 -0
  276. package/dist/ssr/badge-ssr.css +67 -0
  277. package/dist/ssr/breadcrumb-ssr.css +41 -0
  278. package/dist/ssr/button-ssr.css +5 -5
  279. package/dist/ssr/card-ssr.css +27 -15
  280. package/dist/ssr/carousel-ssr.css +247 -0
  281. package/dist/ssr/checkbox-ssr.css +67 -0
  282. package/dist/ssr/chip-ssr.css +250 -0
  283. package/dist/ssr/collapse-ssr.css +180 -0
  284. package/dist/ssr/field-ssr.css +202 -0
  285. package/dist/ssr/icon-ssr.css +266 -0
  286. package/dist/ssr/image-carousel-ssr.css +34 -0
  287. package/dist/ssr/links-ssr.css +44 -1
  288. package/dist/ssr/pagination-ssr.css +4 -0
  289. package/dist/ssr/rating-ssr.css +254 -0
  290. package/dist/ssr/sidebar-ssr.css +102 -3
  291. package/dist/ssr/skeleton-ssr.css +63 -0
  292. package/dist/ssr/tabs-ssr.css +129 -0
  293. package/dist/ssr/toggle-group-ssr.css +233 -0
  294. package/dist/ssr/toolbar-ssr.css +81 -2
  295. package/dist/types/variant.type.d.ts +4 -1
  296. package/dist/utils/boolean.utils.d.ts +14 -0
  297. package/dist/utils/boolean.utils.js +20 -0
  298. package/dist/utils/dropdown-menu.utils.d.ts +1 -1
  299. package/dist/utils/focusable-elements.utils.d.ts +12 -0
  300. package/dist/utils/focusable-elements.utils.js +26 -0
  301. package/dist/utils/implicit-submission.utils.d.ts +18 -0
  302. package/dist/utils/implicit-submission.utils.js +79 -0
  303. package/dist/utils/input-modality.utils.d.ts +13 -0
  304. package/dist/utils/input-modality.utils.js +34 -0
  305. package/dist/utils/listbox-options.utils.d.ts +11 -0
  306. package/dist/utils/listbox-options.utils.js +41 -3
  307. package/dist/utils/theme-generator.utils.d.ts +8 -2
  308. package/dist/utils/theme-generator.utils.js +30 -9
  309. package/package.json +26 -7
  310. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
  311. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
  312. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
  313. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
  314. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
  315. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
  316. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
  317. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
  318. package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +0 -1
  319. package/dist/cdn/components/chunks/chunk-6VK6SHCG.js +0 -1
  320. package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +0 -1
  321. package/dist/cdn/components/chunks/chunk-BQFJR2UP.js +0 -110
  322. package/dist/cdn/components/chunks/chunk-G5SBDQQ3.js +0 -1
  323. package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +0 -1
  324. package/dist/cdn/components/chunks/chunk-PE4DAXHQ.js +0 -3
  325. package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +0 -1
  326. package/dist/cdn/components/chunks/chunk-UDOZRIJZ.js +0 -1
  327. package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +0 -38
@@ -21,6 +21,7 @@ import { ChangeEvent } from "../events/change.event.js";
21
21
  export const ERROR_DISPLAY_PROPERTIES = [
22
22
  "valid",
23
23
  "hideError",
24
+ "invalid",
24
25
  "disabled",
25
26
  "touched",
26
27
  "dirty",
@@ -46,6 +47,13 @@ export const FormMixin = (superClass) => {
46
47
  * @default false
47
48
  */
48
49
  this.hideError = false;
50
+ /**
51
+ * When true, the field is shown as invalid (error styling and
52
+ * `aria-invalid`) without any message, for an error whose message is
53
+ * displayed elsewhere. Does not change the field's validity.
54
+ * @default false
55
+ */
56
+ this.invalid = false;
49
57
  /**
50
58
  * Whether this field behaves like a checkbox/radio (checkable).
51
59
  * @default false
@@ -99,6 +107,25 @@ export const FormMixin = (superClass) => {
99
107
  * @default false
100
108
  */
101
109
  this.controlled = false;
110
+ /**
111
+ * Whether the hint or error is exposed through the host's own
112
+ * `aria-description`, for a component whose host is the control itself
113
+ * (a checkbox, a radio, a switch). The rendered message is then hidden
114
+ * from assistive technology, so it isn't read again as part of the
115
+ * control's name, which is computed from the host's content.
116
+ * @default false
117
+ * @internal
118
+ */
119
+ this.descriptionOnHost = false;
120
+ /**
121
+ * Whether a change alone reveals the error, without waiting for focus
122
+ * to leave the field, for a field whose every change is a complete
123
+ * choice (a checkbox, a radio, a select) rather than an entry still
124
+ * being typed.
125
+ * @default false
126
+ * @internal
127
+ */
128
+ this.errorOnChange = false;
102
129
  /**
103
130
  * Marks the field dirty on its own `eunchange` — dispatched only from a
104
131
  * genuine user-interaction handler, never from the `value`/`checked`
@@ -130,16 +157,29 @@ export const FormMixin = (superClass) => {
130
157
  }
131
158
  }
132
159
  /**
133
- * Whether the field currently shows its error : invalid, not disabled,
134
- * not `hideError`, and either interacted with (`touched`, `dirty`),
135
- * checked by its form, or given an external `error`. A required field
136
- * left empty stays quiet until then.
160
+ * Whether the field currently shows its error state (styling and
161
+ * `aria-invalid`): not disabled, and either forced by {@link invalid} or
162
+ * showing its error messages.
137
163
  */
138
164
  get showError() {
165
+ return (this.invalid && !this.disabled) || this.showErrorMessages;
166
+ }
167
+ /**
168
+ * Whether the field currently shows its error messages : invalid, not
169
+ * disabled, not `hideError`, and either left once (`touched`), changed
170
+ * while {@link errorOnChange} is set (`dirty`), checked by its form, or
171
+ * given an external `error`. Typing alone never reveals an error, so an
172
+ * unfinished entry isn't reported as invalid; once shown, the error
173
+ * follows the value live.
174
+ */
175
+ get showErrorMessages() {
139
176
  return (!this.valid &&
140
177
  !this.hideError &&
141
178
  !this.disabled &&
142
- (this.touched || this.dirty || this.validationRequested || !!this.error));
179
+ (this.touched ||
180
+ (this.dirty && this.errorOnChange) ||
181
+ this.validationRequested ||
182
+ !!this.error));
143
183
  }
144
184
  /**
145
185
  * Whether the value hasn't changed since the field connected (or since
@@ -198,13 +238,13 @@ export const FormMixin = (superClass) => {
198
238
  this.setFormValue(value);
199
239
  }
200
240
  /**
201
- * Gets the validation errors while {@link showError} is true, the hint
202
- * otherwise.
241
+ * Gets the validation errors while {@link showErrorMessages} is true, the
242
+ * hint otherwise.
203
243
  *
204
244
  * @returns Error message string, array of messages, or the hint.
205
245
  */
206
246
  get description() {
207
- if (!this.showError) {
247
+ if (!this.showErrorMessages) {
208
248
  return this.hint;
209
249
  }
210
250
  if (this.errorMessages.length) {
@@ -282,6 +322,29 @@ export const FormMixin = (superClass) => {
282
322
  }
283
323
  super.willUpdate(changedProperties);
284
324
  }
325
+ /**
326
+ * LitElement lifecycle method called after update. Mirrors the hint or
327
+ * error onto the host's `aria-description` while
328
+ * {@link descriptionOnHost} is set.
329
+ *
330
+ * @param changedProperties - Map of changed properties and their old values.
331
+ */
332
+ updated(changedProperties) {
333
+ super.updated(changedProperties);
334
+ if (!this.descriptionOnHost) {
335
+ return;
336
+ }
337
+ const { description } = this;
338
+ const text = Array.isArray(description)
339
+ ? description.join(" ")
340
+ : description;
341
+ if (text) {
342
+ this.setAttribute("aria-description", text);
343
+ }
344
+ else {
345
+ this.removeAttribute("aria-description");
346
+ }
347
+ }
285
348
  /**
286
349
  * Syncs the field value with the form submission internals.
287
350
  * If disabled or unchecked (for checkable), sets empty form data.
@@ -351,8 +414,8 @@ export const FormMixin = (superClass) => {
351
414
  return this.renderError();
352
415
  }
353
416
  /**
354
- * Renders the error messages while {@link showError} is true, the hint
355
- * otherwise.
417
+ * Renders the error messages while {@link showErrorMessages} is true, the
418
+ * hint otherwise.
356
419
  *
357
420
  * @returns Template result with error messages, hint or nothing.
358
421
  */
@@ -361,15 +424,23 @@ export const FormMixin = (superClass) => {
361
424
  if (!description?.length) {
362
425
  return nothing;
363
426
  }
364
- if (!this.showError) {
427
+ if (!this.showErrorMessages) {
365
428
  return html `
366
- <p id="description" class="hint-messages">
429
+ <p
430
+ id="description"
431
+ class="hint-messages"
432
+ aria-hidden=${this.descriptionOnHost ? "true" : nothing}
433
+ >
367
434
  <span>${description}</span>
368
435
  </p>
369
436
  `;
370
437
  }
371
438
  return html `
372
- <p id="description" class="error-messages">
439
+ <p
440
+ id="description"
441
+ class="error-messages"
442
+ aria-hidden=${this.descriptionOnHost ? "true" : nothing}
443
+ >
373
444
  ${when(Array.isArray(description), () => description.map((msg) => html `<span>${msg}</span>`), () => html `<span>${description}</span>`)}
374
445
  </p>
375
446
  `;
@@ -386,6 +457,9 @@ export const FormMixin = (superClass) => {
386
457
  __decorate([
387
458
  property({ type: Boolean, attribute: "hide-error" })
388
459
  ], FormMixinClass.prototype, "hideError", void 0);
460
+ __decorate([
461
+ property({ type: Boolean })
462
+ ], FormMixinClass.prototype, "invalid", void 0);
389
463
  __decorate([
390
464
  state()
391
465
  ], FormMixinClass.prototype, "valueState", void 0);
@@ -14,7 +14,7 @@ export declare class LocalizableMixinInterface {
14
14
  * it: user-facing strings with no dedicated override property at all
15
15
  * (navigation button labels, ARIA group names, and the like), and
16
16
  * strings that *do* have their own override property (e.g. `eun-chip`'s
17
- * `ariaLabelRemove`) but fall back to `this.dictionary` — instead of a
17
+ * `removeLabel`) but fall back to `this.dictionary` — instead of a
18
18
  * hardcoded English literal — when that property is left unset, so the
19
19
  * default follows `locale` while an explicit override still wins.
20
20
  *
@@ -12,7 +12,7 @@ import { dictionaries, getDefaultLocale } from "../i18n/index.js";
12
12
  * it: user-facing strings with no dedicated override property at all
13
13
  * (navigation button labels, ARIA group names, and the like), and
14
14
  * strings that *do* have their own override property (e.g. `eun-chip`'s
15
- * `ariaLabelRemove`) but fall back to `this.dictionary` — instead of a
15
+ * `removeLabel`) but fall back to `this.dictionary` — instead of a
16
16
  * hardcoded English literal — when that property is left unset, so the
17
17
  * default follows `locale` while an explicit override still wins.
18
18
  *
@@ -37,6 +37,17 @@ export const RadioMixin = (superClass) => {
37
37
  * @default true
38
38
  */
39
39
  this.checkable = true;
40
+ /**
41
+ * The host is the control, so its hint or error goes on its own
42
+ * `aria-description`.
43
+ * @internal
44
+ */
45
+ this.descriptionOnHost = true;
46
+ /**
47
+ * Every change is a complete choice, so its error shows right away.
48
+ * @internal
49
+ */
50
+ this.errorOnChange = true;
40
51
  /**
41
52
  * Overrides `ValidatorsMixin`'s own `required` check, which validates
42
53
  * emptiness of `this.value` — meaningless here, since a radio's `value`
@@ -124,7 +135,6 @@ export const RadioMixin = (superClass) => {
124
135
  * - Prevents propagation.
125
136
  * - Ignores action if `disabled` or `readonly`.
126
137
  * - Sets `checked` to `true` ; never unchecks (see the class doc).
127
- * - Updates ARIA attributes (`aria-description`).
128
138
  * - Dispatches a custom `ChangeEvent`.
129
139
  *
130
140
  * @param event The triggered mouse or keyboard event
@@ -141,15 +151,6 @@ export const RadioMixin = (superClass) => {
141
151
  this.checked = true;
142
152
  this.updateInternals();
143
153
  this.checkValidity(this.checked);
144
- if (this.description) {
145
- const attribute = this.description instanceof Array
146
- ? this.description.join(",")
147
- : this.description;
148
- this.setAttribute("aria-description", attribute);
149
- }
150
- else {
151
- this.removeAttribute("aria-description");
152
- }
153
154
  this.dispatchEvent(new ChangeEvent(this.checked));
154
155
  }
155
156
  /**
@@ -10,7 +10,8 @@ export declare class ReadonlyMixinInterface {
10
10
  * A mixin that adds a `readonly` property to a LitElement component.
11
11
  *
12
12
  * When the `readonly` state changes, it automatically updates the `aria-readonly` attribute
13
- * for accessibility compliance.
13
+ * for accessibility compliance. The attribute is only present while readonly, so an SSR
14
+ * framework hydrating a non-readonly field doesn't see an attribute it never rendered.
14
15
  *
15
16
  * @param superClass - The base LitElement class to extend.
16
17
  * @returns A class extending the base class with `readonly` functionality.
@@ -9,7 +9,8 @@ import { property } from "lit/decorators.js";
9
9
  * A mixin that adds a `readonly` property to a LitElement component.
10
10
  *
11
11
  * When the `readonly` state changes, it automatically updates the `aria-readonly` attribute
12
- * for accessibility compliance.
12
+ * for accessibility compliance. The attribute is only present while readonly, so an SSR
13
+ * framework hydrating a non-readonly field doesn't see an attribute it never rendered.
13
14
  *
14
15
  * @param superClass - The base LitElement class to extend.
15
16
  * @returns A class extending the base class with `readonly` functionality.
@@ -28,12 +29,18 @@ export const ReadonlyMixin = (superClass) => {
28
29
  * LitElement lifecycle method.
29
30
  * Called when reactive properties are updated.
30
31
  *
31
- * Updates `aria-readonly` whenever `readonly` changes.
32
+ * Updates `aria-readonly` whenever `readonly` changes. Removed rather
33
+ * than set to "false", which means the same.
32
34
  */
33
35
  updated(_changedProperties) {
34
36
  super.updated(_changedProperties);
35
37
  if (_changedProperties.has("readonly")) {
36
- this.setAttribute("aria-readonly", String(this.readonly));
38
+ if (this.readonly) {
39
+ this.setAttribute("aria-readonly", "true");
40
+ }
41
+ else {
42
+ this.removeAttribute("aria-readonly");
43
+ }
37
44
  }
38
45
  }
39
46
  }
@@ -0,0 +1,18 @@
1
+ import { LitElement } from "lit";
2
+ import { Constructor } from "../utils/constructor.type.js";
3
+ /**
4
+ * Interface defining the contract for components using RoundedMixin.
5
+ */
6
+ export declare class RoundedMixinInterface {
7
+ rounded?: boolean;
8
+ }
9
+ /**
10
+ * A mixin that adds a `rounded` property to a single-line control, the same
11
+ * as `eun-button`'s own : set, the control takes a pill shape through the
12
+ * `--eun-border-radius-xl` token, without reaching for its own radius
13
+ * custom property. That custom property still wins over it when set.
14
+ *
15
+ * @param superClass - The base class to extend.
16
+ * @returns A new class extending the base with `rounded` behavior.
17
+ */
18
+ export declare const RoundedMixin: <T extends Constructor<LitElement>>(superClass: T) => Constructor<RoundedMixinInterface> & T;
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { property } from "lit/decorators.js";
8
+ /**
9
+ * A mixin that adds a `rounded` property to a single-line control, the same
10
+ * as `eun-button`'s own : set, the control takes a pill shape through the
11
+ * `--eun-border-radius-xl` token, without reaching for its own radius
12
+ * custom property. That custom property still wins over it when set.
13
+ *
14
+ * @param superClass - The base class to extend.
15
+ * @returns A new class extending the base with `rounded` behavior.
16
+ */
17
+ export const RoundedMixin = (superClass) => {
18
+ class RoundedMixinClass extends superClass {
19
+ constructor() {
20
+ super(...arguments);
21
+ /**
22
+ * Whether the control is fully rounded, as a pill.
23
+ * @default false
24
+ */
25
+ this.rounded = false;
26
+ }
27
+ }
28
+ __decorate([
29
+ property({ type: Boolean, reflect: true })
30
+ ], RoundedMixinClass.prototype, "rounded", void 0);
31
+ return RoundedMixinClass;
32
+ };
@@ -0,0 +1,187 @@
1
+ eun-alert:not(:defined) {
2
+ --_background: var(--eun-surface-sunken, #f7f8fa);
3
+ --_backgroundFilled: var(--_background);
4
+ --_borderColor: var(--eun-color-grey-300, #dee0e7);
5
+ --_titleColor: var(--eun-text-color, #071621);
6
+ --_bw: var(--alert-border-width, var(--eun-border-width-s, 1px));
7
+ --_frame: transparent;
8
+ --_textColumn: 2;
9
+ --_contentColor: var(--alert-content-color, var(--eun-text-color, #071621));
10
+ --_headingColor: var(--alert-color, var(--_titleColor));
11
+ display: grid;
12
+ grid-template-columns: auto 1fr;
13
+ align-items: start;
14
+ column-gap: var(--alert-gap, var(--eun-space-m, 16px));
15
+ row-gap: var(--alert-row-gap, var(--eun-space-s, 8px));
16
+ box-sizing: border-box;
17
+ width: 100%;
18
+ border: var(--_bw) solid var(--alert-border-color, var(--_frame));
19
+ padding: var(
20
+ --alert-padding,
21
+ var(
22
+ --alert-padding-block,
23
+ max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
24
+ )
25
+ var(
26
+ --alert-padding-inline,
27
+ max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
28
+ )
29
+ );
30
+ border-radius: var(--alert-border-radius, var(--eun-border-radius-m, 8px));
31
+ background: linear-gradient(
32
+ to right,
33
+ var(--alert-border-color, var(--_borderColor)) 4px,
34
+ var(--alert-background-color, var(--_background)) 4px
35
+ )
36
+ border-box;
37
+ color: var(--_headingColor);
38
+ font-family: var(--eun-font-family, "Mulish", sans-serif);
39
+ font-size: var(--eun-font-size-s, 14px);
40
+ font-weight: var(--eun-font-weight-l, 700);
41
+ }
42
+
43
+ eun-alert[severity="info"]:not(:defined) {
44
+ --_background: var(--eun-color-info-alpha-5, #097faf0d);
45
+ --_backgroundFilled: var(--eun-color-info-100, #097faf);
46
+ --_borderColor: var(--eun-color-info-100, #097faf);
47
+ --_titleColor: var(--eun-color-info-100, #097faf);
48
+ }
49
+
50
+ eun-alert[severity="success"]:not(:defined) {
51
+ --_background: var(--eun-color-success-alpha-5, #1a99480d);
52
+ --_backgroundFilled: var(--eun-color-success-100, #1a9948);
53
+ --_borderColor: var(--eun-color-success-100, #1a9948);
54
+ --_titleColor: var(--eun-color-success-100, #1a9948);
55
+ }
56
+
57
+ eun-alert[severity="warning"]:not(:defined) {
58
+ --_background: var(--eun-color-warning-alpha-5, #c852070d);
59
+ --_backgroundFilled: var(--eun-color-warning-100, #c85207);
60
+ --_borderColor: var(--eun-color-warning-100, #c85207);
61
+ --_titleColor: var(--eun-color-warning-100, #c85207);
62
+ }
63
+
64
+ eun-alert[severity="critical"]:not(:defined) {
65
+ --_background: var(--eun-color-critical-alpha-5, #aa00140d);
66
+ --_backgroundFilled: var(--eun-color-critical-100, #aa0014);
67
+ --_borderColor: var(--eun-color-critical-100, #aa0014);
68
+ --_titleColor: var(--eun-color-critical-100, #aa0014);
69
+ }
70
+
71
+ eun-alert[severity="neutral"]:not(:defined) {
72
+ --_onFilled: var(--eun-color-grey-0, #ffffff);
73
+ --_background: var(--eun-surface-sunken-strong, #ecedf0);
74
+ --_backgroundFilled: var(--eun-color-grey-700, #484e61);
75
+ --_borderColor: var(--eun-color-grey-700, #484e61);
76
+ --_titleColor: var(--eun-color-grey-700, #484e61);
77
+ }
78
+
79
+ eun-alert[appearance="flat"]:not(:defined) {
80
+ background: var(--alert-background-color, var(--_background));
81
+ }
82
+
83
+ eun-alert[appearance="outline"]:not(:defined) {
84
+ --_frame: var(--_borderColor);
85
+ background: var(--alert-background-color, var(--eun-surface-color, #ffffff));
86
+ }
87
+
88
+ eun-alert[appearance="fill"]:not(:defined) {
89
+ --_contentColor: var(--alert-content-color, var(--_onFilled, #fff));
90
+ --_headingColor: var(--alert-color, var(--_onFilled, #fff));
91
+ background: var(--alert-background-color, var(--_backgroundFilled));
92
+ }
93
+
94
+ eun-alert[closeable]:not(:defined) {
95
+ padding-right: calc(
96
+ var(
97
+ --alert-padding,
98
+ var(
99
+ --alert-padding-inline,
100
+ max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
101
+ )
102
+ ) +
103
+ var(--eun-space-l, 32px)
104
+ );
105
+ }
106
+
107
+ eun-alert:is(
108
+ [hide-icon],
109
+ :not([severity], [icon]):not(:has(> [slot="icon"]))
110
+ ):not(:defined) {
111
+ --_textColumn: 1;
112
+ grid-template-columns: 1fr;
113
+ }
114
+
115
+ eun-alert:not(:defined)::before {
116
+ content: "";
117
+ grid-column: 1;
118
+ grid-row: 1;
119
+ align-self: center;
120
+ width: 20px;
121
+ height: 20px;
122
+ }
123
+
124
+ eun-alert:is([hide-icon], :has(> [slot="icon"]), :not([severity], [icon])):not(
125
+ :defined
126
+ )::before {
127
+ display: none;
128
+ }
129
+
130
+ eun-alert:not(:defined) > [slot="icon"] {
131
+ grid-column: 1;
132
+ grid-row: 1;
133
+ align-self: center;
134
+ display: flex;
135
+ }
136
+
137
+ eun-alert[hide-icon]:not(:defined) > [slot="icon"] {
138
+ grid-column: 1;
139
+ }
140
+
141
+ eun-alert:not([heading]):not(:defined) > :not([slot]) {
142
+ grid-column: var(--_textColumn);
143
+ grid-row: 1;
144
+ align-self: center;
145
+ }
146
+
147
+ eun-alert:not(:defined) > :not([slot]) {
148
+ justify-self: start;
149
+ }
150
+
151
+ eun-alert[heading]:not(:defined)::after {
152
+ content: attr(heading);
153
+ order: -1;
154
+ grid-column: var(--_textColumn);
155
+ grid-row: 1;
156
+ align-self: center;
157
+ }
158
+
159
+ eun-alert[heading]:not(:defined) > :not([slot]),
160
+ eun-alert:not(:defined) > [slot="description"],
161
+ eun-alert:not(:defined) > [slot="action"] {
162
+ grid-column: var(--_textColumn);
163
+ font-weight: normal;
164
+ }
165
+
166
+ :where(
167
+ eun-alert[heading]:not(:defined) > :not([slot]),
168
+ eun-alert:not(:defined) > [slot="description"],
169
+ eun-alert:not(:defined) > [slot="icon"],
170
+ eun-alert:not(:defined) > [slot="action"]:not(:any-link)
171
+ ) {
172
+ color: var(--_contentColor);
173
+ }
174
+
175
+ eun-alert[heading]:not(:defined) > :not([slot]) {
176
+ order: 1;
177
+ }
178
+
179
+ eun-alert:not(:defined) > [slot="description"] {
180
+ order: 2;
181
+ margin: 0;
182
+ }
183
+
184
+ eun-alert:not(:defined) > [slot="action"] {
185
+ order: 3;
186
+ justify-self: start;
187
+ }
@@ -0,0 +1,67 @@
1
+ eun-badge:not(:defined) {
2
+ --_background: var(
3
+ --badge-background,
4
+ var(--eun-color-critical-100, #aa0014)
5
+ );
6
+ --_color: var(--badge-color, #fff);
7
+ --_size: var(--badge-size, 18px);
8
+ --_paddingInline: var(--badge-padding-inline, 6px);
9
+ --_fontSize: var(--badge-font-size, 11px);
10
+ display: inline-flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ box-sizing: border-box;
14
+ min-width: var(--_size);
15
+ height: var(--_size);
16
+ padding: 0 var(--_paddingInline);
17
+ border-radius: 999px;
18
+ background: var(--_background);
19
+ color: var(--_color);
20
+ font-family: var(--eun-font-family, "Mulish", sans-serif);
21
+ font-size: var(--_fontSize);
22
+ font-weight: var(--eun-font-weight-l, 700);
23
+ line-height: 1;
24
+ white-space: nowrap;
25
+ vertical-align: baseline;
26
+ user-select: none;
27
+ }
28
+
29
+ eun-badge:empty:not(:defined) {
30
+ width: var(--_size);
31
+ padding: 0;
32
+ }
33
+
34
+ eun-badge[size="s"]:not(:defined) {
35
+ --_size: var(--badge-size, 14px);
36
+ --_paddingInline: var(--badge-padding-inline, 5px);
37
+ --_fontSize: var(--badge-font-size, 10px);
38
+ }
39
+
40
+ eun-badge[size="l"]:not(:defined) {
41
+ --_size: var(--badge-size, 22px);
42
+ --_paddingInline: var(--badge-padding-inline, 7px);
43
+ --_fontSize: var(--badge-font-size, 12px);
44
+ }
45
+
46
+ eun-badge[color="primary"]:not(:defined) {
47
+ --_background: var(--badge-background, var(--eun-color-primary-500, #3d6fff));
48
+ --_color: var(--badge-color, var(--eun-color-on-primary-500, #ffffff));
49
+ }
50
+
51
+ eun-badge[color="secondary"]:not(:defined) {
52
+ --_background: var(
53
+ --badge-background,
54
+ var(--eun-color-secondary-500, #e5a030)
55
+ );
56
+ --_color: var(--badge-color, var(--eun-color-on-secondary-500, #000000de));
57
+ }
58
+
59
+ eun-badge[color="success"]:not(:defined) {
60
+ --_background: var(--badge-background, var(--eun-color-success-100, #1a9948));
61
+ --_color: var(--badge-color, #fff);
62
+ }
63
+
64
+ eun-badge[color="warning"]:not(:defined) {
65
+ --_background: var(--badge-background, var(--eun-color-warning-100, #c85207));
66
+ --_color: var(--badge-color, #fff);
67
+ }
@@ -0,0 +1,41 @@
1
+ eun-breadcrumb:not(:defined) {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ align-items: center;
5
+ row-gap: var(--breadcrumb-gap, var(--eun-space-xs, 4px));
6
+ font-family: var(--eun-font-family, "Mulish", sans-serif);
7
+ font-size: var(--breadcrumb-font-size, var(--eun-font-size-s, 14px));
8
+ }
9
+
10
+ :where(eun-breadcrumb:not(:defined) > *) {
11
+ max-width: var(--breadcrumb-item-max-width, 240px);
12
+ overflow: hidden;
13
+ text-overflow: ellipsis;
14
+ white-space: nowrap;
15
+ color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
16
+ font-weight: var(--eun-font-weight-m, 500);
17
+ }
18
+
19
+ :where(eun-breadcrumb:not(:defined) > a[href]) {
20
+ color: var(--breadcrumb-link-color, var(--eun-color-primary-500, #3d6fff));
21
+ font-weight: inherit;
22
+ text-decoration: var(--breadcrumb-link-text-decoration, underline);
23
+ }
24
+
25
+ :where(
26
+ eun-breadcrumb:not(:defined) > a[aria-current="page"],
27
+ eun-breadcrumb:not(:defined):not(:has(> [aria-current="page"])) > a:last-child
28
+ ) {
29
+ color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
30
+ font-weight: var(--eun-font-weight-m, 500);
31
+ text-decoration: none;
32
+ }
33
+
34
+ eun-breadcrumb:not(:defined) > :not(:last-child)::after {
35
+ content: var(--breadcrumb-separator, "/");
36
+ display: inline-block;
37
+ margin-inline: var(--breadcrumb-separator-gap, var(--eun-space-s, 8px));
38
+ color: var(--breadcrumb-separator-color, var(--eun-text-secondary, #484e61));
39
+ font-weight: var(--eun-font-weight-m, 500);
40
+ text-decoration: none;
41
+ }
@@ -120,8 +120,8 @@
120
120
  }
121
121
  :is(eun-button, eun-dropdown-button)[size="s"]:not(:defined) {
122
122
  --_defaultFontSize: var(--eun-font-size-xs, 10px);
123
- --_defaultPaddingBlock: calc(var(--eun-space-s) / 2);
124
- --_defaultPaddingInline: var(--eun-space-s);
123
+ --_defaultPaddingBlock: calc(var(--eun-space-s, 8px) / 2);
124
+ --_defaultPaddingInline: var(--eun-space-s, 8px);
125
125
  --_defaultLineHeight: 10px;
126
126
  --_defaultBorderRadius: var(--eun-border-radius-s, 999px);
127
127
  }
@@ -149,7 +149,7 @@
149
149
  --_fg: var(--_onSolid);
150
150
  --_bd: transparent;
151
151
  }
152
- :is(eun-button, eun-dropdown-button)[appearance="default"]:not(:defined) {
152
+ :is(eun-button, eun-dropdown-button)[appearance="soft"]:not(:defined) {
153
153
  --_bg: var(--_tint);
154
154
  --_fg: var(--_fgTint);
155
155
  --_bd: transparent;
@@ -236,8 +236,8 @@ eun-button:not(:defined) > [slot="end"] {
236
236
  content: "";
237
237
  order: -1;
238
238
  flex-shrink: 0;
239
- width: 16px;
240
- height: 16px;
239
+ width: var(--icon-size);
240
+ height: var(--icon-size);
241
241
  }
242
242
 
243
243
  eun-dropdown-button[label]:not(:defined)::after {