@limetech/lime-elements 40.23.0 → 40.24.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 (361) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/dom-BWMDM6En.js +32 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -5
  6. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -3
  7. package/dist/cjs/limel-badge_7.cjs.entry.js +12 -12
  8. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-callout.cjs.entry.js +2 -3
  12. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-chart.cjs.entry.js +5 -6
  14. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-chip-set.cjs.entry.js +2 -3
  16. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -3
  17. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  18. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -3
  19. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -3
  20. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -3
  21. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  23. package/dist/cjs/limel-date-picker.cjs.entry.js +438 -27
  24. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/limel-dock.cjs.entry.js +3 -4
  26. package/dist/cjs/limel-drag-handle_2.cjs.entry.js +4 -5
  27. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -3
  28. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -2
  30. package/dist/cjs/limel-file.cjs.entry.js +2 -3
  31. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +123 -15
  32. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-form-header.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-form.cjs.entry.js +65 -5
  35. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  36. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-help_2.cjs.entry.js +3 -3
  38. package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
  39. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  40. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  41. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  43. package/dist/cjs/limel-list-item.cjs.entry.js +3 -4
  44. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  46. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-pagination-jump.cjs.entry.js +1 -2
  48. package/dist/cjs/limel-pagination.cjs.entry.js +6 -7
  49. package/dist/cjs/limel-picker.cjs.entry.js +6 -6
  50. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -2
  52. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +2 -3
  53. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  54. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  55. package/dist/cjs/limel-resize-handle.cjs.entry.js +2 -3
  56. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  57. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  58. package/dist/cjs/limel-side-panel.cjs.entry.js +2 -3
  59. package/dist/cjs/limel-slider.cjs.entry.js +4 -5
  60. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -4
  61. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  62. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  63. package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
  64. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  65. package/dist/cjs/limel-table.cjs.entry.js +3 -4
  66. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -5
  67. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  68. package/dist/cjs/{live-message-BNl3Ihcz.js → live-message-CwxlKd60.js} +0 -30
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/cjs/{translations-JLP5icQ9.js → translations-BPsptVkN.js} +73 -3
  71. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  72. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  73. package/dist/collection/components/action-bar/action-bar.js +2 -2
  74. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  75. package/dist/collection/components/badge/badge.js +2 -2
  76. package/dist/collection/components/banner/banner.js +1 -1
  77. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  78. package/dist/collection/components/button/button.js +2 -2
  79. package/dist/collection/components/button-group/button-group.js +1 -1
  80. package/dist/collection/components/callout/callout.js +1 -1
  81. package/dist/collection/components/card/card.js +1 -1
  82. package/dist/collection/components/checkbox/checkbox.js +1 -1
  83. package/dist/collection/components/chip/chip.js +1 -1
  84. package/dist/collection/components/chip-set/chip-set.js +1 -1
  85. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  86. package/dist/collection/components/code-diff/code-diff.js +1 -1
  87. package/dist/collection/components/code-editor/code-editor.js +1 -1
  88. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  89. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  90. package/dist/collection/components/color-picker/color-picker.js +1 -1
  91. package/dist/collection/components/date-picker/date-formatter.js +147 -1
  92. package/dist/collection/components/date-picker/date-picker.css +112 -0
  93. package/dist/collection/components/date-picker/date-picker.js +307 -26
  94. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +77 -30
  95. package/dist/collection/components/date-picker/pickers/month-picker.js +3 -0
  96. package/dist/collection/components/date-picker/pickers/picker.js +37 -1
  97. package/dist/collection/components/date-picker/pickers/quarter-picker.js +3 -0
  98. package/dist/collection/components/date-picker/pickers/week-picker.js +21 -0
  99. package/dist/collection/components/date-picker/pickers/year-picker.js +24 -0
  100. package/dist/collection/components/dialog/dialog.js +2 -2
  101. package/dist/collection/components/dock/dock.js +2 -2
  102. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  103. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  104. package/dist/collection/components/file/file.js +1 -1
  105. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  106. package/dist/collection/components/file-input/file-input.js +1 -1
  107. package/dist/collection/components/flex-container/flex-container.js +1 -1
  108. package/dist/collection/components/form/fields/schema-field.js +19 -1
  109. package/dist/collection/components/form/form.js +30 -3
  110. package/dist/collection/components/form/form.test-schemas.js +11 -0
  111. package/dist/collection/components/form/invalid-input.js +14 -0
  112. package/dist/collection/components/form/widgets/date-picker.js +3 -1
  113. package/dist/collection/components/form-header/form-header.js +1 -1
  114. package/dist/collection/components/grid/grid.js +1 -1
  115. package/dist/collection/components/header/header.js +1 -1
  116. package/dist/collection/components/help/help-content.js +1 -1
  117. package/dist/collection/components/help/help.js +2 -2
  118. package/dist/collection/components/helper-line/helper-line.js +2 -2
  119. package/dist/collection/components/hotkey/hotkey.js +1 -1
  120. package/dist/collection/components/icon/icon.js +1 -1
  121. package/dist/collection/components/icon-button/icon-button.js +1 -1
  122. package/dist/collection/components/info-tile/info-tile.js +2 -2
  123. package/dist/collection/components/input-field/input-field.js +1 -1
  124. package/dist/collection/components/list/list.js +1 -1
  125. package/dist/collection/components/list-item/list-item.js +2 -2
  126. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  127. package/dist/collection/components/markdown/markdown.js +1 -1
  128. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  129. package/dist/collection/components/menu/menu.js +1 -1
  130. package/dist/collection/components/menu-list/menu-list.js +1 -1
  131. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  132. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  133. package/dist/collection/components/pagination/pagination.js +1 -1
  134. package/dist/collection/components/picker/picker.js +1 -1
  135. package/dist/collection/components/popover/popover.js +1 -1
  136. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  137. package/dist/collection/components/portal/portal.js +1 -1
  138. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  139. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  140. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  141. package/dist/collection/components/scroller/scroller.js +2 -2
  142. package/dist/collection/components/select/select.js +1 -1
  143. package/dist/collection/components/shortcut/shortcut.js +1 -1
  144. package/dist/collection/components/side-panel/side-panel.js +1 -1
  145. package/dist/collection/components/slider/slider.js +3 -3
  146. package/dist/collection/components/snackbar/snackbar.js +2 -2
  147. package/dist/collection/components/spinner/spinner.js +1 -1
  148. package/dist/collection/components/split-button/split-button.js +2 -2
  149. package/dist/collection/components/switch/switch.js +1 -1
  150. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  151. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  152. package/dist/collection/components/table/table.js +2 -2
  153. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  154. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  155. package/dist/collection/components/text-editor/text-editor.js +1 -1
  156. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  157. package/dist/collection/components/tooltip/tooltip.js +2 -2
  158. package/dist/collection/translations/da.js +2 -0
  159. package/dist/collection/translations/de.js +2 -0
  160. package/dist/collection/translations/en.js +2 -0
  161. package/dist/collection/translations/fi.js +2 -0
  162. package/dist/collection/translations/fr.js +2 -0
  163. package/dist/collection/translations/nl.js +2 -0
  164. package/dist/collection/translations/no.js +2 -0
  165. package/dist/collection/translations/sv.js +2 -0
  166. package/dist/esm/dom-B9Ofc5RB.js +30 -0
  167. package/dist/esm/lime-elements.js +1 -1
  168. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  169. package/dist/esm/limel-action-bar_3.entry.js +4 -5
  170. package/dist/esm/limel-ai-avatar.entry.js +2 -3
  171. package/dist/esm/limel-badge_7.entry.js +11 -11
  172. package/dist/esm/limel-banner.entry.js +1 -1
  173. package/dist/esm/limel-button-group.entry.js +1 -1
  174. package/dist/esm/limel-button.entry.js +2 -2
  175. package/dist/esm/limel-callout.entry.js +2 -3
  176. package/dist/esm/limel-card.entry.js +1 -1
  177. package/dist/esm/limel-chart.entry.js +1 -2
  178. package/dist/esm/limel-checkbox.entry.js +1 -1
  179. package/dist/esm/limel-chip-set.entry.js +2 -3
  180. package/dist/esm/limel-chip_2.entry.js +2 -3
  181. package/dist/esm/limel-circular-progress.entry.js +1 -1
  182. package/dist/esm/limel-code-diff.entry.js +2 -3
  183. package/dist/esm/limel-code-editor.entry.js +2 -3
  184. package/dist/esm/limel-collapsible-section.entry.js +2 -3
  185. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  186. package/dist/esm/limel-color-picker.entry.js +1 -1
  187. package/dist/esm/limel-date-picker.entry.js +435 -24
  188. package/dist/esm/limel-dialog.entry.js +2 -2
  189. package/dist/esm/limel-dock.entry.js +3 -4
  190. package/dist/esm/limel-drag-handle_2.entry.js +4 -5
  191. package/dist/esm/limel-email-viewer.entry.js +2 -3
  192. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  193. package/dist/esm/limel-file-viewer.entry.js +1 -2
  194. package/dist/esm/limel-file.entry.js +2 -3
  195. package/dist/esm/limel-flatpickr-adapter.entry.js +118 -10
  196. package/dist/esm/limel-flex-container.entry.js +1 -1
  197. package/dist/esm/limel-form-header.entry.js +1 -1
  198. package/dist/esm/limel-form.entry.js +65 -5
  199. package/dist/esm/limel-grid.entry.js +1 -1
  200. package/dist/esm/limel-header.entry.js +1 -1
  201. package/dist/esm/limel-help_2.entry.js +3 -3
  202. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  203. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  204. package/dist/esm/limel-icon-button.entry.js +1 -1
  205. package/dist/esm/limel-icon.entry.js +1 -1
  206. package/dist/esm/limel-info-tile.entry.js +2 -2
  207. package/dist/esm/limel-list-item.entry.js +3 -4
  208. package/dist/esm/limel-markdown.entry.js +1 -1
  209. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  210. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  211. package/dist/esm/limel-pagination-jump.entry.js +1 -2
  212. package/dist/esm/limel-pagination.entry.js +2 -3
  213. package/dist/esm/limel-picker.entry.js +4 -4
  214. package/dist/esm/limel-popover_2.entry.js +2 -2
  215. package/dist/esm/limel-profile-picture.entry.js +1 -2
  216. package/dist/esm/limel-prosemirror-adapter.entry.js +2 -3
  217. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  218. package/dist/esm/limel-radio-button.entry.js +2 -2
  219. package/dist/esm/limel-resize-handle.entry.js +2 -3
  220. package/dist/esm/limel-select.entry.js +1 -1
  221. package/dist/esm/limel-shortcut.entry.js +1 -1
  222. package/dist/esm/limel-side-panel.entry.js +2 -3
  223. package/dist/esm/limel-slider.entry.js +4 -5
  224. package/dist/esm/limel-snackbar.entry.js +3 -4
  225. package/dist/esm/limel-split-button.entry.js +2 -2
  226. package/dist/esm/limel-switch.entry.js +1 -1
  227. package/dist/esm/limel-tab-bar.entry.js +1 -1
  228. package/dist/esm/limel-tab-panel.entry.js +1 -1
  229. package/dist/esm/limel-table.entry.js +3 -4
  230. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -5
  231. package/dist/esm/limel-text-editor.entry.js +1 -1
  232. package/dist/esm/{live-message-BQAYeNiX.js → live-message-BKB4vu28.js} +1 -30
  233. package/dist/esm/loader.js +1 -1
  234. package/dist/esm/{translations-D9ZGrMhe.js → translations--i932i_D.js} +70 -2
  235. package/dist/lime-elements/lime-elements.esm.js +1 -1
  236. package/dist/lime-elements/p--i932i_D.js +1 -0
  237. package/dist/lime-elements/p-0700e83f.entry.js +1 -0
  238. package/dist/lime-elements/{p-95a486c8.entry.js → p-083aa41f.entry.js} +1 -1
  239. package/dist/lime-elements/p-08b1bfad.entry.js +1 -0
  240. package/dist/lime-elements/{p-8fe28845.entry.js → p-127ff801.entry.js} +1 -1
  241. package/dist/lime-elements/{p-764d2f86.entry.js → p-156ea100.entry.js} +1 -1
  242. package/dist/lime-elements/{p-1e0ced6a.entry.js → p-15f5e45e.entry.js} +1 -1
  243. package/dist/lime-elements/p-1c7fcafc.entry.js +1 -0
  244. package/dist/lime-elements/p-1e699935.entry.js +1 -0
  245. package/dist/lime-elements/{p-f71fbc9e.entry.js → p-1fa0fd7a.entry.js} +4 -4
  246. package/dist/lime-elements/{p-ce71c5b9.entry.js → p-22aaa1ae.entry.js} +1 -1
  247. package/dist/lime-elements/p-2a5113ef.entry.js +1 -0
  248. package/dist/lime-elements/p-2d698983.entry.js +1 -0
  249. package/dist/lime-elements/p-373032c0.entry.js +1 -0
  250. package/dist/lime-elements/{p-8e80a884.entry.js → p-391305a7.entry.js} +3 -3
  251. package/dist/lime-elements/p-391a227e.entry.js +1 -0
  252. package/dist/lime-elements/p-3a421be9.entry.js +1 -0
  253. package/dist/lime-elements/p-3d6ba932.entry.js +1 -0
  254. package/dist/lime-elements/{p-c8a34cef.entry.js → p-3f9acb22.entry.js} +1 -1
  255. package/dist/lime-elements/p-46695dd3.entry.js +1 -0
  256. package/dist/lime-elements/p-490ac19d.entry.js +1 -0
  257. package/dist/lime-elements/p-4bc550e5.entry.js +1 -0
  258. package/dist/lime-elements/{p-438fe49b.entry.js → p-4de3b35b.entry.js} +1 -1
  259. package/dist/lime-elements/p-4eee17f7.entry.js +1 -0
  260. package/dist/lime-elements/p-507965d9.entry.js +1 -0
  261. package/dist/lime-elements/p-51fde63a.entry.js +1 -0
  262. package/dist/lime-elements/{p-db9cb7ef.entry.js → p-557f0e46.entry.js} +1 -1
  263. package/dist/lime-elements/p-558a7e27.entry.js +1 -0
  264. package/dist/lime-elements/{p-c6b3448c.entry.js → p-5fcb39b8.entry.js} +1 -1
  265. package/dist/lime-elements/p-61c81d09.entry.js +16 -0
  266. package/dist/lime-elements/{p-f59447bf.entry.js → p-63f2f0b7.entry.js} +1 -1
  267. package/dist/lime-elements/p-65199efa.entry.js +1 -0
  268. package/dist/lime-elements/p-6567de01.entry.js +1 -0
  269. package/dist/lime-elements/{p-a6387dc7.entry.js → p-664dbc43.entry.js} +1 -1
  270. package/dist/lime-elements/{p-6ae093c8.entry.js → p-6b6b8ffe.entry.js} +1 -1
  271. package/dist/lime-elements/p-6f8305ac.entry.js +1 -0
  272. package/dist/lime-elements/{p-c0ebf7cc.entry.js → p-718431c1.entry.js} +1 -1
  273. package/dist/lime-elements/p-71ed9466.entry.js +1 -0
  274. package/dist/lime-elements/{p-7d0ffc60.entry.js → p-81c43fe9.entry.js} +1 -1
  275. package/dist/lime-elements/p-8e46d111.entry.js +1 -0
  276. package/dist/lime-elements/{p-d3f13124.entry.js → p-9cbfedad.entry.js} +1 -1
  277. package/dist/lime-elements/p-9e5a15d1.entry.js +1 -0
  278. package/dist/lime-elements/p-B9Ofc5RB.js +1 -0
  279. package/dist/lime-elements/p-CMedqTpE.js +1 -0
  280. package/dist/lime-elements/{p-e5abe390.entry.js → p-a1cd0dc0.entry.js} +1 -1
  281. package/dist/lime-elements/p-a5aa8c06.entry.js +1 -0
  282. package/dist/lime-elements/{p-c61e9b83.entry.js → p-ae634a68.entry.js} +1 -1
  283. package/dist/lime-elements/{p-c2056ebc.entry.js → p-b6334f4b.entry.js} +1 -1
  284. package/dist/lime-elements/{p-28957b5c.entry.js → p-b810b854.entry.js} +1 -1
  285. package/dist/lime-elements/{p-cf2d43c7.entry.js → p-bb45a5bb.entry.js} +1 -1
  286. package/dist/lime-elements/{p-54537c85.entry.js → p-be653ca9.entry.js} +1 -1
  287. package/dist/lime-elements/{p-40940a6c.entry.js → p-bfb98b0e.entry.js} +1 -1
  288. package/dist/lime-elements/{p-3f7fa772.entry.js → p-c1dbad1e.entry.js} +1 -1
  289. package/dist/lime-elements/{p-39d1e157.entry.js → p-c3b86df2.entry.js} +1 -1
  290. package/dist/lime-elements/p-c3d1aa57.entry.js +1 -0
  291. package/dist/lime-elements/p-c63d294b.entry.js +1 -0
  292. package/dist/lime-elements/{p-f3b93ce8.entry.js → p-c6eed240.entry.js} +1 -1
  293. package/dist/lime-elements/p-c7bcae67.entry.js +1 -0
  294. package/dist/lime-elements/p-ce418df1.entry.js +159 -0
  295. package/dist/lime-elements/{p-6053608a.entry.js → p-d078ea89.entry.js} +1 -1
  296. package/dist/lime-elements/p-d2f784a8.entry.js +1 -0
  297. package/dist/lime-elements/{p-48a412ed.entry.js → p-d51bf98b.entry.js} +1 -1
  298. package/dist/lime-elements/p-da9be21e.entry.js +1 -0
  299. package/dist/lime-elements/{p-a891f3e8.entry.js → p-e3cf45ed.entry.js} +1 -1
  300. package/dist/lime-elements/{p-909466b8.entry.js → p-e481fb53.entry.js} +1 -1
  301. package/dist/lime-elements/{p-0319f07f.entry.js → p-e8665e99.entry.js} +1 -1
  302. package/dist/lime-elements/{p-5dce791c.entry.js → p-eb812303.entry.js} +1 -1
  303. package/dist/types/components/date-picker/date-formatter.d.ts +12 -0
  304. package/dist/types/components/date-picker/date-picker.d.ts +59 -3
  305. package/dist/types/components/date-picker/flatpickr-adapter/flatpickr-adapter.d.ts +13 -2
  306. package/dist/types/components/date-picker/pickers/month-picker.d.ts +1 -0
  307. package/dist/types/components/date-picker/pickers/picker.d.ts +8 -1
  308. package/dist/types/components/date-picker/pickers/quarter-picker.d.ts +1 -0
  309. package/dist/types/components/date-picker/pickers/week-picker.d.ts +4 -0
  310. package/dist/types/components/date-picker/pickers/year-picker.d.ts +7 -0
  311. package/dist/types/components/form/fields/schema-field.d.ts +2 -0
  312. package/dist/types/components/form/form.d.ts +2 -0
  313. package/dist/types/components/form/form.test-schemas.d.ts +1 -0
  314. package/dist/types/components/form/invalid-input.d.ts +14 -0
  315. package/dist/types/components/form/widgets/date-picker.d.ts +1 -0
  316. package/dist/types/components.d.ts +31 -11
  317. package/dist/types/translations/da.d.ts +2 -0
  318. package/dist/types/translations/de.d.ts +2 -0
  319. package/dist/types/translations/en.d.ts +2 -0
  320. package/dist/types/translations/fi.d.ts +2 -0
  321. package/dist/types/translations/fr.d.ts +2 -0
  322. package/dist/types/translations/nl.d.ts +2 -0
  323. package/dist/types/translations/no.d.ts +2 -0
  324. package/dist/types/translations/sv.d.ts +2 -0
  325. package/package.json +2 -2
  326. package/dist/cjs/language-s0bKUCvO.js +0 -58
  327. package/dist/esm/language-VamkUr90.js +0 -55
  328. package/dist/lime-elements/p-0a7cbdc3.entry.js +0 -1
  329. package/dist/lime-elements/p-0f96e94d.entry.js +0 -1
  330. package/dist/lime-elements/p-1a0c5e45.entry.js +0 -1
  331. package/dist/lime-elements/p-401d5c92.entry.js +0 -1
  332. package/dist/lime-elements/p-430db3b9.entry.js +0 -1
  333. package/dist/lime-elements/p-43b62587.entry.js +0 -1
  334. package/dist/lime-elements/p-48dccb83.entry.js +0 -1
  335. package/dist/lime-elements/p-5c918155.entry.js +0 -1
  336. package/dist/lime-elements/p-66101ed6.entry.js +0 -1
  337. package/dist/lime-elements/p-7ab72b52.entry.js +0 -1
  338. package/dist/lime-elements/p-8d602078.entry.js +0 -1
  339. package/dist/lime-elements/p-8d9a2a22.entry.js +0 -1
  340. package/dist/lime-elements/p-8de4f0f3.entry.js +0 -1
  341. package/dist/lime-elements/p-99984c66.entry.js +0 -1
  342. package/dist/lime-elements/p-9d46f720.entry.js +0 -1
  343. package/dist/lime-elements/p-9e2b426c.entry.js +0 -1
  344. package/dist/lime-elements/p-C9dBa_Im.js +0 -1
  345. package/dist/lime-elements/p-Cw7VQSGU.js +0 -1
  346. package/dist/lime-elements/p-VamkUr90.js +0 -1
  347. package/dist/lime-elements/p-b1c7033b.entry.js +0 -16
  348. package/dist/lime-elements/p-b5451350.entry.js +0 -1
  349. package/dist/lime-elements/p-c75f3b0d.entry.js +0 -1
  350. package/dist/lime-elements/p-ca4247c4.entry.js +0 -1
  351. package/dist/lime-elements/p-d53421af.entry.js +0 -1
  352. package/dist/lime-elements/p-d8901e39.entry.js +0 -1
  353. package/dist/lime-elements/p-d89553b3.entry.js +0 -1
  354. package/dist/lime-elements/p-d93b8ce0.entry.js +0 -1
  355. package/dist/lime-elements/p-e97340c4.entry.js +0 -1
  356. package/dist/lime-elements/p-ec0c113d.entry.js +0 -1
  357. package/dist/lime-elements/p-f036ad27.entry.js +0 -1
  358. package/dist/lime-elements/p-f197000b.entry.js +0 -159
  359. package/dist/lime-elements/p-f5bb17eb.entry.js +0 -1
  360. package/dist/lime-elements/p-f6bc6658.entry.js +0 -1
  361. package/dist/lime-elements/p-fa1aa440.entry.js +0 -1
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-JLP5icQ9.js');
5
- require('./language-s0bKUCvO.js');
4
+ var translations = require('./translations-BPsptVkN.js');
6
5
 
