@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
@@ -7,12 +7,12 @@ const RadioButtonComponent = class {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '93e5adb101fd866a1c56e0233b32eddef6617a08', class: {
10
+ return (h(Host, { key: '7cdb4d6a667a0afe8ed668cc32b4a38c39817d75', class: {
11
11
  'boolean-input': true,
12
12
  'radio-button': true,
13
13
  checked: this.checked,
14
14
  disabled: this.disabled,
15
- } }, h("input", { key: '816bc49ab2f8bd6fcbaa8d10c7b5250fd64aa044', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("div", { key: 'e4656777d40210f46c5f28deace470a90f41cfdf', class: "box" }), h("label", { key: 'c27a557fea46c0951a0aed27df40a61b30809550', class: "boolean-input-label", htmlFor: this.id }, this.label)));
15
+ } }, h("input", { key: 'f51cfa414dd1e2f50ea211a690a55dc7525d5501', type: "radio", id: this.id, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("div", { key: 'a6ec3d879e3410c9973a1b8c66469a852e4e4995', class: "box" }), h("label", { key: '978984158d1c8344da8bcc6a4e3d7aa8003f75b2', class: "boolean-input-label", htmlFor: this.id }, this.label)));
16
16
  }
17
17
  };
18
18
  RadioButtonComponent.style = radioButtonCss();
