@limetech/lime-elements 40.12.3 → 40.13.1

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 (352) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/drag-to-reorder-BP5YkPuu.js +3092 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -4
  6. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
  7. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +6 -6
  10. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  12. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-chip-set.cjs.entry.js +2 -2
  17. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  20. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  26. package/dist/cjs/{limel-scroller.cjs.entry.js → limel-drag-handle_2.cjs.entry.js} +40 -2
  27. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  28. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-file-viewer.cjs.entry.js +65 -56
  30. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  31. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  32. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-form.cjs.entry.js +539 -3171
  34. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  36. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  38. package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
  39. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  40. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  41. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  43. package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
  44. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  46. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-pagination-jump.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-pagination.cjs.entry.js +2 -2
  49. package/dist/cjs/limel-picker.cjs.entry.js +2 -2
  50. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  52. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  54. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  55. package/dist/cjs/limel-resize-handle.cjs.entry.js +43 -2
  56. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  57. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  58. package/dist/cjs/limel-side-panel.cjs.entry.js +16 -6
  59. package/dist/cjs/limel-slider.cjs.entry.js +4 -4
  60. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  61. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  62. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  63. package/dist/cjs/limel-tab-bar.cjs.entry.js +120 -16
  64. package/dist/cjs/limel-tab-panel.cjs.entry.js +7 -1
  65. package/dist/cjs/limel-table.cjs.entry.js +3 -3
  66. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  67. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  68. package/dist/cjs/loader.cjs.js +1 -1
  69. package/dist/cjs/{translations-DDyw5Zzz.js → translations-CLSqfR3x.js} +56 -0
  70. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  71. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  72. package/dist/collection/components/action-bar/action-bar.js +2 -2
  73. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  74. package/dist/collection/components/badge/badge.js +2 -2
  75. package/dist/collection/components/banner/banner.js +1 -1
  76. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  77. package/dist/collection/components/button/button.js +2 -2
  78. package/dist/collection/components/button-group/button-group.js +1 -1
  79. package/dist/collection/components/callout/callout.js +1 -1
  80. package/dist/collection/components/card/card.js +1 -1
  81. package/dist/collection/components/checkbox/checkbox.js +1 -1
  82. package/dist/collection/components/chip/chip.js +1 -1
  83. package/dist/collection/components/chip-set/chip-set.js +1 -1
  84. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  85. package/dist/collection/components/code-diff/code-diff.js +1 -1
  86. package/dist/collection/components/code-editor/code-editor.js +1 -1
  87. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  88. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  89. package/dist/collection/components/color-picker/color-picker.js +1 -1
  90. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  91. package/dist/collection/components/dialog/dialog.js +2 -2
  92. package/dist/collection/components/dock/dock.js +2 -2
  93. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  94. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  95. package/dist/collection/components/file/file.js +1 -1
  96. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  97. package/dist/collection/components/file-input/file-input.js +1 -1
  98. package/dist/collection/components/flex-container/flex-container.js +1 -1
  99. package/dist/collection/components/form/form.css +59 -0
  100. package/dist/collection/components/form/form.js +49 -2
  101. package/dist/collection/components/form/show-field.js +116 -0
  102. package/dist/collection/components/form/templates/array-field-collapsible-item.js +1 -0
  103. package/dist/collection/components/form/templates/array-field-item.js +5 -0
  104. package/dist/collection/components/form/templates/array-field.js +20 -158
  105. package/dist/collection/components/form/templates/field.js +17 -0
  106. package/dist/collection/components/grid/grid.js +1 -1
  107. package/dist/collection/components/header/header.js +1 -1
  108. package/dist/collection/components/help/help-content.js +1 -1
  109. package/dist/collection/components/help/help.js +2 -2
  110. package/dist/collection/components/helper-line/helper-line.js +2 -2
  111. package/dist/collection/components/hotkey/hotkey.js +1 -1
  112. package/dist/collection/components/icon/icon.js +1 -1
  113. package/dist/collection/components/icon-button/icon-button.js +1 -1
  114. package/dist/collection/components/info-tile/info-tile.js +2 -2
  115. package/dist/collection/components/input-field/input-field.js +1 -1
  116. package/dist/collection/components/list/list.js +1 -1
  117. package/dist/collection/components/list-item/list-item.js +2 -2
  118. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  119. package/dist/collection/components/markdown/markdown.js +1 -1
  120. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  121. package/dist/collection/components/menu/menu.js +1 -1
  122. package/dist/collection/components/menu-list/menu-list.js +1 -1
  123. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  124. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  125. package/dist/collection/components/pagination/pagination.js +1 -1
  126. package/dist/collection/components/picker/picker.js +1 -1
  127. package/dist/collection/components/popover/popover.js +1 -1
  128. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  129. package/dist/collection/components/portal/portal.js +1 -1
  130. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  131. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  132. package/dist/collection/components/resize-handle/resize-handle.css +35 -33
  133. package/dist/collection/components/resize-handle/resize-handle.js +86 -4
  134. package/dist/collection/components/scroller/scroller.js +2 -2
  135. package/dist/collection/components/select/select.js +1 -1
  136. package/dist/collection/components/shortcut/shortcut.js +1 -1
  137. package/dist/collection/components/side-panel/side-panel.js +44 -27
  138. package/dist/collection/components/slider/slider.js +3 -3
  139. package/dist/collection/components/snackbar/snackbar.js +2 -2
  140. package/dist/collection/components/spinner/spinner.js +1 -1
  141. package/dist/collection/components/split-button/split-button.js +2 -2
  142. package/dist/collection/components/switch/switch.js +1 -1
  143. package/dist/collection/components/tab-bar/tab-bar.css +68 -22
  144. package/dist/collection/components/tab-bar/tab-bar.js +131 -4
  145. package/dist/collection/components/tab-bar/tabs.js +23 -0
  146. package/dist/collection/components/tab-panel/tab-panel.js +54 -1
  147. package/dist/collection/components/table/table.js +2 -2
  148. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  149. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  150. package/dist/collection/components/text-editor/text-editor.js +1 -1
  151. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  152. package/dist/collection/components/tooltip/tooltip.js +2 -2
  153. package/dist/collection/translations/da.js +7 -0
  154. package/dist/collection/translations/de.js +7 -0
  155. package/dist/collection/translations/en.js +7 -0
  156. package/dist/collection/translations/fi.js +7 -0
  157. package/dist/collection/translations/fr.js +7 -0
  158. package/dist/collection/translations/nl.js +7 -0
  159. package/dist/collection/translations/no.js +7 -0
  160. package/dist/collection/translations/sv.js +7 -0
  161. package/dist/collection/util/drag-to-reorder.js +116 -0
  162. package/dist/esm/{_baseForOwn-D5j7fHlv.js → _baseForOwn-vKFWmmaS.js} +1 -1
  163. package/dist/esm/{_baseIsEqual-CyF4P8uM.js → _baseIsEqual-B_JRErB0.js} +1 -1
  164. package/dist/esm/{_baseIteratee-CpbczHY1.js → _baseIteratee-CVz7aes3.js} +1 -1
  165. package/dist/esm/{_baseSet-Cw2IE6ZF.js → _baseSet-BUAq8NGm.js} +1 -1
  166. package/dist/esm/{cloneDeep-DAbOtbs8.js → cloneDeep-Bcll-3f8.js} +1 -1
  167. package/dist/esm/drag-to-reorder-BXmXIwCa.js +3086 -0
  168. package/dist/esm/{isEqual-CE83yS8T.js → isEqual-C-pK6AAU.js} +1 -1
  169. package/dist/esm/lime-elements.js +1 -1
  170. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  171. package/dist/esm/limel-action-bar_3.entry.js +4 -4
  172. package/dist/esm/limel-ai-avatar.entry.js +2 -2
  173. package/dist/esm/limel-badge.entry.js +2 -2
  174. package/dist/esm/limel-banner.entry.js +1 -1
  175. package/dist/esm/limel-breadcrumbs_6.entry.js +6 -6
  176. package/dist/esm/limel-button-group.entry.js +1 -1
  177. package/dist/esm/limel-button.entry.js +2 -2
  178. package/dist/esm/limel-callout.entry.js +2 -2
  179. package/dist/esm/limel-card.entry.js +1 -1
  180. package/dist/esm/limel-chart.entry.js +1 -1
  181. package/dist/esm/limel-checkbox.entry.js +1 -1
  182. package/dist/esm/limel-chip-set.entry.js +4 -4
  183. package/dist/esm/limel-chip_2.entry.js +2 -2
  184. package/dist/esm/limel-circular-progress.entry.js +1 -1
  185. package/dist/esm/limel-code-diff.entry.js +2 -2
  186. package/dist/esm/limel-code-editor.entry.js +2 -2
  187. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  188. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  189. package/dist/esm/limel-color-picker.entry.js +1 -1
  190. package/dist/esm/limel-dialog.entry.js +4 -4
  191. package/dist/esm/limel-dock.entry.js +3 -3
  192. package/dist/esm/{limel-scroller.entry.js → limel-drag-handle_2.entry.js} +40 -3
  193. package/dist/esm/limel-email-viewer.entry.js +2 -2
  194. package/dist/esm/limel-file-dropzone_2.entry.js +5 -5
  195. package/dist/esm/limel-file-viewer.entry.js +65 -56
  196. package/dist/esm/limel-file.entry.js +2 -2
  197. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  198. package/dist/esm/limel-flex-container.entry.js +1 -1
  199. package/dist/esm/limel-form.entry.js +536 -3168
  200. package/dist/esm/limel-grid.entry.js +1 -1
  201. package/dist/esm/limel-header.entry.js +1 -1
  202. package/dist/esm/limel-help-content.entry.js +1 -1
  203. package/dist/esm/limel-help.entry.js +2 -2
  204. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  205. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  206. package/dist/esm/limel-icon-button.entry.js +1 -1
  207. package/dist/esm/limel-icon.entry.js +1 -1
  208. package/dist/esm/limel-info-tile.entry.js +2 -2
  209. package/dist/esm/limel-list-item.entry.js +3 -3
  210. package/dist/esm/limel-markdown.entry.js +1 -1
  211. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  212. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  213. package/dist/esm/limel-pagination-jump.entry.js +1 -1
  214. package/dist/esm/limel-pagination.entry.js +2 -2
  215. package/dist/esm/limel-picker.entry.js +2 -2
  216. package/dist/esm/limel-popover_2.entry.js +2 -2
  217. package/dist/esm/limel-profile-picture.entry.js +1 -1
  218. package/dist/esm/limel-prosemirror-adapter.entry.js +5 -5
  219. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  220. package/dist/esm/limel-radio-button.entry.js +2 -2
  221. package/dist/esm/limel-resize-handle.entry.js +43 -2
  222. package/dist/esm/limel-select.entry.js +1 -1
  223. package/dist/esm/limel-shortcut.entry.js +1 -1
  224. package/dist/esm/limel-side-panel.entry.js +16 -6
  225. package/dist/esm/limel-slider.entry.js +4 -4
  226. package/dist/esm/limel-snackbar.entry.js +3 -3
  227. package/dist/esm/limel-split-button.entry.js +2 -2
  228. package/dist/esm/limel-switch.entry.js +1 -1
  229. package/dist/esm/limel-tab-bar.entry.js +117 -13
  230. package/dist/esm/limel-tab-panel.entry.js +7 -1
  231. package/dist/esm/limel-table.entry.js +7 -7
  232. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  233. package/dist/esm/limel-text-editor.entry.js +1 -1
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{translations-UrIr-5_D.js → translations-Drl5LNAD.js} +56 -0
  236. package/dist/lime-elements/lime-elements.esm.js +1 -1
  237. package/dist/lime-elements/{p-35bc5ed2.entry.js → p-01de145c.entry.js} +1 -1
  238. package/dist/lime-elements/{p-3ee121fa.entry.js → p-026eed2d.entry.js} +1 -1
  239. package/dist/lime-elements/{p-9ff6a455.entry.js → p-068b141b.entry.js} +1 -1
  240. package/dist/lime-elements/{p-9168793f.entry.js → p-09f8f883.entry.js} +1 -1
  241. package/dist/lime-elements/p-1066a057.entry.js +1 -0
  242. package/dist/lime-elements/{p-95322502.entry.js → p-1663fa9d.entry.js} +1 -1
  243. package/dist/lime-elements/{p-def7b38f.entry.js → p-17aa9235.entry.js} +1 -1
  244. package/dist/lime-elements/{p-910807cb.entry.js → p-19426c76.entry.js} +1 -1
  245. package/dist/lime-elements/{p-622660dd.entry.js → p-1d6014ed.entry.js} +1 -1
  246. package/dist/lime-elements/p-2370ff51.entry.js +1 -0
  247. package/dist/lime-elements/{p-0f18981d.entry.js → p-242f1032.entry.js} +1 -1
  248. package/dist/lime-elements/{p-828558cf.entry.js → p-27d375f3.entry.js} +1 -1
  249. package/dist/lime-elements/{p-2ba9d62f.entry.js → p-300f80e7.entry.js} +1 -1
  250. package/dist/lime-elements/{p-9ca18ba5.entry.js → p-3b4f6329.entry.js} +1 -1
  251. package/dist/lime-elements/{p-2528f75e.entry.js → p-3de45ea6.entry.js} +2 -2
  252. package/dist/lime-elements/{p-675a7469.entry.js → p-3f447d22.entry.js} +1 -1
  253. package/dist/lime-elements/{p-780dae0b.entry.js → p-3fa66fb1.entry.js} +1 -1
  254. package/dist/lime-elements/{p-09390c6a.entry.js → p-41172b62.entry.js} +1 -1
  255. package/dist/lime-elements/{p-d5144955.entry.js → p-41fb6e88.entry.js} +1 -1
  256. package/dist/lime-elements/{p-f4c9940e.entry.js → p-44ec1f22.entry.js} +1 -1
  257. package/dist/lime-elements/{p-268b4da1.entry.js → p-4a272ac2.entry.js} +1 -1
  258. package/dist/lime-elements/{p-e25bfb2c.entry.js → p-4a381bc6.entry.js} +1 -1
  259. package/dist/lime-elements/p-56fe13ef.entry.js +1 -0
  260. package/dist/lime-elements/p-5d623004.entry.js +1 -0
  261. package/dist/lime-elements/{p-8a59698f.entry.js → p-5ea07cbe.entry.js} +1 -1
  262. package/dist/lime-elements/p-600466a9.entry.js +1 -0
  263. package/dist/lime-elements/{p-657bfa36.entry.js → p-62b6e235.entry.js} +1 -1
  264. package/dist/lime-elements/p-64540beb.entry.js +1 -0
  265. package/dist/lime-elements/{p-1020ca20.entry.js → p-674680f9.entry.js} +1 -1
  266. package/dist/lime-elements/{p-d79d777e.entry.js → p-67536ac3.entry.js} +1 -1
  267. package/dist/lime-elements/{p-dd075353.entry.js → p-6770cf06.entry.js} +1 -1
  268. package/dist/lime-elements/{p-887eea11.entry.js → p-7375fac2.entry.js} +1 -1
  269. package/dist/lime-elements/{p-fb15f608.entry.js → p-7829198d.entry.js} +1 -1
  270. package/dist/lime-elements/{p-abed5afd.entry.js → p-82672504.entry.js} +1 -1
  271. package/dist/lime-elements/{p-24e5d420.entry.js → p-8339d921.entry.js} +1 -1
  272. package/dist/lime-elements/{p-33ed0c68.entry.js → p-87c9f4de.entry.js} +1 -1
  273. package/dist/lime-elements/{p-7a290372.entry.js → p-89316964.entry.js} +1 -1
  274. package/dist/lime-elements/{p-527e9c95.entry.js → p-8a9361a2.entry.js} +1 -1
  275. package/dist/lime-elements/{p-46bf8b22.entry.js → p-8e78fd4f.entry.js} +1 -1
  276. package/dist/lime-elements/{p-db1f9eba.entry.js → p-8f133cd6.entry.js} +1 -1
  277. package/dist/lime-elements/{p-ff4a8b89.entry.js → p-90198515.entry.js} +1 -1
  278. package/dist/lime-elements/{p-236743f1.entry.js → p-95ca7426.entry.js} +1 -1
  279. package/dist/lime-elements/{p-55b56742.entry.js → p-9aa921a2.entry.js} +1 -1
  280. package/dist/lime-elements/{p-540b2b24.entry.js → p-9bbf2612.entry.js} +1 -1
  281. package/dist/lime-elements/{p-a449ca04.entry.js → p-9d354eca.entry.js} +1 -1
  282. package/dist/lime-elements/{p-68542e00.entry.js → p-9e9187ce.entry.js} +1 -1
  283. package/dist/lime-elements/p-B26k4gw8.js +1 -0
  284. package/dist/lime-elements/p-BAqAt5It.js +1 -0
  285. package/dist/lime-elements/p-Cu9Ji1iJ.js +1 -0
  286. package/dist/lime-elements/{p-BY5NjPj8.js → p-D9Ezd43A.js} +1 -1
  287. package/dist/lime-elements/{p-nVemxylR.js → p-DFu1q54T.js} +1 -1
  288. package/dist/lime-elements/p-DdnBHYb-.js +7 -0
  289. package/dist/lime-elements/{p-B6-3WXAv.js → p-DeIIlp6m.js} +1 -1
  290. package/dist/lime-elements/p-Dq0uNStc.js +1 -0
  291. package/dist/lime-elements/{p-4a7df81a.entry.js → p-aac603af.entry.js} +1 -1
  292. package/dist/lime-elements/{p-5473eb74.entry.js → p-aee75ad1.entry.js} +1 -1
  293. package/dist/lime-elements/{p-4882acaa.entry.js → p-afbe54e6.entry.js} +1 -1
  294. package/dist/lime-elements/{p-a78aaf37.entry.js → p-b5ebcbfc.entry.js} +1 -1
  295. package/dist/lime-elements/{p-07916acc.entry.js → p-be8950a6.entry.js} +2 -2
  296. package/dist/lime-elements/p-c8cb4912.entry.js +16 -0
  297. package/dist/lime-elements/{p-de4d261a.entry.js → p-dd065596.entry.js} +1 -1
  298. package/dist/lime-elements/{p-0c2ce99b.entry.js → p-ddabfac0.entry.js} +1 -1
  299. package/dist/lime-elements/{p-d3475514.entry.js → p-de3cf7d8.entry.js} +1 -1
  300. package/dist/lime-elements/{p-458c131f.entry.js → p-e13e0001.entry.js} +2 -2
  301. package/dist/lime-elements/p-e2971111.entry.js +1 -0
  302. package/dist/lime-elements/{p-ecded772.entry.js → p-e332bb9b.entry.js} +1 -1
  303. package/dist/lime-elements/{p-54631dbf.entry.js → p-e50acec1.entry.js} +1 -1
  304. package/dist/lime-elements/{p-074275f4.entry.js → p-e9b1e0bd.entry.js} +1 -1
  305. package/dist/lime-elements/p-ec531ecb.entry.js +1 -0
  306. package/dist/lime-elements/{p-90286e5c.entry.js → p-f0bf3fd1.entry.js} +1 -1
  307. package/dist/lime-elements/p-f1ac7608.entry.js +1 -0
  308. package/dist/lime-elements/{p-c12fbc91.entry.js → p-f455150b.entry.js} +1 -1
  309. package/dist/types/components/form/form.d.ts +15 -0
  310. package/dist/types/components/form/show-field.d.ts +9 -0
  311. package/dist/types/components/form/templates/array-context.d.ts +4 -0
  312. package/dist/types/components/form/templates/array-field-collapsible-item.d.ts +5 -0
  313. package/dist/types/components/form/templates/array-field.d.ts +3 -13
  314. package/dist/types/components/form/templates/field.d.ts +1 -0
  315. package/dist/types/components/form/templates/object-field.d.ts +2 -2
  316. package/dist/types/components/resize-handle/resize-handle.d.ts +31 -2
  317. package/dist/types/components/side-panel/side-panel.d.ts +11 -4
  318. package/dist/types/components/tab-bar/tab-bar.d.ts +25 -0
  319. package/dist/types/components/tab-bar/tab.types.d.ts +18 -0
  320. package/dist/types/components/tab-bar/tabs.d.ts +12 -1
  321. package/dist/types/components/tab-panel/tab-panel.d.ts +18 -1
  322. package/dist/types/components.d.ts +143 -18
  323. package/dist/types/translations/da.d.ts +7 -0
  324. package/dist/types/translations/de.d.ts +7 -0
  325. package/dist/types/translations/en.d.ts +7 -0
  326. package/dist/types/translations/fi.d.ts +7 -0
  327. package/dist/types/translations/fr.d.ts +7 -0
  328. package/dist/types/translations/nl.d.ts +7 -0
  329. package/dist/types/translations/no.d.ts +7 -0
  330. package/dist/types/translations/sv.d.ts +7 -0
  331. package/dist/types/util/drag-to-reorder.d.ts +65 -0
  332. package/package.json +4 -4
  333. package/dist/cjs/isArrayLikeObject-U2Ddbw4n.js +0 -326
  334. package/dist/cjs/limel-drag-handle.cjs.entry.js +0 -42
  335. package/dist/esm/isArrayLikeObject-CJB8HbtH.js +0 -321
  336. package/dist/esm/limel-drag-handle.entry.js +0 -40
  337. package/dist/lime-elements/p-26813b2c.entry.js +0 -1
  338. package/dist/lime-elements/p-49eb2f64.entry.js +0 -13
  339. package/dist/lime-elements/p-4f58c6b3.entry.js +0 -1
  340. package/dist/lime-elements/p-646731b6.entry.js +0 -1
  341. package/dist/lime-elements/p-8d567e42.entry.js +0 -1
  342. package/dist/lime-elements/p-9b384d62.entry.js +0 -1
  343. package/dist/lime-elements/p-BQeIv4aA.js +0 -1
  344. package/dist/lime-elements/p-COdirXg1.js +0 -1
  345. package/dist/lime-elements/p-ORUNaKm-.js +0 -1
  346. package/dist/lime-elements/p-a317f2fa.entry.js +0 -1
  347. package/dist/lime-elements/p-a5246373.entry.js +0 -1
  348. package/dist/lime-elements/p-b609552e.entry.js +0 -1
  349. package/dist/lime-elements/p-bf849dc9.entry.js +0 -1
  350. package/dist/lime-elements/p-d7e5a4a7.entry.js +0 -1
  351. package/dist/lime-elements/p-pk5KIdKH.js +0 -1
  352. package/dist/lime-elements/p-w3yKYfBQ.js +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-DDyw5Zzz.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
