@limetech/lime-elements 40.6.0 → 40.6.2

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 (457) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/{adapt-color-contrast-Beo1IEl_.js → adapt-color-contrast-h6iwOfZd.js} +1 -1
  3. package/dist/cjs/{checkbox.template-BPk8WkQF.js → checkbox.template-CoNVC4Nf.js} +2 -2
  4. package/dist/cjs/{component-CFk7Dfoi.js → component-Cz24PdGy.js} +3 -3
  5. package/dist/cjs/{component-BrNWuGdj.js → component-DNiVfYHV.js} +1 -1
  6. package/dist/cjs/{component-y8swlNNR.js → component-GW2n79GH.js} +1 -1
  7. package/dist/cjs/{component-UyqdiWGc.js → component-xiw46M1b.js} +1 -1
  8. package/dist/cjs/{files-DI4jItxi.js → files-DpGigQ8k.js} +1 -1
  9. package/dist/cjs/{format-bytes-CpUKKU86.js → format-bytes-WTHVI718.js} +1 -4
  10. package/dist/cjs/{hotkeys-BtR8uxvl.js → hotkeys-D761KWnZ.js} +1 -0
  11. package/dist/cjs/{image-resize-CG2fitJT.js → image-resize-JlRLB97I.js} +1 -0
  12. package/dist/cjs/{image.template-DY7qwbuy.js → image.template-DlF-f23b.js} +1 -1
  13. package/dist/cjs/{index--B6-r0uo.js → index-BlsqxTB1.js} +1 -7
  14. package/dist/cjs/index.cjs.js +1 -1
  15. package/dist/cjs/{keycodes-k-EdzcMX.js → keycodes-BQ_AERli.js} +4 -0
  16. package/dist/cjs/{language-CaqPKPyW.js → language-v-MMS6ym.js} +1 -1
  17. package/dist/cjs/lime-elements.cjs.js +2 -2
  18. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-action-bar_3.cjs.entry.js +20 -18
  20. package/dist/cjs/limel-ai-avatar.cjs.entry.js +5 -5
  21. package/dist/cjs/limel-badge.cjs.entry.js +3 -3
  22. package/dist/cjs/limel-banner.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +86 -86
  24. package/dist/cjs/limel-button-group.cjs.entry.js +3 -3
  25. package/dist/cjs/limel-button.cjs.entry.js +4 -4
  26. package/dist/cjs/limel-callout.cjs.entry.js +6 -6
  27. package/dist/cjs/limel-card.cjs.entry.js +8 -7
  28. package/dist/cjs/limel-chart.cjs.entry.js +5 -5
  29. package/dist/cjs/limel-checkbox.cjs.entry.js +12 -10
  30. package/dist/cjs/limel-chip-set.cjs.entry.js +35 -44
  31. package/dist/cjs/limel-chip_2.cjs.entry.js +10 -10
  32. package/dist/cjs/limel-circular-progress.cjs.entry.js +2 -2
  33. package/dist/cjs/limel-code-diff.cjs.entry.js +25 -28
  34. package/dist/cjs/limel-code-editor.cjs.entry.js +17 -12
  35. package/dist/cjs/limel-collapsible-section.cjs.entry.js +8 -8
  36. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +3 -3
  37. package/dist/cjs/limel-color-picker.cjs.entry.js +6 -5
  38. package/dist/cjs/limel-config.cjs.entry.js +3 -3
  39. package/dist/cjs/limel-date-picker.cjs.entry.js +12 -15
  40. package/dist/cjs/limel-dialog.cjs.entry.js +8 -11
  41. package/dist/cjs/limel-dock-button.cjs.entry.js +6 -11
  42. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  43. package/dist/cjs/limel-drag-handle.cjs.entry.js +6 -6
  44. package/dist/cjs/limel-dynamic-label.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-email-viewer.cjs.entry.js +11 -17
  46. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +11 -12
  47. package/dist/cjs/limel-file-viewer.cjs.entry.js +1098 -1146
  48. package/dist/cjs/limel-file.cjs.entry.js +17 -16
  49. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +100 -94
  50. package/dist/cjs/limel-flex-container.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-form.cjs.entry.js +65 -50
  52. package/dist/cjs/limel-grid.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-header.cjs.entry.js +2 -2
  54. package/dist/cjs/limel-help-content.cjs.entry.js +2 -2
  55. package/dist/cjs/limel-help.cjs.entry.js +3 -3
  56. package/dist/cjs/limel-helper-line_3.cjs.entry.js +14 -16
  57. package/dist/cjs/limel-hotkey_4.cjs.entry.js +23 -23
  58. package/dist/cjs/limel-icon-button.cjs.entry.js +4 -4
  59. package/dist/cjs/limel-icon.cjs.entry.js +15 -13
  60. package/dist/cjs/limel-info-tile.cjs.entry.js +10 -10
  61. package/dist/cjs/limel-list-item.cjs.entry.js +10 -10
  62. package/dist/cjs/limel-markdown.cjs.entry.js +25 -22
  63. package/dist/cjs/limel-masonry-layout.cjs.entry.js +6 -5
  64. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +3 -3
  65. package/dist/cjs/limel-pagination-jump.cjs.entry.js +18 -16
  66. package/dist/cjs/limel-pagination.cjs.entry.js +10 -9
  67. package/dist/cjs/limel-picker.cjs.entry.js +32 -30
  68. package/dist/cjs/limel-popover_2.cjs.entry.js +26 -22
  69. package/dist/cjs/limel-profile-picture.cjs.entry.js +12 -11
  70. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
  71. package/dist/cjs/limel-progress-flow.cjs.entry.js +11 -10
  72. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +475 -407
  73. package/dist/cjs/limel-radio-button-group.cjs.entry.js +2 -2
  74. package/dist/cjs/limel-radio-button.cjs.entry.js +3 -3
  75. package/dist/cjs/limel-scroller.cjs.entry.js +180 -0
  76. package/dist/cjs/limel-select.cjs.entry.js +20 -20
  77. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  78. package/dist/cjs/limel-slider.cjs.entry.js +18 -27
  79. package/dist/cjs/limel-snackbar.cjs.entry.js +5 -5
  80. package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
  81. package/dist/cjs/limel-switch.cjs.entry.js +3 -3
  82. package/dist/cjs/limel-tab-bar.cjs.entry.js +235 -2036
  83. package/dist/cjs/limel-tab-panel.cjs.entry.js +12 -9
  84. package/dist/cjs/limel-table.cjs.entry.js +527 -106
  85. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +16 -15
  86. package/dist/cjs/limel-text-editor.cjs.entry.js +3 -3
  87. package/dist/cjs/loader.cjs.js +2 -2
  88. package/dist/cjs/{make-enter-clickable-NuTMC9MU.js → make-enter-clickable-BZHEWIJD.js} +19 -12
  89. package/dist/cjs/{markdown-exporter-9p7d3Q76.js → markdown-exporter-C-UW43FF.js} +1 -1
  90. package/dist/cjs/{markdown-parser-Cgv5Y9Z4.js → markdown-parser-ssDij8_l.js} +24 -22
  91. package/dist/cjs/{moment-CqRdiK10.js → moment-Cfsz2WF1.js} +1062 -833
  92. package/dist/cjs/{ponyfill-BgIFyUG5.js → ponyfill-CHp7Zocr.js} +0 -1
  93. package/dist/cjs/{random-string-BTzDB2ee.js → random-string-CFCtFh5l.js} +1 -0
  94. package/dist/cjs/{render-list-component-5ZKWpCnM.js → render-list-component-BtAliHQp.js} +3 -5
  95. package/dist/cjs/{sv-BSR4W58y.js → sv-Co78RX70.js} +31 -3
  96. package/dist/cjs/{translations-DFFpR6AZ.js → translations-CNTWud2a.js} +5 -8
  97. package/dist/collection/collection-manifest.json +1 -0
  98. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  99. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.js +8 -7
  100. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  101. package/dist/collection/components/action-bar/action-bar.js +6 -5
  102. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  103. package/dist/collection/components/badge/badge.js +2 -2
  104. package/dist/collection/components/banner/banner.js +1 -1
  105. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  106. package/dist/collection/components/button/button.js +2 -2
  107. package/dist/collection/components/button-group/button-group.js +1 -1
  108. package/dist/collection/components/callout/callout.js +1 -1
  109. package/dist/collection/components/card/card.js +6 -5
  110. package/dist/collection/components/checkbox/checkbox.js +9 -7
  111. package/dist/collection/components/checkbox/checkbox.template.js +1 -1
  112. package/dist/collection/components/chip/chip.js +1 -1
  113. package/dist/collection/components/chip-set/chip-set-input-helpers.js +18 -21
  114. package/dist/collection/components/chip-set/chip-set.js +7 -13
  115. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  116. package/dist/collection/components/code-diff/code-diff.js +19 -22
  117. package/dist/collection/components/code-diff/diff-engine.js +2 -2
  118. package/dist/collection/components/code-editor/code-editor.js +8 -3
  119. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  120. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  121. package/dist/collection/components/color-picker/color-picker.js +5 -4
  122. package/dist/collection/components/config/config.js +2 -2
  123. package/dist/collection/components/date-picker/date-picker.js +3 -6
  124. package/dist/collection/components/date-picker/flatpickr-adapter/deferred-destroy.js +4 -3
  125. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  126. package/dist/collection/components/date-picker/pickers/month-picker.js +40 -36
  127. package/dist/collection/components/date-picker/pickers/quarter-picker.js +35 -30
  128. package/dist/collection/components/date-picker/pickers/year-picker.js +16 -20
  129. package/dist/collection/components/dialog/dialog.js +4 -7
  130. package/dist/collection/components/dock/dock-button/dock-button.js +4 -9
  131. package/dist/collection/components/dock/dock.js +2 -2
  132. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  133. package/dist/collection/components/email-viewer/email-loader.js +14 -10
  134. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  135. package/dist/collection/components/email-viewer/sanitize-email-html.js +1 -4
  136. package/dist/collection/components/email-viewer/split-email-address-list.js +4 -10
  137. package/dist/collection/components/file/file.js +11 -10
  138. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  139. package/dist/collection/components/file-input/file-input.js +7 -8
  140. package/dist/collection/components/file-viewer/file-viewer.js +12 -9
  141. package/dist/collection/components/flex-container/flex-container.js +1 -1
  142. package/dist/collection/components/form/fields/schema-field.js +1 -1
  143. package/dist/collection/components/form/form.js +2 -5
  144. package/dist/collection/components/form/form.test-schemas.js +8 -10
  145. package/dist/collection/components/form/templates/array-field.js +7 -9
  146. package/dist/collection/components/form/templates/common.js +19 -19
  147. package/dist/collection/components/form/templates/object-field.js +1 -1
  148. package/dist/collection/components/form/validation-display.js +2 -2
  149. package/dist/collection/components/form/validators/format.js +1 -0
  150. package/dist/collection/components/form/widgets/code-editor.js +6 -9
  151. package/dist/collection/components/form/widgets/date-picker.js +1 -3
  152. package/dist/collection/components/grid/grid.js +1 -1
  153. package/dist/collection/components/header/header.js +1 -1
  154. package/dist/collection/components/help/help-content.js +1 -1
  155. package/dist/collection/components/help/help.js +2 -2
  156. package/dist/collection/components/helper-line/helper-line.js +3 -3
  157. package/dist/collection/components/hotkey/hotkey.js +1 -1
  158. package/dist/collection/components/icon/icon.js +11 -9
  159. package/dist/collection/components/icon-button/icon-button.js +1 -1
  160. package/dist/collection/components/info-tile/info-tile.js +9 -9
  161. package/dist/collection/components/input-field/input-field.js +11 -11
  162. package/dist/collection/components/list/list-renderer.js +5 -7
  163. package/dist/collection/components/list/list.js +2 -2
  164. package/dist/collection/components/list-item/list-item.js +2 -2
  165. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  166. package/dist/collection/components/markdown/hydrate-custom-elements.js +6 -5
  167. package/dist/collection/components/markdown/image-intersection-observer.js +9 -8
  168. package/dist/collection/components/markdown/image-markdown-plugin.js +9 -7
  169. package/dist/collection/components/markdown/link-markdown-plugin.js +11 -10
  170. package/dist/collection/components/markdown/markdown.js +6 -5
  171. package/dist/collection/components/markdown/remove-empty-paragraphs-plugin.js +4 -5
  172. package/dist/collection/components/masonry-layout/masonry-layout.js +5 -4
  173. package/dist/collection/components/menu/menu.js +48 -46
  174. package/dist/collection/components/menu-list/menu-list-renderer.js +8 -8
  175. package/dist/collection/components/menu-list/menu-list.js +1 -1
  176. package/dist/collection/components/menu-surface/menu-surface.js +6 -8
  177. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  178. package/dist/collection/components/pagination/jump/pagination-jump.js +13 -11
  179. package/dist/collection/components/pagination/pagination.js +5 -4
  180. package/dist/collection/components/picker/picker.js +25 -23
  181. package/dist/collection/components/popover/popover.js +13 -10
  182. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  183. package/dist/collection/components/portal/contains.js +9 -8
  184. package/dist/collection/components/portal/portal.js +16 -16
  185. package/dist/collection/components/profile-picture/profile-picture.js +4 -3
  186. package/dist/collection/components/progress-flow/progress-flow.js +10 -9
  187. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  188. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  189. package/dist/collection/components/scroller/scroller.css +317 -0
  190. package/dist/collection/components/scroller/scroller.js +284 -0
  191. package/dist/collection/components/select/select.js +13 -11
  192. package/dist/collection/components/select/select.template.js +1 -3
  193. package/dist/collection/components/slider/get-percentage-class.js +9 -18
  194. package/dist/collection/components/slider/slider.js +2 -2
  195. package/dist/collection/components/tab-bar/tab-bar.css +7 -289
  196. package/dist/collection/components/tab-bar/tab-bar.js +98 -128
  197. package/dist/collection/components/tab-panel/tab-panel.js +11 -8
  198. package/dist/collection/components/table/columns.js +1 -3
  199. package/dist/collection/components/table/element-pool.js +1 -1
  200. package/dist/collection/components/table/table-selection.js +6 -5
  201. package/dist/collection/components/table/table.css +15 -17
  202. package/dist/collection/components/table/table.js +44 -39
  203. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +11 -10
  204. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-command-utils/list-utils.js +1 -1
  205. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-commands.js +6 -10
  206. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/inserter.js +37 -40
  207. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/node.js +2 -1
  208. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/link/link-plugin.js +21 -20
  209. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/menu-state-tracking-plugin.js +6 -5
  210. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/factory-helpers/detect-trigger-removal.js +15 -14
  211. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +40 -34
  212. package/dist/collection/components/text-editor/text-editor.js +1 -1
  213. package/dist/collection/components/text-editor/utils/metadata-utils.js +1 -1
  214. package/dist/collection/components/text-editor/utils/plugin-factory.js +3 -3
  215. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  216. package/dist/collection/components/tooltip/tooltip.js +2 -2
  217. package/dist/collection/global/icon-cache/factory.js +2 -3
  218. package/dist/collection/global/icon-cache/in-memory-icon-cache.js +2 -0
  219. package/dist/collection/global/translations.js +1 -3
  220. package/dist/collection/translations/fr.js +3 -3
  221. package/dist/collection/util/adapt-color-contrast.js +1 -1
  222. package/dist/collection/util/files.js +1 -1
  223. package/dist/collection/util/format-bytes.js +1 -4
  224. package/dist/collection/util/hotkeys.js +1 -0
  225. package/dist/collection/util/image-resize.js +1 -0
  226. package/dist/collection/util/keyboard-navigation.js +144 -0
  227. package/dist/collection/util/keycodes.js +2 -0
  228. package/dist/collection/util/language.js +1 -1
  229. package/dist/collection/util/make-enter-clickable.js +19 -12
  230. package/dist/collection/util/random-string.js +1 -0
  231. package/dist/collection/util/render-list-component.js +2 -4
  232. package/dist/esm/{adapt-color-contrast-Dgcw_h7C.js → adapt-color-contrast-BQoih_t0.js} +1 -1
  233. package/dist/esm/{checkbox.template-Cx_3u92S.js → checkbox.template-IDyv2bgn.js} +2 -2
  234. package/dist/esm/{component-wGVqvUmL.js → component-CVihTrav.js} +3 -3
  235. package/dist/esm/{component-7QB0OUSF.js → component-CrjPGt1I.js} +1 -1
  236. package/dist/esm/{component-D4qgwaTf.js → component-CyFeUQ0l.js} +1 -1
  237. package/dist/esm/{component-B2Vy44Z3.js → component-kP1jCDLp.js} +1 -1
  238. package/dist/esm/{files-DnkFEKoB.js → files-CKnLqPDj.js} +1 -1
  239. package/dist/esm/{format-bytes-u_sd2HMb.js → format-bytes-24yUSW40.js} +1 -4
  240. package/dist/esm/{hotkeys-BxrRWYts.js → hotkeys-DjmlD0Mw.js} +1 -0
  241. package/dist/esm/{image-resize-BTSG--2-.js → image-resize-Dv2HOgWN.js} +1 -0
  242. package/dist/esm/{image.template-wqMwmOF-.js → image.template-BGjw97m_.js} +1 -1
  243. package/dist/esm/{index-Bnc9lzk2.js → index-BU9IJqli.js} +1 -7
  244. package/dist/esm/index.js +1 -1
  245. package/dist/esm/{keycodes-C4_9qUMP.js → keycodes-DQ5DmW_Y.js} +3 -1
  246. package/dist/esm/{language-C3hECvXE.js → language-ChagAaNf.js} +1 -1
  247. package/dist/esm/lime-elements.js +3 -3
  248. package/dist/esm/limel-3d-hover-effect-glow.entry.js +2 -2
  249. package/dist/esm/limel-action-bar_3.entry.js +20 -18
  250. package/dist/esm/limel-ai-avatar.entry.js +5 -5
  251. package/dist/esm/limel-badge.entry.js +3 -3
  252. package/dist/esm/limel-banner.entry.js +2 -2
  253. package/dist/esm/limel-breadcrumbs_6.entry.js +86 -86
  254. package/dist/esm/limel-button-group.entry.js +3 -3
  255. package/dist/esm/limel-button.entry.js +4 -4
  256. package/dist/esm/limel-callout.entry.js +6 -6
  257. package/dist/esm/limel-card.entry.js +8 -7
  258. package/dist/esm/limel-chart.entry.js +5 -5
  259. package/dist/esm/limel-checkbox.entry.js +12 -10
  260. package/dist/esm/limel-chip-set.entry.js +35 -44
  261. package/dist/esm/limel-chip_2.entry.js +10 -10
  262. package/dist/esm/limel-circular-progress.entry.js +2 -2
  263. package/dist/esm/limel-code-diff.entry.js +25 -28
  264. package/dist/esm/limel-code-editor.entry.js +17 -12
  265. package/dist/esm/limel-collapsible-section.entry.js +8 -8
  266. package/dist/esm/limel-color-picker-palette.entry.js +3 -3
  267. package/dist/esm/limel-color-picker.entry.js +6 -5
  268. package/dist/esm/limel-config.entry.js +3 -3
  269. package/dist/esm/limel-date-picker.entry.js +12 -15
  270. package/dist/esm/limel-dialog.entry.js +8 -11
  271. package/dist/esm/limel-dock-button.entry.js +6 -11
  272. package/dist/esm/limel-dock.entry.js +3 -3
  273. package/dist/esm/limel-drag-handle.entry.js +6 -6
  274. package/dist/esm/limel-dynamic-label.entry.js +1 -1
  275. package/dist/esm/limel-email-viewer.entry.js +11 -17
  276. package/dist/esm/limel-file-dropzone_2.entry.js +11 -12
  277. package/dist/esm/limel-file-viewer.entry.js +1098 -1146
  278. package/dist/esm/limel-file.entry.js +17 -16
  279. package/dist/esm/limel-flatpickr-adapter.entry.js +100 -94
  280. package/dist/esm/limel-flex-container.entry.js +2 -2
  281. package/dist/esm/limel-form.entry.js +65 -50
  282. package/dist/esm/limel-grid.entry.js +2 -2
  283. package/dist/esm/limel-header.entry.js +2 -2
  284. package/dist/esm/limel-help-content.entry.js +2 -2
  285. package/dist/esm/limel-help.entry.js +3 -3
  286. package/dist/esm/limel-helper-line_3.entry.js +14 -16
  287. package/dist/esm/limel-hotkey_4.entry.js +23 -23
  288. package/dist/esm/limel-icon-button.entry.js +4 -4
  289. package/dist/esm/limel-icon.entry.js +15 -13
  290. package/dist/esm/limel-info-tile.entry.js +10 -10
  291. package/dist/esm/limel-list-item.entry.js +10 -10
  292. package/dist/esm/limel-markdown.entry.js +25 -22
  293. package/dist/esm/limel-masonry-layout.entry.js +6 -5
  294. package/dist/esm/limel-menu-item-meta.entry.js +3 -3
  295. package/dist/esm/limel-pagination-jump.entry.js +18 -16
  296. package/dist/esm/limel-pagination.entry.js +10 -9
  297. package/dist/esm/limel-picker.entry.js +32 -30
  298. package/dist/esm/limel-popover_2.entry.js +26 -22
  299. package/dist/esm/limel-profile-picture.entry.js +12 -11
  300. package/dist/esm/limel-progress-flow-item.entry.js +1 -1
  301. package/dist/esm/limel-progress-flow.entry.js +11 -10
  302. package/dist/esm/limel-prosemirror-adapter.entry.js +475 -407
  303. package/dist/esm/limel-radio-button-group.entry.js +2 -2
  304. package/dist/esm/limel-radio-button.entry.js +3 -3
  305. package/dist/esm/limel-scroller.entry.js +178 -0
  306. package/dist/esm/limel-select.entry.js +20 -20
  307. package/dist/esm/limel-shortcut.entry.js +1 -1
  308. package/dist/esm/limel-slider.entry.js +18 -27
  309. package/dist/esm/limel-snackbar.entry.js +5 -5
  310. package/dist/esm/limel-split-button.entry.js +1 -1
  311. package/dist/esm/limel-switch.entry.js +3 -3
  312. package/dist/esm/limel-tab-bar.entry.js +235 -2036
  313. package/dist/esm/limel-tab-panel.entry.js +12 -9
  314. package/dist/esm/limel-table.entry.js +527 -106
  315. package/dist/esm/limel-text-editor-link-menu.entry.js +16 -15
  316. package/dist/esm/limel-text-editor.entry.js +3 -3
  317. package/dist/esm/loader.js +3 -3
  318. package/dist/esm/{make-enter-clickable-BgTwPGeH.js → make-enter-clickable-CIf8aGSd.js} +19 -12
  319. package/dist/esm/{markdown-exporter--3_MaqwD.js → markdown-exporter-DblYRMhY.js} +1 -1
  320. package/dist/esm/{markdown-parser-DCf-3dKZ.js → markdown-parser-CAPDx7i8.js} +24 -22
  321. package/dist/esm/{moment-DQRNe8qq.js → moment-_DadZLWp.js} +1062 -833
  322. package/dist/esm/{ponyfill-ChRGk668.js → ponyfill-6YuZiAPi.js} +1 -1
  323. package/dist/esm/{random-string-JbKhhoXs.js → random-string-BrjD-ITe.js} +1 -0
  324. package/dist/esm/{render-list-component-cicbMp0l.js → render-list-component-J1IzNpbv.js} +3 -5
  325. package/dist/esm/{sv-CY-6-yEp.js → sv-DpsDSi7k.js} +31 -3
  326. package/dist/esm/{translations-DMtX4tTX.js → translations-Y4i8PVc9.js} +5 -8
  327. package/dist/lime-elements/index.esm.js +1 -1
  328. package/dist/lime-elements/lime-elements.esm.js +1 -1
  329. package/dist/lime-elements/p-02a06cf7.entry.js +1 -0
  330. package/dist/lime-elements/{p-3916b316.entry.js → p-03cb609e.entry.js} +1 -1
  331. package/dist/lime-elements/p-05038bbb.entry.js +1 -0
  332. package/dist/lime-elements/{p-835149c4.entry.js → p-0d6925f4.entry.js} +1 -1
  333. package/dist/lime-elements/p-0e13ec91.entry.js +1 -0
  334. package/dist/lime-elements/p-0ece667e.entry.js +1 -0
  335. package/dist/lime-elements/{p-19344984.entry.js → p-107654bb.entry.js} +4 -4
  336. package/dist/lime-elements/p-120ca628.entry.js +1 -0
  337. package/dist/lime-elements/{p-BwJGg-WI.js → p-1CgnIGyd.js} +4 -4
  338. package/dist/lime-elements/p-22fd1c87.entry.js +1 -0
  339. package/dist/lime-elements/p-24yUSW40.js +1 -0
  340. package/dist/lime-elements/{p-f717cd7a.entry.js → p-271662d4.entry.js} +1 -1
  341. package/dist/lime-elements/{p-c2a60508.entry.js → p-29c73bdf.entry.js} +1 -1
  342. package/dist/lime-elements/{p-deceda00.entry.js → p-2a902e77.entry.js} +1 -1
  343. package/dist/lime-elements/{p-d0cec424.entry.js → p-2b033dfa.entry.js} +1 -1
  344. package/dist/lime-elements/{p-acba5700.entry.js → p-2b2253d4.entry.js} +1 -1
  345. package/dist/lime-elements/p-2e33d2a4.entry.js +1 -0
  346. package/dist/lime-elements/p-32a050a3.entry.js +1 -0
  347. package/dist/lime-elements/{p-3735111e.entry.js → p-3cfe0eaf.entry.js} +1 -1
  348. package/dist/lime-elements/{p-fbcd99a3.entry.js → p-3d3bdf45.entry.js} +1 -1
  349. package/dist/lime-elements/p-45461ec5.entry.js +1 -0
  350. package/dist/lime-elements/p-45c39fb4.entry.js +1 -0
  351. package/dist/lime-elements/p-45fde7a1.entry.js +1 -0
  352. package/dist/lime-elements/p-48afa6b7.entry.js +1 -0
  353. package/dist/lime-elements/{p-f04f7c8e.entry.js → p-4a88d365.entry.js} +1 -1
  354. package/dist/lime-elements/p-4b75e653.entry.js +1 -0
  355. package/dist/lime-elements/{p-5698e493.entry.js → p-4ecbc9f4.entry.js} +1 -1
  356. package/dist/lime-elements/{p-2e568c56.entry.js → p-54a9f48f.entry.js} +1 -1
  357. package/dist/lime-elements/{p-0fba64eb.entry.js → p-5df21b25.entry.js} +2 -2
  358. package/dist/lime-elements/p-5e448070.entry.js +1 -0
  359. package/dist/lime-elements/{p-408c4dcb.entry.js → p-5f5c6e7d.entry.js} +1 -1
  360. package/dist/lime-elements/{p-052c3bc6.entry.js → p-681cb6de.entry.js} +1 -1
  361. package/dist/lime-elements/{p-ChRGk668.js → p-6YuZiAPi.js} +3 -3
  362. package/dist/lime-elements/{p-90df3e1b.entry.js → p-6d9961f7.entry.js} +1 -1
  363. package/dist/lime-elements/p-74060535.entry.js +159 -0
  364. package/dist/lime-elements/{p-74bd0c1a.entry.js → p-7b4351f6.entry.js} +1 -1
  365. package/dist/lime-elements/{p-3fd7e8aa.entry.js → p-7eab1341.entry.js} +1 -1
  366. package/dist/lime-elements/p-7fa85785.entry.js +23 -0
  367. package/dist/lime-elements/{p-35fa1063.entry.js → p-85318636.entry.js} +1 -1
  368. package/dist/lime-elements/{p-4ffbfc79.entry.js → p-8ac79ef5.entry.js} +1 -1
  369. package/dist/lime-elements/{p-4902fb3f.entry.js → p-9218fa6a.entry.js} +1 -1
  370. package/dist/lime-elements/{p-38b09f87.entry.js → p-9415411e.entry.js} +1 -1
  371. package/dist/lime-elements/{p-be8610ff.entry.js → p-958396b5.entry.js} +1 -1
  372. package/dist/lime-elements/p-95ccd9e7.entry.js +1 -0
  373. package/dist/lime-elements/p-970e0810.entry.js +1 -0
  374. package/dist/lime-elements/{p-cb407bef.entry.js → p-9afa4721.entry.js} +1 -1
  375. package/dist/lime-elements/{p-54dcf46f.entry.js → p-9c8c2fb7.entry.js} +1 -1
  376. package/dist/lime-elements/p-9e084e7c.entry.js +1 -0
  377. package/dist/lime-elements/{p-B8hoCfhT.js → p-B3YP9GOq.js} +1 -1
  378. package/dist/lime-elements/{p-Dgcw_h7C.js → p-BQoih_t0.js} +1 -1
  379. package/dist/lime-elements/{p-Bnc9lzk2.js → p-BU9IJqli.js} +1 -1
  380. package/dist/lime-elements/{p-BN1-aIOw.js → p-BZXGwiAr.js} +1 -1
  381. package/dist/lime-elements/{p-CGVVDGcv.js → p-Bkvc4sus.js} +1 -1
  382. package/dist/lime-elements/{p-BPzhuHcl.js → p-Bvyt2bmV.js} +1 -1
  383. package/dist/lime-elements/{p-DZkKQUDM.js → p-C1FFnUvf.js} +3 -3
  384. package/dist/lime-elements/{p-BgTwPGeH.js → p-CIf8aGSd.js} +1 -1
  385. package/dist/lime-elements/{p-C3hECvXE.js → p-ChagAaNf.js} +1 -1
  386. package/dist/lime-elements/{p-C9yTLqR8.js → p-CmtleG1y.js} +1 -1
  387. package/dist/lime-elements/{p-C4_9qUMP.js → p-DQ5DmW_Y.js} +1 -1
  388. package/dist/lime-elements/p-DTcfed02.js +3 -0
  389. package/dist/lime-elements/{p-BY85K-4J.js → p-DqQOawxc.js} +1 -1
  390. package/dist/lime-elements/{p-CC4Usa-Q.js → p-I0PrvthC.js} +1 -1
  391. package/dist/lime-elements/p-N9vxZMhe.js +1 -0
  392. package/dist/lime-elements/{p-DsDkl4Sy.js → p-ZDFVISfu.js} +3 -3
  393. package/dist/lime-elements/p-a1c69e0c.entry.js +1 -0
  394. package/dist/lime-elements/{p-2daf0482.entry.js → p-a1d1470c.entry.js} +1 -1
  395. package/dist/lime-elements/{p-cef66e53.entry.js → p-a2e6f16e.entry.js} +1 -1
  396. package/dist/lime-elements/{p-36ce4fbc.entry.js → p-a42f8c2d.entry.js} +1 -1
  397. package/dist/lime-elements/p-a550ba18.entry.js +1 -0
  398. package/dist/lime-elements/{p-d146feda.entry.js → p-a65eb58e.entry.js} +1 -1
  399. package/dist/lime-elements/{p-03fb2603.entry.js → p-b22b52a1.entry.js} +1 -1
  400. package/dist/lime-elements/{p-c2a3ca7c.entry.js → p-b6d39581.entry.js} +1 -1
  401. package/dist/lime-elements/{p-8475a3b8.entry.js → p-c439b68b.entry.js} +1 -1
  402. package/dist/lime-elements/p-d19c7a3a.entry.js +1 -0
  403. package/dist/lime-elements/{p-d3bd4b80.entry.js → p-d1b7cc55.entry.js} +3 -3
  404. package/dist/lime-elements/{p-7cbf50fc.entry.js → p-d1e5dd12.entry.js} +1 -1
  405. package/dist/lime-elements/p-de4719a6.entry.js +1 -0
  406. package/dist/lime-elements/{p-b81a2728.entry.js → p-e02e2c5f.entry.js} +1 -1
  407. package/dist/lime-elements/{p-d351b9ae.entry.js → p-e6a34047.entry.js} +1 -1
  408. package/dist/lime-elements/p-eF09GxA_.js +1 -0
  409. package/dist/lime-elements/{p-8fa9c9ea.entry.js → p-ee719744.entry.js} +1 -1
  410. package/dist/lime-elements/p-f3cae1e7.entry.js +1 -0
  411. package/dist/lime-elements/{p-8115da75.entry.js → p-f4a0b1bc.entry.js} +1 -1
  412. package/dist/lime-elements/{p-4855dc9b.entry.js → p-f82f72e7.entry.js} +1 -1
  413. package/dist/lime-elements/{p-2d84ea04.entry.js → p-f97ec7a5.entry.js} +1 -1
  414. package/dist/lime-elements/{p-21109d9b.entry.js → p-fdd674fc.entry.js} +1 -1
  415. package/dist/lime-elements/{p-459eea13.entry.js → p-fdec09e9.entry.js} +1 -1
  416. package/dist/lime-elements/{p-2f57c3fa.entry.js → p-fe492ff3.entry.js} +1 -1
  417. package/dist/lime-elements/{p-65cded0e.entry.js → p-ff1a8b2e.entry.js} +1 -1
  418. package/dist/types/components/chip-set/chip-set-input-helpers.d.ts +1 -1
  419. package/dist/types/components/pagination/jump/pagination-jump.d.ts +1 -1
  420. package/dist/types/components/scroller/scroller.d.ts +67 -0
  421. package/dist/types/components/tab-bar/tab-bar.d.ts +23 -21
  422. package/dist/types/components.d.ts +132 -0
  423. package/dist/types/global/icon-cache/factory.d.ts +2 -2
  424. package/dist/types/global/translations.d.ts +2 -2
  425. package/dist/types/util/keyboard-navigation.d.ts +105 -0
  426. package/dist/types/util/keycodes.d.ts +2 -0
  427. package/package.json +12 -12
  428. package/dist/lime-elements/p-1e93473a.entry.js +0 -1
  429. package/dist/lime-elements/p-20658306.entry.js +0 -1
  430. package/dist/lime-elements/p-26c5c6b9.entry.js +0 -1
  431. package/dist/lime-elements/p-452b9b01.entry.js +0 -1
  432. package/dist/lime-elements/p-4aae63bd.entry.js +0 -1
  433. package/dist/lime-elements/p-507cc8a1.entry.js +0 -159
  434. package/dist/lime-elements/p-531b6a64.entry.js +0 -1
  435. package/dist/lime-elements/p-54793c06.entry.js +0 -1
  436. package/dist/lime-elements/p-5d974afa.entry.js +0 -1
  437. package/dist/lime-elements/p-66b125f2.entry.js +0 -1
  438. package/dist/lime-elements/p-7e212fa7.entry.js +0 -1
  439. package/dist/lime-elements/p-82696d24.entry.js +0 -1
  440. package/dist/lime-elements/p-9ac39039.entry.js +0 -1
  441. package/dist/lime-elements/p-9b631363.entry.js +0 -1
  442. package/dist/lime-elements/p-DQJU9gzh.js +0 -1
  443. package/dist/lime-elements/p-DpJgXIWf.js +0 -1
  444. package/dist/lime-elements/p-a1de9bbe.entry.js +0 -1
  445. package/dist/lime-elements/p-a71f6e87.entry.js +0 -67
  446. package/dist/lime-elements/p-bd7b3f8e.entry.js +0 -1
  447. package/dist/lime-elements/p-c72e5007.entry.js +0 -1
  448. package/dist/lime-elements/p-cafec335.entry.js +0 -1
  449. package/dist/lime-elements/p-d6dadc61.entry.js +0 -1
  450. package/dist/lime-elements/p-d93b7b9f.entry.js +0 -23
  451. package/dist/lime-elements/p-dc9cd793.entry.js +0 -1
  452. package/dist/lime-elements/p-dd62042a.entry.js +0 -1
  453. package/dist/lime-elements/p-u_sd2HMb.js +0 -1
  454. package/dist/lime-elements/p-zo6O9LC9.js +0 -3
  455. /package/dist/lime-elements/{p-JbKhhoXs.js → p-BrjD-ITe.js} +0 -0
  456. /package/dist/lime-elements/{p-BxrRWYts.js → p-DjmlD0Mw.js} +0 -0
  457. /package/dist/lime-elements/{p-BTSG--2-.js → p-Dv2HOgWN.js} +0 -0