7
6
  const dragHandleCss = () => `@charset "UTF-8";limel-drag-handle{display:inline-flex;align-items:center;justify-content:center}button.limel-drag-handle{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit}button.limel-drag-handle:focus{outline:none}button.limel-drag-handle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.limel-drag-handle{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}button.limel-drag-handle:hover,button.limel-drag-handle:focus,button.limel-drag-handle:focus-visible{will-change:color, background-color, box-shadow, transform}button.limel-drag-handle:hover,button.limel-drag-handle:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--mdc-theme-primary);background-color:transparent}button.limel-drag-handle:hover{box-shadow:var(--button-shadow-hovered)}button.limel-drag-handle:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.limel-drag-handle:hover,button.limel-drag-handle:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.limel-drag-handle{touch-action:none;cursor:grab}button.limel-drag-handle:active{cursor:grabbing}button.limel-drag-handle:active,button.limel-drag-handle:hover{box-shadow:none !important}button.limel-drag-handle{display:inline-flex;align-items:center;justify-content:center;border-radius:0.4rem;padding:0.5rem;max-height:2.25rem;max-width:2.25rem;color:rgb(var(--contrast-900))}button.limel-drag-handle .drag-icon{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.2rem}limel-drag-handle[drag-direction=horizontal] button.limel-drag-handle .drag-icon{grid-template-columns:1fr 1fr}button.limel-drag-handle .drag-icon div{transition:transform 0.2s ease, background-color 0.2s ease;height:0.125rem;width:0.125rem;border-radius:1rem;background-color:currentColor;transform:scale(1)}.is-being-dragged button.limel-drag-handle .drag-icon div,button.limel-drag-handle:active .drag-icon div,button.limel-drag-handle:focus .drag-icon div,button.limel-drag-handle:hover .drag-icon div,button.limel-drag-handle:focus-visible .drag-icon div{background-color:var(--mdc-theme-primary);transform:scale(1.5)}`;
