@limetech/lime-elements 40.22.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 (363) hide show
  1. package/CHANGELOG.md +19 -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 +266 -19
  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/filled-defaults.js +132 -0
  110. package/dist/collection/components/form/form.js +122 -17
  111. package/dist/collection/components/form/form.test-schemas.js +61 -0
  112. package/dist/collection/components/form/invalid-input.js +14 -0
  113. package/dist/collection/components/form/widgets/date-picker.js +3 -1
  114. package/dist/collection/components/form-header/form-header.js +1 -1
  115. package/dist/collection/components/grid/grid.js +1 -1
  116. package/dist/collection/components/header/header.js +1 -1
  117. package/dist/collection/components/help/help-content.js +1 -1
  118. package/dist/collection/components/help/help.js +2 -2
  119. package/dist/collection/components/helper-line/helper-line.js +2 -2
  120. package/dist/collection/components/hotkey/hotkey.js +1 -1
  121. package/dist/collection/components/icon/icon.js +1 -1
  122. package/dist/collection/components/icon-button/icon-button.js +1 -1
  123. package/dist/collection/components/info-tile/info-tile.js +2 -2
  124. package/dist/collection/components/input-field/input-field.js +1 -1
  125. package/dist/collection/components/list/list.js +1 -1
  126. package/dist/collection/components/list-item/list-item.js +2 -2
  127. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  128. package/dist/collection/components/markdown/markdown.js +1 -1
  129. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  130. package/dist/collection/components/menu/menu.js +1 -1
  131. package/dist/collection/components/menu-list/menu-list.js +1 -1
  132. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  133. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  134. package/dist/collection/components/pagination/pagination.js +1 -1
  135. package/dist/collection/components/picker/picker.js +1 -1
  136. package/dist/collection/components/popover/popover.js +1 -1
  137. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  138. package/dist/collection/components/portal/portal.js +1 -1
  139. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  140. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  141. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  142. package/dist/collection/components/scroller/scroller.js +2 -2
  143. package/dist/collection/components/select/select.js +1 -1
  144. package/dist/collection/components/shortcut/shortcut.js +1 -1
  145. package/dist/collection/components/side-panel/side-panel.js +1 -1
  146. package/dist/collection/components/slider/slider.js +3 -3
  147. package/dist/collection/components/snackbar/snackbar.js +2 -2
  148. package/dist/collection/components/spinner/spinner.js +1 -1
  149. package/dist/collection/components/split-button/split-button.js +2 -2
  150. package/dist/collection/components/switch/switch.js +1 -1
  151. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  152. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  153. package/dist/collection/components/table/table.js +2 -2
  154. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  155. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  156. package/dist/collection/components/text-editor/text-editor.js +1 -1
  157. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  158. package/dist/collection/components/tooltip/tooltip.js +2 -2
  159. package/dist/collection/translations/da.js +2 -0
  160. package/dist/collection/translations/de.js +2 -0
  161. package/dist/collection/translations/en.js +2 -0
  162. package/dist/collection/translations/fi.js +2 -0
  163. package/dist/collection/translations/fr.js +2 -0
  164. package/dist/collection/translations/nl.js +2 -0
  165. package/dist/collection/translations/no.js +2 -0
  166. package/dist/collection/translations/sv.js +2 -0
  167. package/dist/esm/dom-B9Ofc5RB.js +30 -0
  168. package/dist/esm/lime-elements.js +1 -1
  169. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  170. package/dist/esm/limel-action-bar_3.entry.js +4 -5
  171. package/dist/esm/limel-ai-avatar.entry.js +2 -3
  172. package/dist/esm/limel-badge_7.entry.js +11 -11
  173. package/dist/esm/limel-banner.entry.js +1 -1
  174. package/dist/esm/limel-button-group.entry.js +1 -1
  175. package/dist/esm/limel-button.entry.js +2 -2
  176. package/dist/esm/limel-callout.entry.js +2 -3
  177. package/dist/esm/limel-card.entry.js +1 -1
  178. package/dist/esm/limel-chart.entry.js +1 -2
  179. package/dist/esm/limel-checkbox.entry.js +1 -1
  180. package/dist/esm/limel-chip-set.entry.js +2 -3
  181. package/dist/esm/limel-chip_2.entry.js +2 -3
  182. package/dist/esm/limel-circular-progress.entry.js +1 -1
  183. package/dist/esm/limel-code-diff.entry.js +2 -3
  184. package/dist/esm/limel-code-editor.entry.js +2 -3
  185. package/dist/esm/limel-collapsible-section.entry.js +2 -3
  186. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  187. package/dist/esm/limel-color-picker.entry.js +1 -1
  188. package/dist/esm/limel-date-picker.entry.js +435 -24
  189. package/dist/esm/limel-dialog.entry.js +2 -2
  190. package/dist/esm/limel-dock.entry.js +3 -4
  191. package/dist/esm/limel-drag-handle_2.entry.js +4 -5
  192. package/dist/esm/limel-email-viewer.entry.js +2 -3
  193. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  194. package/dist/esm/limel-file-viewer.entry.js +1 -2
  195. package/dist/esm/limel-file.entry.js +2 -3
  196. package/dist/esm/limel-flatpickr-adapter.entry.js +118 -10
  197. package/dist/esm/limel-flex-container.entry.js +1 -1
  198. package/dist/esm/limel-form-header.entry.js +1 -1
  199. package/dist/esm/limel-form.entry.js +266 -19
  200. package/dist/esm/limel-grid.entry.js +1 -1
  201. package/dist/esm/limel-header.entry.js +1 -1
  202. package/dist/esm/limel-help_2.entry.js +3 -3
  203. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  204. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  205. package/dist/esm/limel-icon-button.entry.js +1 -1
  206. package/dist/esm/limel-icon.entry.js +1 -1
  207. package/dist/esm/limel-info-tile.entry.js +2 -2
  208. package/dist/esm/limel-list-item.entry.js +3 -4
  209. package/dist/esm/limel-markdown.entry.js +1 -1
  210. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  211. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  212. package/dist/esm/limel-pagination-jump.entry.js +1 -2
  213. package/dist/esm/limel-pagination.entry.js +2 -3
  214. package/dist/esm/limel-picker.entry.js +4 -4
  215. package/dist/esm/limel-popover_2.entry.js +2 -2
  216. package/dist/esm/limel-profile-picture.entry.js +1 -2
  217. package/dist/esm/limel-prosemirror-adapter.entry.js +2 -3
  218. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  219. package/dist/esm/limel-radio-button.entry.js +2 -2
  220. package/dist/esm/limel-resize-handle.entry.js +2 -3
  221. package/dist/esm/limel-select.entry.js +1 -1
  222. package/dist/esm/limel-shortcut.entry.js +1 -1
  223. package/dist/esm/limel-side-panel.entry.js +2 -3
  224. package/dist/esm/limel-slider.entry.js +4 -5
  225. package/dist/esm/limel-snackbar.entry.js +3 -4
  226. package/dist/esm/limel-split-button.entry.js +2 -2
  227. package/dist/esm/limel-switch.entry.js +1 -1
  228. package/dist/esm/limel-tab-bar.entry.js +1 -1
  229. package/dist/esm/limel-tab-panel.entry.js +1 -1
  230. package/dist/esm/limel-table.entry.js +3 -4
  231. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -5
  232. package/dist/esm/limel-text-editor.entry.js +1 -1
  233. package/dist/esm/{live-message-BQAYeNiX.js → live-message-BKB4vu28.js} +1 -30
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{translations-D9ZGrMhe.js → translations--i932i_D.js} +70 -2
  236. package/dist/lime-elements/lime-elements.esm.js +1 -1
  237. package/dist/lime-elements/p--i932i_D.js +1 -0
  238. package/dist/lime-elements/p-0700e83f.entry.js +1 -0
  239. package/dist/lime-elements/{p-95a486c8.entry.js → p-083aa41f.entry.js} +1 -1
  240. package/dist/lime-elements/p-08b1bfad.entry.js +1 -0
  241. package/dist/lime-elements/{p-8fe28845.entry.js → p-127ff801.entry.js} +1 -1
  242. package/dist/lime-elements/{p-764d2f86.entry.js → p-156ea100.entry.js} +1 -1
  243. package/dist/lime-elements/{p-1e0ced6a.entry.js → p-15f5e45e.entry.js} +1 -1
  244. package/dist/lime-elements/p-1c7fcafc.entry.js +1 -0
  245. package/dist/lime-elements/p-1e699935.entry.js +1 -0
  246. package/dist/lime-elements/{p-9b2623fe.entry.js → p-1fa0fd7a.entry.js} +4 -4
  247. package/dist/lime-elements/{p-ce71c5b9.entry.js → p-22aaa1ae.entry.js} +1 -1
  248. package/dist/lime-elements/p-2a5113ef.entry.js +1 -0
  249. package/dist/lime-elements/p-2d698983.entry.js +1 -0
  250. package/dist/lime-elements/p-373032c0.entry.js +1 -0
  251. package/dist/lime-elements/{p-8e80a884.entry.js → p-391305a7.entry.js} +3 -3
  252. package/dist/lime-elements/p-391a227e.entry.js +1 -0
  253. package/dist/lime-elements/p-3a421be9.entry.js +1 -0
  254. package/dist/lime-elements/p-3d6ba932.entry.js +1 -0
  255. package/dist/lime-elements/{p-c8a34cef.entry.js → p-3f9acb22.entry.js} +1 -1
  256. package/dist/lime-elements/p-46695dd3.entry.js +1 -0
  257. package/dist/lime-elements/p-490ac19d.entry.js +1 -0
  258. package/dist/lime-elements/p-4bc550e5.entry.js +1 -0
  259. package/dist/lime-elements/{p-438fe49b.entry.js → p-4de3b35b.entry.js} +1 -1
  260. package/dist/lime-elements/p-4eee17f7.entry.js +1 -0
  261. package/dist/lime-elements/p-507965d9.entry.js +1 -0
  262. package/dist/lime-elements/p-51fde63a.entry.js +1 -0
  263. package/dist/lime-elements/{p-db9cb7ef.entry.js → p-557f0e46.entry.js} +1 -1
  264. package/dist/lime-elements/p-558a7e27.entry.js +1 -0
  265. package/dist/lime-elements/{p-c6b3448c.entry.js → p-5fcb39b8.entry.js} +1 -1
  266. package/dist/lime-elements/p-61c81d09.entry.js +16 -0
  267. package/dist/lime-elements/{p-f59447bf.entry.js → p-63f2f0b7.entry.js} +1 -1
  268. package/dist/lime-elements/p-65199efa.entry.js +1 -0
  269. package/dist/lime-elements/p-6567de01.entry.js +1 -0
  270. package/dist/lime-elements/{p-a6387dc7.entry.js → p-664dbc43.entry.js} +1 -1
  271. package/dist/lime-elements/{p-6ae093c8.entry.js → p-6b6b8ffe.entry.js} +1 -1
  272. package/dist/lime-elements/p-6f8305ac.entry.js +1 -0
  273. package/dist/lime-elements/{p-c0ebf7cc.entry.js → p-718431c1.entry.js} +1 -1
  274. package/dist/lime-elements/p-71ed9466.entry.js +1 -0
  275. package/dist/lime-elements/{p-7d0ffc60.entry.js → p-81c43fe9.entry.js} +1 -1
  276. package/dist/lime-elements/p-8e46d111.entry.js +1 -0
  277. package/dist/lime-elements/{p-d3f13124.entry.js → p-9cbfedad.entry.js} +1 -1
  278. package/dist/lime-elements/p-9e5a15d1.entry.js +1 -0
  279. package/dist/lime-elements/p-B9Ofc5RB.js +1 -0
  280. package/dist/lime-elements/p-CMedqTpE.js +1 -0
  281. package/dist/lime-elements/{p-e5abe390.entry.js → p-a1cd0dc0.entry.js} +1 -1
  282. package/dist/lime-elements/p-a5aa8c06.entry.js +1 -0
  283. package/dist/lime-elements/{p-c61e9b83.entry.js → p-ae634a68.entry.js} +1 -1
  284. package/dist/lime-elements/{p-c2056ebc.entry.js → p-b6334f4b.entry.js} +1 -1
  285. package/dist/lime-elements/{p-28957b5c.entry.js → p-b810b854.entry.js} +1 -1
  286. package/dist/lime-elements/{p-cf2d43c7.entry.js → p-bb45a5bb.entry.js} +1 -1
  287. package/dist/lime-elements/{p-54537c85.entry.js → p-be653ca9.entry.js} +1 -1
  288. package/dist/lime-elements/{p-40940a6c.entry.js → p-bfb98b0e.entry.js} +1 -1
  289. package/dist/lime-elements/{p-3f7fa772.entry.js → p-c1dbad1e.entry.js} +1 -1
  290. package/dist/lime-elements/{p-39d1e157.entry.js → p-c3b86df2.entry.js} +1 -1
  291. package/dist/lime-elements/p-c3d1aa57.entry.js +1 -0
  292. package/dist/lime-elements/p-c63d294b.entry.js +1 -0
  293. package/dist/lime-elements/{p-f3b93ce8.entry.js → p-c6eed240.entry.js} +1 -1
  294. package/dist/lime-elements/p-c7bcae67.entry.js +1 -0
  295. package/dist/lime-elements/p-ce418df1.entry.js +159 -0
  296. package/dist/lime-elements/{p-6053608a.entry.js → p-d078ea89.entry.js} +1 -1
  297. package/dist/lime-elements/p-d2f784a8.entry.js +1 -0
  298. package/dist/lime-elements/{p-48a412ed.entry.js → p-d51bf98b.entry.js} +1 -1
  299. package/dist/lime-elements/p-da9be21e.entry.js +1 -0
  300. package/dist/lime-elements/{p-a891f3e8.entry.js → p-e3cf45ed.entry.js} +1 -1
  301. package/dist/lime-elements/{p-909466b8.entry.js → p-e481fb53.entry.js} +1 -1
  302. package/dist/lime-elements/{p-0319f07f.entry.js → p-e8665e99.entry.js} +1 -1
  303. package/dist/lime-elements/{p-5dce791c.entry.js → p-eb812303.entry.js} +1 -1
  304. package/dist/types/components/date-picker/date-formatter.d.ts +12 -0
  305. package/dist/types/components/date-picker/date-picker.d.ts +59 -3
  306. package/dist/types/components/date-picker/flatpickr-adapter/flatpickr-adapter.d.ts +13 -2
  307. package/dist/types/components/date-picker/pickers/month-picker.d.ts +1 -0
  308. package/dist/types/components/date-picker/pickers/picker.d.ts +8 -1
  309. package/dist/types/components/date-picker/pickers/quarter-picker.d.ts +1 -0
  310. package/dist/types/components/date-picker/pickers/week-picker.d.ts +4 -0
  311. package/dist/types/components/date-picker/pickers/year-picker.d.ts +7 -0
  312. package/dist/types/components/form/fields/schema-field.d.ts +2 -0
  313. package/dist/types/components/form/filled-defaults.d.ts +12 -0
  314. package/dist/types/components/form/form.d.ts +19 -0
  315. package/dist/types/components/form/form.test-schemas.d.ts +3 -0
  316. package/dist/types/components/form/invalid-input.d.ts +14 -0
  317. package/dist/types/components/form/widgets/date-picker.d.ts +1 -0
  318. package/dist/types/components.d.ts +46 -11
  319. package/dist/types/translations/da.d.ts +2 -0
  320. package/dist/types/translations/de.d.ts +2 -0
  321. package/dist/types/translations/en.d.ts +2 -0
  322. package/dist/types/translations/fi.d.ts +2 -0
  323. package/dist/types/translations/fr.d.ts +2 -0
  324. package/dist/types/translations/nl.d.ts +2 -0
  325. package/dist/types/translations/no.d.ts +2 -0
  326. package/dist/types/translations/sv.d.ts +2 -0
  327. package/package.json +4 -4
  328. package/dist/cjs/language-s0bKUCvO.js +0 -58
  329. package/dist/esm/language-VamkUr90.js +0 -55
  330. package/dist/lime-elements/p-0a7cbdc3.entry.js +0 -1
  331. package/dist/lime-elements/p-0f96e94d.entry.js +0 -1
  332. package/dist/lime-elements/p-1a0c5e45.entry.js +0 -1
  333. package/dist/lime-elements/p-401d5c92.entry.js +0 -1
  334. package/dist/lime-elements/p-430db3b9.entry.js +0 -1
  335. package/dist/lime-elements/p-43b62587.entry.js +0 -1
  336. package/dist/lime-elements/p-48dccb83.entry.js +0 -1
  337. package/dist/lime-elements/p-5c918155.entry.js +0 -1
  338. package/dist/lime-elements/p-66101ed6.entry.js +0 -1
  339. package/dist/lime-elements/p-7ab72b52.entry.js +0 -1
  340. package/dist/lime-elements/p-8d602078.entry.js +0 -1
  341. package/dist/lime-elements/p-8d9a2a22.entry.js +0 -1
  342. package/dist/lime-elements/p-8de4f0f3.entry.js +0 -1
  343. package/dist/lime-elements/p-99984c66.entry.js +0 -1
  344. package/dist/lime-elements/p-9d46f720.entry.js +0 -1
  345. package/dist/lime-elements/p-9e2b426c.entry.js +0 -1
  346. package/dist/lime-elements/p-C9dBa_Im.js +0 -1
  347. package/dist/lime-elements/p-Cw7VQSGU.js +0 -1
  348. package/dist/lime-elements/p-VamkUr90.js +0 -1
  349. package/dist/lime-elements/p-b1c7033b.entry.js +0 -16
  350. package/dist/lime-elements/p-b5451350.entry.js +0 -1
  351. package/dist/lime-elements/p-c75f3b0d.entry.js +0 -1
  352. package/dist/lime-elements/p-ca4247c4.entry.js +0 -1
  353. package/dist/lime-elements/p-d53421af.entry.js +0 -1
  354. package/dist/lime-elements/p-d8901e39.entry.js +0 -1
  355. package/dist/lime-elements/p-d89553b3.entry.js +0 -1
  356. package/dist/lime-elements/p-d93b8ce0.entry.js +0 -1
  357. package/dist/lime-elements/p-e97340c4.entry.js +0 -1
  358. package/dist/lime-elements/p-ec0c113d.entry.js +0 -1
  359. package/dist/lime-elements/p-f036ad27.entry.js +0 -1
  360. package/dist/lime-elements/p-f197000b.entry.js +0 -159
  361. package/dist/lime-elements/p-f5bb17eb.entry.js +0 -1
  362. package/dist/lime-elements/p-f6bc6658.entry.js +0 -1
  363. package/dist/lime-elements/p-fa1aa440.entry.js +0 -1