@@ -0,0 +1,238 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BU9IJqli.js';
2
+ import { A as ARROW_UP, b as ARROW_DOWN, c as ARROW_LEFT, d as ARROW_RIGHT } from './keycodes-Bu6-QXrA.js';
3
+
4
+ const KEYBOARD_SIZE_STEP = 8;
5
+ const resizeLocations = {
6
+ left: {
7
+ axis: 'x',
8
+ cursor: 'col-resize',
9
+ direction: -1,
10
+ growKey: ARROW_LEFT,
11
+ shrinkKey: ARROW_RIGHT,
12
+ },
13
+ right: {
14
+ axis: 'x',
15
+ cursor: 'col-resize',
16
+ direction: 1,
17
+ growKey: ARROW_RIGHT,
18
+ shrinkKey: ARROW_LEFT,
19
+ },
20
+ top: {
21
+ axis: 'y',
22
+ cursor: 'row-resize',
23
+ direction: -1,
24
+ growKey: ARROW_UP,
25
+ shrinkKey: ARROW_DOWN,
26
+ },
27
+ bottom: {
28
+ axis: 'y',
29
+ cursor: 'row-resize',
30
+ direction: 1,
31
+ growKey: ARROW_DOWN,
32
+ shrinkKey: ARROW_UP,
33
+ },
34
+ };
35
+ /**
36
+ * Returns the orientation of a separator that is a handle at the given
37
+ * location.
38
+ *
39
+ * @param location - the location of the handle
40
+ * @returns the orientation
41
+ */
42
+ function getOrientation(location) {
43
+ return resizeLocations[location].axis === 'x' ? 'vertical' : 'horizontal';
44
+ }
45
+ /**
46
+ * Returns how many pixels the size of the element changes when the key is
47
+ * pressed while the handle has focus.
48
+ *
49
+ * @param location - the location of the handle
50
+ * @param key - the `key` of the keyboard event
51
+ * @returns the change in pixels, or `undefined` when the key does not resize
52
+ */
53
+ function getKeyboardSizeChange(location, key) {
54
+ const { growKey, shrinkKey } = resizeLocations[location];
55
+ if (key === growKey) {
56
+ return KEYBOARD_SIZE_STEP;
57
+ }
58
+ if (key === shrinkKey) {
59
+ return -KEYBOARD_SIZE_STEP;
60
+ }
61
+ }
62
+ /**
63
+ * Returns the size of the element along the axis that a handle at the given
64
+ * location resizes: the width for `left` and `right`, the height for `top` and
65
+ * `bottom`.
66
+ *
67
+ * `offsetWidth` and `offsetHeight` are used and not `getBoundingClientRect`,
68
+ * because an ancestor can be scaled with a transform.
69
+ *
70
+ * @param element - the element that the handle resizes
71
+ * @param location - the location of the handle
72
+ * @returns the size in pixels
73
+ */
74
+ function measureSize(element, location) {
75
+ return resizeLocations[location].axis === 'x'
76
+ ? element.offsetWidth
77
+ : element.offsetHeight;
78
+ }
79
+
80
+ // Several handles can be dragged at the same time, for example with two
81
+ // fingers. The styles from before the first drag come back when the last drag
82
+ // ends.
83
+ const dragStyles = {
84
+ activeDrags: 0,
85
+ };
86
+ /**
87
+ * The handle has captured the pointer, but the browser draws the cursor of the
88
+ * element under the pointer, which after the first pixel is the page, not the
89
+ * handle. Without these styles the cursor changes when the drag leaves the
90
+ * handle, and the drag selects the text that the pointer moves across.
91
+ *
92
+ * @param cursor - the cursor to show during the drag
93
+ */
94
+ function applyDragStylesToBody(cursor) {
95
+ if (dragStyles.activeDrags === 0) {
96
+ dragStyles.before = getBodyStyles();
97
+ }
98
+ dragStyles.activeDrags += 1;
99
+ setBodyStyles({ cursor: cursor, userSelect: 'none' });
100
+ }
101
+ function restoreBodyStyles() {
102
+ dragStyles.activeDrags -= 1;
103
+ if (dragStyles.activeDrags === 0) {
104
+ setBodyStyles(dragStyles.before);
105
+ }
106
+ }
107
+ function getBodyStyles() {
108
+ return {
109
+ cursor: document.body.style.cursor,
110
+ userSelect: document.body.style.userSelect,
111
+ };
112
+ }
113
+ function setBodyStyles(styles) {
114
+ document.body.style.cursor = styles.cursor;
115
+ document.body.style.userSelect = styles.userSelect;
116
+ }
117
+ /**
118
+ * Makes an element resizable with a drag handle on one of its edges.
119
+ *
120
+ * @param handle - the drag handle
121
+ * @param listener - gives the location and the size, and is told about the
122
+ * resize
123
+ * @returns a function that removes the event listeners
124
+ */
125
+ function dragToResize(handle, listener) {
126
+ let activePointerId;
127
+ let traits = resizeLocations.left;
128
+ let startedAt;
129
+ let startedSize;
130
+ let hasResized = false;
131
+ const pointerPosition = (event) => {
132
+ return traits.axis === 'x' ? event.clientX : event.clientY;
133
+ };
134
+ const start = (event) => {
135
+ if (activePointerId !== undefined) {
136
+ return;
137
+ }
138
+ event.preventDefault();
139
+ activePointerId = event.pointerId;
140
+ hasResized = false;
141
+ traits = resizeLocations[listener.getLocation()];
142
+ startedAt = pointerPosition(event);
143
+ startedSize = listener.getSize();
144
+ handle.setPointerCapture(event.pointerId);
145
+ applyDragStylesToBody(traits.cursor);
146
+ };
147
+ const drag = (event) => {
148
+ if (event.pointerId !== activePointerId) {
149
+ return;
150
+ }
151
+ hasResized = true;
152
+ listener.resize(startedSize +
153
+ traits.direction * (pointerPosition(event) - startedAt));
154
+ };
155
+ const end = (event) => {
156
+ if (event.pointerId !== activePointerId) {
157
+ return;
158
+ }
159
+ stop();
160
+ if (hasResized) {
161
+ listener.end();
162
+ }
163
+ };
164
+ // Cleanup also calls this, also between drags. The body styles can then
165
+ // belong to a different drag, so they are only reset for an active drag.
166
+ const stop = () => {
167
+ if (activePointerId === undefined) {
168
+ return;
169
+ }
170
+ activePointerId = undefined;
171
+ restoreBodyStyles();
172
+ };
173
+ handle.addEventListener('pointerdown', start);
174
+ handle.addEventListener('pointermove', drag);
175
+ handle.addEventListener('pointerup', end);
176
+ handle.addEventListener('pointercancel', end);
177
+ handle.addEventListener('lostpointercapture', end);
178
+ return () => {
179
+ stop();
180
+ handle.removeEventListener('pointerdown', start);
181
+ handle.removeEventListener('pointermove', drag);
182
+ handle.removeEventListener('pointerup', end);
183
+ handle.removeEventListener('pointercancel', end);
184
+ handle.removeEventListener('lostpointercapture', end);
185
+ };
186
+ }
187
+
188
+ const resizeHandleCss = () => `@charset "UTF-8";:host(limel-resize-handle){position:absolute;z-index:1;touch-action:none;display:flex;align-items:center;justify-content:center;border-radius:100vh}:host::before,:host::after{pointer-events:none;content:"";display:block;position:absolute;inset:0;border-radius:100vh;margin:auto}:host::before{transition:scale 0.3s ease, opacity 0.3s ease;transition-delay:0.2s;opacity:0}:host::after{transition:background-color 0.4s ease;transition-delay:0.2s;background-color:rgb(var(--contrast-600))}:host([location=top]),:host([location=bottom]){cursor:row-resize;height:var(--limel-resize-handle-thickness, 0.5rem) !important;right:0;left:0}:host([location=top])::before,:host([location=bottom])::before{scale:1 0.9;height:0.5rem;width:var(--limel-resize-handle-visual-length, auto)}:host([location=top])::after,:host([location=bottom])::after{height:0.125rem;width:var(--limel-resize-handle-visual-length, auto)}:host([location=top]){top:0}:host([location=top])::before{top:0;bottom:auto}:host([location=top])::after{top:calc((0.5rem - 0.125rem) / 2);bottom:auto}:host([location=bottom]){bottom:0}:host([location=bottom])::before{top:auto;bottom:0}:host([location=bottom])::after{top:auto;bottom:calc((0.5rem - 0.125rem) / 2)}:host([location=left]),:host([location=right]){cursor:col-resize;width:0.5rem;top:0;bottom:0}:host([location=left])::before,:host([location=right])::before{scale:0.9 1}:host([location=left])::after,:host([location=right])::after{width:0.125rem}:host([location=left]){left:0}:host([location=right]){right:0}:host(:focus-visible){outline:none}:host(:hover)::before,:host(:focus-visible)::before{transition-duration:0.46s;transition-timing-function:ease-in;opacity:1;scale:1 1;background-color:rgb(var(--color-sky-light), 0.4)}:host(:hover)::after,:host(:focus-visible)::after{transition-duration:0.2s;transition-timing-function:ease-in;background-color:rgb(var(--color-sky-default))}div{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);pointer-events:none;position:relative;z-index:1;display:flex;gap:0.25rem;align-items:center;justify-content:center;width:fit-content;padding:0.1875rem 0.25rem;border-radius:100vh;margin:auto;background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-pressed)}div span{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);border-radius:0.125rem;width:0.25rem;height:0.125rem;background-color:rgb(var(--contrast-700))}:host([location=top]) div{margin-top:0;margin-bottom:auto}:host([location=bottom]) div{margin-top:auto;margin-bottom:0}:host([aria-orientation=vertical]) div{rotate:90deg}:host(:hover),:host(:focus-visible){--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}:host(:hover) div,:host(:focus-visible) div{will-change:background-color, box-shadow, transform;transform:translate3d(0, -0.04rem, 0);box-shadow:var(--button-shadow-normal)}:host(:hover) span,:host(:focus-visible) span{will-change:background-color;background-color:var(--mdc-theme-primary)}`;
189
+
190
+ const ResizeHandle = class {
191
+ constructor(hostRef) {
192
+ registerInstance(this, hostRef);
193
+ this.changeSize = createEvent(this, "changeSize", 1);
194
+ this.endResize = createEvent(this, "endResize", 1);
195
+ /**
196
+ * The location of the handle relative to the resizable element.
197
+ */
198
+ this.location = 'left';
199
+ this.handleKeyDown = (event) => {
200
+ const change = getKeyboardSizeChange(this.location, event.key);
201
+ if (change === undefined) {
202
+ return;
203
+ }
204
+ event.preventDefault();
205
+ this.changeSize.emit(this.elementSize() + change);
206
+ this.endResize.emit();
207
+ };
208
+ this.elementSize = () => {
209
+ return measureSize(this.resizableElement(), this.location);
210
+ };
211
+ }
212
+ connectedCallback() {
213
+ this.stopResizing = dragToResize(this.host, {
214
+ getLocation: () => this.location,
215
+ getSize: this.elementSize,
216
+ resize: (size) => this.changeSize.emit(size),
217
+ end: () => this.endResize.emit(),
218
+ });
219
+ }
220
+ disconnectedCallback() {
221
+ var _a;
222
+ (_a = this.stopResizing) === null || _a === void 0 ? void 0 : _a.call(this);
223
+ this.stopResizing = undefined;
224
+ }
225
+ render() {
226
+ return (h(Host, { key: 'b4f84fff38ded8d6493be55685fbe1c8d27affdb', role: "separator", "aria-orientation": getOrientation(this.location), "aria-label": this.label, "aria-valuenow": this.value, "aria-valuemin": this.min, "aria-valuemax": this.max, tabindex: "0", onKeyDown: this.handleKeyDown }, h("div", { key: '02b4abbc61b0dd571ceda1d69de057605523e29a', role: "presentation" }, h("span", { key: 'ea5083fca722c11df72f4b0f647f087732a28033' }), h("span", { key: '81a176e0594f20572dbc94aea0e5dc7709a21d96' }), h("span", { key: '4c39fcd49f2ad087f16a032dfa085d3a8630c41e' }))));
227
+ }
228
+ resizableElement() {
229
+ if (this.host.parentElement) {
230
+ return this.host.parentElement;
231
+ }
232
+ return this.host.getRootNode().host;
233
+ }
234
+ get host() { return getElement(this); }
235
+ };
236
+ ResizeHandle.style = resizeHandleCss();
237
+
238
+ export { ResizeHandle as limel_resize_handle };
@@ -63,12 +63,12 @@ const Scroller = class {
63
63
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: 'e84ebfb819a65ec4b655155c88fae8d3163f81e5' }, h("div", { key: '5de2d4b4ea1f5f423d69195fb66e2a9e83bd5b3f', class: {
66
+ return (h(Host, { key: 'c208de7a73b1d3d040a0a76b2bdc7bad3d5ab739' }, h("div", { key: '5e69255f710a5f5f439553fa1f9b183e9dc5a9bd', class: {
67
67
  scroller: true,
68
68
  [this.orientation]: true,
69
69
  'can-scroll-to-start': this.canScrollToStart,
70
70
  'can-scroll-to-end': this.canScrollToEnd,
71
- } }, h("div", { key: 'e6b6d2832c6d8eecd18f5b653ee39d1f107d212a', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, h("div", { key: '696a605e2478ea31b256631df195cb3e0e64d07a', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, h("slot", { key: 'c32bfe0c61b93c794e2837563ea081ffccf33440', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
71
+ } }, h("div", { key: 'fc1b91baa65f317ae7bad667cba13813400ac546', class: "scroll-area", ref: (element) => (this.scrollArea = element), onScroll: this.updateScrollability, onFocusin: this.revealFocusedItem }, h("div", { key: '43c02c4acba2ba647aaf6a7516a0326ffc0f16b1', class: "scroll-content", ref: (element) => (this.scrollContent = element) }, h("slot", { key: '3d2e82f50748410b5370741c8e8b1f44117adc35', ref: (element) => (this.slotElement = element) }))), this.renderEdge('start'), this.renderEdge('end'))));
72
72
  }
73
73
  renderEdge(edge) {
74
74
  return [
@@ -1,6 +1,6 @@
1
1
  import { h, r as registerInstance, c as createEvent, a as getElement } from './index-BU9IJqli.js';
2
2
  import { b as isMobileDevice } from './device-B-tmXAXV.js';
3
- import { S as SPACEBAR, a as ENTER } from './keycodes-DQ5DmW_Y.js';
3
+ import { S as SPACEBAR, a as ENTER } from './keycodes-Bu6-QXrA.js';
4
4
  import { i as isMultiple } from './multiple-BylwpiM6.js';
5
5
  import { c as createRandomString } from './random-string-BrjD-ITe.js';
6
6
  import { r as renderListComponent } from './render-list-component-J1IzNpbv.js';
@@ -798,7 +798,7 @@ const Select = class {
798
798
  }
799
799
  render() {
800
800
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
801
- return (h(SelectTemplate, { key: '0def26ad84ac6317b6f5fa0c18bd4b66f320dff1', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerKeyDown: this.handleMenuTriggerKeyDown, listRef: this.setListElement, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
801
+ return (h(SelectTemplate, { key: 'dd610ca15d4efd4ebc6bc52dae88625dcbca241f', id: this.portalId, disabled: this.disabled || this.readonly, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerKeyDown: this.handleMenuTriggerKeyDown, listRef: this.setListElement, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
802
802
  }
803
803
  watchOpen(newValue, oldValue) {
804
804
  if (this.checkValid) {
@@ -51,7 +51,7 @@ const Shortcut = class {
51
51
  render() {
52
52
  var _a, _b, _c, _d, _e;
53
53
  const rel = getRel((_a = this.link) === null || _a === void 0 ? void 0 : _a.target, (_b = this.link) === null || _b === void 0 ? void 0 : _b.rel);
54
- return (h(Host, { key: '69f27974df1fd3fea7b9822714c0a3d59b6a7fab', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: '9f8c7b9dc8e2f27007cb46687cb7bf10314e2a8a', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: '3c10a0091ad0e1549b2765ad429ed2966220246e', name: this.icon }), h("limel-3d-hover-effect-glow", { key: '17011ca6b7d73130b73b85fd30d54921bd07ec54' })), this.renderLabel(), this.renderNotification()));
54
+ return (h(Host, { key: 'a5b5f21fa6c27511357c3fdf498384ad7b8c3f6e', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: '74496e167864c94b9169fe2d5ed1aea82c4e2d20', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: '7ba30c4e1f4aae41ad2626228f238979bcce1405', name: this.icon }), h("limel-3d-hover-effect-glow", { key: 'f6dd1cedf07c7bce7eba7d8b8eb44f948ab4ce25' })), this.renderLabel(), this.renderNotification()));
55
55
  }
56
56
  get host() { return getElement(this); }
57
57
  };
@@ -0,0 +1,281 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-BU9IJqli.js';
2
+ import { E as ESCAPE } from './keycodes-Bu6-QXrA.js';
3
+ import { c as createRandomString } from './random-string-BrjD-ITe.js';
4
+
5
+ /**
6
+ * Returns the element that has focus, also when it is inside shadow roots.
7
+ * `document.activeElement` returns the host of the outermost shadow root that
8
+ * contains the focused element.
9
+ *
10
+ * @returns the element that has focus, or `null` when no element has focus
11
+ */
12
+ function getDeepActiveElement() {
13
+ var _a;
14
+ let element = document.activeElement;
15
+ while ((_a = element === null || element === void 0 ? void 0 : element.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) {
16
+ element = element.shadowRoot.activeElement;
17
+ }
18
+ return element;
19
+ }
20
+
21
+ const sidePanelCss = () => `@charset "UTF-8";:host(limel-side-panel){--_side-panel-width:var(--side-panel-width, 37.5rem);--_side-panel-min-width:var(--side-panel-min-width, 25rem);--_side-panel-top-inset:var(--side-panel-top-inset, 0px);--_side-panel-right-inset:var(--side-panel-right-inset, 0px);--_side-panel-bottom-inset:var(--side-panel-bottom-inset, 0px);--_side-panel-z-index:var(--side-panel-z-index, 6)}@keyframes show-side-panel{0%{transform:translate3d(12.5rem, 0, 0) scale(0.95);opacity:0}60%{opacity:1}100%{transform:translate3d(0, 0, 0) scale(1)}}section{position:absolute;z-index:var(--_side-panel-z-index);top:var(--_side-panel-top-inset);right:var(--_side-panel-right-inset);bottom:var(--_side-panel-bottom-inset);margin:0.5rem;display:flex;flex-direction:column;isolation:isolate;width:var(--_side-panel-width);min-width:min(var(--_side-panel-min-width), 100% - 1rem);max-width:min(100% - 1rem - 3rem, 60%);max-height:100%;border-radius:1rem;box-shadow:var(--shadow-depth-64);transform-origin:left center;transition:background-color 0.5s ease, transform 0.3s ease, opacity 0.2s ease, right 0.2s ease;animation:show-side-panel 0.46s cubic-bezier(0.08, 0.54, 0.06, 1.11) forwards}section:focus{outline:none}@media (prefers-reduced-motion){section{animation:none;transition:none}}.content{display:flex;flex-direction:column;flex-grow:1;min-height:0;overflow:hidden;border-radius:1rem;background-color:rgb(var(--contrast-100))}.toolbar{flex-shrink:0;display:flex;align-items:center;gap:0.25rem;box-sizing:border-box;min-height:2.375rem;padding:0.25rem 0.125rem;background-color:rgb(var(--contrast-300))}.close{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:inherit;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}.close:hover,.close:focus,.close:focus-visible{will-change:color, background-color, box-shadow, transform}.close:hover,.close:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.close:hover{box-shadow:var(--button-shadow-hovered)}.close: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)}.close:hover,.close:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.close:focus{outline:none}.close:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.close{isolation:isolate;position:relative;display:flex;justify-content:center;align-items:center;width:1.875rem;height:1.875rem;border-radius:50%}.close limel-icon{width:1.25rem;transition:transform 0.2s ease, color 0.2s ease}.close:before,.close:after{content:"";position:absolute;z-index:-1;inset:0;border-radius:50%;opacity:0;transition-delay:0.1s}.close:before{transition:transform 0.3s ease, opacity 0.3s ease;background-color:rgb(var(--color-orange-dark))}.close:after{transition:transform 0.6s ease, opacity 0.6s ease;background-color:rgb(var(--color-orange-light))}.close:hover limel-icon{color:rgb(var(--color-white));transform:scale(0.7) rotate(90deg)}.close:hover:before{opacity:1;transform:scale(0.4)}.close:hover:after{opacity:0.4;transform:scale(0.6)}.body{flex-grow:1;min-height:0;display:flex;flex-direction:column;overflow:hidden auto}.handle{position:absolute;z-index:1;top:calc(2.375rem + 0.5rem);bottom:1rem;left:calc(0.5rem / -2);width:0.5rem}[data-limit]{position:absolute;visibility:hidden;pointer-events:none;height:0}[data-limit=min]{width:min(var(--_side-panel-min-width), 100% - 1rem)}[data-limit=max]{width:min(100% - 1rem - 3rem, 60%)}`;
22
+
23
+ /**
24
+ * Open panels, in the order they were connected. Only the last one handles
25
+ * Escape.
26
+ */
27
+ const openPanels = [];
28
+ function stopEvent(event) {
29
+ event.stopPropagation();
30
+ }
31
+ const SidePanel = class {
32
+ constructor(hostRef) {
33
+ registerInstance(this, hostRef);
34
+ this.close = createEvent(this, "close", 7);
35
+ this.changeWidth = createEvent(this, "changeWidth", 7);
36
+ /**
37
+ * Label of the close button. Shown as a tooltip and used as the accessible
38
+ * name.
39
+ */
40
+ this.closeLabel = 'Close';
41
+ /**
42
+ * Label of the resize handle. Used as the accessible name.
43
+ */
44
+ this.resizeLabel = 'Resize';
45
+ /**
46
+ * Whether pressing Escape emits `close`. Set to `false` to let only the
47
+ * close button emit `close`. The panel then does not prevent the Escape
48
+ * event either.
49
+ */
50
+ this.closeOnEscape = true;
51
+ this.closeButtonId = createRandomString();
52
+ this.setBody = (element) => {
53
+ this.body = element;
54
+ this.stopContentEventsInBody();
55
+ };
56
+ // Moving the panel in the DOM also disconnects it. It is then connected
57
+ // again before the microtask runs. Focus only returns when it was lost with
58
+ // the panel, and not when the user has moved it to another element.
59
+ this.restoreFocus = () => {
60
+ const hasLostFocus = !document.activeElement || document.activeElement === document.body;
61
+ if (this.host.isConnected || !hasLostFocus) {
62
+ return;
63
+ }
64
+ const element = this.focusedBefore;
65
+ this.focusedBefore = undefined;
66
+ if (element === null || element === void 0 ? void 0 : element.isConnected) {
67
+ element.focus();
68
+ }
69
+ };
70
+ this.setPanel = (element) => {
71
+ this.panel = element;
72
+ };
73
+ this.setMinLimit = (element) => {
74
+ this.minLimit = element;
75
+ };
76
+ this.setMaxLimit = (element) => {
77
+ this.maxLimit = element;
78
+ };
79
+ this.handleKeyDown = (event) => {
80
+ if (!this.closeOnEscape ||
81
+ event.key !== ESCAPE ||
82
+ event.defaultPrevented ||
83
+ !this.isLastOpened()) {
84
+ return;
85
+ }
86
+ event.preventDefault();
87
+ this.close.emit();
88
+ };
89
+ this.handleChangeSize = (event) => {
90
+ this.rememberWidthBeforeResize();
91
+ this.setWidth(event.detail);
92
+ };
93
+ this.handleEndResize = () => {
94
+ if (!this.isResizing()) {
95
+ return;
96
+ }
97
+ const widthBefore = this.widthBeforeResize;
98
+ this.widthBeforeResize = undefined;
99
+ this.keepClampedWidth();
100
+ this.updateWidthRange();
101
+ this.emitWidthIfChanged(widthBefore);
102
+ };
103
+ // The height of the panel, and a width that `updateWidthRange` has already
104
+ // measured, for example after an arrow key press, need no new measurement.
105
+ this.handleSizeChange = (entries) => {
106
+ if (entries.every(this.isMeasured)) {
107
+ return;
108
+ }
109
+ this.updateWidthRange();
110
+ };
111
+ this.isMeasured = (entry) => {
112
+ var _a;
113
+ return (entry.target === this.panel &&
114
+ Math.round(entry.borderBoxSize[0].inlineSize) ===
115
+ ((_a = this.widthRange) === null || _a === void 0 ? void 0 : _a.now));
116
+ };
117
+ // Reading the current width forces a layout of the content, which is slow
118
+ // when the content is large. The range does not change during a resize, so it
119
+ // is measured when the resize ends.
120
+ this.updateWidthRange = () => {
121
+ if (this.isResizing()) {
122
+ return;
123
+ }
124
+ this.widthRange = this.measureWidthRange();
125
+ };
126
+ this.handleClickClose = () => {
127
+ this.close.emit();
128
+ };
129
+ }
130
+ connectedCallback() {
131
+ openPanels.push(this);
132
+ window.addEventListener('keydown', this.handleKeyDown);
133
+ this.rememberFocusedElement();
134
+ this.observeWidth();
135
+ }
136
+ componentDidLoad() {
137
+ this.observeWidth();
138
+ this.moveFocusIntoPanel();
139
+ }
140
+ disconnectedCallback() {
141
+ this.widthBeforeResize = undefined;
142
+ this.stopObservingWidth();
143
+ window.removeEventListener('keydown', this.handleKeyDown);
144
+ this.removeFromOpenPanels();
145
+ queueMicrotask(this.restoreFocus);
146
+ }
147
+ render() {
148
+ 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 })));
149
+ }
150
+ // A native button and not `limel-icon-button`, because the hover animation
151
+ // styles the icon, which is inside the shadow root of `limel-icon-button`.
152
+ renderCloseButton() {
153
+ 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 })));
154
+ }
155
+ renderHandle() {
156
+ var _a, _b, _c;
157
+ 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 }));
158
+ }
159
+ renderBody() {
160
+ return (h("div", { class: "body", ref: this.setBody }, h("slot", null)));
161
+ }
162
+ /**
163
+ * Components in the content can emit events with the same names as the
164
+ * panel's events, for example `close` from `limel-dialog` or
165
+ * `limel-collapsible-section`. Events from slotted content pass through
166
+ * `.body` before they reach the host, so they are stopped there. The panel's
167
+ * own events are dispatched on the host, so they are not affected.
168
+ *
169
+ * Keep the event names in sync with {@link SidePanel.stopContentEventAtHost}.
170
+ */
171
+ stopContentEventsInBody() {
172
+ var _a, _b;
173
+ // Adding the same listener again has no effect, so re-renders are safe.
174
+ (_a = this.body) === null || _a === void 0 ? void 0 : _a.addEventListener('close', stopEvent);
175
+ (_b = this.body) === null || _b === void 0 ? void 0 : _b.addEventListener('changeWidth', stopEvent);
176
+ }
177
+ /**
178
+ * Fallback for {@link SidePanel.stopContentEventsInBody}.
179
+ * Stops `close` and `changeWidth` events that reach the host from any
180
+ * element other than the host.
181
+ *
182
+ * This does not replace the slot listener. A consumer listener that is added
183
+ * before the panel is connected runs before this one, and would still
184
+ * receive the event.
185
+ *
186
+ * @param event - the event
187
+ */
188
+ stopContentEventAtHost(event) {
189
+ if (event.target === this.host) {
190
+ return;
191
+ }
192
+ event.stopImmediatePropagation();
193
+ }
194
+ moveFocusIntoPanel() {
195
+ this.panel.focus({ preventScroll: true });
196
+ }
197
+ rememberFocusedElement() {
198
+ const element = getDeepActiveElement();
199
+ if (!element || element === document.body) {
200
+ return;
201
+ }
202
+ this.focusedBefore = element;
203
+ }
204
+ removeFromOpenPanels() {
205
+ const index = openPanels.indexOf(this);
206
+ if (index === -1) {
207
+ return;
208
+ }
209
+ openPanels.splice(index, 1);
210
+ }
211
+ isLastOpened() {
212
+ return openPanels.at(-1) === this;
213
+ }
214
+ // An inline width wins over `--side-panel-width`, and is still limited by
215
+ // `min-width` and `max-width`. The width is set on the element and not with
216
+ // a state, because a render and a measurement on each pointer move make
217
+ // the drag slow when the content is large.
218
+ setWidth(width) {
219
+ this.panel.style.width = `${width}px`;
220
+ }
221
+ rememberWidthBeforeResize() {
222
+ if (this.isResizing()) {
223
+ return;
224
+ }
225
+ this.widthBeforeResize = this.currentWidth();
226
+ }
227
+ isResizing() {
228
+ return this.widthBeforeResize !== undefined;
229
+ }
230
+ // A drag past a limit sets a width that CSS clamps. Without the clamped
231
+ // width, the panel grows when its container grows.
232
+ keepClampedWidth() {
233
+ this.setWidth(this.currentWidth());
234
+ }
235
+ emitWidthIfChanged(widthBefore) {
236
+ const width = this.currentWidth();
237
+ if (width === widthBefore) {
238
+ return;
239
+ }
240
+ this.changeWidth.emit(width);
241
+ }
242
+ // A focusable separator must always have its values. The width changes when
243
+ // the consumer sets `--side-panel-width`, and the limits change with the
244
+ // width of the positioned ancestor, so the range is measured when the panel
245
+ // or an element for the limits changes size.
246
+ observeWidth() {
247
+ this.stopObservingWidth();
248
+ if (!this.panel) {
249
+ return;
250
+ }
251
+ this.widthObserver = new ResizeObserver(this.handleSizeChange);
252
+ for (const element of [this.panel, this.minLimit, this.maxLimit]) {
253
+ if (element) {
254
+ this.widthObserver.observe(element);
255
+ }
256
+ }
257
+ }
258
+ stopObservingWidth() {
259
+ var _a;
260
+ (_a = this.widthObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
261
+ this.widthObserver = undefined;
262
+ }
263
+ measureWidthRange() {
264
+ const min = this.minLimit.offsetWidth;
265
+ const max = Math.max(min, this.maxLimit.offsetWidth);
266
+ return {
267
+ now: Math.round(this.currentWidth()),
268
+ min: Math.round(min),
269
+ max: Math.round(max),
270
+ };
271
+ }
272
+ // `offsetWidth` and not `getBoundingClientRect`, because the opening
273
+ // animation scales the panel with a transform.
274
+ currentWidth() {
275
+ return this.panel.offsetWidth;
276
+ }
277
+ get host() { return getElement(this); }
278
+ };
279
+ SidePanel.style = sidePanelCss();
280
+
281
+ export { SidePanel as limel_side_panel };
@@ -305,15 +305,15 @@ const Slider = class {
305
305
  if (this.disabled || this.readonly) {
306
306
  inputProps.disabled = true;
307
307
  }
308
- 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
308
+ 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
309
309
  ? this.helperTextId
310
310
  : undefined, "aria-valuetext": this.isUnset
311
311
  ? translations.get('value-not-set', this.language)
312
312
  : undefined, ref: (el) => {
313
313
  this.inputElement = el;
314
- }, 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
314
+ }, 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
315
315
  ? '\u{2194}\u{FE0E}'
316
- : 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()));
316
+ : 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()));
317
317
  }