8
7
 
@@ -34,7 +33,7 @@ const DragHandleComponent = class {
34
33
  render() {
35
34
  const tooltipLabel = translations.translations.get('drag-handle.drag-to-reorder', this.language);
36
35
  const ariaLabel = translations.translations.get('drag-handle.drag-handle', this.language);
37
- return (index.h(index.Host, { key: '2656fb1a09ca8bd8db8fe5849b4d5aa231d13e6e' }, index.h("button", { key: 'f2239eca3b4a11dd09f551d53c08aec30e780904', "data-drag-handle": true, type: "button", class: "limel-drag-handle", tabindex: -1, "aria-label": ariaLabel, id: this.dragHandleId, onClick: this.handleClick }, index.h("div", { key: '3c47f3612efa43a3e020f432e88b71524b15190b', class: "drag-icon", role: "presentation", "aria-hidden": "true" }, index.h("div", { key: "1" }), index.h("div", { key: "2" }), index.h("div", { key: "3" }), index.h("div", { key: "4" }), index.h("div", { key: "5" }), index.h("div", { key: "6" })), index.h("limel-tooltip", { key: 'e2706e1f4757b75ac8bce97d549e6e81ee53ecca', openDirection: this.tooltipOpenDirection, elementId: this.dragHandleId, label: tooltipLabel }))));
36
+ return (index.h(index.Host, { key: '2f2da901278a10d69a28e8a8054b5dd95a449fc4' }, index.h("button", { key: 'a0515c4b75a5442b9dab1f93d1b00b24506e2996', "data-drag-handle": true, type: "button", class: "limel-drag-handle", tabindex: -1, "aria-label": ariaLabel, id: this.dragHandleId, onClick: this.handleClick }, index.h("div", { key: '493353f7fdd9f7fd9e0ae3f805e041072e58dee0', class: "drag-icon", role: "presentation", "aria-hidden": "true" }, index.h("div", { key: "1" }), index.h("div", { key: "2" }), index.h("div", { key: "3" }), index.h("div", { key: "4" }), index.h("div", { key: "5" }), index.h("div", { key: "6" })), index.h("limel-tooltip", { key: '93ce003748dba6771876e8b83e4ba5cb021c8a5f', openDirection: this.tooltipOpenDirection, elementId: this.dragHandleId, label: tooltipLabel }))));
38
37
  }
39
38
  };
