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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/README.md +1 -1
  2. package/dist/breakpoints.d.ts +37 -10
  3. package/dist/breakpoints.js +38 -10
  4. package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
  5. package/dist/cdn/components/chunks/{chunk-OW7XKDCH.js → chunk-2Y2EU2CI.js} +16 -16
  6. package/dist/cdn/components/chunks/{chunk-LFCXUVDO.js → chunk-4PI6RDUS.js} +1 -1
  7. package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
  8. package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
  9. package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
  10. package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
  11. package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
  12. package/dist/cdn/components/chunks/{chunk-EAKYD33D.js → chunk-BQFJR2UP.js} +4 -4
  13. package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
  14. package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
  15. package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
  16. package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
  17. package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
  18. package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
  19. package/dist/cdn/components/chunks/{chunk-IDKZKLJR.js → chunk-KDN4O5W2.js} +24 -11
  20. package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
  21. package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
  22. package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
  23. package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
  24. package/dist/cdn/components/chunks/{chunk-2XASWWKR.js → chunk-MQQ4BGVJ.js} +5 -5
  25. package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
  26. package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
  27. package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
  28. package/dist/cdn/components/chunks/{chunk-6ETDXUH2.js → chunk-PMPSJG5V.js} +7 -7
  29. package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
  30. package/dist/cdn/components/chunks/{chunk-AIS3UICU.js → chunk-QZ5SHR3I.js} +9 -5
  31. package/dist/cdn/components/chunks/{chunk-32DTNR52.js → chunk-RS7TWEMQ.js} +1 -1
  32. package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
  33. package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-SZYEBMG6.js} +10 -9
  34. package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-UDVB4LAE.js} +5 -2
  35. package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
  36. package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
  37. package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
  38. package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
  39. package/dist/cdn/components/chunks/{chunk-DKOPI7QA.js → chunk-VYFR364B.js} +73 -63
  40. package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-XDPRWUKN.js} +1 -1
  41. package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
  42. package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
  43. package/dist/cdn/components/chunks/{chunk-NBIENHLV.js → chunk-ZKZV2YG5.js} +18 -18
  44. package/dist/cdn/components/eun-alert.js +24 -16
  45. package/dist/cdn/components/eun-animate.js +12 -8
  46. package/dist/cdn/components/eun-badge.js +1 -1
  47. package/dist/cdn/components/eun-breadcrumb.js +25 -41
  48. package/dist/cdn/components/eun-button.js +1 -1
  49. package/dist/cdn/components/eun-calendar.js +67 -65
  50. package/dist/cdn/components/eun-card.js +32 -17
  51. package/dist/cdn/components/eun-carousel.js +66 -35
  52. package/dist/cdn/components/eun-check-card.js +13 -6
  53. package/dist/cdn/components/eun-checkbox-list.js +4 -4
  54. package/dist/cdn/components/eun-checkbox.js +1 -1
  55. package/dist/cdn/components/eun-chip.js +1 -1
  56. package/dist/cdn/components/eun-collapse.js +56 -27
  57. package/dist/cdn/components/eun-color-picker.js +53 -52
  58. package/dist/cdn/components/eun-counter.js +9 -8
  59. package/dist/cdn/components/eun-date-picker.js +59 -56
  60. package/dist/cdn/components/eun-description-list.js +152 -0
  61. package/dist/cdn/components/eun-divider.js +1 -1
  62. package/dist/cdn/components/eun-drawer.js +32 -18
  63. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  64. package/dist/cdn/components/eun-dropdown-item.js +6 -5
  65. package/dist/cdn/components/eun-fab.js +17 -16
  66. package/dist/cdn/components/eun-icon.js +1 -1
  67. package/dist/cdn/components/eun-image-card.js +79 -22
  68. package/dist/cdn/components/eun-image-carousel.js +92 -47
  69. package/dist/cdn/components/eun-infinite-list.js +23 -11
  70. package/dist/cdn/components/eun-input-file.js +14 -13
  71. package/dist/cdn/components/eun-input-phone.js +15 -15
  72. package/dist/cdn/components/eun-input.js +1 -1
  73. package/dist/cdn/components/eun-label.js +4 -4
  74. package/dist/cdn/components/eun-link.js +78 -29
  75. package/dist/cdn/components/eun-loader.js +1 -1
  76. package/dist/cdn/components/eun-modal.js +17 -10
  77. package/dist/cdn/components/eun-pagination.js +17 -12
  78. package/dist/cdn/components/eun-password-strength.js +6 -2
  79. package/dist/cdn/components/eun-progress-bar.js +13 -5
  80. package/dist/cdn/components/eun-radio-card.js +16 -9
  81. package/dist/cdn/components/eun-radio-list.js +4 -4
  82. package/dist/cdn/components/eun-radio.js +1 -1
  83. package/dist/cdn/components/eun-scheduler-event-editor.js +1 -1
  84. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  85. package/dist/cdn/components/eun-scheduler.js +36 -36
  86. package/dist/cdn/components/eun-search.js +11 -10
  87. package/dist/cdn/components/eun-select.js +12 -11
  88. package/dist/cdn/components/eun-sidebar.js +34 -20
  89. package/dist/cdn/components/eun-skeleton.js +1 -1
  90. package/dist/cdn/components/eun-slider.js +15 -14
  91. package/dist/cdn/components/eun-sliding-card.js +8 -4
  92. package/dist/cdn/components/eun-step.js +17 -6
  93. package/dist/cdn/components/eun-stepper.js +17 -6
  94. package/dist/cdn/components/eun-switch.js +10 -8
  95. package/dist/cdn/components/eun-tab-group.js +22 -17
  96. package/dist/cdn/components/eun-tab-panel.js +11 -3
  97. package/dist/cdn/components/eun-tab.js +1 -1
  98. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  99. package/dist/cdn/components/eun-table.js +572 -31
  100. package/dist/cdn/components/eun-tag.js +13 -7
  101. package/dist/cdn/components/eun-textarea.js +23 -23
  102. package/dist/cdn/components/eun-time-picker.js +17 -15
  103. package/dist/cdn/components/eun-toast.js +36 -16
  104. package/dist/cdn/components/eun-toggle-group.js +53 -34
  105. package/dist/cdn/components/eun-toggle-item.js +16 -15
  106. package/dist/cdn/components/eun-toggle.js +12 -10
  107. package/dist/cdn/components/eun-toolbar.js +62 -52
  108. package/dist/cdn/components/eun-tooltip.js +30 -14
  109. package/dist/cdn/styles/breakpoints.scss +8 -0
  110. package/dist/cdn/styles/eunomia-grid.scss +6 -0
  111. package/dist/cdn/styles/eunomia-themes.css +1 -1
  112. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  113. package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
  114. package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  115. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  116. package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  117. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  118. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  119. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  120. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  121. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  122. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  123. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  124. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  125. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  126. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  127. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  128. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  129. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  130. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  131. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  132. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  133. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  134. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  135. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  136. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  137. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  138. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  139. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  140. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  141. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  142. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  143. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  144. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  145. package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  146. package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  147. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  148. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  149. package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  150. package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  151. package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  152. package/dist/components/action/button/button.d.ts +7 -2
  153. package/dist/components/action/button/button.js +7 -2
  154. package/dist/components/action/button/button.styles.js +51 -36
  155. package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
  156. package/dist/components/action/dropdown-button/dropdown-button.js +11 -10
  157. package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
  158. package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
  159. package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
  160. package/dist/components/action/fab/fab.styles.js +14 -13
  161. package/dist/components/action/link/link.d.ts +7 -3
  162. package/dist/components/action/link/link.js +11 -7
  163. package/dist/components/action/link/link.styles.js +66 -15
  164. package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
  165. package/dist/components/action/toggle/toggle-group.d.ts +2 -0
  166. package/dist/components/action/toggle/toggle-group.js +5 -3
  167. package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
  168. package/dist/components/action/toggle/toggle-group.styles.js +42 -21
  169. package/dist/components/action/toggle/toggle-item.styles.js +13 -12
  170. package/dist/components/action/toggle/toggle.d.ts +2 -0
  171. package/dist/components/action/toggle/toggle.js +2 -0
  172. package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
  173. package/dist/components/action/toggle/toggle.styles.js +12 -8
  174. package/dist/components/alert/alert/alert.d.ts +2 -0
  175. package/dist/components/alert/alert/alert.js +2 -0
  176. package/dist/components/alert/alert/alert.styles.js +23 -13
  177. package/dist/components/alert/drawer/drawer.d.ts +3 -1
  178. package/dist/components/alert/drawer/drawer.js +4 -2
  179. package/dist/components/alert/drawer/drawer.styles.js +25 -9
  180. package/dist/components/alert/modal/modal.d.ts +3 -1
  181. package/dist/components/alert/modal/modal.js +4 -2
  182. package/dist/components/alert/modal/modal.styles.js +16 -7
  183. package/dist/components/alert/toast/toast.d.ts +2 -0
  184. package/dist/components/alert/toast/toast.js +2 -0
  185. package/dist/components/alert/toast/toast.styles.js +37 -15
  186. package/dist/components/content/card/card.d.ts +7 -3
  187. package/dist/components/content/card/card.js +7 -3
  188. package/dist/components/content/card/card.styles.js +26 -11
  189. package/dist/components/content/card/image-card.d.ts +60 -6
  190. package/dist/components/content/card/image-card.js +120 -11
  191. package/dist/components/content/card/image-card.styles.js +66 -15
  192. package/dist/components/content/card/sliding-card.d.ts +2 -0
  193. package/dist/components/content/card/sliding-card.js +2 -0
  194. package/dist/components/content/card/sliding-card.styles.js +5 -1
  195. package/dist/components/content/collapse/collapse.d.ts +10 -1
  196. package/dist/components/content/collapse/collapse.js +12 -2
  197. package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
  198. package/dist/components/content/collapse/collapse.styles.js +56 -18
  199. package/dist/components/content/description-list/description-list.d.ts +87 -0
  200. package/dist/components/content/description-list/description-list.js +107 -0
  201. package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
  202. package/dist/components/content/description-list/description-list.styles.js +185 -0
  203. package/dist/components/content/icon/icon.d.ts +2 -0
  204. package/dist/components/content/icon/icon.js +2 -0
  205. package/dist/components/content/icon/icon.style.js +4 -1
  206. package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
  207. package/dist/components/content/image-carousel/image-carousel.js +48 -45
  208. package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
  209. package/dist/components/content/password-strength/password-strength.styles.js +5 -1
  210. package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
  211. package/dist/components/content/shared-styles/card-link.styles.js +4 -3
  212. package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
  213. package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
  214. package/dist/components/content/tag/tag.d.ts +4 -0
  215. package/dist/components/content/tag/tag.js +4 -0
  216. package/dist/components/content/tag/tag.styles.js +14 -4
  217. package/dist/components/content/tooltip/tooltip.d.ts +3 -2
  218. package/dist/components/content/tooltip/tooltip.js +9 -16
  219. package/dist/components/content/tooltip/tooltip.styles.js +25 -7
  220. package/dist/components/form/checkbox/check-card.d.ts +4 -1
  221. package/dist/components/form/checkbox/check-card.js +4 -1
  222. package/dist/components/form/checkbox/check-card.styles.js +13 -4
  223. package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
  224. package/dist/components/form/checkbox/checkbox-list.js +11 -7
  225. package/dist/components/form/checkbox/checkbox.d.ts +4 -1
  226. package/dist/components/form/checkbox/checkbox.js +4 -1
  227. package/dist/components/form/checkbox/checkbox.styles.js +2 -2
  228. package/dist/components/form/color-picker/color-picker.d.ts +7 -1
  229. package/dist/components/form/color-picker/color-picker.js +19 -21
  230. package/dist/components/form/color-picker/color-picker.styles.js +6 -5
  231. package/dist/components/form/counter/counter.d.ts +4 -1
  232. package/dist/components/form/counter/counter.js +5 -2
  233. package/dist/components/form/counter/counter.styles.js +5 -4
  234. package/dist/components/form/date-picker/date-picker.d.ts +37 -33
  235. package/dist/components/form/date-picker/date-picker.js +32 -42
  236. package/dist/components/form/date-picker/date-picker.styles.js +8 -5
  237. package/dist/components/form/input/input.d.ts +7 -1
  238. package/dist/components/form/input/input.js +8 -2
  239. package/dist/components/form/input-file/input-file.d.ts +4 -1
  240. package/dist/components/form/input-file/input-file.js +8 -5
  241. package/dist/components/form/input-file/input-file.styles.js +3 -2
  242. package/dist/components/form/input-phone/input-phone.d.ts +8 -2
  243. package/dist/components/form/input-phone/input-phone.js +13 -17
  244. package/dist/components/form/input-phone/input-phone.styles.js +4 -4
  245. package/dist/components/form/label/label.styles.js +3 -3
  246. package/dist/components/form/radio/radio-card.d.ts +5 -2
  247. package/dist/components/form/radio/radio-card.js +5 -2
  248. package/dist/components/form/radio/radio-card.styles.js +14 -5
  249. package/dist/components/form/radio/radio-list.d.ts +5 -2
  250. package/dist/components/form/radio/radio-list.js +14 -10
  251. package/dist/components/form/radio/radio.d.ts +5 -2
  252. package/dist/components/form/radio/radio.js +5 -2
  253. package/dist/components/form/radio/radio.styles.js +4 -4
  254. package/dist/components/form/search/search.d.ts +2 -1
  255. package/dist/components/form/search/search.js +6 -15
  256. package/dist/components/form/search/search.styles.js +5 -4
  257. package/dist/components/form/select/select.d.ts +9 -2
  258. package/dist/components/form/select/select.js +15 -18
  259. package/dist/components/form/select/select.styles.js +3 -2
  260. package/dist/components/form/shared-styles/card.styles.js +5 -4
  261. package/dist/components/form/shared-styles/field.styles.js +16 -6
  262. package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
  263. package/dist/components/form/slider/slider.d.ts +4 -1
  264. package/dist/components/form/slider/slider.js +5 -2
  265. package/dist/components/form/slider/slider.styles.js +8 -7
  266. package/dist/components/form/switch/switch.d.ts +4 -1
  267. package/dist/components/form/switch/switch.js +4 -1
  268. package/dist/components/form/switch/switch.styles.js +7 -5
  269. package/dist/components/form/textarea/textarea.d.ts +7 -1
  270. package/dist/components/form/textarea/textarea.js +14 -8
  271. package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
  272. package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
  273. package/dist/components/form/time-picker/time-picker.d.ts +6 -2
  274. package/dist/components/form/time-picker/time-picker.js +22 -26
  275. package/dist/components/form/time-picker/time-picker.styles.js +4 -3
  276. package/dist/components/layout/animate/animate.d.ts +37 -15
  277. package/dist/components/layout/animate/animate.js +35 -15
  278. package/dist/components/layout/animate/animate.styles.js +9 -16
  279. package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
  280. package/dist/components/layout/infinite-list/infinite-list.js +115 -18
  281. package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
  282. package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
  283. package/dist/components/loader/loader/loader.styles.js +3 -1
  284. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
  285. package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
  286. package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
  287. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
  288. package/dist/components/navigation/carousel/carousel.d.ts +30 -10
  289. package/dist/components/navigation/carousel/carousel.js +37 -18
  290. package/dist/components/navigation/carousel/carousel.styles.js +60 -20
  291. package/dist/components/navigation/pagination/pagination.styles.js +8 -3
  292. package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
  293. package/dist/components/navigation/sidebar/sidebar.js +2 -0
  294. package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
  295. package/dist/components/navigation/stepper/step.styles.js +16 -5
  296. package/dist/components/navigation/stepper/stepper.styles.js +16 -5
  297. package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
  298. package/dist/components/navigation/tabs/tab/tab.js +11 -0
  299. package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
  300. package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
  301. package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
  302. package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
  303. package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
  304. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
  305. package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
  306. package/dist/components/navigation/toolbar/toolbar.js +23 -71
  307. package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
  308. package/dist/events/table-row-click.event.d.ts +5 -4
  309. package/dist/events/table-row-click.event.js +10 -5
  310. package/dist/features/scheduler/calendar/calendar.d.ts +6 -6
  311. package/dist/features/scheduler/calendar/calendar.js +6 -5
  312. package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
  313. package/dist/features/scheduler/scheduler/scheduler.d.ts +1 -1
  314. package/dist/features/scheduler/scheduler/scheduler.js +9 -23
  315. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
  316. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
  317. package/dist/features/scheduler/scheduler-event/scheduler-event.js +2 -0
  318. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +10 -4
  319. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
  320. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
  321. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
  322. package/dist/features/table/table/table-native.styles.d.ts +28 -0
  323. package/dist/features/table/table/table-native.styles.js +502 -0
  324. package/dist/features/table/table/table.d.ts +342 -294
  325. package/dist/features/table/table/table.js +820 -546
  326. package/dist/features/table/table/table.styles.js +31 -17
  327. package/dist/features/table/table/table.types.d.ts +11 -20
  328. package/dist/features/table/table/table.utils.d.ts +6 -36
  329. package/dist/features/table/table/table.utils.js +16 -65
  330. package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
  331. package/dist/features/table/table-action-bar/table-action-bar.js +15 -22
  332. package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
  333. package/dist/i18n/en.d.ts +31 -0
  334. package/dist/i18n/en.js +31 -0
  335. package/dist/i18n/fr.js +35 -0
  336. package/dist/index.d.ts +4 -10
  337. package/dist/index.js +6 -10
  338. package/dist/mixins/check.mixin.js +4 -5
  339. package/dist/mixins/form.mixin.d.ts +17 -1
  340. package/dist/mixins/form.mixin.js +80 -25
  341. package/dist/mixins/radio.mixin.js +4 -5
  342. package/dist/mixins/validators.mixin.d.ts +7 -1
  343. package/dist/mixins/validators.mixin.js +36 -17
  344. package/dist/ssr/animate-ssr.css +3 -2
  345. package/dist/ssr/button-ssr.css +319 -0
  346. package/dist/ssr/card-ssr.css +184 -0
  347. package/dist/ssr/description-list-ssr.css +150 -0
  348. package/dist/ssr/links-ssr.css +1 -1
  349. package/dist/ssr/table-ssr.css +472 -0
  350. package/dist/ssr/tag-ssr.css +197 -0
  351. package/dist/ssr/toolbar-ssr.css +5 -1
  352. package/dist/utils/drag-drop.utils.js +18 -2
  353. package/dist/utils/dropdown-menu.utils.d.ts +2 -2
  354. package/dist/utils/dropdown-menu.utils.js +4 -14
  355. package/dist/utils/light-dom-styles.utils.d.ts +14 -0
  356. package/dist/utils/light-dom-styles.utils.js +37 -0
  357. package/dist/utils/media.styles.d.ts +19 -0
  358. package/dist/utils/media.styles.js +23 -0
  359. package/dist/utils/motion.utils.d.ts +40 -0
  360. package/dist/utils/motion.utils.js +51 -0
  361. package/dist/utils/theme-generator.utils.d.ts +6 -1
  362. package/dist/utils/theme-generator.utils.js +59 -20
  363. package/package.json +17 -28
  364. package/styles/breakpoints.scss +8 -0
  365. package/styles/eunomia-grid.scss +6 -0
  366. package/styles/themes/eunomia-theme.scss +4 -3
  367. package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
  368. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
  369. package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
  370. package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
  371. package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
  372. package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
  373. package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
  374. package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
  375. package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
  376. package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
  377. package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
  378. package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
  379. package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
  380. package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
  381. package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
  382. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
  383. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
  384. package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
  385. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
  386. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
  387. package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
  388. package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
  389. package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
  390. package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
  391. package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
  392. package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
  393. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
  394. package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
  395. package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
  396. package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
  397. package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
  398. package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
  399. package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
  400. package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
  401. package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
  402. package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
  403. package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
  404. package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
  405. package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
  406. package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
  407. package/dist/cdn/components/chunks/chunk-SJWRE6PW.js +0 -1
  408. package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
  409. package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
  410. package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
  411. package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
  412. package/dist/cdn/components/eun-table-cell.js +0 -1
  413. package/dist/cdn/components/eun-table-column.js +0 -1
  414. package/dist/cdn/components/eun-table-header.js +0 -1
  415. package/dist/cdn/components/eun-table-item.js +0 -1
  416. package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
  417. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  418. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  419. package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
  420. package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
  421. package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
  422. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
  423. package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
  424. package/dist/features/table/native-table.css +0 -276
  425. package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
  426. package/dist/features/table/shared-styles/table-row.styles.js +0 -47
  427. package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
  428. package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
  429. package/dist/features/table/table-cell/table-cell.d.ts +0 -59
  430. package/dist/features/table/table-cell/table-cell.js +0 -73
  431. package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
  432. package/dist/features/table/table-cell/table-cell.styles.js +0 -46
  433. package/dist/features/table/table-column/table-column.d.ts +0 -73
  434. package/dist/features/table/table-column/table-column.js +0 -89
  435. package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
  436. package/dist/features/table/table-column/table-column.styles.js +0 -51
  437. package/dist/features/table/table-header/table-header.d.ts +0 -102
  438. package/dist/features/table/table-header/table-header.js +0 -165
  439. package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
  440. package/dist/features/table/table-header/table-header.styles.js +0 -147
  441. package/dist/features/table/table-item/table-item.d.ts +0 -179
  442. package/dist/features/table/table-item/table-item.js +0 -291
  443. package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
  444. package/dist/features/table/table-item/table-item.styles.js +0 -404
  445. package/dist/features/table/table-managed/table-managed.d.ts +0 -19
  446. package/dist/features/table/table-managed/table-managed.js +0 -128
  447. package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
  448. package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
  449. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
  450. package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
  451. package/dist/mixins/table-row.mixin.d.ts +0 -37
  452. package/dist/mixins/table-row.mixin.js +0 -103
  453. package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
  454. package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
  455. package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
