@limetech/lime-elements 40.9.0 → 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 (286) hide show
  1. package/CHANGELOG.md +14 -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.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-email-viewer.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  27. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  31. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  32. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  35. package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
  36. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  37. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  38. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  39. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  40. package/dist/cjs/limel-list-item.cjs.entry.js +2 -2
  41. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  44. package/dist/cjs/limel-pagination.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  46. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  47. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  49. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  50. package/dist/cjs/limel-resize-handle.cjs.entry.js +240 -0
  51. package/dist/cjs/limel-scroller.cjs.entry.js +2 -2
  52. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  53. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  54. package/dist/cjs/limel-side-panel.cjs.entry.js +283 -0
  55. package/dist/cjs/limel-slider.cjs.entry.js +3 -3
  56. package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
  57. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  58. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
  60. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  61. package/dist/cjs/limel-table.cjs.entry.js +2 -2
  62. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +3 -3
  63. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/collection/collection-manifest.json +2 -0
  66. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  67. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  68. package/dist/collection/components/action-bar/action-bar.js +2 -2
  69. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  70. package/dist/collection/components/badge/badge.js +2 -2
  71. package/dist/collection/components/banner/banner.js +1 -1
  72. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  73. package/dist/collection/components/button/button.js +2 -2
  74. package/dist/collection/components/button-group/button-group.js +1 -1
  75. package/dist/collection/components/callout/callout.js +1 -1
  76. package/dist/collection/components/card/card.js +1 -1
  77. package/dist/collection/components/checkbox/checkbox.js +1 -1
  78. package/dist/collection/components/chip/chip.js +1 -1
  79. package/dist/collection/components/chip-set/chip-set.js +1 -1
  80. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  81. package/dist/collection/components/code-diff/code-diff.js +1 -1
  82. package/dist/collection/components/code-editor/code-editor.js +1 -1
  83. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  84. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  85. package/dist/collection/components/color-picker/color-picker.js +1 -1
  86. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  87. package/dist/collection/components/dialog/dialog.js +2 -2
  88. package/dist/collection/components/dock/dock.js +2 -2
  89. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  90. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  91. package/dist/collection/components/file/file.js +1 -1
  92. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  93. package/dist/collection/components/file-input/file-input.js +1 -1
  94. package/dist/collection/components/flex-container/flex-container.js +1 -1
  95. package/dist/collection/components/form/form.js +1 -1
  96. package/dist/collection/components/grid/grid.js +1 -1
  97. package/dist/collection/components/header/header.js +1 -1
  98. package/dist/collection/components/help/help-content.js +1 -1
  99. package/dist/collection/components/help/help.js +2 -2
  100. package/dist/collection/components/helper-line/helper-line.js +2 -2
  101. package/dist/collection/components/hotkey/hotkey.js +1 -1
  102. package/dist/collection/components/icon/icon.js +1 -1
  103. package/dist/collection/components/icon-button/icon-button.js +1 -1
  104. package/dist/collection/components/info-tile/info-tile.js +2 -2
  105. package/dist/collection/components/input-field/input-field.js +1 -1
  106. package/dist/collection/components/list/list.js +1 -1
  107. package/dist/collection/components/list-item/list-item.js +2 -2
  108. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  109. package/dist/collection/components/markdown/markdown.js +1 -1
  110. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  111. package/dist/collection/components/menu/menu.js +1 -1
  112. package/dist/collection/components/menu-list/menu-list.js +1 -1
  113. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  114. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  115. package/dist/collection/components/pagination/pagination.js +1 -1
  116. package/dist/collection/components/picker/picker.js +1 -1
  117. package/dist/collection/components/popover/popover.js +1 -1
  118. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  119. package/dist/collection/components/portal/portal.js +1 -1
  120. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  121. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  122. package/dist/collection/components/resize-handle/resize-handle.css +274 -0
  123. package/dist/collection/components/resize-handle/resize-handle.js +210 -0
  124. package/dist/collection/components/scroller/scroller.js +2 -2
  125. package/dist/collection/components/select/select.js +1 -1
  126. package/dist/collection/components/shortcut/shortcut.js +1 -1
  127. package/dist/collection/components/side-panel/side-panel.css +300 -0
  128. package/dist/collection/components/side-panel/side-panel.js +433 -0
  129. package/dist/collection/components/slider/slider.js +3 -3
  130. package/dist/collection/components/snackbar/snackbar.js +2 -2
  131. package/dist/collection/components/spinner/spinner.js +1 -1
  132. package/dist/collection/components/split-button/split-button.js +2 -2
  133. package/dist/collection/components/switch/switch.js +1 -1
  134. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  135. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  136. package/dist/collection/components/table/table.js +2 -2
  137. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  138. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  139. package/dist/collection/components/text-editor/text-editor.js +1 -1
  140. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  141. package/dist/collection/components/tooltip/tooltip.js +2 -2
  142. package/dist/collection/util/drag-to-resize.js +108 -0
  143. package/dist/collection/util/get-deep-active-element.js +15 -0
  144. package/dist/collection/util/resize-location.js +76 -0
  145. package/dist/esm/{keycodes-DQ5DmW_Y.js → keycodes-Bu6-QXrA.js} +1 -1
  146. package/dist/esm/lime-elements.js +1 -1
  147. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  148. package/dist/esm/limel-action-bar_3.entry.js +3 -3
  149. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  150. package/dist/esm/limel-badge.entry.js +2 -2
  151. package/dist/esm/limel-banner.entry.js +1 -1
  152. package/dist/esm/limel-breadcrumbs_6.entry.js +7 -7
  153. package/dist/esm/limel-button-group.entry.js +1 -1
  154. package/dist/esm/limel-button.entry.js +2 -2
  155. package/dist/esm/limel-callout.entry.js +1 -1
  156. package/dist/esm/limel-card.entry.js +1 -1
  157. package/dist/esm/limel-checkbox.entry.js +1 -1
  158. package/dist/esm/limel-chip-set.entry.js +2 -2
  159. package/dist/esm/limel-chip_2.entry.js +2 -2
  160. package/dist/esm/limel-circular-progress.entry.js +1 -1
  161. package/dist/esm/limel-code-diff.entry.js +1 -1
  162. package/dist/esm/limel-code-editor.entry.js +1 -1
  163. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  164. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  165. package/dist/esm/limel-color-picker.entry.js +1 -1
  166. package/dist/esm/limel-dialog.entry.js +2 -2
  167. package/dist/esm/limel-dock.entry.js +2 -2
  168. package/dist/esm/limel-drag-handle.entry.js +1 -1
  169. package/dist/esm/limel-email-viewer.entry.js +1 -1
  170. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  171. package/dist/esm/limel-file.entry.js +1 -1
  172. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  173. package/dist/esm/limel-flex-container.entry.js +1 -1
  174. package/dist/esm/limel-form.entry.js +1 -1
  175. package/dist/esm/limel-grid.entry.js +1 -1
  176. package/dist/esm/limel-header.entry.js +1 -1
  177. package/dist/esm/limel-help-content.entry.js +1 -1
  178. package/dist/esm/limel-help.entry.js +2 -2
  179. package/dist/esm/limel-helper-line_3.entry.js +4 -4
  180. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  181. package/dist/esm/limel-icon-button.entry.js +1 -1
  182. package/dist/esm/limel-icon.entry.js +1 -1
  183. package/dist/esm/limel-info-tile.entry.js +2 -2
  184. package/dist/esm/limel-list-item.entry.js +2 -2
  185. package/dist/esm/limel-markdown.entry.js +1 -1
  186. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  187. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  188. package/dist/esm/limel-pagination-jump.entry.js +1 -1
  189. package/dist/esm/limel-pagination.entry.js +1 -1
  190. package/dist/esm/limel-picker.entry.js +2 -2
  191. package/dist/esm/limel-popover_2.entry.js +3 -3
  192. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  193. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  194. package/dist/esm/limel-radio-button.entry.js +2 -2
  195. package/dist/esm/limel-resize-handle.entry.js +238 -0
  196. package/dist/esm/limel-scroller.entry.js +2 -2
  197. package/dist/esm/limel-select.entry.js +2 -2
  198. package/dist/esm/limel-shortcut.entry.js +1 -1
  199. package/dist/esm/limel-side-panel.entry.js +281 -0
  200. package/dist/esm/limel-slider.entry.js +3 -3
  201. package/dist/esm/limel-snackbar.entry.js +2 -2
  202. package/dist/esm/limel-split-button.entry.js +2 -2
  203. package/dist/esm/limel-switch.entry.js +1 -1
  204. package/dist/esm/limel-tab-bar.entry.js +2 -2
  205. package/dist/esm/limel-tab-panel.entry.js +1 -1
  206. package/dist/esm/limel-table.entry.js +2 -2
  207. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  208. package/dist/esm/limel-text-editor.entry.js +1 -1
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/lime-elements/lime-elements.esm.js +1 -1
  211. package/dist/lime-elements/{p-5da47a8a.entry.js → p-065f1635.entry.js} +1 -1
  212. package/dist/lime-elements/{p-0e13ec91.entry.js → p-06cd9512.entry.js} +1 -1
  213. package/dist/lime-elements/{p-96246494.entry.js → p-07916acc.entry.js} +1 -1
  214. package/dist/lime-elements/{p-fdec09e9.entry.js → p-0c2ce99b.entry.js} +1 -1
  215. package/dist/lime-elements/{p-00c36c9e.entry.js → p-1020ca20.entry.js} +1 -1
  216. package/dist/lime-elements/{p-288ef79a.entry.js → p-14aff731.entry.js} +1 -1
  217. package/dist/lime-elements/{p-2b033dfa.entry.js → p-24e5d420.entry.js} +1 -1
  218. package/dist/lime-elements/{p-9afa4721.entry.js → p-262a3d66.entry.js} +1 -1
  219. package/dist/lime-elements/{p-45461ec5.entry.js → p-29b2a176.entry.js} +1 -1
  220. package/dist/lime-elements/{p-e752dc7f.entry.js → p-2ba9d62f.entry.js} +1 -1
  221. package/dist/lime-elements/{p-a1c69e0c.entry.js → p-33ed0c68.entry.js} +1 -1
  222. package/dist/lime-elements/{p-efaf2616.entry.js → p-35bc5ed2.entry.js} +1 -1
  223. package/dist/lime-elements/{p-d37fbbd2.entry.js → p-3ee121fa.entry.js} +1 -1
  224. package/dist/lime-elements/{p-d1b7cc55.entry.js → p-458c131f.entry.js} +3 -3
  225. package/dist/lime-elements/{p-c439b68b.entry.js → p-46bf8b22.entry.js} +1 -1
  226. package/dist/lime-elements/{p-303edb1a.entry.js → p-4882acaa.entry.js} +1 -1
  227. package/dist/lime-elements/{p-7b4351f6.entry.js → p-4a7df81a.entry.js} +1 -1
  228. package/dist/lime-elements/{p-982a0f10.entry.js → p-527e9c95.entry.js} +1 -1
  229. package/dist/lime-elements/{p-5f5c6e7d.entry.js → p-54631dbf.entry.js} +1 -1
  230. package/dist/lime-elements/{p-d5800180.entry.js → p-5473eb74.entry.js} +1 -1
  231. package/dist/lime-elements/p-566750e5.entry.js +1 -0
  232. package/dist/lime-elements/{p-f4a0b1bc.entry.js → p-622660dd.entry.js} +1 -1
  233. package/dist/lime-elements/{p-d19c7a3a.entry.js → p-646731b6.entry.js} +1 -1
  234. package/dist/lime-elements/{p-7eab1341.entry.js → p-68542e00.entry.js} +1 -1
  235. package/dist/lime-elements/p-780dae0b.entry.js +1 -0
  236. package/dist/lime-elements/{p-8ac79ef5.entry.js → p-7a290372.entry.js} +1 -1
  237. package/dist/lime-elements/{p-ff1a8b2e.entry.js → p-7a2e0e18.entry.js} +1 -1
  238. package/dist/lime-elements/{p-7fa85785.entry.js → p-7cdbbffe.entry.js} +2 -2
  239. package/dist/lime-elements/{p-b6d39581.entry.js → p-887eea11.entry.js} +1 -1
  240. package/dist/lime-elements/{p-9c8c2fb7.entry.js → p-8a59698f.entry.js} +1 -1
  241. package/dist/lime-elements/p-8d567e42.entry.js +1 -0
  242. package/dist/lime-elements/{p-b22b52a1.entry.js → p-910807cb.entry.js} +1 -1
  243. package/dist/lime-elements/p-9168793f.entry.js +1 -0
  244. package/dist/lime-elements/{p-58b7c634.entry.js → p-9461c6bb.entry.js} +1 -1
  245. package/dist/lime-elements/{p-a98cbd1f.entry.js → p-9b1934fb.entry.js} +1 -1
  246. package/dist/lime-elements/p-9b384d62.entry.js +1 -0
  247. package/dist/lime-elements/{p-ee719744.entry.js → p-9ca18ba5.entry.js} +1 -1
  248. package/dist/lime-elements/{p-DQ5DmW_Y.js → p-Bu6-QXrA.js} +1 -1
  249. package/dist/lime-elements/{p-ab91cfff.entry.js → p-a317f2fa.entry.js} +1 -1
  250. package/dist/lime-elements/{p-a1d1470c.entry.js → p-a373013f.entry.js} +1 -1
  251. package/dist/lime-elements/{p-32a050a3.entry.js → p-a449ca04.entry.js} +1 -1
  252. package/dist/lime-elements/p-a5246373.entry.js +1 -0
  253. package/dist/lime-elements/{p-9992b5f9.entry.js → p-a78aaf37.entry.js} +1 -1
  254. package/dist/lime-elements/p-abcc451a.entry.js +1 -0
  255. package/dist/lime-elements/{p-9e016212.entry.js → p-abed5afd.entry.js} +1 -1
  256. package/dist/lime-elements/{p-107654bb.entry.js → p-ae2e5e87.entry.js} +1 -1
  257. package/dist/lime-elements/{p-fdd674fc.entry.js → p-b69af611.entry.js} +1 -1
  258. package/dist/lime-elements/{p-74060535.entry.js → p-b9da0108.entry.js} +2 -2
  259. package/dist/lime-elements/{p-4cbcafae.entry.js → p-bf849dc9.entry.js} +1 -1
  260. package/dist/lime-elements/{p-0d6925f4.entry.js → p-c12fbc91.entry.js} +1 -1
  261. package/dist/lime-elements/{p-03cb609e.entry.js → p-cf6fab84.entry.js} +1 -1
  262. package/dist/lime-elements/{p-29c73bdf.entry.js → p-d3475514.entry.js} +1 -1
  263. package/dist/lime-elements/{p-006cfb3d.entry.js → p-d5144955.entry.js} +1 -1
  264. package/dist/lime-elements/{p-91a572c8.entry.js → p-d79d777e.entry.js} +1 -1
  265. package/dist/lime-elements/p-d7e5a4a7.entry.js +1 -0
  266. package/dist/lime-elements/{p-9415411e.entry.js → p-db1f9eba.entry.js} +1 -1
  267. package/dist/lime-elements/{p-a736ea08.entry.js → p-dd075353.entry.js} +1 -1
  268. package/dist/lime-elements/{p-526ede01.entry.js → p-de4d261a.entry.js} +1 -1
  269. package/dist/lime-elements/{p-e6a34047.entry.js → p-def7b38f.entry.js} +1 -1
  270. package/dist/lime-elements/{p-bc70090d.entry.js → p-e247e9fe.entry.js} +1 -1
  271. package/dist/lime-elements/{p-e2b074aa.entry.js → p-e25bfb2c.entry.js} +1 -1
  272. package/dist/lime-elements/{p-727b6c11.entry.js → p-ec74a07a.entry.js} +1 -1
  273. package/dist/lime-elements/{p-d1e5dd12.entry.js → p-ecded772.entry.js} +1 -1
  274. package/dist/types/components/resize-handle/resize-handle.d.ts +64 -0
  275. package/dist/types/components/side-panel/side-panel.d.ts +134 -0
  276. package/dist/types/components.d.ts +319 -0
  277. package/dist/types/util/drag-to-resize.d.ts +33 -0
  278. package/dist/types/util/get-deep-active-element.d.ts +9 -0
  279. package/dist/types/util/resize-location.d.ts +59 -0
  280. package/package.json +2 -2
  281. package/dist/lime-elements/p-14a28a08.entry.js +0 -1
  282. package/dist/lime-elements/p-3d05e21f.entry.js +0 -1
  283. package/dist/lime-elements/p-681cb6de.entry.js +0 -1
  284. package/dist/lime-elements/p-a2e6f16e.entry.js +0 -1
  285. package/dist/lime-elements/p-aa897903.entry.js +0 -1
  286. package/dist/lime-elements/p-de4719a6.entry.js +0 -1
