@limetech/lime-elements 40.8.1 → 40.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-action-bar_3.cjs.entry.js +3 -3
  5. package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  7. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +6 -6
  9. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-callout.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-code-diff.cjs.entry.js +1 -1
  18. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-dock-button.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-dock.cjs.entry.js +23 -10
  25. package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-email-viewer.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  28. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  31. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  32. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  36. package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
  37. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  38. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  39. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  40. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  41. package/dist/cjs/limel-list-item.cjs.entry.js +2 -2
  42. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  44. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-pagination.cjs.entry.js +1 -1
  46. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  48. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  49. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  50. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-resize-handle.cjs.entry.js +240 -0
  52. package/dist/cjs/limel-scroller.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  54. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  55. package/dist/cjs/limel-side-panel.cjs.entry.js +283 -0
  56. package/dist/cjs/limel-slider.cjs.entry.js +3 -3
  57. package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
  58. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  59. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  60. package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
  61. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  62. package/dist/cjs/limel-table.cjs.entry.js +2 -2
  63. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +3 -3
  64. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  65. package/dist/cjs/loader.cjs.js +1 -1
  66. package/dist/collection/collection-manifest.json +2 -0
  67. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  68. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  69. package/dist/collection/components/action-bar/action-bar.js +2 -2
  70. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  71. package/dist/collection/components/badge/badge.js +2 -2
  72. package/dist/collection/components/banner/banner.js +1 -1
  73. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  74. package/dist/collection/components/button/button.js +2 -2
  75. package/dist/collection/components/button-group/button-group.js +1 -1
  76. package/dist/collection/components/callout/callout.js +1 -1
  77. package/dist/collection/components/card/card.js +1 -1
  78. package/dist/collection/components/checkbox/checkbox.js +1 -1
  79. package/dist/collection/components/chip/chip.js +1 -1
  80. package/dist/collection/components/chip-set/chip-set.js +1 -1
  81. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  82. package/dist/collection/components/code-diff/code-diff.js +1 -1
  83. package/dist/collection/components/code-editor/code-editor.js +1 -1
  84. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  85. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  86. package/dist/collection/components/color-picker/color-picker.js +1 -1
  87. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  88. package/dist/collection/components/dialog/dialog.js +2 -2
  89. package/dist/collection/components/dock/dock-button/dock-button.css +25 -0
  90. package/dist/collection/components/dock/dock.css +1 -1
  91. package/dist/collection/components/dock/dock.js +24 -10
  92. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  93. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  94. package/dist/collection/components/file/file.js +1 -1
  95. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  96. package/dist/collection/components/file-input/file-input.js +1 -1
  97. package/dist/collection/components/flex-container/flex-container.js +1 -1
  98. package/dist/collection/components/form/form.js +1 -1
  99. package/dist/collection/components/grid/grid.js +1 -1
  100. package/dist/collection/components/header/header.js +1 -1
  101. package/dist/collection/components/help/help-content.js +1 -1
  102. package/dist/collection/components/help/help.js +2 -2
  103. package/dist/collection/components/helper-line/helper-line.js +2 -2
  104. package/dist/collection/components/hotkey/hotkey.js +1 -1
  105. package/dist/collection/components/icon/icon.js +1 -1
  106. package/dist/collection/components/icon-button/icon-button.js +1 -1
  107. package/dist/collection/components/info-tile/info-tile.js +2 -2
  108. package/dist/collection/components/input-field/input-field.js +1 -1
  109. package/dist/collection/components/list/list.js +1 -1
  110. package/dist/collection/components/list-item/list-item.js +2 -2
  111. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  112. package/dist/collection/components/markdown/markdown.js +1 -1
  113. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  114. package/dist/collection/components/menu/menu.js +1 -1
  115. package/dist/collection/components/menu-list/menu-list.js +1 -1
  116. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  117. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  118. package/dist/collection/components/pagination/pagination.js +1 -1
  119. package/dist/collection/components/picker/picker.js +1 -1
  120. package/dist/collection/components/popover/popover.js +1 -1
  121. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  122. package/dist/collection/components/portal/portal.js +1 -1
  123. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  124. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  125. package/dist/collection/components/resize-handle/resize-handle.css +274 -0
  126. package/dist/collection/components/resize-handle/resize-handle.js +210 -0
  127. package/dist/collection/components/scroller/scroller.js +2 -2
  128. package/dist/collection/components/select/select.js +1 -1
  129. package/dist/collection/components/shortcut/shortcut.js +1 -1
  130. package/dist/collection/components/side-panel/side-panel.css +300 -0
  131. package/dist/collection/components/side-panel/side-panel.js +433 -0
  132. package/dist/collection/components/slider/slider.js +3 -3
  133. package/dist/collection/components/snackbar/snackbar.js +2 -2
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/split-button/split-button.js +2 -2
  136. package/dist/collection/components/switch/switch.js +1 -1
  137. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  138. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  139. package/dist/collection/components/table/table.js +2 -2
  140. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  141. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  142. package/dist/collection/components/text-editor/text-editor.js +1 -1
  143. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  144. package/dist/collection/components/tooltip/tooltip.js +2 -2
  145. package/dist/collection/util/drag-to-resize.js +108 -0
  146. package/dist/collection/util/get-deep-active-element.js +15 -0
  147. package/dist/collection/util/resize-location.js +76 -0
  148. package/dist/esm/{keycodes-DQ5DmW_Y.js → keycodes-Bu6-QXrA.js} +1 -1
  149. package/dist/esm/lime-elements.js +1 -1
  150. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  151. package/dist/esm/limel-action-bar_3.entry.js +3 -3
  152. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  153. package/dist/esm/limel-badge.entry.js +2 -2
  154. package/dist/esm/limel-banner.entry.js +1 -1
  155. package/dist/esm/limel-breadcrumbs_6.entry.js +7 -7
  156. package/dist/esm/limel-button-group.entry.js +1 -1
  157. package/dist/esm/limel-button.entry.js +2 -2
  158. package/dist/esm/limel-callout.entry.js +1 -1
  159. package/dist/esm/limel-card.entry.js +1 -1
  160. package/dist/esm/limel-checkbox.entry.js +1 -1
  161. package/dist/esm/limel-chip-set.entry.js +2 -2
  162. package/dist/esm/limel-chip_2.entry.js +2 -2
  163. package/dist/esm/limel-circular-progress.entry.js +1 -1
  164. package/dist/esm/limel-code-diff.entry.js +1 -1
  165. package/dist/esm/limel-code-editor.entry.js +1 -1
  166. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  167. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  168. package/dist/esm/limel-color-picker.entry.js +1 -1
  169. package/dist/esm/limel-dialog.entry.js +2 -2
  170. package/dist/esm/limel-dock-button.entry.js +1 -1
  171. package/dist/esm/limel-dock.entry.js +23 -10
  172. package/dist/esm/limel-drag-handle.entry.js +1 -1
  173. package/dist/esm/limel-email-viewer.entry.js +1 -1
  174. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  175. package/dist/esm/limel-file.entry.js +1 -1
  176. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  177. package/dist/esm/limel-flex-container.entry.js +1 -1
  178. package/dist/esm/limel-form.entry.js +1 -1
  179. package/dist/esm/limel-grid.entry.js +1 -1
  180. package/dist/esm/limel-header.entry.js +1 -1
  181. package/dist/esm/limel-help-content.entry.js +1 -1
  182. package/dist/esm/limel-help.entry.js +2 -2
  183. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  184. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  185. package/dist/esm/limel-icon-button.entry.js +1 -1
  186. package/dist/esm/limel-icon.entry.js +1 -1
  187. package/dist/esm/limel-info-tile.entry.js +2 -2
  188. package/dist/esm/limel-list-item.entry.js +2 -2
  189. package/dist/esm/limel-markdown.entry.js +1 -1
  190. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  191. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  192. package/dist/esm/limel-pagination-jump.entry.js +1 -1
  193. package/dist/esm/limel-pagination.entry.js +1 -1
  194. package/dist/esm/limel-picker.entry.js +2 -2
  195. package/dist/esm/limel-popover_2.entry.js +3 -3
  196. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  197. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  198. package/dist/esm/limel-radio-button.entry.js +2 -2
  199. package/dist/esm/limel-resize-handle.entry.js +238 -0
  200. package/dist/esm/limel-scroller.entry.js +2 -2
  201. package/dist/esm/limel-select.entry.js +2 -2
  202. package/dist/esm/limel-shortcut.entry.js +1 -1
  203. package/dist/esm/limel-side-panel.entry.js +281 -0
  204. package/dist/esm/limel-slider.entry.js +3 -3
  205. package/dist/esm/limel-snackbar.entry.js +2 -2
  206. package/dist/esm/limel-split-button.entry.js +2 -2
  207. package/dist/esm/limel-switch.entry.js +1 -1
  208. package/dist/esm/limel-tab-bar.entry.js +2 -2
  209. package/dist/esm/limel-tab-panel.entry.js +1 -1
  210. package/dist/esm/limel-table.entry.js +2 -2
  211. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  212. package/dist/esm/limel-text-editor.entry.js +1 -1
  213. package/dist/esm/loader.js +1 -1
  214. package/dist/lime-elements/lime-elements.esm.js +1 -1
  215. package/dist/lime-elements/{p-5da47a8a.entry.js → p-065f1635.entry.js} +1 -1
  216. package/dist/lime-elements/{p-0e13ec91.entry.js → p-06cd9512.entry.js} +1 -1
  217. package/dist/lime-elements/{p-96246494.entry.js → p-07916acc.entry.js} +1 -1
  218. package/dist/lime-elements/{p-fdec09e9.entry.js → p-0c2ce99b.entry.js} +1 -1
  219. package/dist/lime-elements/{p-00c36c9e.entry.js → p-1020ca20.entry.js} +1 -1
  220. package/dist/lime-elements/{p-288ef79a.entry.js → p-14aff731.entry.js} +1 -1
  221. package/dist/lime-elements/{p-2b033dfa.entry.js → p-24e5d420.entry.js} +1 -1
  222. package/dist/lime-elements/{p-9afa4721.entry.js → p-262a3d66.entry.js} +1 -1
  223. package/dist/lime-elements/{p-45461ec5.entry.js → p-29b2a176.entry.js} +1 -1
  224. package/dist/lime-elements/{p-e752dc7f.entry.js → p-2ba9d62f.entry.js} +1 -1
  225. package/dist/lime-elements/{p-a1c69e0c.entry.js → p-33ed0c68.entry.js} +1 -1
  226. package/dist/lime-elements/{p-efaf2616.entry.js → p-35bc5ed2.entry.js} +1 -1
  227. package/dist/lime-elements/{p-d37fbbd2.entry.js → p-3ee121fa.entry.js} +1 -1
  228. package/dist/lime-elements/{p-d1b7cc55.entry.js → p-458c131f.entry.js} +3 -3
  229. package/dist/lime-elements/{p-c439b68b.entry.js → p-46bf8b22.entry.js} +1 -1
  230. package/dist/lime-elements/{p-303edb1a.entry.js → p-4882acaa.entry.js} +1 -1
  231. package/dist/lime-elements/{p-7b4351f6.entry.js → p-4a7df81a.entry.js} +1 -1
  232. package/dist/lime-elements/p-527e9c95.entry.js +1 -0
  233. package/dist/lime-elements/{p-5f5c6e7d.entry.js → p-54631dbf.entry.js} +1 -1
  234. package/dist/lime-elements/{p-d5800180.entry.js → p-5473eb74.entry.js} +1 -1
  235. package/dist/lime-elements/p-566750e5.entry.js +1 -0
  236. package/dist/lime-elements/{p-f4a0b1bc.entry.js → p-622660dd.entry.js} +1 -1
  237. package/dist/lime-elements/{p-d19c7a3a.entry.js → p-646731b6.entry.js} +1 -1
  238. package/dist/lime-elements/{p-7eab1341.entry.js → p-68542e00.entry.js} +1 -1
  239. package/dist/lime-elements/p-780dae0b.entry.js +1 -0
  240. package/dist/lime-elements/{p-8e9c927d.entry.js → p-783fd221.entry.js} +1 -1
  241. package/dist/lime-elements/{p-8ac79ef5.entry.js → p-7a290372.entry.js} +1 -1
  242. package/dist/lime-elements/{p-ff1a8b2e.entry.js → p-7a2e0e18.entry.js} +1 -1
  243. package/dist/lime-elements/{p-7fa85785.entry.js → p-7cdbbffe.entry.js} +2 -2
  244. package/dist/lime-elements/{p-b6d39581.entry.js → p-887eea11.entry.js} +1 -1
  245. package/dist/lime-elements/{p-9c8c2fb7.entry.js → p-8a59698f.entry.js} +1 -1
  246. package/dist/lime-elements/p-8d567e42.entry.js +1 -0
  247. package/dist/lime-elements/{p-b22b52a1.entry.js → p-910807cb.entry.js} +1 -1
  248. package/dist/lime-elements/p-9168793f.entry.js +1 -0
  249. package/dist/lime-elements/{p-58b7c634.entry.js → p-9461c6bb.entry.js} +1 -1
  250. package/dist/lime-elements/{p-a98cbd1f.entry.js → p-9b1934fb.entry.js} +1 -1
  251. package/dist/lime-elements/p-9b384d62.entry.js +1 -0
  252. package/dist/lime-elements/{p-ee719744.entry.js → p-9ca18ba5.entry.js} +1 -1
  253. package/dist/lime-elements/{p-DQ5DmW_Y.js → p-Bu6-QXrA.js} +1 -1
  254. package/dist/lime-elements/{p-ab91cfff.entry.js → p-a317f2fa.entry.js} +1 -1
  255. package/dist/lime-elements/{p-a1d1470c.entry.js → p-a373013f.entry.js} +1 -1
  256. package/dist/lime-elements/{p-32a050a3.entry.js → p-a449ca04.entry.js} +1 -1
  257. package/dist/lime-elements/p-a5246373.entry.js +1 -0
  258. package/dist/lime-elements/{p-9992b5f9.entry.js → p-a78aaf37.entry.js} +1 -1
  259. package/dist/lime-elements/p-abcc451a.entry.js +1 -0
  260. package/dist/lime-elements/{p-9e016212.entry.js → p-abed5afd.entry.js} +1 -1
  261. package/dist/lime-elements/{p-107654bb.entry.js → p-ae2e5e87.entry.js} +1 -1
  262. package/dist/lime-elements/{p-fdd674fc.entry.js → p-b69af611.entry.js} +1 -1
  263. package/dist/lime-elements/{p-74060535.entry.js → p-b9da0108.entry.js} +2 -2
  264. package/dist/lime-elements/{p-4cbcafae.entry.js → p-bf849dc9.entry.js} +1 -1
  265. package/dist/lime-elements/{p-0d6925f4.entry.js → p-c12fbc91.entry.js} +1 -1
  266. package/dist/lime-elements/{p-03cb609e.entry.js → p-cf6fab84.entry.js} +1 -1
  267. package/dist/lime-elements/{p-29c73bdf.entry.js → p-d3475514.entry.js} +1 -1
  268. package/dist/lime-elements/{p-006cfb3d.entry.js → p-d5144955.entry.js} +1 -1
  269. package/dist/lime-elements/{p-91a572c8.entry.js → p-d79d777e.entry.js} +1 -1
  270. package/dist/lime-elements/p-d7e5a4a7.entry.js +1 -0
  271. package/dist/lime-elements/{p-9415411e.entry.js → p-db1f9eba.entry.js} +1 -1
  272. package/dist/lime-elements/{p-a736ea08.entry.js → p-dd075353.entry.js} +1 -1
  273. package/dist/lime-elements/{p-526ede01.entry.js → p-de4d261a.entry.js} +1 -1
  274. package/dist/lime-elements/{p-e6a34047.entry.js → p-def7b38f.entry.js} +1 -1
  275. package/dist/lime-elements/{p-bc70090d.entry.js → p-e247e9fe.entry.js} +1 -1
  276. package/dist/lime-elements/{p-e2b074aa.entry.js → p-e25bfb2c.entry.js} +1 -1
  277. package/dist/lime-elements/{p-727b6c11.entry.js → p-ec74a07a.entry.js} +1 -1
  278. package/dist/lime-elements/{p-d1e5dd12.entry.js → p-ecded772.entry.js} +1 -1
  279. package/dist/types/components/dock/dock.d.ts +12 -6
  280. package/dist/types/components/resize-handle/resize-handle.d.ts +64 -0
  281. package/dist/types/components/side-panel/side-panel.d.ts +134 -0
  282. package/dist/types/components.d.ts +321 -2
  283. package/dist/types/util/drag-to-resize.d.ts +33 -0
  284. package/dist/types/util/get-deep-active-element.d.ts +9 -0
  285. package/dist/types/util/resize-location.d.ts +59 -0
  286. package/package.json +2 -2
  287. package/dist/lime-elements/p-14a28a08.entry.js +0 -1
  288. package/dist/lime-elements/p-3d05e21f.entry.js +0 -1
  289. package/dist/lime-elements/p-681cb6de.entry.js +0 -1
  290. package/dist/lime-elements/p-a2e6f16e.entry.js +0 -1
  291. package/dist/lime-elements/p-aa897903.entry.js +0 -1
  292. package/dist/lime-elements/p-cf982d06.entry.js +0 -1
  293. package/dist/lime-elements/p-de4719a6.entry.js +0 -1