5
  require('./language-v-MMS6ym.js');
6
6
 
7
7
  const dockCss = () => `@charset "UTF-8";button.expand-shrink{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;box-sizing:border-box;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}button.expand-shrink:hover,button.expand-shrink:focus,button.expand-shrink:focus-visible{will-change:color, background-color, box-shadow, transform}button.expand-shrink:hover,button.expand-shrink:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}button.expand-shrink:hover{box-shadow:var(--button-shadow-hovered)}button.expand-shrink:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.expand-shrink:hover,button.expand-shrink:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.expand-shrink:focus{outline:none}button.expand-shrink:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.expand-shrink{display:flex;justify-content:center;align-items:center;height:var(--dock-expand-shrink-button-height);padding:0 0.5rem;margin:var(--limel-dock-padding);border-radius:0.375rem}button.expand-shrink.expanded{justify-content:flex-end}button.expand-shrink.expanded limel-icon{transform:rotateY(180deg)}button.expand-shrink limel-icon{width:calc(var(--dock-expand-shrink-button-height) - 0.25rem);color:var(--dock-item-icon-color, var(--limel-dock-item-text-color))}:host(limel-dock){--badge-background-color:rgb(var(--color-red-default));--badge-text-color:rgb(var(--color-white));--dock-item-height:2.75rem;--limel-dock-padding:0.25rem;--dock-expand-shrink-button-height:1rem;--limel-dock-item-text-color:var( --dock-item-text-color, rgb(var(--contrast-1100)) );--limel-dock-item-text-color--selected:var( --dock-item-text-color--selected, rgb(var(--contrast-1300)) );isolation:isolate;position:relative;box-sizing:border-box;display:inline-flex;flex-direction:column;background-color:var(--dock-background-color, rgb(var(--contrast-100)));box-shadow:var(--shadow-depth-8);padding-top:var(--dock-padding-top);padding-right:var(--dock-padding-right);padding-bottom:var(--dock-padding-bottom);padding-left:var(--dock-padding-left)}:host(limel-dock:not(.has-mobile-layout)){height:100%;width:calc(var(--limel-dock-padding) * 2 + var(--dock-item-height) + var(--dock-padding-left, 0px) + var(--dock-padding-right, 0px))}:host(limel-dock:not(.has-mobile-layout)) nav{padding-bottom:calc(var(--limel-dock-padding) + 0.25rem)}:host(limel-dock.expanded:not(.has-mobile-layout)){width:calc(var(--dock-expanded-max-width, 10rem) + var(--dock-padding-left, 0px) + var(--dock-padding-right, 0px))}.footer-separator{margin-top:auto;justify-self:flex-end}nav{box-sizing:border-box;display:inline-flex;flex-direction:column;gap:0.375rem;flex-grow:1;padding:var(--limel-dock-padding);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}nav::-webkit-scrollbar{display:none}:host(limel-dock.has-mobile-layout) nav{justify-content:space-between;flex-direction:row}limel-dock-button:first-of-type{--limel-custom-home-icon-enabler:var(--crm-custom-home-icon-enabler);--limel-custom-home-icon:var(--crm-custom-home-icon)}`;
