@eunomia/elements 1.0.0-beta.2 → 1.0.0-beta.4

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 (354) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/components/chunks/chunk-2JLDJFYD.js +48 -0
  3. package/dist/cdn/components/chunks/chunk-4MXL6PZC.js +124 -0
  4. package/dist/cdn/components/chunks/{chunk-32KRPOPV.js → chunk-5XJGYXW7.js} +6 -6
  5. package/dist/cdn/components/chunks/{chunk-O2HNWH65.js → chunk-5XJLIHAU.js} +7 -7
  6. package/dist/cdn/components/chunks/{chunk-5GF2Q3NR.js → chunk-74AOAB4X.js} +1 -1
  7. package/dist/cdn/components/chunks/{chunk-WYMBUIKX.js → chunk-A6KGFALA.js} +4 -4
  8. package/dist/cdn/components/chunks/chunk-BMQOI7HX.js +371 -0
  9. package/dist/cdn/components/chunks/{chunk-LJYTHDZP.js → chunk-D2M4BV5Y.js} +6 -6
  10. package/dist/cdn/components/chunks/{chunk-NEYBPT3D.js → chunk-EJIX2D4Z.js} +2 -2
  11. package/dist/cdn/components/chunks/{chunk-BYBUXKXC.js → chunk-EOWBYZV7.js} +2 -2
  12. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +1 -0
  13. package/dist/cdn/components/chunks/{chunk-AQQMW353.js → chunk-GSJEJLFA.js} +3 -3
  14. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +1 -0
  15. package/dist/cdn/components/chunks/{chunk-5RCCZVFZ.js → chunk-IJ5WFMK4.js} +1 -1
  16. package/dist/cdn/components/chunks/{chunk-RWONCXTF.js → chunk-KVYUNKUO.js} +2 -2
  17. package/dist/cdn/components/chunks/chunk-LGLQ36QB.js +16 -0
  18. package/dist/cdn/components/chunks/{chunk-74HHV4CX.js → chunk-NHFWATVN.js} +2 -2
  19. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +38 -0
  20. package/dist/cdn/components/chunks/chunk-P32B7BFD.js +118 -0
  21. package/dist/cdn/components/chunks/{chunk-ZPFHTJSS.js → chunk-PCM7D3YF.js} +1 -1
  22. package/dist/cdn/components/chunks/{chunk-ABYEBP57.js → chunk-PED5ATYN.js} +11 -8
  23. package/dist/cdn/components/chunks/{chunk-ON42P6FI.js → chunk-RJCJXB7Y.js} +5 -5
  24. package/dist/cdn/components/chunks/{chunk-5C7YND22.js → chunk-S2UCEWNG.js} +8 -8
  25. package/dist/cdn/components/chunks/{chunk-7WTSHE7M.js → chunk-SIHZFOTK.js} +9 -9
  26. package/dist/cdn/components/chunks/{chunk-6UPI7GHJ.js → chunk-UAGCQF23.js} +7 -7
  27. package/dist/cdn/components/chunks/{chunk-6IILPCSQ.js → chunk-X2AUBZD2.js} +3 -3
  28. package/dist/cdn/components/chunks/chunk-YGUJJ25C.js +263 -0
  29. package/dist/cdn/components/chunks/chunk-YYCEPZUN.js +1 -0
  30. package/dist/cdn/components/eun-alert.js +65 -45
  31. package/dist/cdn/components/eun-animate.js +178 -2
  32. package/dist/cdn/components/eun-badge.js +1 -1
  33. package/dist/cdn/components/eun-breadcrumb-item.js +14 -10
  34. package/dist/cdn/components/eun-breadcrumb.js +11 -7
  35. package/dist/cdn/components/eun-button.js +1 -1
  36. package/dist/cdn/components/eun-calendar.js +16 -16
  37. package/dist/cdn/components/eun-card.js +29 -12
  38. package/dist/cdn/components/eun-carousel.js +36 -28
  39. package/dist/cdn/components/eun-check-card.js +3 -3
  40. package/dist/cdn/components/eun-checkbox-list.js +3 -3
  41. package/dist/cdn/components/eun-checkbox.js +1 -1
  42. package/dist/cdn/components/eun-chip.js +45 -210
  43. package/dist/cdn/components/eun-collapse.js +20 -26
  44. package/dist/cdn/components/eun-color-picker.js +28 -28
  45. package/dist/cdn/components/eun-counter.js +11 -11
  46. package/dist/cdn/components/eun-date-picker.js +50 -50
  47. package/dist/cdn/components/eun-drawer.js +3 -3
  48. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  49. package/dist/cdn/components/eun-dropdown-item.js +6 -6
  50. package/dist/cdn/components/eun-fab.js +31 -53
  51. package/dist/cdn/components/eun-icon.js +1 -1
  52. package/dist/cdn/components/eun-image-card.js +18 -11
  53. package/dist/cdn/components/eun-image-carousel.js +16 -16
  54. package/dist/cdn/components/eun-infinite-list.js +1 -1
  55. package/dist/cdn/components/eun-input-file.js +20 -20
  56. package/dist/cdn/components/eun-input-phone.js +14 -14
  57. package/dist/cdn/components/eun-input.js +1 -1
  58. package/dist/cdn/components/eun-label.js +4 -4
  59. package/dist/cdn/components/eun-link.js +29 -11
  60. package/dist/cdn/components/eun-loader.js +1 -1
  61. package/dist/cdn/components/eun-modal.js +6 -6
  62. package/dist/cdn/components/eun-pagination.js +3 -3
  63. package/dist/cdn/components/eun-password-strength.js +9 -6
  64. package/dist/cdn/components/eun-progress-bar.js +13 -13
  65. package/dist/cdn/components/eun-radio-card.js +2 -2
  66. package/dist/cdn/components/eun-radio-list.js +3 -3
  67. package/dist/cdn/components/eun-radio.js +1 -1
  68. package/dist/cdn/components/eun-scheduler-event-editor.js +2 -2
  69. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  70. package/dist/cdn/components/eun-scheduler.js +10 -10
  71. package/dist/cdn/components/eun-search.js +7 -7
  72. package/dist/cdn/components/eun-select.js +39 -18
  73. package/dist/cdn/components/eun-sidebar.js +10 -10
  74. package/dist/cdn/components/eun-skeleton.js +1 -1
  75. package/dist/cdn/components/eun-slider.js +9 -9
  76. package/dist/cdn/components/eun-sliding-card.js +7 -10
  77. package/dist/cdn/components/eun-step.js +8 -8
  78. package/dist/cdn/components/eun-stepper.js +8 -8
  79. package/dist/cdn/components/eun-switch.js +10 -10
  80. package/dist/cdn/components/eun-tab-group.js +19 -11
  81. package/dist/cdn/components/eun-tab-panel.js +1 -1
  82. package/dist/cdn/components/eun-tab.js +1 -1
  83. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  84. package/dist/cdn/components/eun-table-cell.js +1 -1
  85. package/dist/cdn/components/eun-table-column.js +1 -1
  86. package/dist/cdn/components/eun-table-header.js +1 -1
  87. package/dist/cdn/components/eun-table-item.js +1 -1
  88. package/dist/cdn/components/eun-table-skeleton-row.js +1 -1
  89. package/dist/cdn/components/eun-table.js +3 -3
  90. package/dist/cdn/components/eun-tag.js +34 -122
  91. package/dist/cdn/components/eun-textarea.js +28 -28
  92. package/dist/cdn/components/eun-time-picker.js +25 -25
  93. package/dist/cdn/components/eun-toast.js +40 -36
  94. package/dist/cdn/components/eun-toggle-group.js +199 -66
  95. package/dist/cdn/components/eun-toggle-item.js +42 -25
  96. package/dist/cdn/components/eun-toggle.js +13 -10
  97. package/dist/cdn/components/eun-toolbar.js +28 -19
  98. package/dist/cdn/components/eun-tooltip.js +122 -87
  99. package/dist/cdn/styles/eunomia-themes.css +1 -1
  100. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  101. package/dist/cdn/styles/themes/eunomia-theme.scss +1 -0
  102. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +71 -0
  103. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +3 -13
  104. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +3 -13
  105. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  106. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +2 -0
  107. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +3 -13
  108. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +3 -13
  109. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  110. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +2 -0
  111. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +3 -13
  112. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +3 -13
  113. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  114. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +2 -0
  115. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +3 -13
  116. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +3 -13
  117. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  118. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +2 -0
  119. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +3 -13
  120. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +3 -13
  121. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  122. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +2 -0
  123. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +3 -13
  124. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +3 -13
  125. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  126. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +2 -0
  127. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +3 -13
  128. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +3 -13
  129. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  130. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +2 -0
  131. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  132. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +39 -0
  133. package/dist/cdn/styles/tools/mixins/settings/eunomia-border.mixin.scss +3 -3
  134. package/dist/cdn/styles/tools/mixins/settings/eunomia-font.mixin.scss +12 -12
  135. package/dist/cdn/styles/tools/mixins/settings/eunomia-radius.mixin.scss +4 -4
  136. package/dist/components/action/button/button.d.ts +7 -6
  137. package/dist/components/action/button/button.js +7 -6
  138. package/dist/components/action/button/button.styles.js +143 -373
  139. package/dist/components/action/dropdown-button/dropdown-button.d.ts +7 -0
  140. package/dist/components/action/dropdown-button/dropdown-button.js +11 -0
  141. package/dist/components/action/dropdown-button/dropdown-button.styles.js +8 -8
  142. package/dist/components/action/dropdown-button/dropdown-item.styles.js +6 -6
  143. package/dist/components/action/fab/fab.d.ts +3 -1
  144. package/dist/components/action/fab/fab.js +3 -1
  145. package/dist/components/action/fab/fab.styles.js +26 -49
  146. package/dist/components/action/link/link.d.ts +50 -0
  147. package/dist/components/action/link/link.js +69 -1
  148. package/dist/components/action/link/link.styles.js +19 -2
  149. package/dist/components/action/shared-styles/button-palette.styles.d.ts +27 -0
  150. package/dist/components/action/shared-styles/button-palette.styles.js +151 -0
  151. package/dist/components/action/toggle/toggle-group.d.ts +41 -7
  152. package/dist/components/action/toggle/toggle-group.js +162 -46
  153. package/dist/components/action/toggle/toggle-group.styles.d.ts +6 -5
  154. package/dist/components/action/toggle/toggle-group.styles.js +152 -35
  155. package/dist/components/action/toggle/toggle-item.styles.js +38 -21
  156. package/dist/components/action/toggle/toggle.d.ts +1 -1
  157. package/dist/components/action/toggle/toggle.js +2 -2
  158. package/dist/components/action/toggle/toggle.styles.d.ts +2 -2
  159. package/dist/components/action/toggle/toggle.styles.js +13 -10
  160. package/dist/components/alert/alert/alert.d.ts +4 -3
  161. package/dist/components/alert/alert/alert.js +4 -3
  162. package/dist/components/alert/alert/alert.styles.js +57 -36
  163. package/dist/components/alert/drawer/drawer.styles.js +3 -3
  164. package/dist/components/alert/modal/modal.styles.js +6 -6
  165. package/dist/components/alert/toast/toast.d.ts +4 -3
  166. package/dist/components/alert/toast/toast.js +4 -3
  167. package/dist/components/alert/toast/toast.styles.js +41 -36
  168. package/dist/components/content/badge/badge.styles.js +1 -1
  169. package/dist/components/content/card/card.d.ts +4 -4
  170. package/dist/components/content/card/card.js +4 -4
  171. package/dist/components/content/card/card.styles.js +27 -10
  172. package/dist/components/content/card/image-card.d.ts +1 -1
  173. package/dist/components/content/card/image-card.js +1 -1
  174. package/dist/components/content/card/image-card.styles.js +17 -10
  175. package/dist/components/content/card/sliding-card.styles.js +3 -6
  176. package/dist/components/content/chip/chip.d.ts +16 -7
  177. package/dist/components/content/chip/chip.js +18 -6
  178. package/dist/components/content/chip/chip.styles.d.ts +1 -1
  179. package/dist/components/content/chip/chip.styles.js +43 -210
  180. package/dist/components/content/collapse/collapse.styles.js +10 -16
  181. package/dist/components/content/icon/icon.d.ts +48 -5
  182. package/dist/components/content/icon/icon.js +92 -20
  183. package/dist/components/content/icon/icon.style.js +1 -1
  184. package/dist/components/content/image-carousel/image-carousel.styles.js +14 -14
  185. package/dist/components/content/password-strength/password-strength.styles.js +7 -4
  186. package/dist/components/content/progress-bar/progress-bar.styles.js +9 -9
  187. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +31 -0
  188. package/dist/components/content/shared-styles/tone-surface.styles.js +149 -0
  189. package/dist/components/content/tag/tag.d.ts +16 -6
  190. package/dist/components/content/tag/tag.js +19 -6
  191. package/dist/components/content/tag/tag.styles.d.ts +1 -1
  192. package/dist/components/content/tag/tag.styles.js +40 -121
  193. package/dist/components/content/tooltip/tooltip.d.ts +15 -4
  194. package/dist/components/content/tooltip/tooltip.js +21 -4
  195. package/dist/components/content/tooltip/tooltip.styles.js +115 -79
  196. package/dist/components/form/checkbox/check-card.styles.js +2 -2
  197. package/dist/components/form/checkbox/checkbox-list.d.ts +1 -1
  198. package/dist/components/form/checkbox/checkbox-list.js +1 -1
  199. package/dist/components/form/checkbox/checkbox.d.ts +1 -1
  200. package/dist/components/form/checkbox/checkbox.styles.js +6 -6
  201. package/dist/components/form/color-picker/color-picker.d.ts +1 -1
  202. package/dist/components/form/color-picker/color-picker.js +9 -7
  203. package/dist/components/form/color-picker/color-picker.styles.js +7 -7
  204. package/dist/components/form/counter/counter.d.ts +1 -1
  205. package/dist/components/form/counter/counter.js +3 -3
  206. package/dist/components/form/counter/counter.styles.js +7 -7
  207. package/dist/components/form/date-picker/date-picker-day-grid.styles.js +2 -2
  208. package/dist/components/form/date-picker/date-picker-grid.styles.js +15 -15
  209. package/dist/components/form/date-picker/date-picker-month-grid.styles.js +1 -1
  210. package/dist/components/form/date-picker/date-picker-year-grid.styles.js +1 -1
  211. package/dist/components/form/date-picker/date-picker.d.ts +1 -1
  212. package/dist/components/form/date-picker/date-picker.js +3 -3
  213. package/dist/components/form/date-picker/date-picker.styles.js +12 -12
  214. package/dist/components/form/input/input.d.ts +1 -1
  215. package/dist/components/form/input/input.js +2 -2
  216. package/dist/components/form/input-file/input-file.d.ts +1 -1
  217. package/dist/components/form/input-file/input-file.js +5 -5
  218. package/dist/components/form/input-file/input-file.styles.js +9 -9
  219. package/dist/components/form/input-phone/input-phone.d.ts +1 -1
  220. package/dist/components/form/input-phone/input-phone.js +3 -3
  221. package/dist/components/form/input-phone/input-phone.styles.js +7 -7
  222. package/dist/components/form/label/label.styles.js +4 -4
  223. package/dist/components/form/radio/radio-card.styles.js +1 -1
  224. package/dist/components/form/radio/radio-list.d.ts +1 -1
  225. package/dist/components/form/radio/radio-list.js +2 -2
  226. package/dist/components/form/radio/radio.d.ts +1 -1
  227. package/dist/components/form/radio/radio.styles.js +2 -2
  228. package/dist/components/form/search/search.styles.js +6 -6
  229. package/dist/components/form/select/select.d.ts +17 -1
  230. package/dist/components/form/select/select.js +28 -5
  231. package/dist/components/form/select/select.styles.js +16 -5
  232. package/dist/components/form/shared-styles/card.styles.js +1 -1
  233. package/dist/components/form/shared-styles/field.styles.js +7 -7
  234. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  235. package/dist/components/form/shared-styles/listbox.styles.js +6 -6
  236. package/dist/components/form/slider/slider.d.ts +1 -1
  237. package/dist/components/form/slider/slider.js +2 -2
  238. package/dist/components/form/slider/slider.styles.js +6 -6
  239. package/dist/components/form/switch/switch.d.ts +1 -1
  240. package/dist/components/form/switch/switch.styles.js +8 -8
  241. package/dist/components/form/textarea/textarea.d.ts +1 -1
  242. package/dist/components/form/textarea/textarea.js +4 -4
  243. package/dist/components/form/textarea/textarea.styles.js +6 -6
  244. package/dist/components/form/time-picker/time-picker-columns.styles.js +6 -6
  245. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -2
  246. package/dist/components/form/time-picker/time-picker.d.ts +1 -1
  247. package/dist/components/form/time-picker/time-picker.js +3 -3
  248. package/dist/components/form/time-picker/time-picker.styles.js +8 -8
  249. package/dist/components/layout/animate/animate.d.ts +40 -5
  250. package/dist/components/layout/animate/animate.js +30 -11
  251. package/dist/components/layout/animate/animate.styles.d.ts +1 -1
  252. package/dist/components/layout/animate/animate.styles.js +191 -1
  253. package/dist/components/loader/loader/loader.styles.js +2 -2
  254. package/dist/components/loader/skeleton/skeleton.styles.js +8 -5
  255. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +7 -0
  256. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +15 -1
  257. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +3 -3
  258. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +1 -0
  259. package/dist/components/navigation/breadcrumb/breadcrumb.js +7 -1
  260. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +3 -3
  261. package/dist/components/navigation/carousel/carousel.d.ts +40 -6
  262. package/dist/components/navigation/carousel/carousel.js +61 -12
  263. package/dist/components/navigation/carousel/carousel.styles.js +20 -8
  264. package/dist/components/navigation/pagination/pagination.styles.js +3 -3
  265. package/dist/components/navigation/sidebar/sidebar.styles.js +9 -9
  266. package/dist/components/navigation/stepper/step.styles.js +8 -8
  267. package/dist/components/navigation/stepper/stepper.styles.js +8 -8
  268. package/dist/components/navigation/tabs/tab/tab.styles.js +5 -5
  269. package/dist/components/navigation/tabs/tab-group/tab-group.d.ts +9 -0
  270. package/dist/components/navigation/tabs/tab-group/tab-group.js +19 -2
  271. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +12 -4
  272. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +1 -1
  273. package/dist/components/navigation/toolbar/toolbar.d.ts +24 -0
  274. package/dist/components/navigation/toolbar/toolbar.js +30 -2
  275. package/dist/components/navigation/toolbar/toolbar.styles.js +20 -10
  276. package/dist/events/change.event.d.ts +13 -1
  277. package/dist/events/change.event.js +2 -1
  278. package/dist/features/scheduler/calendar/calendar.js +1 -1
  279. package/dist/features/scheduler/calendar/calendar.styles.js +3 -3
  280. package/dist/features/scheduler/scheduler/scheduler.styles.js +2 -2
  281. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +2 -2
  282. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.styles.js +2 -2
  283. package/dist/features/scheduler/shared/scheduler-event-popover.styles.js +4 -4
  284. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +1 -1
  285. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +1 -1
  286. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +1 -1
  287. package/dist/features/table/native-table.css +11 -11
  288. package/dist/features/table/table/table.styles.js +2 -2
  289. package/dist/features/table/table-action-bar/table-action-bar.styles.js +2 -2
  290. package/dist/features/table/table-cell/table-cell.styles.js +2 -2
  291. package/dist/features/table/table-column/table-column.styles.js +3 -3
  292. package/dist/features/table/table-header/table-header.styles.js +4 -4
  293. package/dist/features/table/table-item/table-item.styles.js +6 -6
  294. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +1 -1
  295. package/dist/index.d.ts +5 -5
  296. package/dist/index.js +6 -3
  297. package/dist/jsx.d.ts +18 -5
  298. package/dist/mixins/button.mixin.d.ts +1 -0
  299. package/dist/mixins/button.mixin.js +10 -0
  300. package/dist/mixins/check.mixin.d.ts +1 -1
  301. package/dist/mixins/check.mixin.js +6 -2
  302. package/dist/mixins/editable.mixin.d.ts +1 -1
  303. package/dist/mixins/form.mixin.d.ts +9 -1
  304. package/dist/mixins/form.mixin.js +110 -14
  305. package/dist/mixins/overflow-navigation.mixin.js +2 -1
  306. package/dist/mixins/radio.mixin.d.ts +1 -1
  307. package/dist/mixins/radio.mixin.js +6 -2
  308. package/dist/mixins/validators.mixin.d.ts +9 -3
  309. package/dist/ssr/animate-ssr.css +149 -0
  310. package/dist/ssr/overlay-ssr.css +57 -0
  311. package/dist/ssr/sidebar-ssr.css +57 -0
  312. package/dist/ssr/toolbar-ssr.css +41 -0
  313. package/dist/utils/rich-text.utils.d.ts +33 -0
  314. package/dist/utils/rich-text.utils.js +140 -49
  315. package/dist/utils/theme-generator.utils.d.ts +24 -3
  316. package/dist/utils/theme-generator.utils.js +66 -21
  317. package/package.json +14 -3
  318. package/styles/themes/eunomia-theme.scss +1 -0
  319. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +71 -0
  320. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +3 -13
  321. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +3 -13
  322. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +2 -0
  323. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +3 -13
  324. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +3 -13
  325. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +2 -0
  326. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +3 -13
  327. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +3 -13
  328. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +2 -0
  329. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +3 -13
  330. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +3 -13
  331. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +2 -0
  332. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +3 -13
  333. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +3 -13
  334. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +2 -0
  335. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +3 -13
  336. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +3 -13
  337. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +2 -0
  338. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +3 -13
  339. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +3 -13
  340. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +2 -0
  341. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  342. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +39 -0
  343. package/styles/tools/mixins/settings/eunomia-border.mixin.scss +3 -3
  344. package/styles/tools/mixins/settings/eunomia-font.mixin.scss +12 -12
  345. package/styles/tools/mixins/settings/eunomia-radius.mixin.scss +4 -4
  346. package/dist/cdn/components/chunks/chunk-27Q2SLRY.js +0 -603
  347. package/dist/cdn/components/chunks/chunk-2IQUMAMI.js +0 -38
  348. package/dist/cdn/components/chunks/chunk-5TH3P53V.js +0 -16
  349. package/dist/cdn/components/chunks/chunk-7Q6AHVI5.js +0 -1
  350. package/dist/cdn/components/chunks/chunk-DENMN3WH.js +0 -48
  351. package/dist/cdn/components/chunks/chunk-MBF52GEL.js +0 -1
  352. package/dist/cdn/components/chunks/chunk-ONYUXQV2.js +0 -1
  353. package/dist/cdn/components/chunks/chunk-ZKPCO5RB.js +0 -262
  354. package/dist/components/layout/animate/animate-ssr.css +0 -64