@@ -0,0 +1,433 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import { getDeepActiveElement } from "../../util/get-deep-active-element";
3
+ import { ESCAPE } from "../../util/keycodes";
4
+ import { createRandomString } from "../../util/random-string";
5
+ /**
6
+ * Open panels, in the order they were connected. Only the last one handles
7
+ * Escape.
8
+ */
9
+ const openPanels = [];
10
+ function stopEvent(event) {
11
+ event.stopPropagation();
12
+ }
13
+ /**
14
+ * A resizable panel that is displayed on top of the right side of the page.
15
+ * The content is placed in the default slot, below a toolbar with a close button.
16
+ *
17
+ * The panel is positioned relative to its nearest positioned ancestor. Set
18
+ * `position: relative` on that element. Use `--side-panel-top-inset`,
19
+ * `--side-panel-right-inset` and `--side-panel-bottom-inset` to keep parts of
20
+ * that element visible, for example a header.
21
+ *
22
+ * The CSS custom properties can be set on the panel or on any ancestor.
23
+ *
24
+ * The panel is a dialog that does not block the rest of the page. Set `label`
25
+ * to give it an accessible name, which screen readers announce. When the panel
26
+ * opens, focus moves into it. When the panel is removed, focus returns to the
27
+ * element that had it before, unless focus is somewhere else by then.
28
+ *
29
+ * The panel emits `close` when the user clicks the close button, or presses
30
+ * Escape. It does not remove itself. The consumer must remove it from the DOM.
31
+ * The user can resize the panel by dragging its left edge, or with the arrow
32
+ * keys. The panel emits `changeWidth` when a resize is finished.
33
+ *
34
+ * See the examples for how closing and resizing work in detail.
35
+ *
36
+ * @exampleComponent limel-example-side-panel-basic
37
+ * @exampleComponent limel-example-side-panel-insets
38
+ * @exampleComponent limel-example-side-panel-escape
39
+ * @private
40
+ */
41
+ export class SidePanel {
42
+ constructor() {
43
+ /**
44
+ * Label of the close button. Shown as a tooltip and used as the accessible
45
+ * name.
46
+ */
47
+ this.closeLabel = 'Close';
48
+ /**
49
+ * Label of the resize handle. Used as the accessible name.
50
+ */
51
+ this.resizeLabel = 'Resize';
52
+ /**
53
+ * Whether pressing Escape emits `close`. Set to `false` to let only the
54
+ * close button emit `close`. The panel then does not prevent the Escape
55
+ * event either.
56
+ */
57
+ this.closeOnEscape = true;
58
+ this.closeButtonId = createRandomString();
59
+ this.setBody = (element) => {
60
+ this.body = element;
61
+ this.stopContentEventsInBody();
62
+ };
63
+ // Moving the panel in the DOM also disconnects it. It is then connected
64
+ // again before the microtask runs. Focus only returns when it was lost with
65
+ // the panel, and not when the user has moved it to another element.
66
+ this.restoreFocus = () => {
67
+ const hasLostFocus = !document.activeElement || document.activeElement === document.body;
68
+ if (this.host.isConnected || !hasLostFocus) {
69
+ return;
70
+ }
71
+ const element = this.focusedBefore;
72
+ this.focusedBefore = undefined;
73
+ if (element === null || element === void 0 ? void 0 : element.isConnected) {
74
+ element.focus();
75
+ }
76
+ };
77
+ this.setPanel = (element) => {
78
+ this.panel = element;
79
+ };
80
+ this.setMinLimit = (element) => {
81
+ this.minLimit = element;
82
+ };
83
+ this.setMaxLimit = (element) => {
84
+ this.maxLimit = element;
85
+ };
86
+ this.handleKeyDown = (event) => {
87
+ if (!this.closeOnEscape ||
88
+ event.key !== ESCAPE ||
89
+ event.defaultPrevented ||
90
+ !this.isLastOpened()) {
91
+ return;
92
+ }
93
+ event.preventDefault();
94
+ this.close.emit();
95
+ };
96
+ this.handleChangeSize = (event) => {
97
+ this.rememberWidthBeforeResize();
98
+ this.setWidth(event.detail);
99
+ };
100
+ this.handleEndResize = () => {
101
+ if (!this.isResizing()) {
102
+ return;
103
+ }
104
+ const widthBefore = this.widthBeforeResize;
105
+ this.widthBeforeResize = undefined;
106
+ this.keepClampedWidth();
107
+ this.updateWidthRange();
108
+ this.emitWidthIfChanged(widthBefore);
109
+ };
110
+ // The height of the panel, and a width that `updateWidthRange` has already
111
+ // measured, for example after an arrow key press, need no new measurement.
112
+ this.handleSizeChange = (entries) => {
113
+ if (entries.every(this.isMeasured)) {
114
+ return;
115
+ }
116
+ this.updateWidthRange();
117
+ };
118
+ this.isMeasured = (entry) => {
119
+ var _a;
120
+ return (entry.target === this.panel &&
121
+ Math.round(entry.borderBoxSize[0].inlineSize) ===
122
+ ((_a = this.widthRange) === null || _a === void 0 ? void 0 : _a.now));
123
+ };
124
+ // Reading the current width forces a layout of the content, which is slow
125
+ // when the content is large. The range does not change during a resize, so it
126
+ // is measured when the resize ends.
127
+ this.updateWidthRange = () => {
128
+ if (this.isResizing()) {
129
+ return;
130
+ }
131
+ this.widthRange = this.measureWidthRange();
132
+ };
133
+ this.handleClickClose = () => {
134
+ this.close.emit();
135
+ };
136
+ }
137
+ connectedCallback() {
138
+ openPanels.push(this);
139
+ window.addEventListener('keydown', this.handleKeyDown);
140
+ this.rememberFocusedElement();
141
+ this.observeWidth();
142
+ }
143
+ componentDidLoad() {
144
+ this.observeWidth();
145
+ this.moveFocusIntoPanel();
146
+ }
147
+ disconnectedCallback() {
148
+ this.widthBeforeResize = undefined;
149
+ this.stopObservingWidth();
150
+ window.removeEventListener('keydown', this.handleKeyDown);
151
+ this.removeFromOpenPanels();
152
+ queueMicrotask(this.restoreFocus);
153
+ }
154
+ render() {
155
+ return (h(Host, { key: '1c18f40fb45731bdf157d651d4e649446de5230b' }, h("section", { key: 'e8b41bded39732750ae3db9b1daf14dc742e1cb7', ref: this.setPanel, role: "dialog", "aria-label": this.label, tabindex: "-1" }, this.renderHandle(), h("div", { key: '3cba5523e0cbe45fa328daaa40136c063a8c3ac3', class: "content" }, h("div", { key: 'b5cbc1260b4e6f31ac789179ab4b5a0281b9133b', class: "toolbar" }, this.renderCloseButton()), this.renderBody())), h("span", { key: '5fe872f05a6cc49027f84d71a765baa59a53adb9', "data-limit": "min", ref: this.setMinLimit }), h("span", { key: '5042e7437e61ae5308e13b1a30f5df24747e2cdf', "data-limit": "max", ref: this.setMaxLimit })));
156
+ }
157
+ // A native button and not `limel-icon-button`, because the hover animation
158
+ // styles the icon, which is inside the shadow root of `limel-icon-button`.
159
+ renderCloseButton() {
160
+ return (h("button", { class: "close", id: this.closeButtonId, "aria-label": this.closeLabel, onClick: this.handleClickClose }, h("limel-icon", { name: "multiply", "aria-hidden": "true" }), h("limel-tooltip", { elementId: this.closeButtonId, label: this.closeLabel })));
161
+ }
162
+ renderHandle() {
163
+ var _a, _b, _c;
164
+ return (h("limel-resize-handle", { class: "handle", label: this.resizeLabel, value: (_a = this.widthRange) === null || _a === void 0 ? void 0 : _a.now, min: (_b = this.widthRange) === null || _b === void 0 ? void 0 : _b.min, max: (_c = this.widthRange) === null || _c === void 0 ? void 0 : _c.max, onChangeSize: this.handleChangeSize, onEndResize: this.handleEndResize }));
165
+ }
166
+ renderBody() {
167
+ return (h("div", { class: "body", ref: this.setBody }, h("slot", null)));
168
+ }
169
+ /**
170
+ * Components in the content can emit events with the same names as the
171
+ * panel's events, for example `close` from `limel-dialog` or
172
+ * `limel-collapsible-section`. Events from slotted content pass through
173
+ * `.body` before they reach the host, so they are stopped there. The panel's
174
+ * own events are dispatched on the host, so they are not affected.
175
+ *
176
+ * Keep the event names in sync with {@link SidePanel.stopContentEventAtHost}.
177
+ */
178
+ stopContentEventsInBody() {
179
+ var _a, _b;
180
+ // Adding the same listener again has no effect, so re-renders are safe.
181
+ (_a = this.body) === null || _a === void 0 ? void 0 : _a.addEventListener('close', stopEvent);
182
+ (_b = this.body) === null || _b === void 0 ? void 0 : _b.addEventListener('changeWidth', stopEvent);
183
+ }
184
+ /**
185
+ * Fallback for {@link SidePanel.stopContentEventsInBody}.
186
+ * Stops `close` and `changeWidth` events that reach the host from any
187
+ * element other than the host.
188
+ *
189
+ * This does not replace the slot listener. A consumer listener that is added
190
+ * before the panel is connected runs before this one, and would still
191
+ * receive the event.
192
+ *
193
+ * @param event - the event
194
+ */
195
+ stopContentEventAtHost(event) {
196
+ if (event.target === this.host) {
197
+ return;
198
+ }
199
+ event.stopImmediatePropagation();
200
+ }
201
+ moveFocusIntoPanel() {
202
+ this.panel.focus({ preventScroll: true });
203
+ }
204
+ rememberFocusedElement() {
205
+ const element = getDeepActiveElement();
206
+ if (!element || element === document.body) {
207
+ return;
208
+ }
209
+ this.focusedBefore = element;
210
+ }
211
+ removeFromOpenPanels() {
212
+ const index = openPanels.indexOf(this);
213
+ if (index === -1) {
214
+ return;
215
+ }
216
+ openPanels.splice(index, 1);
217
+ }
218
+ isLastOpened() {
219
+ return openPanels.at(-1) === this;
220
+ }
221
+ // An inline width wins over `--side-panel-width`, and is still limited by
222
+ // `min-width` and `max-width`. The width is set on the element and not with
223
+ // a state, because a render and a measurement on each pointer move make
224
+ // the drag slow when the content is large.
225
+ setWidth(width) {
226
+ this.panel.style.width = `${width}px`;
227
+ }
228
+ rememberWidthBeforeResize() {
229
+ if (this.isResizing()) {
230
+ return;
231
+ }
232
+ this.widthBeforeResize = this.currentWidth();
233
+ }
234
+ isResizing() {
235
+ return this.widthBeforeResize !== undefined;
236
+ }
237
+ // A drag past a limit sets a width that CSS clamps. Without the clamped
238
+ // width, the panel grows when its container grows.
239
+ keepClampedWidth() {
240
+ this.setWidth(this.currentWidth());
241
+ }
242
+ emitWidthIfChanged(widthBefore) {
243
+ const width = this.currentWidth();
244
+ if (width === widthBefore) {
245
+ return;
246
+ }
247
+ this.changeWidth.emit(width);
248
+ }
249
+ // A focusable separator must always have its values. The width changes when
250
+ // the consumer sets `--side-panel-width`, and the limits change with the
251
+ // width of the positioned ancestor, so the range is measured when the panel
252
+ // or an element for the limits changes size.
253
+ observeWidth() {
254
+ this.stopObservingWidth();
255
+ if (!this.panel) {
256
+ return;
257
+ }
258
+ this.widthObserver = new ResizeObserver(this.handleSizeChange);
259
+ for (const element of [this.panel, this.minLimit, this.maxLimit]) {
260
+ if (element) {
261
+ this.widthObserver.observe(element);
262
+ }
263
+ }
264
+ }
265
+ stopObservingWidth() {
266
+ var _a;
267
+ (_a = this.widthObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
268
+ this.widthObserver = undefined;
269
+ }
270
+ measureWidthRange() {
271
+ const min = this.minLimit.offsetWidth;
272
+ const max = Math.max(min, this.maxLimit.offsetWidth);
273
+ return {
274
+ now: Math.round(this.currentWidth()),
275
+ min: Math.round(min),
276
+ max: Math.round(max),
277
+ };
278
+ }
279
+ // `offsetWidth` and not `getBoundingClientRect`, because the opening
280
+ // animation scales the panel with a transform.
281
+ currentWidth() {
282
+ return this.panel.offsetWidth;
283
+ }
284
+ static get is() { return "limel-side-panel"; }
285
+ static get encapsulation() { return "shadow"; }
286
+ static get originalStyleUrls() {
287
+ return {
288
+ "$": ["side-panel.scss"]
289
+ };
290
+ }
291
+ static get styleUrls() {
292
+ return {
293
+ "$": ["side-panel.css"]
294
+ };
295
+ }
296
+ static get properties() {
297
+ return {
298
+ "label": {
299
+ "type": "string",
300
+ "mutable": false,
301
+ "complexType": {
302
+ "original": "string",
303
+ "resolved": "string",
304
+ "references": {}
305
+ },
306
+ "required": false,
307
+ "optional": true,
308
+ "docs": {
309
+ "tags": [],
310
+ "text": "Accessible name of the panel. Screen readers announce it. Set it to\nsomething that tells the user what the panel is for."
311
+ },
312
+ "getter": false,
313
+ "setter": false,
314
+ "reflect": false,
315
+ "attribute": "label"
316
+ },
317
+ "closeLabel": {
318
+ "type": "string",
319
+ "mutable": false,
320
+ "complexType": {
321
+ "original": "string",
322
+ "resolved": "string",
323
+ "references": {}
324
+ },
325
+ "required": false,
326
+ "optional": false,
327
+ "docs": {
328
+ "tags": [],
329
+ "text": "Label of the close button. Shown as a tooltip and used as the accessible\nname."
330
+ },
331
+ "getter": false,
332
+ "setter": false,
333
+ "reflect": false,
334
+ "attribute": "close-label",
335
+ "defaultValue": "'Close'"
336
+ },
337
+ "resizeLabel": {
338
+ "type": "string",
339
+ "mutable": false,
340
+ "complexType": {
341
+ "original": "string",
342
+ "resolved": "string",
343
+ "references": {}
344
+ },
345
+ "required": false,
346
+ "optional": false,
347
+ "docs": {
348
+ "tags": [],
349
+ "text": "Label of the resize handle. Used as the accessible name."
350
+ },
351
+ "getter": false,
352
+ "setter": false,
353
+ "reflect": false,
354
+ "attribute": "resize-label",
355
+ "defaultValue": "'Resize'"
356
+ },
357
+ "closeOnEscape": {
358
+ "type": "boolean",
359
+ "mutable": false,
360
+ "complexType": {
361
+ "original": "boolean",
362
+ "resolved": "boolean",
363
+ "references": {}
364
+ },
365
+ "required": false,
366
+ "optional": false,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": "Whether pressing Escape emits `close`. Set to `false` to let only the\nclose button emit `close`. The panel then does not prevent the Escape\nevent either."
370
+ },
371
+ "getter": false,
372
+ "setter": false,
373
+ "reflect": false,
374
+ "attribute": "close-on-escape",
375
+ "defaultValue": "true"
376
+ }
377
+ };
378
+ }
379
+ static get states() {
380
+ return {
381
+ "widthRange": {}
382
+ };
383
+ }
384
+ static get events() {
385
+ return [{
386
+ "method": "close",
387
+ "name": "close",
388
+ "bubbles": true,
389
+ "cancelable": true,
390
+ "composed": true,
391
+ "docs": {
392
+ "tags": [],
393
+ "text": "Emitted when the close button is clicked, or when Escape is pressed and\n`closeOnEscape` is `true`."
394
+ },
395
+ "complexType": {
396
+ "original": "void",
397
+ "resolved": "void",
398
+ "references": {}
399
+ }
400
+ }, {
401
+ "method": "changeWidth",
402
+ "name": "changeWidth",
403
+ "bubbles": true,
404
+ "cancelable": true,
405
+ "composed": true,
406
+ "docs": {
407
+ "tags": [],
408
+ "text": "Emitted when the user has finished a resize that changed the width. The\ndetail is the new width in pixels. The panel already uses the new width. Store the value to\nrestore the width with `--side-panel-width` the next time the panel opens."
409
+ },
410
+ "complexType": {
411
+ "original": "number",
412
+ "resolved": "number",
413
+ "references": {}
414
+ }
415
+ }];
416
+ }
417
+ static get elementRef() { return "host"; }
418
+ static get listeners() {
419
+ return [{
420
+ "name": "close",
421
+ "method": "stopContentEventAtHost",
422
+ "target": undefined,
423
+ "capture": false,
424
+ "passive": false
425
+ }, {
426
+ "name": "changeWidth",
427
+ "method": "stopContentEventAtHost",
428
+ "target": undefined,
429
+ "capture": false,
430
+ "passive": false
431
+ }];
432
+ }
433
+ }
@@ -270,15 +270,15 @@ export class Slider {
270
270
  if (this.disabled || this.readonly) {
271
271
  inputProps.disabled = true;
272
272
  }
273
- return (h(Host, { key: '47fedc34458f09ec0a67a6fc81efcd0d5aaba74e', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '89c319c35f59d8dbd72a40e894fb01a8b12dc88d', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !this.isUnset, hasFloatingLabel: true }, h("div", { key: 'f4c7c2475650c2c3be4b33271fc1f23aa8d40ee5', slot: "content" }, h("div", { key: 'c3c085ead113928e85bc9ab3cbadd7e8350b4a12', class: "slider", style: { '--slider-fraction': `${fraction}` } }, h("input", Object.assign({ key: 'c1e255d94086cc3c77cec32d34a52fc06ffe77b4', type: "range", min: min, max: max, value: this.displayValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperText
273
+ return (h(Host, { key: '6d910879894ffc7ff36df228e4252e4758622ab9', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '56e3b4dbc963b6923c63a33acb21895f4e86c947', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !this.isUnset, hasFloatingLabel: true }, h("div", { key: 'f74ef31e0b7d67dcc8a231a05f9b00b84de50b33', slot: "content" }, h("div", { key: '4a4018ac095977f89cba99a0222603469d11ce30', class: "slider", style: { '--slider-fraction': `${fraction}` } }, h("input", Object.assign({ key: '8e45c543c4ba524e5257169f79d0e86b4cf95635', type: "range", min: min, max: max, value: this.displayValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperText
274
274
  ? this.helperTextId
275
275
  : undefined, "aria-valuetext": this.isUnset
276
276
  ? translate.get('value-not-set', this.language)
277
277
  : undefined, ref: (el) => {
278
278
  this.inputElement = el;
279
- }, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }, inputProps)), h("div", { key: 'c287ade5d57268fbf3d0a203f4f94363709dcb74', class: "track" }, h("div", { key: 'd65e20a0bd2da417a797be2501f70860cae04857', class: "active" }), this.renderStepDots(min, max)), h("div", { key: '72e6bf77fddaf64fcde86455bfddd1122a8f174c', class: "thumb" }, h("div", { key: '2066f97938cff1b20ffa0aad2e3c4803a5a2f6f9', class: "knob" }), h("div", { key: 'abd8845bf4d52faeffd1a4f25ca2068a8062bc09', class: "indicator", "aria-hidden": "true" }, this.isUnset
279
+ }, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }, inputProps)), h("div", { key: '83a5600495635b0fd19cb93be94b59a333f574a5', class: "track" }, h("div", { key: '771452b79092adfea7aa82ab87d18910fe6bda8c', class: "active" }), this.renderStepDots(min, max)), h("div", { key: 'f3819b77285addfdd15b378943ca2ef16748f319', class: "thumb" }, h("div", { key: '46802964d1de2d5ee42faa6f02c1a51f6e35d37e', class: "knob" }), h("div", { key: '273328b017f98f7d581331b0ea1817d370b402f0', class: "indicator", "aria-hidden": "true" }, this.isUnset
280
280
  ? '\u{2194}\u{FE0E}'
281
- : this.displayValue))), h("div", { key: '231a0836f6487fd99fb2aa60d075ad8d21a4ce10', class: "range-labels" }, h("span", { key: '966e8f9241124e9c61da1558ccb04ccb1cf0c402', class: "min" }, this.multiplyByFactor(this.valuemin), this.unit), h("span", { key: '427e6ff5bd7d894da16a6b9b006fd0e1a44f9348', class: "max" }, this.multiplyByFactor(this.valuemax), this.unit)))), this.renderClearButton(), this.renderHelperLine()));
281
+ : this.displayValue))), h("div", { key: '92b16e21ce4cbf4e78136f5475581dc82c7aaac7', class: "range-labels" }, h("span", { key: 'be3be26585786ed002a4ad8678cc4f759b2ff510', class: "min" }, this.multiplyByFactor(this.valuemin), this.unit), h("span", { key: 'abe4058f7a055ec348971ebf5a5d26c3a5ccb0f5', class: "max" }, this.multiplyByFactor(this.valuemax), this.unit)))), this.renderClearButton(), this.renderHelperLine()));
282
282
  }