@@ -97,11 +97,11 @@ const Dock = class {
97
97
  this.resizeObserver.disconnect();
98
98
  }
99
99
  render() {
100
- return (index.h(index.Host, { key: '42483e781906b34b452ce608280a4c9413c7ef8b', class: {
100
+ return (index.h(index.Host, { key: '59f51282a849383ecc23d3699ab20d9eadef800a', class: {
101
101
  dock: true,
102
102
  expanded: this.expanded,
103
103
  'has-mobile-layout': this.useMobileLayout,
104
- } }, index.h("nav", { key: 'fe46daba5b59ad2103b543f7bc07238c7e1bcc90', "aria-label": this.accessibleLabel }, this.dockItems.map(this.renderDockItem), this.renderSeparator(), this.dockFooterItems.map(this.renderDockItem)), this.renderExpandShrinkToggle()));
104
+ } }, index.h("nav", { key: 'c60abf3144c58aac33e321548b3167387f1bc2a9', "aria-label": this.accessibleLabel }, this.dockItems.map(this.renderDockItem), this.renderSeparator(), this.dockFooterItems.map(this.renderDockItem)), this.renderExpandShrinkToggle()));
105
105
  }
106
106
  renderExpandShrinkToggle() {
107
107
  if (this.useMobileLayout || !this.allowResize) {
@@ -1,6 +1,43 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
+ require('./language-v-MMS6ym.js');
6
+
7
+ const dragHandleCss = () => `@charset "UTF-8";limel-drag-handle{display:inline-flex;align-items:center;justify-content:center}button.limel-drag-handle{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit}button.limel-drag-handle:focus{outline:none}button.limel-drag-handle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.limel-drag-handle{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}button.limel-drag-handle:hover,button.limel-drag-handle:focus,button.limel-drag-handle:focus-visible{will-change:color, background-color, box-shadow, transform}button.limel-drag-handle:hover,button.limel-drag-handle:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--mdc-theme-primary);background-color:transparent}button.limel-drag-handle:hover{box-shadow:var(--button-shadow-hovered)}button.limel-drag-handle:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.limel-drag-handle:hover,button.limel-drag-handle:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.limel-drag-handle{touch-action:none;cursor:grab}button.limel-drag-handle:active{cursor:grabbing}button.limel-drag-handle:active,button.limel-drag-handle:hover{box-shadow:none !important}button.limel-drag-handle{display:inline-flex;align-items:center;justify-content:center;border-radius:0.4rem;padding:0.5rem;max-height:2.25rem;max-width:2.25rem;color:rgb(var(--contrast-900))}button.limel-drag-handle .drag-icon{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.2rem}limel-drag-handle[drag-direction=horizontal] button.limel-drag-handle .drag-icon{grid-template-columns:1fr 1fr}button.limel-drag-handle .drag-icon div{transition:transform 0.2s ease, background-color 0.2s ease;height:0.125rem;width:0.125rem;border-radius:1rem;background-color:currentColor;transform:scale(1)}.is-being-dragged button.limel-drag-handle .drag-icon div,button.limel-drag-handle:active .drag-icon div,button.limel-drag-handle:focus .drag-icon div,button.limel-drag-handle:hover .drag-icon div,button.limel-drag-handle:focus-visible .drag-icon div{background-color:var(--mdc-theme-primary);transform:scale(1.5)}`;
8
+
9
+ const DragHandleComponent = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ /**
13
+ * The direction in which the drag handle can be used to reorder items.
14
+ */
15
+ this.dragDirection = 'vertical';
16
+ /**
17
+ * The preferred direction for the tooltip to open.
18
+ * Defaults to 'left', as our recommended placement for a drag handle
19
+ * in the UI is on the far right side of draggable elements.
20
+ */
21
+ this.tooltipOpenDirection = 'left';
22
+ /**
23
+ * Language to use for translations.
24
+ */
25
+ this.language = 'en';
26
+ this.dragHandleId = 'drag-handle-' + crypto.randomUUID();
27
+ this.handleClick = (event) => {
28
+ // Prevent bubbling so the parent item does not treat the pointer click as
29
+ // a toggle or reorder action.
30
+ event.preventDefault();
31
+ event.stopPropagation();
32
+ };
33
+ }
34
+ render() {
35
+ const tooltipLabel = translations.translations.get('drag-handle.drag-to-reorder', this.language);
36
+ const ariaLabel = translations.translations.get('drag-handle.drag-handle', this.language);
37
+ return (index.h(index.Host, { key: 'c88e3c81d5c24052b01bb44a6dd6d1abdddc75cb' }, index.h("button", { key: 'e45a3d7ca735bc27a4a05c13c65ec0d6e2b4df04', "data-drag-handle": true, type: "button", class: "limel-drag-handle", tabindex: -1, "aria-label": ariaLabel, id: this.dragHandleId, onClick: this.handleClick }, index.h("div", { key: '8a91aa1f70775148fb4262a9ef51129cfd89cf07', class: "drag-icon", role: "presentation", "aria-hidden": "true" }, index.h("div", { key: "1" }), index.h("div", { key: "2" }), index.h("div", { key: "3" }), index.h("div", { key: "4" }), index.h("div", { key: "5" }), index.h("div", { key: "6" })), index.h("limel-tooltip", { key: '645f814490598b794def31fde73de3bf61041904', openDirection: this.tooltipOpenDirection, elementId: this.dragHandleId, label: tooltipLabel }))));
38
+ }
39
+ };
40
+ DragHandleComponent.style = dragHandleCss();
4
41
 