@@ -15,13 +15,14 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
15
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
16
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
17
  };
18
- var _EunomiaInfiniteList_instances, _EunomiaInfiniteList_items, _EunomiaInfiniteList_mountedPages, _EunomiaInfiniteList_detachedByPage, _EunomiaInfiniteList_pageHeights, _EunomiaInfiniteList_avgItemHeight, _EunomiaInfiniteList_activeIndex, _EunomiaInfiniteList_mutatingSlot, _EunomiaInfiniteList_requestedPages, _EunomiaInfiniteList_resizeObserver, _EunomiaInfiniteList_applyItemAttributes, _EunomiaInfiniteList_handleScroll, _EunomiaInfiniteList_syncPages, _EunomiaInfiniteList_estimateCenterPage, _EunomiaInfiniteList_estimatePageHeight, _EunomiaInfiniteList_mountPage, _EunomiaInfiniteList_unmountPage, _EunomiaInfiniteList_setupLoadObserver, _EunomiaInfiniteList_maybeLoadMore, _EunomiaInfiniteList_focusItem, _EunomiaInfiniteList_focusOutside, _EunomiaInfiniteList_handleKeydown, _EunomiaInfiniteList_handleFocusIn, _EunomiaInfiniteList_handleSlotChange;
18
+ var _EunomiaInfiniteList_instances, _EunomiaInfiniteList_items, _EunomiaInfiniteList_mountedPages, _EunomiaInfiniteList_detachedByPage, _EunomiaInfiniteList_pageHeights, _EunomiaInfiniteList_avgItemHeight, _EunomiaInfiniteList_activeIndex, _EunomiaInfiniteList_mutatingSlot, _EunomiaInfiniteList_requestedPages, _EunomiaInfiniteList_resizeObserver, _EunomiaInfiniteList_contained, _EunomiaInfiniteList_columns, _EunomiaInfiniteList_applyItemAttributes, _EunomiaInfiniteList_syncLayout, _EunomiaInfiniteList_handleScroll, _EunomiaInfiniteList_handleWindowScroll, _EunomiaInfiniteList_syncPages, _EunomiaInfiniteList_estimateCenterPage, _EunomiaInfiniteList_estimatePageHeight, _EunomiaInfiniteList_mountPage, _EunomiaInfiniteList_unmountPage, _EunomiaInfiniteList_setupLoadObserver, _EunomiaInfiniteList_maybeLoadMore, _EunomiaInfiniteList_focusItem, _EunomiaInfiniteList_focusOutside, _EunomiaInfiniteList_handleKeydown, _EunomiaInfiniteList_handleFocusIn, _EunomiaInfiniteList_handleFocusOut, _EunomiaInfiniteList_handleSlotChange;
19
19
  import { customElement, property, query, state } from "lit/decorators.js";
