kemet-ui 2.0.3 → 3.0.1
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/custom-elements.json +621 -692
- package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +3 -4
- package/dist/components/kemet-accordion/kemet-accordion-panel.js +4 -3
- package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
- package/dist/components/kemet-accordion/kemet-accordion.d.ts +6 -5
- package/dist/components/kemet-accordion/kemet-accordion.js +14 -5
- package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -1
- package/dist/components/kemet-accordion/stories.d.ts +2 -0
- package/dist/components/kemet-accordion/stories.js +6 -3
- package/dist/components/kemet-accordion/stories.js.map +1 -1
- package/dist/components/kemet-accordion/styles.js +5 -5
- package/dist/components/kemet-accordion/styles.js.map +1 -1
- package/dist/components/kemet-alert/docs/stories.d.ts +12 -0
- package/dist/components/kemet-alert/docs/stories.js +180 -36
- package/dist/components/kemet-alert/docs/stories.js.map +1 -1
- package/dist/components/kemet-alert/kemet-alert.d.ts +6 -7
- package/dist/components/kemet-alert/kemet-alert.js +8 -5
- package/dist/components/kemet-alert/kemet-alert.js.map +1 -1
- package/dist/components/kemet-alert/styles.js +10 -8
- package/dist/components/kemet-alert/styles.js.map +1 -1
- package/dist/components/kemet-alert/types.d.ts +0 -9
- package/dist/components/kemet-alert/types.js.map +1 -1
- package/dist/components/kemet-avatar/docs/stories.d.ts +4 -0
- package/dist/components/kemet-avatar/docs/stories.js +57 -35
- package/dist/components/kemet-avatar/docs/stories.js.map +1 -1
- package/dist/components/kemet-avatar/kemet-avatar.d.ts +4 -4
- package/dist/components/kemet-avatar/kemet-avatar.js +4 -4
- package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -1
- package/dist/components/kemet-avatar/styles.js +16 -9
- package/dist/components/kemet-avatar/styles.js.map +1 -1
- package/dist/components/kemet-badge/docs/stories.d.ts +6 -0
- package/dist/components/kemet-badge/docs/stories.js +52 -16
- package/dist/components/kemet-badge/docs/stories.js.map +1 -1
- package/dist/components/kemet-badge/kemet-badge.d.ts +2 -1
- package/dist/components/kemet-badge/kemet-badge.js +1 -1
- package/dist/components/kemet-badge/kemet-badge.js.map +1 -1
- package/dist/components/kemet-badge/styles.js +11 -9
- package/dist/components/kemet-badge/styles.js.map +1 -1
- package/dist/components/kemet-badge/types.d.ts +1 -6
- package/dist/components/kemet-badge/types.js.map +1 -1
- package/dist/components/kemet-button/docs/stories.d.ts +12 -0
- package/dist/components/kemet-button/docs/stories.js +81 -20
- package/dist/components/kemet-button/docs/stories.js.map +1 -1
- package/dist/components/kemet-button/kemet-button.d.ts +23 -23
- package/dist/components/kemet-button/kemet-button.js +23 -23
- package/dist/components/kemet-button/kemet-button.js.map +1 -1
- package/dist/components/kemet-button/styles.js +46 -26
- package/dist/components/kemet-button/styles.js.map +1 -1
- package/dist/components/kemet-button/types.d.ts +1 -10
- package/dist/components/kemet-button/types.js.map +1 -1
- package/dist/components/kemet-card/docs/stories.d.ts +10 -0
- package/dist/components/kemet-card/docs/stories.js +78 -66
- package/dist/components/kemet-card/docs/stories.js.map +1 -1
- package/dist/components/kemet-card/kemet-card.d.ts +16 -16
- package/dist/components/kemet-card/kemet-card.js +16 -16
- package/dist/components/kemet-card/kemet-card.js.map +1 -1
- package/dist/components/kemet-card/styles.js +29 -14
- package/dist/components/kemet-card/styles.js.map +1 -1
- package/dist/components/kemet-carousel/docs/stories.d.ts +6 -0
- package/dist/components/kemet-carousel/docs/stories.js +72 -60
- package/dist/components/kemet-carousel/docs/stories.js.map +1 -1
- package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +2 -2
- package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -1
- package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +1 -1
- package/dist/components/kemet-carousel/kemet-carousel-last.js +1 -1
- package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -1
- package/dist/components/kemet-carousel/kemet-carousel-total.d.ts +2 -2
- package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -1
- package/dist/components/kemet-carousel/kemet-carousel.d.ts +33 -29
- package/dist/components/kemet-carousel/kemet-carousel.js +47 -28
- package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
- package/dist/components/kemet-carousel/styles.js +31 -15
- package/dist/components/kemet-carousel/styles.js.map +1 -1
- package/dist/components/kemet-checkbox/docs/stories.d.ts +4 -0
- package/dist/components/kemet-checkbox/docs/stories.js +28 -28
- package/dist/components/kemet-checkbox/docs/stories.js.map +1 -1
- package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +8 -8
- package/dist/components/kemet-checkbox/kemet-checkbox.js +8 -8
- package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
- package/dist/components/kemet-checkbox/styles.js +20 -13
- package/dist/components/kemet-checkbox/styles.js.map +1 -1
- package/dist/components/kemet-combo/docs/stories.js +14 -12
- package/dist/components/kemet-combo/docs/stories.js.map +1 -1
- package/dist/components/kemet-combo/kemet-combo.d.ts +17 -17
- package/dist/components/kemet-combo/kemet-combo.js +22 -26
- package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
- package/dist/components/kemet-combo/styles.js +21 -9
- package/dist/components/kemet-combo/styles.js.map +1 -1
- package/dist/components/kemet-count/docs/stories.js +10 -25
- package/dist/components/kemet-count/docs/stories.js.map +1 -1
- package/dist/components/kemet-count/kemet-count.d.ts +1 -1
- package/dist/components/kemet-count/kemet-count.js +1 -1
- package/dist/components/kemet-count/kemet-count.js.map +1 -1
- package/dist/components/kemet-draggable/docs/stories.d.ts +1 -0
- package/dist/components/kemet-draggable/docs/stories.js +8 -15
- package/dist/components/kemet-draggable/docs/stories.js.map +1 -1
- package/dist/components/kemet-draggable/kemet-draggable.d.ts +3 -3
- package/dist/components/kemet-draggable/kemet-draggable.js +6 -5
- package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
- package/dist/components/kemet-drawer/docs/stories.d.ts +6 -0
- package/dist/components/kemet-drawer/docs/stories.js +59 -60
- package/dist/components/kemet-drawer/docs/stories.js.map +1 -1
- package/dist/components/kemet-drawer/kemet-drawer.d.ts +7 -7
- package/dist/components/kemet-drawer/kemet-drawer.js +7 -7
- package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
- package/dist/components/kemet-drawer/styles.js +32 -25
- package/dist/components/kemet-drawer/styles.js.map +1 -1
- package/dist/components/kemet-drawer/types.d.ts +0 -6
- package/dist/components/kemet-drawer/types.js.map +1 -1
- package/dist/components/kemet-fab/docs/stories.d.ts +3 -0
- package/dist/components/kemet-fab/docs/stories.js +23 -32
- package/dist/components/kemet-fab/docs/stories.js.map +1 -1
- package/dist/components/kemet-fab/kemet-fab.d.ts +7 -7
- package/dist/components/kemet-fab/kemet-fab.js +7 -7
- package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
- package/dist/components/kemet-fab/styles.js +19 -10
- package/dist/components/kemet-fab/styles.js.map +1 -1
- package/dist/components/kemet-field/docs/stories.d.ts +1 -1
- package/dist/components/kemet-field/docs/stories.js +19 -69
- package/dist/components/kemet-field/docs/stories.js.map +1 -1
- package/dist/components/kemet-field/kemet-field.d.ts +12 -12
- package/dist/components/kemet-field/kemet-field.js +9 -14
- package/dist/components/kemet-field/kemet-field.js.map +1 -1
- package/dist/components/kemet-field/styles.js +6 -6
- package/dist/components/kemet-field/styles.js.map +1 -1
- package/dist/components/kemet-flipcard/docs/stories.d.ts +3 -0
- package/dist/components/kemet-flipcard/docs/stories.js +29 -78
- package/dist/components/kemet-flipcard/docs/stories.js.map +1 -1
- package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +1 -1
- package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +2 -3
- package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -1
- package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +9 -9
- package/dist/components/kemet-flipcard/kemet-flipcard.js +10 -12
- package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
- package/dist/components/kemet-flipcard/styles.js +20 -10
- package/dist/components/kemet-flipcard/styles.js.map +1 -1
- package/dist/components/kemet-icon/docs/stories.js +8 -15
- package/dist/components/kemet-icon/docs/stories.js.map +1 -1
- package/dist/components/kemet-input/docs/stories.d.ts +4 -0
- package/dist/components/kemet-input/docs/stories.js +54 -113
- package/dist/components/kemet-input/docs/stories.js.map +1 -1
- package/dist/components/kemet-input/kemet-input.d.ts +18 -37
- package/dist/components/kemet-input/kemet-input.js +18 -38
- package/dist/components/kemet-input/kemet-input.js.map +1 -1
- package/dist/components/kemet-input/styles.js +38 -21
- package/dist/components/kemet-input/styles.js.map +1 -1
- package/dist/components/kemet-modal/docs/stories.d.ts +2 -0
- package/dist/components/kemet-modal/docs/stories.js +25 -68
- package/dist/components/kemet-modal/docs/stories.js.map +1 -1
- package/dist/components/kemet-modal/kemet-modal-close.js +1 -1
- package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -1
- package/dist/components/kemet-modal/kemet-modal.d.ts +20 -10
- package/dist/components/kemet-modal/kemet-modal.js +39 -20
- package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
- package/dist/components/kemet-modal/styles.js +77 -48
- package/dist/components/kemet-modal/styles.js.map +1 -1
- package/dist/components/kemet-password/docs/stories.js +10 -18
- package/dist/components/kemet-password/docs/stories.js.map +1 -1
- package/dist/components/kemet-password/kemet-password.d.ts +14 -8
- package/dist/components/kemet-password/kemet-password.js +4 -33
- package/dist/components/kemet-password/kemet-password.js.map +1 -1
- package/dist/components/kemet-password/styles.js +7 -7
- package/dist/components/kemet-password/styles.js.map +1 -1
- package/dist/components/kemet-popper/docs/stories.d.ts +2 -0
- package/dist/components/kemet-popper/docs/stories.js +32 -39
- package/dist/components/kemet-popper/docs/stories.js.map +1 -1
- package/dist/components/kemet-popper/kemet-popper-close.d.ts +1 -1
- package/dist/components/kemet-popper/kemet-popper-close.js +2 -3
- package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -1
- package/dist/components/kemet-popper/kemet-popper.d.ts +19 -10
- package/dist/components/kemet-popper/kemet-popper.js +23 -32
- package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
- package/dist/components/kemet-popper/styles.js +14 -5
- package/dist/components/kemet-popper/styles.js.map +1 -1
- package/dist/components/kemet-radio/docs/stories.d.ts +2 -0
- package/dist/components/kemet-radio/docs/stories.js +24 -20
- package/dist/components/kemet-radio/docs/stories.js.map +1 -1
- package/dist/components/kemet-radio/kemet-radio.d.ts +7 -6
- package/dist/components/kemet-radio/kemet-radio.js +7 -6
- package/dist/components/kemet-radio/kemet-radio.js.map +1 -1
- package/dist/components/kemet-radio/kemet-radios.d.ts +6 -5
- package/dist/components/kemet-radio/kemet-radios.js +11 -5
- package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
- package/dist/components/kemet-radio/styles.js +26 -16
- package/dist/components/kemet-radio/styles.js.map +1 -1
- package/dist/components/kemet-rotator/docs/stories.d.ts +1 -0
- package/dist/components/kemet-rotator/docs/stories.js +16 -28
- package/dist/components/kemet-rotator/docs/stories.js.map +1 -1
- package/dist/components/kemet-rotator/kemet-rotator.d.ts +3 -3
- package/dist/components/kemet-rotator/kemet-rotator.js +2 -3
- package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
- package/dist/components/kemet-rotator/styles.js +4 -2
- package/dist/components/kemet-rotator/styles.js.map +1 -1
- package/dist/components/kemet-scroll-link/docs/stories.js +2 -2
- package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -1
- package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +2 -2
- package/dist/components/kemet-scroll-link/kemet-scroll-link.js +11 -10
- package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -1
- package/dist/components/kemet-scroll-nav/docs/stories.js +5 -5
- package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -1
- package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +7 -7
- package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +7 -12
- package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
- package/dist/components/kemet-scroll-nav/styles.js +10 -4
- package/dist/components/kemet-scroll-nav/styles.js.map +1 -1
- package/dist/components/kemet-scroll-snap/docs/stories.d.ts +6 -0
- package/dist/components/kemet-scroll-snap/docs/stories.js +72 -82
- package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -1
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +8 -7
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +4 -4
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +1 -1
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +1 -1
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -1
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +7 -6
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +6 -11
- package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
- package/dist/components/kemet-scroll-snap/styles.js +14 -6
- package/dist/components/kemet-scroll-snap/styles.js.map +1 -1
- package/dist/components/kemet-select/docs/stories.d.ts +3 -0
- package/dist/components/kemet-select/docs/stories.js +25 -33
- package/dist/components/kemet-select/docs/stories.js.map +1 -1
- package/dist/components/kemet-select/kemet-option.d.ts +1 -1
- package/dist/components/kemet-select/kemet-option.js +1 -1
- package/dist/components/kemet-select/kemet-option.js.map +1 -1
- package/dist/components/kemet-select/kemet-select.d.ts +32 -23
- package/dist/components/kemet-select/kemet-select.js +3 -44
- package/dist/components/kemet-select/kemet-select.js.map +1 -1
- package/dist/components/kemet-select/styles.js +32 -16
- package/dist/components/kemet-select/styles.js.map +1 -1
- package/dist/components/kemet-sortable/docs/stories.js +5 -10
- package/dist/components/kemet-sortable/docs/stories.js.map +1 -1
- package/dist/components/kemet-sortable/kemet-sortable.d.ts +5 -5
- package/dist/components/kemet-sortable/kemet-sortable.js +5 -5
- package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -1
- package/dist/components/kemet-sortable/styles.js +1 -1
- package/dist/components/kemet-sortable/styles.js.map +1 -1
- package/dist/components/kemet-svgs/docs/stories.js +11 -11
- package/dist/components/kemet-svgs/docs/stories.js.map +1 -1
- package/dist/components/kemet-svgs/kemet-svgs.d.ts +1 -1
- package/dist/components/kemet-svgs/kemet-svgs.js +1 -1
- package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -1
- package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
- package/dist/components/kemet-tabs/docs/stories.js +78 -78
- package/dist/components/kemet-tabs/docs/stories.js.map +1 -1
- package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +2 -1
- package/dist/components/kemet-tabs/kemet-tab-panel.js +4 -1
- package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
- package/dist/components/kemet-tabs/kemet-tab.d.ts +3 -2
- package/dist/components/kemet-tabs/kemet-tab.js +6 -3
- package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
- package/dist/components/kemet-tabs/kemet-tabs.d.ts +30 -21
- package/dist/components/kemet-tabs/kemet-tabs.js +12 -48
- package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
- package/dist/components/kemet-tabs/styles.js +12 -5
- package/dist/components/kemet-tabs/styles.js.map +1 -1
- package/dist/components/kemet-textarea/docs/stories.d.ts +3 -0
- package/dist/components/kemet-textarea/docs/stories.js +37 -67
- package/dist/components/kemet-textarea/docs/stories.js.map +1 -1
- package/dist/components/kemet-textarea/kemet-textarea.d.ts +12 -12
- package/dist/components/kemet-textarea/kemet-textarea.js +12 -12
- package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
- package/dist/components/kemet-textarea/styles.js +31 -16
- package/dist/components/kemet-textarea/styles.js.map +1 -1
- package/dist/components/kemet-toggle/docs/stories.d.ts +2 -0
- package/dist/components/kemet-toggle/docs/stories.js +21 -36
- package/dist/components/kemet-toggle/docs/stories.js.map +1 -1
- package/dist/components/kemet-toggle/kemet-toggle.d.ts +12 -12
- package/dist/components/kemet-toggle/kemet-toggle.js +12 -12
- package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
- package/dist/components/kemet-toggle/styles.js +12 -6
- package/dist/components/kemet-toggle/styles.js.map +1 -1
- package/dist/components/kemet-tooltip/docs/stories.d.ts +4 -0
- package/dist/components/kemet-tooltip/docs/stories.js +58 -33
- package/dist/components/kemet-tooltip/docs/stories.js.map +1 -1
- package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +2 -2
- package/dist/components/kemet-tooltip/kemet-tooltip.js +13 -12
- package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -1
- package/dist/components/kemet-tooltip/styles.js +2 -2
- package/dist/components/kemet-tooltip/styles.js.map +1 -1
- package/dist/components/kemet-tracker/docs/stories.d.ts +1 -0
- package/dist/components/kemet-tracker/docs/stories.js +18 -22
- package/dist/components/kemet-tracker/docs/stories.js.map +1 -1
- package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +18 -18
- package/dist/components/kemet-tracker/kemet-tracker-step.js +18 -18
- package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
- package/dist/components/kemet-tracker/kemet-tracker.d.ts +2 -1
- package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -1
- package/dist/components/kemet-tracker/styles.js +23 -12
- package/dist/components/kemet-tracker/styles.js.map +1 -1
- package/dist/components/kemet-upload/docs/stories.js +17 -22
- package/dist/components/kemet-upload/docs/stories.js.map +1 -1
- package/dist/components/kemet-upload/kemet-upload-file.d.ts +3 -3
- package/dist/components/kemet-upload/kemet-upload-file.js +4 -5
- package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
- package/dist/components/kemet-upload/kemet-upload.d.ts +7 -7
- package/dist/components/kemet-upload/kemet-upload.js +7 -12
- package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
- package/dist/components/kemet-upload/styles.js +27 -18
- package/dist/components/kemet-upload/styles.js.map +1 -1
- package/dist/kemet-components.bundle.js +98 -86
- package/dist/kemet-components.bundle.js.map +1 -1
- package/dist/kemet-components.cjs +3076 -2910
- package/dist/kemet-components.js +3076 -2910
- package/dist/styles/kemet.base.css +255 -78
- package/dist/styles/kemet.base.css.map +1 -1
- package/dist/styles/kemet.base.scss +6 -5
- package/dist/styles/kemet.components.css +1 -16
- package/dist/styles/kemet.components.css.map +1 -1
- package/dist/styles/kemet.components.scss +0 -2
- package/dist/styles/kemet.core.css +5554 -2122
- package/dist/styles/kemet.core.css.map +1 -1
- package/dist/styles/shared/_config.scss +306 -93
- package/dist/styles/shared/_helpers.scss +88 -16
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -14
- package/dist/components/kemet-accordion/types.d.ts +0 -9
- package/dist/components/kemet-accordion/types.js +0 -2
- package/dist/components/kemet-accordion/types.js.map +0 -1
- package/dist/components/kemet-avatar/types.d.ts +0 -8
- package/dist/components/kemet-avatar/types.js +0 -2
- package/dist/components/kemet-avatar/types.js.map +0 -1
- package/dist/components/kemet-card/types.d.ts +0 -3
- package/dist/components/kemet-card/types.js +0 -2
- package/dist/components/kemet-card/types.js.map +0 -1
- package/dist/components/kemet-carousel/types.d.ts +0 -21
- package/dist/components/kemet-carousel/types.js +0 -2
- package/dist/components/kemet-carousel/types.js.map +0 -1
- package/dist/components/kemet-combo/types.d.ts +0 -5
- package/dist/components/kemet-combo/types.js +0 -2
- package/dist/components/kemet-combo/types.js.map +0 -1
- package/dist/components/kemet-draggable/types.d.ts +0 -6
- package/dist/components/kemet-draggable/types.js +0 -2
- package/dist/components/kemet-draggable/types.js.map +0 -1
- package/dist/styles/components/drawer.scss +0 -11
- package/dist/styles/components/modal.scss +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
import
|
|
2
|
+
import type KemetField from '../kemet-field/kemet-field';
|
|
3
3
|
/**
|
|
4
4
|
* @since 1.0.0
|
|
5
5
|
* @status stable
|
|
@@ -14,15 +14,15 @@ import { KemetFieldInterface } from '../kemet-field/types';
|
|
|
14
14
|
* @csspart combobox - The combo's container element.
|
|
15
15
|
* @csspart listbox - The list element in the combo.
|
|
16
16
|
*
|
|
17
|
-
* @cssproperty --kemet-combo-width - The width of the combo box.
|
|
18
|
-
* @cssproperty --kemet-combo-margin - The margins on the combo box.
|
|
19
|
-
* @cssproperty --kemet-combo-max-height - The max height of the combo box.
|
|
20
|
-
* @cssproperty --kemet-combo-border - The border of the combo box.
|
|
21
|
-
* @cssproperty --kemet-combo-border-radius - The border radius of the combo box.
|
|
22
|
-
* @cssproperty --kemet-combo-background-color - The background color of the combo box.
|
|
23
|
-
* @cssproperty --kemet-combo-shadow - The shadow of the combo box.
|
|
24
|
-
* @cssproperty --kemet-combo-hover-color - The hover item's text color.
|
|
25
|
-
* @cssproperty --kemet-combo-hover-background-color - The hover item's background color.
|
|
17
|
+
* @cssproperty --kemet-combo-width - The width of the combo box.
|
|
18
|
+
* @cssproperty --kemet-combo-margin - The margins on the combo box.
|
|
19
|
+
* @cssproperty --kemet-combo-max-height - The max height of the combo box.
|
|
20
|
+
* @cssproperty --kemet-combo-border - The border of the combo box.
|
|
21
|
+
* @cssproperty --kemet-combo-border-radius - The border radius of the combo box.
|
|
22
|
+
* @cssproperty --kemet-combo-background-color - The background color of the combo box.
|
|
23
|
+
* @cssproperty --kemet-combo-shadow - The shadow of the combo box.
|
|
24
|
+
* @cssproperty --kemet-combo-hover-color - The hover item's text color.
|
|
25
|
+
* @cssproperty --kemet-combo-hover-background-color - The hover item's background color.
|
|
26
26
|
*
|
|
27
27
|
* @event kemet-combo-selection - Fires when a selection has been made
|
|
28
28
|
*
|
|
@@ -30,18 +30,18 @@ import { KemetFieldInterface } from '../kemet-field/types';
|
|
|
30
30
|
export default class KemetCombo extends LitElement {
|
|
31
31
|
static styles: import("lit").CSSResult[];
|
|
32
32
|
slug: string;
|
|
33
|
-
options:
|
|
33
|
+
options: string[];
|
|
34
34
|
show: boolean;
|
|
35
|
-
filteredOptions:
|
|
36
|
-
field:
|
|
35
|
+
filteredOptions: string[];
|
|
36
|
+
field: KemetField;
|
|
37
37
|
input: HTMLInputElement;
|
|
38
38
|
firstUpdated(): void;
|
|
39
39
|
render(): import("lit-html").TemplateResult<1>;
|
|
40
40
|
makeOptions(): import("lit-html").TemplateResult<1>[];
|
|
41
|
-
handleInput(event:
|
|
42
|
-
handleSelection(event:
|
|
43
|
-
handleOptionKeyDown(event:
|
|
44
|
-
handleInputKeyDown(event:
|
|
41
|
+
handleInput(event: CustomEvent): void;
|
|
42
|
+
handleSelection(event: KeyboardEvent): void;
|
|
43
|
+
handleOptionKeyDown(event: KeyboardEvent): void;
|
|
44
|
+
handleInputKeyDown(event: KeyboardEvent): void;
|
|
45
45
|
}
|
|
46
46
|
declare global {
|
|
47
47
|
interface HTMLElementTagNameMap {
|
|
@@ -17,15 +17,15 @@ import { stylesBase } from './styles';
|
|
|
17
17
|
* @csspart combobox - The combo's container element.
|
|
18
18
|
* @csspart listbox - The list element in the combo.
|
|
19
19
|
*
|
|
20
|
-
* @cssproperty --kemet-combo-width - The width of the combo box.
|
|
21
|
-
* @cssproperty --kemet-combo-margin - The margins on the combo box.
|
|
22
|
-
* @cssproperty --kemet-combo-max-height - The max height of the combo box.
|
|
23
|
-
* @cssproperty --kemet-combo-border - The border of the combo box.
|
|
24
|
-
* @cssproperty --kemet-combo-border-radius - The border radius of the combo box.
|
|
25
|
-
* @cssproperty --kemet-combo-background-color - The background color of the combo box.
|
|
26
|
-
* @cssproperty --kemet-combo-shadow - The shadow of the combo box.
|
|
27
|
-
* @cssproperty --kemet-combo-hover-color - The hover item's text color.
|
|
28
|
-
* @cssproperty --kemet-combo-hover-background-color - The hover item's background color.
|
|
20
|
+
* @cssproperty --kemet-combo-width - The width of the combo box.
|
|
21
|
+
* @cssproperty --kemet-combo-margin - The margins on the combo box.
|
|
22
|
+
* @cssproperty --kemet-combo-max-height - The max height of the combo box.
|
|
23
|
+
* @cssproperty --kemet-combo-border - The border of the combo box.
|
|
24
|
+
* @cssproperty --kemet-combo-border-radius - The border radius of the combo box.
|
|
25
|
+
* @cssproperty --kemet-combo-background-color - The background color of the combo box.
|
|
26
|
+
* @cssproperty --kemet-combo-shadow - The shadow of the combo box.
|
|
27
|
+
* @cssproperty --kemet-combo-hover-color - The hover item's text color.
|
|
28
|
+
* @cssproperty --kemet-combo-hover-background-color - The hover item's background color.
|
|
29
29
|
*
|
|
30
30
|
* @event kemet-combo-selection - Fires when a selection has been made
|
|
31
31
|
*
|
|
@@ -66,42 +66,38 @@ let KemetCombo = class KemetCombo extends LitElement {
|
|
|
66
66
|
makeOptions() {
|
|
67
67
|
if (this.input) {
|
|
68
68
|
this.filteredOptions = this.options.filter(option => { var _a; return option.toLowerCase().indexOf((_a = this.input.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== -1; });
|
|
69
|
-
|
|
69
|
+
return this.filteredOptions.map((option, index) => html `<li
|
|
70
70
|
id="${this.slug}-option-${index}"
|
|
71
71
|
role="option"
|
|
72
72
|
tabindex="0"
|
|
73
73
|
aria-selected="false"
|
|
74
|
-
@click=${event => this.handleSelection(event)}
|
|
75
|
-
@keydown=${event => this.handleOptionKeyDown(event)}
|
|
74
|
+
@click=${(event) => this.handleSelection(event)}
|
|
75
|
+
@keydown=${(event) => this.handleOptionKeyDown(event)}
|
|
76
76
|
>
|
|
77
77
|
${option}
|
|
78
78
|
</li>`);
|
|
79
|
-
return options;
|
|
80
79
|
}
|
|
81
80
|
return null;
|
|
82
81
|
}
|
|
83
82
|
handleInput(event) {
|
|
84
83
|
this.makeOptions();
|
|
85
|
-
|
|
86
|
-
this.show = true;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.show = false;
|
|
90
|
-
}
|
|
84
|
+
this.show = event.detail.length > 0;
|
|
91
85
|
}
|
|
92
86
|
handleSelection(event) {
|
|
93
|
-
|
|
87
|
+
const target = event.target;
|
|
88
|
+
this.input.value = target.innerText;
|
|
94
89
|
this.show = false;
|
|
95
|
-
emitEvent(this, 'kemet-combo-
|
|
96
|
-
element:
|
|
97
|
-
text:
|
|
98
|
-
id:
|
|
90
|
+
emitEvent(this, 'kemet-combo-selection', {
|
|
91
|
+
element: target,
|
|
92
|
+
text: target.innerText,
|
|
93
|
+
id: target.getAttribute('id'),
|
|
99
94
|
});
|
|
100
95
|
}
|
|
101
96
|
handleOptionKeyDown(event) {
|
|
102
97
|
event.preventDefault();
|
|
98
|
+
const target = event.target;
|
|
103
99
|
if (event.code === 'ArrowDown') {
|
|
104
|
-
const next =
|
|
100
|
+
const next = target.nextElementSibling;
|
|
105
101
|
if (next) {
|
|
106
102
|
next.focus();
|
|
107
103
|
}
|
|
@@ -110,7 +106,7 @@ let KemetCombo = class KemetCombo extends LitElement {
|
|
|
110
106
|
}
|
|
111
107
|
}
|
|
112
108
|
if (event.code === 'ArrowUp') {
|
|
113
|
-
const previous =
|
|
109
|
+
const previous = target.previousElementSibling;
|
|
114
110
|
const lastChild = this.shadowRoot.querySelector('li:last-child');
|
|
115
111
|
if (previous) {
|
|
116
112
|
previous.focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kemet-combo.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/kemet-combo.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"kemet-combo.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/kemet-combo.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,IAAqB,UAAU,GAA/B,MAAqB,UAAW,SAAQ,UAAU;IAAlD;;QAOE,YAAO,GAAa,EAAE,CAAC;IAiIzB,CAAC;IAnHC,YAAY;QACV,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAExD,qBAAqB;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;QAEtC,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM;;QACJ,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,IAAI;yBACR,IAAI,CAAC,IAAI;;cAEpB,IAAI,CAAC,IAAI;sBACD,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK;;8CAEO,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI;YACnE,IAAI,CAAC,WAAW,EAAE;;;KAGzB,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACxC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,CAC/E,CAAC;YAEF,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAC7B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAA;kBACb,IAAI,CAAC,IAAI,WAAW,KAAK;;;;qBAItB,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;uBACnD,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;cAElE,MAAM;gBACJ,CACT,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,KAAoB;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,SAAS,CAAC,IAAI,EAAE,uBAAuB,EAAE;YACvC,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,KAAoB;QACtC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAE3C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAiC,CAAC;YAEtD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;aAC7C;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAqC,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAgB,CAAC;YAEhF,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,KAAK,EAAE,CAAC;aAClB;iBAAM;gBACL,SAAS,CAAC,KAAK,EAAE,CAAC;aACnB;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YACnD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACpB;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YACpD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAED,kBAAkB,CAAC,KAAoB;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;SAC7C;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB;IACH,CAAC;CACF,CAAA;AAvIQ,iBAAM,GAAG,CAAC,UAAU,CAAC,CAAC;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACd;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;2CACH;AAGvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAC7B;AAGd;IADC,KAAK,EAAE;mDACkB;AAG1B;IADC,KAAK,EAAE;yCACU;AAGlB;IADC,KAAK,EAAE;yCACgB;AAnBL,UAAU;IAD9B,aAAa,CAAC,aAAa,CAAC;GACR,UAAU,CAwI9B;eAxIoB,UAAU","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesBase } from './styles';\nimport type KemetField from '../kemet-field/kemet-field';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-combo\n * @summary Allows the user to select a choice filtered through an Input. May only be used as a component of Field.\n *\n * @prop {string} slug - Uniquely identifies the component. Should match the slug used in a control.\n * @prop {array} options - An array of items listed for the combo box\n * @prop {boolean} show - Controls the display of the combo box\n *\n * @csspart combobox - The combo's container element.\n * @csspart listbox - The list element in the combo.\n *\n * @cssproperty --kemet-combo-width - The width of the combo box.\n * @cssproperty --kemet-combo-margin - The margins on the combo box.\n * @cssproperty --kemet-combo-max-height - The max height of the combo box.\n * @cssproperty --kemet-combo-border - The border of the combo box.\n * @cssproperty --kemet-combo-border-radius - The border radius of the combo box.\n * @cssproperty --kemet-combo-background-color - The background color of the combo box.\n * @cssproperty --kemet-combo-shadow - The shadow of the combo box.\n * @cssproperty --kemet-combo-hover-color - The hover item's text color.\n * @cssproperty --kemet-combo-hover-background-color - The hover item's background color.\n *\n * @event kemet-combo-selection - Fires when a selection has been made\n *\n */\n\n@customElement('kemet-combo')\nexport default class KemetCombo extends LitElement {\n static styles = [stylesBase];\n\n @property({ type: String })\n slug: string;\n\n @property({ type: Array })\n options: string[] = [];\n\n @property({ type: Boolean, reflect: true })\n show: boolean;\n\n @state()\n filteredOptions: string[];\n\n @state()\n field: KemetField;\n\n @state()\n input: HTMLInputElement;\n\n firstUpdated() {\n // standard properties\n this.field = this.closest('kemet-field');\n this.input = this.field.querySelector('[slot=\"input\"]');\n\n // managed properties\n this.slug = this.field.slug || 'slug';\n\n // events listeners\n this.input.addEventListener('kemet-input-input', this.handleInput.bind(this));\n this.input.addEventListener('keydown', event => this.handleInputKeyDown(event));\n }\n\n render() {\n return html`\n <div\n role=\"combobox\"\n part=\"combobox\"\n aria-expanded=${this.show}\n aria-controls=\"${this.slug}-listbox\"\n aria-haspopup=\"listbox\"\n id=\"${this.slug}-combobox\"\n aria-label=\"${this.field?.label}\"\n >\n <ul role=\"listbox\" aria-labelledby=\"${this.slug}-label\" id=\"${this.slug}-listbox\" part=\"listbox\">\n ${this.makeOptions()}\n </ul>\n </div>\n `;\n }\n\n makeOptions() {\n if (this.input) {\n this.filteredOptions = this.options.filter(\n option => option.toLowerCase().indexOf(this.input.value?.toLowerCase()) !== -1,\n );\n\n return this.filteredOptions.map(\n (option, index) => html`<li\n id=\"${this.slug}-option-${index}\"\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n @click=${(event: KeyboardEvent) => this.handleSelection(event)}\n @keydown=${(event: KeyboardEvent) => this.handleOptionKeyDown(event)}\n >\n ${option}\n </li>`,\n );\n }\n\n return null;\n }\n\n handleInput(event: CustomEvent) {\n this.makeOptions();\n this.show = event.detail.length > 0;\n }\n\n handleSelection(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n this.input.value = target.innerText;\n this.show = false;\n\n emitEvent(this, 'kemet-combo-selection', {\n element: target,\n text: target.innerText,\n id: target.getAttribute('id'),\n });\n }\n\n handleOptionKeyDown(event: KeyboardEvent) {\n event.preventDefault();\n const target = event.target as HTMLElement;\n\n if (event.code === 'ArrowDown') {\n const next = target.nextElementSibling as HTMLElement;\n\n if (next) {\n next.focus();\n } else {\n this.shadowRoot.querySelector('li').focus();\n }\n }\n\n if (event.code === 'ArrowUp') {\n const previous = target.previousElementSibling as HTMLElement;\n const lastChild = this.shadowRoot.querySelector('li:last-child') as HTMLElement;\n\n if (previous) {\n previous.focus();\n } else {\n lastChild.focus();\n }\n }\n\n if (event.code === 'Escape' || event.code === 'Tab') {\n this.show = false;\n this.input.focus();\n }\n\n if (event.code === 'Enter' || event.code === 'Space') {\n this.handleSelection(event);\n }\n }\n\n handleInputKeyDown(event: KeyboardEvent) {\n if (event.code === 'ArrowDown') {\n this.shadowRoot.querySelector('li').focus();\n }\n\n if (event.code === 'Escape') {\n this.show = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-combo': KemetCombo\n }\n}\n"]}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
export const stylesBase = css `
|
|
3
3
|
:host {
|
|
4
|
+
--kemet-combo-width: calc(100% - 2px);
|
|
5
|
+
--kemet-combo-margin: 1rem auto;
|
|
6
|
+
--kemet-combo-max-height: calc(5 * 3rem);
|
|
7
|
+
--kemet-combo-border: 1px solid rgb(var(--kemet-color-foreground));
|
|
8
|
+
--kemet-combo-border-radius: var(--kemet-border-radius-md);
|
|
9
|
+
--kemet-combo-background-color: rgb(var(--kemet-color-white-to-black));
|
|
10
|
+
--kemet-combo-shadow: var(--kemet-elevation-layer-5);
|
|
11
|
+
--kemet-combo-hover-color: rgb(var(--kemet-color-white));
|
|
12
|
+
--kemet-combo-hover-background-color: rgb(var(--kemet-color-primary));
|
|
13
|
+
|
|
4
14
|
opacity: 0;
|
|
5
|
-
width: var(--kemet-combo-width
|
|
6
|
-
margin: var(--kemet-combo-margin
|
|
15
|
+
width: var(--kemet-combo-width);
|
|
16
|
+
margin: var(--kemet-combo-margin);
|
|
7
17
|
pointer-events: none;
|
|
8
18
|
display: block;
|
|
9
19
|
position: relative;
|
|
@@ -17,28 +27,30 @@ export const stylesBase = css `
|
|
|
17
27
|
|
|
18
28
|
ul {
|
|
19
29
|
width: 100%;
|
|
20
|
-
max-height: var(--kemet-combo-max-height
|
|
30
|
+
max-height: var(--kemet-combo-max-height);
|
|
21
31
|
position: absolute;
|
|
22
32
|
z-index: 1;
|
|
23
33
|
list-style: none;
|
|
24
34
|
margin: 0;
|
|
25
35
|
padding: 0;
|
|
26
36
|
overflow-y: scroll;
|
|
27
|
-
border: var(--kemet-combo-border
|
|
28
|
-
border-radius: var(--kemet-combo-border-radius
|
|
29
|
-
background-color: var(--kemet-combo-background-color
|
|
30
|
-
box-shadow: var(--kemet-combo-shadow
|
|
37
|
+
border: var(--kemet-combo-border);
|
|
38
|
+
border-radius: var(--kemet-combo-border-radius);
|
|
39
|
+
background-color: var(--kemet-combo-background-color);
|
|
40
|
+
box-shadow: var(--kemet-combo-shadow);
|
|
31
41
|
}
|
|
42
|
+
|
|
32
43
|
li {
|
|
33
44
|
line-height: 3rem;
|
|
34
45
|
padding: 0 1.5rem;
|
|
35
46
|
cursor: pointer;
|
|
36
47
|
}
|
|
48
|
+
|
|
37
49
|
li:hover,
|
|
38
50
|
li:focus {
|
|
39
|
-
color: var(--kemet-combo-hover-color
|
|
51
|
+
color: var(--kemet-combo-hover-color);
|
|
40
52
|
outline: none;
|
|
41
|
-
background-color: var(--kemet-combo-hover-background-color
|
|
53
|
+
background-color: var(--kemet-combo-hover-background-color);
|
|
42
54
|
}
|
|
43
55
|
`;
|
|
44
56
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD5B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesBase = css`\n :host {\n --kemet-combo-width: calc(100% - 2px);\n --kemet-combo-margin: 1rem auto;\n --kemet-combo-max-height: calc(5 * 3rem);\n --kemet-combo-border: 1px solid rgb(var(--kemet-color-foreground));\n --kemet-combo-border-radius: var(--kemet-border-radius-md);\n --kemet-combo-background-color: rgb(var(--kemet-color-white-to-black));\n --kemet-combo-shadow: var(--kemet-elevation-layer-5);\n --kemet-combo-hover-color: rgb(var(--kemet-color-white));\n --kemet-combo-hover-background-color: rgb(var(--kemet-color-primary));\n\n opacity: 0;\n width: var(--kemet-combo-width);\n margin: var(--kemet-combo-margin);\n pointer-events: none;\n display: block;\n position: relative;\n transition: opacity 0.3s ease-in-out;\n }\n\n :host([show]) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul {\n width: 100%;\n max-height: var(--kemet-combo-max-height);\n position: absolute;\n z-index: 1;\n list-style: none;\n margin: 0;\n padding: 0;\n overflow-y: scroll;\n border: var(--kemet-combo-border);\n border-radius: var(--kemet-combo-border-radius);\n background-color: var(--kemet-combo-background-color);\n box-shadow: var(--kemet-combo-shadow);\n }\n\n li {\n line-height: 3rem;\n padding: 0 1.5rem;\n cursor: pointer;\n }\n\n li:hover,\n li:focus {\n color: var(--kemet-combo-hover-color);\n outline: none;\n background-color: var(--kemet-combo-hover-background-color);\n }\n`;\n"]}
|
|
@@ -8,16 +8,6 @@ import '../../kemet-tabs/kemet-tab-panel';
|
|
|
8
8
|
const meta = {
|
|
9
9
|
title: 'Components / Count',
|
|
10
10
|
component: 'kemet-count',
|
|
11
|
-
};
|
|
12
|
-
export default meta;
|
|
13
|
-
const Template = ({ label = 'Label', message = 'Too many characters!', status = 'standard', remaining = 'characters remaining.', validateImmediately = true, limit = 8, }) => html `
|
|
14
|
-
<kemet-field slug="unique-identifier" label="${label}" message="${message}" status="${status}">
|
|
15
|
-
<kemet-input slot="input" name="input-field" status="${status}" validate-on-blur></kemet-input>
|
|
16
|
-
<kemet-count slot="component" message="${remaining}" limit="${limit}" ?validate-immediately=${validateImmediately}></kemet-count>
|
|
17
|
-
</kemet-field>
|
|
18
|
-
`;
|
|
19
|
-
export const Standard = {
|
|
20
|
-
render: args => Template(args),
|
|
21
11
|
args: {
|
|
22
12
|
label: 'Label',
|
|
23
13
|
message: 'Too many characters!',
|
|
@@ -27,25 +17,20 @@ export const Standard = {
|
|
|
27
17
|
limit: 8,
|
|
28
18
|
},
|
|
29
19
|
argTypes: {
|
|
30
|
-
label: {
|
|
31
|
-
control: { type: 'text' },
|
|
32
|
-
},
|
|
33
|
-
message: {
|
|
34
|
-
control: { type: 'text' },
|
|
35
|
-
},
|
|
36
20
|
status: {
|
|
37
21
|
control: { type: 'radio' },
|
|
38
22
|
options: ['standard', 'error', 'warning'],
|
|
39
23
|
},
|
|
40
|
-
remaining: {
|
|
41
|
-
control: { type: 'text' },
|
|
42
|
-
},
|
|
43
|
-
validateImmediately: {
|
|
44
|
-
control: { type: 'boolean' },
|
|
45
|
-
},
|
|
46
|
-
limit: {
|
|
47
|
-
control: { type: 'number' },
|
|
48
|
-
},
|
|
49
24
|
}
|
|
50
25
|
};
|
|
26
|
+
export default meta;
|
|
27
|
+
const Template = (args) => html `
|
|
28
|
+
<kemet-field slug="unique-identifier" label="${args.label}" message="${args.message}" status="${args.status}">
|
|
29
|
+
<kemet-input slot="input" name="input-field" status="${args.status}" validate-on-blur></kemet-input>
|
|
30
|
+
<kemet-count slot="component" message="${args.remaining}" limit="${args.limit}" ?validate-immediately=${args.validateImmediately}></kemet-count>
|
|
31
|
+
</kemet-field>
|
|
32
|
+
`;
|
|
33
|
+
export const Standard = {
|
|
34
|
+
render: args => Template(args),
|
|
35
|
+
};
|
|
51
36
|
//# sourceMappingURL=stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-count/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,gBAAgB,CAAC;AAExB,OAAO,+BAA+B,CAAC;AACvC,OAAO,+BAA+B,CAAC;AACvC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-count/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,gBAAgB,CAAC;AAExB,OAAO,+BAA+B,CAAC;AACvC,OAAO,+BAA+B,CAAC;AACvC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,aAAa;IACxB,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,uBAAuB;QAClC,mBAAmB,EAAE,IAAI;QACzB,KAAK,EAAE,CAAC;KACT;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;SAC1C;KACF;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;iDACkB,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,OAAO,aAAa,IAAI,CAAC,MAAM;2DAClD,IAAI,CAAC,MAAM;6CACzB,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,KAAK,2BAA2B,IAAI,CAAC,mBAAmB;;CAEnI,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC/B,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-count';\n\nimport '../../kemet-input/kemet-input';\nimport '../../kemet-field/kemet-field';\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Count',\n component: 'kemet-count',\n args: {\n label: 'Label',\n message: 'Too many characters!',\n status: 'standard',\n remaining: 'characters remaining.',\n validateImmediately: true,\n limit: 8,\n },\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'warning'],\n },\n }\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = (args) => html`\n <kemet-field slug=\"unique-identifier\" label=\"${args.label}\" message=\"${args.message}\" status=\"${args.status}\">\n <kemet-input slot=\"input\" name=\"input-field\" status=\"${args.status}\" validate-on-blur></kemet-input>\n <kemet-count slot=\"component\" message=\"${args.remaining}\" limit=\"${args.limit}\" ?validate-immediately=${args.validateImmediately}></kemet-count>\n </kemet-field>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n"]}
|
|
@@ -7,7 +7,7 @@ import { KemetTextareaInterface } from '../kemet-textarea/types';
|
|
|
7
7
|
* @status stable
|
|
8
8
|
*
|
|
9
9
|
* @tagname kemet-count
|
|
10
|
-
* @summary Maintains a character count for
|
|
10
|
+
* @summary Maintains a character count for an input field. Is to be used only in the component slot of a Field component.
|
|
11
11
|
*
|
|
12
12
|
* @prop {string} message - The text label shown to users
|
|
13
13
|
* @prop {number} remaining - The number of characters remaining
|
|
@@ -7,7 +7,7 @@ import { emitEvent } from '../../utilities/misc/events';
|
|
|
7
7
|
* @status stable
|
|
8
8
|
*
|
|
9
9
|
* @tagname kemet-count
|
|
10
|
-
* @summary Maintains a character count for
|
|
10
|
+
* @summary Maintains a character count for an input field. Is to be used only in the component slot of a Field component.
|
|
11
11
|
*
|
|
12
12
|
* @prop {string} message - The text label shown to users
|
|
13
13
|
* @prop {number} remaining - The number of characters remaining
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kemet-count.js","sourceRoot":"","sources":["../../../src/components/kemet-count/kemet-count.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAKxD;;;;;;;;;;;;;;;;GAgBG;AAGH,IAAqB,UAAU,GAA/B,MAAqB,UAAW,SAAQ,UAAU;IAmChD,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEhD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,KAAkB,EAAE,EAAE;YACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAE3C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;YAElD,IAAI,aAAa,EAAE;gBACjB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACtB,6CAA6C;oBAE7C,IAAI,IAAI,CAAC,mBAAmB,EAAE;wBAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;wBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;wBAE9B,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE;4BACpC,MAAM,EAAE,OAAO;4BACf,QAAQ,EAAE,aAAa,CAAC,QAAQ;4BAChC,OAAO,EAAE,IAAI,CAAC,SAAS;yBACxB,CAAC,CAAC;qBACJ;iBACF;qBAAM;oBACL,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;oBACnC,aAAa,CAAC,aAAa,EAAE,CAAC;oBAE9B,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE;wBACpC,MAAM,EAAE,UAAU;wBAClB,QAAQ,EAAE,aAAa,CAAC,QAAQ;wBAChC,OAAO,EAAE,IAAI,CAAC,SAAS;qBACxB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;CACF,CAAA;AA/EQ,iBAAM,GAAG;IACd,GAAG,CAAA;;;;;;KAMF;CACF,CAAC;AAGF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACX;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;uDAClC;AAG7B;IADC,KAAK,EAAE;yCACmB;AAG3B;IADC,KAAK,EAAE;6CACgD;AAGxD;IADC,KAAK,EAAE;yCACgB;AAGxB;IADC,KAAK,EAAE;4CACsB;AAjCX,UAAU;IAD9B,aAAa,CAAC,aAAa,CAAC;GACR,UAAU,CAgF9B;eAhFoB,UAAU","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { KemetInputInterface } from '../kemet-input/types';\nimport { KemetTextareaInterface } from '../kemet-textarea/types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-count\n * @summary Maintains a character count for
|
|
1
|
+
{"version":3,"file":"kemet-count.js","sourceRoot":"","sources":["../../../src/components/kemet-count/kemet-count.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { KemetInputInterface } from '../kemet-input/types';\nimport { KemetTextareaInterface } from '../kemet-textarea/types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-count\n * @summary Maintains a character count for an input field. Is to be used only in the component slot of a Field component.\n *\n * @prop {string} message - The text label shown to users\n * @prop {number} remaining - The number of characters remaining\n * @prop {number} limit - The maximum number of characters allowed\n * @prop {boolean} validateImmediately - Set to true if the field should validate as soon as the character limit is reached\n *\n * @cssproperty --kemet-count-font-size - The font size. Default: 90%.\n *\n * @event kemet-count-status - Fires when there's a change in status.\n *\n */\n\n@customElement('kemet-count')\nexport default class KemetCount extends LitElement {\n static styles = [\n css`\n :host {\n display: block;\n font-size: var(--kemet-count-font-size, 90%);\n margin-top: 0.8rem;\n }\n `,\n ];\n\n @property({ type: String })\n message: string;\n\n @property({ type: Number })\n remaining: number;\n\n @property({ type: Number })\n limit: number;\n\n @property({ type: Boolean, attribute: 'validate-immediately' })\n validateImmediately: boolean;\n\n @state()\n field: KemetFieldInterface;\n\n @state()\n inputSlot: KemetInputInterface | KemetTextareaInterface;\n\n @state()\n input: HTMLInputElement;\n\n @state()\n textarea: HTMLTextAreaElement;\n\n firstUpdated() {\n this.field = this.closest('kemet-field');\n this.inputSlot = this.field.querySelector('[slot=\"input\"]');\n\n this.remaining = this.limit - this.field.length;\n\n this.field.addEventListener('kemet-field-input', (event: CustomEvent) => {\n this.remaining = this.limit - event.detail;\n\n const nativeElement = this.input || this.textarea;\n\n if (nativeElement) {\n if (this.remaining < 0) {\n // nativeElement.validity.passedLimit = true;\n\n if (this.validateImmediately) {\n this.inputSlot.status = 'error';\n this.inputSlot.invalid = true;\n\n emitEvent(this, 'kemet-count-status', {\n status: 'error',\n validity: nativeElement.validity,\n element: this.inputSlot,\n });\n }\n } else {\n this.inputSlot.status = 'standard';\n nativeElement.checkValidity();\n\n emitEvent(this, 'kemet-count-status', {\n status: 'standard',\n validity: nativeElement.validity,\n element: this.inputSlot,\n });\n }\n }\n });\n\n this.input = this.inputSlot.shadowRoot.querySelector('input');\n this.textarea = this.inputSlot.shadowRoot.querySelector('textarea');\n }\n\n render() {\n return html`${this.remaining} ${this.message}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-count': KemetCount\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import '../kemet-draggable';
|
|
|
3
3
|
import '../../kemet-tabs/kemet-tabs';
|
|
4
4
|
import '../../kemet-tabs/kemet-tab';
|
|
5
5
|
import '../../kemet-tabs/kemet-tab-panel';
|
|
6
|
+
import '../../kemet-button/kemet-button';
|
|
6
7
|
declare const meta: Meta;
|
|
7
8
|
export default meta;
|
|
8
9
|
declare type Story = StoryObj;
|
|
@@ -4,29 +4,22 @@ import '../kemet-draggable';
|
|
|
4
4
|
import '../../kemet-tabs/kemet-tabs';
|
|
5
5
|
import '../../kemet-tabs/kemet-tab';
|
|
6
6
|
import '../../kemet-tabs/kemet-tab-panel';
|
|
7
|
+
import '../../kemet-button/kemet-button';
|
|
7
8
|
const meta = {
|
|
8
9
|
title: 'Components / Draggable',
|
|
9
10
|
component: 'kemet-draggable',
|
|
11
|
+
args: {
|
|
12
|
+
text: 'Drag Me',
|
|
13
|
+
memory: 'kemet-draggable-demo',
|
|
14
|
+
},
|
|
10
15
|
};
|
|
11
16
|
export default meta;
|
|
12
|
-
const Template = (
|
|
13
|
-
<kemet-draggable memory=${ifDefined(memory || undefined)}>
|
|
14
|
-
<kemet-button>${text}</kemet-button>
|
|
17
|
+
const Template = (args) => html `
|
|
18
|
+
<kemet-draggable memory=${ifDefined(args.memory || undefined)}>
|
|
19
|
+
<kemet-button>${args.text}</kemet-button>
|
|
15
20
|
</kemet-draggable>
|
|
16
21
|
`;
|
|
17
22
|
export const Standard = {
|
|
18
23
|
render: args => Template(args),
|
|
19
|
-
args: {
|
|
20
|
-
text: 'Drag Me',
|
|
21
|
-
memory: 'kemet-draggable-demo',
|
|
22
|
-
},
|
|
23
|
-
argTypes: {
|
|
24
|
-
text: {
|
|
25
|
-
control: { type: 'text' },
|
|
26
|
-
},
|
|
27
|
-
memory: {
|
|
28
|
-
control: { type: 'text' },
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
24
|
};
|
|
32
25
|
//# sourceMappingURL=stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-draggable/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-draggable/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,sBAAsB;KAC/B;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;4BACH,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;oBAC3C,IAAI,CAAC,IAAI;;CAE5B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC/B,CAAC","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-draggable';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nimport '../../kemet-button/kemet-button';\n\nconst meta: Meta = {\n title: 'Components / Draggable',\n component: 'kemet-draggable',\n args: {\n text: 'Drag Me',\n memory: 'kemet-draggable-demo',\n },\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = (args) => html`\n <kemet-draggable memory=${ifDefined(args.memory || undefined)}>\n <kemet-button>${args.text}</kemet-button>\n </kemet-draggable>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n"]}
|
|
@@ -30,15 +30,15 @@ export default class KemetDraggable extends LitElement {
|
|
|
30
30
|
/** @internal */
|
|
31
31
|
position4: number;
|
|
32
32
|
/** @internal */
|
|
33
|
-
mouseMove: (event:
|
|
33
|
+
mouseMove: (event: MouseEvent) => void;
|
|
34
34
|
/** @internal */
|
|
35
35
|
mouseUp: () => void;
|
|
36
36
|
/** @internal */
|
|
37
37
|
draggableElement: HTMLElement;
|
|
38
38
|
firstUpdated(): void;
|
|
39
39
|
render(): import("lit-html").TemplateResult<1>;
|
|
40
|
-
startDrag(event:
|
|
41
|
-
drag(event:
|
|
40
|
+
startDrag(event: MouseEvent): void;
|
|
41
|
+
drag(event: MouseEvent): void;
|
|
42
42
|
stopDrag(): void;
|
|
43
43
|
measureContent(): void;
|
|
44
44
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { html, css, LitElement } from 'lit';
|
|
3
|
-
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
3
|
+
import { customElement, property, query, state, } from 'lit/decorators.js';
|
|
4
4
|
import { emitEvent } from '../../utilities/misc/events';
|
|
5
5
|
/**
|
|
6
6
|
* @since 1.0.0
|
|
@@ -45,7 +45,7 @@ let KemetDraggable = class KemetDraggable extends LitElement {
|
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
47
|
return html `
|
|
48
|
-
<div id="draggable" @mousedown=${event => this.startDrag(event)} style="top:${this.top}; left:${this.left}">
|
|
48
|
+
<div id="draggable" @mousedown=${(event) => this.startDrag(event)} style="top:${this.top}; left:${this.left}">
|
|
49
49
|
<slot></slot>
|
|
50
50
|
</div>
|
|
51
51
|
`;
|
|
@@ -61,14 +61,15 @@ let KemetDraggable = class KemetDraggable extends LitElement {
|
|
|
61
61
|
emitEvent(this, 'kemet-draggable-start', this);
|
|
62
62
|
}
|
|
63
63
|
drag(event) {
|
|
64
|
-
var _a, _b;
|
|
65
64
|
event.preventDefault();
|
|
66
65
|
this.position1 = this.position3 - event.clientX;
|
|
67
66
|
this.position2 = this.position4 - event.clientY;
|
|
68
67
|
this.position3 = event.clientX;
|
|
69
68
|
this.position4 = event.clientY;
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
if (this.draggableElement) {
|
|
70
|
+
this.top = `${this.draggableElement.offsetTop - this.position2}px`;
|
|
71
|
+
this.left = `${this.draggableElement.offsetLeft - this.position1}px`;
|
|
72
|
+
}
|
|
72
73
|
}
|
|
73
74
|
stopDrag() {
|
|
74
75
|
document.removeEventListener('mouseup', this.mouseUp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kemet-draggable.js","sourceRoot":"","sources":["../../../src/components/kemet-draggable/kemet-draggable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"kemet-draggable.js","sourceRoot":"","sources":["../../../src/components/kemet-draggable/kemet-draggable.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport {\n customElement, property, query, state,\n} from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-draggable\n * @summary A draggable element with the ability to remember its position.\n *\n * @prop {string} memory - A unique identifier used to store the element's position in local storage.\n * @prop {string} top - The elements top position in pixels.\n * @prop {string} left - The element's left position in pixels.\n * @prop {boolean} measure - If set to true, will measure the width and height of the element's content and apply it to the host element.\n *\n * @event kemet-draggable-start\n * @event kemet-draggable-stop\n *\n */\n\n@customElement('kemet-draggable')\nexport default class KemetDraggable extends LitElement {\n static styles = [css`\n :host {\n display: inline-block;\n }\n\n #draggable {\n position: absolute;\n }\n `];\n\n @property({ type: String })\n memory: string;\n\n @property({ type: String })\n top: string = 'auto';\n\n @property({ type: String })\n left: string = 'auto';\n\n @property({ type: Boolean })\n measure: boolean = false;\n\n /** @internal */\n @state()\n position1: number;\n\n /** @internal */\n @state()\n position2: number;\n\n /** @internal */\n @state()\n position3: number;\n\n /** @internal */\n @state()\n position4: number;\n\n /** @internal */\n @state()\n mouseMove: (event: MouseEvent) => void;\n\n /** @internal */\n @state()\n mouseUp: () => void;\n\n /** @internal */\n @query('#draggable')\n draggableElement: HTMLElement;\n\n firstUpdated() {\n // standard properties\n /** @internal */\n this.position1 = 0;\n this.position2 = 0;\n this.position3 = 0;\n this.position4 = 0;\n this.mouseMove = event => this.drag(event);\n this.mouseUp = () => this.stopDrag();\n\n const savedPosition = JSON.parse(localStorage.getItem(this.memory));\n\n if (savedPosition) {\n this.top = savedPosition.top;\n this.left = savedPosition.left;\n }\n\n if (this.measure) {\n this.measureContent();\n }\n }\n\n render() {\n return html`\n <div id=\"draggable\" @mousedown=${(event: MouseEvent) => this.startDrag(event)} style=\"top:${this.top}; left:${this.left}\">\n <slot></slot>\n </div>\n `;\n }\n\n startDrag(event: MouseEvent) {\n if (event) {\n event.preventDefault();\n\n this.position3 = event.clientX;\n this.position4 = event.clientY;\n }\n\n document.addEventListener('mouseup', this.mouseUp);\n document.addEventListener('mousemove', this.mouseMove);\n\n emitEvent(this, 'kemet-draggable-start', this);\n }\n\n drag(event: MouseEvent) {\n event.preventDefault();\n\n this.position1 = this.position3 - event.clientX;\n this.position2 = this.position4 - event.clientY;\n this.position3 = event.clientX;\n this.position4 = event.clientY;\n\n if (this.draggableElement) {\n this.top = `${this.draggableElement.offsetTop - this.position2}px`;\n this.left = `${this.draggableElement.offsetLeft - this.position1}px`;\n }\n }\n\n stopDrag() {\n document.removeEventListener('mouseup', this.mouseUp);\n document.removeEventListener('mousemove', this.mouseMove);\n\n if (this.memory) {\n const savedPosition = {\n top: this.top,\n left: this.left,\n };\n\n localStorage.setItem(this.memory, JSON.stringify(savedPosition));\n }\n\n emitEvent(this, 'kemet-draggable-stop', this);\n }\n\n measureContent() {\n this.style.width = `${this.draggableElement?.offsetWidth}px`;\n this.style.height = `${this.draggableElement?.offsetHeight}px`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-draggable': KemetDraggable\n }\n}\n"]}
|
|
@@ -8,3 +8,9 @@ declare const meta: Meta;
|
|
|
8
8
|
export default meta;
|
|
9
9
|
declare type Story = StoryObj;
|
|
10
10
|
export declare const Standard: Story;
|
|
11
|
+
export declare const Overlay: Story;
|
|
12
|
+
export declare const Top: Story;
|
|
13
|
+
export declare const Right: Story;
|
|
14
|
+
export declare const Bottom: Story;
|
|
15
|
+
export declare const Push: Story;
|
|
16
|
+
export declare const Scale: Story;
|