40
39
  DragHandleComponent.style = dragHandleCss();
@@ -102,12 +101,12 @@ const Scroller = class {
102
101
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
103
102
  }
104
103
  render() {
105
- return (index.h(index.Host, { key: '78f61e7088a1810df15e343a8efe7e5b9600ed40' }, index.h("div", { key: 'fab873acfcd0635b23321c97724f5d43dffdac57', class: {
104
+ return (index.h(index.Host, { key: '1545394989338cff0a3d338364cd8379af2f7ce7' }, index.h("div", { key: '1ed02c23e9d17850828306f203a6cabbd8b0796d', class: {
106
105
  scroller: true,
107
106
  [this.orientation]: true,
108
107
  'can-scroll-to-start': this.canScrollToStart,
109
108
  'can-scroll-to-end': this.canScrollToEnd,
110
- } }, index.h("div", { key: '660a1d2df42aa6087065b1ace5d538ec64e59d6a', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, index.h("div", { key: '9ec447c273092f67a645676f0c5f34e6d08c128f', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, index.h("slot", { key: '67385c7bd003d7062b045250afedc0ca21f5e5f8', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
109
+ } }, index.h("div", { key: '4297b483a05b4636f4e1a8e571145c6489117ce0', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, index.h("div", { key: '61e55181e43394d7a9aef2ddee0269295d845244', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, index.h("slot", { key: 'da3b7bc2ece87c0d6b6c1007b90bf6a55b123ad2', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
111
110
  }
112
111
  renderEdge(edge) {
113
112
  return [
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-JLP5icQ9.js');
4
+ var translations = require('./translations-BPsptVkN.js');
5
5
  var formatBytes = require('./format-bytes-WTHVI718.js');
6
6
  var adaptColorContrast = require('./adapt-color-contrast-h6iwOfZd.js');
7
7
  var icons = require('./icons-isR5V1X0.js');
8
- require('./language-s0bKUCvO.js');
9
8
 
10
9
  /**
11
10
  * Checks whether the given HTML contains any images with a `data-remote-src`
@@ -216,7 +215,7 @@ const EmailViewer = class {
216
215
  }
217
216
  }
218
217
  render() {
219
- return (index.h(index.Host, { key: '85990dff64a6fc62c1c3d4ca58c188ceee3aa639' }, index.h("div", { key: '6e1ab5f5210789e68256cd8bc2c50df7de3fe9e1', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), index.h("section", { key: '523d7d19938312506bdfd735fde3251dfc408c75' }, this.renderAttachments(), this.renderBody()))));
218
+ return (index.h(index.Host, { key: 'f3190e64d1a5334ff9e172e4f47eaafb8c854851' }, index.h("div", { key: 'ad8cb6e436784d255f357fe2393a682998371cd1', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), index.h("section", { key: '42adf034350835f0e91888bb99123fbcd79e698a' }, this.renderAttachments(), this.renderBody()))));
220
219
  }
221
220
  renderHeaders() {
222
221
  const headerFields = [
@@ -237,7 +237,7 @@ const FileDropzone = class {
237
237
  };
238
238
  }
239
239
  render() {
240
- return (index.h(index.Host, { key: '0a8c13ab0d5f60152669965bb43981cc1f6c430f', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, index.h("slot", { key: '740de02e64e7cebca2cd67d10c148d9761ac85bb' }), this.renderOnDragLayout()));
240
+ return (index.h(index.Host, { key: '15f9995e7746e8019c3f0d9cd6590bb38bd61e84', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, index.h("slot", { key: 'f55bf7a4630b1c72fb7839db63cdb9df1c4d5b60' }), this.renderOnDragLayout()));
241
241
  }
242
242
  };
243
243
  FileDropzone.style = fileDropzoneCss();
@@ -298,7 +298,7 @@ const FileInput = class {
298
298
  this.fileInput = this.element.shadowRoot.getElementById(this.fileInputId);
299
299
  }
300
300
  render() {
301
- return (index.h(index.Host, { key: '1bedc75973c5a12ff099607e35991153811f3166', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, index.h("input", { key: '583506fe7cbc9319bece58aefe5d793fc563dbc2', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), index.h("slot", { key: 'fef95ae5ffdc6a4cc00be7f6e021ea39ed253412' })));
301
+ return (index.h(index.Host, { key: 'fb2eee15dce908e1206d6021b59779b75568a1cd', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, index.h("input", { key: '12071d39f562b4d8fa058aee903393297501ece5', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), index.h("slot", { key: '0569c37440177e0b191a9885cf035be5a0a50881' })));
302
302
  }
303
303
  handleKeyDown(event) {
304
304
  if (['Tab', 'Backspace', 'Enter'].includes(event.code)) {
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var index$1 = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-JLP5icQ9.js');
4
+ var translations = require('./translations-BPsptVkN.js');
5
5
  var index = require('./index-DIiA99Er.js');
6
6
  var image_template = require('./image.template-DlF-f23b.js');
7
- require('./language-s0bKUCvO.js');
8
7
  require('./_commonjsHelpers-CFO10eej.js');
9
8
 
10
9
  /**
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-JLP5icQ9.js');
4
+ var translations = require('./translations-BPsptVkN.js');
5
5
  var fileMetadata = require('./file-metadata-BrhOssGG.js');
6
6
  var formatBytes = require('./format-bytes-WTHVI718.js');
7
7
  var imageResize = require('./image-resize-JlRLB97I.js');
8
- require('./language-s0bKUCvO.js');
9
8
  require('./icons-isR5V1X0.js');
10
9
  require('./get-icon-props-CwpDdQDI.js');
11
10
 
@@ -122,7 +121,7 @@ const File = class {
122
121
  this.resizingFile = undefined;
123
122
  }
124
123
  render() {
125
- return (index.h(index.Host, { key: 'fde08c4a882443f122caf923cd5d4eae1603342d', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: 'bbafe0b47742c71cca1dd78a380072ceb6646c37', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
124
+ return (index.h(index.Host, { key: '00d4776052cbffc0066deba3a1c162d49d9c4e02', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: 'a3e031aba6715b825fde01d91a9d2667f300a606', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
126
125
  }
127
126
  get statusText() {
128
127
  var _a, _b, _c;
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-JLP5icQ9.js');
4
+ var translations = require('./translations-BPsptVkN.js');
5
5
  var _commonjsHelpers = require('./_commonjsHelpers-CFO10eej.js');
6
6
  require('./sv-Co78RX70.js');
7
7
  var moment = require('./moment-Cfsz2WF1.js');
8
8
  var device = require('./device-C9O7lYI9.js');
9
- var language = require('./language-s0bKUCvO.js');
10
9
  var eq = require('./eq-DFcUoVzv.js');
11
10
  var isArrayLike$1 = require('./isArrayLike-0-cyPB5I.js');
12
11
  var _isIndex = require('./_isIndex-Bu45fvR7.js');
@@ -6507,7 +6506,43 @@ class Picker {
6507
6506
  }
6508
6507
  setValue(value) {
6509
6508
  var _a;
6510
- (_a = this.flatpickr) === null || _a === void 0 ? void 0 : _a.setDate(value, false);
6509
+ const currentlySelected = (_a = this.flatpickr) === null || _a === void 0 ? void 0 : _a.selectedDates[0];
6510
+ const isUnchanged = currentlySelected
6511
+ ? (value === null || value === void 0 ? void 0 : value.getTime()) === currentlySelected.getTime()
6512
+ : !value;
6513
+ if (!this.flatpickr || isUnchanged) {
6514
+ // Runs on every re-render, so skip an unchanged date.
6515
+ return;
6516
+ }
6517
+ this.flatpickr.setDate(value, false);
6518
+ this.redrawSelection();
6519
+ }
6520
+ /**
6521
+ * A silent `setDate` fires no Flatpickr hooks, so a picker that marks
6522
+ * its selection from hooks does it here instead.
6523
+ */
6524
+ redrawSelection() {
6525
+ // The default day grid is redrawn by Flatpickr itself.
6526
+ }
6527
+ // Flatpickr only does this on key presses in the input it is bound to.
6528
+ focusDay() {
6529
+ const day = this.getDayToFocus();
6530
+ day === null || day === void 0 ? void 0 : day.focus();
6531
+ return !!day;
6532
+ }
6533
+ // The same order Flatpickr uses.
6534
+ getDayToFocus() {
6535
+ var _a;
6536
+ const days = (_a = this.flatpickr) === null || _a === void 0 ? void 0 : _a.daysContainer;
6537
+ if (!days) {
6538
+ return;
6539
+ }
6540
+ const isVisible = (day) => (day === null || day === void 0 ? void 0 : day.isConnected) && days.contains(day);
6541
+ return [
6542
+ this.flatpickr.selectedDateElem,
6543
+ this.flatpickr.todayDateElem,
6544
+ days.querySelector('.flatpickr-day:not(.prevMonthDay):not(.nextMonthDay)'),
6545
+ ].find(isVisible);
6511
6546
  }
6512
6547
  redraw() {
6513
6548
  var _a;
@@ -6530,18 +6565,18 @@ class Picker {
6530
6565
  });
6531
6566
  }
6532
6567
  getFlatpickrLang() {
6533
- const language$1 = language.getPrimarySubtag(this.language);
6534
- if (language$1 === 'nb') {
6568
+ const language = translations.getPrimarySubtag(this.language);
6569
+ if (language === 'nb') {
6535
6570
  return 'no';
6536
6571
  }
6537
- return language$1;
6572
+ return language;
6538
6573
  }
6539
6574
  getMomentLang() {
6540
- const language$1 = language.getPrimarySubtag(this.language);
6541
- if (language$1 === 'no') {
6575
+ const language = translations.getPrimarySubtag(this.language);
6576
+ if (language === 'no') {
6542
6577
  return 'nb';
6543
6578
  }
6544
- return language$1;
6579
+ return language;
6545
6580
  }
6546
6581
  getPickerDate(selectedDates) {
6547
6582
  return selectedDates[0] ? new Date(selectedDates[0].toJSON()) : null;
@@ -7143,6 +7178,9 @@ class MonthPicker extends Picker {
7143
7178
  }
7144
7179
  async handleClose(selectedDates) {
7145
7180
  await super.handleClose(selectedDates);
7181
+ this.redrawSelection();
7182
+ }
7183
+ redrawSelection() {
7146
7184
  this.selectMonth(this.flatpickr.selectedDates, this.flatpickr.input.value, this.flatpickr);
7147
7185
  }
7148
7186
  handleReady(_, __, fp) {
@@ -7259,6 +7297,9 @@ class QuarterPicker extends Picker {
7259
7297
  }
7260
7298
  async handleClose(selectedDates) {
7261
7299
  await super.handleClose(selectedDates);
7300
+ this.redrawSelection();
7301
+ }
7302
+ redrawSelection() {
7262
7303
  this.selectQuarter(this.flatpickr.selectedDates, this.flatpickr.input.value, this.flatpickr);
7263
7304
  }
7264
7305
  handleReady(_, __, fp) {
@@ -7471,6 +7512,7 @@ function requireWeekSelect () {
7471
7512
  var weekSelectExports = requireWeekSelect();
7472
7513
  var weekSelectPlugin = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(weekSelectExports);
7473
7514
 
7515
+ const DAYS_PER_WEEK = 7;
7474
7516
  class WeekPicker extends Picker {
7475
7517
  constructor(language, change, dateFormat = '[w] W GGGG') {
7476
7518
  super(language, change, dateFormat);
@@ -7483,6 +7525,26 @@ class WeekPicker extends Picker {
7483
7525
  }
7484
7526
  return config;
7485
7527
  }
7528
+ /**
7529
+ * Marks the selected week the way the `weekSelect` plugin does.
7530
+ */
7531
+ redrawSelection() {
7532
+ var _a, _b;
7533
+ const days = (_a = this.flatpickr.days) === null || _a === void 0 ? void 0 : _a.childNodes;
7534
+ const selectedIndex = (_b = this.flatpickr.selectedDateElem) === null || _b === void 0 ? void 0 : _b.$i;
7535
+ // `clear()` leaves `selectedDateElem` on the old cell.
7536
+ const hasSelection = this.flatpickr.selectedDates.length > 0;
7537
+ if (this.nativePicker ||
7538
+ !days ||
7539
+ !hasSelection ||
7540
+ selectedIndex === undefined) {
7541
+ return;
7542
+ }
7543
+ const weekStart = DAYS_PER_WEEK * Math.floor(selectedIndex / DAYS_PER_WEEK);
7544
+ for (let i = weekStart; i < weekStart + DAYS_PER_WEEK; i++) {
7545
+ days[i].classList.add('week', 'selected');
7546
+ }
7547
+ }
7486
7548
  }
7487
7549
 
7488
7550
  const YEAR_INTERVAL = 10;
@@ -7550,8 +7612,32 @@ class YearPicker extends Picker {
7550
7612
  }
7551
7613
  async handleClose(selectedDates) {
7552
7614
  await super.handleClose(selectedDates);
7615
+ this.redrawSelection();
7616
+ }
7617
+ redrawSelection() {
7618
+ const selected = this.flatpickr.selectedDates[0];
7619
+ if (selected) {
7620
+ this.showYear(selected.getFullYear());
7621
+ }
7553
7622
  this.selectYear(this.flatpickr.selectedDates, this.flatpickr.input.value);
7554
7623
  }
7624
+ /**
7625
+ * Moves the year window, which only the arrows move otherwise, so that
7626
+ * `year` has a cell to highlight.
7627
+ * @param year
7628
+ */
7629
+ showYear(year) {
7630
+ var _a, _b;
7631
+ const first = (_a = this.years[0]) === null || _a === void 0 ? void 0 : _a.year();
7632
+ const last = (_b = this.years.at(-1)) === null || _b === void 0 ? void 0 : _b.year();
7633
+ if (first === undefined || last === undefined) {
7634
+ return;
7635
+ }
7636
+ if (year >= first && year <= last) {
7637
+ return;
7638
+ }
7639
+ this.addYears(year - this.years[YEAR_INTERVAL / 2].year());
7640
+ }
7555
7641
  handleReady(_, __, fp) {
7556
7642
  this.bootstrapYearPicker(fp);
7557
7643
  this.selectYear(fp.selectedDates, fp.input.value);
@@ -7689,9 +7775,14 @@ const DatePickerCalendar = class {
7689
7775
  break;
7690
7776
  }
7691
7777
  }
7692
- if (this.formatter) {
7693
- this.picker.formatter = this.formatter;
7778
+ }
7779
+ // `componentDidUpdate` ignores `value` while the calendar is open.
7780
+ watchPreviewValue() {
7781
+ var _a;
7782
+ if (!this.isOpen) {
7783
+ return;
7694
7784
  }
7785
+ this.picker.setValue((_a = this.previewValue) !== null && _a !== void 0 ? _a : this.value);
7695
7786
  }
7696
7787
  componentDidUpdate() {
7697
7788
  if (!this.flatPickrCreated) {
@@ -7702,7 +7793,7 @@ const DatePickerCalendar = class {
7702
7793
  }
7703
7794
  }
7704
7795
  createFlatpickr() {
7705
- var _a, _b;
7796
+ var _a, _b, _c;
7706
7797
  if (!this.inputElement) {
7707
7798
  // The input element is programatically set on this element
7708
7799
  // after its been rendered.
@@ -7712,9 +7803,21 @@ const DatePickerCalendar = class {
7712
7803
  ((_b = (_a = this.container).checkVisibility) === null || _b === void 0 ? void 0 : _b.call(_a)) === false) {
7713
7804
  return;
7714
7805
  }
7715
- this.picker.init(this.inputElement, this.container, this.value);
7806
+ // Flatpickr focuses the input it is bound to on Escape, Shift+Tab
7807
+ // and closing, but the proxy is hidden and can't take focus.
7808
+ this.proxyInput.focus = () => this.inputElement.focus();
7809
+ this.picker.init(this.proxyInput, this.container, (_c = this.previewValue) !== null && _c !== void 0 ? _c : this.value);
7716
7810
  this.flatPickrCreated = true;
7717
7811
  }
7812
+ /**
7813
+ * Moves focus to the selected day, else today, else the first day of
7814
+ * the month.
7815
+ * @returns `false` when the calendar has no day grid
7816
+ */
7817
+ async focusDay() {
7818
+ var _a, _b;
7819
+ return (_b = (_a = this.picker) === null || _a === void 0 ? void 0 : _a.focusDay()) !== null && _b !== void 0 ? _b : false;
7820
+ }
7718
7821
  connectedCallback() {
7719
7822
  this.deferredDestroy.cancel();
7720
7823
  }
@@ -7725,10 +7828,15 @@ const DatePickerCalendar = class {
7725
7828
  });
7726
7829
  }
7727
7830
  render() {
7728
- return (index.h("div", { key: '86cbefbe9481503480ec3a2d63e333aaa206aecc', class: "container", ref: (el) => (this.container = el), style: {
7831
+ return (index.h(index.Host, { key: 'ceea5193e673dbf06b5b39f74ebeaa4f9dfac3be' }, index.h("input", { key: 'bb62c924bdf96790303f5930e8e0e30b00139e35', type: "text", tabindex: -1, "aria-hidden": "true", hidden: true, ref: (el) => (this.proxyInput = el) }), index.h("div", { key: '6e6fd47d001c10ef107a8049f27eccd0f4721463', class: "container", ref: (el) => (this.container = el), style: {
7729
7832
  '--today-label': `"${translations.translations.get('date-picker.today', this.language)}"`,
7730
- } }));
7833
+ } })));
7731
7834
  }
7835
+ static get watchers() { return {
7836
+ "previewValue": [{
7837
+ "watchPreviewValue": 0
7838
+ }]
7839
+ }; }
7732
7840
  };
7733
7841
  DatePickerCalendar.style = flatpickrAdapterCss();
7734
7842
 
@@ -28,7 +28,7 @@ const FlexContainer = class {
28
28
  console.warn('limel-flex-container is deprecated, please use CSS instead: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox');
29
29
  }
30
30
  render() {
31
- return index.h("slot", { key: 'f5baf3c618a69e1beaaf8574af3388e88306f5bf' });
31
+ return index.h("slot", { key: 'd73b0afc5cbdb3b9754360c1c638d24578cd8331' });
32
32
  }
33
33
  };
34
34
  FlexContainer.style = flexContainerCss();
@@ -32,7 +32,7 @@ const FormHeader = class {
32
32
  this.headingLevel = 1;
33
33
  }
34
34
  render() {
35
- return (index.h(index.Host, { key: '832fda595a6e861d113ad64890b5ba0f4958e830' }, this.renderHeading(), this.renderHelp(), this.renderDescription()));
35
+ return (index.h(index.Host, { key: '64e0934e418bf6fff83f140b02faf7f6cb8f4f0f' }, this.renderHeading(), this.renderHelp(), this.renderDescription()));
36
36
  }
37
37
  renderHeading() {
38
38
  if (!this.heading) {
@@ -45165,6 +45165,21 @@ class LimeElementsWidgetAdapter extends React.Component {
45165
45165
  }
45166
45166
  LimeElementsWidgetAdapter.contextType = RowLayoutContext;
45167
45167
 
45168
+ /**
45169
+ * Listens for `invalidInput` from the element or from inside it, such as
45170
+ * a `limel-date-picker` in a custom component's shadow root.
45171
+ * @param element - the field's element
45172
+ * @param report - called with each message
45173
+ * @returns a function that stops listening
45174
+ */
45175
+ function listenForInvalidInput(element, report) {
45176
+ const listener = (event) => {
45177
+ report(event.detail);
45178
+ };
45179
+ element.addEventListener('invalidInput', listener);
45180
+ return () => element.removeEventListener('invalidInput', listener);
45181
+ }
45182
+
45168
45183
  var __rest$3 = (undefined && undefined.__rest) || function (s, e) {
45169
45184
  var t = {};
45170
45185
  for (var p in s)
@@ -45184,6 +45199,7 @@ class DatePicker extends React.Component {
45184
45199
  this.state = {
45185
45200
  modified: false,
45186
45201
  };
45202
+ this.watchInvalidInput = (element) => listenForInvalidInput(element, (message) => { var _a, _b; return (_b = (_a = this.props.options) === null || _a === void 0 ? void 0 : _a.onInvalidInput) === null || _b === void 0 ? void 0 : _b.call(_a, message); });
45187
45203
  this.handleChange = this.handleChange.bind(this);
45188
45204
  }
45189
45205
  render() {
@@ -45196,7 +45212,7 @@ class DatePicker extends React.Component {
45196
45212
  change: this.handleChange,
45197
45213
  },
45198
45214
  widgetProps: props,
45199
- extraProps: Object.assign({ type: type }, (_b = (_a = props.schema.lime) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.props),
45215
+ extraProps: Object.assign(Object.assign({ type: type }, (_b = (_a = props.schema.lime) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.props), { ref: this.watchInvalidInput }),
45200
45216
  });
45201
45217
  }
45202
45218
  getValue() {
@@ -45247,6 +45263,7 @@ const TimePicker = (_a) => {
45247
45263
  const timeStringPattern = /^\d\d:\d\d/;
45248
45264
 
45249
45265
  const { fields: defaultFields$2 } = getDefaultRegistry();
45266
+ const DATE_FORMATS = new Set(['date', 'date-time', 'time']);
45250
45267
  const BaseSchemaField = defaultFields$2.SchemaField;
45251
45268
  /**
45252
45269
  * If given a value and schema, check if the value should be translated
@@ -45325,10 +45342,23 @@ class SchemaField extends React.Component {
45325
45342
  this.state = {
45326
45343
  modified: false,
45327
45344
  };
45345
+ // The date picker never emits text it rejects, so the value stays valid
45346
+ // while the field shows an error.
45347
+ this.reportInvalidInput = (message) => {
45348
+ var _a, _b;
45349
+ const { registry, fieldPathId } = this.props;
45350
+ if (!fieldPathId) {
45351
+ return;
45352
+ }
45353
+ (_b = (_a = registry.formContext) === null || _a === void 0 ? void 0 : _a.setInvalidInput) === null || _b === void 0 ? void 0 : _b.call(_a, fieldPathId.path, message);
45354
+ };
45328
45355
  this.handleChange = this.handleChange.bind(this);
45329
45356
  this.handleCustomComponentChange =
45330
45357
  this.handleCustomComponentChange.bind(this);
45331
45358
  }
45359
+ componentWillUnmount() {
45360
+ this.reportInvalidInput(null);
45361
+ }
45332
45362
  isInvalid() {
45333
45363
  var _a;
45334
45364
  const { modified } = this.state;
@@ -45403,7 +45433,7 @@ class SchemaField extends React.Component {
45403
45433
  name: name,
45404
45434
  schemaPath: (_a = fieldPathId === null || fieldPathId === void 0 ? void 0 : fieldPathId.path) === null || _a === void 0 ? void 0 : _a.map(String),
45405
45435
  };
45406
- return () => { };
45436
+ return listenForInvalidInput(element, this.reportInvalidInput);
45407
45437
  } });
45408
45438
  }
45409
45439
  renderCustomComponent(props) {
@@ -45428,6 +45458,9 @@ class SchemaField extends React.Component {
45428
45458
  if (this.props.schema.format === 'time') {
45429
45459
  fieldProps.uiSchema = Object.assign({ 'ui:widget': TimePicker }, fieldProps.uiSchema);
45430
45460
  }
45461
+ if (DATE_FORMATS.has(this.props.schema.format)) {
45462
+ fieldProps.uiSchema = Object.assign(Object.assign({}, fieldProps.uiSchema), { 'ui:onInvalidInput': this.reportInvalidInput });
45463
+ }
45431
45464
  // Our text widget renders a native `<input type="number">` for numeric
45432
45465
  // schemas. `@rjsf/core` otherwise rewrites the value to the locale's
45433
45466
  // decimal separator, which such an input cannot display.
@@ -46372,9 +46405,12 @@ const Form = class {
46372
46405
  */
46373
46406
  this.includeDefaults = true;
46374
46407
  this.isValid = true;
46408
+ // Their value is still the last valid one, so the schema can't tell.
46409
+ this.invalidInputErrors = new Map();
46375
46410
  this.initialized = false;
46376
46411
  this.handleChange = this.handleChange.bind(this);
46377
46412
  this.getCustomErrorMessages = this.getCustomErrorMessages.bind(this);
46413
+ this.setInvalidInput = this.setInvalidInput.bind(this);
46378
46414
  }
46379
46415
  connectedCallback() {
46380
46416
  this.initialize();
@@ -46432,7 +46468,7 @@ const Form = class {
46432
46468
  this.initialized = false;
46433
46469
  }
46434
46470
  render() {
46435
- return index.h("div", { key: 'a50619f8a46a7e3b3ca5ade698141f22cfdd704f', class: "root" });
46471
+ return index.h("div", { key: 'c6f8c1df8165c5ac23b133a369ebb0f58563d74f', class: "root" });
46436
46472
  }
46437
46473
  reactRender() {
46438
46474
  if (!this.root) {
@@ -46466,6 +46502,7 @@ const Form = class {
46466
46502
  rootValue: this.value,
46467
46503
  propsFactory: this.propsFactory,
46468
46504
  revealErrors: this.revealErrors,
46505
+ setInvalidInput: this.setInvalidInput,
46469
46506
  },
46470
46507
  fields: {
46471
46508
  SchemaField: SchemaField,
@@ -46547,12 +46584,35 @@ const Form = class {
46547
46584
  const contentId = (fingerprint >>> 0).toString(36);
46548
46585
  return Object.assign(Object.assign({}, schema), { $id: $id ? `${$id}-${contentId}` : contentId });
46549
46586
  }
46587
+ setInvalidInput(path, message) {
46588
+ var _a;
46589
+ const property = `.${path.join('.')}`;
46590
+ const current = this.invalidInputErrors.get(property);
46591
+ if (((_a = current === null || current === void 0 ? void 0 : current.message) !== null && _a !== void 0 ? _a : null) === message) {
46592
+ return;
46593
+ }
46594
+ if (message === null) {
46595
+ this.invalidInputErrors.delete(property);
46596
+ }
46597
+ else {
46598
+ this.invalidInputErrors.set(property, {
46599
+ name: 'invalidInput',
46600
+ property: property,
46601
+ message: message,
46602
+ schemaPath: '',
46603
+ });
46604
+ }
46605
+ this.validateFormData();
46606
+ }
46550
46607
  hasExtraErrors() {
46551
46608
  return !!this.errors && Object.keys(this.errors).length > 0;
46552
46609
  }
46553
46610
  emitValidationStatus(errors) {
46554
- const valid = (!errors || errors.length === 0) && !this.hasExtraErrors();
46555
- const formErrors = this.mapErrors(errors !== null && errors !== void 0 ? errors : []);
46611
+ const formErrors = [
46612
+ ...this.mapErrors(errors !== null && errors !== void 0 ? errors : []),
46613
+ ...this.invalidInputErrors.values(),
46614
+ ];
46615
+ const valid = formErrors.length === 0 && !this.hasExtraErrors();
46556
46616
  const status = { valid: valid, errors: formErrors };
46557
46617
  if (this.isValid !== valid || !valid) {
46558
46618
  this.validate.emit(status);
@@ -12,7 +12,7 @@ const Grid = class {
12
12
  console.warn('limel-grid is deprecated, please use CSS instead: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout');
13
13
  }
14
14
  render() {
15
- return index.h("slot", { key: 'c1e2b8ee2a681748256f6a0d7cd6db7aec27872e' });
15
+ return index.h("slot", { key: 'c4db2bee4485745f79636e4a3a2f04fa603af9b8' });
16
16
  }
17
17
  };
18
18
  Grid.style = gridCss();
@@ -15,7 +15,7 @@ const Header = class {
15
15
  this.subheadingDivider = '·';
16
16
  }
17
17
  render() {
18
- return (index.h(index.Host, { key: '25d008daf81297376579028f9116d4f78580e029' }, index.h("div", { key: '9bb06b9d428bcc709ef6a2cbfc5e7811b35d2c5e', class: "information" }, this.renderIcon(), index.h("div", { key: '417dcd90bbe18770eb25f69d3c614752571868b1', class: "headings" }, index.h("h1", { key: '591449da7543a5f708729bdda5ea231dfa9d4e17', class: "heading", title: this.heading }, this.heading), index.h("h2", { key: '8696119afe92d304fc03fa5d6b092419029bc052', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), index.h("slot", { key: '4903a0c675afa7371943f2b007d7367649eb473a', name: "actions" }, index.h("slot", { key: '009934d3d4ae2ff2932754e452bfb714506f9e66' }))));
18
+ return (index.h(index.Host, { key: '35935910757d74259ce3a286922ee0d35aad1ec9' }, index.h("div", { key: 'bd95cc50ec22e4881d3254aebec9143e6bb2a634', class: "information" }, this.renderIcon(), index.h("div", { key: '54a84e428595f989548855559cf71172264301ba', class: "headings" }, index.h("h1", { key: '99ccc155b7fa5a00a63f9c2a9caa0918ef33dc13', class: "heading", title: this.heading }, this.heading), index.h("h2", { key: 'cc06e5bac3f36daad46d8335bb8ee80ef7bb27e0', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), index.h("slot", { key: '2e94d276dcbe7404d4f618125763b5b1e5ff47ef', name: "actions" }, index.h("slot", { key: '6a5f81a642323a7c6bc8839f5ee8e3c6f11f905b' }))));
19
19
  }
20
20
  renderIcon() {
21
21
  var _a, _b, _c, _d, _e;
@@ -26,9 +26,9 @@ const HelpComponent = class {
26
26
  };
27
27
  }
28
28
  render() {
29
- return (index.h(index.Host, { key: '9f166e16ef9ddfd552bcf9bde262ca84e4b31399' }, index.h("limel-popover", { key: 'f0bf20043acb1ac323fcc01e6f9d64d8481b9382', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, index.h("button", { key: 'c3a62e9d9f82cc16dfb4aa39a711397b0f91def1', slot: "trigger", type: "button", onClick: this.openPopover, class: {
29
+ return (index.h(index.Host, { key: '0456a88ddfbe21f501bb58fd0792eaeb39ad3962' }, index.h("limel-popover", { key: 'db4fd15af11578c40ae6ed4e39f9931bea14d457', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, index.h("button", { key: '0e530613dcf6c02e879a4a1ae52e1e24403ef30d', slot: "trigger", type: "button", onClick: this.openPopover, class: {
30
30
  'is-open': this.isOpen,
31
- } }, this.trigger), index.h("limel-help-content", { key: '75edc59e9c5a2557c9766165e52f6aa1b5baee49', value: this.value, readMoreLink: this.readMoreLink }))));
31
+ } }, this.trigger), index.h("limel-help-content", { key: '64d119e480cb64cbdeab156787dddc6f36e1368e', value: this.value, readMoreLink: this.readMoreLink }))));
32
32
  }
33
33
  };
34
34
  HelpComponent.style = helpCss();
@@ -47,7 +47,7 @@ const HelpContent = class {
47
47
  };
48
48
  }
49
49
  render() {
50
- return (index.h(index.Host, { key: 'd0f448293f17fbd80e5c8b0b26aa32d58af1d5ac' }, index.h("limel-markdown", { key: 'b69b41f86e1c362c3d12c50d24c579bf9d5a434d', value: this.value }), this.renderReadMoreLink()));
50
+ return (index.h(index.Host, { key: '213707af11bc0757a2b50652aeaf4f8869a8dd7c' }, index.h("limel-markdown", { key: 'f0f0ee7a087a8705ebb7fa463bf7f0d5f1abb207', value: this.value }), this.renderReadMoreLink()));
51
51
  }
52
52
  };
53
53
  HelpContent.style = limelHelpContentCss();
@@ -34,9 +34,9 @@ const HelperLine = class {
34
34
  };
35
35
  }
36
36
  render() {
37
- return (index.h(index.Host, { key: 'e42ca019869a7b4b47d93c4f402bdbf3b99b37cf', tabIndex: -1, class: {
37
+ return (index.h(index.Host, { key: '5bc750e2c8c7bce88fd9fc6f2ec4f27133ad5ed7', tabIndex: -1, class: {
38
38
  invalid: this.invalid,
39
- }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, index.h("div", { key: '3db5b20efaa64d9a20b6da5c711d2fb64393143a' }, this.renderHelperText(), this.renderCharacterCounter())));
39
+ }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, index.h("div", { key: '7bc84f9c6ae3ac8de904c56a97497f8f427583f4' }, this.renderHelperText(), this.renderCharacterCounter())));
40
40
  }
41
41
  };
42
42
  HelperLine.style = helperLineCss();
@@ -325,7 +325,7 @@ const List = class {
325
325
  maxLinesSecondaryText = 1;
326
326
  }
327
327
  const html = this.listRenderer.render(this.items, this.config);
328
- return (index.h(index.Host, { key: 'e6619c70eab882e1a9ed482098a7f1ed673c74a1', style: {
328
+ return (index.h(index.Host, { key: '2ff544c93286e06ac298eb1cc8fa2567c360fc7a', style: {
329
329
  '--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
330
330
  } }, html));
331
331
  }
@@ -421,7 +421,7 @@ const NotchedOutline = class {
421
421
  this.hasFloatingLabel = false;
422
422
  }
423
423
  render() {
424
- return (index.h("div", { key: 'ade07e3a9e2a63f0037f46fdbd01f866936c55ed', class: "limel-notched-outline" }, index.h("slot", { key: '1d7619696aa3c80b17390df8b5bc96591cb0fe36', name: "content" }), index.h("span", { key: 'a791e6757ff14e7bb2c2a3f833f9877922eebd51', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, index.h("span", { key: '623d2d85813b66a3b0a2e33bbbf3cdd51b3505e0', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), index.h("span", { key: 'd5b0c6c6e7a7d5a15fc8795e3126fe3b115019ee', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
424
+ return (index.h("div", { key: '8ca3a2622aa918101d5d78f94c9d279276dbba10', class: "limel-notched-outline" }, index.h("slot", { key: '508f8fb8cc48ba667ad250acae46ff2f4c25ef42', name: "content" }), index.h("span", { key: 'a071aa9212705b001e52e055d61f1be42a10ae69', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, index.h("span", { key: 'ee1602e3637cbbba489b8b5be5bf65f6352738c5', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), index.h("span", { key: '1517c575f1c4299a5a2d636e0e456b24f939d418', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
425
425
  }
426
426
  renderLabel() {
427
427
  if (!this.label) {