@@ -100,4 +100,194 @@ const base = css `
100
100
  }
101
101
  }
102
102
  `;
103
- export const animateStyles = base;
103
+ /**
104
+ * \`tablet-animation\`/\`mobile-animation\` overrides — pure CSS \`@media\`
105
+ * switches, mirroring \`base\` above per animation value, so no JS ever
106
+ * needs to read the actual viewport width (see \`animate.ts\`'s own
107
+ * \`tabletAnimation\`/\`mobileAnimation\` doc comments). Placed after \`base\`
108
+ * so equal-specificity ties (e.g. both \`animation="fade"\` and
109
+ * \`tablet-animation="none"\` present at once) resolve in the narrower
110
+ * breakpoint's favor by source order, once its \`@media\` condition is true.
111
+ *
112
+ * \`max-width\` values match \`EUNOMIA_BREAKPOINTS.tablet\`/\`.mobile\`
113
+ * (\`breakpoints.ts\`) — hardcoded here since a plain CSS \`@media\` query
114
+ * can't read a JS constant.
115
+ */
116
+ const breakpoints = css `
117
+ @media (max-width: 768px) {
118
+ :host([tablet-animation="none"]) {
119
+ opacity: 1;
120
+ transform: none;
121
+ transition-property: none;
122
+ }
123
+
124
+ :host([tablet-animation="fade"]) {
125
+ opacity: 0;
126
+ transition-property: opacity;
127
+ }
128
+ :host([tablet-animation="fade"][in-view]) {
129
+ opacity: 1;
130
+ }
131
+
132
+ :host([tablet-animation="scroll-right"]) {
133
+ transform: translateX(calc(-1 * var(--_distance)));
134
+ transition-property: transform;
135
+ }
136
+ :host([tablet-animation="scroll-right"][in-view]) {
137
+ transform: translateX(0);
138
+ }
139
+
140
+ :host([tablet-animation="scroll-left"]) {
141
+ transform: translateX(var(--_distance));
142
+ transition-property: transform;
143
+ }
144
+ :host([tablet-animation="scroll-left"][in-view]) {
145
+ transform: translateX(0);
146
+ }
147
+
148
+ :host([tablet-animation="scroll-top"]) {
149
+ transform: translateY(var(--_distance));
150
+ transition-property: transform;
151
+ }
152
+ :host([tablet-animation="scroll-top"][in-view]) {
153
+ transform: translateY(0);
154
+ }
155
+
156
+ :host([tablet-animation="scroll-bottom"]) {
157
+ transform: translateY(calc(-1 * var(--_distance)));
158
+ transition-property: transform;
159
+ }
160
+ :host([tablet-animation="scroll-bottom"][in-view]) {
161
+ transform: translateY(0);
162
+ }
163
+
164
+ :host([tablet-animation="faded-scroll-right"]) {
165
+ opacity: 0;
166
+ transform: translateX(calc(-1 * var(--_distance)));
167
+ transition-property: opacity, transform;
168
+ }
169
+ :host([tablet-animation="faded-scroll-right"][in-view]) {
170
+ opacity: 1;
171
+ transform: translateX(0);
172
+ }
173
+
174
+ :host([tablet-animation="faded-scroll-left"]) {
175
+ opacity: 0;
176
+ transform: translateX(var(--_distance));
177
+ transition-property: opacity, transform;
178
+ }
179
+ :host([tablet-animation="faded-scroll-left"][in-view]) {
180
+ opacity: 1;
181
+ transform: translateX(0);
182
+ }
183
+
184
+ :host([tablet-animation="faded-scroll-top"]) {
185
+ opacity: 0;
186
+ transform: translateY(var(--_distance));
187
+ transition-property: opacity, transform;
188
+ }
189
+ :host([tablet-animation="faded-scroll-top"][in-view]) {
190
+ opacity: 1;
191
+ transform: translateY(0);
192
+ }
193
+
194
+ :host([tablet-animation="faded-scroll-bottom"]) {
195
+ opacity: 0;
196
+ transform: translateY(calc(-1 * var(--_distance)));
197
+ transition-property: opacity, transform;
198
+ }
199
+ :host([tablet-animation="faded-scroll-bottom"][in-view]) {
200
+ opacity: 1;
201
+ transform: translateY(0);
202
+ }
203
+ }
204
+
205
+ @media (max-width: 600px) {
206
+ :host([mobile-animation="none"]) {
207
+ opacity: 1;
208
+ transform: none;
209
+ transition-property: none;
210
+ }
211
+
212
+ :host([mobile-animation="fade"]) {
213
+ opacity: 0;
214
+ transition-property: opacity;
215
+ }
216
+ :host([mobile-animation="fade"][in-view]) {
217
+ opacity: 1;
218
+ }
219
+
220
+ :host([mobile-animation="scroll-right"]) {
221
+ transform: translateX(calc(-1 * var(--_distance)));
222
+ transition-property: transform;
223
+ }
224
+ :host([mobile-animation="scroll-right"][in-view]) {
225
+ transform: translateX(0);
226
+ }
227
+
228
+ :host([mobile-animation="scroll-left"]) {
229
+ transform: translateX(var(--_distance));
230
+ transition-property: transform;
231
+ }
232
+ :host([mobile-animation="scroll-left"][in-view]) {
233
+ transform: translateX(0);
234
+ }
235
+
236
+ :host([mobile-animation="scroll-top"]) {
237
+ transform: translateY(var(--_distance));
238
+ transition-property: transform;
239
+ }
240
+ :host([mobile-animation="scroll-top"][in-view]) {
241
+ transform: translateY(0);
242
+ }
243
+
244
+ :host([mobile-animation="scroll-bottom"]) {
245
+ transform: translateY(calc(-1 * var(--_distance)));
246
+ transition-property: transform;
247
+ }
248
+ :host([mobile-animation="scroll-bottom"][in-view]) {
249
+ transform: translateY(0);
250
+ }
251
+
252
+ :host([mobile-animation="faded-scroll-right"]) {
253
+ opacity: 0;
254
+ transform: translateX(calc(-1 * var(--_distance)));
255
+ transition-property: opacity, transform;
256
+ }
257
+ :host([mobile-animation="faded-scroll-right"][in-view]) {
258
+ opacity: 1;
259
+ transform: translateX(0);
260
+ }
261
+
262
+ :host([mobile-animation="faded-scroll-left"]) {
263
+ opacity: 0;
264
+ transform: translateX(var(--_distance));
265
+ transition-property: opacity, transform;
266
+ }
267
+ :host([mobile-animation="faded-scroll-left"][in-view]) {
268
+ opacity: 1;
269
+ transform: translateX(0);
270
+ }
271
+
272
+ :host([mobile-animation="faded-scroll-top"]) {
273
+ opacity: 0;
274
+ transform: translateY(var(--_distance));
275
+ transition-property: opacity, transform;
276
+ }
277
+ :host([mobile-animation="faded-scroll-top"][in-view]) {
278
+ opacity: 1;
279
+ transform: translateY(0);
280
+ }
281
+
282
+ :host([mobile-animation="faded-scroll-bottom"]) {
283
+ opacity: 0;
284
+ transform: translateY(calc(-1 * var(--_distance)));
285
+ transition-property: opacity, transform;
286
+ }
287
+ :host([mobile-animation="faded-scroll-bottom"][in-view]) {
288
+ opacity: 1;
289
+ transform: translateY(0);
290
+ }
291
+ }
292
+ `;
293
+ export const animateStyles = [base, breakpoints];
@@ -100,11 +100,11 @@ const bar = css `
100
100
  overflow: hidden;
101
101
  border-radius: var(
102
102
  --loader-bar-border-radius,
103
- var(--eun-borderRadius-full, 999px)
103
+ var(--eun-border-radius-full, 999px)
104
104
  );
105
105
  background: var(
106
106
  --loader-bar-track-color,
107
- var(--eun-color-grey-200, #ecedf0)
107
+ var(--eun-surface-sunken-strong, #ecedf0)
108
108
  );
109
109
  }
110
110
 
@@ -9,10 +9,13 @@ import { css } from "lit";
9
9
  */
10
10
  export const skeletonStyles = css `