@@ -1462,7 +1462,7 @@ export namespace Components {
1462
1462
  */
1463
1463
  "dockItems": DockItem[];
1464
1464
  /**
1465
- * Defines the width of the component, when it loads. - `true`: shows both icons and labels of the Dock items. - `false`: only shows icons of the doc items, and displays their labels as tooltip. Note: when `useMobileLayout` is `true`, labels will always be shown as tooltips. Read more below…
1465
+ * Defines whether the labels of the dock items are shown, when the component loads. - `true`: shows both icons and labels of the dock items. In the vertical layout, the labels are placed beside the icons. In the horizontal mobile layout, they are placed below the icons, in small text that is truncated when there is not enough space. - `false`: only shows icons of the dock items, and displays their labels as tooltips. In the horizontal mobile layout, there is no room for the button that expands and shrinks the dock, so end-users cannot change this there. Set `expanded` yourself, for example from a user setting.
1466
1466
  * @default false
1467
1467
  */
1468
1468
  "expanded"?: boolean;
@@ -3427,6 +3427,45 @@ export namespace Components {
3427
3427
  */
3428
3428
  "selectedItem"?: ListItem<string | number>;
3429
3429
  }
3430
+ /**
3431
+ * A handle on an edge of an element. The user drags the handle, or presses an
3432
+ * arrow key while the handle has focus, to resize the element.
3433
+ * The handle does not resize the element. It emits `changeSize` with the size
3434
+ * that the user asks for, and the consumer applies it.
3435
+ * The handle must be a direct child of the element that it resizes. When the
3436
+ * handle is placed directly in a shadow root, it resizes the element that has
3437
+ * the shadow root. It has `position: absolute` and `z-index: 1`, and sits on
3438
+ * the edge that `location` names. Give the element a `position` other than
3439
+ * `static`. If other content covers the handle, also give the element
3440
+ * `isolation: isolate`.
3441
+ * @exampleComponent limel-example-resize-handle-basic
3442
+ * @exampleComponent limel-example-resize-handle-locations
3443
+ * @exampleComponent limel-example-resize-handle-grab-area
3444
+ * @private
3445
+ */
3446
+ interface LimelResizeHandle {
3447
+ /**
3448
+ * The accessible name of the handle.
3449
+ */
3450
+ "label": string;
3451
+ /**
3452
+ * The location of the handle relative to the resizable element.
3453
+ * @default 'left'
3454
+ */
3455
+ "location": 'left' | 'right' | 'top' | 'bottom';
3456
+ /**
3457
+ * The largest size that the element can have, in pixels.
3458
+ */
3459
+ "max"?: number;
3460
+ /**
3461
+ * The smallest size that the element can have, in pixels.
3462
+ */
3463
+ "min"?: number;
3464
+ /**
3465
+ * The size of the element, in pixels: the width when `location` is `left` or `right`, and the height when it is `top` or `bottom`.
3466
+ */
3467
+ "value"?: number;
3468
+ }
3430
3469
  /**
3431
3470
  * Makes content that is larger than its container scrollable, along one axis.
3432
3471
  * The native scrollbar is hidden. Instead, an edge that has more to reveal
@@ -3564,6 +3603,49 @@ export namespace Components {
3564
3603
  */
3565
3604
  "link"?: Link;
3566
3605
  }