20
20
  import { html, LitElement } from "lit";
21
21
  import { ifDefined } from "lit/directives/if-defined.js";
22
22
  import { infiniteListStyles } from "./infinite-list.styles.js";
23
23
  import { LoadMoreEvent } from "../../../events/loadmore.event.js";
24
24
  import { LoadMoreSentinelMixin } from "../../../mixins/load-more-sentinel.mixin.js";
25
+ import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
25
26
  import "../../loader/loader/loader.js";
26
27
  /**
27
28
  * Tag name of the infinite list component.
@@ -72,24 +73,29 @@ const FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), input:not([disabled
72
73
  * @slot [end] - Shown once hasMore is false, its own default, and every item has been slotted at least once. Empty by default, rendering nothing until you provide content
73
74
  * @slot [empty] - Shown while there are zero items and loading is false
74
75
  * @prop {number} [pageSize=20] - The number of items per page, both the unit the load-more event requests are made in, and the chunk size virtualization mounts and unmounts as a whole
75
- * @prop {boolean} [virtualize=true] - Detaches pages far from the current scroll position once the list exceeds virtualizeThreshold, replacing each with a single sized spacer. Sound for a single-column, block or flex-column layout, not for a CSS grid of items
76
+ * @prop {boolean} [virtualize=false] - Detaches pages far from the current scroll position once the list exceeds virtualizeThreshold, replacing each with a single sized spacer. Ignored while --infinite-list-columns is above 1, and best left off when a framework renders the items
76
77
  * @prop {number} [virtualizeThreshold=100] - The total known item count above which virtualize actually starts detaching pages. Below it, every page stays mounted, since the bookkeeping isn't worth it for a short list
77
78
  * @prop {number} [bufferPages=1] - The number of extra pages kept mounted before and after the page currently in view, so a small scroll doesn't immediately re-trigger a mount or unmount
78
79
  * @prop {boolean} [loading=false] - Whether a load-more request is in flight. The list sets this to true itself right before dispatching the event, since only it can detect the scroll trigger. Setting it back to false once the new items are appended, or there aren't any, is your own responsibility, exactly like the search and select components' own loading
79
80
  * @prop {boolean} [hasMore=false] - Whether more items can still be obtained, from local unrevealed children or a future load-more page. Defaults to false, so the zero-config, no script needed static case is the default, and API-paginated consumers opt in explicitly. Set it back to false once you've exhausted your dataset, or it keeps requesting empty pages forever
80
- * @prop {string} [loadingLabel='Loading more items…'] - The accessible label passed to the trailing loading indicator
81
+ * @prop {string} [loadingLabel] - The accessible label passed to the trailing loading indicator. Defaults to the localized string for the current locale (English: "Loading more items…")
82
+ * @prop {'roving' | 'none'} [itemTabStop='roving'] - How items enter the tab order. With roving, the active item is the list's single Tab stop. With none, no item is a Tab stop, so Tab only reaches the links and buttons inside them, while the arrow, Page Up/Down, Home and End keys still move between items
81
83
  * @prop {string} [label] - The accessible name for the feed region. Strongly recommended
82
84
  * @prop {string} [rootMargin='400px'] - How far before the physical end of the list the load-more event triggers, as a CSS-like margin. The default preloads a page before the user actually hits the bottom, so the loading indicator rarely shows for long
83
85
  * @fires {LoadMoreEvent} eunloadmore - Fired when more items are needed and hasMore is true. Loading is already true by the time this fires
84
86
  * @cssprop [--infinite-list-height] - Sets a fixed height, past which the list scrolls internally instead of the surrounding page. Unset, the default, the list grows with its content and the page scrolls it like any other block
87
+ * @cssprop [--infinite-list-columns] - Sets the number of columns items are laid out in, as a grid. Above 1, virtualization is turned off
85
88
  * @cssprop [--infinite-list-gap] - Sets the gap between items
86
89
  * @cssprop [--infinite-list-padding] - Sets the padding around the scrollable area
90
+ * @cssprop [--infinite-list-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
91
+ * @cssprop [--infinite-list-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
87
92
  * @cssprop [--infinite-list-loading-padding] - Sets the padding around the trailing loading indicator
88
93
  * @cssprop [--infinite-list-end-color] - Sets the color of the default end and empty slot area
89
94
  * @cssprop [--infinite-list-focus-outline-color] - Sets a fallback focus outline color applied to slotted items that don't set their own
95
+ * @csspart feed - The element wrapping the items, laid out as a grid
90
96
  * @element eun-infinite-list
91
97
  */
