@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
@@ -4,6 +4,18 @@ import { EunomiaIconName, EunomiaIconType } from "./icon.type.js";
4
4
  * Tag name of the icon component.
5
5
  */
6
6
  export declare const EunomiaIconTagName = "eun-icon";
7
+ /**
8
+ * Sets the URL the icon SVGs are served from, laid out as
9
+ * `<baseUrl>/<shape>/<name>.svg` (the `icons` folder shipped next to this
10
+ * component in the package). Needed when a bundler such as Turbopack
11
+ * rewrites `import.meta.url` to a `file:` URL, which can't be fetched from
12
+ * the browser. Copy or symlink that folder into your public assets, then
13
+ * call this once before any icon renders, e.g.
14
+ * `setIconBaseUrl("/eunomia-icons")`.
15
+ *
16
+ * @param url - Absolute or root-relative URL of the icons folder
17
+ */
18
+ export declare function setIconBaseUrl(url: string): void;
7
19
  /**
8
20
  * An SVG-based icon that loads and renders dynamically based on its name.
9
21
  *
@@ -55,6 +67,26 @@ export declare class EunomiaIcon extends LitElement {
55
67
  * Gets the current size value set for the icon.
56
68
  */
57
69
  get size(): string | undefined;
70
+ /**
71
+ * Registers this icon so a later `setIconBaseUrl` call can reload it.
72
+ */
73
+ connectedCallback(): void;
74
+ /**
75
+ * Unregisters this icon, so a detached one isn't kept alive or reloaded.
76
+ */
77
+ disconnectedCallback(): void;
78
+ /**
79
+ * Re-fetches the current icon, used when the icons' base URL changes
80
+ * after this icon already tried (and possibly failed) to load.
81
+ *
82
+ * @internal
83
+ */
84
+ reload(): void;
85
+ /**
86
+ * Loads the SVG whenever `name` or `shape` changes.
87
+ *
88
+ * @param _changedProperties - The properties changed by this update
89
+ */
58
90
  protected updated(_changedProperties: PropertyValues): void;
59
91
  /**
60
92
  * Dynamically imports the SVG markup for the given icon name
@@ -65,11 +97,22 @@ export declare class EunomiaIcon extends LitElement {
65
97
  private updateSvg;
66
98
  /**
67
99
  * Fetches the raw markup for a single icon file, co-located with this
68
- * component (see `./icons/<shape>/<name>.svg`), resolved against
69
- * `MODULE_URL` rather than `import.meta.url` directly — see that
70
- * constant's doc comment for why. This still resolves correctly
71
- * unbundled, straight off the filesystem/CDN, exactly like a direct
72
- * `new URL(..., import.meta.url)` would.
100
+ * component (see `./icons/<shape>/<name>.svg`). Deliberately never
101
+ * passes a templated path straight to `new URL(...)` : Turbopack
102
+ * special-cases that exact call shape (a string with `${...}`
103
+ * interpolation as the first argument) for static asset resolution
104
+ * even when the base is routed through `MODULE_URL` rather than a bare
105
+ * `import.meta.url` literal — with ~5500 icon files across 2
106
+ * interpolated segments, it can't resolve the pattern and silently
107
+ * falls back to a single wrong file for every request instead of
108
+ * erroring. Building the URL from `MODULE_URL`'s own directory via
109
+ * plain string ops keeps every `new URL()` call single-argument and
110
+ * literal-free, so there's no templated call shape left for any
111
+ * bundler to intercept. This still resolves correctly unbundled,
112
+ * straight off the filesystem/CDN, exactly like the original
113
+ * `new URL(templatedPath, import.meta.url)` would have. A base set
114
+ * through `setIconBaseUrl` takes priority, and a bundler-rewritten
115
+ * `file:` module URL throws an explicit error instead of a CSP one.
73
116
  *
74
117
  * @param shape - Icon subfolder to fetch from
75
118
  * @param name - Icon file name, without extension
@@ -30,20 +30,39 @@ export const EunomiaIconTagName = "eun-icon";
30
30
  const ICON_KEYWORD_REGEX = new RegExp(`_(outline|round|sharp)$`);
31
31
  /**
32
32
  * This module's own URL, captured once as a plain string rather than
33
- * read inline. Bundlers (Vite, webpack, Turbopack) special-case the
34
- * exact call shape `new URL(<literal>, import.meta.url)` to statically
35
- * resolve/copy the referenced asset. With two interpolated segments
36
- * (shape and name, see `fetchIconSvg`) across ~5500 icon files, that
37
- * static analysis has to fall back to a runtime lookup table keyed by
38
- * the computed path — mature under webpack, but buggy under Turbopack,
39
- * where every request resolves to the same wrong file regardless of
40
- * the name/shape asked for. Routing the base through this variable
41
- * keeps that call shape out of `fetchIconSvg` in every bundler, so the
42
- * lookup is a plain runtime `fetch` against a file already shipped,
43
- * byte-for-byte, at this path (see `scripts/copy-assets.mjs`) — the
44
- * same result, whether bundled or not.
33
+ * read inline, so `fetchIconSvg` never has to pass a templated path
34
+ * straight to `new URL(...)` — see that method's own doc comment for why
35
+ * that call shape is unsafe under Turbopack across ~5500 icon files.
36
+ * `import.meta.url` itself still needs reading somewhere, just not as
37
+ * part of a `new URL(<literal-with-interpolation>, ...)` call, which is
38
+ * the specific shape bundlers key their static asset resolution off of.
45
39
  */
