@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.
- package/CHANGELOG.md +25 -0
- package/dist/cjs/lime-elements.cjs.js +1 -1
- package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
- package/dist/cjs/limel-action-bar_3.cjs.entry.js +3 -3
- package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
- package/dist/cjs/limel-badge.cjs.entry.js +2 -2
- package/dist/cjs/limel-banner.cjs.entry.js +1 -1
- package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +6 -6
- package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
- package/dist/cjs/limel-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-callout.cjs.entry.js +1 -1
- package/dist/cjs/limel-card.cjs.entry.js +1 -1
- package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
- package/dist/cjs/limel-code-diff.cjs.entry.js +1 -1
- package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
- package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
- package/dist/cjs/limel-dock-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-dock.cjs.entry.js +23 -10
- package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
- package/dist/cjs/limel-email-viewer.cjs.entry.js +1 -1
- package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-file.cjs.entry.js +1 -1
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
- package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
- package/dist/cjs/limel-form.cjs.entry.js +1 -1
- package/dist/cjs/limel-grid.cjs.entry.js +1 -1
- package/dist/cjs/limel-header.cjs.entry.js +1 -1
- package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
- package/dist/cjs/limel-help.cjs.entry.js +2 -2
- package/dist/cjs/limel-helper-line_3.cjs.entry.js +4 -4
- package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
- package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-icon.cjs.entry.js +1 -1
- package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
- package/dist/cjs/limel-list-item.cjs.entry.js +2 -2
- package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
- package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
- package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
- package/dist/cjs/limel-pagination.cjs.entry.js +1 -1
- package/dist/cjs/limel-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
- package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
- package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-resize-handle.cjs.entry.js +240 -0
- package/dist/cjs/limel-scroller.cjs.entry.js +2 -2
- package/dist/cjs/limel-select.cjs.entry.js +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
- package/dist/cjs/limel-side-panel.cjs.entry.js +283 -0
- package/dist/cjs/limel-slider.cjs.entry.js +3 -3
- package/dist/cjs/limel-snackbar.cjs.entry.js +2 -2
- package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-switch.cjs.entry.js +1 -1
- package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
- package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/limel-table.cjs.entry.js +2 -2
- package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +3 -3
- package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
- package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
- package/dist/collection/components/action-bar/action-bar.js +2 -2
- package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
- package/dist/collection/components/badge/badge.js +2 -2
- package/dist/collection/components/banner/banner.js +1 -1
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/collection/components/button/button.js +2 -2
- package/dist/collection/components/button-group/button-group.js +1 -1
- package/dist/collection/components/callout/callout.js +1 -1
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/chip/chip.js +1 -1
- package/dist/collection/components/chip-set/chip-set.js +1 -1
- package/dist/collection/components/circular-progress/circular-progress.js +1 -1
- package/dist/collection/components/code-diff/code-diff.js +1 -1
- package/dist/collection/components/code-editor/code-editor.js +1 -1
- package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
- package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
- package/dist/collection/components/color-picker/color-picker.js +1 -1
- package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
- package/dist/collection/components/dialog/dialog.js +2 -2
- package/dist/collection/components/dock/dock-button/dock-button.css +25 -0
- package/dist/collection/components/dock/dock.css +1 -1
- package/dist/collection/components/dock/dock.js +24 -10
- package/dist/collection/components/drag-handle/drag-handle.js +1 -1
- package/dist/collection/components/email-viewer/email-viewer.js +1 -1
- package/dist/collection/components/file/file.js +1 -1
- package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
- package/dist/collection/components/file-input/file-input.js +1 -1
- package/dist/collection/components/flex-container/flex-container.js +1 -1
- package/dist/collection/components/form/form.js +1 -1
- package/dist/collection/components/grid/grid.js +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/help/help-content.js +1 -1
- package/dist/collection/components/help/help.js +2 -2
- package/dist/collection/components/helper-line/helper-line.js +2 -2
- package/dist/collection/components/hotkey/hotkey.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +2 -2
- package/dist/collection/components/input-field/input-field.js +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-item/list-item.js +2 -2
- package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
- package/dist/collection/components/markdown/markdown.js +1 -1
- package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
- package/dist/collection/components/menu/menu.js +1 -1
- package/dist/collection/components/menu-list/menu-list.js +1 -1
- package/dist/collection/components/menu-surface/menu-surface.js +1 -1
- package/dist/collection/components/notched-outline/notched-outline.js +1 -1
- package/dist/collection/components/pagination/pagination.js +1 -1
- package/dist/collection/components/picker/picker.js +1 -1
- package/dist/collection/components/popover/popover.js +1 -1
- package/dist/collection/components/popover-surface/popover-surface.js +1 -1
- package/dist/collection/components/portal/portal.js +1 -1
- package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
- package/dist/collection/components/radio-button-group/radio-button.js +2 -2
- package/dist/collection/components/resize-handle/resize-handle.css +274 -0
- package/dist/collection/components/resize-handle/resize-handle.js +210 -0
- package/dist/collection/components/scroller/scroller.js +2 -2
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/shortcut/shortcut.js +1 -1
- package/dist/collection/components/side-panel/side-panel.css +300 -0
- package/dist/collection/components/side-panel/side-panel.js +433 -0
- package/dist/collection/components/slider/slider.js +3 -3
- package/dist/collection/components/snackbar/snackbar.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-button/split-button.js +2 -2
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tab-bar/tab-bar.js +1 -1
- package/dist/collection/components/tab-panel/tab-panel.js +1 -1
- package/dist/collection/components/table/table.js +2 -2
- package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/tooltip/tooltip-content.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +2 -2
- package/dist/collection/util/drag-to-resize.js +108 -0
- package/dist/collection/util/get-deep-active-element.js +15 -0
- package/dist/collection/util/resize-location.js +76 -0
- package/dist/esm/{keycodes-DQ5DmW_Y.js → keycodes-Bu6-QXrA.js} +1 -1
- package/dist/esm/lime-elements.js +1 -1
- package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
- package/dist/esm/limel-action-bar_3.entry.js +3 -3
- package/dist/esm/limel-ai-avatar.entry.js +1 -1
- package/dist/esm/limel-badge.entry.js +2 -2
- package/dist/esm/limel-banner.entry.js +1 -1
- package/dist/esm/limel-breadcrumbs_6.entry.js +7 -7
- package/dist/esm/limel-button-group.entry.js +1 -1
- package/dist/esm/limel-button.entry.js +2 -2
- package/dist/esm/limel-callout.entry.js +1 -1
- package/dist/esm/limel-card.entry.js +1 -1
- package/dist/esm/limel-checkbox.entry.js +1 -1
- package/dist/esm/limel-chip-set.entry.js +2 -2
- package/dist/esm/limel-chip_2.entry.js +2 -2
- package/dist/esm/limel-circular-progress.entry.js +1 -1
- package/dist/esm/limel-code-diff.entry.js +1 -1
- package/dist/esm/limel-code-editor.entry.js +1 -1
- package/dist/esm/limel-collapsible-section.entry.js +1 -1
- package/dist/esm/limel-color-picker-palette.entry.js +2 -2
- package/dist/esm/limel-color-picker.entry.js +1 -1
- package/dist/esm/limel-dialog.entry.js +2 -2
- package/dist/esm/limel-dock-button.entry.js +1 -1
- package/dist/esm/limel-dock.entry.js +23 -10
- package/dist/esm/limel-drag-handle.entry.js +1 -1
- package/dist/esm/limel-email-viewer.entry.js +1 -1
- package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
- package/dist/esm/limel-file.entry.js +1 -1
- package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
- package/dist/esm/limel-flex-container.entry.js +1 -1
- package/dist/esm/limel-form.entry.js +1 -1
- package/dist/esm/limel-grid.entry.js +1 -1
- package/dist/esm/limel-header.entry.js +1 -1
- package/dist/esm/limel-help-content.entry.js +1 -1
- package/dist/esm/limel-help.entry.js +2 -2
- package/dist/esm/limel-helper-line_3.entry.js +4 -4
- package/dist/esm/limel-hotkey_4.entry.js +5 -5
- package/dist/esm/limel-icon-button.entry.js +1 -1
- package/dist/esm/limel-icon.entry.js +1 -1
- package/dist/esm/limel-info-tile.entry.js +2 -2
- package/dist/esm/limel-list-item.entry.js +2 -2
- package/dist/esm/limel-markdown.entry.js +1 -1
- package/dist/esm/limel-masonry-layout.entry.js +1 -1
- package/dist/esm/limel-menu-item-meta.entry.js +1 -1
- package/dist/esm/limel-pagination-jump.entry.js +1 -1
- package/dist/esm/limel-pagination.entry.js +1 -1
- package/dist/esm/limel-picker.entry.js +2 -2
- package/dist/esm/limel-popover_2.entry.js +3 -3
- package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
- package/dist/esm/limel-radio-button-group.entry.js +1 -1
- package/dist/esm/limel-radio-button.entry.js +2 -2
- package/dist/esm/limel-resize-handle.entry.js +238 -0
- package/dist/esm/limel-scroller.entry.js +2 -2
- package/dist/esm/limel-select.entry.js +2 -2
- package/dist/esm/limel-shortcut.entry.js +1 -1
- package/dist/esm/limel-side-panel.entry.js +281 -0
- package/dist/esm/limel-slider.entry.js +3 -3
- package/dist/esm/limel-snackbar.entry.js +2 -2
- package/dist/esm/limel-split-button.entry.js +2 -2
- package/dist/esm/limel-switch.entry.js +1 -1
- package/dist/esm/limel-tab-bar.entry.js +2 -2
- package/dist/esm/limel-tab-panel.entry.js +1 -1
- package/dist/esm/limel-table.entry.js +2 -2
- package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
- package/dist/esm/limel-text-editor.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-5da47a8a.entry.js → p-065f1635.entry.js} +1 -1
- package/dist/lime-elements/{p-0e13ec91.entry.js → p-06cd9512.entry.js} +1 -1
- package/dist/lime-elements/{p-96246494.entry.js → p-07916acc.entry.js} +1 -1
- package/dist/lime-elements/{p-fdec09e9.entry.js → p-0c2ce99b.entry.js} +1 -1
- package/dist/lime-elements/{p-00c36c9e.entry.js → p-1020ca20.entry.js} +1 -1
- package/dist/lime-elements/{p-288ef79a.entry.js → p-14aff731.entry.js} +1 -1
- package/dist/lime-elements/{p-2b033dfa.entry.js → p-24e5d420.entry.js} +1 -1
- package/dist/lime-elements/{p-9afa4721.entry.js → p-262a3d66.entry.js} +1 -1
- package/dist/lime-elements/{p-45461ec5.entry.js → p-29b2a176.entry.js} +1 -1
- package/dist/lime-elements/{p-e752dc7f.entry.js → p-2ba9d62f.entry.js} +1 -1
- package/dist/lime-elements/{p-a1c69e0c.entry.js → p-33ed0c68.entry.js} +1 -1
- package/dist/lime-elements/{p-efaf2616.entry.js → p-35bc5ed2.entry.js} +1 -1
- package/dist/lime-elements/{p-d37fbbd2.entry.js → p-3ee121fa.entry.js} +1 -1
- package/dist/lime-elements/{p-d1b7cc55.entry.js → p-458c131f.entry.js} +3 -3
- package/dist/lime-elements/{p-c439b68b.entry.js → p-46bf8b22.entry.js} +1 -1
- package/dist/lime-elements/{p-303edb1a.entry.js → p-4882acaa.entry.js} +1 -1
- package/dist/lime-elements/{p-7b4351f6.entry.js → p-4a7df81a.entry.js} +1 -1
- package/dist/lime-elements/p-527e9c95.entry.js +1 -0
- package/dist/lime-elements/{p-5f5c6e7d.entry.js → p-54631dbf.entry.js} +1 -1
- package/dist/lime-elements/{p-d5800180.entry.js → p-5473eb74.entry.js} +1 -1
- package/dist/lime-elements/p-566750e5.entry.js +1 -0
- package/dist/lime-elements/{p-f4a0b1bc.entry.js → p-622660dd.entry.js} +1 -1
- package/dist/lime-elements/{p-d19c7a3a.entry.js → p-646731b6.entry.js} +1 -1
- package/dist/lime-elements/{p-7eab1341.entry.js → p-68542e00.entry.js} +1 -1
- package/dist/lime-elements/p-780dae0b.entry.js +1 -0
- package/dist/lime-elements/{p-8e9c927d.entry.js → p-783fd221.entry.js} +1 -1
- package/dist/lime-elements/{p-8ac79ef5.entry.js → p-7a290372.entry.js} +1 -1
- package/dist/lime-elements/{p-ff1a8b2e.entry.js → p-7a2e0e18.entry.js} +1 -1
- package/dist/lime-elements/{p-7fa85785.entry.js → p-7cdbbffe.entry.js} +2 -2
- package/dist/lime-elements/{p-b6d39581.entry.js → p-887eea11.entry.js} +1 -1
- package/dist/lime-elements/{p-9c8c2fb7.entry.js → p-8a59698f.entry.js} +1 -1
- package/dist/lime-elements/p-8d567e42.entry.js +1 -0
- package/dist/lime-elements/{p-b22b52a1.entry.js → p-910807cb.entry.js} +1 -1
- package/dist/lime-elements/p-9168793f.entry.js +1 -0
- package/dist/lime-elements/{p-58b7c634.entry.js → p-9461c6bb.entry.js} +1 -1
- package/dist/lime-elements/{p-a98cbd1f.entry.js → p-9b1934fb.entry.js} +1 -1
- package/dist/lime-elements/p-9b384d62.entry.js +1 -0
- package/dist/lime-elements/{p-ee719744.entry.js → p-9ca18ba5.entry.js} +1 -1
- package/dist/lime-elements/{p-DQ5DmW_Y.js → p-Bu6-QXrA.js} +1 -1
- package/dist/lime-elements/{p-ab91cfff.entry.js → p-a317f2fa.entry.js} +1 -1
- package/dist/lime-elements/{p-a1d1470c.entry.js → p-a373013f.entry.js} +1 -1
- package/dist/lime-elements/{p-32a050a3.entry.js → p-a449ca04.entry.js} +1 -1
- package/dist/lime-elements/p-a5246373.entry.js +1 -0
- package/dist/lime-elements/{p-9992b5f9.entry.js → p-a78aaf37.entry.js} +1 -1
- package/dist/lime-elements/p-abcc451a.entry.js +1 -0
- package/dist/lime-elements/{p-9e016212.entry.js → p-abed5afd.entry.js} +1 -1
- package/dist/lime-elements/{p-107654bb.entry.js → p-ae2e5e87.entry.js} +1 -1
- package/dist/lime-elements/{p-fdd674fc.entry.js → p-b69af611.entry.js} +1 -1
- package/dist/lime-elements/{p-74060535.entry.js → p-b9da0108.entry.js} +2 -2
- package/dist/lime-elements/{p-4cbcafae.entry.js → p-bf849dc9.entry.js} +1 -1
- package/dist/lime-elements/{p-0d6925f4.entry.js → p-c12fbc91.entry.js} +1 -1
- package/dist/lime-elements/{p-03cb609e.entry.js → p-cf6fab84.entry.js} +1 -1
- package/dist/lime-elements/{p-29c73bdf.entry.js → p-d3475514.entry.js} +1 -1
- package/dist/lime-elements/{p-006cfb3d.entry.js → p-d5144955.entry.js} +1 -1
- package/dist/lime-elements/{p-91a572c8.entry.js → p-d79d777e.entry.js} +1 -1
- package/dist/lime-elements/p-d7e5a4a7.entry.js +1 -0
- package/dist/lime-elements/{p-9415411e.entry.js → p-db1f9eba.entry.js} +1 -1
- package/dist/lime-elements/{p-a736ea08.entry.js → p-dd075353.entry.js} +1 -1
- package/dist/lime-elements/{p-526ede01.entry.js → p-de4d261a.entry.js} +1 -1
- package/dist/lime-elements/{p-e6a34047.entry.js → p-def7b38f.entry.js} +1 -1
- package/dist/lime-elements/{p-bc70090d.entry.js → p-e247e9fe.entry.js} +1 -1
- package/dist/lime-elements/{p-e2b074aa.entry.js → p-e25bfb2c.entry.js} +1 -1
- package/dist/lime-elements/{p-727b6c11.entry.js → p-ec74a07a.entry.js} +1 -1
- package/dist/lime-elements/{p-d1e5dd12.entry.js → p-ecded772.entry.js} +1 -1
- package/dist/types/components/dock/dock.d.ts +12 -6
- package/dist/types/components/resize-handle/resize-handle.d.ts +64 -0
- package/dist/types/components/side-panel/side-panel.d.ts +134 -0
- package/dist/types/components.d.ts +321 -2
- package/dist/types/util/drag-to-resize.d.ts +33 -0
- package/dist/types/util/get-deep-active-element.d.ts +9 -0
- package/dist/types/util/resize-location.d.ts +59 -0
- package/package.json +2 -2
- package/dist/lime-elements/p-14a28a08.entry.js +0 -1
- package/dist/lime-elements/p-3d05e21f.entry.js +0 -1
- package/dist/lime-elements/p-681cb6de.entry.js +0 -1
- package/dist/lime-elements/p-a2e6f16e.entry.js +0 -1
- package/dist/lime-elements/p-aa897903.entry.js +0 -1
- package/dist/lime-elements/p-cf982d06.entry.js +0 -1
- 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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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-
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
46
|
+
return (h(Host, { key: 'cb82f37e28c686da8dbdd1d5e0dafc00f5f47f4d', class: {
|
|
47
47
|
'has-menu': this.items.length > 0,
|
|
48
|
-
}, onClick: this.filterClickWhenDisabled }, h("limel-button", { key: '
|
|
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: '
|
|
68
|
+
return (h(Host, { key: '5193987be5def9c42517ecbc1affc9cbb08d6ff6' }, this.readonly
|
|
69
69
|
? this.renderReadonly()
|
|
70
70
|
: this.renderInteractive(), this.renderHelperLine()));
|
|
71
71
|
}
|