@@ -43,7 +43,9 @@ async function fetchEmailBuffer(url) {
43
43
  }
44
44
  catch (error) {
45
45
  const message = error instanceof Error ? error.message : String(error);
46
- throw new Error(`Failed to load email from ${url}: ${message}`);
46
+ throw new Error(`Failed to load email from ${url}: ${message}`, {
47
+ cause: error,
48
+ });
47
49
  }
48
50
  }
49
51
  async function parseEmail(url, buffer) {
@@ -54,7 +56,9 @@ async function parseEmail(url, buffer) {
54
56
  }
55
57
  catch (error) {
56
58
  const message = error instanceof Error ? error.message : String(error);
57
- throw new Error(`Failed to parse email from ${url}: ${message}`);
59
+ throw new Error(`Failed to parse email from ${url}: ${message}`, {
60
+ cause: error,
61
+ });
58
62
  }
59
63
  }
60
64
  function getRawHeader(email, name) {
@@ -64,7 +68,8 @@ function getRawHeader(email, name) {
64
68
  function extractAttachments(email) {
65
69
  const attachments = [];
66
70
  const cidUrlById = new Map();
67
- for (const attachment of email.attachments || []) {
71
+ const emailAttachments = email.attachments || [];
72
+ for (const attachment of emailAttachments) {
68
73
  const contentId = normalizeContentId(attachment.contentId);
69
74
  const hasContentId = Boolean(contentId);
70
75
  const isInline = (hasContentId && attachment.disposition !== 'attachment') ||
@@ -168,7 +173,7 @@ function byteArrayToBase64(bytes) {
168
173
  return btoa(binary);
169
174
  }
170
175
  // Jest/Node fallback
171
- return globalThis.Buffer.from(bytes).toString('base64');
176
+ return Buffer.from(bytes).toString('base64');
172
177
  }
173
178
  function resolveDataUrlMimeType(mimeType, bytes, filename) {
174
179
  const normalizedMimeType = typeof mimeType === 'string' ? mimeType.trim().toLowerCase() : '';
@@ -191,10 +196,7 @@ function resolveDataUrlMimeType(mimeType, bytes, filename) {
191
196
  return normalizedMimeType || 'application/octet-stream';
192
197
  }
193
198
  function isTrustedDeclaredImageMimeType(declaredMimeType, detectedMimeType) {
194
- if (!detectedMimeType) {
195
- return true;
196
- }
197
- if (declaredMimeType === detectedMimeType) {
199
+ if (!detectedMimeType || declaredMimeType === detectedMimeType) {
198
200
  return true;
199
201
  }
200
202
  if (declaredMimeType === 'image/jpg' && detectedMimeType === 'image/jpeg') {
@@ -239,7 +241,7 @@ function detectSvgMimeType(bytes) {
239
241
  if (bytes.length < 5) {
240
242
  return;
241
243
  }
242
- const utf8Prefix = new TextDecoder('utf8', { fatal: false }).decode(bytes.slice(0, Math.min(bytes.length, 256)));
244
+ const utf8Prefix = new TextDecoder('utf-8', { fatal: false }).decode(bytes.slice(0, Math.min(bytes.length, 256)));
243
245
  const normalizedPrefix = utf8Prefix.trimStart().toLowerCase();
244
246
  if (normalizedPrefix.startsWith('<svg') ||
245
247
  (normalizedPrefix.startsWith('<?xml') &&
@@ -331,7 +333,9 @@ function quoteDisplayNameIfNeeded(name) {
331
333
  if (!name.includes(',') && !name.includes('"')) {
332
334
  return name;
333
335
  }
334
- const escaped = name.replaceAll('\\', '\\\\').replaceAll('"', '\\' + '"');
336
+ const escaped = name
337
+ .replaceAll('\\', '\\\\')
338
+ .replaceAll('"', String.raw `\"`);
335
339
  return `"${escaped}"`;
336
340
  }
337
341
  export const emailLoaderHelpers = {
@@ -75,7 +75,7 @@ export class EmailViewer {
75
75
  }
76
76
  }
77
77
  render() {
78
- return (h(Host, { key: '1406f60faa31efdc459d7cd8733ad5e9f62009c1' }, h("div", { key: '456900f00847546df0b7caa6466b9792a5034255', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), h("section", { key: 'f20dbea9e5286c823f222f3606d6cf00b4d51c28' }, this.renderAttachments(), this.renderBody()))));
78
+ return (h(Host, { key: '1039e0b6331706b0a075d87c6156e2acd869e977' }, h("div", { key: '88dedb9af5a2d7a9870d484a23b649eae726633f', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), h("section", { key: '107a24b3cb6199b79ce19331f2660d72854e06ce' }, this.renderAttachments(), this.renderBody()))));
79
79
  }
80
80
  renderHeaders() {
81
81
  const headerFields = [
@@ -150,10 +150,7 @@ function getSafeEmailImageSrc(src) {
150
150
  return;
151
151
  }
152
152
  const mimeType = getDataUrlMimeType(trimmedSrc);
153
- if (!mimeType) {
154
- return;
155
- }
156
- if (!allowedMimeTypes.has(mimeType)) {
153
+ if (!mimeType || !allowedMimeTypes.has(mimeType)) {
157
154
  return;
158
155
  }
159
156
  return trimmedSrc;
@@ -40,16 +40,10 @@ export function splitEmailAddressList(value) {
40
40
  current = '';
41
41
  };
42
42
  for (const character of value) {
43
- if (consumeEscaped(character, state, append)) {
44
- continue;
45
- }
46
- if (beginEscape(character, state, append)) {
47
- continue;
48
- }
49
- if (toggleQuote(character, state, append)) {
50
- continue;
51
- }
52
- if (adjustAngleDepth(character, state, append)) {
43
+ if (consumeEscaped(character, state, append) ||
44
+ beginEscape(character, state, append) ||
45
+ toggleQuote(character, state, append) ||
46
+ adjustAngleDepth(character, state, append)) {
53
47
  continue;
54
48
  }
55
49
  if (isAddressSeparator(character, state)) {
@@ -125,16 +125,17 @@ export class File {
125
125
  this.handleChipSetChange = (event) => {
126
126
  event.stopPropagation();
127
127
  const file = event.detail.length === 0 ? event.detail[0] : null;
128
- if (!file) {
129
- // Removing the chip cancels any in-flight resize: drop the
130
- // transient so the chip disappears immediately, and the token
131
- // guard in `handleNewFiles` discards the resize result instead of
132
- // re-emitting the removed file once it finishes. Without this, a
133
- // removal during resize is swallowed, because `value` is already
134
- // `undefined` so the `@Watch('value')` clear never fires.
135
- this.resizingFile = undefined;
136
- this.change.emit(file);
128
+ if (file) {
129
+ return;
137
130
  }
131
+ // Removing the chip cancels any in-flight resize: drop the
132
+ // transient so the chip disappears immediately, and the token
133
+ // guard in `handleNewFiles` discards the resize result instead of
134
+ // re-emitting the removed file once it finishes. Without this, a
135
+ // removal during resize is swallowed, because `value` is already
136
+ // `undefined` so the `@Watch('value')` clear never fires.
137
+ this.resizingFile = undefined;
138
+ this.change.emit(file);
138
139
  };
139
140
  this.handleChipInteract = (event) => {
140
141
  this.preventAndStop(event);
@@ -153,7 +154,7 @@ export class File {
153
154
  this.resizingFile = undefined;
154
155
  }
155
156
  render() {
156
- return (h(Host, { key: '70793e09c1a1e4ac6021d4ac6c547d7405994584', "aria-busy": this.isBusy ? 'true' : 'false' }, h("limel-file-dropzone", { key: 'f6367155d37b4514d936a69cab2b9bc4450ff77a', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
157
+ return (h(Host, { key: 'dfaf1d7c9ddb1a8e960547db042402fa690dc829', "aria-busy": this.isBusy ? 'true' : 'false' }, h("limel-file-dropzone", { key: 'a3ebe9b925c2e13ad1b87aa3f3a948b05e6b7473', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
157
158
  }
158
159
  get statusText() {
159
160
  var _a, _b, _c;
@@ -90,7 +90,7 @@ export class FileDropzone {
90
90
  };
91
91
  }
92
92
  render() {
93
- return (h(Host, { key: '841fa3b9766a42bdf7ee7e5993aa69521f081272', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, h("slot", { key: 'f1cd970b1555fa013cdc8391f627e6ad28a2f176' }), this.renderOnDragLayout()));
93
+ return (h(Host, { key: 'e9f43878405c9d969b0825e55322ae95b8770db1', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, h("slot", { key: '39087bebe8f40c34b3905891d22c3f9a585e4824' }), this.renderOnDragLayout()));
94
94
  }
95
95
  static get is() { return "limel-file-dropzone"; }
96
96
  static get encapsulation() { return "shadow"; }
@@ -59,11 +59,12 @@ export class FileInput {
59
59
  };
60
60
  this.handleFileChange = (event) => {
61
61
  const files = [...this.fileInput.files];
62
- if (files.length > 0) {
63
- event.stopPropagation();
64
- this.filesSelected.emit(files.map(createFileInfo));
65
- this.fileInput.value = '';
62
+ if (files.length === 0) {
63
+ return;
66
64
  }
65
+ event.stopPropagation();
66
+ this.filesSelected.emit(files.map(createFileInfo));
67
+ this.fileInput.value = '';
67
68
  };
68
69
  }
69
70
  componentDidLoad() {
@@ -71,12 +72,10 @@ export class FileInput {
71
72
  this.fileInput = this.element.shadowRoot.getElementById(this.fileInputId);
72
73
  }
73
74
  render() {
74
- return (h(Host, { key: 'e802095d33209367010aca10267f66b924aba997', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, h("input", { key: 'a3a70866e1541303ad277dd3ec3d82a30e7b2c60', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), h("slot", { key: '8ad5e423a56d3b067b16f0cd208eac25989fa1e7' })));
75
+ return (h(Host, { key: '38213e8f3e58a565368415e61fce7fcc44975848', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, h("input", { key: '1f75283470841c3821f601959038c31c72322f57', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), h("slot", { key: '4509934962cbfddb994329102f80c4abe0879d63' })));
75
76
  }
76
77
  handleKeyDown(event) {
77
- if (event.code === 'Tab' ||
78
- event.code === 'Backspace' ||
79
- event.code === 'Enter') {
78
+ if (['Tab', 'Backspace', 'Enter'].includes(event.code)) {
80
79
  return;
81
80
  }
82
81
  event.preventDefault();
@@ -212,10 +212,11 @@ export class FileViewer {
212
212
  this.fileUrl = this.url;
213
213
  };
214
214
  this.handleToggleFullscreen = () => {
215
- if (this.fullscreen.isSupported()) {
216
- this.fullscreen.toggle();
217
- this.isFullscreen = !this.isFullscreen;
215
+ if (!this.fullscreen.isSupported()) {
216
+ return;
218
217
  }
218
+ this.fullscreen.toggle();
219
+ this.isFullscreen = !this.isFullscreen;
219
220
  };
220
221
  this.emitOnAction = (event) => {
221
222
  event.stopPropagation();
@@ -233,10 +234,11 @@ export class FileViewer {
233
234
  });
234
235
  }
235
236
  connectedCallback() {
236
- if (this.revokeAnimationFrame !== undefined) {
237
- cancelAnimationFrame(this.revokeAnimationFrame);
238
- this.revokeAnimationFrame = undefined;
237
+ if (this.revokeAnimationFrame === undefined) {
238
+ return;
239
239
  }
240
+ cancelAnimationFrame(this.revokeAnimationFrame);
241
+ this.revokeAnimationFrame = undefined;
240
242
  }
241
243
  async componentWillLoad() {
242
244
  this.fileType = detectExtension(this.filename, this.url);
@@ -274,10 +276,11 @@ export class FileViewer {
274
276
  return fileViewerFunction();
275
277
  }
276
278
  revokePdfBlobUrl() {
277
- if (this.pdfBlobUrl) {
278
- URL.revokeObjectURL(this.pdfBlobUrl);
279
- this.pdfBlobUrl = undefined;
279
+ if (!this.pdfBlobUrl) {
280
+ return;
280
281
  }
282
+ URL.revokeObjectURL(this.pdfBlobUrl);
283
+ this.pdfBlobUrl = undefined;
281
284
  }
282
285
  sanitizeUrl(url) {
283
286
  if (!(url === null || url === void 0 ? void 0 : url.trim())) {
@@ -31,7 +31,7 @@ export class FlexContainer {
31
31
  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');
32
32
  }
33
33
  render() {
34
- return h("slot", { key: 'e3af04f7e864ca3d2e35a26d1b1221774968a11e' });
34
+ return h("slot", { key: 'b198feb938d5eb26cf1f96aa6cbfd412c843a3b1' });
35
35
  }
36
36
  static get is() { return "limel-flex-container"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -173,13 +173,13 @@ export class SchemaField extends React.Component {
173
173
  }
174
174
  render() {
175
175
  var _a;
176
- const schema = this.props.schema;
177
176
  if ((_a = this.props.schema.lime) === null || _a === void 0 ? void 0 : _a.hidden) {
178
177
  return null;
179
178
  }
180
179
  if (hasCustomComponent(this.props.schema)) {
181
180
  return this.renderCustomComponent(this.props);
182
181
  }
182
+ const schema = this.props.schema;
183
183
  const fieldProps = Object.assign(Object.assign({}, this.props), { onChange: this.handleChange });
184
184
  if (this.props.schema.format === 'time') {
185
185
  fieldProps.uiSchema = Object.assign({ 'ui:widget': TimePicker }, fieldProps.uiSchema);
@@ -68,10 +68,7 @@ export class Form {
68
68
  this.initialize();
69
69
  }
70
70
  initialize() {
71
- if (this.initialized) {
72
- return;
73
- }
74
- if (!this.host.shadowRoot.querySelector('.root')) {
71
+ if (this.initialized || !this.host.shadowRoot.querySelector('.root')) {
75
72
  return;
76
73
  }
77
74
  this.initialized = true;
@@ -90,7 +87,7 @@ export class Form {
90
87
  this.initialized = false;
91
88
  }
92
89
  render() {
93
- return h("div", { key: '5d3f44861410db842a515bf6f28e0385aea101a5', class: "root" });
90
+ return h("div", { key: '843ccbe06e291ffa1958da88634f4aee41007f2b', class: "root" });
94
91
  }
95
92
  reactRender() {
96
93
  if (!this.root) {
@@ -603,16 +603,14 @@ export const nestedLayoutSchemaPathSchema = {
603
603
  };
604
604
  export const getConditionalCustomComponentSchema = (value) => ({
605
605
  type: 'object',
606
- properties: Object.assign({ trigger: { type: 'string', title: 'Trigger' } }, ((value === null || value === void 0 ? void 0 : value.trigger) === 'show'
607
- ? {
608
- color: {
609
- type: 'string',
610
- title: 'Color',
611
- default: 'rgb(0, 0, 0)',
612
- lime: { component: { name: 'limel-color-picker' } },
613
- },
614
- }
615
- : {})),
606
+ properties: Object.assign({ trigger: { type: 'string', title: 'Trigger' } }, ((value === null || value === void 0 ? void 0 : value.trigger) === 'show' && {
607
+ color: {
608
+ type: 'string',
609
+ title: 'Color',
610
+ default: 'rgb(0, 0, 0)',
611
+ lime: { component: { name: 'limel-color-picker' } },
612
+ },
613
+ })),
616
614
  });
617
615
  export const arrayItemWithEnumAndDefaultSchema = {
618
616
  type: 'object',
@@ -131,10 +131,7 @@ export class ArrayFieldTemplate extends React.Component {
131
131
  if (items.length === 0) {
132
132
  return [];
133
133
  }
134
- const byKey = new Map();
135
- for (const [index, item] of items.entries()) {
136
- byKey.set(index, item);
137
- }
134
+ const byKey = new Map(items.entries());
138
135
  const ordered = [];
139
136
  const used = new Set();
140
137
  for (const index of this.state.order) {
@@ -145,7 +142,7 @@ export class ArrayFieldTemplate extends React.Component {
145
142
  ordered.push(entry);
146
143
  used.add(index);
147
144
  }
148
- for (const [index, entry] of byKey.entries()) {
145
+ for (const [index, entry] of byKey) {
149
146
  if (!used.has(index)) {
150
147
  ordered.push(entry);
151
148
  }
@@ -250,7 +247,7 @@ export class ArrayFieldTemplate extends React.Component {
250
247
  }
251
248
  const target = this.dropElevationTarget;
252
249
  this.clearDropElevationTimer();
253
- this.dropElevationTimeout = globalThis.setTimeout(() => {
250
+ this.dropElevationTimeout = setTimeout(() => {
254
251
  target.classList.remove(DEFAULT_DROP_ELEVATION_CLASS);
255
252
  if (this.dropElevationTarget === target) {
256
253
  this.dropElevationTarget = undefined;
@@ -259,10 +256,11 @@ export class ArrayFieldTemplate extends React.Component {
259
256
  }, DROP_ELEVATION_DURATION);
260
257
  }
261
258
  clearDropElevationTimer() {
262
- if (this.dropElevationTimeout !== undefined) {
263
- clearTimeout(this.dropElevationTimeout);
264
- this.dropElevationTimeout = undefined;
259
+ if (this.dropElevationTimeout === undefined) {
260
+ return;
265
261
  }
262
+ clearTimeout(this.dropElevationTimeout);
263
+ this.dropElevationTimeout = undefined;
266
264
  }
267
265
  arraysEqual(a, b) {
268
266
  if (a.length !== b.length) {
@@ -36,26 +36,26 @@ export function renderDescription(description) {
36
36
  * @returns describing title of the data
37
37
  */
38
38
  export function findTitle(data, fieldSchema, formSchema) {
39
- if (!data) {
40
- return null;
41
- }
42
- if (Array.isArray(data) && isObjectType(fieldSchema.items)) {
43
- return findTitle(data[0], fieldSchema, formSchema);
44
- }
45
- if (Array.isArray(data) || typeof data !== 'object') {
46
- return findSchemaTitle(data, fieldSchema);
47
- }
48
- const subSchema = findSubSchema(fieldSchema, formSchema);
49
- data = sortDataByProperties(data, subSchema.properties);
50
- const firstEntry = findFirstEntry(data, subSchema);
51
- if (!firstEntry) {
52
- return null;
53
- }
54
- if (!subSchema.properties) {
55
- return null;
39
+ while (data) {
40
+ if (Array.isArray(data) &&
41
+ isObjectType(fieldSchema.items)) {
42
+ data = data[0];
43
+ continue;
44
+ }
45
+ if (Array.isArray(data) || typeof data !== 'object') {
46
+ return findSchemaTitle(data, fieldSchema);
47
+ }
48
+ const subSchema = findSubSchema(fieldSchema, formSchema);
49
+ data = sortDataByProperties(data, subSchema.properties);
50
+ const firstEntry = findFirstEntry(data, subSchema);
51
+ if (!firstEntry || !subSchema.properties) {
52
+ return null;
53
+ }
54
+ const [key, value] = firstEntry;
55
+ data = value;
56
+ fieldSchema = subSchema.properties[key];
56
57
  }
57
- const [key, value] = firstEntry;
58
- return findTitle(value, subSchema.properties[key], formSchema);
58
+ return null;
59
59
  }
60
60
  function sortDataByProperties(data, properties) {
61
61
  if (!properties || isEmpty(properties)) {
@@ -44,7 +44,7 @@ function getSchemaObjectPropertyPath(schema, fieldPathId) {
44
44
  var _a, _b;
45
45
  const refPrefixLength = 2;
46
46
  const matchAllForwardSlashes = /\//g;
47
- const rootPath = (_b = (_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.replace(matchAllForwardSlashes, '.').slice(refPrefixLength)) !== null && _b !== void 0 ? _b : '';
47
+ const rootPath = (_b = (_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.replaceAll(matchAllForwardSlashes, '.').slice(refPrefixLength)) !== null && _b !== void 0 ? _b : '';
48
48
  const subSchemaPath = fieldPathId.path
49
49
  .map((segment) => `.properties.${segment}`)
50
50
  .join('');
@@ -1,4 +1,4 @@
1
- import { isEmpty, capitalize } from "lodash-es";
1
+ import { isEmpty, isNil, capitalize } from "lodash-es";
2
2
  /**
3
3
  * Check whether a form field value is non-empty.
4
4
  * Treats `null`, `undefined`, `''`, empty arrays,
@@ -8,7 +8,7 @@ import { isEmpty, capitalize } from "lodash-es";
8
8
  * @returns `true` when the field holds meaningful data
9
9
  */
10
10
  export function hasValue(value) {
11
- if (value === null || value === undefined || value === '') {
11
+ if (isNil(value) || value === '') {
12
12
  return false;
13
13
  }
14
14
  if (Array.isArray(value)) {
@@ -3,5 +3,6 @@
3
3
  * @param data
4
4
  */
5
5
  export function isInteger(data) {
6
+ // eslint-disable-next-line unicorn/prefer-number-is-safe-integer -- integers beyond the safe range must still validate
6
7
  return Number.isInteger(Number(data));
7
8
  }
@@ -10,7 +10,7 @@ export class CodeEditor extends React.Component {
10
10
  const props = this.props;
11
11
  let value = '{}';
12
12
  try {
13
- value = JSON.stringify(props.formData, null, ' ');
13
+ value = JSON.stringify(props.formData, null, ' '.repeat(4));
14
14
  }
15
15
  catch (_a) {
16
16
  // N/A
@@ -85,16 +85,13 @@ function findFirstError(schema) {
85
85
  return errors[0];
86
86
  }
87
87
  }
88
- for (const key of Object.keys(schema)) {
89
- if (key === '__errors') {
88
+ for (const [key, nested] of Object.entries(schema)) {
89
+ if (key === '__errors' || !nested || typeof nested !== 'object') {
90
90
  continue;
91
91
  }
92
- const nested = schema[key];
93
- if (nested && typeof nested === 'object') {
94
- const found = findFirstError(nested);
95
- if (found) {
96
- return `${key}: ${found}`;
97
- }
92
+ const found = findFirstError(nested);
93
+ if (found) {
94
+ return `${key}: ${found}`;
98
95
  }
99
96
  }
100
97
  return undefined;
@@ -39,9 +39,7 @@ export class DatePicker extends React.Component {
39
39
  if (typeof this.props.value === 'string') {
40
40
  return new Date(this.props.value);
41
41
  }
42
- else {
43
- return this.props.value;
44
- }
42
+ return this.props.value;
45
43
  }
46
44
  handleChange(event) {
47
45
  const props = this.props;
@@ -12,7 +12,7 @@ export class Grid {
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 h("slot", { key: '7653aebec8f38322a0288de736b949447a3e22b5' });
15
+ return h("slot", { key: '4928fa4c63f2db778bde762470299c8bf05952b3' });
16
16
  }
17
17
  static get is() { return "limel-grid"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -61,7 +61,7 @@ export class Header {
61
61
  this.subheadingDivider = '·';
62
62
  }
63
63
  render() {
64
- return (h(Host, { key: 'e5656d606642cd3dac4346b7f71b54fd6b0dd239' }, h("div", { key: '1d505b7e4bb31d2b2998e65a199b5d677b625c63', class: "information" }, this.renderIcon(), h("div", { key: '4cd6a731b25671aae9ae9fc74b0dbae12f7e8795', class: "headings" }, h("h1", { key: 'd361b4c2b4edc68bf111d33ae866c9cc0be71dcf', class: "heading", title: this.heading }, this.heading), h("h2", { key: 'f1525d0e48b2b5674351ad22141f132f698247e0', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), h("slot", { key: '5e1ae3ea489e1d8b0ca5af6ab08576ca5181aa71', name: "actions" }, h("slot", { key: 'b00368d3a24cce8094b3aed0fcf078fba188fb22' }))));
64
+ return (h(Host, { key: '77afcbc01f9ba4c71ad2aec82114564de1cfd591' }, h("div", { key: 'd20b369bd1ae5e472afeee2b6f1bed0c17eacb87', class: "information" }, this.renderIcon(), h("div", { key: '91e5a5aea8fad80316b890e88594da6aa8183182', class: "headings" }, h("h1", { key: '4477c5c6a2f134e98c8aaa4e9716399a4496e09a', class: "heading", title: this.heading }, this.heading), h("h2", { key: 'd81bd39f801ade017cd84d308141041faad4e33b', class: "subheading", title: this.subheading }, this.subheading, this.renderSupportingText()))), h("slot", { key: '7f1e532fb88771ecd3ab52c5581528e3aa7a14e4', name: "actions" }, h("slot", { key: '5cafb4367e7e9fed6dc3bffb17b4a310daec0c6a' }))));
65
65
  }
66
66
  renderIcon() {
67
67
  var _a, _b, _c, _d, _e;
@@ -19,7 +19,7 @@ export class HelpContent {
19
19
  };
20
20
  }
21
21
  render() {
22
- return (h(Host, { key: '2de8ba5dca7939d6efa2f832e5d256f093cba17a' }, h("limel-markdown", { key: '09d7a84a578d3b6930ce299835f0769997d844fc', value: this.value }), this.renderReadMoreLink()));
22
+ return (h(Host, { key: '5c4eb2e9819635fb321c9544044521218677b2f6' }, h("limel-markdown", { key: 'bf231a4673cc49263838a41e0469636755df5772', value: this.value }), this.renderReadMoreLink()));
23
23
  }
24
24
  static get is() { return "limel-help-content"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -41,9 +41,9 @@ export class HelpComponent {
41
41
  };
42
42
  }
43
43
  render() {
44
- return (h(Host, { key: '34943e604a33b6f5f7e39b71d7427c733c826b4c' }, h("limel-popover", { key: '65f2e74895b4a118996181b1a9341ead9a6e53d8', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("button", { key: 'c0485465e33aa7643015f938ff567509a5f63fe4', slot: "trigger", type: "button", onClick: this.openPopover, class: {
44
+ return (h(Host, { key: 'ea89d810cf9e7406a4a299eb98d9470c758d82ec' }, h("limel-popover", { key: '3693e98650f4d94fef1abd8a033dac0cf12906d7', open: this.isOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("button", { key: '34db4bb7f2c61377b6068f14105d0e6a88fc827e', slot: "trigger", type: "button", onClick: this.openPopover, class: {
45
45
  'is-open': this.isOpen,
46
- } }, this.trigger), h("limel-help-content", { key: 'dc08d7b7d1638523664f5330d89c80773cb3b9a1', value: this.value, readMoreLink: this.readMoreLink }))));
46
+ } }, this.trigger), h("limel-help-content", { key: '5e50557a652e842bf9846738b1aae1df63d55755', value: this.value, readMoreLink: this.readMoreLink }))));
47
47
  }
48
48
  static get is() { return "limel-help"; }
49
49
  static get encapsulation() { return "shadow"; }
@@ -38,17 +38,17 @@ export class HelperLine {
38
38
  return (h("span", { class: "helper-text", id: this.helperTextId }, this.helperText));
39
39
  };
40
40
  this.renderCharacterCounter = () => {
41
- const counter = `${this.length} / ${this.maxLength}`;
42
41
  if (!this.maxLength) {
43
42
  return;
44
43
  }
44
+ const counter = `${this.length} / ${this.maxLength}`;
45
45
  return h("span", { class: "counter" }, counter);
46
46
  };
47
47
  }
48
48
  render() {
49
- return (h(Host, { key: '5ecd83d58e8412274b36def796d0a9c24b67e582', tabIndex: -1, class: {
49
+ return (h(Host, { key: '9fe6acba5a79d706deec8353cdb761565269ab0c', tabIndex: -1, class: {
50
50
  invalid: this.invalid,
51
- }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, h("div", { key: 'f10706f6e5f7be45da53a58a13b44a936eb091b4' }, this.renderHelperText(), this.renderCharacterCounter())));
51
+ }, style: this.hasContent() ? {} : { display: 'none' }, "aria-hidden": !this.hasContent() }, h("div", { key: '8cec25fd07c608ee5bbbd97af8d3276d124efa64' }, this.renderHelperText(), this.renderCharacterCounter())));
52
52
  }
53
53
  static get is() { return "limel-helper-line"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -32,7 +32,7 @@ export class Hotkey {
32
32
  .map((p) => p.ariaName)
33
33
  .filter(Boolean)
34
34
  .join(' ');
35
- return (h(Host, { key: '66cc252f09b89cee80c306fe99e78b089834ada1', "aria-label": ariaLabel || undefined }, displayParts.map(({ display, isGlyph }, index) => (h("kbd", { key: `${parts[index]}-${index}`, class: isGlyph ? 'is-glyph' : undefined }, h("span", null, display))))));
35
+ return (h(Host, { key: 'dd8bc8134560dae3014e6ab5ab6eadeaa0bb6a4e', "aria-label": ariaLabel || undefined }, displayParts.map(({ display, isGlyph }, index) => (h("kbd", { key: `${parts[index]}-${index}`, class: isGlyph ? 'is-glyph' : undefined }, h("span", null, display))))));
36
36
  }
37
37
  static get is() { return "limel-hotkey"; }
38
38
  static get encapsulation() { return "shadow"; }
@@ -19,7 +19,7 @@ export class Icon {
19
19
  this.loadIcon(this.name);
20
20
  }
21
21
  render() {
22
- return h("div", { key: '44c16b703c7f2b2a41404be1fc58acbb6b0d8a48', class: "container" });
22
+ return h("div", { key: '3e5dc80a0e19e21988169509b33685bdb3005f1d', class: "container" });
23
23
  }
24
24
  async loadIcon(name) {
25
25
  if (name === undefined || name === '') {
@@ -45,14 +45,15 @@ export class Icon {
45
45
  */
46
46
  renderSvg(svgData) {
47
47
  const container = this.host.shadowRoot.querySelector('div.container');
48
- if (container) {
49
- container.innerHTML = svgData;
50
- // On initial render, only override the SVG's class if the
51
- // consumer set `svgClass`. Otherwise leave the SVG's baked-in
52
- // class alone — that's the default state stateless icons rely on.
53
- if (this.svgClass !== undefined) {
54
- this.applySvgClass(this.svgClass);
55
- }
48
+ if (!container) {
49
+ return;
50
+ }
51
+ container.innerHTML = svgData;
52
+ // On initial render, only override the SVG's class if the
53
+ // consumer set `svgClass`. Otherwise leave the SVG's baked-in
54
+ // class alone — that's the default state stateless icons rely on.
55
+ if (this.svgClass !== undefined) {
56
+ this.applySvgClass(this.svgClass);
56
57
  }
57
58
  }
58
59
  applySvgClass(value) {
@@ -61,6 +62,7 @@ export class Icon {
61
62
  if (!svg) {
62
63
  return;
63
64
  }
65
+ // eslint-disable-next-line unicorn/prefer-toggle-attribute -- sets a string value, not a boolean attribute
64
66
  if (value === undefined) {
65
67
  svg.removeAttribute('class');
66
68
  }
@@ -52,7 +52,7 @@ export class IconButton {
52
52
  if (this.host.hasAttribute('tabindex')) {
53
53
  buttonAttributes.tabindex = this.host.getAttribute('tabindex');
54
54
  }
55
- return (h(Host, { key: '0000c389a37b92ed921b738b742aa27200c3871a', onClick: this.filterClickWhenDisabled }, h("button", Object.assign({ key: 'd729c33be5aa7523ddad551a06f7a54a59ee2230', "aria-label": this.label, disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
55
+ return (h(Host, { key: 'e2fa10697beccc59cb8f332695e445522391649d', onClick: this.filterClickWhenDisabled }, h("button", Object.assign({ key: '2dc00d1341e9a458f5a7d060abd777c29cd333e0', "aria-label": this.label, disabled: this.disabled, id: this.tooltipId }, buttonAttributes), this.renderIcon(), this.renderTooltip(this.tooltipId))));
56
56
  }
57
57
  renderIcon() {
58
58
  var _a, _b;