@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
@@ -5,20 +5,21 @@ export const detectTriggerRemoval = (transaction, activeTrigger, resetActiveTrig
5
5
  return false;
6
6
  }
7
7
  for (const step of transaction.steps) {
8
- if (step instanceof ReplaceStep) {
9
- const { from, to, slice } = step; // Access properties specific to ReplaceStep
10
- // Check if the step affects the trigger position
11
- if (from <= activeTrigger.position &&
12
- to >= activeTrigger.position) {
13
- const text = slice.content.textBetween(0, slice.content.size, '');
14
- // Check if the trigger character has been removed
15
- // `text` is the text after the step has been applied
16
- if (!text.includes(activeTrigger.character)) {
17
- resetActiveTrigger();
18
- sendTriggerEvent('triggerStop', view, contentConverter, activeTrigger, '');
19
- return true;
20
- }
21
- }
8
+ if (!(step instanceof ReplaceStep)) {
9
+ continue;
10
+ }
11
+ const { from, to, slice } = step; // Access properties specific to ReplaceStep
12
+ // Check if the step affects the trigger position
13
+ if (!(from <= activeTrigger.position && to >= activeTrigger.position)) {
14
+ continue;
15
+ }
16
+ const text = slice.content.textBetween(0, slice.content.size, '');
17
+ // Check if the trigger character has been removed
18
+ // `text` is the text after the step has been applied
19
+ if (!text.includes(activeTrigger.character)) {
20
+ resetActiveTrigger();
21
+ sendTriggerEvent('triggerStop', view, contentConverter, activeTrigger, '');
22
+ return true;
22
23
  }
23
24
  }
24
25
  return false;
@@ -91,7 +91,9 @@ export class ProsemirrorAdapter {
91
91
  .map(this.getTranslatedItem)
92
92
  .map((item) => {
93
93
  if (isItem(item)) {
94
- return Object.assign(Object.assign({}, item), { selected: activeTypes[item.value], disabled: !allowedTypes[item.value] });
94
+ return Object.assign(Object.assign({}, item), { selected: activeTypes[item.value],
95
+ // eslint-disable-next-line unicorn/no-computed-property-existence-check -- reads a boolean value, not key existence
96
+ disabled: !allowedTypes[item.value] });
95
97
  }
96
98
  return item;
97
99
  });
@@ -148,35 +150,38 @@ export class ProsemirrorAdapter {
148
150
  };
149
151
  this.handleFocus = () => {
150
152
  var _a;
151
- if (!this.disabled) {
152
- (_a = this.view) === null || _a === void 0 ? void 0 : _a.focus();
153
- // Workaround: On some focus interactions (especially clicking the first line and the last line),
154
- // ProseMirror does not dispatch a transaction or update the selection. This can cause
155
- // the cursor to fall back to the end of the document instead of placing it where the user clicked.
156
- //
157
- // To detect this, we wait one tick after focus. If no transaction has fired by then,
158
- // we assume the selection is unresolved and manually move the cursor to the last clicked position.
159
- //
160
- // The clicked position is only meaningful for the focus event that the
161
- // click itself triggered, so it is consumed here and cleared on blur.
162
- // Focus regained without a click (e.g. switching back to the window)
163
- // must leave the selection untouched.
164
- this.transactionFired = false;
165
- this.focusRestoreTimeout = setTimeout(() => {
166
- const clickedPos = this.lastClickedPos;
167
- this.lastClickedPos = null;
168
- if (!this.transactionFired &&
169
- clickedPos !== null &&
170
- clickedPos <= this.view.state.doc.content.size) {
171
- const { doc, tr } = this.view.state;
172
- const resolvedPos = doc.resolve(clickedPos);
173
- const selection = Selection.near(resolvedPos);
174
- tr.setMeta('pointer', true);
175
- this.view.dispatch(tr.setSelection(selection));
176
- }
177
- }, 0);
153
+ if (this.disabled) {
154
+ return;
178
155
  }
156
+ (_a = this.view) === null || _a === void 0 ? void 0 : _a.focus();
157
+ // Workaround: On some focus interactions (especially clicking the first line and the last line),
158
+ // ProseMirror does not dispatch a transaction or update the selection. This can cause
159
+ // the cursor to fall back to the end of the document instead of placing it where the user clicked.
160
+ //
161
+ // To detect this, we wait one tick after focus. If no transaction has fired by then,
162
+ // we assume the selection is unresolved and manually move the cursor to the last clicked position.
163
+ //
164
+ // The clicked position is only meaningful for the focus event that the
165
+ // click itself triggered, so it is consumed here and cleared on blur.
166
+ // Focus regained without a click (e.g. switching back to the window)
167
+ // must leave the selection untouched.
168
+ this.transactionFired = false;
169
+ this.focusRestoreTimeout = setTimeout(() => {
170
+ const clickedPos = this.lastClickedPos;
171
+ this.lastClickedPos = null;
172
+ if (this.transactionFired ||
173
+ clickedPos === null ||
174
+ clickedPos > this.view.state.doc.content.size) {
175
+ return;
176
+ }
177
+ const { doc, tr } = this.view.state;
178
+ const resolvedPos = doc.resolve(clickedPos);
179
+ const selection = Selection.near(resolvedPos);
180
+ tr.setMeta('pointer', true);
181
+ this.view.dispatch(tr.setSelection(selection));
182
+ }, 0);
179
183
  };
184
+ // eslint-disable-next-line unicorn/prefer-default-parameters -- a default parameter would not cover an empty string
180
185
  this.handleNewLinkSelection = (text, href) => {
181
186
  this.link.text = text;
182
187
  this.link.href = href || 'https://';
@@ -303,7 +308,7 @@ export class ProsemirrorAdapter {
303
308
  (_e = this.view) === null || _e === void 0 ? void 0 : _e.destroy();
304
309
  }
305
310
  render() {
306
- return (h(Host, { key: '19a2071a0e50b4c9e95006ae12e44ec14df7460b', onFocus: this.handleFocus }, h("div", { key: 'f1215347c7eaf79cd16c9219c124ace3ebb22fc7', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
311
+ return (h(Host, { key: '16ef71481dea1fcefa1735e5a6350f47bf1d78ca', onFocus: this.handleFocus }, h("div", { key: '3b6598d8efd561afb6191d3d650f3a32e86f6904', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
307
312
  }
308
313
  renderToolbar() {
309
314
  if (this.actionBarItems.length === 0 || this.ui === 'no-toolbar') {
@@ -422,17 +427,18 @@ export class ProsemirrorAdapter {
422
427
  }
423
428
  }
424
429
  metadataEmitter(metadata) {
425
- if (hasMetadataChanged(this.metadata, metadata)) {
426
- this.removeImagesFromCache(this.metadata, metadata);
427
- this.metadata = metadata;
428
- this.metadataChange.emit(metadata);
430
+ if (!hasMetadataChanged(this.metadata, metadata)) {
431
+ return;
429
432
  }
433
+ this.removeImagesFromCache(this.metadata, metadata);
434
+ this.metadata = metadata;
435
+ this.metadataChange.emit(metadata);
430
436
  }
431
437
  // When the deprecated metadata events are removed, this cache eviction
432
438
  // must be kept: re-derive the removed fileInfoIds from the node attrs so
433
439
  // pasted images still get evicted from `imageCache` when deleted.
434
440
  removeImagesFromCache(oldMetadata, newMetadata) {
435
- const removedImages = oldMetadata.images.filter((oldImage) => !newMetadata.images.some((newImage) => newImage.fileInfoId === oldImage.fileInfoId));
441
+ const removedImages = oldMetadata.images.filter((oldImage) => newMetadata.images.every((newImage) => newImage.fileInfoId !== oldImage.fileInfoId));
436
442
  for (const image of removedImages) {
437
443
  imageCache.delete(image.fileInfoId);
438
444
  this.imageRemoved.emit(image);
@@ -176,7 +176,7 @@ export class TextEditor {
176
176
  await ((_a = this.adapterElement) === null || _a === void 0 ? void 0 : _a.clear());
177
177
  }
178
178
  render() {
179
- return (h(Host, { key: '2e0b7080b8d75fc35a24a5da3bc6838da2637fc1' }, h("limel-notched-outline", { key: '2918c3a68d3ebc228ee1bbf7cced3df5278fa5cb', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
179
+ return (h(Host, { key: '67cb756a0010effb1b4cbfeeb56e50cd86cbfbe0' }, h("limel-notched-outline", { key: '9b3f5891318c69d557c0cb7af7d19d8f14e0ff9c', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
180
180
  }
181
181
  renderEditor() {
182
182
  if (this.readonly) {
@@ -103,7 +103,7 @@ function areFrequencyMapsEqual(map1, map2) {
103
103
  if (map1.size !== map2.size) {
104
104
  return false;
105
105
  }
106
- for (const [key, count] of map1.entries()) {
106
+ for (const [key, count] of map1) {
107
107
  if (map2.get(key) !== count) {
108
108
  return false;
109
109
  }
@@ -16,9 +16,9 @@ export const createNodeSpec = (config) => {
16
16
  tag: tag,
17
17
  getAttrs: (dom) => {
18
18
  const attributes = {};
19
- // eslint-disable-next-line unicorn/no-array-for-each
20
- config.attributes.forEach((attribute) => (attributes[attribute] =
21
- dom.getAttribute(attribute)));
19
+ for (const attribute of config.attributes) {
20
+ attributes[attribute] = dom.getAttribute(attribute);
21
+ }
22
22
  return attributes;
23
23
  },
24
24
  },
@@ -15,7 +15,7 @@ export class TooltipContent {
15
15
  const style = this.maxlength
16
16
  ? { '--tooltip-max-width-of-text': `${this.maxlength}ch` }
17
17
  : undefined;
18
- return (h(Host, { key: '2761aea2a0cc3ccc7796b7dab93f2375656603f4', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '2bfe8a9766ff7ab2b9a5211b08107b7f2f28ef7b', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
18
+ return (h(Host, { key: 'e8299e2c990753eafd08af063a7828a11ea77cec', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '634f141ede25c9a3faa7ca7ce4f79b59c3c7ec8d', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
19
19
  }
20
20
  renderHelperLabel() {
21
21
  if (!this.helperLabel) {
@@ -68,10 +68,10 @@ export class Tooltip {
68
68
  }
69
69
  render() {
70
70
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
71
- return (h("div", { key: 'cdc5602abcc2911c6429e386f37c6dc1e2100cd8', class: "trigger-anchor" }, h("limel-portal", { key: 'f61db13bb5bc3657e330c7475f0c7bd2e7eb9b2f', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
71
+ return (h("div", { key: '970ce406a2209065f744d124c28d486dfa169164', class: "trigger-anchor" }, h("limel-portal", { key: 'bfe825d0261a452c207077e8fe37ddce5b10d477', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
72
72
  'z-index': tooltipZIndex,
73
73
  'pointer-events': 'none',
74
- }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: 'f9acf5955b68639c3b56fba75977ddd783e97cd0', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
74
+ }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: '07003cc2b868b8320b97e4a75f3cb2e71b50efb9', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
75
75
  }
76
76
  setOwnerAriaDescribedby() {
77
77
  var _a;
@@ -10,6 +10,5 @@ function createIconCache() {
10
10
  return new InMemoryIconCache();
11
11
  }
12
12
  }
13
- export default (() => {
14
- return createIconCache();
15
- })();
13
+ const iconCache = createIconCache();
14
+ export default iconCache;
@@ -17,6 +17,7 @@ export class InMemoryIconCache {
17
17
  * @returns SVG markup
18
18
  */
19
19
  async get(name, path = '') {
20
+ // eslint-disable-next-line unicorn/no-computed-property-existence-check -- truthiness check, not existence: a falsy entry must be refetched
20
21
  if (!this.cache[name]) {
21
22
  this.cache[name] = await this.getIcon(name, path);
22
23
  }
@@ -27,6 +28,7 @@ export class InMemoryIconCache {
27
28
  */
28
29
  getIcon(name, path) {
29
30
  return new Promise((resolve) => {
31
+ // eslint-disable-next-line unicorn/no-computed-property-existence-check -- truthiness check, not existence: entries are reset to `null`
30
32
  if (!this.resolveFunctions[name]) {
31
33
  this.resolveFunctions[name] = [];
32
34
  this.fetchData(name, path);
@@ -45,6 +45,4 @@ export class Translations {
45
45
  }
46
46
  }
47
47
  const translations = new Translations();
48
- export default (() => {
49
- return translations;
50
- })();
48
+ export default translations;
@@ -87,10 +87,10 @@ Vous pouvez laisser les images bloquées (l'e-mail peut sembler incomplet) ou le
87
87
  'code-diff.table-label': 'Comparaison de code',
88
88
  'code-diff.no-differences': 'Aucune différence',
89
89
  'code-diff.no-differences-found': 'Aucune différence trouvée',
90
- 'code-diff.copy-old-version': 'Copier l\u2019ancienne version dans le presse-papiers',
90
+ 'code-diff.copy-old-version': 'Copier l\u{2019}ancienne version dans le presse-papiers',
91
91
  'code-diff.copied': 'Copié !',
92
92
  'code-diff.copied-to-clipboard': 'Copié dans le presse-papiers',
93
- 'code-diff.copy-change': 'Copier l\u2019ancienne version de cette modification',
93
+ 'code-diff.copy-change': 'Copier l\u{2019}ancienne version de cette modification',
94
94
  'code-diff.search': 'Rechercher dans les lignes supprimées',
95
95
  'code-diff.previous-match': 'Correspondance précédente',
96
96
  'code-diff.next-match': 'Correspondance suivante',
@@ -113,7 +113,7 @@ Vous pouvez laisser les images bloquées (l'e-mail peut sembler incomplet) ou le
113
113
  'code-diff.old-heading': 'Original',
114
114
  'code-diff.new-heading': 'Modifié',
115
115
  'code-diff.diff-summary': 'Diff : { parts }. Utilisez les touches fléchées pour naviguer.',
116
- 'profile-picture.remove': 'Supprimer l\u2019image sélectionnée',
116
+ 'profile-picture.remove': 'Supprimer l\u{2019}image sélectionnée',
117
117
  'profile-picture.unsupported-preview.title': "Format d'image non pris en charge",
118
118
  'profile-picture.unsupported-preview.description': "Nous ne pouvons pas afficher l'image sélectionnée dans ce navigateur. Veuillez sélectionner un autre fichier image.",
119
119
  'picker.results-matching': 'Résultats correspondant à « { query } »',
@@ -40,7 +40,7 @@ function evaluateAndMaybeStrip(el) {
40
40
  }
41
41
  function isInheritKeyword(value) {
42
42
  const v = value.trim().toLowerCase();
43
- return v === 'inherit' || v === 'currentcolor' || v === 'unset';
43
+ return ['inherit', 'currentcolor', 'unset'].includes(v);
44
44
  }
45
45
  function resolveBackground(start) {
46
46
  let current = start;
@@ -34,7 +34,7 @@ export function isTypeAccepted(file, accept) {
34
34
  return true;
35
35
  }
36
36
  if (acceptedType.endsWith('/*')) {
37
- const baseType = acceptedType.split('/')[0];
37
+ const baseType = acceptedType.split('/', 1)[0];
38
38
  return file.contentType.startsWith(`${baseType}/`);
39
39
  }
40
40
  if (acceptedType.startsWith('.')) {
@@ -18,10 +18,7 @@
18
18
  * @returns formatted size string
19
19
  */
20
20
  export function formatBytes(bytes, decimals = 1) {
21
- if (bytes == null || Number.isNaN(bytes)) {
22
- return '';
23
- }
24
- if (bytes < 0) {
21
+ if (bytes == null || Number.isNaN(bytes) || bytes < 0) {
25
22
  return '';
26
23
  }
27
24
  if (bytes === 0) {
@@ -36,6 +36,7 @@ const KEY_ALIASES = {
36
36
  right: 'arrowright',
37
37
  spacebar: 'space',
38
38
  };
39
+ // eslint-disable-next-line unicorn/prefer-default-parameters -- a default parameter would not cover `null`
39
40
  export const tokenizeHotkeyString = (hotkey) => {
40
41
  var _a;
41
42
  const raw = (hotkey !== null && hotkey !== void 0 ? hotkey : '').trim();
@@ -283,6 +283,7 @@ async function loadImageElement(file) {
283
283
  const img = new Image();
284
284
  img.decoding = 'sync';
285
285
  img.src = url;
286
+ // eslint-disable-next-line unicorn/prefer-await -- swallows the rejection inline; a try/catch would need an empty block
286
287
  await ((_a = img.decode) === null || _a === void 0 ? void 0 : _a.call(img).catch(() => undefined));
287
288
  if (!img.complete) {
288
289
  await new Promise((resolve, reject) => {
@@ -0,0 +1,144 @@
1
+ import { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, END, HOME, } from "./keycodes";
2
+ /**
3
+ * Returned when there is no item to move to.
4
+ */
5
+ export const NO_NAVIGATION_TARGET = -1;
6
+ const MOVES = {
7
+ horizontal: new Map([
8
+ [ARROW_LEFT, 'previous'],
9
+ [ARROW_RIGHT, 'next'],
10
+ [HOME, 'first'],
11
+ [END, 'last'],
12
+ ]),
13
+ vertical: new Map([
14
+ [ARROW_UP, 'previous'],
15
+ [ARROW_DOWN, 'next'],
16
+ [HOME, 'first'],
17
+ [END, 'last'],
18
+ ]),
19
+ };
20
+ /**
21
+ * Whether a keyboard event is one that moves between the items: an arrow key
22
+ * that goes along the orientation, or Home or End.
23
+ *
24
+ * A key that is pressed with Alt, Ctrl or Cmd is not, since the browser puts
25
+ * those to its own use, such as going back with Alt and the left arrow. Shift
26
+ * is allowed.
27
+ *
28
+ * When this returns `true`, the component should prevent the default action
29
+ * of the event, so that the page does not scroll. Also when there turns out to
30
+ * be nowhere to move to.
31
+ *
32
+ * @param event - the keyboard event to inspect
33
+ * @param options - the same options that are used to move between the items.
34
+ * Only the orientation matters here.
35
+ * @returns `true` when the event is for moving between the items
36
+ */
37
+ export function isNavigationKey(event, options) {
38
+ if (event.altKey || event.ctrlKey || event.metaKey) {
39
+ return false;
40
+ }
41
+ return MOVES[options.orientation].has(event.key);
42
+ }
43
+ /**
44
+ * Find the item that a key press moves to.
45
+ *
46
+ * - The arrow keys that go along the orientation move to the next and the
47
+ * previous item. At the ends they stop, or continue at the other end when
48
+ * `options.wrap` is set.
49
+ * - Home and End move to the first and the last item.
50
+ * - Items that cannot be moved to are skipped.
51
+ * - Without a current item, moving forward starts at the first item, and
52
+ * moving back at the last one.
53
+ *
54
+ * @param items - the items, in the order that they are laid out in. Only their
55
+ * number matters, unless `options.isDisabled` is given.
56
+ * @param key - the `key` of the keyboard event
57
+ * @param currentIndex - the index of the item to move from, usually the one
58
+ * that has focus. Anything outside `items` is treated as "no current item".
59
+ * @param options - which keys move, and how
60
+ * @returns the index of the item to move to. That is `currentIndex` itself
61
+ * when there is nowhere to go from there, since the end is reached and it does
62
+ * not wrap, or since it is the only item that can be moved to. It is
63
+ * `NO_NAVIGATION_TARGET` when the key does not move in this orientation, and
64
+ * when none of the items can be moved to.
65
+ */
66
+ export function findNavigationTarget(items, key, currentIndex, options) {
67
+ const move = MOVES[options.orientation].get(key);
68
+ const count = items.length;
69
+ const canMoveTo = createReachableTest(items, options);
70
+ const first = findReachable(count, 0, 1, false, canMoveTo);
71
+ if (!move || first === NO_NAVIGATION_TARGET) {
72
+ return NO_NAVIGATION_TARGET;
73
+ }
74
+ if (move === 'first') {
75
+ return first;
76
+ }
77
+ const last = findReachable(count, count - 1, -1, false, canMoveTo);
78
+ if (move === 'last') {
79
+ return last;
80
+ }
81
+ if (!isWithin(currentIndex, count)) {
82
+ return move === 'next' ? first : last;
83
+ }
84
+ const step = move === 'next' ? 1 : -1;
85
+ const target = findReachable(count, currentIndex + step, step, Boolean(options.wrap), canMoveTo);
86
+ return target === NO_NAVIGATION_TARGET ? currentIndex : target;
87
+ }
88
+ /**
89
+ * Find the item that should be in the tab order, which is the one that Tab
90
+ * lands on when it enters the group. The rest of the items are left out of the
91
+ * tab order, and are reached with the arrow keys.
92
+ *
93
+ * That is the preferred item, if it can be moved to. Otherwise the first item
94
+ * that can.
95
+ *
96
+ * @param items - the items, in the order that they are laid out in. Only their
97
+ * number matters, unless `options.isDisabled` is given.
98
+ * @param preferredIndex - the index of the item that should be in the tab
99
+ * order if possible. For a group with a selection that is the selected item,
100
+ * and otherwise the item that last had focus, which the component has to keep
101
+ * track of. Anything outside `items` means that there is no preference.
102
+ * @param options - the same options that are used to move between the items
103
+ * @returns the index of the item to put in the tab order, or
104
+ * `NO_NAVIGATION_TARGET` when none of the items can be moved to
105
+ */
106
+ export function findTabStop(items, preferredIndex, options) {
107
+ const count = items.length;
108
+ const canMoveTo = createReachableTest(items, options);
109
+ if (isWithin(preferredIndex, count) && canMoveTo(preferredIndex)) {
110
+ return preferredIndex;
111
+ }
112
+ return findReachable(count, 0, 1, false, canMoveTo);
113
+ }
114
+ function isWithin(index, count) {
115
+ return index >= 0 && index < count;
116
+ }
117
+ function createReachableTest(items, options) {
118
+ return (index) => { var _a; return !((_a = options === null || options === void 0 ? void 0 : options.isDisabled) === null || _a === void 0 ? void 0 : _a.call(options, items[index])); };
119
+ }
120
+ /**
121
+ * Look for an item that can be moved to, one item at a time.
122
+ *
123
+ * @param count - the number of items
124
+ * @param start - the index to start looking at
125
+ * @param step - the direction to look in, `1` for forward and `-1` for back
126
+ * @param wrap - whether to continue at the other end, instead of giving up at
127
+ * the end of the items. Every item is looked at once at most.
128
+ * @param canMoveTo - tells whether the item at an index can be moved to
129
+ * @returns the index of the first item that can be moved to, or
130
+ * `NO_NAVIGATION_TARGET` when there is none
131
+ */
132
+ function findReachable(count, start, step, wrap, canMoveTo) {
133
+ for (let distance = 0; distance < count; distance += 1) {
134
+ const position = start + step * distance;
135
+ if (!wrap && !isWithin(position, count)) {
136
+ break;
137
+ }
138
+ const index = ((position % count) + count) % count;
139
+ if (canMoveTo(index)) {
140
+ return index;
141
+ }
142
+ }
143
+ return NO_NAVIGATION_TARGET;
144
+ }
@@ -13,3 +13,5 @@ export const ARROW_UP = 'ArrowUp';
13
13
  export const ARROW_DOWN = 'ArrowDown';
14
14
  export const ARROW_LEFT = 'ArrowLeft';
15
15
  export const ARROW_RIGHT = 'ArrowRight';
16
+ export const HOME = 'Home';
17
+ export const END = 'End';
@@ -20,5 +20,5 @@ export function getPrimarySubtag(language) {
20
20
  if (typeof language !== 'string') {
21
21
  return '';
22
22
  }
23
- return language.toLowerCase().split('-')[0];
23
+ return language.toLowerCase().split('-', 1)[0];
24
24
  }
@@ -10,10 +10,11 @@ class EnterClickable {
10
10
  }
11
11
  };
12
12
  this.handleKeyUp = (event) => {
13
- if (event.key === 'Enter' && this.isActive) {
14
- this.isActive = false;
15
- this.hasJustReleasedEnter = true;
13
+ if (!(event.key === 'Enter' && this.isActive)) {
14
+ return;
16
15
  }
16
+ this.isActive = false;
17
+ this.hasJustReleasedEnter = true;
17
18
  };
18
19
  this.handleBlur = () => {
19
20
  this.isActive = false;
@@ -40,13 +41,17 @@ class EnterClickable {
40
41
  this.element.addEventListener('keydown', this.callbacks.keydownHandler);
41
42
  this.element.addEventListener('keyup', this.callbacks.keyupHandler);
42
43
  this.element.addEventListener('blur', this.callbacks.blurHandler);
43
- this.element.addEventListener('click', this.callbacks.clickHandler, true);
44
+ this.element.addEventListener('click', this.callbacks.clickHandler, {
45
+ capture: true,
46
+ });
44
47
  }
45
48
  disable() {
46
49
  this.element.removeEventListener('keydown', this.callbacks.keydownHandler);
47
50
  this.element.removeEventListener('keyup', this.callbacks.keyupHandler);
48
51
  this.element.removeEventListener('blur', this.callbacks.blurHandler);
49
- this.element.removeEventListener('click', this.callbacks.clickHandler, true);
52
+ this.element.removeEventListener('click', this.callbacks.clickHandler, {
53
+ capture: true,
54
+ });
50
55
  }
51
56
  }
52
57
  /**
@@ -69,11 +74,12 @@ class EnterClickable {
69
74
  * @param element - The clickable element
70
75
  */
71
76
  export function makeEnterClickable(element) {
72
- if (!eventHandlers.has(element)) {
73
- const enterClickable = new EnterClickable(element);
74
- enterClickable.enable();
75
- eventHandlers.set(element, enterClickable);
77
+ if (eventHandlers.has(element)) {
78
+ return;
76
79
  }
80
+ const enterClickable = new EnterClickable(element);
81
+ enterClickable.enable();
82
+ eventHandlers.set(element, enterClickable);
77
83
  }
78
84
  /**
79
85
  * Removes the keyboard-enter click override behavior from an element.
@@ -84,8 +90,9 @@ export function makeEnterClickable(element) {
84
90
  */
85
91
  export function removeEnterClickable(element) {
86
92
  const enterClickable = eventHandlers.get(element);
87
- if (enterClickable) {
88
- enterClickable.disable();
89
- eventHandlers.delete(element);
93
+ if (!enterClickable) {
94
+ return;
90
95
  }
96
+ enterClickable.disable();
97
+ eventHandlers.delete(element);
91
98
  }
@@ -1,6 +1,7 @@
1
1
  export const createRandomString = () => {
2
2
  var _a;
3
3
  if (!('crypto' in window) ||
4
+ // eslint-disable-next-line unicorn/no-optional-chaining-on-undeclared-variable -- `'crypto' in window` above already requires `window`; the `?.` guards a nullish `window.crypto`
4
5
  typeof ((_a = window.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) !== 'function') {
5
6
  return legacyCreateRandomString();
6
7
  }
@@ -18,10 +18,8 @@ import { h } from "@stencil/core";
18
18
  * merged with any consumer-supplied `class` in `props`
19
19
  */
20
20
  export function renderListComponent(component, extraClass) {
21
- if (!(component === null || component === void 0 ? void 0 : component.name)) {
22
- return;
23
- }
24
- if (!component.name.includes('-')) {
21
+ var _a;
22
+ if (!((_a = component === null || component === void 0 ? void 0 : component.name) === null || _a === void 0 ? void 0 : _a.includes('-'))) {
25
23
  return;
26
24
  }
27
25
  const Tag = component.name;
@@ -40,7 +40,7 @@ function evaluateAndMaybeStrip(el) {
40
40
  }
41
41
  function isInheritKeyword(value) {
42
42
  const v = value.trim().toLowerCase();
43
- return v === 'inherit' || v === 'currentcolor' || v === 'unset';
43
+ return ['inherit', 'currentcolor', 'unset'].includes(v);
44
44
  }
45
45
  function resolveBackground(start) {
46
46
  let current = start;
@@ -1,7 +1,6 @@
1
- import { h } from './index-Bnc9lzk2.js';
1
+ import { h } from './index-BU9IJqli.js';
2
2
 
3
3
  const CheckboxTemplate = (props) => {
4
- const inputProps = {};
5
4
  if (props.readonly) {
6
5
  let icon = 'minus';
7
6
  if (props.checked) {
@@ -15,6 +14,7 @@ const CheckboxTemplate = (props) => {
15
14
  h(HelperText, { text: props.helperText, helperTextId: props.helperTextId, invalid: props.invalid }),
16
15
  ];
17
16
  }
17
+ const inputProps = {};
18
18
  if (props.indeterminate) {
19
19
  inputProps['data-indeterminate'] = 'true';
20
20
  inputProps['aria-checked'] = 'mixed';
@@ -1,6 +1,6 @@
1
- import { _ as __extends, a as __assign, M as MDCFoundation, c as MDCComponent, b as __values, m as matches } from './ponyfill-ChRGk668.js';
2
- import { a as applyPassive, M as MDCRipple, b as MDCRippleFoundation } from './component-7QB0OUSF.js';
3
- import { a as MDCFloatingLabelFoundation, M as MDCFloatingLabel } from './component-D4qgwaTf.js';
1
+ import { _ as __extends, a as __assign, M as MDCFoundation, c as MDCComponent, b as __values, m as matches } from './ponyfill-6YuZiAPi.js';
2
+ import { a as applyPassive, M as MDCRipple, b as MDCRippleFoundation } from './component-CrjPGt1I.js';
3
+ import { a as MDCFloatingLabelFoundation, M as MDCFloatingLabel } from './component-CyFeUQ0l.js';
4
4
 
5
5
  /**
6
6
  * @license
@@ -1,4 +1,4 @@
1
- import { _ as __extends, a as __assign, b as __values, M as MDCFoundation, m as matches, c as MDCComponent } from './ponyfill-ChRGk668.js';
1
+ import { _ as __extends, a as __assign, b as __values, M as MDCFoundation, m as matches, c as MDCComponent } from './ponyfill-6YuZiAPi.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -1,4 +1,4 @@
1
- import { _ as __extends, a as __assign, M as MDCFoundation, c as MDCComponent, e as estimateScrollWidth } from './ponyfill-ChRGk668.js';
1
+ import { _ as __extends, a as __assign, M as MDCFoundation, c as MDCComponent, e as estimateScrollWidth } from './ponyfill-6YuZiAPi.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -1,4 +1,4 @@
1
- import { _ as __extends, a as __assign, M as MDCFoundation, m as matches, d as closest, c as MDCComponent } from './ponyfill-ChRGk668.js';
1
+ import { _ as __extends, a as __assign, M as MDCFoundation, m as matches, d as closest, c as MDCComponent } from './ponyfill-6YuZiAPi.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -35,7 +35,7 @@ function isTypeAccepted(file, accept) {
35
35
  return true;
36
36
  }
37
37
  if (acceptedType.endsWith('/*')) {
38
- const baseType = acceptedType.split('/')[0];
38
+ const baseType = acceptedType.split('/', 1)[0];
39
39
  return file.contentType.startsWith(`${baseType}/`);
40
40
  }
41
41
  if (acceptedType.startsWith('.')) {