5
42
  const scrollerCss = () => `@charset "UTF-8";:host(limel-scroller){display:block}div.scroller{position:relative;overflow:hidden;height:100%}div.scroll-area{display:flex;height:100%;scrollbar-width:none}div.scroll-area::-webkit-scrollbar{display:none}div.scroll-content{display:flex;flex:1 0 auto;position:relative;isolation:isolate;padding:var(--limel-scroller-content-padding, 0)}::slotted(*){flex-shrink:0}div.scroll-fade,div.scroll-button{position:absolute;transition:transform 0.3s ease-out}div.scroll-fade{pointer-events:none}div.scroll-button{display:flex;align-items:center;justify-content:center}div.scroll-button div.arrow-button{display:flex;align-items:center;justify-content:center;border-radius:0.25rem;color:var(--limel-theme-on-surface-color)}div.scroll-button svg.arrow{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}div.scroller.horizontal div.scroll-area{overflow-x:auto;overflow-y:hidden}div.scroller.horizontal ::slotted(*){scroll-margin-inline:2.25rem}div.scroller.horizontal div.scroll-fade{top:0;width:4rem;height:100%}div.scroller.horizontal div.scroll-fade.start{left:0;transform:translate3d(-4rem, 0, 0);background:linear-gradient(270deg, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0) 0%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 40%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 100%)}div.scroller.horizontal div.scroll-fade.end{right:0;transform:translate3d(4rem, 0, 0);background:linear-gradient(90deg, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0) 0%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 40%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 100%)}div.scroller.horizontal div.scroll-button{top:0;bottom:0}div.scroller.horizontal div.scroll-button.start{left:0.25rem;transform:translate3d(-4rem, 0, 0)}div.scroller.horizontal div.scroll-button.start svg.arrow{transform:rotate(180deg)}div.scroller.horizontal div.scroll-button.end{right:0.25rem;transform:translate3d(4rem, 0, 0)}div.scroller.horizontal div.scroll-button div.arrow-button{width:1.25rem;height:calc(100% - 0.5rem)}div.scroller.vertical div.scroll-area{flex-direction:column;overflow-x:hidden;overflow-y:auto}div.scroller.vertical div.scroll-content{flex-direction:column}div.scroller.vertical ::slotted(*){scroll-margin-block:2.25rem}div.scroller.vertical div.scroll-fade{left:0;width:100%;height:4rem}div.scroller.vertical div.scroll-fade.start{top:0;transform:translate3d(0, -4rem, 0);background:linear-gradient(0deg, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0) 0%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 40%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 100%)}div.scroller.vertical div.scroll-fade.end{bottom:0;transform:translate3d(0, 4rem, 0);background:linear-gradient(180deg, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0) 0%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 40%, rgba(var(--limel-scroller-fade-color, var(--contrast-100)), 0.8) 100%)}div.scroller.vertical div.scroll-button{left:0;right:0}div.scroller.vertical div.scroll-button.start{top:0.25rem;transform:translate3d(0, -4rem, 0)}div.scroller.vertical div.scroll-button.start svg.arrow{transform:rotate(-90deg)}div.scroller.vertical div.scroll-button.end{bottom:0.25rem;transform:translate3d(0, 4rem, 0)}div.scroller.vertical div.scroll-button.end svg.arrow{transform:rotate(90deg)}div.scroller.vertical div.scroll-button div.arrow-button{height:1.25rem;width:calc(100% - 0.5rem)}div.scroller.can-scroll-to-start div.scroll-fade.start,div.scroller.can-scroll-to-start div.scroll-button.start{transform:translate3d(0, 0, 0)}div.scroller.can-scroll-to-end div.scroll-fade.end,div.scroller.can-scroll-to-end div.scroll-button.end{transform:translate3d(0, 0, 0)}div.scroller.can-scroll-to-start:not(.can-scroll-to-end) div.scroll-button.end,div.scroller.can-scroll-to-end:not(.can-scroll-to-start) div.scroll-button.start{opacity:0.5;transition-delay:0.5s}div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal)}div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:hover,div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:focus,div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:focus-visible,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:hover,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:focus,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:focus-visible{will-change:color, background-color, box-shadow, transform}div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:hover,div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:focus-visible,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:hover,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:active,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:hover,div.scroller.can-scroll-to-start div.scroll-button.start div.arrow-button:active,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:hover,div.scroller.can-scroll-to-end div.scroll-button.end div.arrow-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}div.scroller div.scroll-button.start:hover,div.scroller div.scroll-button.end:hover{transform:translate3d(0, 0, 0)}`;
