@eunomia/elements 1.0.0-beta.9 → 1.0.0

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 (322) hide show
  1. package/README.md +28 -6
  2. package/dist/angular/forms.d.ts +80 -0
  3. package/dist/angular/forms.js +267 -0
  4. package/dist/cdn/components/chunks/chunk-2XPIGFBD.js +1 -0
  5. package/dist/cdn/components/chunks/chunk-5IUNSTM3.js +1 -0
  6. package/dist/cdn/components/chunks/chunk-7HXPLZ7C.js +1 -0
  7. package/dist/cdn/components/chunks/{chunk-J3SZBXM6.js → chunk-A2NO4RSF.js} +7 -7
  8. package/dist/cdn/components/chunks/{chunk-Q34EQ5HZ.js → chunk-A623JJXJ.js} +1 -1
  9. package/dist/cdn/components/chunks/{chunk-Y3HOIL64.js → chunk-AW7PU43S.js} +2 -2
  10. package/dist/cdn/components/chunks/{chunk-FF3I7C3C.js → chunk-DWTNRFWW.js} +1 -3
  11. package/dist/cdn/components/chunks/chunk-FPNWPMHA.js +1 -0
  12. package/dist/cdn/components/chunks/chunk-GMWUHGNI.js +319 -0
  13. package/dist/cdn/components/chunks/{chunk-FQUWHNQT.js → chunk-GXOEPXDW.js} +1 -1
  14. package/dist/cdn/components/chunks/chunk-HXESKTK2.js +1 -0
  15. package/dist/cdn/components/chunks/chunk-JDUWKPHW.js +46 -0
  16. package/dist/cdn/components/chunks/{chunk-D3JJBHXN.js → chunk-JLKCBPD2.js} +2 -2
  17. package/dist/cdn/components/chunks/chunk-M6ZJHL4Q.js +1 -0
  18. package/dist/cdn/components/chunks/{chunk-TN3HGHQO.js → chunk-MDSUMP3O.js} +4 -4
  19. package/dist/cdn/components/chunks/chunk-MSQWOKBB.js +1 -0
  20. package/dist/cdn/components/chunks/{chunk-3UUZM7X2.js → chunk-NPXRQHUN.js} +3 -3
  21. package/dist/cdn/components/chunks/chunk-OB7DEGNX.js +1 -0
  22. package/dist/cdn/components/chunks/{chunk-JANNHW4Q.js → chunk-PADHCLBG.js} +4 -4
  23. package/dist/cdn/components/chunks/chunk-QMXE3KLT.js +1 -0
  24. package/dist/cdn/components/chunks/chunk-QNWKRPOW.js +1 -0
  25. package/dist/cdn/components/chunks/{chunk-KQUUMZ7U.js → chunk-RZF7QQDX.js} +7 -7
  26. package/dist/cdn/components/chunks/chunk-SCAP7J35.js +1 -0
  27. package/dist/cdn/components/chunks/chunk-TISMX7UL.js +1 -0
  28. package/dist/cdn/components/chunks/chunk-TWLI2ZOT.js +1 -0
  29. package/dist/cdn/components/chunks/chunk-W4VCWRY7.js +210 -0
  30. package/dist/cdn/components/chunks/{chunk-SZZRMJ65.js → chunk-WEG3KO6T.js} +3 -3
  31. package/dist/cdn/components/chunks/chunk-WP6ZYBAC.js +1 -0
  32. package/dist/cdn/components/chunks/{chunk-HGX6GPHM.js → chunk-XCBQ4CKH.js} +1 -1
  33. package/dist/cdn/components/chunks/{chunk-3UW2LJ7T.js → chunk-XZ3LFOQP.js} +2 -2
  34. package/dist/cdn/components/eun-alert.js +1 -1
  35. package/dist/cdn/components/eun-animate.js +92 -180
  36. package/dist/cdn/components/eun-breadcrumb.js +4 -4
  37. package/dist/cdn/components/eun-button.js +1 -1
  38. package/dist/cdn/components/eun-calendar.js +188 -115
  39. package/dist/cdn/components/eun-card.js +1 -1
  40. package/dist/cdn/components/eun-carousel.js +36 -28
  41. package/dist/cdn/components/eun-check-card.js +3 -3
  42. package/dist/cdn/components/eun-checkbox-list.js +2 -2
  43. package/dist/cdn/components/eun-checkbox.js +1 -1
  44. package/dist/cdn/components/eun-chip.js +11 -15
  45. package/dist/cdn/components/eun-collapse.js +21 -10
  46. package/dist/cdn/components/eun-color-picker.js +32 -32
  47. package/dist/cdn/components/eun-counter.js +8 -8
  48. package/dist/cdn/components/eun-date-picker.js +83 -79
  49. package/dist/cdn/components/eun-description-list.js +1 -1
  50. package/dist/cdn/components/eun-divider.js +9 -8
  51. package/dist/cdn/components/eun-drawer.js +8 -6
  52. package/dist/cdn/components/eun-dropdown-button.js +1 -1
  53. package/dist/cdn/components/eun-dropdown-item.js +4 -4
  54. package/dist/cdn/components/eun-fab.js +1 -1
  55. package/dist/cdn/components/eun-image-card.js +2 -2
  56. package/dist/cdn/components/eun-image-carousel.js +55 -29
  57. package/dist/cdn/components/eun-infinite-list.js +2 -2
  58. package/dist/cdn/components/eun-input-file.js +3 -3
  59. package/dist/cdn/components/eun-input-phone.js +6 -6
  60. package/dist/cdn/components/eun-input.js +1 -1
  61. package/dist/cdn/components/eun-label.js +1 -1
  62. package/dist/cdn/components/eun-link.js +18 -329
  63. package/dist/cdn/components/eun-loader.js +1 -1
  64. package/dist/cdn/components/eun-modal.js +9 -7
  65. package/dist/cdn/components/eun-nav-menu.js +363 -0
  66. package/dist/cdn/components/eun-pagination.js +4 -4
  67. package/dist/cdn/components/eun-password-strength.js +2 -2
  68. package/dist/cdn/components/eun-progress-bar.js +1 -1
  69. package/dist/cdn/components/eun-radio-card.js +4 -4
  70. package/dist/cdn/components/eun-radio-list.js +1 -1
  71. package/dist/cdn/components/eun-radio.js +1 -1
  72. package/dist/cdn/components/eun-rating.js +9 -9
  73. package/dist/cdn/components/eun-scheduler-event-editor.js +113 -77
  74. package/dist/cdn/components/eun-scheduler-event.js +1 -1
  75. package/dist/cdn/components/eun-scheduler.js +137 -79
  76. package/dist/cdn/components/eun-search.js +6 -6
  77. package/dist/cdn/components/eun-select.js +1 -1
  78. package/dist/cdn/components/eun-sidebar.js +23 -14
  79. package/dist/cdn/components/eun-slider.js +2 -2
  80. package/dist/cdn/components/eun-sliding-card.js +1 -1
  81. package/dist/cdn/components/eun-step.js +2 -2
  82. package/dist/cdn/components/eun-stepper.js +11 -12
  83. package/dist/cdn/components/eun-switch.js +2 -2
  84. package/dist/cdn/components/eun-tab-group.js +1 -1
  85. package/dist/cdn/components/eun-tab-panel.js +1 -1
  86. package/dist/cdn/components/eun-table-action-bar.js +1 -1
  87. package/dist/cdn/components/eun-table.js +13 -10
  88. package/dist/cdn/components/eun-tag.js +1 -1
  89. package/dist/cdn/components/eun-textarea.js +4 -4
  90. package/dist/cdn/components/eun-time-picker.js +28 -25
  91. package/dist/cdn/components/eun-toast.js +8 -8
  92. package/dist/cdn/components/eun-toggle-group.js +8 -2
  93. package/dist/cdn/components/eun-toggle-item.js +8 -2
  94. package/dist/cdn/components/eun-toggle.js +4 -1
  95. package/dist/cdn/components/eun-toolbar.js +114 -36
  96. package/dist/cdn/components/eun-tooltip.js +1 -1
  97. package/dist/cdn/styles/eunomia-themes.css +1 -1
  98. package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
  99. package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +2 -2
  100. package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
  101. package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
  102. package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
  103. package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
  104. package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
  105. package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
  106. package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
  107. package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +116 -8
  108. package/dist/components/action/button/button.styles.js +2 -2
  109. package/dist/components/action/dropdown-button/dropdown-button.d.ts +4 -0
  110. package/dist/components/action/dropdown-button/dropdown-button.js +1 -0
  111. package/dist/components/action/dropdown-button/dropdown-button.styles.js +5 -4
  112. package/dist/components/action/dropdown-button/dropdown-item.d.ts +1 -0
  113. package/dist/components/action/dropdown-button/dropdown-item.js +1 -0
  114. package/dist/components/action/dropdown-button/dropdown-item.styles.js +4 -4
  115. package/dist/components/action/link/link.d.ts +2 -1
  116. package/dist/components/action/link/link.js +2 -1
  117. package/dist/components/action/link/link.styles.d.ts +40 -1
  118. package/dist/components/action/link/link.styles.js +83 -60
  119. package/dist/components/action/shared-styles/button-palette.styles.js +1 -1
  120. package/dist/components/action/toggle/toggle-group.d.ts +1 -0
  121. package/dist/components/action/toggle/toggle-group.js +1 -0
  122. package/dist/components/action/toggle/toggle-group.styles.d.ts +1 -0
  123. package/dist/components/action/toggle/toggle-group.styles.js +9 -2
  124. package/dist/components/action/toggle/toggle-item.styles.js +8 -2
  125. package/dist/components/action/toggle/toggle.d.ts +1 -0
  126. package/dist/components/action/toggle/toggle.js +1 -0
  127. package/dist/components/action/toggle/toggle.styles.d.ts +1 -0
  128. package/dist/components/action/toggle/toggle.styles.js +5 -1
  129. package/dist/components/alert/drawer/drawer.d.ts +14 -13
  130. package/dist/components/alert/drawer/drawer.js +20 -28
  131. package/dist/components/alert/modal/modal.d.ts +14 -13
  132. package/dist/components/alert/modal/modal.js +20 -28
  133. package/dist/components/alert/modal/modal.styles.js +1 -1
  134. package/dist/components/alert/toast/toast.d.ts +5 -5
  135. package/dist/components/alert/toast/toast.js +9 -10
  136. package/dist/components/alert/toast/toast.styles.js +3 -3
  137. package/dist/components/content/card/image-card.styles.js +1 -1
  138. package/dist/components/content/chip/chip.d.ts +7 -9
  139. package/dist/components/content/chip/chip.js +11 -14
  140. package/dist/components/content/chip/chip.styles.js +1 -5
  141. package/dist/components/content/collapse/collapse.d.ts +5 -0
  142. package/dist/components/content/collapse/collapse.js +7 -0
  143. package/dist/components/content/collapse/collapse.styles.d.ts +3 -0
  144. package/dist/components/content/collapse/collapse.styles.js +13 -1
  145. package/dist/components/content/description-list/description-list.styles.js +1 -1
  146. package/dist/components/content/image-carousel/image-carousel.d.ts +60 -13
  147. package/dist/components/content/image-carousel/image-carousel.js +100 -22
  148. package/dist/components/content/image-carousel/image-carousel.styles.js +32 -6
  149. package/dist/components/content/password-strength/password-strength.styles.js +1 -1
  150. package/dist/components/content/progress-bar/progress-bar.styles.js +1 -1
  151. package/dist/components/content/shared-styles/card-link.styles.js +1 -1
  152. package/dist/components/content/shared-styles/tone-surface.styles.js +1 -3
  153. package/dist/components/form/checkbox/check-card.styles.js +2 -2
  154. package/dist/components/form/checkbox/checkbox-list.d.ts +3 -1
  155. package/dist/components/form/checkbox/checkbox-list.js +3 -1
  156. package/dist/components/form/checkbox/checkbox.styles.js +1 -1
  157. package/dist/components/form/color-picker/color-picker.d.ts +28 -3
  158. package/dist/components/form/color-picker/color-picker.js +53 -7
  159. package/dist/components/form/counter/counter.js +1 -1
  160. package/dist/components/form/counter/counter.styles.js +2 -2
  161. package/dist/components/form/date-picker/date-picker-day-grid.styles.js +1 -1
  162. package/dist/components/form/date-picker/date-picker-month-grid.js +1 -1
  163. package/dist/components/form/date-picker/date-picker.d.ts +50 -13
  164. package/dist/components/form/date-picker/date-picker.js +178 -43
  165. package/dist/components/form/input/input.js +1 -4
  166. package/dist/components/form/input-file/input-file.styles.js +2 -2
  167. package/dist/components/form/input-phone/input-phone.js +4 -3
  168. package/dist/components/form/label/label.styles.js +1 -1
  169. package/dist/components/form/radio/radio-card.styles.js +2 -2
  170. package/dist/components/form/radio/radio.styles.js +1 -1
  171. package/dist/components/form/rating/rating.js +3 -5
  172. package/dist/components/form/rating/rating.styles.js +2 -2
  173. package/dist/components/form/search/search.d.ts +1 -7
  174. package/dist/components/form/search/search.js +2 -12
  175. package/dist/components/form/shared-styles/field.styles.js +2 -2
  176. package/dist/components/form/slider/slider.styles.js +1 -1
  177. package/dist/components/form/switch/switch.styles.js +1 -1
  178. package/dist/components/form/textarea/textarea.js +1 -5
  179. package/dist/components/form/textarea/textarea.styles.js +2 -2
  180. package/dist/components/form/time-picker/time-picker-columns.d.ts +4 -1
  181. package/dist/components/form/time-picker/time-picker-columns.js +64 -15
  182. package/dist/components/form/time-picker/time-picker-columns.styles.js +5 -1
  183. package/dist/components/form/time-picker/time-picker-list.d.ts +4 -1
  184. package/dist/components/form/time-picker/time-picker-list.js +15 -8
  185. package/dist/components/form/time-picker/time-picker.d.ts +11 -2
  186. package/dist/components/form/time-picker/time-picker.js +22 -8
  187. package/dist/components/layout/animate/animate.d.ts +35 -17
  188. package/dist/components/layout/animate/animate.js +27 -14
  189. package/dist/components/layout/animate/animate.styles.d.ts +2 -1
  190. package/dist/components/layout/animate/animate.styles.js +107 -179
  191. package/dist/components/layout/divider/divider.d.ts +1 -0
  192. package/dist/components/layout/divider/divider.js +2 -1
  193. package/dist/components/layout/divider/divider.styles.js +7 -6
  194. package/dist/components/layout/infinite-list/infinite-list.styles.js +1 -1
  195. package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +3 -3
  196. package/dist/components/navigation/carousel/carousel.d.ts +23 -14
  197. package/dist/components/navigation/carousel/carousel.js +39 -27
  198. package/dist/components/navigation/carousel/carousel.styles.js +16 -8
  199. package/dist/components/navigation/nav-menu/nav-menu.d.ts +201 -0
  200. package/dist/components/navigation/nav-menu/nav-menu.js +673 -0
  201. package/dist/components/navigation/nav-menu/nav-menu.styles.d.ts +1 -0
  202. package/dist/components/navigation/nav-menu/nav-menu.styles.js +352 -0
  203. package/dist/components/navigation/pagination/pagination.d.ts +3 -0
  204. package/dist/components/navigation/pagination/pagination.styles.js +2 -2
  205. package/dist/components/navigation/sidebar/sidebar.d.ts +8 -10
  206. package/dist/components/navigation/sidebar/sidebar.js +12 -15
  207. package/dist/components/navigation/sidebar/sidebar.styles.js +13 -4
  208. package/dist/components/navigation/stepper/step.styles.js +2 -2
  209. package/dist/components/navigation/stepper/stepper.d.ts +24 -13
  210. package/dist/components/navigation/stepper/stepper.js +36 -23
  211. package/dist/components/navigation/stepper/stepper.styles.js +2 -2
  212. package/dist/components/navigation/tabs/tab-group/tab-group.js +1 -1
  213. package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +1 -1
  214. package/dist/components/navigation/toolbar/toolbar.d.ts +121 -20
  215. package/dist/components/navigation/toolbar/toolbar.js +176 -45
  216. package/dist/components/navigation/toolbar/toolbar.styles.js +113 -28
  217. package/dist/events/editor-state-change.event.d.ts +28 -0
  218. package/dist/events/editor-state-change.event.js +22 -0
  219. package/dist/events/event-cancel.event.d.ts +20 -0
  220. package/dist/events/event-cancel.event.js +17 -0
  221. package/dist/events/period-change.event.d.ts +14 -6
  222. package/dist/events/period-change.event.js +9 -6
  223. package/dist/features/scheduler/calendar/calendar.d.ts +52 -20
  224. package/dist/features/scheduler/calendar/calendar.js +84 -36
  225. package/dist/features/scheduler/calendar/calendar.styles.js +5 -2
  226. package/dist/features/scheduler/scheduler/scheduler.d.ts +69 -4
  227. package/dist/features/scheduler/scheduler/scheduler.js +172 -47
  228. package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -0
  229. package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +18 -20
  230. package/dist/features/scheduler/scheduler-event/scheduler-event.js +29 -38
  231. package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +2 -2
  232. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +102 -18
  233. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +249 -112
  234. package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.styles.js +11 -1
  235. package/dist/features/scheduler/shared/scheduler-event-popover.d.ts +9 -1
  236. package/dist/features/scheduler/shared/scheduler-event-popover.js +77 -42
  237. package/dist/features/scheduler/shared/scheduler-event-popover.styles.js +14 -3
  238. package/dist/features/scheduler/shared/scheduler-hour-grid.d.ts +3 -2
  239. package/dist/features/scheduler/shared/scheduler-hour-grid.js +53 -46
  240. package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +13 -7
  241. package/dist/features/scheduler/shared/scheduler-month-view.js +1 -1
  242. package/dist/features/scheduler/shared/scheduler-month-view.styles.js +13 -7
  243. package/dist/features/scheduler/shared/scheduler-year-view.d.ts +6 -5
  244. package/dist/features/scheduler/shared/scheduler-year-view.js +11 -7
  245. package/dist/features/scheduler/shared/scheduler-year-view.styles.js +57 -3
  246. package/dist/features/scheduler/shared/scheduler.types.d.ts +5 -9
  247. package/dist/features/scheduler/shared/scheduler.utils.d.ts +61 -0
  248. package/dist/features/scheduler/shared/scheduler.utils.js +78 -4
  249. package/dist/features/table/table/table-native.styles.js +8 -4
  250. package/dist/features/table/table/table.d.ts +2 -1
  251. package/dist/features/table/table/table.js +2 -1
  252. package/dist/features/table/table/table.styles.js +6 -4
  253. package/dist/i18n/en.d.ts +17 -0
  254. package/dist/i18n/en.js +17 -0
  255. package/dist/i18n/fr.js +17 -0
  256. package/dist/index.d.ts +6 -0
  257. package/dist/index.js +4 -0
  258. package/dist/jsx.d.ts +48 -6
  259. package/dist/mixins/anchor-position.mixin.d.ts +17 -0
  260. package/dist/mixins/anchor-position.mixin.js +45 -7
  261. package/dist/mixins/button.mixin.js +2 -1
  262. package/dist/mixins/check.mixin.js +14 -5
  263. package/dist/mixins/dialog-surface.mixin.d.ts +1 -1
  264. package/dist/mixins/dialog-surface.mixin.js +5 -5
  265. package/dist/mixins/form.mixin.js +33 -13
  266. package/dist/mixins/localizable.mixin.d.ts +1 -0
  267. package/dist/mixins/localizable.mixin.js +9 -2
  268. package/dist/mixins/radio.mixin.js +14 -5
  269. package/dist/mixins/validators.mixin.js +4 -3
  270. package/dist/react.d.ts +59 -0
  271. package/dist/react.js +42 -0
  272. package/dist/ssr/animate-ssr.css +35 -0
  273. package/dist/ssr/breadcrumb-ssr.css +3 -3
  274. package/dist/ssr/button-ssr.css +8 -2
  275. package/dist/ssr/card-ssr.css +1 -1
  276. package/dist/ssr/carousel-ssr.css +15 -4
  277. package/dist/ssr/chip-ssr.css +3 -3
  278. package/dist/ssr/collapse-ssr.css +2 -2
  279. package/dist/ssr/description-list-ssr.css +1 -1
  280. package/dist/ssr/divider-ssr.css +23 -0
  281. package/dist/ssr/field-ssr.css +245 -42
  282. package/dist/ssr/image-carousel-ssr.css +2 -4
  283. package/dist/ssr/links-ssr.css +17 -3
  284. package/dist/ssr/nav-menu-ssr.css +82 -0
  285. package/dist/ssr/overlay-ssr.css +4 -0
  286. package/dist/ssr/scheduler-ssr.css +182 -0
  287. package/dist/ssr/stepper-ssr.css +136 -0
  288. package/dist/ssr/table-ssr.css +7 -4
  289. package/dist/ssr/tag-ssr.css +1 -1
  290. package/dist/ssr/toolbar-ssr.css +7 -5
  291. package/dist/utils/css-length.utils.d.ts +14 -0
  292. package/dist/utils/css-length.utils.js +32 -0
  293. package/dist/utils/form-validation.utils.d.ts +36 -0
  294. package/dist/utils/form-validation.utils.js +113 -0
  295. package/dist/utils/implicit-submission.utils.js +2 -14
  296. package/dist/utils/interactive-content.utils.d.ts +10 -0
  297. package/dist/utils/interactive-content.utils.js +43 -0
  298. package/dist/utils/popover.utils.js +3 -2
  299. package/dist/utils/scroll-lock.utils.d.ts +9 -1
  300. package/dist/utils/scroll-lock.utils.js +21 -2
  301. package/dist/utils/theme-generator.utils.d.ts +1 -0
  302. package/dist/utils/theme-generator.utils.js +23 -10
  303. package/dist/utils/validity.utils.d.ts +18 -4
  304. package/dist/utils/validity.utils.js +74 -4
  305. package/package.json +34 -3
  306. package/styles/themes/mixins/eunomia-neutrals.mixin.scss +2 -2
  307. package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +116 -8
  308. package/dist/cdn/components/chunks/chunk-4DRU3IYJ.js +0 -1
  309. package/dist/cdn/components/chunks/chunk-647ISUF4.js +0 -1
  310. package/dist/cdn/components/chunks/chunk-6TIEBY34.js +0 -1
  311. package/dist/cdn/components/chunks/chunk-E6UOI36Q.js +0 -1
  312. package/dist/cdn/components/chunks/chunk-GNAUNTS5.js +0 -1
  313. package/dist/cdn/components/chunks/chunk-IJJ67C66.js +0 -1
  314. package/dist/cdn/components/chunks/chunk-J7ETIRSK.js +0 -1
  315. package/dist/cdn/components/chunks/chunk-JGV7LHEI.js +0 -1
  316. package/dist/cdn/components/chunks/chunk-L74LXUGL.js +0 -1
  317. package/dist/cdn/components/chunks/chunk-MY6ORZJR.js +0 -46
  318. package/dist/cdn/components/chunks/chunk-QWTFP56P.js +0 -1
  319. package/dist/cdn/components/chunks/chunk-SFX2LQ4K.js +0 -205
  320. package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +0 -1
  321. package/dist/utils/boolean.utils.d.ts +0 -14
  322. package/dist/utils/boolean.utils.js +0 -20