46
40
  const MODULE_URL = import.meta.url;
41
+ /**
42
+ * Base URL set through `setIconBaseUrl`, taking priority over the URL
43
+ * derived from `MODULE_URL` when defined.
44
+ */
45
+ let iconBaseUrl;
46
+ /**
47
+ * Icons currently in the DOM, so `setIconBaseUrl` can reload the ones
48
+ * that already tried to load before the base URL was set.
49
+ */
50
+ const connectedIcons = new Set();
51
+ /**
52
+ * Sets the URL the icon SVGs are served from, laid out as
53
+ * `<baseUrl>/<shape>/<name>.svg` (the `icons` folder shipped next to this
54
+ * component in the package). Needed when a bundler such as Turbopack
55
+ * rewrites `import.meta.url` to a `file:` URL, which can't be fetched from
56
+ * the browser. Copy or symlink that folder into your public assets, then
57
+ * call this once before any icon renders, e.g.
58
+ * `setIconBaseUrl("/eunomia-icons")`.
59
+ *
60
+ * @param url - Absolute or root-relative URL of the icons folder
61
+ */
62
+ export function setIconBaseUrl(url) {
63
+ iconBaseUrl = url.endsWith("/") ? url.slice(0, -1) : url;
64
+ connectedIcons.forEach((icon) => icon.reload());
65
+ }
47
66
  /**
48
67
  * An SVG-based icon that loads and renders dynamically based on its name.
49
68
  *
@@ -98,6 +117,34 @@ let EunomiaIcon = class EunomiaIcon extends LitElement {
98
117
  get size() {
99
118
  return __classPrivateFieldGet(this, _EunomiaIcon_size, "f");
100
119
  }
120
+ /**
121
+ * Registers this icon so a later `setIconBaseUrl` call can reload it.
122
+ */
123
+ connectedCallback() {
124
+ super.connectedCallback();
125
+ connectedIcons.add(this);
126
+ }
127
+ /**
128
+ * Unregisters this icon, so a detached one isn't kept alive or reloaded.
129
+ */
130
+ disconnectedCallback() {
131
+ super.disconnectedCallback();
132
+ connectedIcons.delete(this);
133
+ }
134
+ /**
135
+ * Re-fetches the current icon, used when the icons' base URL changes
136
+ * after this icon already tried (and possibly failed) to load.
137
+ *
138
+ * @internal
139
+ */
140
+ reload() {
141
+ this.updateSvg(this.name);
142
+ }
143
+ /**
144
+ * Loads the SVG whenever `name` or `shape` changes.
145
+ *
146
+ * @param _changedProperties - The properties changed by this update
147
+ */
101
148
  updated(_changedProperties) {
102
149
  if (_changedProperties.has("name") || _changedProperties.has("shape")) {
103
150
  this.updateSvg(this.name);
@@ -125,24 +172,49 @@ let EunomiaIcon = class EunomiaIcon extends LitElement {
125
172
  if (targetShape === "default") {
126
173
  return;
127
174
  }
128
- this.fetchIconSvg("default", baseName).then((svg) => {
175
+ this.fetchIconSvg("default", baseName)
176
+ .then((svg) => {
129
177
  this.svgMarkup = svg;
130
- });
178
+ })
179
+ .catch(() => undefined);
131
180
  });
132
181
  }