283
283
  watchValue() {
284
284
  this.syncStateFromValue();
@@ -122,14 +122,14 @@ export class Snackbar {
122
122
  }
123
123
  }
124
124
  render() {
125
- return (h("aside", { key: '5612185e67dfea963fc9df340a288540f63db94e', popover: "manual", style: {
125
+ return (h("aside", { key: 'afddc11b55b4f3bdf05bc9ff50ed8c05851d53ac', popover: "manual", style: {
126
126
  '--snackbar-timeout': `${Math.max(this.timeout || 0, 0)}ms`,
127
127
  '--snackbar-distance-to-top-edge': `${this.offset}px`,
128
128
  }, class: {
129
129
  open: this.open,
130
130
  'is-closing': this.closing,
131
131
  'limel-portal--parent': true,
132
- }, id: this.snackbarId, role: this.setAriaRoles(), "aria-atomic": this.open ? 'true' : undefined, "aria-relevant": this.open ? 'additions' : undefined }, h("div", { key: 'a6221f26df374bac45ee3e5cd4a7f6c966340a06', class: "surface" }, h("limel-markdown", { key: '2da6a24cc92319fea7dde9a79a77f9719735a669', class: "label", value: this.message }), this.renderActions(this.actionText), this.renderDismissButton(this.dismissible))));
132
+ }, id: this.snackbarId, role: this.setAriaRoles(), "aria-atomic": this.open ? 'true' : undefined, "aria-relevant": this.open ? 'additions' : undefined }, h("div", { key: 'ea4aff6aba7f089e34e48aeb91a2a2d7382f3ca4', class: "surface" }, h("limel-markdown", { key: '3b2cc771e74d951a2dc2118e179c5a7670e2eab2', class: "label", value: this.message }), this.renderActions(this.actionText), this.renderDismissButton(this.dismissible))));
133
133
  }