11
11
  :host {
12
- --_color: var(--skeleton-color, var(--eun-color-grey-200, #ecedf0));
12
+ --_color: var(
13
+ --skeleton-color,
14
+ var(--eun-surface-sunken-strong, #ecedf0)
15
+ );
13
16
  --_highlight: var(
14
17
  --skeleton-highlight-color,
15
- var(--eun-color-grey-100, #f7f8fa)
18
+ var(--eun-surface-sunken, #f7f8fa)
16
19
  );
17
20
  display: block;
18
21
  width: 100%;
@@ -31,16 +34,16 @@ export const skeletonStyles = css `
31
34
  animation: eun-skeleton-shimmer 1.6s ease-in-out infinite;
32
35
  border-radius: var(
33
36
  --skeleton-border-radius,
34
- var(--eun-borderRadius-m, 8px)
37
+ var(--eun-border-radius-m, 8px)
35
38
  );
36
39
  }
37
40
  :host([variant="circle"]) span {
38
- border-radius: var(--eun-borderRadius-xl, 999px);
41
+ border-radius: var(--eun-border-radius-xl, 999px);
39
42
  }
40
43
  :host([variant="text"]) span {
41
44
  border-radius: var(
42
45
  --skeleton-border-radius,
43
- var(--eun-borderRadius-s, 5px)
46
+ var(--eun-border-radius-s, 5px)
44
47
  );
45
48
  }
46
49
  @keyframes eun-skeleton-shimmer {
@@ -17,6 +17,7 @@ export declare const EunomiaBreadcrumbItemTagName = "eun-breadcrumb-item";
17
17
  * @prop {string} [href] - The URL this step links to. Renders as plain, unlinked text when unset, such as a category that groups pages but isn't itself a page
18
18
  * @prop {boolean} [current=false] - Marks this as the trail's current, unlinked page, regardless of href
19
19
  * @prop {EunomiaIconName} [icon] - An optional leading icon shown before the slotted label. Purely decorative, so it never substitutes for the label's own visible text
20
+ * @fires {NavigationEvent} eunnavigate - Fired before following the step's link, so a client-side router can intercept the navigation. Cancelable
20
21
  * @element eun-breadcrumb-item
21
22
  */
22
23
  export declare class EunomiaBreadcrumbItem extends LitElement {
@@ -60,6 +61,12 @@ export declare class EunomiaBreadcrumbItem extends LitElement {
60
61
  * @private
61
62
  */
62
63
  private handleIconSlotChange;
64
+ /**
65
+ * Dispatches `eunnavigate` before the browser follows the link, so an
66
+ * SPA router can take over the navigation.
67
+ * @private
68
+ */
69
+ private handleClick;
63
70
  connectedCallback(): void;
64
71
  render(): TemplateResult;
65
72
  }
@@ -9,6 +9,7 @@ import { html, LitElement, nothing } from "lit";
9
9
  import { classMap } from "lit/directives/class-map.js";
10
10
  import { ifDefined } from "lit/directives/if-defined.js";
11
11
  import { breadcrumbItemStyles } from "./breadcrumb-item.styles.js";
12
+ import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
12
13
  /**
13
14
  * Tag name of the breadcrumb item component.
14
15
  */
@@ -26,6 +27,7 @@ export const EunomiaBreadcrumbItemTagName = "eun-breadcrumb-item";
26
27
  * @prop {string} [href] - The URL this step links to. Renders as plain, unlinked text when unset, such as a category that groups pages but isn't itself a page
27
28
  * @prop {boolean} [current=false] - Marks this as the trail's current, unlinked page, regardless of href
28
29
  * @prop {EunomiaIconName} [icon] - An optional leading icon shown before the slotted label. Purely decorative, so it never substitutes for the label's own visible text
30
+ * @fires {NavigationEvent} eunnavigate - Fired before following the step's link, so a client-side router can intercept the navigation. Cancelable
29
31
  * @element eun-breadcrumb-item
30
32
  */
31
33
  let EunomiaBreadcrumbItem = class EunomiaBreadcrumbItem extends LitElement {
@@ -47,6 +49,14 @@ let EunomiaBreadcrumbItem = class EunomiaBreadcrumbItem extends LitElement {
47
49
  this.requestUpdate();
48
50
  };
49
51
  }
52
+ /**
53
+ * Dispatches `eunnavigate` before the browser follows the link, so an
54
+ * SPA router can take over the navigation.
55
+ * @private
56
+ */
57
+ handleClick(event) {
58
+ handleLinkNavigation(this, event, this.href);
59
+ }
50
60
  connectedCallback() {
51
61
  super.connectedCallback?.();
52
62
  if (!this.hasAttribute("role")) {
@@ -75,7 +85,11 @@ let EunomiaBreadcrumbItem = class EunomiaBreadcrumbItem extends LitElement {
75
85
  ></span>`;
76
86
  }
77
87
  else if (this.href) {
78
- label = html `<a id="label" href=${this.href} aria-label=${ariaLabel}
88
+ label = html `<a
89
+ id="label"
90
+ href=${this.href}
91
+ aria-label=${ariaLabel}
92
+ @click=${this.handleClick}
79
93
  >${icon}<slot></slot
80
94
  ></a>`;
81
95
  }
@@ -9,7 +9,7 @@ export const breadcrumbItemStyles = css `
9
9
  display: inline-flex;
10
10
  align-items: center;
11
11
  font-family: var(--eun-font-family, "Mulish", sans-serif);
12
- font-size: var(--eun-fontSize-s, 14px);
12
+ font-size: var(--eun-font-size-s, 14px);
13
13
  }
14
14
  #label {
15
15
  max-width: var(--breadcrumb-item-max-width, 240px);
@@ -35,7 +35,7 @@ export const breadcrumbItemStyles = css `
35
35
  a#label {
36
36
  color: var(--breadcrumb-link-color, var(--eun-color-primary-500, #3d6fff));
37
37
  text-decoration: none;
38
- border-radius: var(--eun-borderRadius-s, 5px);
38
+ border-radius: var(--eun-border-radius-s, 5px);
39
39
  outline: 2px solid transparent;
40
40
  transition:
41
41
  color var(--breadcrumb-transition-duration, 0.2s) ease-out,
@@ -59,7 +59,7 @@ export const breadcrumbItemStyles = css `
59
59
  }
60
60
  span#label {
61
61
  color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
62
- font-weight: var(--eun-fontWeight-m, 500);
62
+ font-weight: var(--eun-font-weight-m, 500);
63
63
  }
64
64
  #separator {
65
65
  margin-inline: var(--breadcrumb-separator-gap, var(--eun-space-s, 8px));
@@ -37,6 +37,7 @@ export type EunomiaBreadcrumbItemData = {
37
37
  * @cssprop [--breadcrumb-item-max-width] - Sets the maximum width of each step, beyond which its label truncates with an ellipsis
38
38
  * @cssprop [--breadcrumb-gap] - Sets the row gap, used when the trail wraps onto multiple lines
39
39
  * @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
40
41
  * @element eun-breadcrumb
41
42
  */
42
43
  export declare class EunomiaBreadcrumb extends LitElement {
@@ -8,6 +8,7 @@ import { customElement, property } from "lit/decorators.js";
8
8
  import { html, LitElement, nothing } from "lit";
9
9
  import { classMap } from "lit/directives/class-map.js";
10
10
  import { breadcrumbStyles } from "./breadcrumb.styles.js";
11
+ import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
11
12
  /**
12
13
  * Tag name of the breadcrumb component.
13
14
  */
@@ -37,6 +38,7 @@ export const EunomiaBreadcrumbTagName = "eun-breadcrumb";
37
38
  * @cssprop [--breadcrumb-item-max-width] - Sets the maximum width of each step, beyond which its label truncates with an ellipsis
38
39
  * @cssprop [--breadcrumb-gap] - Sets the row gap, used when the trail wraps onto multiple lines
39
40
  * @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
40
42
  * @element eun-breadcrumb
41
43
  */
42
44
  let EunomiaBreadcrumb = class EunomiaBreadcrumb extends LitElement {
@@ -109,7 +111,11 @@ let EunomiaBreadcrumb = class EunomiaBreadcrumb extends LitElement {
109
111
  const separator = html `<span class="separator" aria-hidden="true"></span>`;
110
112
  if (item.href) {
111
113
  return html `<li>
112
- <a href=${item.href}>${icon}${item.label}</a>${separator}
114
+ <a
115
+ href=${item.href}
116
+ @click=${(event) => handleLinkNavigation(this, event, item.href)}
117
+ >${icon}${item.label}</a
118
+ >${separator}
113
119
  </li>`;
114
120
  }
115
121
  return html `<li><span>${icon}${item.label}</span>${separator}</li>`;
@@ -18,7 +18,7 @@ export const breadcrumbStyles = css `
18
18
  :host {
19
19
  display: block;
20
20
  font-family: var(--eun-font-family, "Mulish", sans-serif);
21
- font-size: var(--eun-fontSize-s, 14px);
21
+ font-size: var(--eun-font-size-s, 14px);
22
22
  }
23
23
  #list {
24
24
  display: flex;
@@ -55,7 +55,7 @@ export const breadcrumbStyles = css `
55
55
  #list li > a {
56
56
  color: var(--breadcrumb-link-color, var(--eun-color-primary-500, #3d6fff));
57
57
  text-decoration: none;
58
- border-radius: var(--eun-borderRadius-s, 5px);
58
+ border-radius: var(--eun-border-radius-s, 5px);
59
59
  outline: 2px solid transparent;
60
60
  transition:
61
61
  color var(--breadcrumb-transition-duration, 0.2s) ease-out,
@@ -79,7 +79,7 @@ export const breadcrumbStyles = css `
79
79
  }
80
80
  #list li > span {
81
81
  color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
82
- font-weight: var(--eun-fontWeight-m, 500);
82
+ font-weight: var(--eun-font-weight-m, 500);
83
83
  }
84
84
  #list li > .separator {
85
85
  margin-inline: var(--breadcrumb-separator-gap, var(--eun-space-s, 8px));
@@ -69,10 +69,14 @@ declare const EunomiaCarousel_base: import("../../../utils/constructor.type.js")
69
69
  * @prop {string} [ariaLabelNext='Next slide'] - The accessible label of the next control
70
70
  * @attr {string} [aria-label-next='Next slide'] - The accessible label of the next control
71
71
  * @fires {SlideChangeEvent} eunslidechange - Fired once the active slide settles on a new index
72
+ * @cssprop [--carousel-visible-slides] - Sets how many slides are shown at once, overriding visibleSlides. Meant to be changed from your own media or container queries, so the slide count follows the available space without any script
73
+ * @cssprop [--carousel-scroll-step] - Sets how many slides a previous, next, or dot click advances by, overriding scrollStep. Read again whenever the carousel resizes
74
+ * @cssprop [--carousel-responsive-breakpoint] - Sets the width, in pixels, below which an inline layout moves its buttons into the header row, overriding responsiveBreakpoint. Zero disables the automatic switch. Read again whenever the carousel resizes
72
75
  * @cssprop [--carousel-gap] - Sets the gap between slides
73
76
  * @cssprop [--carousel-track-padding] - Sets the vertical padding on the track, giving slides' own effects that bleed outside their box, such as a hover shadow, room to render before it gets clipped
74
77
  * @cssprop [--carousel-min-slide-width] - Sets the minimum slide width. On a narrow viewport, this wins over visibleSlides so slides never get uncomfortably small
75
78
  * @cssprop [--carousel-peek-size] - Sets how much of the next slide peeks at the edge, when fullSlides is off
79
+ * @cssprop [--carousel-fade-display] - Set to none to hide the edge fades through pure CSS, regardless of edgeFade, for instance on a narrow screen where a single slide fills the whole width
76
80
  * @cssprop [--carousel-fade-width] - Sets the width of the edge fades
77
81
  * @cssprop [--carousel-fade-color] - Sets the color of the edge fades, which fade to transparent
78
82
  * @cssprop [--carousel-active-scale] - Sets the scale applied to the active slide
@@ -240,6 +244,21 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
240
244
  * @internal
241
245
  */
242
246
  private narrow;
247
+ /**
248
+ * The slide count actually in effect : `--carousel-visible-slides` when
249
+ * set on the host (or inherited from an ancestor, e.g. from a consumer's
250
+ * own container query), `visibleSlides` otherwise. Only the live-region
251
+ * announcement needs it on the JS side, since slide sizing reads the
252
+ * custom property directly in CSS. Refreshed by {@link syncCssOverrides}.
253
+ * @internal
254
+ */
255
+ private effectiveVisibleSlides;
256
+ /**
257
+ * The scroll step actually in effect : `--carousel-scroll-step` when set,
258
+ * `scrollStep` otherwise. Refreshed by {@link syncCssOverrides}.
259
+ * @internal
260
+ */
261
+ private effectiveScrollStep;
243
262
  /**
244
263
  * The scrollable track.
245
264
  * @internal
@@ -320,9 +339,10 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
320
339
  */
321
340
  goTo(index: number): void;
322
341
  /**
323
- * Reads a length custom property (e.g. `--carousel-nav-icon-size`) off
324
- * the host as a plain number of pixels, falling back when unset or
325
- * invalid.
342
+ * Reads a numeric custom property (a length such as
343
+ * `--carousel-nav-icon-size`, or a plain count such as
344
+ * `--carousel-visible-slides`) off the host as a plain number, pixels
345
+ * for a length, falling back when unset or invalid.
326
346
  *
327
347
  * @param name the custom property's name.
328
348
  * @param fallback the value to use when unset or invalid.
@@ -351,6 +371,17 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
351
371
  * @private
352
372
  */
353
373
  private get pageCount();
374
+ /**
375
+ * Re-reads the custom properties that override a numeric prop
376
+ * (`--carousel-visible-slides`, `--carousel-scroll-step`), so a
377
+ * consumer's own media or container query can change them without any
378
+ * script. Runs on first render, whenever the matching prop changes, and
379
+ * on every resize : a query flipping these values almost always goes
380
+ * together with the carousel itself changing size, which is what the
381
+ * {@link resizeObserver} already watches.
382
+ * @private
383
+ */
384
+ private syncCssOverrides;
354
385
  /**
355
386
  * Measures, from actual rendered geometry, which slide index the track
356
387
  * will end up settling on once scrolled all the way to its true
@@ -400,8 +431,9 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
400
431
  */
401
432
  private updateCenterPadding;
402
433
  /**
403
- * Re-measures the host's own width against {@link responsiveBreakpoint},
404
- * driving {@link narrow}. A `responsiveBreakpoint` of `0` (or less)
434
+ * Re-measures the host's own width against the breakpoint in effect
435
+ * (`--carousel-responsive-breakpoint` when set, {@link responsiveBreakpoint}
436
+ * otherwise), driving {@link narrow}. A breakpoint of `0` (or less)
405
437
  * disables the auto-switch outright, leaving `narrow` permanently
406
438
  * `false`.
407
439
  * @private
@@ -449,7 +481,9 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
449
481
  */
450
482
  private goToIndex;
451
483
  /**
452
- * Advances (or retreats) by `scrollStep` slides from the current index.
484
+ * Advances (or retreats) by the scroll step in effect (see
485
+ * {@link effectiveScrollStep}), re-read first so a custom property that
486
+ * changed without a resize is still honored.
453
487
  *
454
488
  * @param direction `1` for next, `-1` for previous.
455
489
  * @private
@@ -59,10 +59,14 @@ const ACTIVE_SLIDE_CLASS = "eun-carousel-active-slide";
59
59
  * @prop {string} [ariaLabelNext='Next slide'] - The accessible label of the next control
60
60
  * @attr {string} [aria-label-next='Next slide'] - The accessible label of the next control
61
61
  * @fires {SlideChangeEvent} eunslidechange - Fired once the active slide settles on a new index
62
+ * @cssprop [--carousel-visible-slides] - Sets how many slides are shown at once, overriding visibleSlides. Meant to be changed from your own media or container queries, so the slide count follows the available space without any script
63
+ * @cssprop [--carousel-scroll-step] - Sets how many slides a previous, next, or dot click advances by, overriding scrollStep. Read again whenever the carousel resizes
64
+ * @cssprop [--carousel-responsive-breakpoint] - Sets the width, in pixels, below which an inline layout moves its buttons into the header row, overriding responsiveBreakpoint. Zero disables the automatic switch. Read again whenever the carousel resizes
62
65
  * @cssprop [--carousel-gap] - Sets the gap between slides
63
66
  * @cssprop [--carousel-track-padding] - Sets the vertical padding on the track, giving slides' own effects that bleed outside their box, such as a hover shadow, room to render before it gets clipped
64
67
  * @cssprop [--carousel-min-slide-width] - Sets the minimum slide width. On a narrow viewport, this wins over visibleSlides so slides never get uncomfortably small
65
68
  * @cssprop [--carousel-peek-size] - Sets how much of the next slide peeks at the edge, when fullSlides is off
69
+ * @cssprop [--carousel-fade-display] - Set to none to hide the edge fades through pure CSS, regardless of edgeFade, for instance on a narrow screen where a single slide fills the whole width
66
70
  * @cssprop [--carousel-fade-width] - Sets the width of the edge fades
67
71
  * @cssprop [--carousel-fade-color] - Sets the color of the edge fades, which fade to transparent
68
72
  * @cssprop [--carousel-active-scale] - Sets the scale applied to the active slide
@@ -224,6 +228,21 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
224
228
  * @internal
225
229
  */
226
230
  this.narrow = false;
231
+ /**
232
+ * The slide count actually in effect : `--carousel-visible-slides` when
233
+ * set on the host (or inherited from an ancestor, e.g. from a consumer's
234
+ * own container query), `visibleSlides` otherwise. Only the live-region
235
+ * announcement needs it on the JS side, since slide sizing reads the
236
+ * custom property directly in CSS. Refreshed by {@link syncCssOverrides}.
237
+ * @internal
238
+ */
239
+ this.effectiveVisibleSlides = 1;
240
+ /**
241
+ * The scroll step actually in effect : `--carousel-scroll-step` when set,
242
+ * `scrollStep` otherwise. Refreshed by {@link syncCssOverrides}.
243
+ * @internal
244
+ */
245
+ this.effectiveScrollStep = 1;
227
246
  /**
228
247
  * Observes the host's own size, so the active slide / edge fades stay
229
248
  * correct after a layout change that isn't a scroll (an orientation
@@ -242,6 +261,7 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
242
261
  }
243
262
  this.resizeRaf = requestAnimationFrame(() => {
244
263
  this.resizeRaf = undefined;
264
+ this.syncCssOverrides();
245
265
  this.updateFromScrollPosition();
246
266
  this.updateCenterPadding();
247
267
  this.updateNarrow();
@@ -330,6 +350,7 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
330
350
  }
331
351
  firstUpdated(changed) {
332
352
  super.firstUpdated(changed);
353
+ this.syncCssOverrides();
333
354
  this.resizeObserver.observe(this);
334
355
  }
335
356
  updated(changed) {
@@ -337,6 +358,9 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
337
358
  if (changed.has("visibleSlides")) {
338
359
  this.style.setProperty("--_visibleCount", String(Math.max(1, this.visibleSlides)));
339
360
  }
361
+ if (changed.has("visibleSlides") || changed.has("scrollStep")) {
362
+ this.syncCssOverrides();
363
+ }
340
364
  if (changed.has("centerSnap")) {
341
365
  this.style.setProperty("--_snapAlign", this.centerSnap ? "center" : "start");
342
366
  this.updateCenterPadding();
@@ -378,9 +402,10 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
378
402
  this.goToIndex(index);
379
403
  }
380
404
  /**
381
- * Reads a length custom property (e.g. `--carousel-nav-icon-size`) off
382
- * the host as a plain number of pixels, falling back when unset or
383
- * invalid.
405
+ * Reads a numeric custom property (a length such as
406
+ * `--carousel-nav-icon-size`, or a plain count such as
407
+ * `--carousel-visible-slides`) off the host as a plain number, pixels
408
+ * for a length, falling back when unset or invalid.
384
409
  *
385
410
  * @param name the custom property's name.
386
411
  * @param fallback the value to use when unset or invalid.
@@ -398,7 +423,21 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
398
423
  * @private
399
424
  */
400
425
  get pageCount() {
401
- return Math.ceil(this.maxIndex / Math.max(1, this.scrollStep)) + 1;
426
+ return Math.ceil(this.maxIndex / this.effectiveScrollStep) + 1;
427
+ }
428
+ /**
429
+ * Re-reads the custom properties that override a numeric prop
430
+ * (`--carousel-visible-slides`, `--carousel-scroll-step`), so a
431
+ * consumer's own media or container query can change them without any
432
+ * script. Runs on first render, whenever the matching prop changes, and
433
+ * on every resize : a query flipping these values almost always goes
434
+ * together with the carousel itself changing size, which is what the
435
+ * {@link resizeObserver} already watches.
436
+ * @private
437
+ */
438
+ syncCssOverrides() {
439
+ this.effectiveVisibleSlides = Math.max(1, Math.round(this.getCssPixelValue("--carousel-visible-slides", this.visibleSlides)));
440
+ this.effectiveScrollStep = Math.max(1, Math.round(this.getCssPixelValue("--carousel-scroll-step", this.scrollStep)));
402
441
  }
403
442
  /**
404
443
  * Measures, from actual rendered geometry, which slide index the track
@@ -479,16 +518,17 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
479
518
  this.style.setProperty("--_centerPadding", `${padding}px`);
480
519
  }
481
520
  /**
482
- * Re-measures the host's own width against {@link responsiveBreakpoint},
483
- * driving {@link narrow}. A `responsiveBreakpoint` of `0` (or less)
521
+ * Re-measures the host's own width against the breakpoint in effect
522
+ * (`--carousel-responsive-breakpoint` when set, {@link responsiveBreakpoint}
523
+ * otherwise), driving {@link narrow}. A breakpoint of `0` (or less)
484
524
  * disables the auto-switch outright, leaving `narrow` permanently
485
525
  * `false`.
486
526
  * @private
487
527
  */
488
528
  updateNarrow() {
529
+ const breakpoint = this.getCssPixelValue("--carousel-responsive-breakpoint", this.responsiveBreakpoint);
489
530
  this.narrow =
490
- this.responsiveBreakpoint > 0 &&
491
- this.getBoundingClientRect().width < this.responsiveBreakpoint;
531
+ breakpoint > 0 && this.getBoundingClientRect().width < breakpoint;
492
532
  }
493
533
  /**
494
534
  * Re-scans the default slot for its current slides, and (re)applies the
@@ -573,13 +613,16 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
573
613
  });
574
614
  }
575
615
  /**
576
- * Advances (or retreats) by `scrollStep` slides from the current index.
616
+ * Advances (or retreats) by the scroll step in effect (see
617
+ * {@link effectiveScrollStep}), re-read first so a custom property that
618
+ * changed without a resize is still honored.
577
619
  *
578
620
  * @param direction `1` for next, `-1` for previous.
579
621
  * @private
580
622
  */
581
623
  step(direction) {
582
- this.goToIndex(this.currentIndex + direction * Math.max(1, this.scrollStep));
624
+ this.syncCssOverrides();
625
+ this.goToIndex(this.currentIndex + direction * this.effectiveScrollStep);
583
626
  }
584
627
  /**
585
628
  * Starts the autoplay timer, if not already running, autoplay is on,
@@ -632,7 +675,7 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
632
675
  return "";
633
676
  }
634
677
  const start = this.currentIndex + 1;
635
- const visible = Math.max(1, Math.min(this.visibleSlides, this.slideCount - this.currentIndex));
678
+ const visible = Math.max(1, Math.min(this.effectiveVisibleSlides, this.slideCount - this.currentIndex));
636
679
  const end = Math.min(start + visible - 1, this.slideCount);
637
680
  return end > start
638
681
  ? `Showing slides ${start} to ${end} of ${this.slideCount}`
@@ -721,7 +764,7 @@ let EunomiaCarousel = class EunomiaCarousel extends LocalizableMixin(LitElement)
721
764
  if (!this.showDots || this.pageCount <= 1) {
722
765
  return nothing;
723
766
  }
724
- const step = Math.max(1, this.scrollStep);
767
+ const step = this.effectiveScrollStep;
725
768
  const currentPage = Math.round(this.currentIndex / step);
726
769
  return html `
727
770
  <div
@@ -892,6 +935,12 @@ __decorate([
892
935
  __decorate([
893
936
  state()
894
937
  ], EunomiaCarousel.prototype, "narrow", void 0);
938
+ __decorate([
939
+ state()
940
+ ], EunomiaCarousel.prototype, "effectiveVisibleSlides", void 0);
941
+ __decorate([
942
+ state()
943
+ ], EunomiaCarousel.prototype, "effectiveScrollStep", void 0);
895
944
  __decorate([
896
945
  query("#track")
897
946
  ], EunomiaCarousel.prototype, "trackEl", void 0);