133
182
  /**
134
183
  * Fetches the raw markup for a single icon file, co-located with this
135
- * component (see `./icons/<shape>/<name>.svg`), resolved against
136
- * `MODULE_URL` rather than `import.meta.url` directly — see that
137
- * constant's doc comment for why. This still resolves correctly
138
- * unbundled, straight off the filesystem/CDN, exactly like a direct
139
- * `new URL(..., import.meta.url)` would.
184
+ * component (see `./icons/<shape>/<name>.svg`). Deliberately never
185
+ * passes a templated path straight to `new URL(...)` : Turbopack
186
+ * special-cases that exact call shape (a string with `${...}`
187
+ * interpolation as the first argument) for static asset resolution
188
+ * even when the base is routed through `MODULE_URL` rather than a bare
189
+ * `import.meta.url` literal — with ~5500 icon files across 2
190
+ * interpolated segments, it can't resolve the pattern and silently
191
+ * falls back to a single wrong file for every request instead of
192
+ * erroring. Building the URL from `MODULE_URL`'s own directory via
193
+ * plain string ops keeps every `new URL()` call single-argument and
194
+ * literal-free, so there's no templated call shape left for any
195
+ * bundler to intercept. This still resolves correctly unbundled,
196
+ * straight off the filesystem/CDN, exactly like the original
197
+ * `new URL(templatedPath, import.meta.url)` would have. A base set
198
+ * through `setIconBaseUrl` takes priority, and a bundler-rewritten
199
+ * `file:` module URL throws an explicit error instead of a CSP one.
140
200
  *
141
201
  * @param shape - Icon subfolder to fetch from
142
202
  * @param name - Icon file name, without extension
143
203
  */