3606
+ /**
3607
+ * A resizable panel that is displayed on top of the right side of the page.
3608
+ * The content is placed in the default slot, below a toolbar with a close button.
3609
+ * The panel is positioned relative to its nearest positioned ancestor. Set
3610
+ * `position: relative` on that element. Use `--side-panel-top-inset`,
3611
+ * `--side-panel-right-inset` and `--side-panel-bottom-inset` to keep parts of
3612
+ * that element visible, for example a header.
3613
+ * The CSS custom properties can be set on the panel or on any ancestor.
3614
+ * The panel is a dialog that does not block the rest of the page. Set `label`
3615
+ * to give it an accessible name, which screen readers announce. When the panel
3616
+ * opens, focus moves into it. When the panel is removed, focus returns to the
3617
+ * element that had it before, unless focus is somewhere else by then.
3618
+ * The panel emits `close` when the user clicks the close button, or presses
3619
+ * Escape. It does not remove itself. The consumer must remove it from the DOM.
3620
+ * The user can resize the panel by dragging its left edge, or with the arrow
3621
+ * keys. The panel emits `changeWidth` when a resize is finished.
3622
+ * See the examples for how closing and resizing work in detail.
3623
+ * @exampleComponent limel-example-side-panel-basic
3624
+ * @exampleComponent limel-example-side-panel-insets
3625
+ * @exampleComponent limel-example-side-panel-escape
3626
+ * @private
3627
+ */
3628
+ interface LimelSidePanel {
3629
+ /**
3630
+ * Label of the close button. Shown as a tooltip and used as the accessible name.
3631
+ * @default 'Close'
3632
+ */
3633
+ "closeLabel": string;
3634
+ /**
3635
+ * Whether pressing Escape emits `close`. Set to `false` to let only the close button emit `close`. The panel then does not prevent the Escape event either.
3636
+ * @default true
3637
+ */
3638
+ "closeOnEscape": boolean;
3639
+ /**
3640
+ * Accessible name of the panel. Screen readers announce it. Set it to something that tells the user what the panel is for.
3641
+ */
3642
+ "label"?: string;
3643
+ /**
3644
+ * Label of the resize handle. Used as the accessible name.
3645
+ * @default 'Resize'
3646
+ */
3647
+ "resizeLabel": string;
3648
+ }
3567
3649
  /**
3568
3650
  * @exampleComponent limel-example-slider-basic
3569
3651
  * @exampleComponent limel-example-slider-unset
@@ -4358,10 +4440,18 @@ export interface LimelRadioButtonGroupCustomEvent<T> extends CustomEvent<T> {
4358
4440
  detail: T;
4359
4441
  target: HTMLLimelRadioButtonGroupElement;
4360
4442
  }
4443
+ export interface LimelResizeHandleCustomEvent<T> extends CustomEvent<T> {
4444
+ detail: T;
4445
+ target: HTMLLimelResizeHandleElement;
4446
+ }
4361
4447
  export interface LimelSelectCustomEvent<T> extends CustomEvent<T> {
4362
4448
  detail: T;
4363
4449
  target: HTMLLimelSelectElement;
4364
4450
  }
4451
+ export interface LimelSidePanelCustomEvent<T> extends CustomEvent<T> {
4452
+ detail: T;
4453
+ target: HTMLLimelSidePanelElement;
4454
+ }
4365
4455
  export interface LimelSliderCustomEvent<T> extends CustomEvent<T> {
4366
4456
  detail: T;
4367
4457
  target: HTMLLimelSliderElement;
@@ -6378,6 +6468,40 @@ declare global {
6378
6468
  prototype: HTMLLimelRadioButtonGroupElement;
6379
6469
  new (): HTMLLimelRadioButtonGroupElement;
6380
6470
  };
6471
+ interface HTMLLimelResizeHandleElementEventMap {
6472
+ "changeSize": number;
6473
+ "endResize": void;
6474
+ }
6475
+ /**
6476
+ * A handle on an edge of an element. The user drags the handle, or presses an
6477
+ * arrow key while the handle has focus, to resize the element.
6478
+ * The handle does not resize the element. It emits `changeSize` with the size
6479
+ * that the user asks for, and the consumer applies it.
6480
+ * The handle must be a direct child of the element that it resizes. When the
6481
+ * handle is placed directly in a shadow root, it resizes the element that has
6482
+ * the shadow root. It has `position: absolute` and `z-index: 1`, and sits on
6483
+ * the edge that `location` names. Give the element a `position` other than
6484
+ * `static`. If other content covers the handle, also give the element
6485
+ * `isolation: isolate`.
6486
+ * @exampleComponent limel-example-resize-handle-basic
6487
+ * @exampleComponent limel-example-resize-handle-locations
6488
+ * @exampleComponent limel-example-resize-handle-grab-area
6489
+ * @private
6490
+ */
6491
+ interface HTMLLimelResizeHandleElement extends Components.LimelResizeHandle, HTMLStencilElement {
6492
+ addEventListener<K extends keyof HTMLLimelResizeHandleElementEventMap>(type: K, listener: (this: HTMLLimelResizeHandleElement, ev: LimelResizeHandleCustomEvent<HTMLLimelResizeHandleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6493
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6494
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6495
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6496
+ removeEventListener<K extends keyof HTMLLimelResizeHandleElementEventMap>(type: K, listener: (this: HTMLLimelResizeHandleElement, ev: LimelResizeHandleCustomEvent<HTMLLimelResizeHandleElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6497
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6498
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6499
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6500
+ }
6501
+ var HTMLLimelResizeHandleElement: {
6502
+ prototype: HTMLLimelResizeHandleElement;
6503
+ new (): HTMLLimelResizeHandleElement;
6504
+ };
6381
6505
  /**
6382
6506
  * Makes content that is larger than its container scrollable, along one axis.
6383
6507
  * The native scrollbar is hidden. Instead, an edge that has more to reveal
@@ -6464,6 +6588,46 @@ declare global {
6464
6588
  prototype: HTMLLimelShortcutElement;
6465
6589
  new (): HTMLLimelShortcutElement;
6466
6590
  };
6591
+ interface HTMLLimelSidePanelElementEventMap {
6592
+ "close": void;
6593
+ "changeWidth": number;
6594
+ }
6595
+ /**
6596
+ * A resizable panel that is displayed on top of the right side of the page.
6597
+ * The content is placed in the default slot, below a toolbar with a close button.
6598
+ * The panel is positioned relative to its nearest positioned ancestor. Set
6599
+ * `position: relative` on that element. Use `--side-panel-top-inset`,
6600
+ * `--side-panel-right-inset` and `--side-panel-bottom-inset` to keep parts of
6601
+ * that element visible, for example a header.
6602
+ * The CSS custom properties can be set on the panel or on any ancestor.
6603
+ * The panel is a dialog that does not block the rest of the page. Set `label`
6604
+ * to give it an accessible name, which screen readers announce. When the panel
6605
+ * opens, focus moves into it. When the panel is removed, focus returns to the
6606
+ * element that had it before, unless focus is somewhere else by then.
6607
+ * The panel emits `close` when the user clicks the close button, or presses
6608
+ * Escape. It does not remove itself. The consumer must remove it from the DOM.
6609
+ * The user can resize the panel by dragging its left edge, or with the arrow
6610
+ * keys. The panel emits `changeWidth` when a resize is finished.
6611
+ * See the examples for how closing and resizing work in detail.
6612
+ * @exampleComponent limel-example-side-panel-basic
6613
+ * @exampleComponent limel-example-side-panel-insets
6614
+ * @exampleComponent limel-example-side-panel-escape
6615
+ * @private
6616
+ */
6617
+ interface HTMLLimelSidePanelElement extends Components.LimelSidePanel, HTMLStencilElement {
6618
+ addEventListener<K extends keyof HTMLLimelSidePanelElementEventMap>(type: K, listener: (this: HTMLLimelSidePanelElement, ev: LimelSidePanelCustomEvent<HTMLLimelSidePanelElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6619
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6620
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6621
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6622
+ removeEventListener<K extends keyof HTMLLimelSidePanelElementEventMap>(type: K, listener: (this: HTMLLimelSidePanelElement, ev: LimelSidePanelCustomEvent<HTMLLimelSidePanelElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6623
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6624
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6625
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6626
+ }
6627
+ var HTMLLimelSidePanelElement: {
6628
+ prototype: HTMLLimelSidePanelElement;
6629
+ new (): HTMLLimelSidePanelElement;
6630
+ };
6467
6631
  interface HTMLLimelSliderElementEventMap {
6468
6632
  "change": number | null;
6469
6633
  }
@@ -6910,9 +7074,11 @@ declare global {
6910
7074
  "limel-prosemirror-adapter": HTMLLimelProsemirrorAdapterElement;
6911
7075
  "limel-radio-button": HTMLLimelRadioButtonElement;
6912
7076
  "limel-radio-button-group": HTMLLimelRadioButtonGroupElement;
7077
+ "limel-resize-handle": HTMLLimelResizeHandleElement;
6913
7078
  "limel-scroller": HTMLLimelScrollerElement;
6914
7079
  "limel-select": HTMLLimelSelectElement;
6915
7080
  "limel-shortcut": HTMLLimelShortcutElement;
7081
+ "limel-side-panel": HTMLLimelSidePanelElement;
6916
7082
  "limel-slider": HTMLLimelSliderElement;
6917
7083
  "limel-snackbar": HTMLLimelSnackbarElement;
6918
7084
  "limel-spinner": HTMLLimelSpinnerElement;
@@ -8363,7 +8529,7 @@ declare namespace LocalJSX {
8363
8529
  */
8364
8530
  "dockItems"?: DockItem[];
8365
8531
  /**
8366
- * Defines the width of the component, when it loads. - `true`: shows both icons and labels of the Dock items. - `false`: only shows icons of the doc items, and displays their labels as tooltip. Note: when `useMobileLayout` is `true`, labels will always be shown as tooltips. Read more below…
8532
+ * Defines whether the labels of the dock items are shown, when the component loads. - `true`: shows both icons and labels of the dock items. In the vertical layout, the labels are placed beside the icons. In the horizontal mobile layout, they are placed below the icons, in small text that is truncated when there is not enough space. - `false`: only shows icons of the dock items, and displays their labels as tooltips. In the horizontal mobile layout, there is no room for the button that expands and shrinks the dock, so end-users cannot change this there. Set `expanded` yourself, for example from a user setting.
8367
8533
  * @default false
8368
8534
  */
8369
8535
  "expanded"?: boolean;
@@ -10468,6 +10634,53 @@ declare namespace LocalJSX {
10468
10634
  */
10469
10635
  "selectedItem"?: ListItem<string | number>;
10470
10636
  }
10637
+ /**
10638
+ * A handle on an edge of an element. The user drags the handle, or presses an
10639
+ * arrow key while the handle has focus, to resize the element.
10640
+ * The handle does not resize the element. It emits `changeSize` with the size
10641
+ * that the user asks for, and the consumer applies it.
10642
+ * The handle must be a direct child of the element that it resizes. When the
10643
+ * handle is placed directly in a shadow root, it resizes the element that has
10644
+ * the shadow root. It has `position: absolute` and `z-index: 1`, and sits on
10645
+ * the edge that `location` names. Give the element a `position` other than
10646
+ * `static`. If other content covers the handle, also give the element
10647
+ * `isolation: isolate`.
10648
+ * @exampleComponent limel-example-resize-handle-basic
10649
+ * @exampleComponent limel-example-resize-handle-locations
10650
+ * @exampleComponent limel-example-resize-handle-grab-area
10651
+ * @private
10652
+ */
10653
+ interface LimelResizeHandle {
10654
+ /**
10655
+ * The accessible name of the handle.
10656
+ */
10657
+ "label"?: string;
10658
+ /**
10659
+ * The location of the handle relative to the resizable element.
10660
+ * @default 'left'
10661
+ */
10662
+ "location"?: 'left' | 'right' | 'top' | 'bottom';
10663
+ /**
10664
+ * The largest size that the element can have, in pixels.
10665
+ */
10666
+ "max"?: number;
10667
+ /**
10668
+ * The smallest size that the element can have, in pixels.
10669
+ */
10670
+ "min"?: number;
10671
+ /**
10672
+ * Emitted on each pointer move during a drag, and on each arrow key press. The detail is the size that the user asks for, in pixels. The consumer limits it, uses it, and sets the result as `value`.
10673
+ */
10674
+ "onChangeSize"?: (event: LimelResizeHandleCustomEvent<number>) => void;
10675
+ /**
10676
+ * Emitted after the last `changeSize` when the user has finished a resize: when the pointer is released after it has moved, and after each arrow key press. Pressing and releasing the handle without moving it emits nothing.
10677
+ */
10678
+ "onEndResize"?: (event: LimelResizeHandleCustomEvent<void>) => void;
10679
+ /**
10680
+ * The size of the element, in pixels: the width when `location` is `left` or `right`, and the height when it is `top` or `bottom`.
10681
+ */
10682
+ "value"?: number;
10683
+ }
10471
10684
  /**
10472
10685
  * Makes content that is larger than its container scrollable, along one axis.
10473
10686
  * The native scrollbar is hidden. Instead, an edge that has more to reveal
@@ -10603,6 +10816,57 @@ declare namespace LocalJSX {
10603
10816
  */
10604
10817
  "link"?: Link;
10605
10818
  }
10819
+ /**
10820
+ * A resizable panel that is displayed on top of the right side of the page.
10821
+ * The content is placed in the default slot, below a toolbar with a close button.
10822
+ * The panel is positioned relative to its nearest positioned ancestor. Set
10823
+ * `position: relative` on that element. Use `--side-panel-top-inset`,
10824
+ * `--side-panel-right-inset` and `--side-panel-bottom-inset` to keep parts of
10825
+ * that element visible, for example a header.
10826
+ * The CSS custom properties can be set on the panel or on any ancestor.
10827
+ * The panel is a dialog that does not block the rest of the page. Set `label`
10828
+ * to give it an accessible name, which screen readers announce. When the panel
10829
+ * opens, focus moves into it. When the panel is removed, focus returns to the
10830
+ * element that had it before, unless focus is somewhere else by then.
10831
+ * The panel emits `close` when the user clicks the close button, or presses
10832
+ * Escape. It does not remove itself. The consumer must remove it from the DOM.
10833
+ * The user can resize the panel by dragging its left edge, or with the arrow
10834
+ * keys. The panel emits `changeWidth` when a resize is finished.
10835
+ * See the examples for how closing and resizing work in detail.
10836
+ * @exampleComponent limel-example-side-panel-basic
10837
+ * @exampleComponent limel-example-side-panel-insets
10838
+ * @exampleComponent limel-example-side-panel-escape
10839
+ * @private
10840
+ */
10841
+ interface LimelSidePanel {
10842
+ /**
10843
+ * Label of the close button. Shown as a tooltip and used as the accessible name.
10844
+ * @default 'Close'
10845
+ */
10846
+ "closeLabel"?: string;
10847
+ /**
10848
+ * Whether pressing Escape emits `close`. Set to `false` to let only the close button emit `close`. The panel then does not prevent the Escape event either.
10849
+ * @default true
10850
+ */
10851
+ "closeOnEscape"?: boolean;
10852
+ /**
10853
+ * Accessible name of the panel. Screen readers announce it. Set it to something that tells the user what the panel is for.
10854
+ */
10855
+ "label"?: string;
10856
+ /**
10857
+ * Emitted when the user has finished a resize that changed the width. The detail is the new width in pixels. The panel already uses the new width. Store the value to restore the width with `--side-panel-width` the next time the panel opens.
10858
+ */
10859
+ "onChangeWidth"?: (event: LimelSidePanelCustomEvent<number>) => void;
10860
+ /**
10861
+ * Emitted when the close button is clicked, or when Escape is pressed and `closeOnEscape` is `true`.
10862
+ */
10863
+ "onClose"?: (event: LimelSidePanelCustomEvent<void>) => void;
10864
+ /**
10865
+ * Label of the resize handle. Used as the accessible name.
10866
+ * @default 'Resize'
10867
+ */
10868
+ "resizeLabel"?: string;
10869
+ }
10606
10870
  /**
10607
10871
  * @exampleComponent limel-example-slider-basic
10608
10872
  * @exampleComponent limel-example-slider-unset
@@ -11852,6 +12116,13 @@ declare namespace LocalJSX {
11852
12116
  "badgeIcons": boolean;
11853
12117
  "maxLinesSecondaryText": number;
11854
12118
  }
12119
+ interface LimelResizeHandleAttributes {
12120
+ "location": 'left' | 'right' | 'top' | 'bottom';
12121
+ "label": string;
12122
+ "value": number;
12123
+ "min": number;
12124
+ "max": number;
12125
+ }
11855
12126
  interface LimelScrollerAttributes {
11856
12127
  "orientation": 'horizontal' | 'vertical';
11857
12128
  }
@@ -11870,6 +12141,12 @@ declare namespace LocalJSX {
11870
12141
  "disabled": boolean;
11871
12142
  "badge": string;
11872
12143
  }
12144
+ interface LimelSidePanelAttributes {
12145
+ "label": string;
12146
+ "closeLabel": string;
12147
+ "resizeLabel": string;
12148
+ "closeOnEscape": boolean;
12149
+ }
11873
12150
  interface LimelSliderAttributes {
11874
12151
  "disabled": boolean;
11875
12152
  "readonly": boolean;
@@ -12039,9 +12316,11 @@ declare namespace LocalJSX {
12039
12316
  "limel-prosemirror-adapter": Omit<LimelProsemirrorAdapter, keyof LimelProsemirrorAdapterAttributes> & { [K in keyof LimelProsemirrorAdapter & keyof LimelProsemirrorAdapterAttributes]?: LimelProsemirrorAdapter[K] } & { [K in keyof LimelProsemirrorAdapter & keyof LimelProsemirrorAdapterAttributes as `attr:${K}`]?: LimelProsemirrorAdapterAttributes[K] } & { [K in keyof LimelProsemirrorAdapter & keyof LimelProsemirrorAdapterAttributes as `prop:${K}`]?: LimelProsemirrorAdapter[K] };
12040
12317
  "limel-radio-button": Omit<LimelRadioButton, keyof LimelRadioButtonAttributes> & { [K in keyof LimelRadioButton & keyof LimelRadioButtonAttributes]?: LimelRadioButton[K] } & { [K in keyof LimelRadioButton & keyof LimelRadioButtonAttributes as `attr:${K}`]?: LimelRadioButtonAttributes[K] } & { [K in keyof LimelRadioButton & keyof LimelRadioButtonAttributes as `prop:${K}`]?: LimelRadioButton[K] } & OneOf<"id", LimelRadioButton["id"], LimelRadioButtonAttributes["id"]>;
12041
12318
  "limel-radio-button-group": Omit<LimelRadioButtonGroup, keyof LimelRadioButtonGroupAttributes> & { [K in keyof LimelRadioButtonGroup & keyof LimelRadioButtonGroupAttributes]?: LimelRadioButtonGroup[K] } & { [K in keyof LimelRadioButtonGroup & keyof LimelRadioButtonGroupAttributes as `attr:${K}`]?: LimelRadioButtonGroupAttributes[K] } & { [K in keyof LimelRadioButtonGroup & keyof LimelRadioButtonGroupAttributes as `prop:${K}`]?: LimelRadioButtonGroup[K] };
12319
+ "limel-resize-handle": Omit<LimelResizeHandle, keyof LimelResizeHandleAttributes> & { [K in keyof LimelResizeHandle & keyof LimelResizeHandleAttributes]?: LimelResizeHandle[K] } & { [K in keyof LimelResizeHandle & keyof LimelResizeHandleAttributes as `attr:${K}`]?: LimelResizeHandleAttributes[K] } & { [K in keyof LimelResizeHandle & keyof LimelResizeHandleAttributes as `prop:${K}`]?: LimelResizeHandle[K] };
12042
12320
  "limel-scroller": Omit<LimelScroller, keyof LimelScrollerAttributes> & { [K in keyof LimelScroller & keyof LimelScrollerAttributes]?: LimelScroller[K] } & { [K in keyof LimelScroller & keyof LimelScrollerAttributes as `attr:${K}`]?: LimelScrollerAttributes[K] } & { [K in keyof LimelScroller & keyof LimelScrollerAttributes as `prop:${K}`]?: LimelScroller[K] };
12043
12321
  "limel-select": Omit<LimelSelect, keyof LimelSelectAttributes> & { [K in keyof LimelSelect & keyof LimelSelectAttributes]?: LimelSelect[K] } & { [K in keyof LimelSelect & keyof LimelSelectAttributes as `attr:${K}`]?: LimelSelectAttributes[K] } & { [K in keyof LimelSelect & keyof LimelSelectAttributes as `prop:${K}`]?: LimelSelect[K] };
12044
12322
  "limel-shortcut": Omit<LimelShortcut, keyof LimelShortcutAttributes> & { [K in keyof LimelShortcut & keyof LimelShortcutAttributes]?: LimelShortcut[K] } & { [K in keyof LimelShortcut & keyof LimelShortcutAttributes as `attr:${K}`]?: LimelShortcutAttributes[K] } & { [K in keyof LimelShortcut & keyof LimelShortcutAttributes as `prop:${K}`]?: LimelShortcut[K] };
12323
+ "limel-side-panel": Omit<LimelSidePanel, keyof LimelSidePanelAttributes> & { [K in keyof LimelSidePanel & keyof LimelSidePanelAttributes]?: LimelSidePanel[K] } & { [K in keyof LimelSidePanel & keyof LimelSidePanelAttributes as `attr:${K}`]?: LimelSidePanelAttributes[K] } & { [K in keyof LimelSidePanel & keyof LimelSidePanelAttributes as `prop:${K}`]?: LimelSidePanel[K] };
12045
12324
  "limel-slider": Omit<LimelSlider, keyof LimelSliderAttributes> & { [K in keyof LimelSlider & keyof LimelSliderAttributes]?: LimelSlider[K] } & { [K in keyof LimelSlider & keyof LimelSliderAttributes as `attr:${K}`]?: LimelSliderAttributes[K] } & { [K in keyof LimelSlider & keyof LimelSliderAttributes as `prop:${K}`]?: LimelSlider[K] };
12046
12325
  "limel-snackbar": Omit<LimelSnackbar, keyof LimelSnackbarAttributes> & { [K in keyof LimelSnackbar & keyof LimelSnackbarAttributes]?: LimelSnackbar[K] } & { [K in keyof LimelSnackbar & keyof LimelSnackbarAttributes as `attr:${K}`]?: LimelSnackbarAttributes[K] } & { [K in keyof LimelSnackbar & keyof LimelSnackbarAttributes as `prop:${K}`]?: LimelSnackbar[K] };
12047
12326
  "limel-spinner": Omit<LimelSpinner, keyof LimelSpinnerAttributes> & { [K in keyof LimelSpinner & keyof LimelSpinnerAttributes]?: LimelSpinner[K] } & { [K in keyof LimelSpinner & keyof LimelSpinnerAttributes as `attr:${K}`]?: LimelSpinnerAttributes[K] } & { [K in keyof LimelSpinner & keyof LimelSpinnerAttributes as `prop:${K}`]?: LimelSpinner[K] };
@@ -13237,6 +13516,23 @@ declare module "@stencil/core" {
13237
13516
  * @beta
13238
13517
  */
13239
13518
  "limel-radio-button-group": LocalJSX.IntrinsicElements["limel-radio-button-group"] & JSXBase.HTMLAttributes<HTMLLimelRadioButtonGroupElement>;
13519
+ /**
13520
+ * A handle on an edge of an element. The user drags the handle, or presses an
13521
+ * arrow key while the handle has focus, to resize the element.
13522
+ * The handle does not resize the element. It emits `changeSize` with the size
13523
+ * that the user asks for, and the consumer applies it.
13524
+ * The handle must be a direct child of the element that it resizes. When the
13525
+ * handle is placed directly in a shadow root, it resizes the element that has
13526
+ * the shadow root. It has `position: absolute` and `z-index: 1`, and sits on
13527
+ * the edge that `location` names. Give the element a `position` other than
13528
+ * `static`. If other content covers the handle, also give the element
13529
+ * `isolation: isolate`.
13530
+ * @exampleComponent limel-example-resize-handle-basic
13531
+ * @exampleComponent limel-example-resize-handle-locations
13532
+ * @exampleComponent limel-example-resize-handle-grab-area
13533
+ * @private
13534
+ */
13535
+ "limel-resize-handle": LocalJSX.IntrinsicElements["limel-resize-handle"] & JSXBase.HTMLAttributes<HTMLLimelResizeHandleElement>;
13240
13536
  /**
13241
13537
  * Makes content that is larger than its container scrollable, along one axis.
13242
13538
  * The native scrollbar is hidden. Instead, an edge that has more to reveal
@@ -13297,6 +13593,29 @@ declare module "@stencil/core" {
13297
13593
  * @exampleComponent limel-example-shortcut-with-click-handler
13298
13594
  */
13299
13595
  "limel-shortcut": LocalJSX.IntrinsicElements["limel-shortcut"] & JSXBase.HTMLAttributes<HTMLLimelShortcutElement>;
13596
+ /**
13597
+ * A resizable panel that is displayed on top of the right side of the page.
13598
+ * The content is placed in the default slot, below a toolbar with a close button.
13599
+ * The panel is positioned relative to its nearest positioned ancestor. Set
13600
+ * `position: relative` on that element. Use `--side-panel-top-inset`,
13601
+ * `--side-panel-right-inset` and `--side-panel-bottom-inset` to keep parts of
13602
+ * that element visible, for example a header.
13603
+ * The CSS custom properties can be set on the panel or on any ancestor.
13604
+ * The panel is a dialog that does not block the rest of the page. Set `label`
13605
+ * to give it an accessible name, which screen readers announce. When the panel
13606
+ * opens, focus moves into it. When the panel is removed, focus returns to the
13607
+ * element that had it before, unless focus is somewhere else by then.
13608
+ * The panel emits `close` when the user clicks the close button, or presses
13609
+ * Escape. It does not remove itself. The consumer must remove it from the DOM.
13610
+ * The user can resize the panel by dragging its left edge, or with the arrow
13611
+ * keys. The panel emits `changeWidth` when a resize is finished.
13612
+ * See the examples for how closing and resizing work in detail.
13613
+ * @exampleComponent limel-example-side-panel-basic
13614
+ * @exampleComponent limel-example-side-panel-insets
13615
+ * @exampleComponent limel-example-side-panel-escape
13616
+ * @private
13617
+ */
13618
+ "limel-side-panel": LocalJSX.IntrinsicElements["limel-side-panel"] & JSXBase.HTMLAttributes<HTMLLimelSidePanelElement>;
13300
13619
  /**
13301
13620
  * @exampleComponent limel-example-slider-basic
13302
13621
  * @exampleComponent limel-example-slider-unset
@@ -0,0 +1,33 @@
1
+ import { ResizeLocation } from './resize-location';
2
+ export interface ResizeListener {
3
+ /**
4
+ * Returns the location of the handle. Called when a drag starts.
5
+ */
6
+ getLocation: () => ResizeLocation;
7
+ /**
8
+ * Returns the current size of the element, in pixels: the width when the
9
+ * handle is on the left or the right, the height when it is at the top or
10
+ * the bottom.
11
+ */
12
+ getSize: () => number;
13
+ /**
14
+ * Called with the new size, in pixels, on each pointer move.
15
+ */
16
+ resize: (size: number) => void;
17
+ /**
18
+ * Called when the pointer is released after `resize` was called. Not
19
+ * called when the pointer is released without having moved, and not called
20
+ * when the listeners are removed during a drag.
21
+ */
22
+ end: () => void;
23
+ }
24
+ /**
25
+ * Makes an element resizable with a drag handle on one of its edges.
26
+ *
27
+ * @param handle - the drag handle
28
+ * @param listener - gives the location and the size, and is told about the
29
+ * resize
30
+ * @returns a function that removes the event listeners
31
+ */
32
+ export declare function dragToResize(handle: HTMLElement, listener: ResizeListener): () => void;
33
+ //# sourceMappingURL=drag-to-resize.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns the element that has focus, also when it is inside shadow roots.
3
+ * `document.activeElement` returns the host of the outermost shadow root that
4
+ * contains the focused element.
5
+ *
6
+ * @returns the element that has focus, or `null` when no element has focus
7
+ */
8
+ export declare function getDeepActiveElement(): Element | null;
9
+ //# sourceMappingURL=get-deep-active-element.d.ts.map
@@ -0,0 +1,59 @@
1
+ export type ResizeLocation = 'left' | 'right' | 'top' | 'bottom';
2
+ interface LocationTraits {
3
+ /**
4
+ * The axis that the handle is moved along.
5
+ */
6
+ axis: 'x' | 'y';
7
+ /**
8
+ * The cursor to show while the handle is dragged.
9
+ */
10
+ cursor: 'col-resize' | 'row-resize';
11
+ /**
12
+ * `1` when the element gets larger as the pointer moves towards higher
13
+ * coordinates, and `-1` when it gets larger towards lower coordinates.
14
+ */
15
+ direction: 1 | -1;
16
+ /**
17
+ * The key that moves the handle away from the element, which makes the
18
+ * element larger.
19
+ */
20
+ growKey: string;
21
+ /**
22
+ * The key that moves the handle into the element, which makes the element
23
+ * smaller.
24
+ */
25
+ shrinkKey: string;
26
+ }
27
+ export declare const resizeLocations: Record<ResizeLocation, LocationTraits>;
28
+ /**
29
+ * Returns the orientation of a separator that is a handle at the given
30
+ * location.
31
+ *
32
+ * @param location - the location of the handle
33
+ * @returns the orientation
34
+ */
35
+ export declare function getOrientation(location: ResizeLocation): 'vertical' | 'horizontal';
36
+ /**
37
+ * Returns how many pixels the size of the element changes when the key is
38
+ * pressed while the handle has focus.
39
+ *
40
+ * @param location - the location of the handle
41
+ * @param key - the `key` of the keyboard event
42
+ * @returns the change in pixels, or `undefined` when the key does not resize
43
+ */
44
+ export declare function getKeyboardSizeChange(location: ResizeLocation, key: string): number | undefined;
45
+ /**
46
+ * Returns the size of the element along the axis that a handle at the given
47
+ * location resizes: the width for `left` and `right`, the height for `top` and
48
+ * `bottom`.
49
+ *
50
+ * `offsetWidth` and `offsetHeight` are used and not `getBoundingClientRect`,
51
+ * because an ancestor can be scaled with a transform.
52
+ *
53
+ * @param element - the element that the handle resizes
54
+ * @param location - the location of the handle
55
+ * @returns the size in pixels
56
+ */
57
+ export declare function measureSize(element: HTMLElement, location: ResizeLocation): number;
58
+ export {};
59
+ //# sourceMappingURL=resize-location.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "40.8.1",
3
+ "version": "40.10.0",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -71,7 +71,7 @@
71
71
  "@types/react-dom": "^19.3.0",
72
72
  "@types/tabulator-tables": "^6.3.6",
73
73
  "@vitest/browser-playwright": "^4.1.11",
74
- "axe-core": "4.13.0",
74
+ "axe-core": "4.14.0",
75
75
  "codemirror": "^5.65.9",
76
76
  "cross-env": "^10.1.0",
77
77
  "dayjs": "^1.11.23",
@@ -1 +0,0 @@
1
- import{r as t,c as s,h as i,H as a,a as e}from"./p-BU9IJqli.js";import{d as o}from"./p-z_E3sq3p.js";const n=class{constructor(i){t(this,i),this.changeTab=s(this,"changeTab",7),this.tabs=[],this.orientation="horizontal",this.slotElements=[],this.handleChangeTabs=this.handleChangeTabs.bind(this),this.setSlotElements=this.setSlotElements.bind(this),this.setTabStatus=this.setTabStatus.bind(this)}connectedCallback(){this.initialize()}componentDidLoad(){this.initialize()}initialize(){const t=this.getSlot();if(t){t.addEventListener("slotchange",this.setSlotElements),this.setSlotElements();for(const t of this.tabs)this.setTabStatus(t)}}disconnectedCallback(){this.getSlot().removeEventListener("slotchange",this.setSlotElements)}tabsChanged(){this.hidePanels();for(const t of this.tabs)this.setTabStatus(t)}render(){return i(a,{key:"130cd711926c119be1b3084dfb966afe6d280926",onChangeTab:this.handleChangeTabs},i("div",{key:"e76da7ba8c93a3d9d4c03a84a01a5358b39b17ed",class:"tab-panel"},i("limel-tab-bar",{key:"0866cd6c59e5e4ea372678a969bc646db81ed285",tabs:this.tabs,orientation:this.orientation}),i("div",{key:"c0ee8b9d6bffcb32fc4894bf0ba7409ac194577d",class:"tab-content"},i("slot",{key:"46b6cd024188a04ba466d831051cf3628996d97e"}))))}setSlotElements(){const t=this.getSlot();this.hidePanels(),this.slotElements=Array.prototype.slice.call(t.assignedElements());for(const t of this.tabs)this.setTabStatus(t)}setTabStatus(t){const s=this.slotElements.find((s=>s.id===t.id));s&&(s.style.display=t.active?"":"none",s.tab=t)}handleChangeTabs(t){this.tabs=this.tabs.map((s=>s.id===t.detail.id?t.detail:s)),this.setTabStatus(t.detail),setTimeout(o,0)}getSlot(){return this.host.shadowRoot.querySelector("slot")}hidePanels(){for(const t of this.slotElements)t.style.display="none"}get host(){return e(this)}static get watchers(){return{tabs:[{tabsChanged:0}]}}};n.style=":host(limel-tab-panel){--tab-panel-background-color:rgb(var(--contrast-100));display:block;height:100%}.tab-panel{height:100%;position:relative;display:flex;flex-direction:column}.tab-content{height:100%;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;background-color:var(--tab-panel-background-color)}:host(limel-tab-panel[orientation=vertical]) div.tab-panel{flex-direction:row}:host(limel-tab-panel[orientation=vertical]) div.tab-content{min-width:0}";export{n as limel_tab_panel}
@@ -1 +0,0 @@
1
- import{r as i,c as t,h as e,H as s}from"./p-BU9IJqli.js";import{t as a}from"./p-w3yKYfBQ.js";import{g as n,a as r,b as o,c as l}from"./p-BCq5M9TE.js";import{f as h}from"./p-24yUSW40.js";import{r as d}from"./p-Dv2HOgWN.js";import"./p-ChagAaNf.js";import"./p-Bu_YRgCL.js";import"./p-CgNJbSP4.js";const p={id:null,text:null,removable:!0},c=class{constructor(e){i(this,e),this.change=t(this,"change",7),this.interact=t(this,"interact",7),this.required=!1,this.disabled=!1,this.readonly=!1,this.invalid=!1,this.loading=!1,this.accept="*",this.language="en",this.dropZoneTip=()=>this.getTranslation("file.drag-and-drop-tips"),this.handleNewFiles=async i=>{this.preventAndStop(i);const t=i.detail[0];let e=t;const s=null==t?void 0:t.fileContent;if(this.resizeImage&&s instanceof Blob&&this.isResizableImage(s)){const i=Object.assign(Object.assign({},t),{loading:!0,statusText:this.getTranslation("file.optimizing")});this.resizingFile=i;try{const i=await d(s,this.resizeImage);e=Object.assign(Object.assign({},t),{filename:i.name,size:i.size,contentType:i.type,fileContent:i})}catch(i){}if(this.resizingFile!==i)return;this.resizingFile=e}this.change.emit(e)},this.handleChipSetChange=i=>{i.stopPropagation();const t=0===i.detail.length?i.detail[0]:null;t||(this.resizingFile=void 0,this.change.emit(t))},this.handleChipInteract=i=>{this.preventAndStop(i),this.interact.emit(i.detail.id)}}get displayedFile(){var i;return null!==(i=this.value)&&void 0!==i?i:this.resizingFile}handleValueChange(){this.resizingFile=void 0}render(){return e(s,{key:"dfaf1d7c9ddb1a8e960547db042402fa690dc829","aria-busy":this.isBusy?"true":"false"},e("limel-file-dropzone",{key:"a3ebe9b925c2e13ad1b87aa3f3a948b05e6b7473",disabled:this.disabled||this.readonly||!!this.displayedFile,accept:this.accept,onFilesSelected:this.handleNewFiles},this.renderChipset()),this.renderDragAndDropTip(),this.renderSpinner())}get statusText(){var i,t,e;return null!==(e=null===(t=null===(i=this.displayedFile)||void 0===i?void 0:i.statusText)||void 0===t?void 0:t.trim())&&void 0!==e?e:""}get isBusy(){var i,t;return this.loading||Boolean(null===(i=this.displayedFile)||void 0===i?void 0:i.loading)||void 0!==(null===(t=this.displayedFile)||void 0===t?void 0:t.progress)}renderSpinner(){if(this.isBusy)return e("limel-spinner",null)}renderDragAndDropTip(){if(!(this.displayedFile||this.disabled||this.readonly||this.isBusy))return e("div",{class:"drag-and-drop-tip"},e("span",{class:"invisible-label-mock",role:"presentation"},this.label),e("span",{class:"tip"},this.dropZoneTip()))}isResizableImage(i){var t;return Boolean(null===(t=i.type)||void 0===t?void 0:t.startsWith("image/"))&&"image/svg+xml"!==i.type}getChipArray(){const i=this.displayedFile;return i?[Object.assign(Object.assign({},p),{text:i.filename,id:i.id,icon:{name:l(i),title:o(i),color:r(i),backgroundColor:n(i)},badge:this.getBadge(),href:i.href,menuItems:i.menuItems,loading:i.loading,progress:i.progress,invalid:i.invalid})]:[]}getBadge(){var i;return this.statusText?this.statusText:"number"==typeof(null===(i=this.displayedFile)||void 0===i?void 0:i.size)?h(this.displayedFile.size):void 0}renderChipset(){const i=e("limel-chip-set",{disabled:this.disabled,readonly:this.readonly,invalid:this.invalid,clearAllButton:!1,label:this.label,helperText:this.helperText,leadingIcon:"upload_to_cloud",language:this.language,onChange:this.handleChipSetChange,onInteract:this.handleChipInteract,required:this.required,type:"input",value:this.getChipArray()});return this.value?i:e("limel-file-input",{accept:this.accept,disabled:this.disabled||this.readonly},i)}preventAndStop(i){i.stopPropagation(),i.preventDefault()}getTranslation(i){return a.get(i,this.language)}static get watchers(){return{value:[{handleValueChange:0}]}}};c.style='@charset "UTF-8";:host(limel-file){--badge-max-width:auto;position:relative}.drag-and-drop-tip{pointer-events:none;position:absolute;box-sizing:border-box;margin:0.25rem;inset:0;display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;border-radius:0.25rem;border:1px dashed rgb(var(--contrast-700));padding:0 0.5rem}.drag-and-drop-tip .invisible-label-mock{flex-shrink:0;opacity:0;padding-right:1rem;padding-left:1.5rem}.drag-and-drop-tip .tip{font-size:smaller;color:var(--limel-theme-text-secondary-on-background-color);height:auto;max-height:3rem;line-height:1;display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}limel-spinner{pointer-events:none;position:absolute;inset:0 0.375rem 0 auto;margin:auto}';export{c as limel_file}
@@ -1 +0,0 @@
1
- import{r as o,h as t,H as e,a}from"./p-BU9IJqli.js";import{m as i,r as n}from"./p-CIf8aGSd.js";import{c as s}from"./p-BrjD-ITe.js";import{d as r,g as l}from"./p-CgNJbSP4.js";const d=class{constructor(t){o(this,t),this.elevated=!1,this.disabled=!1,this.tooltipId=s(),this.filterClickWhenDisabled=o=>{this.disabled&&o.preventDefault()}}connectedCallback(){this.initialize()}componentWillLoad(){i(this.host)}disconnectedCallback(){n(this.host)}componentDidLoad(){this.initialize()}initialize(){this.host.shadowRoot.querySelector(".mdc-icon-button")}render(){const o={};return this.host.hasAttribute("tabindex")&&(o.tabindex=this.host.getAttribute("tabindex")),t(e,{key:"e2fa10697beccc59cb8f332695e445522391649d",onClick:this.filterClickWhenDisabled},t("button",Object.assign({key:"2dc00d1341e9a458f5a7d060abd777c29cd333e0","aria-label":this.label,disabled:this.disabled,id:this.tooltipId},o),this.renderIcon(),this.renderTooltip(this.tooltipId)))}renderIcon(){var o,e;const a=l(this.icon),i=r(this.icon);return t("limel-icon",{name:a,"aria-label":i,"aria-hidden":i?null:"true",style:{color:`${null===(o=this.icon)||void 0===o?void 0:o.color}`,"--icon-background-color":`${null===(e=this.icon)||void 0===e?void 0:e.backgroundColor}`}})}renderTooltip(o){if(this.label)return t("limel-tooltip",{elementId:o,label:this.label,helperLabel:this.helperLabel})}static get delegatesFocus(){return!0}get host(){return a(this)}};d.style='@charset "UTF-8";:host([hidden]){display:none}:host([aria-expanded=true]) button,:host([aria-expanded]:not([aria-expanded=false])) button{box-shadow:var(--button-shadow-inset-pressed) !important}button{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit}button:not(:disabled){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(--icon-background-color, transparent)}button:not(:disabled):hover,button:not(:disabled):focus,button:not(:disabled):focus-visible{will-change:color, background-color, box-shadow, transform}button:not(:disabled):hover,button:not(:disabled):focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}button:not(:disabled):hover{box-shadow:var(--button-shadow-hovered)}button:not(:disabled):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:not(:disabled):hover,button:not(:disabled):active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button:not(:disabled):focus{outline:none}button:not(:disabled):focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button{display:inline-flex;align-items:center;justify-content:center;height:2.25rem;width:2.25rem;border-radius:50%}button:disabled{cursor:not-allowed;color:var(--limel-theme-text-disabled-on-background-color)}:host([elevated]) button:not(:hover):not(:active):not(:disabled):not(:focus-visible){box-shadow:var(--button-shadow-normal)}:host([elevated]) button:disabled{box-shadow:var(--button-shadow-normal)}limel-icon{padding:0.25rem;width:1.75rem}';export{d as limel_icon_button}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,a as r}from"./p-BU9IJqli.js";import{c as o,i as n}from"./p-Bkvc4sus.js";import{b as a}from"./p-BQeIv4aA.js";import{i as l}from"./p-BYfPV0O4.js";import{b as h}from"./p-BY5NjPj8.js";import{i as p}from"./p-B8VKuhvH.js";import{c}from"./p-BrjD-ITe.js";import"./p-BCq5M9TE.js";import"./p-Bu_YRgCL.js";import"./p-CgNJbSP4.js";import"./p-B6-3WXAv.js";import"./p-CZ30nDJE.js";import"./p-DK0pjX-Y.js";import"./p-BJQylLSL.js";import"./p-oiMYqRQ0.js";import"./p-DbBZn7JO.js";import"./p-BcJ-TDVt.js";import"./p-B--C3qwe.js";import"./p-BOEi1C7r.js";import"./p-CK4jS9_E.js";function f(t,i,s,e){for(var r=-1,o=null==t?0:t.length;++r<o;){var n=t[r];i(e,n,s(n),t)}return e}var m,d=(m=a,function(t,i){if(null==t)return t;if(!l(t))return m(t,i);for(var s=t.length,e=-1,r=Object(t);++e<s&&!1!==i(r[e],e,r););return t});function u(t,i,s,e){return d(t,(function(t,r,o){i(e,t,s(t),o)})),e}var b,j,v=(b=function(t,i,s){t[s?0:1].push(i)},j=function(){return[[],[]]},function(t,i){var s=p(t)?f:u,e=j?[[],[]]:{};return s(t,b,h(i),e)});const y=class{constructor(e){t(this,e),this.filesSelected=i(this,"filesSelected",7),this.filesRejected=i(this,"filesRejected",7),this.accept="*",this.disabled=!1,this.helperText="",this.hasFileToDrop=!1,this.renderOnDragLayout=()=>{if(!this.disabled&&this.hasFileToDrop)return s("div",{class:"has-file-to-drop"},s("limel-icon",{class:"icon",name:"upload_2"}),s("div",{class:"text-helpertext"},this.renderText(),this.renderHelperText()))},this.renderText=()=>{if(this.text)return s("span",{class:"text"},this.text)},this.renderHelperText=()=>{if(this.helperText)return s("span",{class:"helper-text"},this.helperText)},this.handleDrop=t=>{if(t.stopPropagation(),t.preventDefault(),this.hasFileToDrop=!1,this.disabled)return;const i=[...t.dataTransfer.files].map(o),[s,e]=v(i,(t=>n(t,this.accept)));s.length>0&&this.filesSelected.emit(s),e.length>0&&this.filesRejected.emit(e)},this.handleDragOver=t=>{this.hasFileToDrop=!0,t.preventDefault()},this.handleDragLeave=t=>{this.hasFileToDrop=!1,t.preventDefault()}}render(){return s(e,{key:"e9f43878405c9d969b0825e55322ae95b8770db1",onDrop:this.handleDrop,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave},s("slot",{key:"39087bebe8f40c34b3905891d22c3f9a585e4824"}),this.renderOnDragLayout())}};y.style=":host(limel-file-dropzone){display:block;position:relative}.has-file-to-drop{animation:display-drop-zone 0.6s ease forwards;box-sizing:border-box;isolation:isolate;z-index:1;position:absolute;inset:0.25rem;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:0.5rem;color:rgb(var(--contrast-700));border:0.125rem dashed rgb(var(--color-cyan-light));border-radius:0.75rem}.text-helpertext{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.icon{width:clamp(2rem, 5vh, 7rem)}.text{font-size:clamp(1rem, 2vh, 1.75rem)}.helper-text{font-size:clamp(0.75rem, 1.5vh, 1rem)}@keyframes display-drop-zone{0%{background-color:rgb(var(--contrast-1100), 0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);scale:0.9;opacity:0}50%{scale:1;opacity:1}100%{background-color:rgb(var(--contrast-1100), 0.8);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem)}}";const g=class{constructor(s){t(this,s),this.filesSelected=i(this,"filesSelected",7),this.accept="*",this.disabled=!1,this.multiple=!1,this.fileInputId=c(),this.handleClick=t=>{if(this.disabled)return t.stopPropagation(),void t.preventDefault();this.triggerFileDialog(),t.stopPropagation()},this.handleKeyUp=t=>{t.stopPropagation(),t.preventDefault(),"Enter"===t.code&&this.triggerFileDialog()},this.handleFileChange=t=>{const i=[...this.fileInput.files];0!==i.length&&(t.stopPropagation(),this.filesSelected.emit(i.map(o)),this.fileInput.value="")}}componentDidLoad(){this.fileInput=this.element.shadowRoot.getElementById(this.fileInputId)}render(){return s(e,{key:"38213e8f3e58a565368415e61fce7fcc44975848",onClick:this.handleClick,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown},s("input",{key:"1f75283470841c3821f601959038c31c72322f57",hidden:!0,id:this.fileInputId,onChange:this.handleFileChange,type:"file",accept:this.accept,disabled:this.disabled,multiple:this.multiple}),s("slot",{key:"4509934962cbfddb994329102f80c4abe0879d63"}))}handleKeyDown(t){["Tab","Backspace","Enter"].includes(t.code)||(t.preventDefault(),t.stopPropagation())}triggerFileDialog(){this.fileInput.click()}get element(){return r(this)}};export{y as limel_file_dropzone,g as limel_file_input}
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as r,a as i}from"./p-BU9IJqli.js";import{g as a,b as o}from"./p-CgNJbSP4.js";import{A as n,b as l,H as s,c,d as b,e as d}from"./p-DQ5DmW_Y.js";import{i as u}from"./p-COdirXg1.js";import{S as m,c as h}from"./p-B6-3WXAv.js";import{a as v,b as p,i as f,c as g}from"./p-pk5KIdKH.js";import"./p-CZ30nDJE.js";import"./p-DK0pjX-Y.js";import"./p-BJQylLSL.js";import"./p-oiMYqRQ0.js";import"./p-BYfPV0O4.js";import"./p-BcJ-TDVt.js";import"./p-DbBZn7JO.js";import"./p-B8VKuhvH.js";import"./p-B--C3qwe.js";import"./p-CK4jS9_E.js";import"./p-9W8bTt2G.js";var w=p((function(t,e){return f(t)?function(t,e){var r=-1,i=v,a=!0,o=t.length,n=[],l=e.length;if(!o)return n;e.length>=200&&(i=h,a=!1,e=new m(e));t:for(;++r<o;){var s=t[r],c=s;if(s=0!==s?s:0,a&&c==c){for(var b=l;b--;)if(e[b]===c)continue t;n.push(s)}else i(e,c,undefined)||n.push(s)}return n}(t,g(e,1,f)):[]}));const x={horizontal:new Map([[b,"previous"],[d,"next"],[s,"first"],[c,"last"]]),vertical:new Map([[n,"previous"],[l,"next"],[s,"first"],[c,"last"]])};function k(t,e){return t>=0&&t<e}function j(t,e){return r=>{var i;return!(null===(i=null==e?void 0:e.isDisabled)||void 0===i?void 0:i.call(e,t[r]))}}function y(t,e,r,i,a){for(let o=0;o<t;o+=1){const n=e+r*o;if(!i&&!k(n,t))break;const l=(n%t+t)%t;if(a(l))return l}return-1}const C=class{constructor(r){t(this,r),this.changeTab=e(this,"changeTab",7),this.tabs=[],this.orientation="horizontal",this.hasLoaded=!1,this.isLaidOutAgain=!1,this.handleKeyDown=this.handleKeyDown.bind(this)}async connectedCallback(){this.hasLoaded&&(this.revealedTabId=void 0,await this.revealActiveTab("auto"))}componentDidLoad(){this.hasLoaded=!0,this.triggerIconColorWarning()}async componentDidRender(){const t=this.isLaidOutAgain;this.isLaidOutAgain=!1,await this.revealActiveTab(!this.hasLoaded||t?"auto":void 0,t)}render(){const t=function(t,e,r){const i=t.length,a=j(t,r);return k(e,i)&&a(e)?e:y(i,0,1,!1,a)}(this.tabs,this.tabs.findIndex((t=>t.active)),this.getNavigationOptions());return r("div",{key:"d9f9e2659c8199ddd8202f04ed08535a91da2948",role:"tablist","aria-orientation":this.getOrientation(),onKeyDown:this.handleKeyDown},r("limel-scroller",{key:"fdc0e8389ddc7ac8d0d63e5c777de6b6bf337697",orientation:this.getOrientation()},this.tabs.map(((e,r)=>this.renderTab(e,r,r===t)))))}tabsChanged(t=[],e=[]){const r=t.map((t=>t.id)),i=e.map((t=>t.id));u(r,i)||(this.revealedTabId=void 0)}orientationChanged(){this.revealedTabId=void 0,this.isLaidOutAgain=!0}getOrientation(){return"vertical"===this.orientation?"vertical":"horizontal"}getNavigationOptions(){return{orientation:this.getOrientation(),wrap:!0}}getTabElements(){return[...this.host.shadowRoot.querySelectorAll('button[role="tab"]')]}async revealActiveTab(t,e=!1){const r=this.tabs.findIndex((t=>t.active));if(-1===r)return void(this.revealedTabId=void 0);if(this.tabs[r].id===this.revealedTabId)return;this.revealedTabId=this.tabs[r].id;const i=this.getTabElements()[r],a=this.host.shadowRoot.querySelector("limel-scroller");i&&a&&(i.matches(":focus")&&!e||(await a.componentOnReady(),await a.reveal(i,t)))}handleKeyDown(t){const e=this.getNavigationOptions();if(!function(t,e){return!(t.altKey||t.ctrlKey||t.metaKey)&&x[e.orientation].has(t.key)}(t,e))return;t.preventDefault();const r=this.getTabElements().indexOf(t.target);this.activateTab(function(t,e,r,i){const a=x[i.orientation].get(e),o=t.length,n=j(t,i),l=y(o,0,1,!1,n);if(!a||-1===l)return-1;if("first"===a)return l;const s=y(o,o-1,-1,!1,n);if("last"===a)return s;if(!k(r,o))return"next"===a?l:s;const c="next"===a?1:-1,b=y(o,r+c,c,Boolean(i.wrap),n);return-1===b?r:b}(this.tabs,t.key,r,e))}activateTab(t){if(-1===t)return;if(this.getTabElements()[t].focus(),t===this.tabs.findIndex((t=>t.active)))return;const e=function(t,e){const r=t.findIndex((t=>!0===t.active)),i=[...t];return-1!==r&&(i[r]=Object.assign(Object.assign({},t[r]),{active:!1})),i[e]=Object.assign(Object.assign({},t[e]),{active:!0}),i}(this.tabs,t),r=w(e,this.tabs).sort(this.sortByInactive);for(const t of r)this.changeTab.emit(t);this.tabs=e}sortByInactive(t,e){return Number(t.active)-Number(e.active)}renderIcon(t){if(!t.icon)return;const e=a(t.icon),i=o(t.icon,t.iconColor),n={color:""};return i&&(n.color=i),r("limel-icon",{name:e,style:n,size:"small","aria-hidden":"true"})}renderTab(t,e,i){return r("button",{role:"tab","aria-selected":t.active?"true":"false",tabindex:i?0:-1,onClick:()=>this.activateTab(e)},r("span",{class:"content"},this.renderIcon(t),r("span",{class:"text"},t.text),t.badge?r("limel-badge",{label:t.badge}):""))}triggerIconColorWarning(){this.tabs.some((t=>t.iconColor))&&console.warn("The `iconColor` prop is deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name'` write `icon {name: 'icon-name', color: 'color-name'}`.")}get host(){return i(this)}static get watchers(){return{tabs:[{tabsChanged:0}],orientation:[{orientationChanged:0}]}}};C.style="@charset \"UTF-8\";:host(limel-tab-bar){--limel-tab-background-color:var(--contrast-300);--limel-tab-border-radius:0.625rem;--limel-tab-content-inset:0.25rem;--limel-active-tab-background-color:var( --tab-panel-background-color, rgb(var(--contrast-100)) );--limel-active-tab-color:var( --lime-primary-color, var(--limel-theme-primary-color) );--limel-tab-active-outer-edge-curve-size:0.75rem;--limel-tab-separator-width:0.125rem;--limel-tab-separator-background-color:rgb(var(--contrast-600));isolation:isolate;display:block;position:relative}limel-scroller{--limel-scroller-fade-color:var(--limel-tab-background-color);--limel-scroller-content-padding:0.25rem var(--limel-tab-active-outer-edge-curve-size) 0;background-color:rgb(var(--limel-tab-background-color))}:host(.has-tabs-with-equal-width:not([orientation=vertical])) button{flex:1 0 auto;max-width:var(--tab-bar-horizontal-tab-max-width, none)}button{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;position:relative;display:flex;box-sizing:border-box;border-radius:0;padding:var(--limel-tab-content-inset);min-width:2.5rem;background-color:transparent;flex:0 0 auto;height:2.5rem;outline:none;cursor:pointer;white-space:nowrap;font-size:var(--limel-theme-default-font-size)}button limel-icon{transition:color 0.2s ease;color:rgb(var(--contrast-800));margin-left:-0.25rem;flex-shrink:0}button span.text{transition:color 0.2s ease;line-height:1.25;overflow:hidden;text-overflow:ellipsis;color:var(--limel-theme-on-surface-color)}button:hover span.text{color:var(--limel-theme-text-primary-on-background-color)}button limel-badge{margin-right:-0.25rem;box-shadow:0 0 0 1px rgb(var(--contrast-600));pointer-events:none;flex-shrink:0}button[aria-selected=true]{background-color:var(--limel-active-tab-background-color);z-index:2}button[aria-selected=true]:before,button[aria-selected=true]:after{content:\"\";display:block;width:var(--limel-tab-active-outer-edge-curve-size);height:var(--limel-tab-active-outer-edge-curve-size);position:absolute;background-color:var(--limel-active-tab-background-color);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2050%2050'%3E%3Cdefs/%3E%3Cpath%20d='M0%200c0%2027.594%2022.406%2050%2050%2050H0V0z'/%3E%3C/svg%3E\")}button[aria-selected=true] limel-icon{color:var(--limel-active-tab-color)}button[aria-selected=true] span.text{color:var(--limel-active-tab-color)}span.content{transition:box-shadow 0.2s ease;display:flex;flex-grow:1;min-width:0;align-items:center;justify-content:center;gap:0.375rem;padding:0 0.75rem;border-radius:calc(var(--limel-tab-border-radius) - var(--limel-tab-content-inset))}button:focus-visible span.content{transition-duration:0.3s;box-shadow:var(--shadow-depth-8-focused)}:host(limel-tab-bar:not([orientation=vertical])) button{max-width:var(--tab-bar-horizontal-tab-max-width, 16rem)}:host(limel-tab-bar:not([orientation=vertical])) button:not([aria-selected=true]):after{content:\"\";display:block;background-color:var(--limel-tab-separator-background-color);width:var(--limel-tab-separator-width);height:1rem;margin:auto;position:absolute;top:0;bottom:0;border-radius:1rem;right:calc(-1 * var(--limel-tab-separator-width))}:host(limel-tab-bar:not([orientation=vertical])) button:not([aria-selected=true]):last-of-type:after{display:none}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]{border-radius:var(--limel-tab-border-radius) var(--limel-tab-border-radius) 0 0}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:before,:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:after{bottom:0}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:before{left:calc(-1 * var(--limel-tab-active-outer-edge-curve-size));transform:rotateY(180deg)}:host(limel-tab-bar:not([orientation=vertical])) button[aria-selected=true]:after{right:calc(-1 * var(--limel-tab-active-outer-edge-curve-size))}:host(limel-tab-bar[orientation=vertical]){width:var(--tab-bar-vertical-width, 10rem)}:host(limel-tab-bar[orientation=vertical]) div[role=tablist]{height:100%}:host(limel-tab-bar[orientation=vertical]) limel-scroller{--limel-scroller-content-padding:var( --limel-tab-active-outer-edge-curve-size ) 0 var(--limel-tab-active-outer-edge-curve-size) 0.25rem;height:100%}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]{border-radius:var(--limel-tab-border-radius) 0 0 var(--limel-tab-border-radius)}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:before,:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:after{right:0}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:before{bottom:100%;transform:rotateY(180deg)}:host(limel-tab-bar[orientation=vertical]) button[aria-selected=true]:after{top:100%;transform:rotate(180deg)}:host(limel-tab-bar[orientation=vertical]) span.content{justify-content:flex-start}:host(limel-tab-bar[orientation=vertical]) span.text{flex-grow:1}";export{C as limel_tab_bar}