92
- let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixin(LitElement) {
98
+ let EunomiaInfiniteList = class EunomiaInfiniteList extends LocalizableMixin(LoadMoreSentinelMixin(LitElement)) {
93
99
  constructor() {
94
100
  super(...arguments);
95
101
  _EunomiaInfiniteList_instances.add(this);
@@ -100,10 +106,12 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
100
106
  this.pageSize = 20;
101
107
  /**
102
108
  * Detaches pages far from the current scroll position once the list
103
- * exceeds `virtualizeThreshold`.
104
- * @default true
109
+ * exceeds `virtualizeThreshold`. Off by default, so a framework that
110
+ * renders the items (and can only set attributes before the element
111
+ * upgrades) never has to turn it off.
112
+ * @default false
105
113
  */
106
- this.virtualize = true;
114
+ this.virtualize = false;
107
115
  /**
108
116
  * Total known item count above which `virtualize` actually starts
109
117
  * detaching pages.
@@ -132,10 +140,12 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
132
140
  */
133
141
  this.hasMore = false;
134
142
  /**
135
- * Accessible label passed to the trailing `eun-loader`.
136
- * @default Loading more items…
143
+ * How items enter the tab order : `roving` keeps the active item as the
144
+ * list's single Tab stop, `none` leaves them all out of it, for items
145
+ * that already hold their own link or button.
146
+ * @default roving
137
147
  */
138
- this.loadingLabel = "Loading more items…";
148
+ this.itemTabStop = "roving";
139
149
  /**
140
150
  * How far before the physical end of the list `eunloadmore` triggers.
141
151
  * @default 400px
@@ -205,9 +215,25 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
205
215
  * @internal
206
216
  */
207
217
  _EunomiaInfiniteList_resizeObserver.set(this, void 0);
218
+ /**
219
+ * Whether `--infinite-list-height` bounds {@link scrollerEl}, so the list
220
+ * scrolls internally instead of the page.
221
+ * @internal
222
+ */
223
+ _EunomiaInfiniteList_contained.set(this, false);
224
+ /**
225
+ * Column count read from `--infinite-list-columns`.
226
+ * @internal
227
+ */
228
+ _EunomiaInfiniteList_columns.set(this, 1);
208
229
  _EunomiaInfiniteList_handleScroll.set(this, () => {
209
230
  this.scheduleAnimationFrame(() => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this));
210
231
  });
232
+ _EunomiaInfiniteList_handleWindowScroll.set(this, () => {
233
+ if (!__classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")) {
234
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_handleScroll, "f").call(this);
235
+ }
236
+ });
211
237
  _EunomiaInfiniteList_handleKeydown.set(this, (event) => {
212
238
  if (event.defaultPrevented) {
213
239
  return;
@@ -257,19 +283,47 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
257
283
  __classPrivateFieldSet(this, _EunomiaInfiniteList_activeIndex, index, "f");
258
284
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
259
285
  });
286
+ /**
287
+ * Drops the `tabindex` an item only got to take focus from the keyboard
288
+ * (`itemTabStop` set to `none`) once focus leaves it.
289
+ * @private
290
+ */
291
+ _EunomiaInfiniteList_handleFocusOut.set(this, (event) => {
292
+ const target = event.target;
293
+ if (this.itemTabStop === "none" &&
294
+ target instanceof HTMLElement &&
295
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").includes(target)) {
296
+ target.removeAttribute("tabindex");
297
+ }
298
+ });
260
299
  _EunomiaInfiniteList_handleSlotChange.set(this, () => {
261
300
  this.syncItemsFromLightDom();
262
301
  });
263
302
  }
303
+ connectedCallback() {
304
+ super.connectedCallback();
305
+ window.addEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleWindowScroll, "f"), {
306
+ passive: true,
307
+ });
308
+ if (this.hasUpdated && this.scrollerEl) {
309
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f")?.observe(this.scrollerEl);
310
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
311
+ }
312
+ }
264
313
  disconnectedCallback() {
265
314
  this.teardownLoadMoreSentinel();
266
315
  __classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f")?.disconnect();
316
+ window.removeEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleWindowScroll, "f"));
267
317
  super.disconnectedCallback();