6
43
 
@@ -65,12 +102,12 @@ const Scroller = class {
65
102
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
66
103
  }
67
104
  render() {
68
- return (index.h(index.Host, { key: 'c208de7a73b1d3d040a0a76b2bdc7bad3d5ab739' }, index.h("div", { key: '5e69255f710a5f5f439553fa1f9b183e9dc5a9bd', class: {
105
+ return (index.h(index.Host, { key: '6e546a2b31136af45497d3de8369754b33992da9' }, index.h("div", { key: '22fbd0723a170201a422d073f41ce8e2a0d726d3', class: {
69
106
  scroller: true,
70
107
  [this.orientation]: true,
71
108
  'can-scroll-to-start': this.canScrollToStart,
72
109
  'can-scroll-to-end': this.canScrollToEnd,
73
- } }, index.h("div", { key: 'fc1b91baa65f317ae7bad667cba13813400ac546', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, index.h("div", { key: '43c02c4acba2ba647aaf6a7516a0326ffc0f16b1', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, index.h("slot", { key: '3d2e82f50748410b5370741c8e8b1f44117adc35', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
110
+ } }, index.h("div", { key: '379da89bc7f3b7b2a4700d1740df7c63906e065f', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, index.h("div", { key: '448ee73f8e9c68db5cadbd0910c9d1135d8d40ee', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, index.h("slot", { key: 'fc12618e40799918647a37be83fe8d8d5f7b8077', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
74
111
  }
75
112
  renderEdge(edge) {
76
113
  return [
@@ -177,4 +214,5 @@ function getScrollBehavior() {
177
214
  }
178
215
  Scroller.style = scrollerCss();
179
216
 
217
+ exports.limel_drag_handle = DragHandleComponent;
180
218
  exports.limel_scroller = Scroller;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-DDyw5Zzz.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
5
  var formatBytes = require('./format-bytes-WTHVI718.js');
6
6
  var adaptColorContrast = require('./adapt-color-contrast-h6iwOfZd.js');
7
7
  var icons = require('./icons-isR5V1X0.js');
@@ -216,7 +216,7 @@ const EmailViewer = class {
216
216
  }
217
217
  }
218
218
  render() {
219
- return (index.h(index.Host, { key: 'f28d5f5b43643c9bb0ce9640d4d774d36e87e5ba' }, index.h("div", { key: '33383fce3618029de03eab77b920c8ba7784ee76', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), index.h("section", { key: '64141b9920deaf952f80db9f65a7627bb36aefd9' }, this.renderAttachments(), this.renderBody()))));
219
+ return (index.h(index.Host, { key: '988ce952ec8bfb1a3f6107687bf99eb921e82a68' }, index.h("div", { key: '0c0551cf33923837a4fbc0be84bef92e5f42084a', class: "email", part: "email" }, this.renderHeaders(), this.renderRemoteImageBanner(), index.h("section", { key: '62189859a9796e38bfa2c3aa7af83c3f2cc1e5a6' }, this.renderAttachments(), this.renderBody()))));
220
220
  }
221
221
  renderHeaders() {
222
222
  const headerFields = [
@@ -233,7 +233,7 @@ const FileDropzone = class {
233
233
  };
234
234
  }
235
235
  render() {
236
- return (index.h(index.Host, { key: '5323ec725e0f49a0d10879955fe0c09fd4d54880', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, index.h("slot", { key: 'ffbf75fbe962bfc3db501cced37dc9c56e8a9092' }), this.renderOnDragLayout()));
236
+ return (index.h(index.Host, { key: '0209f44f7cfe46ccb98b3e15d597555ac57c0dce', onDrop: this.handleDrop, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave }, index.h("slot", { key: '1198fc4141e15527cd7575f5dd88b06b1a9d61c1' }), this.renderOnDragLayout()));
237
237
  }
238
238
  };
239
239
  FileDropzone.style = fileDropzoneCss();
@@ -294,7 +294,7 @@ const FileInput = class {
294
294
  this.fileInput = this.element.shadowRoot.getElementById(this.fileInputId);
295
295
  }
296
296
  render() {
297
- return (index.h(index.Host, { key: '3f50f6c3dd1b0111be466ddb5fbd1feac8760159', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, index.h("input", { key: '1c3b89baf7511a4de2b32543ee77135a58a7ecbe', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), index.h("slot", { key: '857a60a5108c6b179537270e0be02bb7009f294c' })));
297
+ return (index.h(index.Host, { key: 'e499bde6727abc2123d0aa70d446860de930a838', onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, index.h("input", { key: '9e3ba97f8f43b90d6d63e348acda5fa2a3976432', hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), index.h("slot", { key: 'c29534ed1ee305ba85afd02c4b66e61eae817a5e' })));
298
298
  }
299
299
  handleKeyDown(event) {
300
300
  if (['Tab', 'Backspace', 'Enter'].includes(event.code)) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index$1 = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-DDyw5Zzz.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
5
  var index = require('./index-zZvs6xK-.js');
6
6
  var image_template = require('./image.template-DlF-f23b.js');
7
7
  require('./language-v-MMS6ym.js');
@@ -659,7 +659,11 @@ function canJoinWords(left, right) {
659
659
  return false;
660
660
  }
661
661
  if (encoding === 'B') {
662
- return left.encodedText.length % 4 === 0 && !/=$/.test(left.encodedText);
662
+ // The length of a string built by concatenation is stored with it, but a regex or
663
+ // endsWith on it flattens everything joined so far first. Testing the growing text
664
+ // for a pad on every word made a subject of a hundred thousand short words cost
665
+ // seconds, so the pad is tracked as the words are appended instead.
666
+ return left.encodedText.length % 4 === 0 && !left.padded;
663
667
  }
664
668
  return true;
665
669
  }
@@ -690,12 +694,18 @@ function renderTokens(tokens, joinWords) {
690
694
  }
691
695
  if (pending && joinWords && canJoinWords(pending, token)) {
692
696
  pending.encodedText += token.encodedText;
697
+ pending.padded = token.encodedText.endsWith('=');
693
698
  continue;
694
699
  }
695
700
  if (pending) {
696
701
  result += decodeWord(pending.charset, pending.encoding, pending.encodedText);
697
702
  }
698
- pending = { charset: token.charset, encoding: token.encoding, encodedText: token.encodedText };
703
+ pending = {
704
+ charset: token.charset,
705
+ encoding: token.encoding,
706
+ encodedText: token.encodedText,
707
+ padded: token.encodedText.endsWith('=')
708
+ };
699
709
  }
700
710
  if (pending) {
701
711
  result += decodeWord(pending.charset, pending.encoding, pending.encodedText);
@@ -1060,6 +1070,12 @@ class QPDecoder {
1060
1070
  const headerDecoder = new TextDecoder('utf-8', { ignoreBOM: true });
1061
1071
  // number of pieces decodeFlowedText collects before joining them
1062
1072
  const FLOWED_JOIN_INTERVAL = 4096;
1073
+ // What a header line costs to hold, at the least. The decoded line, its entry in
1074
+ // rawHeaderLines and the parsed header come to a few hundred bytes for a line of one
1075
+ // byte, so two million such lines stayed inside maxHeadersSize while they held a few
1076
+ // hundred megabytes. Counting every line for at least this much keeps the memory in step
1077
+ // with the budget, 32768 lines at the default 2 MiB.
1078
+ const HEADER_LINE_MIN_COST = 64;
1063
1079
  // Trims only the whitespace RFC 5322 allows around a field name. String.prototype.trim
1064
1080
  // also strips U+00A0, U+FEFF, U+2028 and the rest of the Unicode spaces, which turns a
1065
1081
  // line that a strict parser rejects into a canonical field name: a `From:` line with a
@@ -1099,11 +1115,13 @@ class MimeNode {
1099
1115
  constructor(options) {
1100
1116
  this.options = options;
1101
1117
  this.postalMime = options.postalMime;
1102
- // Counted across the whole message like the header size, so that a multipart can
1103
- // not carry the budget again for every part it declares
1104
- this.postalMime.partCount++;
1105
- if (this.postalMime.partCount > options.maxPartCount) {
1106
- throw new Error(`Maximum MIME part count of ${options.maxPartCount} parts exceeded`);
1118
+ // Counted across the whole message like the header size, nested message/rfc822
1119
+ // parts included, so that neither a multipart nor a forward can carry the budget
1120
+ // again for every part it declares
1121
+ const limits = this.postalMime.limits;
1122
+ this.postalMime.counters.partCount++;
1123
+ if (this.postalMime.counters.partCount > limits.maxPartCount) {
1124
+ throw new Error(`Maximum MIME part count of ${limits.maxPartCount} parts exceeded`);
1107
1125
  }
1108
1126
  this.childNodes = [];
1109
1127
  // Cursor into childNodes for finalizeChildNodes. Every new part of a multipart
@@ -1113,8 +1131,8 @@ class MimeNode {
1113
1131
  if (options.parentNode) {
1114
1132
  this.parentNode = options.parentNode;
1115
1133
  this.depth = this.parentNode.depth + 1;
1116
- if (this.depth > options.maxNestingDepth) {
1117
- throw new Error(`Maximum MIME nesting depth of ${options.maxNestingDepth} levels exceeded`);
1134
+ if (this.depth > limits.maxNestingDepth) {
1135
+ throw new Error(`Maximum MIME nesting depth of ${limits.maxNestingDepth} levels exceeded`);
1118
1136
  }
1119
1137
  options.parentNode.childNodes.push(this);
1120
1138
  }
@@ -1588,6 +1606,8 @@ class MimeNode {
1588
1606
  .toLowerCase()
1589
1607
  .match(/[\w-]+/) || [''])[0];
1590
1608
  this.setupContentDecoder(this.contentTransferEncoding.encoding);
1609
+ // the lines live on in rawHeaderLines and headers, so the raw copies are released
1610
+ this.headerLines = [];
1591
1611
  }
1592
1612
  // Ends the header section and sets up the body
1593
1613
  endHeaders() {
@@ -1607,10 +1627,10 @@ class MimeNode {
1607
1627
  // Counted across the whole message, not per part. A per-node budget lets a
1608
1628
  // multipart carry the limit again for every part it declares, so a message
1609
1629
  // many times over the limit still parses.
1610
- this.postalMime.headerSize += line.length;
1611
- if (this.postalMime.headerSize > this.options.maxHeadersSize) {
1612
- let error = new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);
1613
- throw error;
1630
+ this.postalMime.counters.headerSize += Math.max(line.length, HEADER_LINE_MIN_COST);
1631
+ const maxHeadersSize = this.postalMime.limits.maxHeadersSize;
1632
+ if (this.postalMime.counters.headerSize > maxHeadersSize) {
1633
+ throw new Error(`Maximum header size of ${maxHeadersSize} bytes exceeded`);
1614
1634
  }
1615
1635
  const text = decodeUtf8OrWindows1252(line, headerDecoder);
1616
1636
  // A line of nothing but whitespace is legal folding (RFC 5322 4.2, obs-FWS),
@@ -5291,8 +5311,8 @@ const MAX_PART_COUNT = 10000;
5291
5311
  const MAX_RFC822_NESTING_DEPTH = 10;
5292
5312
  // The From, To, Cc and Bcc of every inline message/rfc822 part are rendered into the
5293
5313
  // text and html of the parent, an address of one or two bytes as some 60 characters of
5294
- // html. maxHeadersSize bounds the header bytes of each nested message on its own, so
5295
- // without a limit counted across all of them the output grows with the number of forwards.
5314
+ // html. maxHeadersSize bounds the header bytes, not the addresses they hold, so without
5315
+ // a limit of their own the output grows with the number of forwards.
5296
5316
  const MAX_FORWARDED_ADDRESSES = 10000;
5297
5317
  // the number of entries the header formatters render for a list of addresses, a group
5298
5318
  // counted along with each of its members
@@ -5320,6 +5340,17 @@ function parseLimitOption(value, defaultValue, name) {
5320
5340
  }
5321
5341
  return value;
5322
5342
  }
5343
+ function parseLimits(options) {
5344
+ return {
5345
+ maxNestingDepth: parseLimitOption(options.maxNestingDepth, MAX_NESTING_DEPTH, 'maxNestingDepth'),
5346
+ maxHeadersSize: parseLimitOption(options.maxHeadersSize, MAX_HEADERS_SIZE, 'maxHeadersSize'),
5347
+ maxPartCount: parseLimitOption(options.maxPartCount, MAX_PART_COUNT, 'maxPartCount'),
5348
+ // A limit of 0 disables inline parsing entirely, so every message/rfc822 part
5349
+ // becomes an attachment.
5350
+ maxRfc822NestingDepth: parseLimitOption(options.maxRfc822NestingDepth, MAX_RFC822_NESTING_DEPTH, 'maxRfc822NestingDepth'),
5351
+ maxForwardedAddresses: parseLimitOption(options.maxForwardedAddresses, MAX_FORWARDED_ADDRESSES, 'maxForwardedAddresses')
5352
+ };
5353
+ }
5323
5354
  class PostalMime {
5324
5355
  /**
5325
5356
  * Parses a raw email message
@@ -5334,32 +5365,16 @@ class PostalMime {
5334
5365
  const parser = new PostalMime(options);
5335
5366
  return parser.parse(buf);
5336
5367
  }
5337
- constructor(options) {
5368
+ constructor(options, parent) {
5338
5369
  this.options = options || {};
5339
- this.mimeOptions = {
5340
- maxNestingDepth: parseLimitOption(this.options.maxNestingDepth, MAX_NESTING_DEPTH, 'maxNestingDepth'),
5341
- maxHeadersSize: parseLimitOption(this.options.maxHeadersSize, MAX_HEADERS_SIZE, 'maxHeadersSize'),
5342
- maxPartCount: parseLimitOption(this.options.maxPartCount, MAX_PART_COUNT, 'maxPartCount')
5343
- };
5344
- // A limit of 0 disables inline parsing entirely, so every message/rfc822 part
5345
- // becomes an attachment.
5346
- this.maxRfc822NestingDepth = parseLimitOption(this.options.maxRfc822NestingDepth, MAX_RFC822_NESTING_DEPTH, 'maxRfc822NestingDepth');
5347
- // Internal state that a nested parser receives from its parent, see collectSubMessage.
5348
- // It is deliberately not an option, so that forwarding a caller supplied options
5349
- // object can not seed it and switch the recursion limit off.
5350
- this.rfc822NestingDepth = 0;
5351
- this.maxForwardedAddresses = parseLimitOption(this.options.maxForwardedAddresses, MAX_FORWARDED_ADDRESSES, 'maxForwardedAddresses');
5352
- // Like rfc822NestingDepth, a nested parser gets the counter of its parent rather
5353
- // than an option, so that the count runs across the whole message
5354
- this.forwardedAddresses = { count: 0 };
5355
- // Header bytes seen across every part of this message, see MimeNode.feed, and the
5356
- // number of parts created for it, the root included, see the MimeNode constructor
5357
- this.headerSize = 0;
5358
- this.partCount = 0;
5359
- this.root = this.currentNode = new MimeNode({
5360
- postalMime: this,
5361
- ...this.mimeOptions
5362
- });
5370
+ // Internal state that a nested parser receives from its parent. It is deliberately
5371
+ // not an option, so that forwarding a caller supplied options object can not seed
5372
+ // it and switch the recursion limit off or start the counters over.
5373
+ this.rfc822NestingDepth = parent ? parent.rfc822NestingDepth + 1 : 0;
5374
+ // Set before the root part is created, since the root is counted and checked too
5375
+ this.limits = parent ? parent.limits : parseLimits(this.options);
5376
+ this.counters = parent ? parent.counters : { headerSize: 0, partCount: 0, forwardedAddresses: 0 };
5377
+ this.root = this.currentNode = new MimeNode({ postalMime: this });
5363
5378
  this.boundaries = [];
5364
5379
  this.textContent = {};
5365
5380
  this.textMap = new Map();
@@ -5432,8 +5447,7 @@ class PostalMime {
5432
5447
  this.currentNode = new MimeNode({
5433
5448
  postalMime: this,
5434
5449
  parentNode: boundary.node,
5435
- parentMultipartType: boundary.node.contentType.multipart,
5436
- ...this.mimeOptions
5450
+ parentMultipartType: boundary.node.contentType.multipart
5437
5451
  });
5438
5452
  }
5439
5453
  if (isFinal) {
@@ -5501,7 +5515,7 @@ class PostalMime {
5501
5515
  async collectNode(node, alternative, related) {
5502
5516
  if (!node.contentType.multipart) {
5503
5517
  const inlineRfc822 = this.isInlineMessageRfc822(node);
5504
- const rfc822DepthExceeded = inlineRfc822 && this.rfc822NestingDepth >= this.maxRfc822NestingDepth;
5518
+ const rfc822DepthExceeded = inlineRfc822 && this.rfc822NestingDepth >= this.limits.maxRfc822NestingDepth;
5505
5519
  if (inlineRfc822 && !rfc822DepthExceeded) {
5506
5520
  await this.collectSubMessage(node);
5507
5521
  }
@@ -5528,25 +5542,20 @@ class PostalMime {
5528
5542
  /** @internal */
5529
5543
  async collectSubMessage(node) {
5530
5544
  const subParser = new PostalMime({
5531
- // Only the limits are inherited. Options that decide how a part
5532
- // is classified stay with the parser that was configured.
5533
- ...this.mimeOptions,
5534
- maxRfc822NestingDepth: this.maxRfc822NestingDepth,
5535
- maxForwardedAddresses: this.maxForwardedAddresses,
5536
- // attachments are encoded by the parent parser, keep raw buffers here
5545
+ // Options that decide how a part is classified stay with the parser that
5546
+ // was configured, the limits and their counters come from this parser.
5547
+ // Attachments are encoded by the parent parser, so raw buffers are kept here.
5537
5548
  attachmentEncoding: 'arraybuffer'
5538
- });
5539
- subParser.rfc822NestingDepth = this.rfc822NestingDepth + 1;
5540
- subParser.forwardedAddresses = this.forwardedAddresses;
5549
+ }, this);
5541
5550
  const subMessage = (node.subMessage = await subParser.parse(node.content || new ArrayBuffer(0)));
5542
5551
  // counted before the header block below is rendered into the text and html
5543
- this.forwardedAddresses.count +=
5552
+ this.counters.forwardedAddresses +=
5544
5553
  countAddresses(subMessage.from) +
5545
5554
  countAddresses(subMessage.to) +
5546
5555
  countAddresses(subMessage.cc) +
5547
5556
  countAddresses(subMessage.bcc);
5548
- if (this.forwardedAddresses.count > this.maxForwardedAddresses) {
5549
- throw new Error(`Maximum forwarded address count of ${this.maxForwardedAddresses} addresses exceeded`);
5557
+ if (this.counters.forwardedAddresses > this.limits.maxForwardedAddresses) {
5558
+ throw new Error(`Maximum forwarded address count of ${this.limits.maxForwardedAddresses} addresses exceeded`);
5550
5559
  }
5551
5560
  // default to text if there is no content
5552
5561
  if (subMessage.text || !subMessage.html) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-DDyw5Zzz.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
5
  var fileMetadata = require('./file-metadata-BrhOssGG.js');
6
6
  var formatBytes = require('./format-bytes-WTHVI718.js');
7
7
  var imageResize = require('./image-resize-JlRLB97I.js');
@@ -122,7 +122,7 @@ const File = class {
122
122
  this.resizingFile = undefined;
123
123
  }
124
124
  render() {
125
- return (index.h(index.Host, { key: 'ecfb98bb1d97078de666e3b92649cf17241ea533', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: 'f41a99e5614efacf6428eef83f5567db10ca7c94', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
125
+ return (index.h(index.Host, { key: 'f18050fc95a60bb3c7223ae12107d49e147def67', "aria-busy": this.isBusy ? 'true' : 'false' }, index.h("limel-file-dropzone", { key: 'ede8aa3e8c6e8406a0b38db4ecbe33159ec698bc', disabled: this.disabled || this.readonly || !!this.displayedFile, accept: this.accept, onFilesSelected: this.handleNewFiles }, this.renderChipset()), this.renderDragAndDropTip(), this.renderSpinner()));
126
126
  }
127
127
  get statusText() {
128
128
  var _a, _b, _c;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-BlsqxTB1.js');
4
- var translations = require('./translations-DDyw5Zzz.js');
4
+ var translations = require('./translations-CLSqfR3x.js');
5
5
  var _commonjsHelpers = require('./_commonjsHelpers-CFO10eej.js');
6
6
  require('./sv-Co78RX70.js');
7
7
  var moment = require('./moment-Cfsz2WF1.js');
@@ -7724,7 +7724,7 @@ const DatePickerCalendar = class {
7724
7724
  });
7725
7725
  }
7726
7726
  render() {
7727
- return (index.h("div", { key: 'a1e6de699055b7bd6c86eb194ff3ce756d9b4834', class: "container", ref: (el) => (this.container = el), style: {
7727
+ return (index.h("div", { key: 'aad98186a855e3c4e30dbc597cfad23b9a4cbcbe', class: "container", ref: (el) => (this.container = el), style: {
7728
7728
  '--today-label': `"${translations.translations.get('date-picker.today', this.language)}"`,
7729
7729
  } }));
7730
7730
  }
@@ -28,7 +28,7 @@ const FlexContainer = class {
28
28
  console.warn('limel-flex-container is deprecated, please use CSS instead: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox');
29
29
  }
30
30
  render() {
31
- return index.h("slot", { key: '791a96736443febd2103b7aeb1437299b103be80' });
31
+ return index.h("slot", { key: '2049c195a3ded73e31597b1e51f3d4af9b7316ed' });
32
32
  }
33
33
  };
34
34
  FlexContainer.style = flexContainerCss();