134
134
  setAriaRoles() {
135
135
  if (!this.open) {
@@ -16,7 +16,7 @@ export class Spinner {
16
16
  this.limeBranded = false;
17
17
  }
18
18
  render() {
19
- return (h(Host, { key: '43fdff921a3dd6637a6f452c2acc344e54cb759a' }, h("svg", { key: '7566bc8a39a74543cfbec9030220c84b5509b310', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
19
+ return (h(Host, { key: 'ce772c5c7083690c8350e05720a5a1ba3a9119dd' }, h("svg", { key: 'd89a035b940a7cdb9e4f994a94301e91d242605e', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, this.renderSpinner())));
20
20
  }
21
21
  renderSpinner() {
22
22
  if (!this.limeBranded) {
@@ -55,9 +55,9 @@ export class SplitButton {
55
55
  };
56
56
  }
57
57
  render() {
58
- return (h(Host, { key: '2b103843490284b194de5dbf2c6030973889aa64', class: {
58
+ return (h(Host, { key: 'cb82f37e28c686da8dbdd1d5e0dafc00f5f47f4d', class: {
59
59
  'has-menu': this.items.length > 0,
60
- }, onClick: this.filterClickWhenDisabled }, h("limel-button", { key: '3badf574bf892cb26198166405739ef3a45fac49', label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled, loading: this.loading, loadingFailed: this.loadingFailed }), this.renderMenu()));
60
+ }, onClick: this.filterClickWhenDisabled }, h("limel-button", { key: '227c768350a7e822f766043c31f4d3ccb5d5181c', label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled, loading: this.loading, loadingFailed: this.loadingFailed }), this.renderMenu()));
61
61
  }
62
62
  static get is() { return "limel-split-button"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -78,7 +78,7 @@ export class Switch {
78
78
  removeEnterClickable(this.host);
79
79
  }
80
80
  render() {
81
- return (h(Host, { key: 'ad0cfa0f9b495ba197ca27f8975d8499cfdace52' }, this.readonly
81
+ return (h(Host, { key: '5193987be5def9c42517ecbc1affc9cbb08d6ff6' }, this.readonly
82
82
  ? this.renderReadonly()
83
83
  : this.renderInteractive(), this.renderHelperLine()));
84
84
  }
@@ -62,7 +62,7 @@ export class TabBar {
62
62
  }
63
63
  render() {
64
64
  const tabStop = findTabStop(this.tabs, this.tabs.findIndex((tab) => tab.active), this.getNavigationOptions());
65
- return (h("div", { key: 'd9f9e2659c8199ddd8202f04ed08535a91da2948', role: "tablist", "aria-orientation": this.getOrientation(), onKeyDown: this.handleKeyDown }, h("limel-scroller", { key: 'fdc0e8389ddc7ac8d0d63e5c777de6b6bf337697', orientation: this.getOrientation() }, this.tabs.map((tab, index) => this.renderTab(tab, index, index === tabStop)))));
65
+ return (h("div", { key: 'f4a760e69615d4d4d87ad3e176d109dbcdf2ea34', role: "tablist", "aria-orientation": this.getOrientation(), onKeyDown: this.handleKeyDown }, h("limel-scroller", { key: 'f3ff8810cf0a248c13aa2d9840c80c6f6270df68', orientation: this.getOrientation() }, this.tabs.map((tab, index) => this.renderTab(tab, index, index === tabStop)))));
66
66
  }
67
67
  tabsChanged(newTabs = [], oldTabs = []) {
68
68
  const newIds = newTabs.map((tab) => tab.id);
@@ -64,7 +64,7 @@ export class TabPanel {
64
64
  }
65
65
  }
66
66
  render() {
67
- return (h(Host, { key: '130cd711926c119be1b3084dfb966afe6d280926', onChangeTab: this.handleChangeTabs }, h("div", { key: 'e76da7ba8c93a3d9d4c03a84a01a5358b39b17ed', class: "tab-panel" }, h("limel-tab-bar", { key: '0866cd6c59e5e4ea372678a969bc646db81ed285', tabs: this.tabs, orientation: this.orientation }), h("div", { key: 'c0ee8b9d6bffcb32fc4894bf0ba7409ac194577d', class: "tab-content" }, h("slot", { key: '46b6cd024188a04ba466d831051cf3628996d97e' })))));
67
+ return (h(Host, { key: '69b4a7ee8bbe366dd3a001e2d63a96c1680660c1', onChangeTab: this.handleChangeTabs }, h("div", { key: '5844651fd25248b2767127f6ca6ab5f02f03c347', class: "tab-panel" }, h("limel-tab-bar", { key: '0ef45e1bead572d950148b0e4f8b53c8d9f567ce', tabs: this.tabs, orientation: this.orientation }), h("div", { key: 'a8b336877c2bc9b1ebda32fd726d76be3957bbf3', class: "tab-content" }, h("slot", { key: '97e10533292738d2b4d0914eb9922cac0b396bb6' })))));
68
68
  }
69
69
  setSlotElements() {
70
70
  const slot = this.getSlot();
@@ -757,13 +757,13 @@ export class Table {
757
757
  render() {
758
758
  var _a, _b;
759
759
  const totalRows = (_a = this.totalRows) !== null && _a !== void 0 ? _a : this.data.length;
760
- return (h(Host, { key: 'fbc213159bb430688bad03e74964e10edfcd829d', class: {
760
+ return (h(Host, { key: '8e8d0bcd487ff3a97c2a94b69c4501f941908ee1', class: {
761
761
  'has-low-density': this.layout === 'lowDensity',
762
762
  'has-pagination-on-top': this.paginationLocation === 'top',
763
763
  'has-aggregation': this.hasAggregation(this.columns),
764
764
  'has-pagination': totalRows > this.pageSize,
765
765
  'has-selection': (_b = this.tableSelection) === null || _b === void 0 ? void 0 : _b.hasSelection,
766
- } }, h("div", { key: 'cc988b86f74549d7ad773e748fef7cd92345efa5', id: "tabulator-container" }, h("div", { key: 'fd765d0050979609eaf4b9192f74b0abcf2cc0bd', id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } }, h("limel-spinner", { key: '8416fbae6d90b71ee9151f7c28450373a685fc99', size: "large" })), this.renderEmptyMessage(), this.renderSelectAll(), h("div", { key: '52aa28d0e575d8da169b8c6bb84d93b6f73f9a12', id: "tabulator-table" }))));
766
+ } }, h("div", { key: '9e28778ef0d76065191837fb3f86293c3ba4c482', id: "tabulator-container" }, h("div", { key: '4f5ffbe1d9c61a7557fe2f91ce71f599f7443445', id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } }, h("limel-spinner", { key: 'd758f28e7e2fa0db7e5550e4786b1855f94e2bca', size: "large" })), this.renderEmptyMessage(), this.renderSelectAll(), h("div", { key: 'f936473386dd1ad3163a7726cb8203f93c7d3528', id: "tabulator-table" }))));
767
767
  }
768
768
  renderSelectAll() {
769
769
  var _a, _b, _c;
@@ -107,9 +107,9 @@ export class TextEditorLinkMenu {
107
107
  var _a, _b;
108
108
  const isValid = this.isValid(this.link.href);
109
109
  return [
110
- h("limel-input-field", { key: '49edffd1f2b8dbc6fdb6824251541883f8a96d44', label: this.getTranslation('editor-link-menu.text'), value: ((_a = this.link) === null || _a === void 0 ? void 0 : _a.text) || '', leadingIcon: "text_cursor", onChange: this.handleLinkTitleChange, onKeyDown: this.handleKeyDown }),
111
- h("limel-input-field", { key: '8aafc8d1496b9d27484e4a4e862b247dfc86b4bc', label: this.getTranslation('editor-link-menu.link'), value: ((_b = this.link) === null || _b === void 0 ? void 0 : _b.href) || '', type: "text", leadingIcon: "-lime-text-link", trailingIcon: "external_link", invalid: !isValid, onChange: this.handleLinkValueChange, onAction: this.handleLinkInputAction, onKeyDown: this.handleKeyDown, ref: (el) => (this.linkInput = el) }),
112
- h("div", { key: '39cc9d707d8d9aa15458b78e23905fba7af2eee6', class: "actions" }, h("limel-button", { key: '220e2ac8c3984b9d49dab3f2a5f94be025de448b', label: this.getTranslation('cancel'), onClick: this.handleCancel }), h("limel-button", { key: '23369649c3ef9fbf5bfeb38b986baa0271f2efe6', primary: true, label: this.getTranslation('save'), disabled: !isValid, onClick: this.handleSave, ref: (el) => (this.saveButton = el), slot: "button" })),
110
+ h("limel-input-field", { key: 'b56e8cc8a92687def175a89ac65ae50dc8d20117', label: this.getTranslation('editor-link-menu.text'), value: ((_a = this.link) === null || _a === void 0 ? void 0 : _a.text) || '', leadingIcon: "text_cursor", onChange: this.handleLinkTitleChange, onKeyDown: this.handleKeyDown }),
111
+ h("limel-input-field", { key: '15e93737de2593e18e834574fc2ea6c1ae674750', label: this.getTranslation('editor-link-menu.link'), value: ((_b = this.link) === null || _b === void 0 ? void 0 : _b.href) || '', type: "text", leadingIcon: "-lime-text-link", trailingIcon: "external_link", invalid: !isValid, onChange: this.handleLinkValueChange, onAction: this.handleLinkInputAction, onKeyDown: this.handleKeyDown, ref: (el) => (this.linkInput = el) }),
112
+ h("div", { key: 'e26f28d12a340a6a6a6812e538ece24e542435b7', class: "actions" }, h("limel-button", { key: 'db02d851b128ef963d505cb27c604105aaa5a55d', label: this.getTranslation('cancel'), onClick: this.handleCancel }), h("limel-button", { key: '3bb20785677384693a20963c493a1cfd9b8fabcb', primary: true, label: this.getTranslation('save'), disabled: !isValid, onClick: this.handleSave, ref: (el) => (this.saveButton = el), slot: "button" })),
113
113
  ];
114
114
  }
115
115
  static get is() { return "limel-text-editor-link-menu"; }
@@ -308,7 +308,7 @@ export class ProsemirrorAdapter {
308
308
  (_e = this.view) === null || _e === void 0 ? void 0 : _e.destroy();
309
309
  }
310
310
  render() {
311
- return (h(Host, { key: '16ef71481dea1fcefa1735e5a6350f47bf1d78ca', onFocus: this.handleFocus }, h("div", { key: '3b6598d8efd561afb6191d3d650f3a32e86f6904', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
311
+ return (h(Host, { key: '6c92f1576fdd862e592d0ccf6779c6d3da806808', onFocus: this.handleFocus }, h("div", { key: '0b1b90a7c68b62ecffed21f4c49fced5333f0d83', id: "editor" }), this.renderToolbar(), this.renderLinkMenu()));
312
312
  }
313
313
  renderToolbar() {
314
314
  if (this.actionBarItems.length === 0 || this.ui === 'no-toolbar') {
@@ -176,7 +176,7 @@ export class TextEditor {
176
176
  await ((_a = this.adapterElement) === null || _a === void 0 ? void 0 : _a.clear());
177
177
  }
178
178
  render() {
179
- return (h(Host, { key: '67cb756a0010effb1b4cbfeeb56e50cd86cbfbe0' }, h("limel-notched-outline", { key: '9b3f5891318c69d557c0cb7af7d19d8f14e0ff9c', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
179
+ return (h(Host, { key: '8a5ca6c89305056819747e51cd808f35036c8666' }, h("limel-notched-outline", { key: 'eb4bd944033212a2ec88d664aa1096fc3b07a5cf', labelId: this.editorId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasFloatingLabel: true }, this.renderEditor(), this.renderPlaceholder()), this.renderHelperLine()));
180
180
  }
181
181
  renderEditor() {
182
182
  if (this.readonly) {
@@ -15,7 +15,7 @@ export class TooltipContent {
15
15
  const style = this.maxlength
16
16
  ? { '--tooltip-max-width-of-text': `${this.maxlength}ch` }
17
17
  : undefined;
18
- return (h(Host, { key: 'e8299e2c990753eafd08af063a7828a11ea77cec', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '634f141ede25c9a3faa7ca7ce4f79b59c3c7ec8d', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
18
+ return (h(Host, { key: '63d36a0e0f1fb0e4eb94c5c216c80299d82f63b2', class: { 'has-column-layout': isLabelsTextLong }, style: style }, h("div", { key: '6d4ecf58b8854edeece92a53065816292a2a39b9', class: "label" }, this.label), this.renderHelperLabel(), this.renderHotkey()));
19
19
  }
20
20
  renderHelperLabel() {
21
21
  if (!this.helperLabel) {
@@ -68,10 +68,10 @@ export class Tooltip {
68
68
  }
69
69
  render() {
70
70
  const tooltipZIndex = getComputedStyle(this.host).getPropertyValue('--tooltip-z-index');
71
- return (h("div", { key: '970ce406a2209065f744d124c28d486dfa169164', class: "trigger-anchor" }, h("limel-portal", { key: 'bfe825d0261a452c207077e8fe37ddce5b10d477', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
71
+ return (h("div", { key: '11a9db0e1b1e615ddbdeea5eb2c5089e1f9eadeb', class: "trigger-anchor" }, h("limel-portal", { key: '28e7ffeb63ff24978dd2bd1ed0b0b2aa278abbde', openDirection: this.openDirection, visible: this.open, containerId: this.portalId, containerStyle: {
72
72
  'z-index': tooltipZIndex,
73
73
  'pointer-events': 'none',
74
- }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: '07003cc2b868b8320b97e4a75f3cb2e71b50efb9', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
74
+ }, anchor: this.ownerElement }, h("limel-tooltip-content", { key: 'abc48a7948a932c081a44fb1d617bc3b351d452c', label: this.label, helperLabel: this.helperLabel, hotkey: this.hotkey, maxlength: this.maxlength, role: "tooltip", "aria-hidden": !this.open, id: this.tooltipId }))));
75
75
  }
76
76
  setOwnerAriaDescribedby() {
77
77
  var _a;