268
318
  }
269
319
  firstUpdated() {
320
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncLayout).call(this);
270
321
  this.syncItemsFromLightDom();
271
322
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
272
- __classPrivateFieldSet(this, _EunomiaInfiniteList_resizeObserver, new ResizeObserver(() => this.scheduleAnimationFrame(() => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this))), "f");
323
+ __classPrivateFieldSet(this, _EunomiaInfiniteList_resizeObserver, new ResizeObserver(() => this.scheduleAnimationFrame(() => {
324
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncLayout).call(this);
325
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this);
326
+ })), "f");
273
327
  if (this.scrollerEl) {
274
328
  __classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f").observe(this.scrollerEl);
275
329
  this.scrollerEl.addEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleScroll, "f"), {
@@ -278,13 +332,14 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
278
332
  }
279
333
  this.addEventListener("keydown", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleKeydown, "f"));
280
334
  this.addEventListener("focusin", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleFocusIn, "f"));
335
+ this.addEventListener("focusout", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleFocusOut, "f"));
281
336
  }
282
337
  updated(changed) {
283
338
  super.updated(changed);
284
339
  if (changed.has("rootMargin")) {
285
340
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
286
341
  }
287
- if (changed.has("hasMore")) {
342
+ if (changed.has("hasMore") || changed.has("itemTabStop")) {
288
343
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
289
344
  }
290
345
  if (changed.has("virtualize") ||
@@ -346,7 +401,8 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
346
401
  __classPrivateFieldSet(this, _EunomiaInfiniteList_mountedPages, mountedPages, "f");
347
402
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
348
403
  if (isAppend && addedCount > 0 && this.announcerEl) {
349
- this.announcerEl.textContent = `${addedCount} more item${addedCount > 1 ? "s" : ""} loaded`;
404
+ this.announcerEl.textContent =
405
+ this.dictionary.infiniteList.itemsLoaded(addedCount);
350
406
  }
351
407
  this.scheduleAnimationFrame(() => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this));
352
408
  this.reobserveSentinel(this.sentinelEl);
@@ -358,6 +414,7 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
358
414
  <div id="scroller">
359
415
  <div
360
416
  id="feed"
417
+ part="feed"
361
418
  role="feed"
362
419
  aria-label=${ifDefined(this.label)}
363
420
  aria-busy=${this.loading ? "true" : "false"}
@@ -366,7 +423,10 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
366
423
  </div>
367
424
  <div id="sentinel" aria-hidden="true"></div>
368
425
  <div id="loading-row" ?hidden=${!this.loading}>
369
- <eun-loader label=${this.loadingLabel}></eun-loader>
426
+ <eun-loader
427
+ label=${this.loadingLabel ??
428
+ this.dictionary.infiniteList.loadingMore}
429
+ ></eun-loader>
370
430
  </div>
371
431
  <div id="end" ?hidden=${!showEnd}><slot name="end"></slot></div>
372
432
  <div id="empty" ?hidden=${!showEmpty}><slot name="empty"></slot></div>
@@ -389,13 +449,18 @@ _EunomiaInfiniteList_activeIndex = new WeakMap();
389
449
  _EunomiaInfiniteList_mutatingSlot = new WeakMap();
390
450
  _EunomiaInfiniteList_requestedPages = new WeakMap();
391
451
  _EunomiaInfiniteList_resizeObserver = new WeakMap();
452
+ _EunomiaInfiniteList_contained = new WeakMap();
453
+ _EunomiaInfiniteList_columns = new WeakMap();
392
454
  _EunomiaInfiniteList_handleScroll = new WeakMap();
455
+ _EunomiaInfiniteList_handleWindowScroll = new WeakMap();
393
456
  _EunomiaInfiniteList_handleKeydown = new WeakMap();
394
457
  _EunomiaInfiniteList_handleFocusIn = new WeakMap();
458
+ _EunomiaInfiniteList_handleFocusOut = new WeakMap();
395
459
  _EunomiaInfiniteList_handleSlotChange = new WeakMap();
396
460
  _EunomiaInfiniteList_instances = new WeakSet();
397
461
  _EunomiaInfiniteList_applyItemAttributes = function _EunomiaInfiniteList_applyItemAttributes() {
398
462
  const setSize = this.hasMore ? -1 : __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").length;
463
+ const roving = this.itemTabStop !== "none";
399
464
  __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").forEach((item, index) => {
400
465
  if (!item.isConnected) {
401
466
  return;
@@ -405,16 +470,40 @@ _EunomiaInfiniteList_applyItemAttributes = function _EunomiaInfiniteList_applyIt
405
470
  }
406
471
  item.setAttribute("aria-posinset", String(index + 1));
407
472
  item.setAttribute("aria-setsize", String(setSize));
408
- item.tabIndex = index === __classPrivateFieldGet(this, _EunomiaInfiniteList_activeIndex, "f") ? 0 : -1;
473
+ if (roving && index === __classPrivateFieldGet(this, _EunomiaInfiniteList_activeIndex, "f")) {
474
+ item.tabIndex = 0;
475
+ }
476
+ else if (!item.matches(":focus")) {
477
+ item.removeAttribute("tabindex");
478
+ }
409
479
  });
410
480
  };