318
318
  watchValue() {
319
319
  this.syncStateFromValue();
@@ -146,14 +146,14 @@ const Snackbar = class {
146
146
  }
147
147
  }
148
148
  render() {
149
- return (h("aside", { key: '5612185e67dfea963fc9df340a288540f63db94e', popover: "manual", style: {
149
+ return (h("aside", { key: 'afddc11b55b4f3bdf05bc9ff50ed8c05851d53ac', popover: "manual", style: {
150
150
  '--snackbar-timeout': `${Math.max(this.timeout || 0, 0)}ms`,
151
151
  '--snackbar-distance-to-top-edge': `${this.offset}px`,
152
152
  }, class: {
153
153
  open: this.open,
154
154
  'is-closing': this.closing,
155
155
  'limel-portal--parent': true,
156
- }, 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))));
156
+ }, 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))));
157
157
  }
158
158
  setAriaRoles() {
159
159
  if (!this.open) {
@@ -43,9 +43,9 @@ const SplitButton = class {
43
43
  };
44
44
  }
45
45
  render() {
46
- return (h(Host, { key: '2b103843490284b194de5dbf2c6030973889aa64', class: {
46
+ return (h(Host, { key: 'cb82f37e28c686da8dbdd1d5e0dafc00f5f47f4d', class: {
47
47
  'has-menu': this.items.length > 0,
48
- }, 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()));
48
+ }, 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()));
49
49
  }
50
50
  static get delegatesFocus() { return true; }
51
51
  };
@@ -65,7 +65,7 @@ const Switch = class {
65
65
  removeEnterClickable(this.host);
66
66
  }
67
67
  render() {
68
- return (h(Host, { key: 'ad0cfa0f9b495ba197ca27f8975d8499cfdace52' }, this.readonly
68
+ return (h(Host, { key: '5193987be5def9c42517ecbc1affc9cbb08d6ff6' }, this.readonly
69
69
  ? this.renderReadonly()
70
70
  : this.renderInteractive(), this.renderHelperLine()));
71
71
  }