@@ -1354,6 +1354,7 @@ export namespace Components {
1354
1354
  * @exampleComponent limel-example-date-picker-programmatic-change
1355
1355
  * @exampleComponent limel-example-date-picker-composite
1356
1356
  * @exampleComponent limel-example-date-picker-custom-formatter
1357
+ * @exampleComponent limel-example-date-picker-typed-input
1357
1358
  */
1358
1359
  interface LimelDatePicker {
1359
1360
  /**
@@ -1366,15 +1367,15 @@ export namespace Components {
1366
1367
  */
1367
1368
  "format": string;
1368
1369
  /**
1369
- * Custom formatting function. Will be used for date formatting. :::note overrides `format` and `language` :::
1370
+ * Custom formatting function. Will be used for date formatting. :::note overrides `format` and `language`. A date can only be typed into the field when `format` is set as well, to the pattern your `formatter` produces. Typed text is parsed with `format` and `language`, and the field shows the value in `format` while it is being edited. :::
1370
1371
  */
1371
1372
  "formatter"?: (date: Date) => string;
1372
1373
  /**
1373
- * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
1374
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement. While the typed text is not a valid date, an error with an example of the expected format is shown instead.
1374
1375
  */
1375
1376
  "helperText": string;
1376
1377
  /**
1377
- * Set to `true` to indicate that the current value of the date picker is invalid.
1378
+ * Set to `true` to indicate that the current value of the date picker is invalid. Typed text that is not a valid date is flagged by the component itself, whatever this is set to.
1378
1379
  * @default false
1379
1380
  */
1380
1381
  "invalid": boolean;
@@ -1847,13 +1848,17 @@ export namespace Components {
1847
1848
  * @private
1848
1849
  */
1849
1850
  interface LimelFlatpickrAdapter {
1851
+ /**
1852
+ * Moves focus to the selected day, else today, else the first day of the month.
1853
+ * @returns `false` when the calendar has no day grid
1854
+ */
1855
+ "focusDay": () => Promise<boolean>;
1850
1856
  /**
1851
1857
  * Format to display the selected date in.
1852
1858
  */
1853
1859
  "format": string;
1854
- "formatter": (date: Date) => string;
1855
1860
  /**
1856
- * The native input element to use with flatpickr.
1861
+ * The input the user types into. Setting it creates the calendar.
1857
1862
  */
1858
1863
  "inputElement": HTMLElement;
1859
1864
  /**
@@ -1865,6 +1870,10 @@ export namespace Components {
1865
1870
  * @default 'en'
1866
1871
  */
1867
1872
  "language": Languages;
1873
+ /**
1874
+ * Shown as selected instead of `value` while set.
1875
+ */
1876
+ "previewValue"?: Date;
1868
1877
  /**
1869
1878
  * Type of date picker.
1870
1879
  * @default 'datetime'
@@ -1924,6 +1933,7 @@ export namespace Components {
1924
1933
  * @exampleComponent limel-example-code-editor-form
1925
1934
  * @exampleComponent limel-example-form-highlighted-field
1926
1935
  * @exampleComponent limel-example-form-heading-level
1936
+ * @exampleComponent limel-example-form-include-defaults
1927
1937
  */
1928
1938
  interface LimelForm {
1929
1939
  /**
@@ -1945,6 +1955,11 @@ export namespace Components {
1945
1955
  * @beta
1946
1956
  */
1947
1957
  "highlightedField"?: Array<string | number>;
1958
+ /**
1959
+ * Set to `false` to leave the defaults of the schema out of the value, so that it stays as it was given until the user changes something. The form still shows the defaults. A default the user changes is in the value from then on, and so are the defaults that a change brings in, such as those of a new list item or of fields that depend on the changed one. Pass the value the form emits back in as `value`. The form validates what it shows, defaults included. When the user changes everything back, the value is what the form was given, also when that is `null` or `undefined`.
1960
+ * @default true
1961
+ */
1962
+ "includeDefaults": boolean;
1948
1963
  /**
1949
1964
  * Factory for creating properties for custom form components When using custom components in the form some properties might have to be set dynamically. If this factory is set, it will be called with the current schema for the field for each custom component in the form. The factory must return an object where each key is the name of the property that should be set, along with its value.
1950
1965
  */
@@ -5373,6 +5388,7 @@ declare global {
5373
5388
  };
5374
5389
  interface HTMLLimelDatePickerElementEventMap {
5375
5390
  "change": Date;
5391
+ "invalidInput": string | null;
5376
5392
  }
5377
5393
  /**
5378
5394
  * @exampleComponent limel-example-date-picker-datetime
@@ -5386,6 +5402,7 @@ declare global {
5386
5402
  * @exampleComponent limel-example-date-picker-programmatic-change
5387
5403
  * @exampleComponent limel-example-date-picker-composite
5388
5404
  * @exampleComponent limel-example-date-picker-custom-formatter
5405
+ * @exampleComponent limel-example-date-picker-typed-input
5389
5406
  */
5390
5407
  interface HTMLLimelDatePickerElement extends Components.LimelDatePicker, HTMLStencilElement {
5391
5408
  addEventListener<K extends keyof HTMLLimelDatePickerElementEventMap>(type: K, listener: (this: HTMLLimelDatePickerElement, ev: LimelDatePickerCustomEvent<HTMLLimelDatePickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -5784,6 +5801,7 @@ declare global {
5784
5801
  * @exampleComponent limel-example-code-editor-form
5785
5802
  * @exampleComponent limel-example-form-highlighted-field
5786
5803
  * @exampleComponent limel-example-form-heading-level
5804
+ * @exampleComponent limel-example-form-include-defaults
5787
5805
  */
5788
5806
  interface HTMLLimelFormElement extends Components.LimelForm, HTMLStencilElement {
5789
5807
  addEventListener<K extends keyof HTMLLimelFormElementEventMap>(type: K, listener: (this: HTMLLimelFormElement, ev: LimelFormCustomEvent<HTMLLimelFormElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8645,6 +8663,7 @@ declare namespace LocalJSX {
8645
8663
  * @exampleComponent limel-example-date-picker-programmatic-change
8646
8664
  * @exampleComponent limel-example-date-picker-composite
8647
8665
  * @exampleComponent limel-example-date-picker-custom-formatter
8666
+ * @exampleComponent limel-example-date-picker-typed-input
8648
8667
  */
8649
8668
  interface LimelDatePicker {
8650
8669
  /**
@@ -8657,15 +8676,15 @@ declare namespace LocalJSX {
8657
8676
  */
8658
8677
  "format"?: string;
8659
8678
  /**
8660
- * Custom formatting function. Will be used for date formatting. :::note overrides `format` and `language` :::
8679
+ * Custom formatting function. Will be used for date formatting. :::note overrides `format` and `language`. A date can only be typed into the field when `format` is set as well, to the pattern your `formatter` produces. Typed text is parsed with `format` and `language`, and the field shows the value in `format` while it is being edited. :::
8661
8680
  */
8662
8681
  "formatter"?: (date: Date) => string;
8663
8682
  /**
8664
- * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
8683
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement. While the typed text is not a valid date, an error with an example of the expected format is shown instead.
8665
8684
  */
8666
8685
  "helperText"?: string;
8667
8686
  /**
8668
- * Set to `true` to indicate that the current value of the date picker is invalid.
8687
+ * Set to `true` to indicate that the current value of the date picker is invalid. Typed text that is not a valid date is flagged by the component itself, whatever this is set to.
8669
8688
  * @default false
8670
8689
  */
8671
8690
  "invalid"?: boolean;
@@ -8679,9 +8698,13 @@ declare namespace LocalJSX {
8679
8698
  */
8680
8699
  "language"?: Languages;
8681
8700
  /**
8682
- * Emitted when the date picker value is changed.
8701
+ * Emitted when a typed date is committed (on blur or `Enter`), when a date is picked in the calendar, and with `null` when the field is cleared. Typed text that is not a valid date is not emitted, so `value` keeps the last valid date, and `invalidInput` is emitted instead. A two-digit year is read as a full year, so `1/24/20` is 2020.
8683
8702
  */
8684
8703
  "onChange"?: (event: LimelDatePickerCustomEvent<Date>) => void;
8704
+ /**
8705
+ * Emitted with the error message when typed text that is not a valid date is committed, and with `null` when the field no longer holds such text.
8706
+ */
8707
+ "onInvalidInput"?: (event: LimelDatePickerCustomEvent<string | null>) => void;
8685
8708
  /**
8686
8709
  * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty, but not on iOS and Android, where the native date picker is used. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
8687
8710
  */
@@ -9207,9 +9230,8 @@ declare namespace LocalJSX {
9207
9230
  * Format to display the selected date in.
9208
9231
  */
9209
9232
  "format"?: string;
9210
- "formatter": (date: Date) => string;
9211
9233
  /**
9212
- * The native input element to use with flatpickr.
9234
+ * The input the user types into. Setting it creates the calendar.
9213
9235
  */
9214
9236
  "inputElement"?: HTMLElement;
9215
9237
  /**
@@ -9225,6 +9247,10 @@ declare namespace LocalJSX {
9225
9247
  * Emitted when the date picker value is changed.
9226
9248
  */
9227
9249
  "onChange"?: (event: LimelFlatpickrAdapterCustomEvent<Date>) => void;
9250
+ /**
9251
+ * Shown as selected instead of `value` while set.
9252
+ */
9253
+ "previewValue"?: Date;
9228
9254
  /**
9229
9255
  * Type of date picker.
9230
9256
  * @default 'datetime'
@@ -9284,6 +9310,7 @@ declare namespace LocalJSX {
9284
9310
  * @exampleComponent limel-example-code-editor-form
9285
9311
  * @exampleComponent limel-example-form-highlighted-field
9286
9312
  * @exampleComponent limel-example-form-heading-level
9313
+ * @exampleComponent limel-example-form-include-defaults
9287
9314
  */
9288
9315
  interface LimelForm {
9289
9316
  /**
@@ -9305,6 +9332,11 @@ declare namespace LocalJSX {
9305
9332
  * @beta
9306
9333
  */
9307
9334
  "highlightedField"?: Array<string | number>;
9335
+ /**
9336
+ * Set to `false` to leave the defaults of the schema out of the value, so that it stays as it was given until the user changes something. The form still shows the defaults. A default the user changes is in the value from then on, and so are the defaults that a change brings in, such as those of a new list item or of fields that depend on the changed one. Pass the value the form emits back in as `value`. The form validates what it shows, defaults included. When the user changes everything back, the value is what the form was given, also when that is `null` or `undefined`.
9337
+ * @default true
9338
+ */
9339
+ "includeDefaults"?: boolean;
9308
9340
  /**
9309
9341
  * Emitted when a change is made within the form
9310
9342
  */
@@ -12319,6 +12351,7 @@ declare namespace LocalJSX {
12319
12351
  "disabled": boolean;
12320
12352
  "headingLevel": HeadingLevel;
12321
12353
  "revealErrors": boolean;
12354
+ "includeDefaults": boolean;
12322
12355
  }
12323
12356
  interface LimelFormHeaderAttributes {
12324
12357
  "heading": string;
@@ -13231,6 +13264,7 @@ declare module "@stencil/core" {
13231
13264
  * @exampleComponent limel-example-date-picker-programmatic-change
13232
13265
  * @exampleComponent limel-example-date-picker-composite
13233
13266
  * @exampleComponent limel-example-date-picker-custom-formatter
13267
+ * @exampleComponent limel-example-date-picker-typed-input
13234
13268
  */
13235
13269
  "limel-date-picker": LocalJSX.IntrinsicElements["limel-date-picker"] & JSXBase.HTMLAttributes<HTMLLimelDatePickerElement>;
13236
13270
  /**
@@ -13445,6 +13479,7 @@ declare module "@stencil/core" {
13445
13479
  * @exampleComponent limel-example-code-editor-form
13446
13480
  * @exampleComponent limel-example-form-highlighted-field
13447
13481
  * @exampleComponent limel-example-form-heading-level
13482
+ * @exampleComponent limel-example-form-include-defaults
13448
13483
  */
13449
13484
  "limel-form": LocalJSX.IntrinsicElements["limel-form"] & JSXBase.HTMLAttributes<HTMLLimelFormElement>;
13450
13485
  /**
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
@@ -27,6 +27,8 @@ declare const _default: {
27
27
  'date-picker.month.heading': string;
28
28
  'date-picker.quarter.heading': string;
29
29
  'date-picker.year.heading': string;
30
+ 'date-picker.invalid-format': string;
31
+ 'date-picker.invalid-time-format': string;
30
32
  'drag-handle.drag-handle': string;
31
33
  'drag-handle.drag-to-reorder': string;
32
34
  'resize-handle.resize': string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "40.22.0",
3
+ "version": "40.24.0",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -55,7 +55,7 @@
55
55
  "@commitlint/cli": "^21.2.4",
56
56
  "@commitlint/config-conventional": "^21.2.4",
57
57
  "@limetech/eslint-config": "^5.0.3",
58
- "@microsoft/api-extractor": "^7.60.0",
58
+ "@microsoft/api-extractor": "^7.60.1",
59
59
  "@playwright/test": "1.64.1",
60
60
  "@popperjs/core": "^2.11.8",
61
61
  "@rjsf/core": "^6.11.0",
@@ -77,9 +77,9 @@
77
77
  "dayjs": "^1.11.23",
78
78
  "diff": "^9.0.0",
79
79
  "echarts": "^6.1.0",
80
- "eslint": "^10.13.0",
80
+ "eslint": "^10.14.0",
81
81
  "flatpickr": "^4.6.13",
82
- "glob": "^13.0.6",
82
+ "glob": "^14.0.3",
83
83
  "globals": "^17.13.0",
84
84
  "hast-util-from-dom": "^5.0.1",
85
85
  "hast-util-to-mdast": "^10.1.2",
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Reduce a language to the primary subtag that our language maps are keyed by.
5
- *
6
- * A `language` prop is typed, but a custom element takes whatever string an
7
- * attribute carries — commonly a full BCP 47 tag such as `nb-NO`, since a host
8
- * application often derives the language from `document.documentElement.lang`.
9
- * Anything that is not a string must resolve rather than throw, so that an
10
- * unexpected value can never break a component's render.
11
- *
12
- * Examples:
13
- * - "nb" => "nb"
14
- * - "nb-NO" => "nb"
15
- * - "SV-SE" => "sv"
16
- * - undefined => ""
17
- *
18
- * @param language - the language to reduce
19
- * @returns the lower-cased primary subtag, or an empty string
20
- */
21
- function getPrimarySubtag(language) {
22
- if (typeof language !== 'string') {
23
- return '';
24
- }
25
- return language.toLowerCase().split('-', 1)[0];
26
- }
27
- /**
28
- * The locale that `Intl` writes numbers and dates in for `language`, or
29
- * `undefined` when it cannot write in that language. `Intl` throws on a
30
- * tag it cannot read, such as `sv_SE`, and quietly uses the viewer's own
31
- * locale for one it does not know, such as `zz`. A component that writes in
32
- * its `language` while it renders checks it here, and falls back to English
33
- * when this gives `undefined`.
34
- *
35
- * Examples:
36
- * - "sv" => "sv"
37
- * - "SV-se" => "sv-SE"
38
- * - "sv_SE" => undefined
39
- * - "zz" => undefined
40
- * - undefined => undefined
41
- *
42
- * @param language - the language to write in
43
- * @returns the locale, or `undefined`
44
- */
45
- function getSupportedLocale(language) {
46
- if (typeof language !== 'string') {
47
- return;
48
- }
49
- try {
50
- return Intl.NumberFormat.supportedLocalesOf(language)[0];
51
- }
52
- catch (_a) {
53
- return;
54
- }
55
- }
56
-
57
- exports.getPrimarySubtag = getPrimarySubtag;
58
- exports.getSupportedLocale = getSupportedLocale;
@@ -1,55 +0,0 @@
1
- /**
2
- * Reduce a language to the primary subtag that our language maps are keyed by.
3
- *
4
- * A `language` prop is typed, but a custom element takes whatever string an
5
- * attribute carries — commonly a full BCP 47 tag such as `nb-NO`, since a host
6
- * application often derives the language from `document.documentElement.lang`.
7
- * Anything that is not a string must resolve rather than throw, so that an
8
- * unexpected value can never break a component's render.
9
- *
10
- * Examples:
11
- * - "nb" => "nb"
12
- * - "nb-NO" => "nb"
13
- * - "SV-SE" => "sv"
14
- * - undefined => ""
15
- *
16
- * @param language - the language to reduce
17
- * @returns the lower-cased primary subtag, or an empty string
18
- */
19
- function getPrimarySubtag(language) {
20
- if (typeof language !== 'string') {
21
- return '';
22
- }
23
- return language.toLowerCase().split('-', 1)[0];
24
- }
25
- /**
26
- * The locale that `Intl` writes numbers and dates in for `language`, or
27
- * `undefined` when it cannot write in that language. `Intl` throws on a
28
- * tag it cannot read, such as `sv_SE`, and quietly uses the viewer's own
29
- * locale for one it does not know, such as `zz`. A component that writes in
30
- * its `language` while it renders checks it here, and falls back to English
31
- * when this gives `undefined`.
32
- *
33
- * Examples:
34
- * - "sv" => "sv"
35
- * - "SV-se" => "sv-SE"
36
- * - "sv_SE" => undefined
37
- * - "zz" => undefined
38
- * - undefined => undefined
39
- *
40
- * @param language - the language to write in
41
- * @returns the locale, or `undefined`
42
- */
43
- function getSupportedLocale(language) {
44
- if (typeof language !== 'string') {
45
- return;
46
- }
47
- try {
48
- return Intl.NumberFormat.supportedLocalesOf(language)[0];
49
- }
50
- catch (_a) {
51
- return;
52
- }
53
- }
54
-
55
- export { getPrimarySubtag as a, getSupportedLocale as g };