@limetech/lime-elements 40.18.2 → 40.19.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/controlled-element-Ajn5eA-q.js +26 -0
- package/dist/cjs/{index-zZvs6xK-.js → index-DIiA99Er.js} +271 -71
- 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 +4 -4
- package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
- 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 +131 -39
- 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 +2 -2
- package/dist/cjs/limel-card.cjs.entry.js +1 -1
- package/dist/cjs/limel-chart.cjs.entry.js +1 -1
- package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip-set.cjs.entry.js +23 -4
- package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
- package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
- package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
- 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.cjs.entry.js +3 -3
- package/dist/cjs/limel-drag-handle_2.cjs.entry.js +4 -4
- package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
- package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-file-viewer.cjs.entry.js +2 -2
- package/dist/cjs/limel-file.cjs.entry.js +2 -2
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
- package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
- package/dist/cjs/limel-form-header.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_2.cjs.entry.js +3 -3
- package/dist/cjs/limel-helper-line_3.cjs.entry.js +15 -24
- 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 +3 -3
- package/dist/cjs/limel-markdown.cjs.entry.js +4 -4
- 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-jump.cjs.entry.js +1 -1
- package/dist/cjs/limel-pagination.cjs.entry.js +2 -2
- package/dist/cjs/limel-picker.cjs.entry.js +58 -36
- package/dist/cjs/limel-popover_2.cjs.entry.js +4 -11
- package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +4 -4
- 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 +2 -2
- package/dist/cjs/limel-select.cjs.entry.js +10 -169
- package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
- package/dist/cjs/limel-side-panel.cjs.entry.js +2 -2
- package/dist/cjs/limel-slider.cjs.entry.js +4 -4
- package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
- 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 +3 -3
- package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
- package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/live-message-BNl3Ihcz.js +65 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{markdown-exporter-VtX_2D1d.js → markdown-exporter-BWS2EBxq.js} +2 -2
- package/dist/cjs/{markdown-parser-BYtTHL4W.js → markdown-parser-toAp9-Eq.js} +1 -1
- package/dist/cjs/{translations-CLSqfR3x.js → translations-CqJEWcfw.js} +8 -0
- package/dist/cjs/typeahead-CnyIjog_.js +194 -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 +66 -3
- 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.js +2 -2
- 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/form-header/form-header.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.css +13 -0
- package/dist/collection/components/input-field/input-field.js +152 -32
- package/dist/collection/components/list/list-renderer.js +1 -1
- package/dist/collection/components/list/list.js +31 -20
- 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.css +112 -0
- package/dist/collection/components/picker/picker.js +56 -32
- package/dist/collection/components/popover/popover.js +3 -10
- 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.js +1 -1
- 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.js +1 -1
- 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/translations/da.js +1 -0
- package/dist/collection/translations/de.js +1 -0
- package/dist/collection/translations/en.js +1 -0
- package/dist/collection/translations/fi.js +1 -0
- package/dist/collection/translations/fr.js +1 -0
- package/dist/collection/translations/nl.js +1 -0
- package/dist/collection/translations/no.js +1 -0
- package/dist/collection/translations/sv.js +1 -0
- package/dist/collection/util/controlled-element.js +22 -0
- package/dist/collection/util/live-message.js +30 -0
- package/dist/collection/util/typeahead.js +26 -0
- package/dist/esm/controlled-element-ByOXsysp.js +24 -0
- package/dist/esm/{index-BN64nlbO.js → index-CofmbCdQ.js} +271 -71
- 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 +4 -4
- package/dist/esm/limel-ai-avatar.entry.js +2 -2
- 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 +131 -39
- 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 +2 -2
- package/dist/esm/limel-card.entry.js +1 -1
- package/dist/esm/limel-chart.entry.js +1 -1
- package/dist/esm/limel-checkbox.entry.js +1 -1
- package/dist/esm/limel-chip-set.entry.js +23 -4
- 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 +2 -2
- package/dist/esm/limel-code-editor.entry.js +2 -2
- package/dist/esm/limel-collapsible-section.entry.js +2 -2
- 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.entry.js +3 -3
- package/dist/esm/limel-drag-handle_2.entry.js +4 -4
- package/dist/esm/limel-email-viewer.entry.js +2 -2
- package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
- package/dist/esm/limel-file-viewer.entry.js +2 -2
- package/dist/esm/limel-file.entry.js +2 -2
- package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
- package/dist/esm/limel-flex-container.entry.js +1 -1
- package/dist/esm/limel-form-header.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_2.entry.js +3 -3
- package/dist/esm/limel-helper-line_3.entry.js +15 -24
- 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 +3 -3
- package/dist/esm/limel-markdown.entry.js +4 -4
- 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 +2 -2
- package/dist/esm/limel-picker.entry.js +57 -35
- package/dist/esm/limel-popover_2.entry.js +4 -11
- package/dist/esm/limel-profile-picture.entry.js +1 -1
- package/dist/esm/limel-prosemirror-adapter.entry.js +4 -4
- 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 +2 -2
- package/dist/esm/limel-select.entry.js +2 -161
- package/dist/esm/limel-shortcut.entry.js +1 -1
- package/dist/esm/limel-side-panel.entry.js +2 -2
- package/dist/esm/limel-slider.entry.js +4 -4
- package/dist/esm/limel-snackbar.entry.js +3 -3
- 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 +1 -1
- package/dist/esm/limel-tab-panel.entry.js +1 -1
- package/dist/esm/limel-table.entry.js +3 -3
- 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/live-message-BQAYeNiX.js +62 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{markdown-exporter-tb8ft8Gq.js → markdown-exporter-B2vFxSLw.js} +2 -2
- package/dist/esm/{markdown-parser-DFP65EFu.js → markdown-parser-Cw8iW5R9.js} +1 -1
- package/dist/esm/{translations-Drl5LNAD.js → translations-kct5Kybu.js} +8 -0
- package/dist/esm/typeahead-DOlnT3wh.js +188 -0
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-55f7c9f5.entry.js → p-02aac2c0.entry.js} +1 -1
- package/dist/lime-elements/{p-a608ebe3.entry.js → p-0319f07f.entry.js} +1 -1
- package/dist/lime-elements/{p-dd383c12.entry.js → p-0910aefc.entry.js} +1 -1
- package/dist/lime-elements/{p-a7a84633.entry.js → p-1a7d1d2b.entry.js} +1 -1
- package/dist/lime-elements/{p-f8566c5b.entry.js → p-1d9bc526.entry.js} +1 -1
- package/dist/lime-elements/{p-e0ab0046.entry.js → p-1e0ced6a.entry.js} +1 -1
- package/dist/lime-elements/{p-5f2a34ed.entry.js → p-28957b5c.entry.js} +1 -1
- package/dist/lime-elements/{p-fdc7da58.entry.js → p-38ab193f.entry.js} +1 -1
- package/dist/lime-elements/{p-3ae5fb67.entry.js → p-39d1e157.entry.js} +1 -1
- package/dist/lime-elements/{p-d0908a85.entry.js → p-3ac39bd5.entry.js} +2 -2
- package/dist/lime-elements/p-3ca188f6.entry.js +159 -0
- package/dist/lime-elements/{p-7f1a1ed5.entry.js → p-3f7fa772.entry.js} +1 -1
- package/dist/lime-elements/{p-b80433be.entry.js → p-40940a6c.entry.js} +1 -1
- package/dist/lime-elements/{p-7235d147.entry.js → p-438fe49b.entry.js} +1 -1
- package/dist/lime-elements/p-45572e9d.entry.js +1 -0
- package/dist/lime-elements/{p-0c314c3c.entry.js → p-47fe76a8.entry.js} +1 -1
- package/dist/lime-elements/p-4834e7c1.entry.js +1 -0
- package/dist/lime-elements/{p-22c44279.entry.js → p-48a412ed.entry.js} +1 -1
- package/dist/lime-elements/{p-eb5a18ff.entry.js → p-496b2437.entry.js} +1 -1
- package/dist/lime-elements/{p-5d9a2877.entry.js → p-4c080cd9.entry.js} +1 -1
- package/dist/lime-elements/{p-be0a8125.entry.js → p-54537c85.entry.js} +1 -1
- package/dist/lime-elements/{p-2c29c27f.entry.js → p-55fa19ae.entry.js} +1 -1
- package/dist/lime-elements/{p-da4b4a81.entry.js → p-5dce791c.entry.js} +1 -1
- package/dist/lime-elements/{p-b983531f.entry.js → p-6053608a.entry.js} +1 -1
- package/dist/lime-elements/{p-164e1ad0.entry.js → p-6ae093c8.entry.js} +1 -1
- package/dist/lime-elements/{p-29815107.entry.js → p-6d2d25b9.entry.js} +1 -1
- package/dist/lime-elements/{p-9e30d206.entry.js → p-6d9b89db.entry.js} +1 -1
- package/dist/lime-elements/{p-be2b8c1e.entry.js → p-6e9eeb0a.entry.js} +1 -1
- package/dist/lime-elements/{p-68129487.entry.js → p-764d2f86.entry.js} +1 -1
- package/dist/lime-elements/{p-49a53f0b.entry.js → p-7ab726c2.entry.js} +1 -1
- package/dist/lime-elements/{p-cced022b.entry.js → p-7b87e547.entry.js} +1 -1
- package/dist/lime-elements/{p-65eafc85.entry.js → p-7bf3bf8a.entry.js} +1 -1
- package/dist/lime-elements/{p-586ee40c.entry.js → p-7d0ffc60.entry.js} +1 -1
- package/dist/lime-elements/{p-fad7a3fa.entry.js → p-7f0743d6.entry.js} +1 -1
- package/dist/lime-elements/{p-7d27d572.entry.js → p-814b4934.entry.js} +1 -1
- package/dist/lime-elements/p-843886fe.entry.js +1 -0
- package/dist/lime-elements/p-8d602078.entry.js +1 -0
- package/dist/lime-elements/p-8fe28845.entry.js +1 -0
- package/dist/lime-elements/{p-f35880ef.entry.js → p-909466b8.entry.js} +1 -1
- package/dist/lime-elements/{p-545c087b.entry.js → p-933ffaa8.entry.js} +1 -1
- package/dist/lime-elements/p-94ae27e2.entry.js +23 -0
- package/dist/lime-elements/{p-cc8d6198.entry.js → p-95a486c8.entry.js} +1 -1
- package/dist/lime-elements/{p-565c85ac.entry.js → p-9b2623fe.entry.js} +1 -1
- package/dist/lime-elements/{p-C0wwdPYT.js → p-Bd37Vplf.js} +2 -2
- package/dist/lime-elements/p-ByOXsysp.js +1 -0
- package/dist/lime-elements/{p-_UXAljNc.js → p-CbPYnlF-.js} +1 -1
- package/dist/lime-elements/{p-Bgn2bikC.js → p-CvHpvp0f.js} +1 -1
- package/dist/lime-elements/p-Cw7VQSGU.js +1 -0
- package/dist/lime-elements/p-Dzp8dXTo.js +1 -0
- package/dist/lime-elements/{p-565e5ea7.entry.js → p-a6387dc7.entry.js} +1 -1
- package/dist/lime-elements/{p-40a48f70.entry.js → p-a6c6a31b.entry.js} +1 -1
- package/dist/lime-elements/{p-e8255f0b.entry.js → p-a7be03e1.entry.js} +1 -1
- package/dist/lime-elements/{p-67acf39d.entry.js → p-af7d07fd.entry.js} +1 -1
- package/dist/lime-elements/{p-707d4b28.entry.js → p-bffb5ed2.entry.js} +1 -1
- package/dist/lime-elements/{p-7035d93d.entry.js → p-c0ebf7cc.entry.js} +1 -1
- package/dist/lime-elements/{p-7aae3d13.entry.js → p-c2056ebc.entry.js} +1 -1
- package/dist/lime-elements/{p-19681a98.entry.js → p-c2f993cc.entry.js} +1 -1
- package/dist/lime-elements/{p-c73f4160.entry.js → p-c61e9b83.entry.js} +1 -1
- package/dist/lime-elements/{p-519603f5.entry.js → p-c6b3448c.entry.js} +1 -1
- package/dist/lime-elements/{p-153e91e1.entry.js → p-ce71c5b9.entry.js} +1 -1
- package/dist/lime-elements/{p-2a375a65.entry.js → p-d35d2859.entry.js} +1 -1
- package/dist/lime-elements/{p-26347009.entry.js → p-d3f13124.entry.js} +1 -1
- package/dist/lime-elements/{p-300f80e7.entry.js → p-d4702653.entry.js} +1 -1
- package/dist/lime-elements/{p-a2dc6645.entry.js → p-d8559847.entry.js} +1 -1
- package/dist/lime-elements/{p-c8f09dd5.entry.js → p-db9cb7ef.entry.js} +1 -1
- package/dist/lime-elements/{p-05c1f5a0.entry.js → p-e5abe390.entry.js} +1 -1
- package/dist/lime-elements/p-f036ad27.entry.js +1 -0
- package/dist/lime-elements/{p-2f5face5.entry.js → p-f59447bf.entry.js} +1 -1
- package/dist/lime-elements/{p-a81f6962.entry.js → p-f5bb17eb.entry.js} +1 -1
- package/dist/lime-elements/{p-9bbf2612.entry.js → p-f7a90228.entry.js} +1 -1
- package/dist/lime-elements/p-fYs7n6yY.js +1 -0
- package/dist/types/components/chip-set/chip-set.d.ts +15 -0
- package/dist/types/components/input-field/input-field.d.ts +19 -6
- package/dist/types/components/list/list-renderer-config.d.ts +1 -0
- package/dist/types/components/list/list.d.ts +6 -0
- package/dist/types/components/picker/picker.d.ts +12 -5
- package/dist/types/components/popover/popover.d.ts +0 -1
- package/dist/types/components.d.ts +46 -0
- package/dist/types/translations/da.d.ts +1 -0
- package/dist/types/translations/de.d.ts +1 -0
- package/dist/types/translations/en.d.ts +1 -0
- package/dist/types/translations/fi.d.ts +1 -0
- package/dist/types/translations/fr.d.ts +1 -0
- package/dist/types/translations/nl.d.ts +1 -0
- package/dist/types/translations/no.d.ts +1 -0
- package/dist/types/translations/sv.d.ts +1 -0
- package/dist/types/util/controlled-element.d.ts +11 -0
- package/dist/types/util/live-message.d.ts +17 -0
- package/dist/types/util/typeahead.d.ts +16 -0
- package/package.json +2 -2
- package/dist/cjs/dom-BWMDM6En.js +0 -32
- package/dist/esm/dom-B9Ofc5RB.js +0 -30
- package/dist/lime-elements/p-27d7c255.entry.js +0 -159
- package/dist/lime-elements/p-3c861ca8.entry.js +0 -23
- package/dist/lime-elements/p-513d2a5e.entry.js +0 -1
- package/dist/lime-elements/p-55abec82.entry.js +0 -1
- package/dist/lime-elements/p-6aae3f58.entry.js +0 -1
- package/dist/lime-elements/p-7af16e1d.entry.js +0 -1
- package/dist/lime-elements/p-813cb15c.entry.js +0 -1
- package/dist/lime-elements/p-895a68c5.entry.js +0 -1
- package/dist/lime-elements/p-B26k4gw8.js +0 -1
- package/dist/lime-elements/p-B9Ofc5RB.js +0 -1
|
@@ -4,9 +4,22 @@ import { debounce } from "lodash-es";
|
|
|
4
4
|
import { ARROW_DOWN, ARROW_UP, ENTER, ESCAPE, SPACE, TAB, } from "../../util/keycodes";
|
|
5
5
|
import { getHref, getTarget, getRel } from "../../util/link-helper";
|
|
6
6
|
import { createRandomString } from "../../util/random-string";
|
|
7
|
+
import { isTextEditingKey } from "../../util/typeahead";
|
|
8
|
+
import { setControlledElement } from "../../util/controlled-element";
|
|
9
|
+
import { createLiveMessage } from "../../util/live-message";
|
|
10
|
+
import translate from "../../global/translations";
|
|
7
11
|
import { globalConfig } from "../../global/config";
|
|
8
12
|
const CHANGE_EVENT_DEBOUNCE_TIMEOUT = 300;
|
|
9
13
|
const RESIZE_HANDLER_DEBOUNCE_TIMEOUT = 100;
|
|
14
|
+
const MAX_FRAMES_TO_WAIT_FOR_LIST = 20;
|
|
15
|
+
const TEXT_INPUT_TYPES = new Set([
|
|
16
|
+
'email',
|
|
17
|
+
'search',
|
|
18
|
+
'tel',
|
|
19
|
+
'text',
|
|
20
|
+
'url',
|
|
21
|
+
'urlAsText',
|
|
22
|
+
]);
|
|
10
23
|
/**
|
|
11
24
|
* @exampleComponent limel-example-input-field-text
|
|
12
25
|
* @exampleComponent limel-example-input-field-placeholder
|
|
@@ -79,6 +92,11 @@ export class InputField {
|
|
|
79
92
|
* list of suggestions `value` can autocomplete to.
|
|
80
93
|
*/
|
|
81
94
|
this.completions = [];
|
|
95
|
+
/**
|
|
96
|
+
* Defines the language for translations. Used for the message that a
|
|
97
|
+
* screen reader speaks about the suggestions.
|
|
98
|
+
*/
|
|
99
|
+
this.language = 'en';
|
|
82
100
|
/**
|
|
83
101
|
* For inputs of type `email`, `tel`, `url`, and `urlAsText`, set this to
|
|
84
102
|
* `true` to show a trailing icon with a `mailto:`,`tel:`, or normal link,
|
|
@@ -93,6 +111,8 @@ export class InputField {
|
|
|
93
111
|
this.isFocused = false;
|
|
94
112
|
this.wasInvalid = false;
|
|
95
113
|
this.showCompletions = false;
|
|
114
|
+
this.suggestionsEngaged = false;
|
|
115
|
+
this.suggestionsMessage = createLiveMessage(() => this.getSuggestionsMessage());
|
|
96
116
|
this.completionsList = [];
|
|
97
117
|
this.changeWaiting = false;
|
|
98
118
|
this.initialize = () => {
|
|
@@ -202,6 +222,9 @@ export class InputField {
|
|
|
202
222
|
};
|
|
203
223
|
this.onFocus = () => {
|
|
204
224
|
this.isFocused = true;
|
|
225
|
+
if (!this.showCompletions) {
|
|
226
|
+
this.suggestionsEngaged = false;
|
|
227
|
+
}
|
|
205
228
|
this.showCompletions = true;
|
|
206
229
|
};
|
|
207
230
|
this.onBlur = () => {
|
|
@@ -367,41 +390,65 @@ export class InputField {
|
|
|
367
390
|
}
|
|
368
391
|
return (h("span", { class: "lime-formatted-input lime-looks-like-input-value", "aria-hidden": this.readonly ? 'true' : undefined }, renderValue));
|
|
369
392
|
};
|
|
370
|
-
/**
|
|
371
|
-
* Key handler for the input field
|
|
372
|
-
* Will change focus to the first/last item in the dropdown list to enable selection with the keyboard
|
|
373
|
-
*
|
|
374
|
-
* @param event - event
|
|
375
|
-
*/
|
|
376
393
|
this.onKeyDown = (event) => {
|
|
377
|
-
|
|
378
|
-
|
|
394
|
+
if (event.key === ESCAPE) {
|
|
395
|
+
this.closeListWithEscape(event);
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
const isTab = event.key === TAB &&
|
|
379
399
|
!event.altKey &&
|
|
380
400
|
!event.metaKey &&
|
|
381
|
-
!event.
|
|
382
|
-
|
|
383
|
-
const isDown = event.key === ARROW_DOWN;
|
|
384
|
-
if (event.key === TAB && event.shiftKey) {
|
|
401
|
+
!event.ctrlKey;
|
|
402
|
+
if (isTab) {
|
|
385
403
|
this.showCompletions = false;
|
|
386
|
-
}
|
|
387
|
-
if (!isForwardTab && !isUp && !isDown) {
|
|
388
404
|
return;
|
|
389
405
|
}
|
|
390
|
-
const
|
|
391
|
-
|
|
406
|
+
const wasOpen = this.isSuggestionListOpen();
|
|
407
|
+
this.showCompletions = true;
|
|
408
|
+
this.suggestionsEngaged = true;
|
|
409
|
+
if (event.key === ARROW_DOWN || event.key === ARROW_UP) {
|
|
410
|
+
this.moveIntoList(event, wasOpen);
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
this.moveIntoList = (event, wasOpen) => {
|
|
414
|
+
var _a;
|
|
415
|
+
if (!this.isSuggestionListOpen()) {
|
|
392
416
|
return;
|
|
393
417
|
}
|
|
394
418
|
event.preventDefault();
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
419
|
+
const position = event.key === ARROW_DOWN ? 'first' : 'last';
|
|
420
|
+
if (wasOpen) {
|
|
421
|
+
(_a = this.getListOption(position)) === null || _a === void 0 ? void 0 : _a.focus();
|
|
398
422
|
return;
|
|
399
423
|
}
|
|
400
|
-
|
|
424
|
+
this.focusOptionWhenShown(position);
|
|
425
|
+
};
|
|
426
|
+
this.getListOption = (position) => {
|
|
427
|
+
const list = document.querySelector(` #${this.portalId} limel-list`);
|
|
428
|
+
return list === null || list === void 0 ? void 0 : list.shadowRoot.querySelector(`.mdc-deprecated-list-item:${position}-child`);
|
|
429
|
+
};
|
|
430
|
+
this.focusOptionWhenShown = (position) => {
|
|
431
|
+
let frames = 0;
|
|
432
|
+
const focusOption = () => {
|
|
433
|
+
const option = this.getListOption(position);
|
|
434
|
+
if ((option === null || option === void 0 ? void 0 : option.getClientRects().length) > 0) {
|
|
435
|
+
option.focus();
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
frames += 1;
|
|
439
|
+
if (frames < MAX_FRAMES_TO_WAIT_FOR_LIST) {
|
|
440
|
+
requestAnimationFrame(focusOption);
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
requestAnimationFrame(focusOption);
|
|
444
|
+
};
|
|
445
|
+
this.closeListWithEscape = (event) => {
|
|
446
|
+
if (!this.isSuggestionListOpen()) {
|
|
401
447
|
return;
|
|
402
448
|
}
|
|
403
|
-
|
|
404
|
-
|
|
449
|
+
event.preventDefault();
|
|
450
|
+
event.stopPropagation();
|
|
451
|
+
this.showCompletions = false;
|
|
405
452
|
};
|
|
406
453
|
this.handleCompletionChange = (event) => {
|
|
407
454
|
event.stopPropagation();
|
|
@@ -418,10 +465,41 @@ export class InputField {
|
|
|
418
465
|
this.changeEmitter(event.detail.text);
|
|
419
466
|
this.changeEmitter.flush();
|
|
420
467
|
};
|
|
468
|
+
this.hasSuggestions = () => {
|
|
469
|
+
return (!this.readonly &&
|
|
470
|
+
this.type !== 'textarea' &&
|
|
471
|
+
this.completions.length > 0);
|
|
472
|
+
};
|
|
473
|
+
this.isCombobox = () => {
|
|
474
|
+
return this.hasSuggestions() && TEXT_INPUT_TYPES.has(this.type);
|
|
475
|
+
};
|
|
476
|
+
this.isSuggestionListOpen = () => {
|
|
477
|
+
return (this.hasSuggestions() &&
|
|
478
|
+
this.showCompletions &&
|
|
479
|
+
this.filterCompletions(this.getCurrentValue()).length > 0);
|
|
480
|
+
};
|
|
481
|
+
this.pointAtSuggestionList = () => {
|
|
482
|
+
if (!this.inputElement) {
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
setControlledElement(this.inputElement, this.isCombobox() ? this.portalId : null);
|
|
486
|
+
};
|
|
487
|
+
this.renderSuggestionsMessage = () => {
|
|
488
|
+
if (!this.isCombobox()) {
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
return (h("span", { class: "suggestions-message", "aria-live": "polite", ref: this.suggestionsMessage.setElement }));
|
|
492
|
+
};
|
|
493
|
+
this.getSuggestionsMessage = () => {
|
|
494
|
+
if (!this.isSuggestionListOpen()) {
|
|
495
|
+
return '';
|
|
496
|
+
}
|
|
497
|
+
return translate.get('suggestions.available', this.language, {
|
|
498
|
+
count: this.filterCompletions(this.getCurrentValue()).length,
|
|
499
|
+
});
|
|
500
|
+
};
|
|
421
501
|
this.renderAutocompleteList = () => {
|
|
422
|
-
if (this.
|
|
423
|
-
this.type === 'textarea' ||
|
|
424
|
-
this.completions.length === 0) {
|
|
502
|
+
if (!this.hasSuggestions()) {
|
|
425
503
|
return;
|
|
426
504
|
}
|
|
427
505
|
const dropdownZIndex = getComputedStyle(this.limelInputField).getPropertyValue('--dropdown-z-index');
|
|
@@ -436,11 +514,17 @@ export class InputField {
|
|
|
436
514
|
if (!filteredCompletions || filteredCompletions.length === 0) {
|
|
437
515
|
return null;
|
|
438
516
|
}
|
|
439
|
-
return (h("limel-list", { onChange: this.handleCompletionChange, onKeyDown: this.handleKeyDownInDropdown, type: "selectable", items: filteredCompletions }));
|
|
517
|
+
return (h("limel-list", { accessibleLabel: this.label || this.placeholder, onChange: this.handleCompletionChange, onKeyDown: this.handleKeyDownInDropdown, type: "selectable", items: filteredCompletions }));
|
|
440
518
|
};
|
|
441
519
|
this.handleKeyDownInDropdown = (event) => {
|
|
442
|
-
|
|
443
|
-
|
|
520
|
+
if (event.key === ESCAPE) {
|
|
521
|
+
event.preventDefault();
|
|
522
|
+
event.stopPropagation();
|
|
523
|
+
this.setFocus();
|
|
524
|
+
this.showCompletions = false;
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
if ([TAB, ENTER].includes(event.key) || isTextEditingKey(event)) {
|
|
444
528
|
this.setFocus();
|
|
445
529
|
}
|
|
446
530
|
};
|
|
@@ -508,11 +592,16 @@ export class InputField {
|
|
|
508
592
|
componentDidLoad() {
|
|
509
593
|
this.initialize();
|
|
510
594
|
}
|
|
595
|
+
componentDidRender() {
|
|
596
|
+
this.pointAtSuggestionList();
|
|
597
|
+
this.suggestionsMessage.update();
|
|
598
|
+
}
|
|
511
599
|
disconnectedCallback() {
|
|
512
600
|
if (this.mdcTextField) {
|
|
513
601
|
this.mdcTextField.destroy();
|
|
514
602
|
}
|
|
515
603
|
this.restyleCompletionsDropDown.cancel();
|
|
604
|
+
this.suggestionsMessage.update.cancel();
|
|
516
605
|
window.removeEventListener('resize', this.layout);
|
|
517
606
|
this.limelInputField.removeEventListener('focus', this.setFocus);
|
|
518
607
|
}
|
|
@@ -598,10 +687,13 @@ export class InputField {
|
|
|
598
687
|
if (this.isInvalid()) {
|
|
599
688
|
properties['aria-invalid'] = 'true';
|
|
600
689
|
}
|
|
601
|
-
if (this.
|
|
602
|
-
properties
|
|
690
|
+
if (this.isCombobox()) {
|
|
691
|
+
properties.role = 'combobox';
|
|
692
|
+
properties['aria-autocomplete'] = 'list';
|
|
693
|
+
properties['aria-haspopup'] = 'listbox';
|
|
694
|
+
properties['aria-expanded'] = String(this.suggestionsEngaged && this.isSuggestionListOpen());
|
|
603
695
|
}
|
|
604
|
-
return (h(Host, { key: '
|
|
696
|
+
return (h(Host, { key: 'c14cb199267a0efbf6dc974e31d479be51653c91' }, h("limel-notched-outline", { key: 'd1783d42e0da20cd4224065b6cffba95be9850eb', labelId: this.inputId, labelElementId: this.labelElementId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, h("label", { key: '67cb792d8718c2aae28ce509e931fd578d4df139', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList(), this.renderSuggestionsMessage()));
|
|
605
697
|
}
|
|
606
698
|
valueWatcher(newValue) {
|
|
607
699
|
if (!this.mdcTextField || this.changeWaiting) {
|
|
@@ -1070,6 +1162,33 @@ export class InputField {
|
|
|
1070
1162
|
"setter": false,
|
|
1071
1163
|
"defaultValue": "[]"
|
|
1072
1164
|
},
|
|
1165
|
+
"language": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"mutable": false,
|
|
1168
|
+
"complexType": {
|
|
1169
|
+
"original": "Languages",
|
|
1170
|
+
"resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
|
|
1171
|
+
"references": {
|
|
1172
|
+
"Languages": {
|
|
1173
|
+
"location": "import",
|
|
1174
|
+
"path": "../date-picker/date.types",
|
|
1175
|
+
"id": "src/components/date-picker/date.types.ts::Languages",
|
|
1176
|
+
"referenceLocation": "Languages"
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
"required": false,
|
|
1181
|
+
"optional": false,
|
|
1182
|
+
"docs": {
|
|
1183
|
+
"tags": [],
|
|
1184
|
+
"text": "Defines the language for translations. Used for the message that a\nscreen reader speaks about the suggestions."
|
|
1185
|
+
},
|
|
1186
|
+
"getter": false,
|
|
1187
|
+
"setter": false,
|
|
1188
|
+
"reflect": false,
|
|
1189
|
+
"attribute": "language",
|
|
1190
|
+
"defaultValue": "'en'"
|
|
1191
|
+
},
|
|
1073
1192
|
"showLink": {
|
|
1074
1193
|
"type": "boolean",
|
|
1075
1194
|
"mutable": false,
|
|
@@ -1116,7 +1235,8 @@ export class InputField {
|
|
|
1116
1235
|
return {
|
|
1117
1236
|
"isFocused": {},
|
|
1118
1237
|
"wasInvalid": {},
|
|
1119
|
-
"showCompletions": {}
|
|
1238
|
+
"showCompletions": {},
|
|
1239
|
+
"suggestionsEngaged": {}
|
|
1120
1240
|
};
|
|
1121
1241
|
}
|
|
1122
1242
|
static get events() {
|
|
@@ -108,6 +108,6 @@ export class ListRenderer {
|
|
|
108
108
|
}
|
|
109
109
|
this.applyTabIndexToItemAtIndex =
|
|
110
110
|
this.getIndexForWhichToApplyTabIndex(items);
|
|
111
|
-
return (h("ul", { class: "mdc-deprecated-list", role: role, "aria-orientation": this.getAriaOrientation(role) }, items.map(this.renderListItem)));
|
|
111
|
+
return (h("ul", { class: "mdc-deprecated-list", role: role, "aria-label": this.config.accessibleLabel, "aria-orientation": this.getAriaOrientation(role) }, items.map(this.renderListItem)));
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -5,6 +5,7 @@ import { ListRenderer } from "./list-renderer";
|
|
|
5
5
|
const { ACTION_EVENT } = listStrings;
|
|
6
6
|
/**
|
|
7
7
|
* @exampleComponent limel-example-list-basic
|
|
8
|
+
* @exampleComponent limel-example-list-accessible-label
|
|
8
9
|
* @exampleComponent limel-example-list-secondary
|
|
9
10
|
* @exampleComponent limel-example-list-separator
|
|
10
11
|
* @exampleComponent limel-example-list-icons
|
|
@@ -50,26 +51,16 @@ export class List {
|
|
|
50
51
|
this.listElement.removeEventListener('mousedown', this.handleItemMouseDown);
|
|
51
52
|
this.listElement.addEventListener('mousedown', this.handleItemMouseDown);
|
|
52
53
|
this.mdcList = new MDCList(element);
|
|
53
|
-
//
|
|
54
|
-
//
|
|
54
|
+
// MDC's typeahead (`hasTypeahead`) is left off, so that typed
|
|
55
|
+
// characters are not taken from a field with a list under it. The list
|
|
56
|
+
// test in `list.e2e.tsx` fails if it is turned on. `limel-select` has
|
|
57
|
+
// its own typeahead, see `src/util/typeahead.ts`.
|
|
55
58
|
//
|
|
56
|
-
// MDC
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
// Do not "fix" this by adding MDC's class name to `limel-list-item`.
|
|
62
|
-
// That revives MDC's typeahead along with three behaviors that cannot
|
|
63
|
-
// be configured from the outside: a hard coded 300ms buffer, `Enter`
|
|
64
|
-
// being ignored for as long as that buffer lives (its `notifyAction`
|
|
65
|
-
// is guarded by `isTypeaheadInProgress`), and the space bar being
|
|
66
|
-
// excluded from matches. It would also collide with `limel-menu`,
|
|
67
|
-
// where single characters are used as item hotkeys.
|
|
68
|
-
//
|
|
69
|
-
// `limel-select` implements its own typeahead instead, see
|
|
70
|
-
// `src/util/typeahead.ts`. It intercepts typed characters in the
|
|
71
|
-
// capture phase on this very element, so they never reach MDC.
|
|
72
|
-
this.mdcList.hasTypeahead = true;
|
|
59
|
+
// Adding MDC's class name to `limel-list-item` does nothing while it is
|
|
60
|
+
// off. Turning it on as well would bring its 300ms buffer, `Enter`
|
|
61
|
+
// being ignored while the buffer lives and the space bar being left out
|
|
62
|
+
// of matches, none of which can be configured, and it would collide
|
|
63
|
+
// with the single characters that `limel-menu` uses as hotkeys.
|
|
73
64
|
};
|
|
74
65
|
/**
|
|
75
66
|
* Focus the pressed list item directly, without scrolling.
|
|
@@ -188,13 +179,14 @@ export class List {
|
|
|
188
179
|
badgeIcons: this.badgeIcons,
|
|
189
180
|
type: this.type,
|
|
190
181
|
iconSize: this.iconSize,
|
|
182
|
+
accessibleLabel: this.accessibleLabel,
|
|
191
183
|
};
|
|
192
184
|
let maxLinesSecondaryText = +((_a = this.maxLinesSecondaryText) === null || _a === void 0 ? void 0 : _a.toFixed(0));
|
|
193
185
|
if (this.maxLinesSecondaryText < 1) {
|
|
194
186
|
maxLinesSecondaryText = 1;
|
|
195
187
|
}
|
|
196
188
|
const html = this.listRenderer.render(this.items, this.config);
|
|
197
|
-
return (h(Host, { key: '
|
|
189
|
+
return (h(Host, { key: 'e6619c70eab882e1a9ed482098a7f1ed673c74a1', style: {
|
|
198
190
|
'--maxLinesSecondaryText': `${maxLinesSecondaryText}`,
|
|
199
191
|
} }, html));
|
|
200
192
|
}
|
|
@@ -351,6 +343,25 @@ export class List {
|
|
|
351
343
|
"reflect": false,
|
|
352
344
|
"attribute": "type"
|
|
353
345
|
},
|
|
346
|
+
"accessibleLabel": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"mutable": false,
|
|
349
|
+
"complexType": {
|
|
350
|
+
"original": "string",
|
|
351
|
+
"resolved": "string",
|
|
352
|
+
"references": {}
|
|
353
|
+
},
|
|
354
|
+
"required": false,
|
|
355
|
+
"optional": true,
|
|
356
|
+
"docs": {
|
|
357
|
+
"tags": [],
|
|
358
|
+
"text": "The name of the list, which a screen reader announces when the focus\nmoves into it."
|
|
359
|
+
},
|
|
360
|
+
"getter": false,
|
|
361
|
+
"setter": false,
|
|
362
|
+
"reflect": false,
|
|
363
|
+
"attribute": "accessible-label"
|
|
364
|
+
},
|
|
354
365
|
"maxLinesSecondaryText": {
|
|
355
366
|
"type": "number",
|
|
356
367
|
"mutable": false,
|
|
@@ -158,9 +158,9 @@ export class ListItemComponent {
|
|
|
158
158
|
// also keep for `menuitem` for visual state consistency
|
|
159
159
|
ariaProps['aria-selected'] = this.selected ? 'true' : 'false';
|
|
160
160
|
}
|
|
161
|
-
return (h(Host, Object.assign({ key: '
|
|
161
|
+
return (h(Host, Object.assign({ key: 'fc4d7eab0b57e21d39c7d4fcc5ec7678a4e9662f', role: this.getHostRole(), class: {
|
|
162
162
|
'has-primary-component': !!((_a = this.primaryComponent) === null || _a === void 0 ? void 0 : _a.name),
|
|
163
|
-
} }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), h("div", { key: '
|
|
163
|
+
} }, ariaProps), this.renderRadioButton(), this.renderCheckbox(), this.renderIcon(), this.renderImage(), this.renderPrimaryComponent(), h("div", { key: 'bf56c25af2a5f6c0e7ed7ea7b5cd6952888efb61', class: "text" }, this.renderLabel(), this.renderDescription()), this.renderActionMenu(this.actions)));
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
166
166
|
* Returns a stable reference for the provided actions array to avoid
|
|
@@ -22,7 +22,7 @@ export class MenuItemMeta {
|
|
|
22
22
|
this.showChevron = false;
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return (h(Host, { key: '
|
|
25
|
+
return (h(Host, { key: '966057ee998af91916099c59398ea93742175fb5' }, this.renderCommandText(), this.renderBadge(), this.renderChevron()));
|
|
26
26
|
}
|
|
27
27
|
renderCommandText() {
|
|
28
28
|
if (this.hotkey) {
|
|
@@ -170,7 +170,7 @@ export class Markdown {
|
|
|
170
170
|
this.cleanupImageIntersectionObserver();
|
|
171
171
|
}
|
|
172
172
|
render() {
|
|
173
|
-
return (h(Host, { key: '
|
|
173
|
+
return (h(Host, { key: '847bffc9b7fa4fbec42b705d3019c635d88fb6c6' }, h("div", { key: 'cd84ef0919fc4b2b80090de836366b317e60e51a', id: "markdown", ref: (el) => (this.rootElement = el) })));
|
|
174
174
|
}
|
|
175
175
|
setupImageIntersectionObserver() {
|
|
176
176
|
if (this.lazyLoadImages) {
|
|
@@ -59,7 +59,7 @@ export class MasonryLayout {
|
|
|
59
59
|
const style = {
|
|
60
60
|
height: `${this.containerHeight}rem`,
|
|
61
61
|
};
|
|
62
|
-
return (h(Host, { key: '
|
|
62
|
+
return (h(Host, { key: '08a40d19c6457ff0d8a1da75de5b3e9379b05999', style: style, class: { 'is-laid-out': this.hasRendered } }, h("slot", { key: '736ef2dd358e6fb03daf87fe9b23d4625c5c3d64' })));
|
|
63
63
|
}
|
|
64
64
|
setupObservers() {
|
|
65
65
|
this.resizeObserver = new ResizeObserver(() => {
|
|
@@ -593,7 +593,7 @@ export class Menu {
|
|
|
593
593
|
const cssProperties = this.getCssProperties();
|
|
594
594
|
const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
|
|
595
595
|
const menuSurfaceWidth = this.getMenuSurfaceWidth(cssProperties['--menu-surface-width']);
|
|
596
|
-
return (h("div", { key: '
|
|
596
|
+
return (h("div", { key: '26574aeebd102eaf96a2893508537ab34d7ce6d4', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, h("slot", { key: 'fa7fa2b583684b4d83467be5004b98146e8ea71e', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), h("limel-portal", { key: '6443fc725c1054cee3aa6bc136d3c90891c897a5', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, h("limel-menu-surface", { key: 'd9e4719f9c97ec82b15674305a66c6ddd6aac512', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
|
|
597
597
|
'has-grid-layout': this.gridLayout,
|
|
598
598
|
} }, this.renderSearchField(), this.renderBreadcrumb(), this.renderLoader(), this.renderEmptyMessage(), this.renderMenuList()))));
|
|
599
599
|
}
|
|
@@ -88,7 +88,7 @@ export class MenuList {
|
|
|
88
88
|
iconSize: this.iconSize,
|
|
89
89
|
};
|
|
90
90
|
const html = this.MenuListRenderer.render(this.items, this.config);
|
|
91
|
-
return h("div", { key: '
|
|
91
|
+
return h("div", { key: '8cb1b8b5fc263086d4dbc83d7da2ae0b45c58d1d', class: "mdc-menu mdc-menu-surface" }, html);
|
|
92
92
|
}
|
|
93
93
|
itemsChanged() {
|
|
94
94
|
setTimeout(() => {
|
|
@@ -103,7 +103,7 @@ export class MenuSurface {
|
|
|
103
103
|
'mdc-elevation-transition': true,
|
|
104
104
|
'mdc-elevation--z4': true,
|
|
105
105
|
};
|
|
106
|
-
return (h("div", { key: '
|
|
106
|
+
return (h("div", { key: '9a024d806ff045158b49fb9b5d92617852ceb4af', class: classList, tabindex: "-1" }, h("slot", { key: 'da767dcce51d5a8b667d195e747e0756117be1ff' })));
|
|
107
107
|
}
|
|
108
108
|
static get is() { return "limel-menu-surface"; }
|
|
109
109
|
static get encapsulation() { return "shadow"; }
|
|
@@ -59,7 +59,7 @@ export class NotchedOutline {
|
|
|
59
59
|
this.hasFloatingLabel = false;
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
|
-
return (h("div", { key: '
|
|
62
|
+
return (h("div", { key: 'ade07e3a9e2a63f0037f46fdbd01f866936c55ed', class: "limel-notched-outline" }, h("slot", { key: '1d7619696aa3c80b17390df8b5bc96591cb0fe36', name: "content" }), h("span", { key: 'a791e6757ff14e7bb2c2a3f833f9877922eebd51', class: "limel-notched-outline--outlines", "aria-hidden": "true" }, h("span", { key: '623d2d85813b66a3b0a2e33bbbf3cdd51b3505e0', class: "limel-notched-outline--leading-outline" }), this.renderLabel(), h("span", { key: 'd5b0c6c6e7a7d5a15fc8795e3126fe3b115019ee', class: "limel-notched-outline--trailing-outline" }), this.renderEmptyReadonlyValue())));
|
|
63
63
|
}
|
|
64
64
|
renderLabel() {
|
|
65
65
|
if (!this.label) {
|
|
@@ -304,7 +304,7 @@ export class Pagination {
|
|
|
304
304
|
}
|
|
305
305
|
render() {
|
|
306
306
|
const { slots } = this.view;
|
|
307
|
-
return (h(Host, { key: '
|
|
307
|
+
return (h(Host, { key: '924becb588f7d773572b61865b9dd79b14171153' }, h("nav", { key: 'f517b62cf0107c912d576f08e9d99594f868be44', "aria-label": this.translate('pagination.label'), "aria-busy": this.loading ? 'true' : null }, this.renderArrow('previous'), slots.map((slot, index) => this.renderSlot(slot, index)), this.renderArrow('next')), h("span", { key: '21758520849acfe32f43e86570fe60a040cf2748', class: "live-region", "aria-live": "polite" }, this.liveMessage)));
|
|
308
308
|
}
|
|
309
309
|
/**
|
|
310
310
|
* Without a count we know where the user is but not how far the set goes,
|
|
@@ -1,6 +1,105 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
1
2
|
/**
|
|
2
3
|
* @prop --dropdown-z-index: z-index of the dropdown menu.
|
|
3
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Note! This file is forwarded via `src/style/exports.scss`
|
|
7
|
+
* and exposed to consumers through the root `index.scss`.
|
|
8
|
+
*
|
|
9
|
+
* Consumers import it using:
|
|
10
|
+
* `@use '@limetech/lime-elements' as lime-elements;`
|
|
11
|
+
*
|
|
12
|
+
* Legacy import paths (`dist/scss/mixins`) are maintained
|
|
13
|
+
* for backward compatibility via copy rules in the Stencil config.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Neutralizes the user-agent styles that browsers apply to `<button>` elements
|
|
17
|
+
* (their default background, border, padding, font, etc.), without stripping
|
|
18
|
+
* the useful defaults that `all: unset;` would also remove
|
|
19
|
+
* (such as `display`, `cursor`, and focus behavior).
|
|
20
|
+
*
|
|
21
|
+
* Prefer this mixin over `all: unset;` on `<button>` elements, then layer
|
|
22
|
+
* the styling you want on top — often one of the `is-*-clickable` mixins.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* This can be used on a trigger element that opens a dropdown menu or a popover.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* This mixin will mask out the content that is close to
|
|
29
|
+
* the edges of a scrollable area.
|
|
30
|
+
* - If the scrollable content has `overflow-y`, use `vertically`
|
|
31
|
+
* as an argument for `$direction`.
|
|
32
|
+
- If the scrollable content has `overflow-x`, use `horizontally`
|
|
33
|
+
* as an argument for `$direction`.
|
|
34
|
+
*
|
|
35
|
+
* For the visual effect to work smoothly, we need to make sure that
|
|
36
|
+
* the size of the fade-out edge effect is the same as the
|
|
37
|
+
* internal paddings of the scrollable area. Otherwise, content of a
|
|
38
|
+
* scrollable area that does not have a padding will fade out before
|
|
39
|
+
* any scrolling has been done.
|
|
40
|
+
* This is why this mixin already adds paddings, which automatically
|
|
41
|
+
* default to the size of the fade-out effect.
|
|
42
|
+
* This size defaults to `1rem`, but to override the size use
|
|
43
|
+
* `--limel-top-edge-fade-height` & `--limel-bottom-edge-fade-height`
|
|
44
|
+
* when `vertically` argument is set, and use
|
|
45
|
+
* `--limel-left-edge-fade-width` & `--limel-right-edge-fade-width`
|
|
46
|
+
* when `horizontally` argument is set.
|
|
47
|
+
* Of course you can also programmatically increase and decrease the
|
|
48
|
+
* size of these variables for each edge, based on the amount of
|
|
49
|
+
* scrolling that has been done by the user. In this case, make sure
|
|
50
|
+
* to add a custom padding where the mixin is used, to override
|
|
51
|
+
* the paddings that are automatically added by the mixin in the
|
|
52
|
+
* compiled CSS code.
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* This mixin will add an animated underline to the bottom of an `a` elements.
|
|
56
|
+
* Note that you may need to add `all: unset;` –depending on your use case–
|
|
57
|
+
* before using this mixin.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* This mixin creates a cross-browser font stack.
|
|
61
|
+
* - `sans-serif` can be used for the UI of the components.
|
|
62
|
+
* - `monospace` can be used for code.
|
|
63
|
+
*
|
|
64
|
+
* ⚠️ If we change the font stacks, we need to update
|
|
65
|
+
* 1. the consumer documentation in `README.md`, and
|
|
66
|
+
* 2. the CSS variables of `--kompendium-example-font-family`
|
|
67
|
+
* in the `<style>` tag of `index.html`.
|
|
68
|
+
*/
|
|
69
|
+
/**
|
|
70
|
+
* This mixin is a hack, using old CSS syntax
|
|
71
|
+
* to enable you to truncate a piece of text,
|
|
72
|
+
* after a certain number of lines.
|
|
73
|
+
*/
|
|
74
|
+
/**
|
|
75
|
+
* This mixin will add a chessboard background pattern,
|
|
76
|
+
* typically used to visualize transparency.
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* Make a container resizable by the user.
|
|
80
|
+
* This is used in the documentations and examples
|
|
81
|
+
* of some components, to demonstrate how the component
|
|
82
|
+
* behaves in a resizable container.
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* Drag to reorder mixins
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* The breakpoints below are used to create responsive designs
|
|
89
|
+
* in Lime's products. Therefore, they are here to get distributed
|
|
90
|
+
* to all components in other private repos, which rely on this `mixins`
|
|
91
|
+
* file, to create consistent styles.
|
|
92
|
+
*
|
|
93
|
+
* :::important
|
|
94
|
+
* In very rare cases you should used media queries!
|
|
95
|
+
* Nowadays, there are many better ways of achieving responsive design
|
|
96
|
+
* without media queries. For example, using CSS Grid, Flexbox, and their features.
|
|
97
|
+
* :::
|
|
98
|
+
*/
|
|
99
|
+
/**
|
|
100
|
+
* Media query mixins for responsive design based on screen width.
|
|
101
|
+
* Note that these mixins do not detect the device type!
|
|
102
|
+
*/
|
|
4
103
|
:host {
|
|
5
104
|
position: relative;
|
|
6
105
|
display: block;
|
|
@@ -8,4 +107,17 @@
|
|
|
8
107
|
|
|
9
108
|
:host([hidden]) {
|
|
10
109
|
display: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.suggestions-message {
|
|
113
|
+
position: absolute;
|
|
114
|
+
width: 0;
|
|
115
|
+
height: 0;
|
|
116
|
+
margin: -1px;
|
|
117
|
+
padding: 0;
|
|
118
|
+
border: 0;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
clip: rect(0, 0, 0, 0);
|
|
121
|
+
clip-path: inset(50%);
|
|
122
|
+
white-space: nowrap;
|
|
11
123
|
}
|