godown 3.0.0-canary.9 → 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/README.md +38 -9
- package/alert.d.ts +1 -0
- package/alert.d.ts.map +1 -1
- package/alert.js +1 -5
- package/alert.js.map +1 -1
- package/avatar.d.ts +1 -0
- package/avatar.d.ts.map +1 -1
- package/avatar.js +1 -5
- package/avatar.js.map +1 -1
- package/badge.d.ts +9 -0
- package/badge.d.ts.map +1 -0
- package/badge.js +2 -0
- package/badge.js.map +1 -0
- package/breath.js +1 -5
- package/breath.js.map +1 -1
- package/build/godown+lit.iife.js +59 -0
- package/build/godown+lit.iife.js.map +1 -0
- package/build/godown+lit.js +59 -0
- package/build/godown+lit.js.map +1 -0
- package/build/godown+lit.umd.js +59 -0
- package/build/godown+lit.umd.js.map +1 -0
- package/build/godown.iife.js +47 -0
- package/build/godown.js +48 -0
- package/build/godown.js.map +1 -0
- package/build/godown.umd.js +48 -0
- package/build/godown.umd.js.map +1 -0
- package/button.d.ts +1 -0
- package/button.d.ts.map +1 -1
- package/button.js +1 -5
- package/button.js.map +1 -1
- package/card.d.ts +1 -0
- package/card.d.ts.map +1 -1
- package/card.js +1 -5
- package/card.js.map +1 -1
- package/carousel.d.ts +1 -0
- package/carousel.d.ts.map +1 -1
- package/carousel.js +1 -5
- package/carousel.js.map +1 -1
- package/components/alert.d.ts +4 -1
- package/components/alert.d.ts.map +1 -1
- package/components/alert.js +1 -176
- package/components/alert.js.map +1 -1
- package/components/avatar.d.ts +7 -2
- package/components/avatar.d.ts.map +1 -1
- package/components/avatar.js +1 -62
- package/components/avatar.js.map +1 -1
- package/components/badge.d.ts +23 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.js +2 -0
- package/components/badge.js.map +1 -0
- package/components/breath.d.ts +6 -4
- package/components/breath.d.ts.map +1 -1
- package/components/breath.js +1 -80
- package/components/breath.js.map +1 -1
- package/components/button.d.ts +8 -5
- package/components/button.d.ts.map +1 -1
- package/components/button.js +1 -168
- package/components/button.js.map +1 -1
- package/components/card.d.ts +3 -1
- package/components/card.d.ts.map +1 -1
- package/components/card.js +1 -48
- package/components/card.js.map +1 -1
- package/components/carousel.d.ts +5 -1
- package/components/carousel.d.ts.map +1 -1
- package/components/carousel.js +1 -113
- package/components/carousel.js.map +1 -1
- package/components/details.d.ts +4 -3
- package/components/details.d.ts.map +1 -1
- package/components/details.js +1 -52
- package/components/details.js.map +1 -1
- package/components/dialog.d.ts +4 -2
- package/components/dialog.d.ts.map +1 -1
- package/components/dialog.js +1 -96
- package/components/dialog.js.map +1 -1
- package/components/divider.d.ts +3 -3
- package/components/divider.d.ts.map +1 -1
- package/components/divider.js +1 -36
- package/components/divider.js.map +1 -1
- package/components/dragbox.d.ts +4 -2
- package/components/dragbox.d.ts.map +1 -1
- package/components/dragbox.js +1 -109
- package/components/dragbox.js.map +1 -1
- package/components/flex.d.ts +3 -1
- package/components/flex.d.ts.map +1 -1
- package/components/flex.js +1 -62
- package/components/flex.js.map +1 -1
- package/components/form.d.ts +3 -1
- package/components/form.d.ts.map +1 -1
- package/components/form.js +1 -75
- package/components/form.js.map +1 -1
- package/components/grid.d.ts +3 -1
- package/components/grid.d.ts.map +1 -1
- package/components/grid.js +1 -56
- package/components/grid.js.map +1 -1
- package/components/heading.d.ts +29 -0
- package/components/heading.d.ts.map +1 -0
- package/components/heading.js +2 -0
- package/components/heading.js.map +1 -0
- package/components/input.d.ts +5 -1
- package/components/input.d.ts.map +1 -1
- package/components/input.js +1 -50
- package/components/input.js.map +1 -1
- package/components/layout.d.ts +6 -4
- package/components/layout.d.ts.map +1 -1
- package/components/layout.js +1 -58
- package/components/layout.js.map +1 -1
- package/components/link.d.ts +5 -0
- package/components/link.d.ts.map +1 -1
- package/components/link.js +1 -44
- package/components/link.js.map +1 -1
- package/components/progress.d.ts +3 -1
- package/components/progress.d.ts.map +1 -1
- package/components/progress.js +1 -58
- package/components/progress.js.map +1 -1
- package/components/range.d.ts +10 -4
- package/components/range.d.ts.map +1 -1
- package/components/range.js +1 -266
- package/components/range.js.map +1 -1
- package/components/rotate.d.ts +3 -1
- package/components/rotate.d.ts.map +1 -1
- package/components/rotate.js +1 -56
- package/components/rotate.js.map +1 -1
- package/components/router.d.ts +27 -34
- package/components/router.d.ts.map +1 -1
- package/components/router.js +1 -250
- package/components/router.js.map +1 -1
- package/components/select.d.ts +7 -2
- package/components/select.d.ts.map +1 -1
- package/components/select.js +1 -211
- package/components/select.js.map +1 -1
- package/components/skeleton.d.ts +3 -1
- package/components/skeleton.d.ts.map +1 -1
- package/components/skeleton.js +1 -54
- package/components/skeleton.js.map +1 -1
- package/components/split.d.ts +8 -2
- package/components/split.d.ts.map +1 -1
- package/components/split.js +1 -153
- package/components/split.js.map +1 -1
- package/components/switch.d.ts +5 -2
- package/components/switch.d.ts.map +1 -1
- package/components/switch.js +1 -92
- package/components/switch.js.map +1 -1
- package/components/text.d.ts +3 -1
- package/components/text.d.ts.map +1 -1
- package/components/text.js +1 -43
- package/components/text.js.map +1 -1
- package/components/time.d.ts +4 -2
- package/components/time.d.ts.map +1 -1
- package/components/time.js +1 -77
- package/components/time.js.map +1 -1
- package/components/tooltip.d.ts +4 -2
- package/components/tooltip.d.ts.map +1 -1
- package/components/tooltip.js +1 -80
- package/components/tooltip.js.map +1 -1
- package/components/typewriter.d.ts +6 -12
- package/components/typewriter.d.ts.map +1 -1
- package/components/typewriter.js +1 -129
- package/components/typewriter.js.map +1 -1
- package/core/global-style.d.ts +2 -2
- package/core/global-style.d.ts.map +1 -1
- package/core/global-style.js +1 -52
- package/core/global-style.js.map +1 -1
- package/core/super-anchor.d.ts +2 -1
- package/core/super-anchor.d.ts.map +1 -1
- package/core/super-anchor.js +1 -38
- package/core/super-anchor.js.map +1 -1
- package/core/super-input.d.ts +4 -3
- package/core/super-input.d.ts.map +1 -1
- package/core/super-input.js +1 -111
- package/core/super-input.js.map +1 -1
- package/core/super-openable.d.ts +1 -1
- package/core/super-openable.d.ts.map +1 -1
- package/core/super-openable.js +1 -37
- package/core/super-openable.js.map +1 -1
- package/custom-elements.json +1 -1
- package/details.d.ts +1 -0
- package/details.d.ts.map +1 -1
- package/details.js +1 -5
- package/details.js.map +1 -1
- package/dev/alert.d.ts +1 -0
- package/dev/alert.d.ts.map +1 -1
- package/dev/alert.js +1 -0
- package/dev/alert.js.map +1 -1
- package/dev/avatar.d.ts +1 -0
- package/dev/avatar.d.ts.map +1 -1
- package/dev/avatar.js +1 -0
- package/dev/avatar.js.map +1 -1
- package/dev/badge.d.ts +9 -0
- package/dev/badge.d.ts.map +1 -0
- package/dev/badge.js +5 -0
- package/dev/badge.js.map +1 -0
- package/dev/button.d.ts +1 -0
- package/dev/button.d.ts.map +1 -1
- package/dev/button.js +1 -0
- package/dev/button.js.map +1 -1
- package/dev/card.d.ts +1 -0
- package/dev/card.d.ts.map +1 -1
- package/dev/card.js +1 -0
- package/dev/card.js.map +1 -1
- package/dev/carousel.d.ts +1 -0
- package/dev/carousel.d.ts.map +1 -1
- package/dev/carousel.js +1 -0
- package/dev/carousel.js.map +1 -1
- package/dev/components/alert.d.ts +4 -1
- package/dev/components/alert.d.ts.map +1 -1
- package/dev/components/alert.js +87 -77
- package/dev/components/alert.js.map +1 -1
- package/dev/components/avatar.d.ts +7 -2
- package/dev/components/avatar.d.ts.map +1 -1
- package/dev/components/avatar.js +60 -32
- package/dev/components/avatar.js.map +1 -1
- package/dev/components/badge.d.ts +23 -0
- package/dev/components/badge.d.ts.map +1 -0
- package/dev/components/badge.js +114 -0
- package/dev/components/badge.js.map +1 -0
- package/dev/components/breath.d.ts +6 -4
- package/dev/components/breath.d.ts.map +1 -1
- package/dev/components/breath.js +40 -31
- package/dev/components/breath.js.map +1 -1
- package/dev/components/button.d.ts +8 -5
- package/dev/components/button.d.ts.map +1 -1
- package/dev/components/button.js +38 -21
- package/dev/components/button.js.map +1 -1
- package/dev/components/card.d.ts +3 -1
- package/dev/components/card.d.ts.map +1 -1
- package/dev/components/card.js +43 -41
- package/dev/components/card.js.map +1 -1
- package/dev/components/carousel.d.ts +5 -1
- package/dev/components/carousel.d.ts.map +1 -1
- package/dev/components/carousel.js +81 -55
- package/dev/components/carousel.js.map +1 -1
- package/dev/components/details.d.ts +4 -3
- package/dev/components/details.d.ts.map +1 -1
- package/dev/components/details.js +76 -70
- package/dev/components/details.js.map +1 -1
- package/dev/components/dialog.d.ts +4 -2
- package/dev/components/dialog.d.ts.map +1 -1
- package/dev/components/dialog.js +65 -60
- package/dev/components/dialog.js.map +1 -1
- package/dev/components/divider.d.ts +3 -3
- package/dev/components/divider.d.ts.map +1 -1
- package/dev/components/divider.js +27 -10
- package/dev/components/divider.js.map +1 -1
- package/dev/components/dragbox.d.ts +4 -2
- package/dev/components/dragbox.d.ts.map +1 -1
- package/dev/components/dragbox.js +22 -13
- package/dev/components/dragbox.js.map +1 -1
- package/dev/components/flex.d.ts +3 -1
- package/dev/components/flex.d.ts.map +1 -1
- package/dev/components/flex.js +22 -9
- package/dev/components/flex.js.map +1 -1
- package/dev/components/form.d.ts +3 -1
- package/dev/components/form.d.ts.map +1 -1
- package/dev/components/form.js +6 -7
- package/dev/components/form.js.map +1 -1
- package/dev/components/grid.d.ts +3 -1
- package/dev/components/grid.d.ts.map +1 -1
- package/dev/components/grid.js +22 -10
- package/dev/components/grid.js.map +1 -1
- package/dev/components/heading.d.ts +29 -0
- package/dev/components/heading.d.ts.map +1 -0
- package/dev/components/heading.js +125 -0
- package/dev/components/heading.js.map +1 -0
- package/dev/components/input.d.ts +5 -1
- package/dev/components/input.d.ts.map +1 -1
- package/dev/components/input.js +36 -28
- package/dev/components/input.js.map +1 -1
- package/dev/components/layout.d.ts +6 -4
- package/dev/components/layout.d.ts.map +1 -1
- package/dev/components/layout.js +53 -39
- package/dev/components/layout.js.map +1 -1
- package/dev/components/link.d.ts +5 -0
- package/dev/components/link.d.ts.map +1 -1
- package/dev/components/link.js +13 -3
- package/dev/components/link.js.map +1 -1
- package/dev/components/progress.d.ts +3 -1
- package/dev/components/progress.d.ts.map +1 -1
- package/dev/components/progress.js +20 -8
- package/dev/components/progress.js.map +1 -1
- package/dev/components/range.d.ts +10 -4
- package/dev/components/range.d.ts.map +1 -1
- package/dev/components/range.js +69 -64
- package/dev/components/range.js.map +1 -1
- package/dev/components/rotate.d.ts +3 -1
- package/dev/components/rotate.d.ts.map +1 -1
- package/dev/components/rotate.js +14 -9
- package/dev/components/rotate.js.map +1 -1
- package/dev/components/router.d.ts +27 -34
- package/dev/components/router.d.ts.map +1 -1
- package/dev/components/router.js +25 -38
- package/dev/components/router.js.map +1 -1
- package/dev/components/select.d.ts +7 -2
- package/dev/components/select.d.ts.map +1 -1
- package/dev/components/select.js +79 -58
- package/dev/components/select.js.map +1 -1
- package/dev/components/skeleton.d.ts +3 -1
- package/dev/components/skeleton.d.ts.map +1 -1
- package/dev/components/skeleton.js +67 -63
- package/dev/components/skeleton.js.map +1 -1
- package/dev/components/split.d.ts +8 -2
- package/dev/components/split.d.ts.map +1 -1
- package/dev/components/split.js +67 -51
- package/dev/components/split.js.map +1 -1
- package/dev/components/switch.d.ts +5 -2
- package/dev/components/switch.d.ts.map +1 -1
- package/dev/components/switch.js +91 -85
- package/dev/components/switch.js.map +1 -1
- package/dev/components/text.d.ts +3 -1
- package/dev/components/text.d.ts.map +1 -1
- package/dev/components/text.js +56 -53
- package/dev/components/text.js.map +1 -1
- package/dev/components/time.d.ts +4 -2
- package/dev/components/time.d.ts.map +1 -1
- package/dev/components/time.js +19 -6
- package/dev/components/time.js.map +1 -1
- package/dev/components/tooltip.d.ts +4 -2
- package/dev/components/tooltip.d.ts.map +1 -1
- package/dev/components/tooltip.js +45 -27
- package/dev/components/tooltip.js.map +1 -1
- package/dev/components/typewriter.d.ts +6 -12
- package/dev/components/typewriter.d.ts.map +1 -1
- package/dev/components/typewriter.js +48 -54
- package/dev/components/typewriter.js.map +1 -1
- package/dev/core/global-style.d.ts +2 -2
- package/dev/core/global-style.d.ts.map +1 -1
- package/dev/core/global-style.js +19 -14
- package/dev/core/global-style.js.map +1 -1
- package/dev/core/super-anchor.d.ts +2 -1
- package/dev/core/super-anchor.d.ts.map +1 -1
- package/dev/core/super-anchor.js +15 -12
- package/dev/core/super-anchor.js.map +1 -1
- package/dev/core/super-input.d.ts +4 -3
- package/dev/core/super-input.d.ts.map +1 -1
- package/dev/core/super-input.js +64 -42
- package/dev/core/super-input.js.map +1 -1
- package/dev/core/super-openable.d.ts +1 -1
- package/dev/core/super-openable.d.ts.map +1 -1
- package/dev/core/super-openable.js +1 -2
- package/dev/core/super-openable.js.map +1 -1
- package/dev/details.d.ts +1 -0
- package/dev/details.d.ts.map +1 -1
- package/dev/details.js +1 -0
- package/dev/details.js.map +1 -1
- package/dev/dialog.d.ts +1 -0
- package/dev/dialog.d.ts.map +1 -1
- package/dev/dialog.js +1 -0
- package/dev/dialog.js.map +1 -1
- package/dev/divider.d.ts +1 -0
- package/dev/divider.d.ts.map +1 -1
- package/dev/divider.js +1 -0
- package/dev/divider.js.map +1 -1
- package/dev/dragbox.d.ts +1 -0
- package/dev/dragbox.d.ts.map +1 -1
- package/dev/dragbox.js +1 -0
- package/dev/dragbox.js.map +1 -1
- package/dev/flex.d.ts +1 -0
- package/dev/flex.d.ts.map +1 -1
- package/dev/flex.js +1 -0
- package/dev/flex.js.map +1 -1
- package/dev/form.d.ts +1 -0
- package/dev/form.d.ts.map +1 -1
- package/dev/form.js +1 -0
- package/dev/form.js.map +1 -1
- package/dev/grid.d.ts +1 -0
- package/dev/grid.d.ts.map +1 -1
- package/dev/grid.js +1 -0
- package/dev/grid.js.map +1 -1
- package/dev/heading.d.ts +9 -0
- package/dev/heading.d.ts.map +1 -0
- package/dev/heading.js +5 -0
- package/dev/heading.js.map +1 -0
- package/dev/index.d.ts +2 -0
- package/dev/index.d.ts.map +1 -1
- package/dev/index.js +2 -0
- package/dev/index.js.map +1 -1
- package/dev/layout.d.ts.map +1 -1
- package/dev/progress.d.ts.map +1 -1
- package/dev/router.d.ts.map +1 -1
- package/dev/split.d.ts +1 -1
- package/dev/split.d.ts.map +1 -1
- package/dev/typewriter.d.ts +1 -0
- package/dev/typewriter.d.ts.map +1 -1
- package/dev/typewriter.js +1 -0
- package/dev/typewriter.js.map +1 -1
- package/dialog.d.ts +1 -0
- package/dialog.d.ts.map +1 -1
- package/dialog.js +1 -5
- package/dialog.js.map +1 -1
- package/divider.d.ts +1 -0
- package/divider.d.ts.map +1 -1
- package/divider.js +1 -5
- package/divider.js.map +1 -1
- package/dragbox.d.ts +1 -0
- package/dragbox.d.ts.map +1 -1
- package/dragbox.js +1 -5
- package/dragbox.js.map +1 -1
- package/flex.d.ts +1 -0
- package/flex.d.ts.map +1 -1
- package/flex.js +1 -5
- package/flex.js.map +1 -1
- package/form.d.ts +1 -0
- package/form.d.ts.map +1 -1
- package/form.js +1 -5
- package/form.js.map +1 -1
- package/grid.d.ts +1 -0
- package/grid.d.ts.map +1 -1
- package/grid.js +1 -5
- package/grid.js.map +1 -1
- package/heading.d.ts +9 -0
- package/heading.d.ts.map +1 -0
- package/heading.js +2 -0
- package/heading.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -56
- package/index.js.map +1 -1
- package/input.js +1 -5
- package/input.js.map +1 -1
- package/layout.d.ts.map +1 -1
- package/layout.js +1 -5
- package/layout.js.map +1 -1
- package/link.js +1 -5
- package/link.js.map +1 -1
- package/package.json +13 -8
- package/progress.d.ts.map +1 -1
- package/progress.js +1 -5
- package/progress.js.map +1 -1
- package/range.js +1 -5
- package/range.js.map +1 -1
- package/rotate.js +1 -5
- package/rotate.js.map +1 -1
- package/router.d.ts.map +1 -1
- package/router.js +1 -5
- package/router.js.map +1 -1
- package/select.js +1 -5
- package/select.js.map +1 -1
- package/skeleton.js +1 -5
- package/skeleton.js.map +1 -1
- package/split.d.ts +1 -1
- package/split.d.ts.map +1 -1
- package/split.js +1 -5
- package/split.js.map +1 -1
- package/src/alert.ts +2 -0
- package/src/avatar.ts +2 -0
- package/src/badge.ts +13 -0
- package/src/button.ts +2 -0
- package/src/card.ts +2 -0
- package/src/carousel.ts +2 -0
- package/src/components/alert.ts +92 -86
- package/src/components/avatar.ts +65 -39
- package/src/components/badge.ts +110 -0
- package/src/components/breath.ts +47 -38
- package/src/components/button.ts +38 -36
- package/src/components/card.ts +45 -46
- package/src/components/carousel.ts +91 -66
- package/src/components/details.ts +79 -75
- package/src/components/dialog.ts +74 -73
- package/src/components/divider.ts +28 -13
- package/src/components/dragbox.ts +30 -25
- package/src/components/flex.ts +35 -22
- package/src/components/form.ts +12 -15
- package/src/components/grid.ts +35 -23
- package/src/components/heading.ts +123 -0
- package/src/components/input.ts +43 -37
- package/src/components/layout.ts +52 -44
- package/src/components/link.ts +13 -4
- package/src/components/progress.ts +22 -10
- package/src/components/range.ts +107 -108
- package/src/components/rotate.ts +24 -18
- package/src/components/router.ts +64 -67
- package/src/components/select.ts +94 -78
- package/src/components/skeleton.ts +70 -68
- package/src/components/split.ts +81 -67
- package/src/components/switch.ts +97 -93
- package/src/components/text.ts +55 -58
- package/src/components/time.ts +26 -13
- package/src/components/tooltip.ts +44 -32
- package/src/components/typewriter.ts +54 -61
- package/src/core/global-style.ts +34 -21
- package/src/core/super-anchor.ts +17 -14
- package/src/core/super-input.ts +76 -63
- package/src/core/super-openable.ts +8 -14
- package/src/details.ts +2 -0
- package/src/dialog.ts +2 -0
- package/src/divider.ts +2 -0
- package/src/dragbox.ts +2 -0
- package/src/flex.ts +2 -0
- package/src/form.ts +2 -0
- package/src/grid.ts +2 -0
- package/src/heading.ts +13 -0
- package/src/index.ts +2 -0
- package/src/layout.ts +1 -0
- package/src/progress.ts +1 -0
- package/src/router.ts +1 -0
- package/src/split.ts +1 -1
- package/src/typewriter.ts +2 -0
- package/switch.js +1 -5
- package/switch.js.map +1 -1
- package/text.js +1 -5
- package/text.js.map +1 -1
- package/time.js +1 -5
- package/time.js.map +1 -1
- package/tooltip.js +1 -5
- package/tooltip.js.map +1 -1
- package/typewriter.d.ts +1 -0
- package/typewriter.d.ts.map +1 -1
- package/typewriter.js +1 -5
- package/typewriter.js.map +1 -1
- package/vscode.html-custom-data.json +1 -1
- package/web-types.json +1 -1
package/src/components/range.ts
CHANGED
@@ -1,10 +1,5 @@
|
|
1
|
-
import { godown } from "@godown/element
|
2
|
-
import {
|
3
|
-
import { styles } from "@godown/element/decorators/styles.js";
|
4
|
-
import { classList } from "@godown/element/directives/class-list.js";
|
5
|
-
import { joinProperties } from "@godown/element/tools/css.js";
|
6
|
-
import { isNil } from "@godown/element/tools/lib.js";
|
7
|
-
import { css, html } from "lit";
|
1
|
+
import { attr, classList, godown, isNil, joinProperties, part, styles } from "@godown/element";
|
2
|
+
import { type TemplateResult, css, html } from "lit";
|
8
3
|
import { property, queryAll, state } from "lit/decorators.js";
|
9
4
|
|
10
5
|
import { cssGlobalVars, scopePrefix } from "../core/global-style.js";
|
@@ -20,44 +15,52 @@ const cssScope = scopePrefix(protoName);
|
|
20
15
|
*
|
21
16
|
* Number has 1 handle, the array has the number of its elements and the minimum is 2.
|
22
17
|
*
|
18
|
+
* @fires input - Fires when the input value changes.
|
19
|
+
* @fires change - Fires when the input value changes.
|
20
|
+
* @fires range - Fires when the value changes.
|
21
|
+
* @fires focus - Fires when the handle is focused.
|
22
|
+
* @fires blur - Fires when the handle is blurred.
|
23
23
|
* @category input
|
24
24
|
*/
|
25
25
|
@godown(protoName)
|
26
26
|
@styles(
|
27
27
|
css`
|
28
28
|
:host {
|
29
|
-
${cssScope}
|
30
|
-
${cssScope}
|
29
|
+
${cssScope}--handle-active: var(${cssGlobalVars.active});
|
30
|
+
${cssScope}--track-width: .5em;
|
31
|
+
${cssScope}--length: var(${cssGlobalVars.input}-width);
|
31
32
|
background: var(${cssGlobalVars.input}-background);
|
32
|
-
width: var(${
|
33
|
-
display:
|
34
|
-
|
33
|
+
width: var(${cssScope}--length);
|
34
|
+
display: block;
|
35
|
+
}
|
36
|
+
|
37
|
+
:host([contents]) [part="root"] {
|
38
|
+
width: inherit;
|
35
39
|
}
|
36
40
|
|
37
41
|
:host([vertical]) {
|
38
|
-
height: var(${
|
42
|
+
height: var(${cssScope}--length);
|
39
43
|
width: fit-content;
|
40
44
|
}
|
41
45
|
|
42
46
|
:host(:not([disabled])) .last-focus {
|
43
|
-
|
44
|
-
${cssScope}
|
45
|
-
background: var(${cssScope}-handle-active);
|
47
|
+
${cssScope}--handle-scale: 1.05;
|
48
|
+
background: var(${cssScope}--handle-active);
|
46
49
|
}
|
47
50
|
|
48
51
|
[part="root"] {
|
49
|
-
min-height:inherit;
|
52
|
+
min-height: inherit;
|
50
53
|
position: relative;
|
51
54
|
border-radius: inherit;
|
52
55
|
width: 100%;
|
53
56
|
--from: 0%;
|
54
57
|
--to: 50%;
|
55
|
-
height: var(${cssScope}
|
58
|
+
height: var(${cssScope}--track-width);
|
56
59
|
}
|
57
60
|
|
58
61
|
[part="track"] {
|
59
62
|
height: 100%;
|
60
|
-
min-height:inherit;
|
63
|
+
min-height: inherit;
|
61
64
|
display: flex;
|
62
65
|
position: absolute;
|
63
66
|
pointer-events: none;
|
@@ -79,22 +82,22 @@ const cssScope = scopePrefix(protoName);
|
|
79
82
|
border: 0.1em solid;
|
80
83
|
border-radius: 50%;
|
81
84
|
transform-origin: 0% 25%;
|
82
|
-
transform: scale(var(${cssScope}
|
85
|
+
transform: scale(var(${cssScope}--handle-scale, 1)) translate(-50%, -25%);
|
83
86
|
background: var(${cssGlobalVars.active});
|
84
87
|
border-color: var(${cssGlobalVars.input}-control);
|
85
88
|
}
|
86
89
|
`,
|
87
90
|
css`
|
88
|
-
|
89
|
-
height:
|
90
|
-
width: var(${cssScope}
|
91
|
+
[vertical] {
|
92
|
+
height: inherit;
|
93
|
+
width: var(${cssScope}--track-width);
|
91
94
|
}
|
92
95
|
|
93
|
-
|
96
|
+
[vertical] i {
|
94
97
|
transform: translate(-25%, -50%);
|
95
98
|
}
|
96
99
|
|
97
|
-
|
100
|
+
[vertical] [part="track"] {
|
98
101
|
width: 100%;
|
99
102
|
height: max(calc(var(--to) - var(--from)), calc(var(--from) - var(--to)));
|
100
103
|
top: min(var(--from), var(--to));
|
@@ -107,7 +110,7 @@ const cssScope = scopePrefix(protoName);
|
|
107
110
|
top: 0;
|
108
111
|
}
|
109
112
|
|
110
|
-
|
113
|
+
[vertical] [part="handle"] {
|
111
114
|
top: var(--handle);
|
112
115
|
left: 0;
|
113
116
|
}
|
@@ -136,7 +139,7 @@ class Range extends SuperInput {
|
|
136
139
|
* Display vertically.
|
137
140
|
*/
|
138
141
|
@property({ type: Boolean, reflect: true })
|
139
|
-
vertical
|
142
|
+
vertical = false;
|
140
143
|
|
141
144
|
/**
|
142
145
|
* Value, or each of values, will render a handle.
|
@@ -161,10 +164,12 @@ class Range extends SuperInput {
|
|
161
164
|
@state()
|
162
165
|
lastFocus?: number;
|
163
166
|
|
167
|
+
protected _focusStack: number[] = [];
|
168
|
+
|
164
169
|
/**
|
165
170
|
* Returns true when the second number is greater than the first number.
|
166
171
|
*/
|
167
|
-
get reverse() {
|
172
|
+
get reverse(): boolean {
|
168
173
|
return this.range ? this.value[0] > this.value[1] : false;
|
169
174
|
}
|
170
175
|
|
@@ -196,127 +201,117 @@ class Range extends SuperInput {
|
|
196
201
|
return rangeValue;
|
197
202
|
}
|
198
203
|
|
199
|
-
protected render() {
|
204
|
+
protected render(): TemplateResult<1> {
|
200
205
|
const rangeValue = this.padValue(2);
|
201
206
|
const from = Math.min(...rangeValue);
|
202
207
|
const to = Math.max(...rangeValue);
|
203
208
|
const gap = this.max - this.min;
|
204
209
|
|
205
|
-
return html
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
]),
|
225
|
-
)
|
226
|
-
: {}),
|
227
|
-
})
|
228
|
-
}"><div part="track"></div>
|
229
|
-
${
|
230
|
-
this.range
|
231
|
-
? (this.value as number[]).map((_, index) => this.renderHandle(index))
|
232
|
-
: this.renderHandle(0)
|
233
|
-
}
|
234
|
-
</div>`;
|
210
|
+
return html`
|
211
|
+
<div
|
212
|
+
part="root"
|
213
|
+
${attr(this.observedRecord)}
|
214
|
+
@mousedown="${this.disabled ? null : this._handleMousedownRoot}"
|
215
|
+
style="${joinProperties({
|
216
|
+
"--from": `${((from - this.min) / gap) * 100}%`,
|
217
|
+
"--to": `${((to - this.min) / gap) * 100}%`,
|
218
|
+
...(this.range
|
219
|
+
? Object.fromEntries(
|
220
|
+
rangeValue.map((value, index) => [`--handle-${index}`, `${((value - this.min) / gap) * 100}%`]),
|
221
|
+
)
|
222
|
+
: {}),
|
223
|
+
})}"
|
224
|
+
>
|
225
|
+
<div part="track"></div>
|
226
|
+
${this.range ? (this.value as number[]).map((_, index) => this.renderHandle(index)) : this.renderHandle(0)}
|
227
|
+
</div>
|
228
|
+
`;
|
235
229
|
}
|
236
230
|
|
237
|
-
protected renderHandle(index: number) {
|
231
|
+
protected renderHandle(index: number): TemplateResult<1> {
|
238
232
|
const { range } = this;
|
239
233
|
const end = !range || index === (this.value as number[]).length - 1;
|
240
|
-
return html
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
234
|
+
return html`
|
235
|
+
<i
|
236
|
+
tabindex="0"
|
237
|
+
part="handle"
|
238
|
+
class="${classList({ "last-focus": this.lastFocus === index })}"
|
239
|
+
@mousedown="${this.disabled ? null : this.createMouseDown(index)}"
|
240
|
+
@focus="${this.disabled ? null : () => this.focusHandle(index)}"
|
241
|
+
@blur="${this.disabled ? null : this.blurHandle}"
|
242
|
+
style="z-index:${this._focusStack.indexOf(index) + 1};--handle:var(--${
|
243
|
+
/* In single-handle mod or end, it is max value */
|
244
|
+
!range && end ? "to" : `handle-${index}`
|
245
|
+
})"
|
250
246
|
></i>
|
251
|
-
|
247
|
+
`;
|
252
248
|
}
|
253
249
|
|
254
250
|
private _keydownEvent: EventListenerOrEventListenerObject;
|
255
251
|
|
256
|
-
focusHandle(index: number) {
|
252
|
+
focusHandle(index: number): void {
|
257
253
|
this.lastFocus = index;
|
254
|
+
const indexOfFocusStack = this._focusStack.indexOf(index);
|
255
|
+
if (indexOfFocusStack !== -1) {
|
256
|
+
this._focusStack.splice(indexOfFocusStack, 1);
|
257
|
+
}
|
258
|
+
this._focusStack.push(index);
|
258
259
|
const handleItem = this._handles.item(index);
|
259
260
|
handleItem?.focus();
|
260
261
|
if (!this._keydownEvent) {
|
261
262
|
this._keydownEvent = this.events.add(document, "keydown", this.createKeydownEvent(index));
|
262
263
|
}
|
264
|
+
this.dispatchEvent(new CustomEvent("focus", { detail: index }));
|
263
265
|
}
|
264
266
|
|
265
|
-
blurHandle() {
|
267
|
+
blurHandle(): void {
|
266
268
|
this.lastFocus = undefined;
|
267
269
|
this._keydownEvent = this.events.remove(document, "keydown", this._keydownEvent);
|
270
|
+
this.dispatchEvent(new CustomEvent("blur"));
|
268
271
|
}
|
269
272
|
|
270
273
|
protected createKeydownEvent(index: number) {
|
271
274
|
if (!this.range) {
|
272
275
|
index = 0;
|
273
276
|
}
|
274
|
-
return (e: KeyboardEvent) => {
|
277
|
+
return (e: KeyboardEvent): void => {
|
275
278
|
if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
|
276
279
|
e.preventDefault();
|
277
|
-
this.createSetValue(index)(old => old - this.step);
|
280
|
+
this.createSetValue(index)((old) => old - this.step);
|
278
281
|
} else if (e.key === "ArrowRight" || e.key === "ArrowUp") {
|
279
282
|
e.preventDefault();
|
280
|
-
this.createSetValue(index)(old => old + this.step);
|
283
|
+
this.createSetValue(index)((old) => old + this.step);
|
281
284
|
}
|
282
285
|
};
|
283
286
|
}
|
284
287
|
|
285
288
|
createMouseDown(index: number) {
|
286
|
-
return (e: MouseEvent) => {
|
289
|
+
return (e: MouseEvent): void => {
|
287
290
|
this.focusHandle(index);
|
288
291
|
this.createMousedownListener(this.createSetValue(index))(e);
|
289
292
|
};
|
290
293
|
}
|
291
294
|
|
292
|
-
protected _handleMousedownEnd(e: MouseEvent) {
|
293
|
-
this.lastFocus = 0;
|
294
|
-
this.createMousedownListener(this.setEnd)(e);
|
295
|
-
this.focusHandle(0);
|
296
|
-
}
|
297
|
-
|
298
295
|
createSetValue(index: number) {
|
299
|
-
return (numberOrModifier: number | ((value: number) => number)) => {
|
300
|
-
const number =
|
301
|
-
|
302
|
-
|
296
|
+
return (numberOrModifier: number | ((value: number) => number)): void => {
|
297
|
+
const number =
|
298
|
+
typeof numberOrModifier === "number"
|
299
|
+
? this.normalizeValue(numberOrModifier)
|
300
|
+
: numberOrModifier(this.rangeValue[index]);
|
303
301
|
let newValue: any = number;
|
304
302
|
if (this.range) {
|
305
303
|
newValue = [...this.rangeValue];
|
306
304
|
newValue[index] = number;
|
307
305
|
}
|
308
306
|
this.value = newValue;
|
307
|
+
this.dispatchEvent(new CustomEvent("range", { detail: this.value }));
|
309
308
|
};
|
310
309
|
}
|
311
310
|
|
312
|
-
setEnd(value: number) {
|
313
|
-
this.createSetValue((this.value as any)?.length - 1 || 0)(value);
|
314
|
-
}
|
315
|
-
|
316
311
|
/**
|
317
312
|
* Compute value from event.
|
318
313
|
*/
|
319
|
-
protected _computeValue(e: MouseEvent) {
|
314
|
+
protected _computeValue(e: MouseEvent): number {
|
320
315
|
const rect = this._root.getBoundingClientRect();
|
321
316
|
const div = this.vertical ? (e.clientY - rect.top) / rect.height : (e.clientX - rect.left) / rect.width;
|
322
317
|
const value = Math.round((div * (this.max - this.min)) / this.step) * this.step;
|
@@ -326,20 +321,23 @@ class Range extends SuperInput {
|
|
326
321
|
/**
|
327
322
|
* Ensure that the values do not exceed the range of max and min.
|
328
323
|
*/
|
329
|
-
protected normalizeValue(value: number) {
|
330
|
-
if (value > this.max) {
|
331
|
-
|
324
|
+
protected normalizeValue(value: number): number {
|
325
|
+
if (value > this.max) {
|
326
|
+
value -= this.step;
|
327
|
+
} else if (value < this.min) {
|
328
|
+
value += this.step;
|
329
|
+
}
|
332
330
|
return value;
|
333
331
|
}
|
334
332
|
|
335
|
-
protected _handleMousedownRoot(e: MouseEvent) {
|
333
|
+
protected _handleMousedownRoot(e: MouseEvent): void {
|
336
334
|
const value = this._computeValue(e);
|
337
335
|
const index = this.range
|
338
336
|
? this.rangeValue.reduce((acc, item, index) => {
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
337
|
+
const diff = Math.abs(value - item);
|
338
|
+
const prevDiff = Math.abs(value - this.rangeValue[acc]);
|
339
|
+
return diff < prevDiff ? index : acc;
|
340
|
+
}, 0)
|
343
341
|
: 0;
|
344
342
|
|
345
343
|
const set = this.createSetValue(index);
|
@@ -349,7 +347,7 @@ class Range extends SuperInput {
|
|
349
347
|
}
|
350
348
|
|
351
349
|
protected createMousedownListener(mouseMoveCallback: (arg0: number) => void) {
|
352
|
-
return (e: MouseEvent) => {
|
350
|
+
return (e: MouseEvent): void => {
|
353
351
|
e.preventDefault();
|
354
352
|
e.stopPropagation();
|
355
353
|
const move = this.createMousemoveListener(mouseMoveCallback);
|
@@ -363,7 +361,7 @@ class Range extends SuperInput {
|
|
363
361
|
}
|
364
362
|
|
365
363
|
protected createMousemoveListener(callback: (arg0: number) => void) {
|
366
|
-
return (e: MouseEvent) => {
|
364
|
+
return (e: MouseEvent): void => {
|
367
365
|
const value = this._computeValue(e);
|
368
366
|
if (value > this.max || value < this.min) {
|
369
367
|
return;
|
@@ -372,7 +370,7 @@ class Range extends SuperInput {
|
|
372
370
|
};
|
373
371
|
}
|
374
372
|
|
375
|
-
protected _connectedInit() {
|
373
|
+
protected _connectedInit(): void {
|
376
374
|
const gap = this.max - this.min;
|
377
375
|
this.step ||= gap / 100;
|
378
376
|
if (isNil(this.value)) {
|
@@ -385,20 +383,21 @@ class Range extends SuperInput {
|
|
385
383
|
this.default ??= this.value;
|
386
384
|
}
|
387
385
|
|
388
|
-
reset() {
|
386
|
+
reset(): void {
|
389
387
|
this.value = this.default;
|
390
388
|
}
|
391
389
|
|
392
|
-
sort() {
|
393
|
-
return this.value = this.toSorted();
|
390
|
+
sort(): number | number[] {
|
391
|
+
return (this.value = this.toSorted());
|
394
392
|
}
|
395
393
|
|
396
|
-
toSorted() {
|
394
|
+
toSorted(): number | number[] {
|
397
395
|
if (this.range) {
|
398
|
-
return [...this.value as number[]].sort((a, b) => a - b);
|
396
|
+
return [...(this.value as number[])].sort((a, b) => a - b);
|
399
397
|
}
|
400
398
|
return this.value;
|
401
399
|
}
|
402
400
|
}
|
403
401
|
|
404
402
|
export default Range;
|
403
|
+
export { Range };
|
package/src/components/rotate.ts
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
import { godown } from "@godown/element
|
2
|
-
import {
|
3
|
-
import { styles } from "@godown/element/decorators/styles.js";
|
4
|
-
import { htmlSlot } from "@godown/element/directives/html-slot.js";
|
5
|
-
import { css, html } from "lit";
|
1
|
+
import { godown, htmlSlot, part, styles } from "@godown/element";
|
2
|
+
import { type TemplateResult, css, html } from "lit";
|
6
3
|
|
7
4
|
import { GlobalStyle, scopePrefix } from "../core/global-style.js";
|
8
5
|
|
@@ -15,8 +12,7 @@ const cssScope = scopePrefix(protoName);
|
|
15
12
|
* @category wrapper
|
16
13
|
*/
|
17
14
|
@godown(protoName)
|
18
|
-
@styles(
|
19
|
-
css`
|
15
|
+
@styles(css`
|
20
16
|
:host {
|
21
17
|
display: block;
|
22
18
|
width: -moz-fit-content;
|
@@ -42,28 +38,34 @@ const cssScope = scopePrefix(protoName);
|
|
42
38
|
margin: calc(-1 * var(${cssScope}--offset));
|
43
39
|
}
|
44
40
|
|
45
|
-
[part="slot"]{
|
41
|
+
[part="slot"] {
|
46
42
|
z-index: 2;
|
47
43
|
}
|
48
|
-
|
49
|
-
)
|
44
|
+
`)
|
50
45
|
class Rotate extends GlobalStyle {
|
51
46
|
@part("root")
|
52
47
|
protected _root: HTMLElement;
|
53
48
|
|
54
|
-
protected render() {
|
55
|
-
return html
|
56
|
-
<div part="
|
57
|
-
|
58
|
-
|
49
|
+
protected render(): TemplateResult<1> {
|
50
|
+
return html`
|
51
|
+
<div part="root">
|
52
|
+
<div
|
53
|
+
part="slot"
|
54
|
+
@mousemove="${this._handleRotate}"
|
55
|
+
>
|
56
|
+
${htmlSlot()}
|
57
|
+
</div>
|
58
|
+
<i @mouseleave="${this.reset}"></i>
|
59
|
+
</div>
|
60
|
+
`;
|
59
61
|
}
|
60
62
|
|
61
|
-
reset() {
|
63
|
+
reset(): void {
|
62
64
|
this._root.style.removeProperty("transform");
|
63
65
|
this._root.style.removeProperty("transition");
|
64
66
|
}
|
65
67
|
|
66
|
-
protected _handleRotate(e: MouseEvent) {
|
68
|
+
protected _handleRotate(e: MouseEvent): void {
|
67
69
|
const { rotateX, rotateY } = this._computeOffset(e);
|
68
70
|
this._root.style.setProperty("transform", `rotateX(${rotateX}rad) rotateY(${rotateY}rad)`);
|
69
71
|
this._root.style.setProperty("transition", "0s");
|
@@ -77,7 +79,10 @@ class Rotate extends GlobalStyle {
|
|
77
79
|
* @param e Mouse move event.
|
78
80
|
* @returns rotateX, rotateY
|
79
81
|
*/
|
80
|
-
_computeOffset(e: MouseEvent) {
|
82
|
+
_computeOffset(e: MouseEvent): {
|
83
|
+
rotateX: number;
|
84
|
+
rotateY: number;
|
85
|
+
} {
|
81
86
|
const { left, top, width, height } = this._root.getBoundingClientRect();
|
82
87
|
const { clientX, clientY } = e;
|
83
88
|
const offsetX = clientX - left;
|
@@ -90,3 +95,4 @@ class Rotate extends GlobalStyle {
|
|
90
95
|
}
|
91
96
|
|
92
97
|
export default Rotate;
|
98
|
+
export { Rotate };
|