package/README.md CHANGED
@@ -67,7 +67,7 @@ list is just the map.
67
67
  - **Layout:** `animate`, `infinite-list`, `divider`
68
68
  - **Loader:** `loader`, `skeleton`
69
69
  - **Navigation:** `tab-group`/`tab`/`tab-panel`, `carousel`,
70
- `breadcrumb`, `pagination`, `stepper`/`step`,
70
+ `breadcrumb`, `nav-menu`, `pagination`, `stepper`/`step`,
71
71
  `toolbar`, `sidebar`
72
72
  - **Scheduler:** `scheduler`, `calendar`, `scheduler-event-card`,
73
73
  `scheduler-event-editor`
@@ -125,9 +125,31 @@ runtime cost, and every `eun-*` tag becomes a typed JSX element.
125
125
  import type {} from "@eunomia/elements/jsx";
126
126
  ```
127
127
 
128
- Custom events (`eunnavigate`, `eunchange`, ...) stay plain
129
- `CustomEvent`s rather than typed `onXxx` props, since they're built
130
- for `addEventListener`. See
128
+ React applies none of the props it gives a custom element while it
129
+ hydrates server-rendered markup, so set object properties (`events`)
130
+ and event listeners (`oneunchange`) through `eunProps` instead, from the
131
+ element's `ref`:
132
+
133
+ ```tsx
134
+ import { eunProps } from "@eunomia/elements/react";
135
+
136
+ <eun-calendar ref={eunProps({ events, oneunperiodchange })}></eun-calendar>;
137
+ ```
138
+
139
+ See
131
140
  [TypeScript](https://eunomia-ds.vercel.app/get-started/#typescript)
132
- on the documentation site for the full JSX setup and a worked React
133
- `ref` + `addEventListener` example.
141
+ on the documentation site for the full JSX setup.
142
+
143
+ ## Angular forms
144
+
145
+ To bind form fields with `ngModel`, `formControl` or
146
+ `formControlName` (Angular 18 or later), add `EunomiaValueAccessor` to
147
+ your component's `imports`:
148
+
149
+ ```ts
150
+ import { EunomiaValueAccessor } from "@eunomia/elements/angular";
151
+ ```
152
+
153
+ See [Angular forms](https://eunomia-ds.vercel.app/guides/angular-forms/)
154
+ on the documentation site for the value each field holds and how
155
+ validation fits with Angular's own.
@@ -0,0 +1,80 @@
1
+ import { DoCheck, OnDestroy } from "@angular/core";
2
+ import { ControlValueAccessor, ValidationErrors, Validator } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * The error this directive's validator reports while the field itself is
6
+ * invalid, under the `eunomia` key of the control's `errors`.
7
+ */
8
+ export interface EunomiaValidationError {
9
+ /**
10
+ * The message the field shows, in the field's own locale.
11
+ */
12
+ message: string;
13
+ /**
14
+ * Every `ValidityState` flag currently set, e.g. `["valueMissing"]`.
15
+ */
16
+ reasons: EunomiaValidityReason[];
17
+ }
18
+ /**
19
+ * A `ValidityState` flag an Eunomia field can set.
20
+ */
21
+ export type EunomiaValidityReason = "badInput" | "customError" | "patternMismatch" | "rangeOverflow" | "rangeUnderflow" | "stepMismatch" | "tooLong" | "tooShort" | "typeMismatch" | "valueMissing";
22
+ /**
23
+ * Connects every Eunomia form field to Angular forms: `ngModel`,
24
+ * `formControl` and `formControlName` work on them the way they do on a
25
+ * native `<input>`.
26
+ *
27
+ * - Value: the model follows the field's `value` (its `checked` state for
28
+ * a checkbox, a check card or a switch), updated on every `eunchange`.
29
+ * A group of radios binds through its `eun-radio-list`.
30
+ * - Disabled: disabling the control disables the field.
31
+ * - Validation: the field's own validation (`required`, `type`,
32
+ * `validators`, ...) is reported on the control as an `eunomia` error,
33
+ * so `form.valid` accounts for it.
34
+ * - State: marking the control touched, pristine, submitted or reset
35
+ * shows or hides the field's error message, the same way the user
36
+ * leaving the field or submitting the form does.
37
+ *
38
+ * The field becomes `controlled`: the control is the only source of its
39
+ * value, so a native form reset leaves it to Angular's own reset.
40
+ */
41
+ export declare class EunomiaValueAccessor implements ControlValueAccessor, Validator, DoCheck, OnDestroy {
42
+ #private;
43
+ constructor();
44
+ writeValue(value: unknown): void;
45
+ registerOnChange(fn: (value: unknown) => void): void;
46
+ registerOnTouched(fn: () => void): void;
47
+ setDisabledState(isDisabled: boolean): void;
48
+ registerOnValidatorChange(fn: () => void): void;
49
+ /**
50
+ * Reports the field's own validity.
51
+ */
52
+ validate(): ValidationErrors | null;
53
+ /**
54
+ * Updates the model from the field's own `eunchange`, ignoring the ones
55
+ * bubbling from a nested field (a checkbox inside a checkbox list).
56
+ *
57
+ * @internal
58
+ */
59
+ handleChange(event: Event): void;
60
+ /**
61
+ * @internal
62
+ */
63
+ handleFocusOut(): void;
64
+ /**
65
+ * Shows the field's error on a native submit of its form, which Angular
66
+ * lets through without validation (it adds `novalidate` to every form).
67
+ *
68
+ * @internal
69
+ */
70
+ handleSubmit(event: Event): void;
71
+ /**
72
+ * Follows the control (and its root form) this field is bound to, which
73
+ * can only be read once Angular has set it up, and can change afterwards
74
+ * (a new `[formControl]`, or an `ngModel` joining its `NgForm`).
75
+ */
76
+ ngDoCheck(): void;
77
+ ngOnDestroy(): void;
78
+ static ɵfac: i0.ɵɵFactoryDeclaration<EunomiaValueAccessor, never>;
79
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EunomiaValueAccessor, "eun-input[ngModel],eun-input[formControl],eun-input[formControlName],eun-textarea[ngModel],eun-textarea[formControl],eun-textarea[formControlName],eun-select[ngModel],eun-select[formControl],eun-select[formControlName],eun-date-picker[ngModel],eun-date-picker[formControl],eun-date-picker[formControlName],eun-time-picker[ngModel],eun-time-picker[formControl],eun-time-picker[formControlName],eun-input-phone[ngModel],eun-input-phone[formControl],eun-input-phone[formControlName],eun-input-file[ngModel],eun-input-file[formControl],eun-input-file[formControlName],eun-counter[ngModel],eun-counter[formControl],eun-counter[formControlName],eun-slider[ngModel],eun-slider[formControl],eun-slider[formControlName],eun-rating[ngModel],eun-rating[formControl],eun-rating[formControlName],eun-color-picker[ngModel],eun-color-picker[formControl],eun-color-picker[formControlName],eun-checkbox-list[ngModel],eun-checkbox-list[formControl],eun-checkbox-list[formControlName],eun-radio-list[ngModel],eun-radio-list[formControl],eun-radio-list[formControlName],eun-checkbox[ngModel],eun-checkbox[formControl],eun-checkbox[formControlName],eun-check-card[ngModel],eun-check-card[formControl],eun-check-card[formControlName],eun-switch[ngModel],eun-switch[formControl],eun-switch[formControlName]", never, {}, {}, never, never, true, never>;
80
+ }
@@ -0,0 +1,267 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _EunomiaValueAccessor_instances, _EunomiaValueAccessor_element, _EunomiaValueAccessor_injector, _EunomiaValueAccessor_checkable, _EunomiaValueAccessor_onChange, _EunomiaValueAccessor_onTouched, _EunomiaValueAccessor_onValidatorChange, _EunomiaValueAccessor_errors, _EunomiaValueAccessor_ngControl, _EunomiaValueAccessor_observed, _EunomiaValueAccessor_subscriptions, _EunomiaValueAccessor_readErrors, _EunomiaValueAccessor_revalidateAfterRender, _EunomiaValueAccessor_unsubscribe;
13
+ import { Directive, ElementRef, Injector, forwardRef, inject, } from "@angular/core";
14
+ import { FormResetEvent, FormSubmittedEvent, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, PristineChangeEvent, TouchedChangeEvent, } from "@angular/forms";
15
+ import * as i0 from "@angular/core";
16
+ const VALIDITY_REASONS = [
17
+ "badInput",
18
+ "customError",
19
+ "patternMismatch",
20
+ "rangeOverflow",
21
+ "rangeUnderflow",
22
+ "stepMismatch",
23
+ "tooLong",
24
+ "tooShort",
25
+ "typeMismatch",
26
+ "valueMissing",
27
+ ];
28
+ /**
29
+ * Fields whose model is their `checked` state, as a boolean.
30
+ */
31
+ const CHECKABLE_TAGS = new Set([
32
+ "eun-checkbox",
33
+ "eun-check-card",
34
+ "eun-switch",
35
+ ]);
36
+ /**
37
+ * Connects every Eunomia form field to Angular forms: `ngModel`,
38
+ * `formControl` and `formControlName` work on them the way they do on a
39
+ * native `<input>`.
40
+ *
41
+ * - Value: the model follows the field's `value` (its `checked` state for
42
+ * a checkbox, a check card or a switch), updated on every `eunchange`.
43
+ * A group of radios binds through its `eun-radio-list`.
44
+ * - Disabled: disabling the control disables the field.
45
+ * - Validation: the field's own validation (`required`, `type`,
46
+ * `validators`, ...) is reported on the control as an `eunomia` error,
47
+ * so `form.valid` accounts for it.
48
+ * - State: marking the control touched, pristine, submitted or reset
49
+ * shows or hides the field's error message, the same way the user
50
+ * leaving the field or submitting the form does.
51
+ *
52
+ * The field becomes `controlled`: the control is the only source of its
53
+ * value, so a native form reset leaves it to Angular's own reset.
54
+ */
55
+ export class EunomiaValueAccessor {
56
+ constructor() {
57
+ _EunomiaValueAccessor_instances.add(this);
58
+ _EunomiaValueAccessor_element.set(this, inject(ElementRef).nativeElement);
59
+ _EunomiaValueAccessor_injector.set(this, inject(Injector));
60
+ _EunomiaValueAccessor_checkable.set(this, CHECKABLE_TAGS.has(__classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").localName));
61
+ _EunomiaValueAccessor_onChange.set(this, () => { });
62
+ _EunomiaValueAccessor_onTouched.set(this, () => { });
63
+ _EunomiaValueAccessor_onValidatorChange.set(this, () => { });
64
+ /**
65
+ * The errors {@link validate} last reported.
66
+ */
67
+ _EunomiaValueAccessor_errors.set(this, null);
68
+ /**
69
+ * The `NgControl` on the same element, read lazily: injecting it in the
70
+ * constructor would be circular, since it injects this accessor.
71
+ */
72
+ _EunomiaValueAccessor_ngControl.set(this, void 0);
73
+ /**
74
+ * The control (and its root form) whose events are mirrored on the field.
75
+ */
76
+ _EunomiaValueAccessor_observed.set(this, null);
77
+ _EunomiaValueAccessor_subscriptions.set(this, []);
78
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").controlled = true;
79
+ }
80
+ writeValue(value) {
81
+ if (__classPrivateFieldGet(this, _EunomiaValueAccessor_checkable, "f")) {
82
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").checked = !!value;
83
+ }
84
+ else {
85
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").value = value;
86
+ }
87
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_instances, "m", _EunomiaValueAccessor_revalidateAfterRender).call(this);
88
+ }
89
+ registerOnChange(fn) {
90
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_onChange, fn, "f");
91
+ }
92
+ registerOnTouched(fn) {
93
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_onTouched, fn, "f");
94
+ }
95
+ setDisabledState(isDisabled) {
96
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").disabled = isDisabled;
97
+ }
98
+ registerOnValidatorChange(fn) {
99
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_onValidatorChange, fn, "f");
100
+ }
101
+ /**
102
+ * Reports the field's own validity.
103
+ */
104
+ validate() {
105
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_errors, __classPrivateFieldGet(this, _EunomiaValueAccessor_instances, "m", _EunomiaValueAccessor_readErrors).call(this), "f");
106
+ return __classPrivateFieldGet(this, _EunomiaValueAccessor_errors, "f");
107
+ }
108
+ /**
109
+ * Updates the model from the field's own `eunchange`, ignoring the ones
110
+ * bubbling from a nested field (a checkbox inside a checkbox list).
111
+ *
112
+ * @internal
113
+ */
114
+ handleChange(event) {
115
+ const element = __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f");
116
+ if (event.target !== element) {
117
+ return;
118
+ }
119
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_onChange, "f").call(this, __classPrivateFieldGet(this, _EunomiaValueAccessor_checkable, "f") ? element.checked : element.value);
120
+ }
121
+ /**
122
+ * @internal
123
+ */
124
+ handleFocusOut() {
125
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_onTouched, "f").call(this);
126
+ }
127
+ /**
128
+ * Shows the field's error on a native submit of its form, which Angular
129
+ * lets through without validation (it adds `novalidate` to every form).
130
+ *
131
+ * @internal
132
+ */
133
+ handleSubmit(event) {
134
+ if (event.target instanceof Node && event.target.contains(__classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f"))) {
135
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").validationRequested = true;
136
+ }
137
+ }
138
+ /**
139
+ * Follows the control (and its root form) this field is bound to, which
140
+ * can only be read once Angular has set it up, and can change afterwards
141
+ * (a new `[formControl]`, or an `ngModel` joining its `NgForm`).
142
+ */
143
+ ngDoCheck() {
144
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_ngControl, __classPrivateFieldGet(this, _EunomiaValueAccessor_ngControl, "f") ?? __classPrivateFieldGet(this, _EunomiaValueAccessor_injector, "f").get(NgControl, null, { self: true }), "f");
145
+ const control = __classPrivateFieldGet(this, _EunomiaValueAccessor_ngControl, "f")?.control ?? null;
146
+ if (control === __classPrivateFieldGet(this, _EunomiaValueAccessor_observed, "f")?.control &&
147
+ control?.root === __classPrivateFieldGet(this, _EunomiaValueAccessor_observed, "f")?.root) {
148
+ return;
149
+ }
150
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_instances, "m", _EunomiaValueAccessor_unsubscribe).call(this);
151
+ if (!control) {
152
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_observed, null, "f");
153
+ return;
154
+ }
155
+ const element = __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f");
156
+ const { root } = control;
157
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_observed, { control, root }, "f");
158
+ element.touched = control.touched;
159
+ element.dirty = control.dirty;
160
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_subscriptions, "f").push(control.events.subscribe((event) => {
161
+ if (event instanceof TouchedChangeEvent) {
162
+ element.touched = event.touched;
163
+ if (!event.touched) {
164
+ element.validationRequested = false;
165
+ }
166
+ }
167
+ else if (event instanceof PristineChangeEvent) {
168
+ element.dirty = !event.pristine;
169
+ }
170
+ }));
171
+ if (root !== control) {
172
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_subscriptions, "f").push(root.events.subscribe((event) => {
173
+ if (event instanceof FormSubmittedEvent) {
174
+ element.validationRequested = true;
175
+ }
176
+ else if (event instanceof FormResetEvent) {
177
+ element.validationRequested = false;
178
+ }
179
+ }));
180
+ }
181
+ }
182
+ ngOnDestroy() {
183
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_instances, "m", _EunomiaValueAccessor_unsubscribe).call(this);
184
+ }
185
+ }
186
+ _EunomiaValueAccessor_element = new WeakMap(), _EunomiaValueAccessor_injector = new WeakMap(), _EunomiaValueAccessor_checkable = new WeakMap(), _EunomiaValueAccessor_onChange = new WeakMap(), _EunomiaValueAccessor_onTouched = new WeakMap(), _EunomiaValueAccessor_onValidatorChange = new WeakMap(), _EunomiaValueAccessor_errors = new WeakMap(), _EunomiaValueAccessor_ngControl = new WeakMap(), _EunomiaValueAccessor_observed = new WeakMap(), _EunomiaValueAccessor_subscriptions = new WeakMap(), _EunomiaValueAccessor_instances = new WeakSet(), _EunomiaValueAccessor_readErrors = function _EunomiaValueAccessor_readErrors() {
187
+ const element = __classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f");
188
+ if (typeof element.checkValidity !== "function") {
189
+ return null;
190
+ }
191
+ element.checkValidity();
192
+ const { validity } = element;
193
+ if (!validity || validity.valid) {
194
+ return null;
195
+ }
196
+ const ownMessages = (element.errorMessages ?? []).filter((message) => message !== element.error);
197
+ const reasons = VALIDITY_REASONS.filter((reason) => validity[reason] && (reason !== "customError" || ownMessages.length));
198
+ if (!reasons.length) {
199
+ return null;
200
+ }
201
+ const error = {
202
+ message: element.validationMessage ?? "",
203
+ reasons,
204
+ };
205
+ return { eunomia: error };
206
+ }, _EunomiaValueAccessor_revalidateAfterRender = function _EunomiaValueAccessor_revalidateAfterRender() {
207
+ void Promise.resolve(__classPrivateFieldGet(this, _EunomiaValueAccessor_element, "f").updateComplete).then(() => {
208
+ if (JSON.stringify(__classPrivateFieldGet(this, _EunomiaValueAccessor_instances, "m", _EunomiaValueAccessor_readErrors).call(this)) !== JSON.stringify(__classPrivateFieldGet(this, _EunomiaValueAccessor_errors, "f"))) {
209
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_onValidatorChange, "f").call(this);
210
+ }
211
+ });
212
+ }, _EunomiaValueAccessor_unsubscribe = function _EunomiaValueAccessor_unsubscribe() {
213
+ __classPrivateFieldGet(this, _EunomiaValueAccessor_subscriptions, "f").forEach((subscription) => subscription.unsubscribe());
214
+ __classPrivateFieldSet(this, _EunomiaValueAccessor_subscriptions, [], "f");
215
+ };
216
+ EunomiaValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EunomiaValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
217
+ EunomiaValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: EunomiaValueAccessor, isStandalone: true, selector: "eun-input[ngModel],eun-input[formControl],eun-input[formControlName],eun-textarea[ngModel],eun-textarea[formControl],eun-textarea[formControlName],eun-select[ngModel],eun-select[formControl],eun-select[formControlName],eun-date-picker[ngModel],eun-date-picker[formControl],eun-date-picker[formControlName],eun-time-picker[ngModel],eun-time-picker[formControl],eun-time-picker[formControlName],eun-input-phone[ngModel],eun-input-phone[formControl],eun-input-phone[formControlName],eun-input-file[ngModel],eun-input-file[formControl],eun-input-file[formControlName],eun-counter[ngModel],eun-counter[formControl],eun-counter[formControlName],eun-slider[ngModel],eun-slider[formControl],eun-slider[formControlName],eun-rating[ngModel],eun-rating[formControl],eun-rating[formControlName],eun-color-picker[ngModel],eun-color-picker[formControl],eun-color-picker[formControlName],eun-checkbox-list[ngModel],eun-checkbox-list[formControl],eun-checkbox-list[formControlName],eun-radio-list[ngModel],eun-radio-list[formControl],eun-radio-list[formControlName],eun-checkbox[ngModel],eun-checkbox[formControl],eun-checkbox[formControlName],eun-check-card[ngModel],eun-check-card[formControl],eun-check-card[formControlName],eun-switch[ngModel],eun-switch[formControl],eun-switch[formControlName]", host: { listeners: { "eunchange": "handleChange($event)", "focusout": "handleFocusOut()", "document:submit": "handleSubmit($event)" } }, providers: [
218
+ {
219
+ provide: NG_VALUE_ACCESSOR,
220
+ useExisting: forwardRef(() => EunomiaValueAccessor),
221
+ multi: true,
222
+ },
223
+ {
224
+ provide: NG_VALIDATORS,
225
+ useExisting: forwardRef(() => EunomiaValueAccessor),
226
+ multi: true,
227
+ },
228
+ ], ngImport: i0 });
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EunomiaValueAccessor, decorators: [{
230
+ type: Directive,
231
+ args: [{
232
+ selector: "eun-input[ngModel],eun-input[formControl],eun-input[formControlName]," +
233
+ "eun-textarea[ngModel],eun-textarea[formControl],eun-textarea[formControlName]," +
234
+ "eun-select[ngModel],eun-select[formControl],eun-select[formControlName]," +
235
+ "eun-date-picker[ngModel],eun-date-picker[formControl],eun-date-picker[formControlName]," +
236
+ "eun-time-picker[ngModel],eun-time-picker[formControl],eun-time-picker[formControlName]," +
237
+ "eun-input-phone[ngModel],eun-input-phone[formControl],eun-input-phone[formControlName]," +
238
+ "eun-input-file[ngModel],eun-input-file[formControl],eun-input-file[formControlName]," +
239
+ "eun-counter[ngModel],eun-counter[formControl],eun-counter[formControlName]," +
240
+ "eun-slider[ngModel],eun-slider[formControl],eun-slider[formControlName]," +
241
+ "eun-rating[ngModel],eun-rating[formControl],eun-rating[formControlName]," +
242
+ "eun-color-picker[ngModel],eun-color-picker[formControl],eun-color-picker[formControlName]," +
243
+ "eun-checkbox-list[ngModel],eun-checkbox-list[formControl],eun-checkbox-list[formControlName]," +
244
+ "eun-radio-list[ngModel],eun-radio-list[formControl],eun-radio-list[formControlName]," +
245
+ "eun-checkbox[ngModel],eun-checkbox[formControl],eun-checkbox[formControlName]," +
246
+ "eun-check-card[ngModel],eun-check-card[formControl],eun-check-card[formControlName]," +
247
+ "eun-switch[ngModel],eun-switch[formControl],eun-switch[formControlName]",
248
+ standalone: true,
249
+ host: {
250
+ "(eunchange)": "handleChange($event)",
251
+ "(focusout)": "handleFocusOut()",
252
+ "(document:submit)": "handleSubmit($event)",
253
+ },
254
+ providers: [
255
+ {
256
+ provide: NG_VALUE_ACCESSOR,
257
+ useExisting: forwardRef(() => EunomiaValueAccessor),
258
+ multi: true,
259
+ },
260
+ {
261
+ provide: NG_VALIDATORS,
262
+ useExisting: forwardRef(() => EunomiaValueAccessor),
263
+ multi: true,
264
+ },
265
+ ],
266
+ }]
267
+ }], ctorParameters: () => [] });
@@ -0,0 +1 @@
1
+ var n="en";function l(){return n}var i={common:{close:"Close",cancel:"Cancel",confirm:"Confirm",noValue:"No value set",save:"Save",apply:"Apply",today:"Today",edit:"Edit",delete:"Delete",loading:"Loading\u2026",noResults:"No results",keepEditing:"Keep editing",discard:"Discard",discardChangesHeading:"Discard changes?",discardChangesDescription:"You have unsaved changes. This action can't be undone."},datePicker:{openCalendar:"Open calendar",previousMonth:"Previous month",chooseMonthYear:"Choose month and year",nextMonth:"Next month",previousYear:"Previous year",chooseYear:"Choose year",nextYear:"Next year",previousYears:"Previous years",nextYears:"Next years",time:"Time",amPm:"AM/PM",hour:"Hour",minute:"Minute",day:"Day",month:"Month",year:"Year",startDate:"Start date",endDate:"End date",heading:{day:{single:"Select a date",range:"Select a date range"},month:{single:"Select a month",range:"Select a month range"},year:{single:"Select a year",range:"Select a year range"}},modalPreview:{day:{single:"Select date",range:"Select date range"},month:{single:"Select month",range:"Select month range"},year:{single:"Select year",range:"Select year range"}},dayPlaceholder:"dd",monthPlaceholder:"mm",yearPlaceholder:"yyyy",hourPlaceholder:"hh",minutePlaceholder:"mm"},timePicker:{openClock:"Open clock",amPm:"AM/PM",hour:"Hour",minute:"Minute",time:"Time",selectATime:"Select a time",increaseHour:"Increase hour",decreaseHour:"Decrease hour",increaseMinute:"Increase minute",decreaseMinute:"Decrease minute",togglePeriod:"Toggle AM/PM",mustBeAtOrAfter:e=>`Time must be at or after ${e}`,mustBeAtOrBefore:e=>`Time must be at or before ${e}`,hourPlaceholder:"hh",minutePlaceholder:"mm"},scheduler:{previous:"Previous period",next:"Next period",calendarView:"Calendar view",newEvent:"New event",deleteConfirm:"Delete this event?",viewDay:"Day",viewWeek:"Week",viewWorkWeek:"Work week",viewMonth:"Month",viewYear:"Year",priorities:{low:"Low",medium:"Medium",high:"High",critical:"Critical"}},carousel:{label:"Carousel",ofTotal:(e,r)=>`${e} of ${r}`,slideNavigation:"Slide navigation",previous:"Previous slide",next:"Next slide",goToSlide:(e,r)=>`Go to slide ${e} of ${r}`},imageCarousel:{gallery:"Image gallery",previous:"Previous image",next:"Next image",expand:"View full-size image",lightbox:"Image viewer",selectImage:"Select image",showImage:(e,r)=>`Show image ${e} of ${r}`,imageNavigation:"Image navigation",goToImage:(e,r)=>`Go to image ${e} of ${r}`,allImages:"All images"},chip:{remove:"Remove"},passwordStrength:{label:"Password strength",levels:["Weak","Fair","Good","Strong"],caption:e=>`${e}:`},infiniteList:{loadingMore:"Loading more items\u2026",itemsLoaded:e=>`${e} more item${e>1?"s":""} loaded`},table:{loadingMore:"Loading more rows\u2026",selected:"selected",selectAll:"Select all",deselectAll:"Deselect all",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows",selectRow:"Select row",selectionActions:"Selection actions",clearSelection:"Clear selection",rowActions:"Row actions",rowNumber:"Row number",scrollRegion:"Scrollable table",rowsLoaded:e=>`${e} more row${e>1?"s":""} loaded`},link:{opensInNewTab:"opens in a new tab"},input:{clear:"Clear field",showPassword:"Show password",hidePassword:"Hide password"},search:{panel:"Search"},counter:{increment:"Increase value",decrement:"Decrease value"},inputFile:{remove:"Remove file",select:"Select file",open:"Open in a new tab",drop:"Drag and drop files here, or",browse:"browse files",removeAll:"Remove all",removeSingle:"Remove",selectAll:"Select all",deleteSelected:"Delete selected",count:e=>`${e} file${e>1?"s":""}`},inputPhone:{selectCountry:"Select a country",searchCountry:"Search a country\u2026"},colorPicker:{noColor:"No color selected",swatches:"Presets",custom:"Custom",nativeInput:"Pick a custom color",hexInput:"Hex color"},pagination:{previous:"Previous page",next:"Next page",first:"First page",last:"Last page",page:"Page",label:"Pagination",pageSize:"Items per page"},sidebar:{expand:"Expand sidebar",collapse:"Collapse sidebar",resize:"Resize sidebar"},toolbar:{menuOpen:"Open menu",menuClose:"Close menu",menu:"Menu",skipLink:"Skip to main content",navigation:"Main navigation"},rating:{label:"Rating",valueText:(e,r)=>`${e} out of ${r}`,summary:(e,r)=>`${e}: ${r}`,noValue:"Not rated",clear:"Clear rating"},select:{searchPlaceholder:"Search\u2026",selectPlaceholder:"Select\u2026"},calendar:{moreEvents:"+{count} more"},textarea:{formatToolbar:"Text formatting",bold:"Bold",italic:"Italic",underline:"Underline",align:"Text alignment",alignStart:"Align left",alignCenter:"Center",alignEnd:"Align right",alignJustify:"Justify",textColor:"Text color",highlight:"Highlight",colorClear:"Default"},schedulerEventEditor:{colors:{red:"Red",purple:"Purple",yellow:"Yellow",blue:"Blue",green:"Green",pink:"Pink"},title:"Title",description:"Description",allDay:"All day",date:"Date",endDate:"End date",startTime:"Start time",endTime:"End time",location:"Location",notes:"Notes",priority:"Priority",color:"Color",required:"is required",titleRequired:"Title is required",endBeforeStart:"The end must be after the start",guests:"Guests",addGuest:"Add guest",removeGuest:"Remove"},breadcrumb:{label:"Breadcrumb"},stepper:{label:"Progress",substep:(e,r,a)=>`, step ${e} of ${r}: ${a}`},validation:{valueMissing:"This field is required",typeMismatch:{email:"Enter a valid email address",url:"Enter a valid URL"},patternMismatch:"Match the requested format",tooShort:(e,r)=>`Please lengthen this text to ${e} characters or more (you are currently using ${r} characters).`,tooLong:(e,r)=>`Please shorten this text to ${e} characters or less (you are currently using ${r} characters).`,rangeUnderflow:e=>`Enter a value greater than or equal to ${e}`,rangeOverflow:e=>`Enter a value less than or equal to ${e}`,stepMismatch:(e,r)=>`Enter a valid value. The two nearest valid values are ${e} and ${r}`,badInput:"Enter a valid value",invalidDate:"Enter a valid date",unavailableDate:"This date isn't available",invalidTime:"Enter a valid time",invalidColor:"Enter a valid color"}};var t={common:{close:"Fermer",cancel:"Annuler",confirm:"Confirmer",save:"Enregistrer",noValue:"Aucune valeur",apply:"Appliquer",today:"Aujourd'hui",edit:"Modifier",delete:"Supprimer",loading:"Chargement\u2026",noResults:"Aucun r\xE9sultat",keepEditing:"Continuer la modification",discard:"Abandonner",discardChangesHeading:"Abandonner les modifications\xA0?",discardChangesDescription:"Vos modifications non enregistr\xE9es seront perdues. Cette action est irr\xE9versible."},datePicker:{openCalendar:"Ouvrir le calendrier",previousMonth:"Mois pr\xE9c\xE9dent",chooseMonthYear:"Choisir le mois et l'ann\xE9e",nextMonth:"Mois suivant",previousYear:"Ann\xE9e pr\xE9c\xE9dente",chooseYear:"Choisir l'ann\xE9e",nextYear:"Ann\xE9e suivante",previousYears:"Ann\xE9es pr\xE9c\xE9dentes",nextYears:"Ann\xE9es suivantes",time:"Heure",amPm:"AM/PM",hour:"Heure",minute:"Minute",day:"Jour",month:"Mois",year:"Ann\xE9e",startDate:"Date de d\xE9but",endDate:"Date de fin",heading:{day:{single:"S\xE9lectionner une date",range:"S\xE9lectionner une plage de dates"},month:{single:"S\xE9lectionner un mois",range:"S\xE9lectionner une plage de mois"},year:{single:"S\xE9lectionner une ann\xE9e",range:"S\xE9lectionner une plage d'ann\xE9es"}},modalPreview:{day:{single:"S\xE9lectionner une date",range:"S\xE9lectionner une plage de dates"},month:{single:"S\xE9lectionner un mois",range:"S\xE9lectionner une plage de mois"},year:{single:"S\xE9lectionner une ann\xE9e",range:"S\xE9lectionner une plage d'ann\xE9es"}},dayPlaceholder:"jj",monthPlaceholder:"mm",yearPlaceholder:"aaaa",hourPlaceholder:"hh",minutePlaceholder:"mm"},timePicker:{openClock:"Ouvrir l'horloge",amPm:"AM/PM",hour:"Heure",minute:"Minute",time:"Heure",selectATime:"S\xE9lectionner une heure",increaseHour:"Augmenter l'heure",decreaseHour:"Diminuer l'heure",increaseMinute:"Augmenter les minutes",decreaseMinute:"Diminuer les minutes",togglePeriod:"Basculer AM/PM",mustBeAtOrAfter:e=>`L'heure doit \xEAtre \xE0 ${e} ou apr\xE8s`,mustBeAtOrBefore:e=>`L'heure doit \xEAtre \xE0 ${e} ou avant`,hourPlaceholder:"hh",minutePlaceholder:"mm"},scheduler:{previous:"P\xE9riode pr\xE9c\xE9dente",next:"P\xE9riode suivante",calendarView:"Vue du calendrier",newEvent:"Nouvel \xE9v\xE9nement",deleteConfirm:"Supprimer cet \xE9v\xE9nement\xA0?",viewDay:"Jour",viewWeek:"Semaine",viewWorkWeek:"Semaine de travail",viewMonth:"Mois",viewYear:"Ann\xE9e",priorities:{low:"Basse",medium:"Moyenne",high:"Haute",critical:"Critique"}},carousel:{label:"Carrousel",ofTotal:(e,r)=>`${e} sur ${r}`,slideNavigation:"Navigation des diapositives",previous:"Diapositive pr\xE9c\xE9dente",next:"Diapositive suivante",goToSlide:(e,r)=>`Aller \xE0 la diapositive ${e} sur ${r}`},imageCarousel:{gallery:"Galerie d'images",previous:"Image pr\xE9c\xE9dente",next:"Image suivante",expand:"Voir l'image en taille r\xE9elle",lightbox:"Visionneuse d'images",selectImage:"S\xE9lectionner une image",showImage:(e,r)=>`Afficher l'image ${e} sur ${r}`,imageNavigation:"Navigation des images",goToImage:(e,r)=>`Aller \xE0 l'image ${e} sur ${r}`,allImages:"Toutes les images"},chip:{remove:"Retirer"},passwordStrength:{label:"Robustesse du mot de passe",levels:["Faible","Moyen","Bon","Fort"],caption:e=>`${e}\xA0:`},infiniteList:{loadingMore:"Chargement d'autres \xE9l\xE9ments\u2026",itemsLoaded:e=>e>1?`${e} \xE9l\xE9ments suppl\xE9mentaires charg\xE9s`:`${e} \xE9l\xE9ment suppl\xE9mentaire charg\xE9`},table:{loadingMore:"Chargement d'autres lignes\u2026",selected:"s\xE9lectionn\xE9e(s)",selectAll:"Tout s\xE9lectionner",deselectAll:"Tout d\xE9s\xE9lectionner",selectAllRows:"S\xE9lectionner toutes les lignes",deselectAllRows:"D\xE9s\xE9lectionner toutes les lignes",selectRow:"S\xE9lectionner la ligne",selectionActions:"Actions de s\xE9lection",clearSelection:"Vider la s\xE9lection",rowActions:"Actions de la ligne",rowNumber:"Num\xE9ro de ligne",scrollRegion:"Tableau d\xE9filant",rowsLoaded:e=>e>1?`${e} lignes suppl\xE9mentaires charg\xE9es`:`${e} ligne suppl\xE9mentaire charg\xE9e`},link:{opensInNewTab:"ouvre dans un nouvel onglet"},input:{clear:"Effacer le champ",showPassword:"Afficher le mot de passe",hidePassword:"Masquer le mot de passe"},search:{panel:"Rechercher"},counter:{increment:"Augmenter la valeur",decrement:"Diminuer la valeur"},inputFile:{remove:"Retirer le fichier",select:"S\xE9lectionner un fichier",open:"Ouvrir dans un nouvel onglet",drop:"Glissez-d\xE9posez des fichiers ici, ou",browse:"parcourez vos fichiers",removeAll:"Tout retirer",removeSingle:"Retirer",selectAll:"Tout s\xE9lectionner",deleteSelected:"Supprimer la s\xE9lection",count:e=>`${e} fichier${e>1?"s":""}`},inputPhone:{selectCountry:"S\xE9lectionner un pays",searchCountry:"Rechercher un pays\u2026"},colorPicker:{noColor:"Aucune couleur s\xE9lectionn\xE9e",swatches:"Pr\xE9d\xE9finies",custom:"Personnalis\xE9e",nativeInput:"Choisir une couleur personnalis\xE9e",hexInput:"Couleur hexad\xE9cimale"},pagination:{previous:"Page pr\xE9c\xE9dente",next:"Page suivante",first:"Premi\xE8re page",last:"Derni\xE8re page",page:"Page",label:"Pagination",pageSize:"\xC9l\xE9ments par page"},sidebar:{expand:"D\xE9plier la barre lat\xE9rale",collapse:"Replier la barre lat\xE9rale",resize:"Redimensionner la barre lat\xE9rale"},toolbar:{menuOpen:"Ouvrir le menu",menuClose:"Fermer le menu",menu:"Menu",skipLink:"Aller au contenu principal",navigation:"Navigation principale"},rating:{label:"Note",valueText:(e,r)=>`${e} sur ${r}`,summary:(e,r)=>`${e}\xA0: ${r}`,noValue:"Non not\xE9",clear:"Effacer la note"},select:{searchPlaceholder:"Rechercher\u2026",selectPlaceholder:"S\xE9lectionner\u2026"},calendar:{moreEvents:"+{count} autres"},textarea:{formatToolbar:"Mise en forme du texte",bold:"Gras",italic:"Italique",underline:"Soulign\xE9",align:"Alignement du texte",alignStart:"Aligner \xE0 gauche",alignCenter:"Centrer",alignEnd:"Aligner \xE0 droite",alignJustify:"Justifier",textColor:"Couleur du texte",highlight:"Surlignage",colorClear:"Par d\xE9faut"},schedulerEventEditor:{colors:{red:"Rouge",purple:"Violet",yellow:"Jaune",blue:"Bleu",green:"Vert",pink:"Rose"},title:"Titre",description:"Description",allDay:"Toute la journ\xE9e",date:"Date",endDate:"Date de fin",startTime:"Heure de d\xE9but",endTime:"Heure de fin",location:"Lieu",notes:"Notes",priority:"Priorit\xE9",color:"Couleur",required:"est obligatoire",titleRequired:"Le titre est obligatoire",endBeforeStart:"La fin doit \xEAtre apr\xE8s le d\xE9but",guests:"Invit\xE9s",addGuest:"Ajouter un invit\xE9",removeGuest:"Retirer"},breadcrumb:{label:"Fil d'Ariane"},stepper:{label:"Progression",substep:(e,r,a)=>`, \xE9tape ${e} sur ${r}\xA0: ${a}`},validation:{valueMissing:"Ce champ est obligatoire",typeMismatch:{email:"Saisissez une adresse e-mail valide",url:"Saisissez une URL valide"},patternMismatch:"Respectez le format demand\xE9",tooShort:(e,r)=>`Saisissez au moins ${e} caract\xE8res (actuellement ${r}).`,tooLong:(e,r)=>`Saisissez au plus ${e} caract\xE8res (actuellement ${r}).`,rangeUnderflow:e=>`Saisissez une valeur sup\xE9rieure ou \xE9gale \xE0 ${e}`,rangeOverflow:e=>`Saisissez une valeur inf\xE9rieure ou \xE9gale \xE0 ${e}`,stepMismatch:(e,r)=>`Saisissez une valeur valide. Les deux valeurs valides les plus proches sont ${e} et ${r}`,badInput:"Saisissez une valeur valide",invalidDate:"Saisissez une date valide",unavailableDate:"Cette date n'est pas disponible",invalidTime:"Saisissez une heure valide",invalidColor:"Saisissez une couleur valide"}};var p={en:i,fr:t};export{l as a,p as b};
@@ -0,0 +1 @@
1
+ var o=["a[href]","area[href]","button","details","summary","input:not([type='hidden'])","select","textarea","iframe","embed","audio[controls]","video[controls]","[contenteditable]:not([contenteditable='false'])","eun-link","eun-button"].join(", ");function a(n,t){for(let e of n.composedPath()){if(e===t)return!1;if(e instanceof Element&&t.contains(e)&&e.matches(o))return!0}return!1}export{a};
@@ -0,0 +1 @@
1
+ var S=0,V=x=>{class m extends x{constructor(){super(...arguments);this.anchorPositionGap=4;this.anchorPositionAxis="vertical";this.anchorPositionSide="bottom";this.anchorScrollRoots=[];this.handleAnchorReposition=()=>{this.anchoredElement&&this.anchoredFloatingElement&&this.applyFallbackPosition(this.anchoredElement,this.anchoredFloatingElement,this.anchorPositionGap,this.anchorPositionAxis,this.anchorPositionSide,this.anchorPositionAlign)}}static{this.nativeAnchorPositioningSupported=typeof CSS<"u"&&CSS.supports("anchor-name: --a")}supportsAnchorPositioning(){return m.nativeAnchorPositioningSupported}disconnectedCallback(){this.unanchorFloatingElement(),this.unobserveAnchorVisibility(),super.disconnectedCallback?.()}anchorFloatingElement(o,t,e={}){let n=e.gap??4,r=e.axis??"vertical";if(this.supportsAnchorPositioning()&&!e.forceFallback){this.anchorPositionName??=`--eun-anchor-${++S}`,o.style.setProperty("anchor-name",this.anchorPositionName),t.style.setProperty("position-anchor",this.anchorPositionName),this.applyNativePlacementAttribute(o,t);return}let l=e.side??"bottom";this.anchorPositionGap=n,this.anchorPositionAxis=r,this.anchorPositionSide=l,this.anchorPositionAlign=e.align,this.anchoredElement=o,this.anchoredFloatingElement=t,this.applyFallbackPosition(o,t,n,r,l,e.align),window.addEventListener("resize",this.handleAnchorReposition),window.addEventListener("scroll",this.handleAnchorReposition,!0),this.removeAnchorScrollRootListeners();let i=o.getRootNode();for(;i instanceof ShadowRoot;)i.addEventListener("scroll",this.handleAnchorReposition,!0),this.anchorScrollRoots.push(i),i=i.host.getRootNode()}unanchorFloatingElement(){window.removeEventListener("resize",this.handleAnchorReposition),window.removeEventListener("scroll",this.handleAnchorReposition,!0),this.removeAnchorScrollRootListeners(),this.anchoredElement=void 0,this.anchoredFloatingElement=void 0}removeAnchorScrollRootListeners(){for(let o of this.anchorScrollRoots)o.removeEventListener("scroll",this.handleAnchorReposition,!0);this.anchorScrollRoots=[]}applyFallbackPosition(o,t,e,n="vertical",r="bottom",l){let i=o.getBoundingClientRect(),s=this.readViewportInset(t,"--eun-viewport-inset-top"),v=this.readViewportInset(t,"--eun-viewport-inset-bottom");if(n==="horizontal"){let a=t.getBoundingClientRect(),L=i.left,M=window.innerWidth-i.right,P=a.width+e,R=Math.max(window.innerHeight-v-a.height,s),y=d=>Math.min(Math.max(d,s),R),c,h,p;if(M>=P)c="right",h=i.right+e,p=y(i.top);else if(L>=P)c="left",h=i.left-a.width-e,p=y(i.top);else{let d=window.innerHeight-v-i.bottom,T=i.top-s,E=d<a.height+e&&T>d;c=E?"top":"bottom",p=Math.max(E?i.top-a.height-e:i.bottom+e,s),h=Math.min(Math.max(i.left,0),Math.max(window.innerWidth-a.width,0))}t.dataset.placement=c,t.classList.toggle("flipped",c==="left"||c==="top"),t.style.setProperty("--_anchorTop",`${p}px`),t.style.setProperty("--_anchorLeft",`${h}px`),t.style.setProperty("--_anchorWidth",`${i.width}px`);return}let b=window.innerHeight-v-i.bottom,u=i.top-s,f=t.getBoundingClientRect(),g=f.height,w=r==="top"?u>=g+e||u>=b:b<g+e&&u>b;t.dataset.placement=w?"top":"bottom",t.classList.toggle("flipped",w!==(r==="top"));let A=Math.max(w?i.top-g-e:i.bottom+e,s);t.style.setProperty("--_anchorTop",`${A}px`),t.style.setProperty("--_anchorLeft",`${this.alignedLeft(i,f.width,l)}px`),t.style.setProperty("--_anchorWidth",`${i.width}px`)}alignedLeft(o,t,e){if(!e)return o.left;let n=o.left;e==="center"?n=o.left+o.width/2-t/2:e==="end"&&(n=o.right-t);let r=Math.max(document.documentElement.clientWidth-t,0);return Math.min(Math.max(n,0),r)}applyNativePlacementAttribute(o,t){let e=o.getBoundingClientRect(),n=t.getBoundingClientRect(),r="bottom";n.bottom<=e.top+1?r="top":n.right<=e.left+1?r="left":n.left>=e.right-1&&(r="right"),t.dataset.placement=r,t.classList.toggle("flipped",r==="top"||r==="left")}readViewportInset(o,t){let e=getComputedStyle(o).getPropertyValue(t),n=Number.parseFloat(e);return Number.isFinite(n)?n:0}observeAnchorVisibility(o,t){if(this.anchorVisibilityObserver?.disconnect(),!o)return;let e=this.readViewportInset(o,"--eun-viewport-inset-top"),n=this.readViewportInset(o,"--eun-viewport-inset-bottom");this.anchorVisibilityObserver=new IntersectionObserver(([r])=>{r.isIntersecting||t()},{rootMargin:`${-e}px 0px ${-n}px 0px`,threshold:0}),this.anchorVisibilityObserver.observe(o)}unobserveAnchorVisibility(){this.anchorVisibilityObserver?.disconnect(),this.anchorVisibilityObserver=void 0}}return m};export{V as a};
@@ -1,4 +1,4 @@
1
- import{m as l}from"./chunk-647ISUF4.js";import{a as t,f as n,h as s,j as r,p as a,u as i}from"./chunk-YITWLCD3.js";var u=s`
1
+ import{f as i,p}from"./chunk-QMXE3KLT.js";import{a as u}from"./chunk-2XPIGFBD.js";import{a as t,f as s,h as c,j as r,p as n,u as l}from"./chunk-YITWLCD3.js";var f=c`
2
2
  :host {
3
3
  display: block;
4
4
  --_accent: var(--eun-color-blue-600, #0aa5a8);
@@ -86,7 +86,7 @@ import{m as l}from"./chunk-647ISUF4.js";import{a as t,f as n,h as s,j as r,p as
86
86
  }
87
87
 
88
88
  #chip:focus-visible {
89
- outline-color: var(--_accent);
89
+ outline-color: var(--scheduler-focus-outline-color, var(--_accent));
90
90
  outline-offset: 1px;
91
91
  }
92
92
 
@@ -144,17 +144,17 @@ import{m as l}from"./chunk-647ISUF4.js";import{a as t,f as n,h as s,j as r,p as
144
144
  white-space: nowrap;
145
145
  color: var(
146
146
  --scheduler-event-time-color,
147
- var(--eun-text-secondary, #484e61)
147
+ var(--eun-text-secondary, #666e8a)
148
148
  );
149
149
  font-size: 11px;
150
150
  line-height: 1.3;
151
151
  }
152
- `,c=u;var h="eun-scheduler-event",e=class extends i{constructor(){super(...arguments);this.label="";this.start=new Date;this.color="blue";this.appearance="default";this.direction="column";this.hideTime=!1}updated(o){super.updated(o),o.has("color")&&(e.PRESET_COLORS.has(this.color)?(this.style.removeProperty("--_accent"),this.style.removeProperty("--_tintBase")):(this.style.setProperty("--_accent",this.color),this.style.setProperty("--_tintBase",this.color)))}render(){let o=l(this.start,this.locale),p=this.end?`${this.label}, ${o} \u2013 ${this.end.toLocaleTimeString(this.locale,{hour:"numeric",minute:"2-digit"})}`:`${this.label}, ${o}`;return a`
153
- <button type="button" id="chip" aria-label=${p}>
152
+ `,h=f;var v="eun-scheduler-event",e=class extends l{constructor(){super(...arguments);this.label="";this.start=new Date;this.color="blue";this.appearance="default";this.direction="column";this.hideTime=!1}updated(a){if(super.updated(a),!a.has("color"))return;let o=i(this.color);o||(console.warn(`<${this.localName}>: color "${this.color}" is neither a preset name nor a color, falling back to blue.`,this),o=i("blue")),this.style.setProperty("--_accent",o.accent),this.style.setProperty("--_tintBase",o.tint)}render(){let a=this.locale??u(),o=p(this.start,a),d=this.end?`${this.label}, ${o} \u2013 ${this.end.toLocaleTimeString(a,{hour:"numeric",minute:"2-digit"})}`:`${this.label}, ${o}`;return n`
153
+ <button type="button" id="chip" aria-label=${d}>
154
154
  <span class="bar" aria-hidden="true"></span>
155
155
  <span class="content">
156
156
  <span class="content-title">${this.label}</span>
157
- ${this.hideTime?null:a`<span class="content-time">${o}</span>`}
157
+ ${this.hideTime?null:n`<span class="content-time">${o}</span>`}
158
158
  </span>
159
159
  </button>
160
- `}};e.styles=c,e.PRESET_COLORS=new Set(["red","purple","yellow","blue","green","pink"]),t([r()],e.prototype,"label",2),t([r({attribute:!1})],e.prototype,"start",2),t([r({attribute:!1})],e.prototype,"end",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"color",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"appearance",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"direction",2),t([r()],e.prototype,"locale",2),t([r({type:Boolean,reflect:!0,attribute:"hide-time"})],e.prototype,"hideTime",2),e=t([n(h)],e);export{h as a,e as b};
160
+ `}};e.styles=h,e.shadowRootOptions={...l.shadowRootOptions,delegatesFocus:!0},t([r()],e.prototype,"label",2),t([r({attribute:!1})],e.prototype,"start",2),t([r({attribute:!1})],e.prototype,"end",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"color",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"appearance",2),t([r({reflect:!0,useDefault:!0})],e.prototype,"direction",2),t([r()],e.prototype,"locale",2),t([r({type:Boolean,reflect:!0,attribute:"hide-time"})],e.prototype,"hideTime",2),e=t([s(v)],e);export{v as a,e as b};
@@ -1,4 +1,4 @@
1
- import{a as v}from"./chunk-22D3SRFR.js";import{a as m}from"./chunk-PPCHQG7P.js";import{a as f}from"./chunk-O7PHBLH2.js";import{a as b}from"./chunk-JGV7LHEI.js";import{a as e,b as l,c as d,d as p,f as u,h as o,j as i,p as s,u as c}from"./chunk-YITWLCD3.js";var y=o`
1
+ import{a as v}from"./chunk-22D3SRFR.js";import{a as m}from"./chunk-PPCHQG7P.js";import{a as f}from"./chunk-O7PHBLH2.js";import{a as b}from"./chunk-WP6ZYBAC.js";import{a as e,b as l,c as d,d as p,f as u,h as o,j as i,p as s,u as c}from"./chunk-YITWLCD3.js";var y=o`
2
2
  :host {
3
3
  display: inline-flex;
4
4
  align-items: center;
@@ -7,12 +7,12 @@ import{h as e}from"./chunk-YITWLCD3.js";var r=e`
7
7
  --field-placeholder-color,
8
8
  var(--eun-placeholder-color, var(--eun-color-grey-400, #c1c9d6))
9
9
  );
10
- --_iconColor: var(--field-icon-color, var(--eun-text-secondary, #484e61));
10
+ --_iconColor: var(--field-icon-color, var(--eun-text-secondary, #666e8a));
11
11
  --_errorColor: var(
12
12
  --field-error-color,
13
13
  var(--eun-color-critical-100, #aa0014)
14
14
  );
15
- --_hintColor: var(--field-hint-color, var(--eun-text-secondary, #484e61));
15
+ --_hintColor: var(--field-hint-color, var(--eun-text-secondary, #666e8a));
16
16
  --_focusIndicator: var(
17
17
  --field-focus-outline-color,
18
18
  var(--eun-color-primary-500, #3d6fff)
@@ -1,6 +1,5 @@
1
1
  import{h as o}from"./chunk-YITWLCD3.js";var e=o`
2
2
  :host {
3
- /* How each appearance reads the palette slots. */
4
3
  --_bg-default: var(--_tint);
5
4
  --_fg-default: var(--_accent);
6
5
  --_bg-fill: var(--_solid);
@@ -9,10 +8,9 @@ import{h as o}from"./chunk-YITWLCD3.js";var e=o`
9
8
  --_fg-outline: var(--_accent);
10
9
  --_bd-outline: var(--_solid);
11
10
  --_bg-flat: var(--eun-content-hover, #edeff0);
12
- --_fg-flat: var(--eun-text-secondary, #484e61);
11
+ --_fg-flat: var(--eun-text-secondary, #666e8a);
13
12
  }
14
13
 
15
- /* Step 1 : palettes. "medium" is also the fallback before "color" reflects. */
16
14
  :host(:not([color]):not([severity])),
17
15
  :host([color="medium"]:not([severity])) {
18
16
  --_solid: var(--eun-color-grey-700, #484e61);
@@ -0,0 +1 @@
1
+ function s(r,o){let t=getComputedStyle(r).getPropertyValue(o).trim();if(!t)return Number.NaN;if(/^-?(\d+\.?\d*|\.\d+)(px)?$/.test(t))return Number.parseFloat(t);let e=document.createElement("div");if(e.style.display="none",e.style.setProperty("scroll-margin-top",t),!e.style.getPropertyValue("scroll-margin-top"))return Number.NaN;(r.shadowRoot??r).append(e);let n=Number.parseFloat(getComputedStyle(e).scrollMarginTop);return e.remove(),n}export{s as a};