144
204
  async fetchIconSvg(shape, name) {
145
- const url = new URL(`./icons/${shape}/${name}.svg`, MODULE_URL);
205
+ let url;
206
+ if (iconBaseUrl) {
207
+ url = `${iconBaseUrl}/${shape}/${name}.svg`;
208
+ }
209
+ else {
210
+ const moduleUrl = new URL(MODULE_URL);
211
+ if (moduleUrl.protocol === "file:") {
212
+ throw new Error("eun-icon can't locate its icons: the bundler rewrote import.meta.url to a file: URL. Serve the icons folder and call setIconBaseUrl().");
213
+ }
214
+ const moduleDir = moduleUrl.pathname.slice(0, moduleUrl.pathname.lastIndexOf("/"));
215
+ moduleUrl.pathname = `${moduleDir}/icons/${shape}/${name}.svg`;
216
+ url = moduleUrl.href;
217
+ }
146
218
  const response = await fetch(url);
147
219
  if (!response.ok) {
148
220
  throw new Error(`Icon not found: ${url}`);
@@ -25,7 +25,7 @@ export const iconStyles = css `
25
25
  fill: var(--_color);
26
26
  color: var(--_color);
27
27
  background-color: var(--_background);
28
- border-radius: var(--icon-border-radius, var(--eun-borderRadius-m, 8px));
28
+ border-radius: var(--icon-border-radius, var(--eun-border-radius-m, 8px));
29
29
  text-decoration: none;
30
30
  display: inline-block;
31
31
  user-select: none;
@@ -55,11 +55,11 @@ const base = css `
55
55
  aspect-ratio: var(--image-carousel-aspect-ratio, 4 / 3);
56
56
  border-radius: var(
57
57
  --image-carousel-border-radius,
58
- var(--eun-borderRadius-m, 8px)
58
+ var(--eun-border-radius-m, 8px)
59
59
  );
60
60
  background: var(
61
61
  --image-carousel-background,
62
- var(--eun-color-grey-100, #f7f8fa)
62
+ var(--eun-surface-sunken, #f7f8fa)
63
63
  );
64
64
  outline: 3px solid transparent;
65
65
  transition: outline-color 0.2s ease-out;
@@ -242,10 +242,10 @@ const base = css `
242
242
  bottom: var(--eun-space-s, 8px);
243
243
  z-index: 3;
244
244
  padding: 2px 8px;
245
- border-radius: var(--eun-borderRadius-full, 999px);
245
+ border-radius: var(--eun-border-radius-full, 999px);
246
246
  background: rgba(7, 22, 33, 0.55);
247
247
  color: #fff;
248
- font-size: var(--eun-fontSize-xs, 12px);
248
+ font-size: var(--eun-font-size-xs, 12px);
249
249
  pointer-events: none;
250
250
  }
251
251
 
@@ -268,8 +268,8 @@ const base = css `
268
268
  width: var(--image-carousel-thumbnail-size, 64px);
269
269
  height: var(--image-carousel-thumbnail-size, 64px);
270
270
  overflow: hidden;
271
- border: var(--eun-borderWidth-m, 1.5px) solid transparent;
272
- border-radius: var(--eun-borderRadius-s, 6px);
271
+ border: var(--eun-border-width-m, 1.5px) solid transparent;
272
+ border-radius: var(--eun-border-radius-s, 6px);
273
273
  cursor: pointer;
274
274
  opacity: 0.6;
275
275
  outline: 2px solid transparent;
@@ -326,7 +326,7 @@ const base = css `
326
326
  }
327
327
  .dot[aria-current="true"] {
328
328
  width: calc(var(--image-carousel-dot-size, 8px) * 3.5);
329
- border-radius: var(--eun-borderRadius-full, 999px);
329
+ border-radius: var(--eun-border-radius-full, 999px);
330
330
  background: var(
331
331
  --image-carousel-dot-active-color,
332
332
  var(--eun-color-primary-500, #3d6fff)
@@ -362,7 +362,7 @@ const base = css `
362
362
  object-fit: contain;
363
363
  border-radius: var(
364
364
  --image-carousel-lightbox-image-radius,
365
- var(--eun-borderRadius-m, 8px)
365
+ var(--eun-border-radius-m, 8px)
366
366
  );
367
367
  }
368
368
 
@@ -409,10 +409,10 @@ const base = css `
409
409
  transform: translateX(-50%);
410
410
  z-index: 3;
411
411
  padding: 4px 10px;
412
- border-radius: var(--eun-borderRadius-full, 999px);
412
+ border-radius: var(--eun-border-radius-full, 999px);
413
413
  background: rgba(0, 0, 0, 0.55);
414
414
  color: #fff;
415
- font-size: var(--eun-fontSize-xs, 12px);
415
+ font-size: var(--eun-font-size-xs, 12px);
416
416
  }
417
417
 
418
418
  #lightbox-grid {
@@ -425,7 +425,7 @@ const base = css `
425
425
  padding: var(--eun-space-s, 8px);
426
426
  overflow-y: auto;
427
427
  background: var(--eun-surface-color, #ffffff);
428
- border-left: var(--eun-borderWidth-s, 1px) solid
428
+ border-left: var(--eun-border-width-s, 1px) solid
429
429
  var(--eun-border-color, #dee0e7);
430
430
  }
431
431
  .grid-item {
@@ -433,8 +433,8 @@ const base = css `
433
433
  box-sizing: border-box;
434
434
  aspect-ratio: 1;
435
435
  overflow: hidden;
436
- border: var(--eun-borderWidth-m, 1.5px) solid transparent;
437
- border-radius: var(--eun-borderRadius-s, 6px);
436
+ border: var(--eun-border-width-m, 1.5px) solid transparent;
437
+ border-radius: var(--eun-border-radius-s, 6px);
438
438
  cursor: pointer;
439
439
  opacity: 0.7;
440
440
  transition:
@@ -471,7 +471,7 @@ const base = css `
471
471
  max-height: none;
472
472
  overflow-x: auto;
473
473
  overflow-y: hidden;
474
- border-top: var(--eun-borderWidth-s, 1px) solid
474
+ border-top: var(--eun-border-width-s, 1px) solid
475
475
  var(--eun-border-color, #dee0e7);
476
476
  border-left: none;
477
477
  }
@@ -76,11 +76,11 @@ const base = css `
76
76
  height: var(--password-strength-track-height, 6px);
77
77
  border-radius: var(
78
78
  --password-strength-border-radius,
79
- var(--eun-borderRadius-full, 999px)
79
+ var(--eun-border-radius-full, 999px)
80
80
  );
81
81
  background: var(
82
82
  --password-strength-track-color,
83
- var(--eun-color-grey-200, #ecedf0)
83
+ var(--eun-surface-sunken-strong, #ecedf0)
84
84
  );
85
85
  transition: background-color
86
86
  var(--password-strength-transition-duration, 0.3s) ease;
@@ -97,7 +97,10 @@ const base = css `
97
97
  display: flex;
98
98
  align-items: baseline;
99
99
  gap: var(--eun-space-xxs, 1.6px);
100
- font-size: var(--password-strength-font-size, var(--eun-fontSize-xs, 12px));
100
+ font-size: var(
101
+ --password-strength-font-size,
102
+ var(--eun-font-size-xs, 12px)
103
+ );
101
104
  }
102
105
 
103
106
  #caption {
@@ -110,7 +113,7 @@ const base = css `
110
113
  #level-name {
111
114
  font-weight: var(
112
115
  --password-strength-level-font-weight,
113
- var(--eun-fontWeight-m, 600)
116
+ var(--eun-font-weight-m, 600)
114
117
  );
115
118
  color: var(
116
119
  --_levelColor,
@@ -106,7 +106,7 @@ const base = css `
106
106
  color: var(--progress-bar-corner-color, var(--eun-text-secondary, #484e61));
107
107
  font-size: var(
108
108
  --progress-bar-corner-font-size,
109
- var(--eun-fontSize-xs, 12px)
109
+ var(--eun-font-size-xs, 12px)
110
110
  );
111
111
  }
112
112
 
@@ -127,11 +127,11 @@ const base = css `
127
127
  border: none;
128
128
  border-radius: var(
129
129
  --progress-bar-border-radius,
130
- var(--eun-borderRadius-full, 999px)
130
+ var(--eun-border-radius-full, 999px)
131
131
  );
132
132
  background: var(
133
133
  --progress-bar-track-color,
134
- var(--eun-color-grey-200, #ecedf0)
134
+ var(--eun-surface-sunken-strong, #ecedf0)
135
135
  );
136
136
  }
137
137
 
@@ -141,11 +141,11 @@ const base = css `
141
141
  height: var(--progress-bar-track-height, 8px);
142
142
  border-radius: var(
143
143
  --progress-bar-border-radius,
144
- var(--eun-borderRadius-full, 999px)
144
+ var(--eun-border-radius-full, 999px)
145
145
  );
146
146
  background: var(
147
147
  --progress-bar-track-color,
148
- var(--eun-color-grey-200, #ecedf0)
148
+ var(--eun-surface-sunken-strong, #ecedf0)
149
149
  );
150
150
  }
151
151
 
@@ -153,7 +153,7 @@ const base = css `
153
153
  background: var(--_optimumColor);
154
154
  border-radius: var(
155
155
  --progress-bar-border-radius,
156
- var(--eun-borderRadius-full, 999px)
156
+ var(--eun-border-radius-full, 999px)
157
157
  );
158
158
  transition: width var(--progress-bar-transition-duration, 0.3s) ease;
159
159
  }
@@ -162,7 +162,7 @@ const base = css `
162
162
  background: var(--_subOptimumColor);
163
163
  border-radius: var(
164
164
  --progress-bar-border-radius,
165
- var(--eun-borderRadius-full, 999px)
165
+ var(--eun-border-radius-full, 999px)
166
166
  );
167
167
  transition: width var(--progress-bar-transition-duration, 0.3s) ease;
168
168
  }
@@ -171,7 +171,7 @@ const base = css `
171
171
  background: var(--_subSubOptimumColor);
172
172
  border-radius: var(
173
173
  --progress-bar-border-radius,
174
- var(--eun-borderRadius-full, 999px)
174
+ var(--eun-border-radius-full, 999px)
175
175
  );
176
176
  transition: width var(--progress-bar-transition-duration, 0.3s) ease;
177
177
  }
@@ -180,7 +180,7 @@ const base = css `
180
180
  border: none;
181
181
  border-radius: var(
182
182
  --progress-bar-border-radius,
183
- var(--eun-borderRadius-full, 999px)
183
+ var(--eun-border-radius-full, 999px)
184
184
  );
185
185
  background: var(--_optimumColor);
186
186
  transition: width var(--progress-bar-transition-duration, 0.3s) ease;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared surface resolution for the display components that take a `color`
3
+ * (`primary`, `secondary`, `light`, `medium`, `dark`), a `severity` and an
4
+ * `appearance` (`default`, `fill`, `outline`, `flat`) : `eun-tag` and
5
+ * `eun-chip`. Keeping it in one place means the two can never drift apart.
6
+ *
7
+ * The surface is resolved in two independent steps, so every palette works
8
+ * with every appearance and neither needs to know about the other :
9
+ *
10
+ * 1. A palette (`severity`, else `color`) fills the same few slots :
11
+ * `--_solid` (the strong color), `--_onSolid` (text on top of it),
12
+ * `--_tint` (its pale wash) and `--_accent` (text on the wash or on a
13
+ * transparent surface).
14
+ * 2. An appearance reads those slots into the final `--_bg`, `--_fg` and
15
+ * `--_bd`, set on the host.
16
+ *
17
+ * The component's own stylesheet then reads `--_bg`, `--_fg` and `--_bd`
18
+ * *behind* its public `--<component>-*` custom properties, so those always
19
+ * win, whatever the palette and appearance.
20
+ *
21
+ * `light` and `dark` are absolute colors : white and black, whatever the
22
+ * appearance. They have no pale wash, so `default` is as solid as `fill`, and
23
+ * `flat` is a faint wash of their own color rather than the neutral surface
24
+ * every other palette shares. By default they follow the grey scale, which
25
+ * flips with the active theme ; the `fixed-color` attribute pins them to the
26
+ * light theme's white and black instead.
27
+ *
28
+ * A component can override a slot on its own host to adapt it, for example
29
+ * `--_bg-outline` when its outline surface isn't transparent.
30
+ */
31
+ export declare const toneSurfaceStyles: import("lit").CSSResult;
@@ -0,0 +1,149 @@
1
+ import { css } from "lit";
2
+ /**
3
+ * Shared surface resolution for the display components that take a `color`
4
+ * (`primary`, `secondary`, `light`, `medium`, `dark`), a `severity` and an
5
+ * `appearance` (`default`, `fill`, `outline`, `flat`) : `eun-tag` and
6
+ * `eun-chip`. Keeping it in one place means the two can never drift apart.
7
+ *
8
+ * The surface is resolved in two independent steps, so every palette works
9
+ * with every appearance and neither needs to know about the other :
10
+ *
11
+ * 1. A palette (`severity`, else `color`) fills the same few slots :
12
+ * `--_solid` (the strong color), `--_onSolid` (text on top of it),
13
+ * `--_tint` (its pale wash) and `--_accent` (text on the wash or on a
14
+ * transparent surface).
15
+ * 2. An appearance reads those slots into the final `--_bg`, `--_fg` and
16
+ * `--_bd`, set on the host.
17
+ *
18
+ * The component's own stylesheet then reads `--_bg`, `--_fg` and `--_bd`
19
+ * *behind* its public `--<component>-*` custom properties, so those always
20
+ * win, whatever the palette and appearance.
21
+ *
22
+ * `light` and `dark` are absolute colors : white and black, whatever the
23
+ * appearance. They have no pale wash, so `default` is as solid as `fill`, and
24
+ * `flat` is a faint wash of their own color rather than the neutral surface
25
+ * every other palette shares. By default they follow the grey scale, which
26
+ * flips with the active theme ; the `fixed-color` attribute pins them to the
27
+ * light theme's white and black instead.
28
+ *
29
+ * A component can override a slot on its own host to adapt it, for example
30
+ * `--_bg-outline` when its outline surface isn't transparent.
31
+ */
32
+ export const toneSurfaceStyles = css `
33
+ :host {
34
+ /* How each appearance reads the palette slots. */
35
+ --_bg-default: var(--_tint);
36
+ --_fg-default: var(--_accent);
37
+ --_bg-fill: var(--_solid);
38
+ --_fg-fill: var(--_onSolid);
39
+ --_bg-outline: transparent;
40
+ --_fg-outline: var(--_accent);
41
+ --_bd-outline: var(--_solid);
42
+ --_bg-flat: var(--eun-content-hover, #edeff0);
43
+ --_fg-flat: var(--eun-text-secondary, #484e61);
44
+ }
45
+
46
+ /* Step 1 : palettes. "medium" is also the fallback before "color" reflects. */
47
+ :host(:not([color]):not([severity])),
48
+ :host([color="medium"]:not([severity])) {
49
+ --_solid: var(--eun-color-grey-700, #484e61);
50
+ --_onSolid: var(--eun-color-grey-0, #ffffff);
51
+ --_tint: color-mix(
52
+ in srgb,
53
+ var(--eun-color-grey-700, #484e61) 20%,
54
+ transparent
55
+ );
56
+ --_accent: var(--eun-color-grey-900, #000000);
57
+ }
58
+ :host([color="primary"]:not([severity])) {
59
+ --_solid: var(--eun-color-primary-500, #3d6fff);
60
+ --_onSolid: var(--eun-color-on-primary-500, #ffffff);
61
+ --_tint: var(--eun-color-primary-transparent, #3d6fff33);
62
+ --_accent: var(--eun-color-primary-500, #3d6fff);
63
+ }
64
+ :host([color="secondary"]:not([severity])) {
65
+ --_solid: var(--eun-color-secondary-500, #e5a030);
66
+ --_onSolid: var(--eun-color-on-secondary-500, #000000de);
67
+ --_tint: var(--eun-color-secondary-transparent, #e5a03033);
68
+ --_accent: var(--eun-color-secondary-500, #e5a030);
69
+ }
70
+
71
+ :host([color="light"]:not([severity])) {
72
+ --_solid: var(--eun-color-grey-0, #ffffff);
73
+ --_onSolid: var(--eun-color-grey-900, #000000);
74
+ }
75
+ :host([color="light"][fixed-color]:not([severity])) {
76
+ --_solid: #ffffff;
77
+ --_onSolid: #000000;
78
+ }
79
+ :host([color="dark"]:not([severity])) {
80
+ --_solid: var(--eun-color-grey-800, #071621);
81
+ --_onSolid: var(--eun-color-grey-0, #ffffff);
82
+ }
83
+ :host([color="dark"][fixed-color]:not([severity])) {
84
+ --_solid: #071621;
85
+ --_onSolid: #ffffff;
86
+ }
87
+ :host([color="light"]:not([severity])),
88
+ :host([color="dark"]:not([severity])) {
89
+ --_accent: var(--_solid);
90
+ --_tint: color-mix(in srgb, var(--_solid) 16%, transparent);
91
+ --_bg-default: var(--_solid);
92
+ --_fg-default: var(--_onSolid);
93
+ --_bg-flat: var(--_tint);
94
+ --_fg-flat: var(--_solid);
95
+ }
96
+
97
+ :host([severity="info"]) {
98
+ --_solid: var(--eun-color-info-100, #097faf);
99
+ --_onSolid: #fff;
100
+ --_tint: var(--eun-color-info-30, #f0f7fa);
101
+ --_accent: var(--eun-color-info-100, #097faf);
102
+ }
103
+ :host([severity="success"]) {
104
+ --_solid: var(--eun-color-success-100, #1a9948);
105
+ --_onSolid: #fff;
106
+ --_tint: var(--eun-color-success-30, #f1f9f4);
107
+ --_accent: var(--eun-color-success-100, #1a9948);
108
+ }
109
+ :host([severity="warning"]) {
110
+ --_solid: var(--eun-color-warning-100, #c85207);
111
+ --_onSolid: #fff;
112
+ --_tint: var(--eun-color-warning-30, #fcf5f0);
113
+ --_accent: var(--eun-color-warning-100, #c85207);
114
+ }
115
+ :host([severity="critical"]) {
116
+ --_solid: var(--eun-color-critical-100, #aa0014);
117
+ --_onSolid: #fff;
118
+ --_tint: var(--eun-color-critical-30, #faf0f1);
119
+ --_accent: var(--eun-color-critical-100, #aa0014);
120
+ }
121
+ :host([severity="neutral"]) {
122
+ --_solid: var(--eun-color-grey-700, #484e61);
123
+ --_onSolid: var(--eun-color-grey-0, #ffffff);
124
+ --_tint: var(--eun-surface-sunken-strong, #ecedf0);
125
+ --_accent: var(--eun-color-grey-700, #484e61);
126
+ }
127
+
128
+ :host([appearance="default"]),
129
+ :host(:not([appearance])) {
130
+ --_bg: var(--_bg-default);
131
+ --_fg: var(--_fg-default);
132
+ --_bd: transparent;
133
+ }
134
+ :host([appearance="fill"]) {
135
+ --_bg: var(--_bg-fill);
136
+ --_fg: var(--_fg-fill);
137
+ --_bd: transparent;
138
+ }
139
+ :host([appearance="outline"]) {
140
+ --_bg: var(--_bg-outline);
141
+ --_fg: var(--_fg-outline);
142
+ --_bd: var(--_bd-outline);
143
+ }
144
+ :host([appearance="flat"]) {
145
+ --_bg: var(--_bg-flat);
146
+ --_fg: var(--_fg-flat);
147
+ --_bd: transparent;
148
+ }
149
+ `;
@@ -33,7 +33,7 @@ type TagSize = EunomiaCompactSize;
33
33
  * @slot [icon] - Replaces the icon entirely with any content, not just an icon element. Falls back to the resolved icon or severity glyph when empty
34
34
  * @prop { 'primary' | 'secondary' | 'light' | 'medium' | 'dark' } color - The color to apply to the tag
35
35
  * @prop { 'info' | 'success' | 'warning' | 'critical' | 'neutral' } severity - The severity of the tag, matching the nature of the information conveyed. Takes priority over color when both are set
36
- * @prop { 'default' | 'fill' | 'outline' | 'flat' } [appearance="default"] - The surface style of the tag. Flat always renders the same muted, low emphasis surface regardless of color or severity
36
+ * @prop { 'default' | 'fill' | 'outline' | 'flat' } [appearance="default"] - The surface style of the tag. Flat renders the same muted, low emphasis surface regardless of color or severity, except for the light and dark colors, which keep their own white or black
37
37
  * @prop { 's' | 'm' | 'l' } [size="m"] - The size of the tag
38
38
  * @prop {import('../icon/icon.type.js').EunomiaIconName} icon - The name of the custom icon to display. By default, the icon is set according to the tag's severity
39
39
  * @prop {boolean} [hideIcon=false] - Whether the icon is hidden from the tag. Takes priority over iconOnly
@@ -41,11 +41,14 @@ type TagSize = EunomiaCompactSize;
41
41
  * @prop {boolean} [iconOnly=false] - Shows only the icon, visually hiding the slotted label while keeping it available to assistive technology as the tag's accessible name. Requires icon or severity to be set
42
42
  * @attr {boolean} [icon-only=false] - Shows only the icon, visually hiding the slotted label while keeping it available to assistive technology as the tag's accessible name. Requires icon or severity to be set
43
43
  * @prop {boolean} [rounded=false] - Whether the tag has rounded corners
44
+ * @prop {boolean} [fixedColor=false] - Keeps a light or dark tag white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors or on severity
45
+ * @attr {boolean} [fixed-color=false] - Keeps a light or dark tag white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors or on severity
44
46
  * @prop {boolean} [uppercase=false] - Whether the tag label is uppercased with extra letter spacing
45
- * @cssprop [--tag-background-color] - Sets the background color of the tag
46
- * @cssprop [--tag-border-color] - Sets the border color of the tag, for the outline appearance
47
- * @cssprop [--tag-color] - Sets the text color of the tag
48
- * @cssprop [--tag-border-radius] - Sets the corner radius of the tag
47
+ * @cssprop [--tag-background-color] - Sets the background color of the tag, for every appearance, color and severity
48
+ * @cssprop [--tag-border-color] - Sets the border color of the tag, for every appearance, color and severity
49
+ * @cssprop [--tag-border-width] - Sets the border width of the tag, for every appearance. The border takes room out of the padding, so the tag keeps its size
50
+ * @cssprop [--tag-color] - Sets the text and icon color of the tag, for every appearance, color and severity
51
+ * @cssprop [--tag-border-radius] - Sets the corner radius of the tag, also over rounded
49
52
  * @cssprop [--tag-gap] - Sets the gap between the tag icon and the label
50
53
  * @element eun-tag
51
54
  */
@@ -57,7 +60,7 @@ export declare class EunomiaTag extends LitElement {
57
60
  * @internal
58
61
  * @readonly
59
62
  */
60
- static readonly styles: import("lit").CSSResult;
63
+ static readonly styles: import("lit").CSSResult[];
61
64
  /**
62
65
  * The color of the tag.
63
66
  */
@@ -97,6 +100,13 @@ export declare class EunomiaTag extends LitElement {
97
100
  * @default false
98
101
  */
99
102
  rounded: boolean;
103
+ /**
104
+ * Keeps a `light` or `dark` tag white or black in every theme. Without
105
+ * it, they follow the grey scale, which flips with the active theme.
106
+ * Has no effect on the other colors or on `severity`.
107
+ * @default false
108
+ */
109
+ fixedColor: boolean;
100
110
  /**
101
111
  * Indicates whether the tag label should be uppercased with extra letter spacing.
102
112
  * @default false