481
+ _EunomiaInfiniteList_syncLayout = function _EunomiaInfiniteList_syncLayout() {
482
+ const scroller = this.scrollerEl;
483
+ if (!scroller) {
484
+ return;
485
+ }
486
+ const columns = Number.parseInt(getComputedStyle(this).getPropertyValue("--infinite-list-columns"), 10);
487
+ __classPrivateFieldSet(this, _EunomiaInfiniteList_columns, columns > 0 ? columns : 1, "f");
488
+ const contained = getComputedStyle(scroller).maxBlockSize !== "none";
489
+ if (contained === __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")) {
490
+ return;
491
+ }
492
+ __classPrivateFieldSet(this, _EunomiaInfiniteList_contained, contained, "f");
493
+ scroller.classList.toggle("contained", contained);
494
+ if (this.loadObserver) {
495
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
496
+ }
497
+ };
411
498
  _EunomiaInfiniteList_syncPages = function _EunomiaInfiniteList_syncPages() {
412
499
  const totalItems = __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").length;
413
500
  if (totalItems === 0) {
414
501
  return;
415
502
  }
416
503
  const totalPages = Math.ceil(totalItems / this.pageSize);
417
- if (!this.virtualize || totalItems <= this.virtualizeThreshold) {
504
+ if (!this.virtualize ||
505
+ __classPrivateFieldGet(this, _EunomiaInfiniteList_columns, "f") > 1 ||
506
+ totalItems <= this.virtualizeThreshold) {
418
507
  for (let page = 0; page < totalPages; page++) {
419
508
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_mountPage).call(this, page);
420
509
  }
@@ -440,7 +529,9 @@ _EunomiaInfiniteList_estimateCenterPage = function _EunomiaInfiniteList_estimate
440
529
  if (!scroller) {
441
530
  return 0;
442
531
  }
443
- const target = scroller.scrollTop + scroller.clientHeight / 2;
532
+ const target = __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")
533
+ ? scroller.scrollTop + scroller.clientHeight / 2
534
+ : window.innerHeight / 2 - scroller.getBoundingClientRect().top;
444
535
  let offset = 0;
445
536
  for (let page = 0; page < totalPages; page++) {
446
537
  const height = __classPrivateFieldGet(this, _EunomiaInfiniteList_pageHeights, "f")[page] ?? __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_estimatePageHeight).call(this, page);
@@ -523,7 +614,7 @@ _EunomiaInfiniteList_unmountPage = function _EunomiaInfiniteList_unmountPage(pag
523
614
  __classPrivateFieldGet(this, _EunomiaInfiniteList_mountedPages, "f").delete(page);
524
615
  };
525
616
  _EunomiaInfiniteList_setupLoadObserver = function _EunomiaInfiniteList_setupLoadObserver() {
526
- this.setupLoadObserver(this.sentinelEl, this.scrollerEl ?? null, this.rootMargin, () => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_maybeLoadMore).call(this));
617
+ this.setupLoadObserver(this.sentinelEl, __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f") ? (this.scrollerEl ?? null) : null, this.rootMargin, () => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_maybeLoadMore).call(this));
527
618
  };
528
619
  _EunomiaInfiniteList_maybeLoadMore = function _EunomiaInfiniteList_maybeLoadMore() {
529
620
  if (this.loading || !this.hasMore) {
@@ -542,6 +633,9 @@ _EunomiaInfiniteList_focusItem = function _EunomiaInfiniteList_focusItem(index)
542
633
  __classPrivateFieldSet(this, _EunomiaInfiniteList_activeIndex, index, "f");
543
634
  __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
544
635
  const target = __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f")[index];
636
+ if (this.itemTabStop === "none") {
637
+ target.tabIndex = 0;
638
+ }
545
639
  target.focus();
546
640
  target.scrollIntoView({ block: "nearest" });
547
641
  };
@@ -587,6 +681,9 @@ __decorate([
587
681
  __decorate([
588
682
  property({ attribute: "loading-label" })
589
683
  ], EunomiaInfiniteList.prototype, "loadingLabel", void 0);
684
+ __decorate([
685
+ property({ attribute: "item-tab-stop" })
686
+ ], EunomiaInfiniteList.prototype, "itemTabStop", void 0);
590
687
  __decorate([
591
688
  property()
592
689
  ], EunomiaInfiniteList.prototype, "label", void 0);
@@ -3,8 +3,11 @@
3
3
  *
4
4
  * Custom css variables:
5
5
  * [--infinite-list-height] - Set a custom fixed height, past which the list scrolls internally instead of the surrounding page ; unset (the default), the list grows with its content and the page scrolls it like any other block
6
+ * [--infinite-list-columns] - Set the number of columns items are laid out in, as a grid
6
7
  * [--infinite-list-gap] - Set a custom gap between items
7
8
  * [--infinite-list-padding] - Set a custom padding around the scrollable area
9
+ * [--infinite-list-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
10
+ * [--infinite-list-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
8
11
  * [--infinite-list-loading-padding] - Set a custom padding around the trailing loading indicator
9
12
  * [--infinite-list-end-color] - Set a custom color for the "end" slot's default position
10
13
  * [--infinite-list-focus-outline-color] - Set a custom focus outline color applied to slotted items
@@ -4,8 +4,11 @@ import { css } from "lit";
4
4
  *
5
5
  * Custom css variables:
6
6
  * [--infinite-list-height] - Set a custom fixed height, past which the list scrolls internally instead of the surrounding page ; unset (the default), the list grows with its content and the page scrolls it like any other block
7
+ * [--infinite-list-columns] - Set the number of columns items are laid out in, as a grid
7
8
  * [--infinite-list-gap] - Set a custom gap between items
8
9
  * [--infinite-list-padding] - Set a custom padding around the scrollable area
10
+ * [--infinite-list-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
11
+ * [--infinite-list-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
9
12
  * [--infinite-list-loading-padding] - Set a custom padding around the trailing loading indicator
10
13
  * [--infinite-list-end-color] - Set a custom color for the "end" slot's default position
11
14
  * [--infinite-list-focus-outline-color] - Set a custom focus outline color applied to slotted items
@@ -17,17 +20,26 @@ export const infiniteListStyles = css `
17
20
  }
18
21
  #scroller {
19
22
  max-block-size: var(--infinite-list-height, none);
23
+ padding: var(
24
+ --infinite-list-padding,
25
+ var(--infinite-list-padding-block, 0)
26
+ var(--infinite-list-padding-inline, 0)
27
+ );
28
+ }
29
+ #scroller.contained {
20
30
  overflow-y: auto;
21
31
  overscroll-behavior: contain;
22
- padding: var(--infinite-list-padding, 0);
23
32
  }
24
33
  #feed {
25
- display: flex;
26
- flex-direction: column;
34
+ display: grid;
35
+ grid-template-columns: repeat(
36
+ var(--infinite-list-columns, 1),
37
+ minmax(0, 1fr)
38
+ );
27
39
  gap: var(--infinite-list-gap, var(--eun-space-m, 16px));
28
40
  }
29
- .eun-il-spacer {
30
- flex: none;
41
+ ::slotted(.eun-il-spacer) {
42
+ grid-column: 1 / -1;
31
43
  visibility: hidden;
32
44
  }
33
45
  #sentinel {
@@ -115,7 +115,9 @@ const bar = css `
115
115
  height: 100%;
116
116
  border-radius: inherit;
117
117
  background-color: var(--loader-bar-fill-color, currentColor);
118
- transition: width var(--loader-bar-transition-duration, 0.3s) ease;
118
+ transition: width
119
+ var(--loader-bar-transition-duration, var(--eun-duration-xl, 300ms))
120
+ var(--eun-easing-default, ease);
119
121
  }
120
122
 
121
123
  :host([variant="bar"]) #fill.indeterminate {
@@ -1,34 +1,27 @@
1
- import { LitElement, TemplateResult } from "lit";
2
- import { EunomiaIconName } from "../../content/icon/icon.type.js";
1
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
3
2
  /**
4
3
  * Tag name of the breadcrumb component.
5
4
  */
6
5
  export declare const EunomiaBreadcrumbTagName = "eun-breadcrumb";
7
- /**
8
- * A single step in a `eun-breadcrumb` trail.
9
- */
10
- export type EunomiaBreadcrumbItemData = {
11
- label: string;
12
- href?: string;
13
- icon?: EunomiaIconName;
14
- };
15
6
  /**
16
7
  * A trail of links showing the current page's position within a site's
17
- * hierarchy. The last item always renders as the current, unlinked page
18
- * regardless of whether it has an href. Intermediate items without an
19
- * href render as plain, unlinked text, such as a category that groups
20
- * pages but isn't itself a page.
8
+ * hierarchy. Each direct child is one step, in order, from the root to the
9
+ * current page: a native anchor, or any other element, such as a span,
10
+ * for a step that isn't itself a page. The links stay in the light
11
+ * DOM, so a framework's own link component, such as Next's Link, keeps its
12
+ * client-side navigation and prefetching.
21
13
  *
22
- * There are two ways to declare items, usable together: the data-driven
23
- * items array for the common case, including an optional leading icon per
24
- * step, or slotted breadcrumb item elements when a step needs more than
25
- * plain text and an icon, such as rich content.
14
+ * The breadcrumb wraps each step in its own list item with a separator.
15
+ * The last step is the current page : unless a step already sets
16
+ * aria-current, the breadcrumb marks the last one itself.
26
17
  *
27
- * @slot [default] - Breadcrumb item elements, used instead of or alongside items
28
- * @prop {Array<EunomiaBreadcrumbItemData>} [items=[]] - The trail's steps, in order, from the root to the current page. Each entry may set a label, an href, and an optional leading icon
18
+ * @slot [default] - The steps, one per direct child : an anchor, or a plain element for an unlinked step
29
19
  * @attr {string} [aria-label='Breadcrumb'] - The accessible label for the navigation landmark
20
+ * @cssprop [--breadcrumb-font-size] - Sets the font size of the whole trail, 14px by default
30
21
  * @cssprop [--breadcrumb-link-color] - Sets the color of linked steps
31
22
  * @cssprop [--breadcrumb-link-color-hover] - Sets the color of linked steps on hover or focus
23
+ * @cssprop [--breadcrumb-link-text-decoration] - Sets the text decoration of linked steps, underline by default, such as none
24
+ * @cssprop [--breadcrumb-link-text-decoration-hover] - Sets the text decoration of linked steps on hover or focus, underline by default
32
25
  * @cssprop [--breadcrumb-current-color] - Sets the color of the current page and unlinked steps
33
26
  * @cssprop [--breadcrumb-focus-outline-color] - Sets the color of a linked step's focus outline
34
27
  * @cssprop [--breadcrumb-separator] - Sets the separator between steps, as a quoted CSS string, such as '>'
@@ -37,10 +30,10 @@ export type EunomiaBreadcrumbItemData = {
37
30
  * @cssprop [--breadcrumb-item-max-width] - Sets the maximum width of each step, beyond which its label truncates with an ellipsis
38
31
  * @cssprop [--breadcrumb-gap] - Sets the row gap, used when the trail wraps onto multiple lines
39
32
  * @cssprop [--breadcrumb-transition-duration] - Sets the duration of the link hover color transition
40
- * @fires {NavigationEvent} eunnavigate - Fired before following a step's link, so a client-side router can intercept the navigation. Cancelable
41
33
  * @element eun-breadcrumb
42
34
  */
43
35
  export declare class EunomiaBreadcrumb extends LitElement {
36
+ #private;
44
37
  /**
45
38
  * Styles to import to the component.
46
39
  *
@@ -50,35 +43,28 @@ export declare class EunomiaBreadcrumb extends LitElement {
50
43
  */
51
44
  static readonly styles: import("lit").CSSResult[];
52
45
  /**
53
- * The trail's steps, in order, from the root to the current page. Also
54
- * reflected as a JSON-serialized `items` attribute (Lit's default
55
- * `Array` converter), matching `eun-toggle-group`/`eun-segmented-filter`
56
- * — needed for the API tab's playground, which round-trips components
57
- * through an HTML string and would otherwise drop a JS-only property.
58
- * @default []
46
+ * Manual slot assignment : each step is assigned to the slot of its own
47
+ * list item without the breadcrumb writing a `slot` attribute on the
48
+ * consumer's elements, which a framework would then reset or report as
49
+ * a hydration mismatch.
50
+ * @internal
59
51
  */
60
- items: EunomiaBreadcrumbItemData[];
52
+ static readonly shadowRootOptions: ShadowRootInit;
61
53
  /**
62
- * Re-renders when the slotted `eun-breadcrumb-item`s change, since that
63
- * affects both whether the data-driven trail's own last item still
64
- * counts as the overall trail's last (current) step, and whether the
65
- * items-slot wrapper should stay hidden.
66
- * @private
54
+ * The steps, the host's element children in order.
55
+ * @internal
67
56
  */
68
- private readonly handleItemsSlotChange;
69
- render(): TemplateResult;
57
+ private steps;
70
58
  /**
71
- * Renders a single data-driven step, including its trailing separator —
72
- * skipped only when this is genuinely the trail's last visible step, so
73
- * it doesn't dangle after a step that's actually followed by slotted
74
- * items (see {@link render}).
75
- *
76
- * @param item the step to render.
77
- * @param isLastVisible whether this is the trail's actual last step.
78
- * @returns the rendered template.
79
- * @private
59
+ * One slot per step, in order.
60
+ * @internal
61
+ * @readonly
80
62
  */
81
- private renderItem;
63
+ private readonly stepSlots;
64
+ connectedCallback(): void;
65
+ disconnectedCallback(): void;
66
+ protected updated(changed: PropertyValues): void;
67
+ render(): TemplateResult;
82
68
  }
83
69
  declare global {
84
70
  interface HTMLElementTagNameMap {