@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
@@ -1,48 +0,0 @@
1
- import{a as I,b as h,c as S}from"./chunk-SGM2X2TC.js";import{a as o,b as f,c as g,d as v,f as y,g as T,h as d,i as x,n as E,o as _,p as a,s as w}from"./chunk-XH6NREVZ.js";var s=class extends S{constructor(r){if(super(r),this.it=a,r.type!==I.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(r){if(r===a||r==null)return this._t=void 0,this.it=r;if(r===_)return r;if(typeof r!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(r===this.it)return this._t;this.it=r;let e=[r];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};s.directiveName="unsafeHTML",s.resultType=1;var D=h(s);var c=class extends s{};c.directiveName="unsafeSVG",c.resultType=2;var b=h(c);var N=T`
2
- :host {
3
- display: flex;
4
- --_size: var(--icon-size, 1rem);
5
- --_color: var(--icon-color, currentColor);
6
- --_background: var(--icon-background, transparent);
7
- }
8
- span {
9
- box-sizing: content-box;
10
- width: var(--_size);
11
- height: var(--_size);
12
- padding: var(--icon-padding, 0);
13
- fill: var(--_color);
14
- color: var(--_color);
15
- background-color: var(--_background);
16
- border-radius: var(--icon-border-radius, var(--eun-borderRadius-m, 8px));
17
- text-decoration: none;
18
- display: inline-block;
19
- user-select: none;
20
- transition: 0.2s;
21
- }
22
- svg {
23
- width: 100%;
24
- height: 100%;
25
- display: block;
26
- }
27
- svg path {
28
- stroke-width: 0;
29
- }
30
-
31
- @media (prefers-reduced-motion: reduce) {
32
- span {
33
- transition: none;
34
- }
35
- }
36
- `;var M="eun-icon",k=new RegExp("_(outline|round|sharp)$"),$=import.meta.url,p,i=class extends w{constructor(){super(...arguments);g(this,p)}set size(e){v(this,p,e);let t;e?/%$/.test(e)?t=`${parseFloat(e)/100}rem`:/^\d+(\.\d+)?$/.test(e)?t=`${e}px`:t=e:t="1rem",this.style.setProperty("--_size",t)}get size(){return f(this,p)}updated(e){(e.has("name")||e.has("shape"))&&this.updateSvg(this.name)}updateSvg(e){if(!e)return;this.name=e;let t=this.getTargetIconFolder(e),n=this.stripShapeSuffix(e),u=t==="default"?n:`${n}_${t}`;this.fetchIconSvg(t,u).then(l=>{this.svgMarkup=l}).catch(()=>{t!=="default"&&this.fetchIconSvg("default",n).then(l=>{this.svgMarkup=l})})}async fetchIconSvg(e,t){let n=new URL(`./icons/${e}/${t}.svg`,$),u=await fetch(n);if(!u.ok)throw new Error(`Icon not found: ${n}`);return u.text()}getTargetIconFolder(e){if(this.shape)return this.shape;let t=this.extractKeywordFromIconName(e);return t||"default"}extractKeywordFromIconName(e){let t=e.match(k);if(t)return t[1]}stripShapeSuffix(e){return e.replace(k,"")}render(){return this.name?E`<span part="wrapper" aria-hidden="true">
37
- ${this.svgMarkup?b(this.svgMarkup):a}
38
- </span>`:a}};p=new WeakMap,i.styles=[N],o([d()],i.prototype,"name",2),o([d()],i.prototype,"shape",2),o([x()],i.prototype,"svgMarkup",2),o([d({hasChanged:()=>!1})],i.prototype,"size",1),i=o([y(M)],i);export{M as a,i as b};
39
- /*! Bundled license information:
40
-
41
- lit-html/directives/unsafe-html.js:
42
- lit-html/directives/unsafe-svg.js:
43
- (**
44
- * @license
45
- * Copyright 2017 Google LLC
46
- * SPDX-License-Identifier: BSD-3-Clause
47
- *)
48
- */
@@ -1 +0,0 @@
1
- import{a as t,h as n}from"./chunk-XH6NREVZ.js";var d=r=>{class e extends r{constructor(){super(...arguments);this.type="button";this.size="m";this.rounded=!1;this.slide=!1;this.loading=!1}connectedCallback(){super.connectedCallback?.(),!this.href&&(this.hasAttribute("role")||this.setAttribute("role","button"),this.addEventListener("click",this.handleClick,!0),this.addEventListener("keydown",this.handleKeydown,!0))}disconnectedCallback(){this.removeEventListener("click",this.handleClick),this.removeEventListener("keydown",this.handleKeydown),super.disconnectedCallback?.()}handleClick(o){if(this.disabled||this.loading){o.stopImmediatePropagation();return}if(this.hasAttribute("commandfor")){this.handleCommandClick?.();return}if(this.hasAttribute("popovertarget")){this.handlePopoverClick?.();return}this.handleFormBehavior()}handleKeydown(o){this.disabled||this.loading||!["Enter"," "].includes(o.key)||(o.preventDefault(),this.handleFormBehavior()||this.dispatchEvent(new Event("click")))}handleFormBehavior(){if(this.type!=="submit"&&this.type!=="reset")return!1;let o;if(this.form?o=this.getRootNode()?.getElementById(this.form):o=this.closest("form"),!o||!(o instanceof HTMLFormElement))throw new Error("The element link to the button does not exist or is invalid");return this.type==="reset"&&o.reset(),this.type==="submit"&&o.requestSubmit(),!0}}return t([n({reflect:!0})],e.prototype,"type",2),t([n({reflect:!0})],e.prototype,"variant",2),t([n({reflect:!0})],e.prototype,"size",2),t([n({type:Boolean,reflect:!0})],e.prototype,"rounded",2),t([n({type:Boolean,reflect:!0})],e.prototype,"slide",2),t([n()],e.prototype,"form",2),t([n()],e.prototype,"href",2),t([n()],e.prototype,"target",2),t([n()],e.prototype,"download",2),t([n({type:Boolean,reflect:!0})],e.prototype,"loading",2),e};var m=class r extends Event{static{this.eventName="command"}constructor(e,i){super(r.eventName,{bubbles:!1,composed:!0,cancelable:!0}),this.command=e,this.source=i}};function l(r,e){let i=globalThis.CommandEvent;return typeof i=="function"?new i(m.eventName,{command:r,source:e,cancelable:!0,composed:!0}):new m(r,e)}var v=r=>{class e extends r{handleCommandClick(){let a=this.getAttribute("commandfor");if(!a)return;let c=this.getRootNode().getElementById(a);if(!c)throw new Error(`The given id [${a}] do not correspond to any command target`);c.dispatchEvent(l(this.getAttribute("command")??"",this))}}return t([n({reflect:!0})],e.prototype,"command",2),t([n({attribute:"commandfor"})],e.prototype,"commandFor",2),e};export{d as a,v as b};
@@ -1 +0,0 @@
1
- var e=class t extends Event{static{this.eventName="eunchange"}constructor(){super(t.eventName,{bubbles:!0,composed:!1})}};export{e as a};
@@ -1,262 +0,0 @@
1
- import{b as g,c as S,d as C,e as E,f as b}from"./chunk-CEDHJUUH.js";import{a as L}from"./chunk-UP4M7TER.js";import{a as $}from"./chunk-A4EQSU36.js";import{a as f}from"./chunk-5EVP7YNE.js";import{a as r,f as x,g as M,h as l,i as k,j as y,l as O,n as p,p as d,s as A}from"./chunk-XH6NREVZ.js";var v=class w extends Event{static{this.eventName="eunselect"}constructor(T){super(w.eventName,{bubbles:!0,composed:!1}),this.key=T}};var P=M`
2
- :host {
3
- display: inline-block;
4
- }
5
- #menu {
6
- position: fixed;
7
- top: var(--_menuTop, 0);
8
- left: var(--_menuLeft, 0);
9
- min-width: var(--_menuWidth, auto);
10
- margin: 0;
11
- padding: var(--eun-space-xs, 4px) 0;
12
- list-style: none;
13
- max-height: 260px;
14
- overflow-y: auto;
15
- font-family: var(--eun-font-family, "Mulish", sans-serif);
16
- font-size: var(--eun-fontSize-s, 14px);
17
- color: var(--dropdown-menu-color, var(--eun-text-color, #071621));
18
- background: var(
19
- --dropdown-menu-background,
20
- var(--eun-surface-color, #ffffff)
21
- );
22
- border: var(--eun-borderWidth-s, 1px) solid
23
- var(--dropdown-menu-border-color, var(--eun-border-color, #dee0e7));
24
- border-radius: var(
25
- --dropdown-menu-border-radius,
26
- var(--eun-borderRadius-m, 8px)
27
- );
28
- box-shadow: var(
29
- --dropdown-menu-shadow,
30
- var(
31
- --eun-shadow-m,
32
- 0 10px 15px -3px rgba(0, 0, 0, 0.1),
33
- 0 4px 6px -2px rgba(0, 0, 0, 0.05)
34
- )
35
- );
36
- opacity: 0;
37
- transform: translate(var(--_menuOffsetX, 0px), var(--_menuOffsetY, -4px))
38
- scale(0.96);
39
- }
40
- #menu:not(:popover-open) {
41
- display: none;
42
- }
43
- #menu:popover-open {
44
- opacity: 1;
45
- transform: translate(0, 0) scale(1);
46
- }
47
-
48
- #menu li,
49
- .submenu li {
50
- display: flex;
51
- align-items: center;
52
- gap: var(--eun-space-s, 8px);
53
- padding: var(--eun-space-s, 8px) var(--eun-space-m, 16px);
54
- cursor: pointer;
55
- white-space: nowrap;
56
- /*
57
- * Fixed width/style, transparent by default : only outline-color
58
- * itself needs to change on :focus-visible below, which is what makes
59
- * it animatable in the first place — a style like "none" can't smoothly
60
- * transition to "solid", only a color change can.
61
- */
62
- outline: 2px solid transparent;
63
- outline-offset: -2px;
64
- transition:
65
- background 0.3s ease-out,
66
- outline-color 0.3s ease-out;
67
- }
68
- #menu li:hover:not([aria-disabled="true"]),
69
- #menu li:focus-visible:not([aria-disabled="true"]),
70
- #menu li.highlighted:not([aria-disabled="true"]),
71
- .submenu li:hover:not([aria-disabled="true"]),
72
- .submenu li:focus-visible:not([aria-disabled="true"]),
73
- .submenu li.highlighted:not([aria-disabled="true"]) {
74
- background: linear-gradient(
75
- 90deg,
76
- var(--dropdown-menu-accent-color, var(--eun-color-primary-500, #3d6fff))
77
- 2px,
78
- var(--dropdown-menu-hover-background, var(--eun-content-hover, #edeff0))
79
- 2px,
80
- var(--dropdown-menu-hover-background, var(--eun-content-hover, #edeff0))
81
- );
82
- }
83
- #menu li:focus-visible,
84
- .submenu li:focus-visible {
85
- outline-color: var(
86
- --dropdown-menu-accent-color,
87
- var(--eun-color-primary-500, #3d6fff)
88
- );
89
- }
90
- #menu li[aria-disabled="true"],
91
- .submenu li[aria-disabled="true"] {
92
- cursor: not-allowed;
93
- color: var(
94
- --dropdown-menu-disabled-color,
95
- var(--eun-text-disabled-color, #8d93aa)
96
- );
97
- }
98
- #menu li.active,
99
- .submenu li.active {
100
- font-weight: var(--eun-fontWeight-l, 700);
101
- color: var(
102
- --dropdown-menu-accent-color,
103
- var(--eun-color-primary-500, #3d6fff)
104
- );
105
- }
106
- #menu li .option-icon,
107
- .submenu li .option-icon,
108
- #menu li .submenu-chevron,
109
- .submenu li .submenu-chevron {
110
- flex-shrink: 0;
111
- }
112
- #menu li .submenu-chevron,
113
- .submenu li .submenu-chevron {
114
- --icon-color: var(
115
- --dropdown-menu-description-color,
116
- var(--eun-text-secondary, #484e61)
117
- );
118
- margin-right: calc(-1 * var(--eun-space-s));
119
- }
120
- #menu li .option-text,
121
- .submenu li .option-text {
122
- display: flex;
123
- flex-direction: column;
124
- flex: 1 1 auto;
125
- min-width: 0;
126
- }
127
- #menu li .title,
128
- .submenu li .title {
129
- overflow: hidden;
130
- text-overflow: ellipsis;
131
- }
132
- #menu li .description,
133
- .submenu li .description {
134
- font-size: var(--eun-fontSize-xs, 12px);
135
- color: var(
136
- --dropdown-menu-description-color,
137
- var(--eun-text-secondary, #484e61)
138
- );
139
- overflow: hidden;
140
- text-overflow: ellipsis;
141
- }
142
- .submenu {
143
- position: fixed;
144
- top: var(--_submenuTop, 0);
145
- left: var(--_submenuLeft, 0);
146
- margin: 0;
147
- padding: var(--eun-space-xs, 4px) 0;
148
- list-style: none;
149
- min-width: 160px;
150
- max-height: 260px;
151
- overflow-y: auto;
152
- font-family: var(--eun-font-family, "Mulish", sans-serif);
153
- font-size: var(--eun-fontSize-s, 14px);
154
- color: var(--dropdown-menu-color, var(--eun-text-color, #071621));
155
- background: var(
156
- --dropdown-menu-background,
157
- var(--eun-surface-color, #ffffff)
158
- );
159
- border: var(--eun-borderWidth-s, 1px) solid
160
- var(--dropdown-menu-border-color, var(--eun-border-color, #dee0e7));
161
- border-radius: var(
162
- --dropdown-menu-border-radius,
163
- var(--eun-borderRadius-m, 8px)
164
- );
165
- box-shadow: var(
166
- --dropdown-menu-shadow,
167
- var(
168
- --eun-shadow-m,
169
- 0 10px 15px -3px rgba(0, 0, 0, 0.1),
170
- 0 4px 6px -2px rgba(0, 0, 0, 0.05)
171
- )
172
- );
173
- opacity: 0;
174
- transform: translate(var(--_submenuOffsetX, -4px), 0) scale(0.96);
175
- }
176
- .submenu:not(:popover-open) {
177
- display: none;
178
- }
179
- .submenu:popover-open {
180
- opacity: 1;
181
- transform: translate(0, 0) scale(1);
182
- }
183
- `,R=P;var K="eun-dropdown-button",s=class extends A{constructor(){super(...arguments);this.options=[];this.disabledKeys=[];this.disabled=!1;this.size="m";this.rounded=!1;this.appearance="fill";this.placement="bottom-start";this.open=!1;this.openSubmenuKey=null;this.handleReposition=()=>{this.positionMenu(),this.repositionOpenSubmenu()};this.skipTriggerRefocus=!1;this.handlePopoverToggle=e=>{if(e.newState==="open"){this.open=!0,this.positionMenu(),this.updateComplete.then(()=>g(this.menuEntries,0)),window.addEventListener("resize",this.handleReposition),window.addEventListener("scroll",this.handleReposition,!0);return}this.open=!1,this.closeSubmenu(),window.removeEventListener("resize",this.handleReposition),window.removeEventListener("scroll",this.handleReposition,!0),this.skipTriggerRefocus?this.skipTriggerRefocus=!1:this.triggerEl?.focus()}}disconnectedCallback(){window.removeEventListener("resize",this.handleReposition),window.removeEventListener("scroll",this.handleReposition,!0),clearTimeout(this.openSubmenuTimer),clearTimeout(this.closeSubmenuTimer),super.disconnectedCallback?.()}isOptionDisabled(e){return!!e.disabled||this.disabledKeys.includes(e.key)}get hasStartSlotContent(){return this.querySelector(':scope > [slot="start"]')!==null}openMenu(){this.disabled||this.updateComplete.then(()=>{let e=this.menuEl;if(!e)return;let t=this.menuAnimation!==void 0;this.menuAnimation?.cancel(),this.menuAnimation=void 0;let i=!e.matches(":popover-open");i&&e.showPopover(),(i||t)&&this.playMenuOpenAnimation(e)})}playMenuOpenAnimation(e){e.style.removeProperty("pointer-events");let t=b(e);if(t===0)return;let i=e.style.getPropertyValue("--_menuOffsetX")||"0px",n=e.style.getPropertyValue("--_menuOffsetY")||"-4px";this.menuAnimation=e.animate([{opacity:0,transform:`translate(${i}, ${n}) scale(0.96)`},{opacity:1,transform:"translate(0, 0) scale(1)"}],{duration:t,easing:"ease",fill:"forwards"})}closeMenu(){let e=this.menuEl;this.menuAnimation?.cancel(),this.menuAnimation=void 0,e?.matches(":popover-open")&&this.playMenuCloseAnimation(e)}playMenuCloseAnimation(e){e.style.pointerEvents="none";let t=b(e),i=e.style.getPropertyValue("--_menuOffsetX")||"0px",n=e.style.getPropertyValue("--_menuOffsetY")||"-4px";if(t===0){e.hidePopover();return}let o=e.animate([{opacity:1,transform:"translate(0, 0) scale(1)"},{opacity:0,transform:`translate(${i}, ${n}) scale(0.96)`}],{duration:t,easing:"ease",fill:"forwards"});this.menuAnimation=o,o.finished.then(()=>{this.menuAnimation===o&&(this.menuAnimation=void 0),e.hidePopover()}).catch(()=>{})}closeMenuOnTabAway(){this.skipTriggerRefocus=!0,this.closeMenu()}tabAway(){this.closeMenuOnTabAway()}get menuEntries(){return[...Array.from(this.menuEl?.querySelectorAll(":scope > li")??[]),...this.itemsList??[]]}entryKey(e){return e.tagName==="LI"?e.dataset.key??null:e.key??null}closeOtherSubmenus(e){if(!this.openSubmenuKey||this.openSubmenuKey===e)return;let t=this.menuEntries.find(i=>this.entryKey(i)===this.openSubmenuKey);t?.tagName==="LI"?this.closeSubmenu():(t?.closeSubmenu(),this.openSubmenuKey=null)}notifySubmenuOpened(e){this.openSubmenuKey=e}notifySubmenuClosed(e){this.openSubmenuKey===e&&(this.openSubmenuKey=null)}dispatchSelect(e){this.dispatchEvent(new v(e)),this.closeMenu()}selectByKey(e){this.dispatchSelect(e)}getEffectivePlacement(e,t){let n=document.documentElement.clientWidth,o=document.documentElement.clientHeight;if(this.placement==="left"||this.placement==="right"){let h=e.right+4+t.width<=n,c=e.left-4-t.width>=0;return this.placement==="right"&&!h&&c?"left":this.placement==="left"&&!c&&h?"right":this.placement}let m=e.bottom+4+t.height<=o,a=e.top-4-t.height>=0,u=this.placement.startsWith("top");return u&&!a&&m?this.placement.replace("top","bottom"):!u&&!m&&a?this.placement.replace("bottom","top"):this.placement}positionMenu(){if(!this.triggerEl||!this.menuEl)return;let e=4,t=document.documentElement.clientWidth,i=document.documentElement.clientHeight,n=this.triggerEl.getBoundingClientRect(),o=this.menuEl.getBoundingClientRect(),m=this.getEffectivePlacement(n,o),a,u,h=0,c=0;switch(m){case"top":a=n.top-o.height-e*3,u=n.left+n.width/2-o.width/2,c=4;break;case"top-start":a=n.top-o.height-e*3,u=n.left,c=4;break;case"top-end":a=n.top-o.height-e*3,u=n.right-o.width,c=4;break;case"right":a=n.top+n.height/2-o.height/2,u=n.right+e,h=-4;break;case"bottom":a=n.bottom+e,u=n.left+n.width/2-o.width/2,c=-4;break;case"bottom-end":a=n.bottom+e,u=n.right-o.width,c=-4;break;case"left":a=n.top+n.height/2-o.height/2,u=n.left-o.width-e,h=4;break;default:a=n.bottom+e,u=n.left,c=-4;break}m==="left"||m==="right"?a=S(a,o.height,i,e):u=S(u,o.width,t,e),this.menuEl.style.setProperty("--_menuTop",`${a}px`),this.menuEl.style.setProperty("--_menuLeft",`${u}px`),this.menuEl.style.setProperty("--_menuWidth",`${n.width}px`),this.menuEl.style.setProperty("--_menuOffsetX",`${h}px`),this.menuEl.style.setProperty("--_menuOffsetY",`${c}px`)}getSubmenuElements(e){let t=this.menuEl?.querySelector(`li[data-key="${CSS.escape(e)}"]`),i=t?.querySelector(":scope > ul");if(!(!t||!i))return{li:t,submenu:i}}positionSubmenu(e,t){let{top:n,left:o,offsetX:m}=C(e.getBoundingClientRect(),t.getBoundingClientRect(),4);t.style.setProperty("--_submenuTop",`${n}px`),t.style.setProperty("--_submenuLeft",`${o}px`),t.style.setProperty("--_submenuOffsetX",`${m}px`)}repositionOpenSubmenu(){if(!this.openSubmenuKey)return;let e=this.menuEntries.find(t=>this.entryKey(t)===this.openSubmenuKey);if(e?.tagName==="LI"){let t=this.getSubmenuElements(this.openSubmenuKey);t&&this.positionSubmenu(t.li,t.submenu)}else e?.repositionSubmenu()}openSubmenu(e){if(!e.options?.length||this.isOptionDisabled(e))return;clearTimeout(this.openSubmenuTimer),clearTimeout(this.closeSubmenuTimer),this.closeOtherSubmenus(e.key);let t=this.getSubmenuElements(e.key)?.submenu;if(!t)return;let i=this.submenuAnimation!==void 0;this.submenuAnimation?.cancel(),this.submenuAnimation=void 0;let n=!t.matches(":popover-open");!n&&!i||(n&&t.showPopover(),this.playSubmenuOpenAnimation(t))}playSubmenuOpenAnimation(e){e.style.removeProperty("pointer-events");let t=b(e);if(t===0)return;let i=e.style.getPropertyValue("--_submenuOffsetX")||"-4px";this.submenuAnimation=e.animate([{opacity:0,transform:`translate(${i}, 0) scale(0.96)`},{opacity:1,transform:"translate(0, 0) scale(1)"}],{duration:t,easing:"ease",fill:"forwards"})}playSubmenuCloseAnimation(e){e.style.pointerEvents="none";let t=b(e),i=e.style.getPropertyValue("--_submenuOffsetX")||"-4px";if(t===0){e.hidePopover();return}let n=e.animate([{opacity:1,transform:"translate(0, 0) scale(1)"},{opacity:0,transform:`translate(${i}, 0) scale(0.96)`}],{duration:t,easing:"ease",fill:"forwards"});this.submenuAnimation=n,n.finished.then(()=>{this.submenuAnimation===n&&(this.submenuAnimation=void 0),e.hidePopover()}).catch(()=>{})}closeSubmenu(){if(clearTimeout(this.openSubmenuTimer),clearTimeout(this.closeSubmenuTimer),!this.openSubmenuKey)return;let e=this.openSubmenuKey,t=this.menuEntries.find(i=>this.entryKey(i)===e);if(t?.tagName==="LI"){let i=this.getSubmenuElements(e)?.submenu;this.submenuAnimation?.cancel(),this.submenuAnimation=void 0,i?.matches(":popover-open")&&this.playSubmenuCloseAnimation(i)}else t?.closeSubmenu(),this.openSubmenuKey=null}handleSubmenuToggle(e,t){let i=e,n=e.currentTarget;if(i.newState==="open"){this.notifySubmenuOpened(t.key);let o=n.parentElement;o&&this.positionSubmenu(o,n),this.updateComplete.then(()=>{let m=Array.from(n.querySelectorAll(":scope > li"));g(m,0)});return}this.notifySubmenuClosed(t.key)}closeSubmenuAndRefocus(e){this.closeSubmenu(),this.updateComplete.then(()=>{this.menuEl?.querySelector(`li[data-key="${CSS.escape(e.key)}"]`)?.focus()})}toggleSubmenu(e){this.openSubmenuKey===e.key?this.closeSubmenu():this.openSubmenu(e)}scheduleCloseSubmenu(e){clearTimeout(this.closeSubmenuTimer),this.closeSubmenuTimer=setTimeout(()=>{if(this.openSubmenuKey!==e)return;let t=this.getSubmenuElements(e)?.submenu;this.submenuAnimation?.cancel(),this.submenuAnimation=void 0,t?.matches(":popover-open")&&this.playSubmenuCloseAnimation(t)},150)}scheduleCloseTrackedSubmenu(){clearTimeout(this.closeSubmenuTimer),this.closeSubmenuTimer=setTimeout(()=>{this.closeOtherSubmenus(null)},150)}handleItemMouseEnter(e){if(clearTimeout(this.closeSubmenuTimer),!e.options?.length){this.openSubmenuKey&&this.scheduleCloseTrackedSubmenu();return}this.isOptionDisabled(e)||this.openSubmenuKey===e.key||(clearTimeout(this.openSubmenuTimer),this.openSubmenuTimer=setTimeout(()=>this.openSubmenu(e),150))}handleItemMouseLeave(e){clearTimeout(this.openSubmenuTimer),e.options?.length&&this.scheduleCloseSubmenu(e.key)}handleSubmenuMouseEnter(){clearTimeout(this.closeSubmenuTimer)}handleSubmenuMouseLeave(e){this.scheduleCloseSubmenu(e)}handleToggleClick(){this.open?this.closeMenu():this.openMenu()}selectOption(e){this.isOptionDisabled(e)||this.dispatchSelect(e.key)}handleItemClick(e){if(!this.isOptionDisabled(e)){if(e.options?.length){this.toggleSubmenu(e);return}this.selectOption(e)}}renderOptionContent(e){return p`
184
- ${e.icon?p`<eun-icon
185
- class="option-icon"
186
- name=${e.icon}
187
- size="16"
188
- ></eun-icon>`:d}
189
- <div class="option-text">
190
- <span class="title">${e.label}</span>
191
- ${e.description?p`<span class="description">${e.description}</span>`:d}
192
- </div>
193
- `}renderOption(e){let t=!!e.options?.length,i=t&&this.openSubmenuKey===e.key,n=this.isOptionDisabled(e);return p`
194
- <li
195
- role="menuitem"
196
- tabindex=${n?d:"-1"}
197
- data-key=${e.key}
198
- class=${$({highlighted:i,active:!!e.active})}
199
- aria-disabled=${n?"true":"false"}
200
- aria-haspopup=${f(t?"menu":void 0)}
201
- aria-expanded=${f(t?i?"true":"false":void 0)}
202
- @click=${()=>this.handleItemClick(e)}
203
- @keydown=${o=>E(o,this.menuEntries,{onSelect:()=>this.selectOption(e),onOpenSubmenu:()=>this.openSubmenu(e),onTabAway:()=>this.closeMenuOnTabAway()})}
204
- @mouseenter=${()=>this.handleItemMouseEnter(e)}
205
- @mouseleave=${()=>this.handleItemMouseLeave(e)}
206
- >
207
- ${this.renderOptionContent(e)}
208
- ${t?p`<eun-icon
209
- class="submenu-chevron"
210
- name="chevron_right"
211
- size="16"
212
- ></eun-icon>`:d}
213
- ${t?this.renderSubmenu(e):d}
214
- </li>
215
- `}renderSubmenu(e){let t=e.options??[];return p`
216
- <ul
217
- class="submenu"
218
- role="menu"
219
- popover="auto"
220
- @toggle=${i=>this.handleSubmenuToggle(i,e)}
221
- @mouseenter=${()=>this.handleSubmenuMouseEnter()}
222
- @mouseleave=${()=>this.handleSubmenuMouseLeave(e.key)}
223
- >
224
- ${t.map(i=>p`
225
- <li
226
- role="menuitem"
227
- tabindex=${this.isOptionDisabled(i)?d:"-1"}
228
- aria-disabled=${this.isOptionDisabled(i)?"true":"false"}
229
- @click=${()=>this.selectOption(i)}
230
- @keydown=${n=>{let o=n.currentTarget.closest("ul"),m=Array.from(o?.querySelectorAll(":scope > li")??[]);E(n,m,{onSelect:()=>this.selectOption(i),onClose:()=>this.closeSubmenuAndRefocus(e),onTabAway:()=>this.closeMenuOnTabAway()})}}
231
- >
232
- ${this.renderOptionContent(i)}
233
- </li>
234
- `)}
235
- </ul>
236
- `}renderTriggerStartContent(){if(this.hasStartSlotContent)return p`<slot name="start" slot="start"></slot>`;let e=L(this.icon,this.severity);return e?p`<eun-icon slot="start" name=${e} size="16"></eun-icon>`:d}render(){return p`
237
- <eun-button
238
- id="trigger"
239
- type="button"
240
- size=${this.size}
241
- variant=${f(this.variant)}
242
- appearance=${this.appearance}
243
- ?rounded=${this.rounded}
244
- ?disabled=${this.disabled}
245
- aria-haspopup="menu"
246
- aria-expanded=${this.open}
247
- aria-label=${f(this.ariaLabel??void 0)}
248
- @click=${this.handleToggleClick}
249
- >
250
- ${this.renderTriggerStartContent()}
251
- <slot>${this.label}</slot>
252
- </eun-button>
253
- <ul
254
- id="menu"
255
- role="menu"
256
- popover="auto"
257
- @toggle=${this.handlePopoverToggle}
258
- >
259
- ${this.options.map(e=>this.renderOption(e))}
260
- <slot name="items"></slot>
261
- </ul>
262
- `}};s.styles=R,r([l()],s.prototype,"label",2),r([l()],s.prototype,"icon",2),r([l({reflect:!0})],s.prototype,"severity",2),r([l({type:Array,reflect:!0})],s.prototype,"options",2),r([l({type:Array,reflect:!0,attribute:"disabled-keys"})],s.prototype,"disabledKeys",2),r([l({type:Boolean,reflect:!0})],s.prototype,"disabled",2),r([l({reflect:!0})],s.prototype,"size",2),r([l({reflect:!0})],s.prototype,"variant",2),r([l({type:Boolean,reflect:!0})],s.prototype,"rounded",2),r([l({reflect:!0})],s.prototype,"appearance",2),r([l({reflect:!0})],s.prototype,"placement",2),r([l({type:Boolean,reflect:!0})],s.prototype,"open",2),r([k()],s.prototype,"openSubmenuKey",2),r([O({slot:"items"})],s.prototype,"itemsList",2),r([y("#trigger")],s.prototype,"triggerEl",2),r([y("#menu")],s.prototype,"menuEl",2),s=r([x(K)],s);export{K as a,s as b};
@@ -1,64 +0,0 @@
1
- /**
2
- * Optional light-DOM stylesheet for `<eun-animate>` in server-rendered
3
- * pages (Next.js, or any framework/setup without Declarative Shadow DOM
4
- * for Lit components). It closes the SSR flash described in the eun-animate
5
- * documentation's Accessibility/SSR notes : server HTML has no Shadow DOM
6
- * yet, so `<eun-animate>`'s own `:host([animation="fade"]) { opacity: 0 }`
7
- * (and the other animation variants) can't apply until the element is
8
- * upgraded client-side, meaning content renders visible first, then snaps
9
- * hidden the instant the custom element registers, then fades back in.
10
- *
11
- * This stylesheet lives in the host document instead, applying the exact
12
- * same starting state through `:not(:defined)`, which is true from first
13
- * paint and stops matching permanently the moment the browser upgrades the
14
- * element — handing off to the component's own Shadow DOM styles at
15
- * exactly the point they take over, with no gap and no double transition.
16
- *
17
- * Usage — link it in the page `<head>`, alongside (not instead of)
18
- * importing "@eunomia/elements/animate.js" :
19
- *
20
- * <link
21
- * rel="stylesheet"
22
- * href="node_modules/@eunomia/elements/dist/components/layout/animate/animate-ssr.css"
23
- * />
24
- *
25
- * Requires every server-rendered `<eun-animate>` to write its `animation`
26
- * attribute explicitly (even when it's the "fade" default), since that
27
- * default only ever becomes an attribute once Lit initializes the
28
- * property client-side — invisible to this stylesheet, or any plain CSS,
29
- * before then :
30
- *
31
- * <eun-animate animation="fade">...</eun-animate>
32
- */
33
-
34
- eun-animate:not(:defined) {
35
- --_distance: var(--animate-distance, 80px);
36
- }
37
-
38
- eun-animate[animation="fade"]:not(:defined),
39
- eun-animate[animation="faded-scroll-right"]:not(:defined),
40
- eun-animate[animation="faded-scroll-left"]:not(:defined),
41
- eun-animate[animation="faded-scroll-top"]:not(:defined),
42
- eun-animate[animation="faded-scroll-bottom"]:not(:defined) {
43
- opacity: 0;
44
- }
45
-
46
- eun-animate[animation="scroll-right"]:not(:defined),
47
- eun-animate[animation="faded-scroll-right"]:not(:defined) {
48
- transform: translateX(calc(-1 * var(--_distance)));
49
- }
50
-
51
- eun-animate[animation="scroll-left"]:not(:defined),
52
- eun-animate[animation="faded-scroll-left"]:not(:defined) {
53
- transform: translateX(var(--_distance));
54
- }
55
-
56
- eun-animate[animation="scroll-top"]:not(:defined),
57
- eun-animate[animation="faded-scroll-top"]:not(:defined) {
58
- transform: translateY(var(--_distance));
59
- }
60
-
61
- eun-animate[animation="scroll-bottom"]:not(:defined),
62
- eun-animate[animation="faded-scroll-bottom"]:not(:defined) {
63
- transform: translateY(calc(-1 * var(--_distance)));
64
- }