godown 2.7.4 → 2.7.6
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 +18 -45
- package/{.deps.d.ts → _deps.d.ts} +1 -2
- package/{.deps.d.ts.map → _deps.d.ts.map} +1 -1
- package/{.deps.js → _deps.js} +1 -2
- package/_deps.js.map +1 -0
- package/alert.d.ts +8 -1
- package/alert.d.ts.map +1 -1
- package/alert.js +4 -1
- package/alert.js.map +1 -1
- package/avatar-group.d.ts +8 -1
- package/avatar-group.d.ts.map +1 -1
- package/avatar-group.js +4 -1
- package/avatar-group.js.map +1 -1
- package/avatar.d.ts +8 -1
- package/avatar.d.ts.map +1 -1
- package/avatar.js +4 -1
- package/avatar.js.map +1 -1
- package/button.d.ts +8 -1
- package/button.d.ts.map +1 -1
- package/button.js +4 -1
- package/button.js.map +1 -1
- package/card.d.ts +8 -1
- package/card.d.ts.map +1 -1
- package/card.js +4 -1
- package/card.js.map +1 -1
- package/carousel.d.ts +8 -1
- package/carousel.d.ts.map +1 -1
- package/carousel.js +4 -1
- package/carousel.js.map +1 -1
- package/components.json +194 -0
- package/conf.d.ts +6 -75
- package/conf.d.ts.map +1 -1
- package/conf.js +8 -34
- package/conf.js.map +1 -1
- package/decorators/godown.d.ts +4 -0
- package/decorators/godown.d.ts.map +1 -0
- package/decorators/godown.js +9 -0
- package/decorators/godown.js.map +1 -0
- package/decorators/part.d.ts +7 -0
- package/decorators/part.d.ts.map +1 -0
- package/decorators/part.js +8 -0
- package/decorators/part.js.map +1 -0
- package/decorators/styles.d.ts +3 -0
- package/decorators/styles.d.ts.map +1 -0
- package/decorators/styles.js +8 -0
- package/decorators/styles.js.map +1 -0
- package/details.d.ts +8 -1
- package/details.d.ts.map +1 -1
- package/details.js +4 -1
- package/details.js.map +1 -1
- package/dialog.d.ts +8 -1
- package/dialog.d.ts.map +1 -1
- package/dialog.js +4 -1
- package/dialog.js.map +1 -1
- package/divider.d.ts +8 -1
- package/divider.d.ts.map +1 -1
- package/divider.js +4 -1
- package/divider.js.map +1 -1
- package/dragbox.d.ts +8 -1
- package/dragbox.d.ts.map +1 -1
- package/dragbox.js +4 -1
- package/dragbox.js.map +1 -1
- package/flex-flow.d.ts +8 -1
- package/flex-flow.d.ts.map +1 -1
- package/flex-flow.js +4 -1
- package/flex-flow.js.map +1 -1
- package/form.d.ts +8 -1
- package/form.d.ts.map +1 -1
- package/form.js +4 -1
- package/form.js.map +1 -1
- package/grid-flow.d.ts +9 -0
- package/grid-flow.d.ts.map +1 -0
- package/grid-flow.js +5 -0
- package/grid-flow.js.map +1 -0
- package/index.d.ts +32 -3
- package/index.d.ts.map +1 -1
- package/index.js +32 -3
- package/index.js.map +1 -1
- package/input.d.ts +8 -1
- package/input.d.ts.map +1 -1
- package/input.js +4 -1
- package/input.js.map +1 -1
- package/label-input.d.ts +8 -1
- package/label-input.d.ts.map +1 -1
- package/label-input.js +4 -1
- package/label-input.js.map +1 -1
- package/layout.d.ts +9 -0
- package/layout.d.ts.map +1 -0
- package/layout.js +5 -0
- package/layout.js.map +1 -0
- package/lib/css.d.ts +13 -0
- package/lib/css.d.ts.map +1 -0
- package/lib/css.js +29 -0
- package/lib/css.js.map +1 -0
- package/lib/directives.d.ts +16 -20
- package/lib/directives.d.ts.map +1 -1
- package/lib/directives.js +33 -31
- package/lib/directives.js.map +1 -1
- package/lib/event-coll.d.ts +13 -0
- package/lib/event-coll.d.ts.map +1 -0
- package/lib/event-coll.js +45 -0
- package/lib/event-coll.js.map +1 -0
- package/lib/{templates.d.ts → icons.d.ts} +1 -17
- package/lib/icons.d.ts.map +1 -0
- package/lib/icons.js +73 -0
- package/lib/icons.js.map +1 -0
- package/lib/jsx.d.ts +4 -0
- package/lib/jsx.d.ts.map +1 -0
- package/lib/jsx.js +52 -0
- package/lib/jsx.js.map +1 -0
- package/lib/route-tree.d.ts +5 -5
- package/lib/route-tree.js +5 -5
- package/lib/route-tree.js.map +1 -1
- package/lib/utils.d.ts +6 -46
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +25 -110
- package/lib/utils.js.map +1 -1
- package/link.d.ts +9 -0
- package/link.d.ts.map +1 -0
- package/link.js +5 -0
- package/link.js.map +1 -0
- package/overbreath.d.ts +8 -1
- package/overbreath.d.ts.map +1 -1
- package/overbreath.js +4 -1
- package/overbreath.js.map +1 -1
- package/package.json +20 -25
- package/progress.d.ts +8 -1
- package/progress.d.ts.map +1 -1
- package/progress.js +4 -1
- package/progress.js.map +1 -1
- package/proto/godown-config.d.ts +41 -0
- package/proto/godown-config.d.ts.map +1 -0
- package/proto/godown-config.js +27 -0
- package/proto/godown-config.js.map +1 -0
- package/{godown-element.d.ts → proto/godown-element.d.ts} +48 -16
- package/proto/godown-element.d.ts.map +1 -0
- package/{godown-element.js → proto/godown-element.js} +82 -26
- package/proto/godown-element.js.map +1 -0
- package/proto/super-a.d.ts +30 -0
- package/proto/super-a.d.ts.map +1 -0
- package/proto/super-a.js +141 -0
- package/proto/super-a.js.map +1 -0
- package/proto/super-input.d.ts +44 -0
- package/proto/super-input.d.ts.map +1 -0
- package/proto/super-input.js +119 -0
- package/proto/super-input.js.map +1 -0
- package/proto/super-openable.d.ts +23 -0
- package/proto/super-openable.d.ts.map +1 -0
- package/proto/super-openable.js +43 -0
- package/proto/super-openable.js.map +1 -0
- package/range-input.d.ts +9 -0
- package/range-input.d.ts.map +1 -0
- package/range-input.js +5 -0
- package/range-input.js.map +1 -0
- package/react/create.d.ts.map +1 -1
- package/react/create.js +4 -1
- package/react/create.js.map +1 -1
- package/react/index.d.ts +64 -34
- package/react/index.d.ts.map +1 -1
- package/react/index.js +78 -51
- package/react/index.js.map +1 -1
- package/rotate.d.ts +9 -0
- package/rotate.d.ts.map +1 -0
- package/rotate.js +5 -0
- package/rotate.js.map +1 -0
- package/router-link.d.ts +9 -0
- package/router-link.d.ts.map +1 -0
- package/router-link.js +5 -0
- package/router-link.js.map +1 -0
- package/router.d.ts +8 -1
- package/router.d.ts.map +1 -1
- package/router.js +4 -1
- package/router.js.map +1 -1
- package/search-input.d.ts +8 -1
- package/search-input.d.ts.map +1 -1
- package/search-input.js +4 -1
- package/search-input.js.map +1 -1
- package/select-input.d.ts +8 -1
- package/select-input.d.ts.map +1 -1
- package/select-input.js +4 -1
- package/select-input.js.map +1 -1
- package/skeleton.d.ts +8 -1
- package/skeleton.d.ts.map +1 -1
- package/skeleton.js +4 -1
- package/skeleton.js.map +1 -1
- package/split-input.d.ts +8 -1
- package/split-input.d.ts.map +1 -1
- package/split-input.js +4 -1
- package/split-input.js.map +1 -1
- package/styles/colors/presets.d.ts +13 -0
- package/styles/colors/presets.d.ts.map +1 -0
- package/styles/colors/presets.js +6 -0
- package/styles/colors/presets.js.map +1 -0
- package/styles/colors/presetsRGB.d.ts +16 -0
- package/styles/colors/presetsRGB.d.ts.map +1 -0
- package/styles/colors/presetsRGB.js +134 -0
- package/styles/colors/presetsRGB.js.map +1 -0
- package/styles/global.d.ts +18 -0
- package/styles/global.d.ts.map +1 -0
- package/styles/global.js +78 -0
- package/styles/global.js.map +1 -0
- package/styles/inputStyle.d.ts +3 -0
- package/styles/inputStyle.d.ts.map +1 -0
- package/styles/inputStyle.js +59 -0
- package/styles/inputStyle.js.map +1 -0
- package/switch-input.d.ts +8 -1
- package/switch-input.d.ts.map +1 -1
- package/switch-input.js +4 -1
- package/switch-input.js.map +1 -1
- package/text.d.ts +8 -1
- package/text.d.ts.map +1 -1
- package/text.js +4 -1
- package/text.js.map +1 -1
- package/time.d.ts +8 -1
- package/time.d.ts.map +1 -1
- package/time.js +4 -1
- package/time.js.map +1 -1
- package/tooltip.d.ts +8 -1
- package/tooltip.d.ts.map +1 -1
- package/tooltip.js +4 -1
- package/tooltip.js.map +1 -1
- package/typewriter.d.ts +8 -1
- package/typewriter.d.ts.map +1 -1
- package/typewriter.js +4 -1
- package/typewriter.js.map +1 -1
- package/web-components/alert/alert.d.ts +2 -10
- package/web-components/alert/alert.d.ts.map +1 -1
- package/web-components/alert/alert.js +93 -91
- package/web-components/alert/alert.js.map +1 -1
- package/web-components/avatar/avatar-group.d.ts +21 -0
- package/web-components/avatar/avatar-group.d.ts.map +1 -0
- package/web-components/avatar/avatar-group.js +86 -0
- package/web-components/avatar/avatar-group.js.map +1 -0
- package/web-components/avatar/avatar.d.ts +5 -18
- package/web-components/avatar/avatar.d.ts.map +1 -1
- package/web-components/avatar/avatar.js +70 -85
- package/web-components/avatar/avatar.js.map +1 -1
- package/web-components/button/button.d.ts +10 -43
- package/web-components/button/button.d.ts.map +1 -1
- package/web-components/button/button.js +183 -226
- package/web-components/button/button.js.map +1 -1
- package/web-components/card/card.d.ts +2 -27
- package/web-components/card/card.d.ts.map +1 -1
- package/web-components/card/card.js +57 -132
- package/web-components/card/card.js.map +1 -1
- package/web-components/carousel/carousel.d.ts +5 -16
- package/web-components/carousel/carousel.d.ts.map +1 -1
- package/web-components/carousel/carousel.js +102 -106
- package/web-components/carousel/carousel.js.map +1 -1
- package/web-components/details/details.d.ts +4 -15
- package/web-components/details/details.d.ts.map +1 -1
- package/web-components/details/details.js +91 -97
- package/web-components/details/details.js.map +1 -1
- package/web-components/dialog/dialog.d.ts +6 -17
- package/web-components/dialog/dialog.d.ts.map +1 -1
- package/web-components/dialog/dialog.js +87 -137
- package/web-components/dialog/dialog.js.map +1 -1
- package/web-components/divider/divider.d.ts +13 -0
- package/web-components/divider/divider.d.ts.map +1 -0
- package/web-components/divider/divider.js +95 -0
- package/web-components/divider/divider.js.map +1 -0
- package/web-components/form/form.d.ts +15 -22
- package/web-components/form/form.d.ts.map +1 -1
- package/web-components/form/form.js +47 -117
- package/web-components/form/form.js.map +1 -1
- package/web-components/input/input.d.ts +5 -18
- package/web-components/input/input.d.ts.map +1 -1
- package/web-components/input/input.js +74 -169
- package/web-components/input/input.js.map +1 -1
- package/web-components/input/label-input.d.ts +5 -19
- package/web-components/input/label-input.d.ts.map +1 -1
- package/web-components/input/label-input.js +74 -141
- package/web-components/input/label-input.js.map +1 -1
- package/web-components/input/range-input.d.ts +53 -0
- package/web-components/input/range-input.d.ts.map +1 -0
- package/web-components/input/range-input.js +316 -0
- package/web-components/input/range-input.js.map +1 -0
- package/web-components/input/search-input.d.ts +4 -12
- package/web-components/input/search-input.d.ts.map +1 -1
- package/web-components/input/search-input.js +118 -113
- package/web-components/input/search-input.js.map +1 -1
- package/web-components/input/select-input.d.ts +17 -32
- package/web-components/input/select-input.d.ts.map +1 -1
- package/web-components/input/select-input.js +154 -286
- package/web-components/input/select-input.js.map +1 -1
- package/web-components/input/split-input.d.ts +8 -15
- package/web-components/input/split-input.d.ts.map +1 -1
- package/web-components/input/split-input.js +82 -72
- package/web-components/input/split-input.js.map +1 -1
- package/web-components/input/switch-input.d.ts +8 -17
- package/web-components/input/switch-input.d.ts.map +1 -1
- package/web-components/input/switch-input.js +122 -158
- package/web-components/input/switch-input.js.map +1 -1
- package/web-components/layout/flex-flow.d.ts +11 -19
- package/web-components/layout/flex-flow.d.ts.map +1 -1
- package/web-components/layout/flex-flow.js +57 -35
- package/web-components/layout/flex-flow.js.map +1 -1
- package/web-components/layout/grid-flow.d.ts +14 -0
- package/web-components/layout/grid-flow.d.ts.map +1 -0
- package/web-components/layout/grid-flow.js +56 -0
- package/web-components/layout/grid-flow.js.map +1 -0
- package/web-components/layout/layout.d.ts +18 -0
- package/web-components/layout/layout.d.ts.map +1 -0
- package/web-components/layout/layout.js +76 -0
- package/web-components/layout/layout.js.map +1 -0
- package/web-components/link/link.d.ts +10 -0
- package/web-components/link/link.d.ts.map +1 -0
- package/web-components/link/link.js +17 -0
- package/web-components/link/link.js.map +1 -0
- package/web-components/link/router-link.d.ts +19 -0
- package/web-components/link/router-link.d.ts.map +1 -0
- package/web-components/link/router-link.js +60 -0
- package/web-components/link/router-link.js.map +1 -0
- package/web-components/progress/progress.d.ts +2 -12
- package/web-components/progress/progress.d.ts.map +1 -1
- package/web-components/progress/progress.js +52 -48
- package/web-components/progress/progress.js.map +1 -1
- package/web-components/router/router.d.ts +15 -21
- package/web-components/router/router.d.ts.map +1 -1
- package/web-components/router/router.js +35 -37
- package/web-components/router/router.js.map +1 -1
- package/web-components/skeleton/skeleton.d.ts +5 -12
- package/web-components/skeleton/skeleton.d.ts.map +1 -1
- package/web-components/skeleton/skeleton.js +90 -98
- package/web-components/skeleton/skeleton.js.map +1 -1
- package/web-components/text/overbreath.d.ts +15 -20
- package/web-components/text/overbreath.d.ts.map +1 -1
- package/web-components/text/overbreath.js +108 -202
- package/web-components/text/overbreath.js.map +1 -1
- package/web-components/text/text.d.ts +5 -18
- package/web-components/text/text.d.ts.map +1 -1
- package/web-components/text/text.js +70 -80
- package/web-components/text/text.js.map +1 -1
- package/web-components/text/time.d.ts +5 -14
- package/web-components/text/time.d.ts.map +1 -1
- package/web-components/text/time.js +32 -31
- package/web-components/text/time.js.map +1 -1
- package/web-components/text/typewriter.d.ts +3 -11
- package/web-components/text/typewriter.d.ts.map +1 -1
- package/web-components/text/typewriter.js +42 -40
- package/web-components/text/typewriter.js.map +1 -1
- package/web-components/tooltip/tooltip.d.ts +21 -17
- package/web-components/tooltip/tooltip.d.ts.map +1 -1
- package/web-components/tooltip/tooltip.js +98 -60
- package/web-components/tooltip/tooltip.js.map +1 -1
- package/web-components/wrapper/dragbox.d.ts +5 -10
- package/web-components/wrapper/dragbox.d.ts.map +1 -1
- package/web-components/wrapper/dragbox.js +40 -31
- package/web-components/wrapper/dragbox.js.map +1 -1
- package/web-components/wrapper/rotate.d.ts +30 -0
- package/web-components/wrapper/rotate.d.ts.map +1 -0
- package/web-components/wrapper/rotate.js +92 -0
- package/web-components/wrapper/rotate.js.map +1 -0
- package/.deps.js.map +0 -1
- package/a.d.ts +0 -2
- package/a.d.ts.map +0 -1
- package/a.js +0 -2
- package/a.js.map +0 -1
- package/clip.d.ts +0 -2
- package/clip.d.ts.map +0 -1
- package/clip.js +0 -2
- package/clip.js.map +0 -1
- package/decorators/define.d.ts +0 -7
- package/decorators/define.d.ts.map +0 -1
- package/decorators/define.js +0 -11
- package/decorators/define.js.map +0 -1
- package/details-group.d.ts +0 -2
- package/details-group.d.ts.map +0 -1
- package/details-group.js +0 -2
- package/details-group.js.map +0 -1
- package/godown-element.d.ts.map +0 -1
- package/godown-element.js.map +0 -1
- package/lib/event-collection.d.ts +0 -14
- package/lib/event-collection.d.ts.map +0 -1
- package/lib/event-collection.js +0 -71
- package/lib/event-collection.js.map +0 -1
- package/lib/templates.d.ts.map +0 -1
- package/lib/templates.js +0 -76
- package/lib/templates.js.map +0 -1
- package/naming.d.ts +0 -91
- package/naming.d.ts.map +0 -1
- package/naming.js +0 -67
- package/naming.js.map +0 -1
- package/nav-layout.d.ts +0 -2
- package/nav-layout.d.ts.map +0 -1
- package/nav-layout.js +0 -2
- package/nav-layout.js.map +0 -1
- package/open-offset.d.ts +0 -2
- package/open-offset.d.ts.map +0 -1
- package/open-offset.js +0 -2
- package/open-offset.js.map +0 -1
- package/router-a.d.ts +0 -2
- package/router-a.d.ts.map +0 -1
- package/router-a.js +0 -2
- package/router-a.js.map +0 -1
- package/supers/anchor.d.ts +0 -26
- package/supers/anchor.d.ts.map +0 -1
- package/supers/anchor.js +0 -124
- package/supers/anchor.js.map +0 -1
- package/supers/input.d.ts +0 -28
- package/supers/input.d.ts.map +0 -1
- package/supers/input.js +0 -117
- package/supers/input.js.map +0 -1
- package/supers/openable.d.ts +0 -38
- package/supers/openable.d.ts.map +0 -1
- package/supers/openable.js +0 -77
- package/supers/openable.js.map +0 -1
- package/supers/root.d.ts +0 -18
- package/supers/root.d.ts.map +0 -1
- package/supers/root.js +0 -76
- package/supers/root.js.map +0 -1
- package/tabs.d.ts +0 -2
- package/tabs.d.ts.map +0 -1
- package/tabs.js +0 -2
- package/tabs.js.map +0 -1
- package/web-components/a/a.d.ts +0 -16
- package/web-components/a/a.d.ts.map +0 -1
- package/web-components/a/a.js +0 -17
- package/web-components/a/a.js.map +0 -1
- package/web-components/group/avatar-group.d.ts +0 -29
- package/web-components/group/avatar-group.d.ts.map +0 -1
- package/web-components/group/avatar-group.js +0 -88
- package/web-components/group/avatar-group.js.map +0 -1
- package/web-components/group/details-group.d.ts +0 -28
- package/web-components/group/details-group.d.ts.map +0 -1
- package/web-components/group/details-group.js +0 -59
- package/web-components/group/details-group.js.map +0 -1
- package/web-components/index.d.ts +0 -35
- package/web-components/index.d.ts.map +0 -1
- package/web-components/index.js +0 -35
- package/web-components/index.js.map +0 -1
- package/web-components/layout/divider.d.ts +0 -22
- package/web-components/layout/divider.d.ts.map +0 -1
- package/web-components/layout/divider.js +0 -85
- package/web-components/layout/divider.js.map +0 -1
- package/web-components/layout/nav-layout.d.ts +0 -38
- package/web-components/layout/nav-layout.d.ts.map +0 -1
- package/web-components/layout/nav-layout.js +0 -69
- package/web-components/layout/nav-layout.js.map +0 -1
- package/web-components/offset/open-offset.d.ts +0 -27
- package/web-components/offset/open-offset.d.ts.map +0 -1
- package/web-components/offset/open-offset.js +0 -130
- package/web-components/offset/open-offset.js.map +0 -1
- package/web-components/router/router-a.d.ts +0 -25
- package/web-components/router/router-a.d.ts.map +0 -1
- package/web-components/router/router-a.js +0 -70
- package/web-components/router/router-a.js.map +0 -1
- package/web-components/tabs/tabs.d.ts +0 -52
- package/web-components/tabs/tabs.d.ts.map +0 -1
- package/web-components/tabs/tabs.js +0 -165
- package/web-components/tabs/tabs.js.map +0 -1
- package/web-components/text/clip.d.ts +0 -22
- package/web-components/text/clip.d.ts.map +0 -1
- package/web-components/text/clip.js +0 -45
- package/web-components/text/clip.js.map +0 -1
- package/web-components/wrapper/wrapper.d.ts +0 -27
- package/web-components/wrapper/wrapper.d.ts.map +0 -1
- package/web-components/wrapper/wrapper.js +0 -95
- package/web-components/wrapper/wrapper.js.map +0 -1
- package/wrapper.d.ts +0 -2
- package/wrapper.d.ts.map +0 -1
- package/wrapper.js +0 -2
- package/wrapper.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/avatar/avatar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/avatar/avatar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAExC;;GAEG;AA+CI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,YAAY;IAAjC;;QAKL;;WAEG;QACS,YAAO,GAAW,SAAS,CAAC;QACxC;;WAEG;QACS,SAAI,GAAG,SAAS,CAAC;QAC7B;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IA2BxB,CAAC;IAzBW,MAAM;QACd,OAAO,IAAI,CAAA,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3G,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAA,0BAA0B,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC;QACnG,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAA,qBAAqB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACzD,CAAC;QACD,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,CAAa;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,MAA2B,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;CACF,CAAA;AAvCa;IAAX,QAAQ,EAAE;mCAAgC;AAI/B;IAAX,QAAQ,EAAE;uCAA6B;AAI5B;IAAX,QAAQ,EAAE;oCAAkB;AAIjB;IAAX,QAAQ,EAAE;oCAAW;AAhBX,MAAM;IA9ClB,MAAM,CAAC,SAAS,CAAC;IACjB,MAAM,CAAC;QACN,GAAG,CAAA;;UAEK,QAAQ;;;;;;;;;;;;;;;;qBAgBG,QAAQ;sBACP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAuB3B;KACF,CAAC;GACW,MAAM,CA2ClB;;AAED,eAAe,MAAM,CAAC;AAEtB,mBAAmB;AACnB,sCAAsC;AACtC,gCAAgC;AAChC,MAAM;AACN,IAAI","sourcesContent":["import { css, html, ifDefined, property } from \"../../_deps.js\";\nimport { godown } from \"../../decorators/godown.js\";\nimport { styles } from \"../../decorators/styles.js\";\nimport { htmlSlot } from \"../../lib/directives.js\";\nimport GodownAnchor from \"../../proto/super-a.js\";\nimport { createScope } from \"../../styles/global.js\";\n\nconst protoName = \"avatar\";\nconst cssScope = createScope(protoName);\n\n/**\n * {@linkcode Avatar} renders the avatar or name and has a href.\n */\n@godown(protoName)\n@styles([\n css`\n :host {\n --${cssScope}--avatar-size: 2.4em;\n display: inline-block;\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n a {\n display: block;\n color: inherit;\n overflow: hidden;\n position: relative;\n border-radius: inherit;\n width: var(--${cssScope}--avatar-size);\n height: var(--${cssScope}--avatar-size);\n }\n\n span {\n position: absolute;\n width: 100%;\n }\n\n a,\n [part=\"name\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n [part=\"mask\"] {\n position: absolute;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n `,\n])\nexport class Avatar extends GodownAnchor {\n /**\n * Image src.\n */\n @property() src: string | undefined | null;\n /**\n * Default image src.\n */\n @property() default: string = undefined;\n /**\n * Link href.\n */\n @property() href = undefined;\n /**\n * If the image is not available, the {@linkcode Avatar.format} will be displayed.\n */\n @property() name = \"\";\n\n protected render() {\n return html`<a part=\"root\" href=\"${ifDefined(this.href)}\"> ${this.renderAva()} ${htmlSlot(\"mask\")}</a> `;\n }\n\n private renderAva() {\n if (this.src) {\n return html`<img part=\"image\" src=\"${this.src}\" @error=${this.imgOnError} alt=\"${this.name}\" />`;\n }\n if (this.name) {\n return html`<span part=\"name\">${this.format()}</span>`;\n }\n return htmlSlot();\n }\n\n format(): string {\n return this.name;\n }\n\n imgOnError(e: ErrorEvent) {\n if (this.default) {\n (e.target as HTMLImageElement).src = this.default;\n } else {\n this.src = undefined;\n }\n }\n}\n\nexport default Avatar;\n\n// declare global {\n// interface HTMLElementTagNameMap {\n// [\"godown-avatar\"]: Avatar\n// }\n// }\n"]}
|
@@ -1,15 +1,5 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
declare const colors: {
|
4
|
-
black: string[];
|
5
|
-
gary: string[];
|
6
|
-
white: string[];
|
7
|
-
red: string[];
|
8
|
-
green: string[];
|
9
|
-
blue: string[];
|
10
|
-
yellow: string[];
|
11
|
-
};
|
12
|
-
type Colors = keyof typeof colors;
|
1
|
+
import { GodownElement } from "../../proto/godown-element.js";
|
2
|
+
declare const colors: Record<"teal" | "blue" | "green" | "red" | "purple" | "orange" | "yellow" | "pink" | "black" | "gray" | "white", string>;
|
13
3
|
/**
|
14
4
|
* {@linkcode Button}.
|
15
5
|
*
|
@@ -31,47 +21,24 @@ export declare class Button extends GodownElement {
|
|
31
21
|
/**
|
32
22
|
* Enables rounded corners to appear capsule shaped.
|
33
23
|
*/
|
34
|
-
|
24
|
+
round: boolean;
|
35
25
|
/**
|
36
26
|
* The primary color.
|
37
27
|
*/
|
38
|
-
color: "none" |
|
28
|
+
color: "none" | keyof typeof colors;
|
39
29
|
/**
|
40
30
|
* Text inside.
|
41
31
|
*/
|
42
32
|
text: string;
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
protected render(): HTMLTemplate;
|
33
|
+
_modalRoot: HTMLElement;
|
34
|
+
_root: HTMLElement;
|
35
|
+
protected render(): import("lit").TemplateResult<1>;
|
47
36
|
focus(): void;
|
48
37
|
blur(): void;
|
49
|
-
|
50
|
-
protected _handleModal(e: MouseEvent): void;
|
38
|
+
firstUpdated(): void;
|
51
39
|
protected _handelClick(e: MouseEvent): void;
|
52
|
-
|
53
|
-
|
54
|
-
*
|
55
|
-
* @returns New color.
|
56
|
-
*
|
57
|
-
* Colors can be set for different states.
|
58
|
-
*
|
59
|
-
* The matching selector is `[color=COLOR]`.
|
60
|
-
*
|
61
|
-
* @example
|
62
|
-
* ```ts
|
63
|
-
* button.adoptStyles("[color=COLOR1]{...}")
|
64
|
-
* button.adoptStyles("[color=COLOR2]{...}")
|
65
|
-
* button.nextColor = () => state ? COLOR1 : COLOR2
|
66
|
-
* ```
|
67
|
-
*/
|
68
|
-
nextColor(): Colors | string;
|
40
|
+
protected _handleModal(e: MouseEvent): void;
|
41
|
+
nextColor(): "teal" | "blue" | "green" | "red" | "purple" | "orange" | "yellow" | "pink" | "none" | "black" | "gray" | "white";
|
69
42
|
}
|
70
43
|
export default Button;
|
71
|
-
declare global {
|
72
|
-
interface HTMLElementTagNameMap {
|
73
|
-
"base-button": Button;
|
74
|
-
"g-button": Button;
|
75
|
-
}
|
76
|
-
}
|
77
44
|
//# sourceMappingURL=button.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,QAAA,MAAM,MAAM,0HA4DX,CAAC;AAEF;;;;GAIG;AACH,qBAgGa,MAAO,SAAQ,aAAa;IACvC;;OAEG;IACyC,QAAQ,EAAE,OAAO,CAAC;IAC9D;;OAEG;IACyC,KAAK,EAAE,OAAO,CAAC;IAC3D;;OAEG;IACyC,MAAM,EAAE,OAAO,CAAC;IAC5D;;OAEG;IACyC,KAAK,EAAE,OAAO,CAAC;IAC3D;;OAEG;IAC0B,KAAK,EAAE,MAAM,GAAG,MAAM,OAAO,MAAM,CAAW;IAC3E;;OAEG;IACS,IAAI,EAAE,MAAM,CAAC;IAEL,UAAU,EAAE,WAAW,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;IAEjC,SAAS,CAAC,MAAM;IAWhB,KAAK;IAOL,IAAI;IAIJ,YAAY;IAIZ,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IASpC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAepC,SAAS;CAGV;AAED,eAAe,MAAM,CAAC"}
|
@@ -1,62 +1,73 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import { css, html, property
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
const
|
11
|
-
const
|
12
|
-
const
|
13
|
-
const
|
14
|
-
const
|
15
|
-
const vars = ["color", "background", "box-shadow", "ghost-color"];
|
16
|
-
const colors = {
|
2
|
+
import { css, html, property } from "../../_deps.js";
|
3
|
+
import { godown } from "../../decorators/godown.js";
|
4
|
+
import { part } from "../../decorators/part.js";
|
5
|
+
import { styles } from "../../decorators/styles.js";
|
6
|
+
import { constructCSSObject } from "../../lib/css.js";
|
7
|
+
import { htmlSlot, htmlStyle } from "../../lib/directives.js";
|
8
|
+
import { GodownElement } from "../../proto/godown-element.js";
|
9
|
+
import { colorValues, createScope } from "../../styles/global.js";
|
10
|
+
const protoName = "button";
|
11
|
+
const cssScope = createScope(protoName);
|
12
|
+
const whiteFont = colorValues.lightgray[0];
|
13
|
+
const blackFont = colorValues.darkgray[6];
|
14
|
+
const colors = constructCSSObject(["color", "background", "gradients"].map((k) => `--${cssScope}--${k}`), {
|
17
15
|
black: [
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
"rgb(22 20 20)",
|
16
|
+
whiteFont, // color
|
17
|
+
colorValues.darkgray[7], // background
|
18
|
+
colorValues.darkgray[4], // gradients
|
22
19
|
],
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
"rgb(56 56 56)",
|
20
|
+
gray: [
|
21
|
+
whiteFont, // color
|
22
|
+
colorValues.darkgray[1], // background
|
23
|
+
colorValues.lightgray[8], // gradients
|
28
24
|
],
|
29
25
|
white: [
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
"rgb(212 212 212)",
|
26
|
+
blackFont, // color
|
27
|
+
colorValues.lightgray[3], // background
|
28
|
+
colorValues.lightgray[0], // gradients
|
34
29
|
],
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
"rgb(214 11 23)",
|
30
|
+
blue: [
|
31
|
+
whiteFont, // color
|
32
|
+
colorValues.blue[6], // background
|
33
|
+
colorValues.blue[4], // gradients
|
40
34
|
],
|
41
35
|
green: [
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
"rgb(60 214 68)",
|
36
|
+
whiteFont, // color
|
37
|
+
colorValues.green[6], // background
|
38
|
+
colorValues.green[4], // gradients
|
46
39
|
],
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
40
|
+
red: [
|
41
|
+
whiteFont, // color
|
42
|
+
colorValues.red[6], // background
|
43
|
+
colorValues.red[4], // gradients
|
44
|
+
],
|
45
|
+
orange: [
|
46
|
+
whiteFont, // color
|
47
|
+
colorValues.orange[6], // background
|
48
|
+
colorValues.orange[4], // gradients
|
49
|
+
],
|
50
|
+
pink: [
|
51
|
+
whiteFont, // color
|
52
|
+
colorValues.pink[6], // background
|
53
|
+
colorValues.pink[4], // gradients
|
54
|
+
],
|
55
|
+
purple: [
|
56
|
+
whiteFont, // color
|
57
|
+
colorValues.purple[6], // background
|
58
|
+
colorValues.purple[4], // gradients
|
52
59
|
],
|
53
60
|
yellow: [
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
"rgb(255 235 59)",
|
61
|
+
blackFont, // color
|
62
|
+
colorValues.yellow[6], // background
|
63
|
+
colorValues.yellow[4], // gradients
|
58
64
|
],
|
59
|
-
|
65
|
+
teal: [
|
66
|
+
whiteFont, // color
|
67
|
+
colorValues.teal[6], // background
|
68
|
+
colorValues.teal[4], //gradients
|
69
|
+
],
|
70
|
+
}, () => `:host`);
|
60
71
|
/**
|
61
72
|
* {@linkcode Button}.
|
62
73
|
*
|
@@ -65,37 +76,19 @@ const colors = {
|
|
65
76
|
let Button = class Button extends GodownElement {
|
66
77
|
constructor() {
|
67
78
|
super(...arguments);
|
68
|
-
/**
|
69
|
-
* Whether to disable this element.
|
70
|
-
*/
|
71
|
-
this.disabled = false;
|
72
|
-
/**
|
73
|
-
* Invert font and background color.
|
74
|
-
*/
|
75
|
-
this.ghost = false;
|
76
|
-
/**
|
77
|
-
* Whether this element is active or not.
|
78
|
-
*/
|
79
|
-
this.active = false;
|
80
|
-
/**
|
81
|
-
* Enables rounded corners to appear capsule shaped.
|
82
|
-
*/
|
83
|
-
this.radius = false;
|
84
79
|
/**
|
85
80
|
* The primary color.
|
86
81
|
*/
|
87
82
|
this.color = "black";
|
88
|
-
/**
|
89
|
-
* Text inside.
|
90
|
-
*/
|
91
|
-
this.text = "";
|
92
83
|
}
|
93
84
|
render() {
|
85
|
+
const color = this.nextColor();
|
94
86
|
return html `
|
95
|
-
<div
|
96
|
-
<
|
97
|
-
<
|
87
|
+
<div part="root">
|
88
|
+
<span part="modal-root"></span>
|
89
|
+
<div part="slot">${this.text || htmlSlot()}</div>
|
98
90
|
</div>
|
91
|
+
${htmlStyle(colors[color])}
|
99
92
|
`;
|
100
93
|
}
|
101
94
|
focus() {
|
@@ -108,165 +101,34 @@ let Button = class Button extends GodownElement {
|
|
108
101
|
this.active = false;
|
109
102
|
}
|
110
103
|
firstUpdated() {
|
111
|
-
this.addEvent(
|
112
|
-
}
|
113
|
-
_handleModal(e) {
|
114
|
-
const a = this._div.offsetHeight + 1;
|
115
|
-
const b = this._div.offsetWidth + 1;
|
116
|
-
const size = `${Math.sqrt(a * a + b * b) * 2}px`;
|
117
|
-
const translate = `translate(calc(-50% + ${e.offsetX}px), calc(-50% + ${e.offsetY}px))`;
|
118
|
-
this._b.style.width = size;
|
119
|
-
this._b.style.height = size;
|
120
|
-
this._b.style.transform = translate;
|
121
|
-
const i = document.createElement("i");
|
122
|
-
i.style.animationName = "i";
|
123
|
-
this._b.appendChild(i);
|
124
|
-
setTimeout(() => {
|
125
|
-
i.remove();
|
126
|
-
}, 2000);
|
104
|
+
this.addEvent(this, "click", this._handelClick, true);
|
127
105
|
}
|
128
106
|
_handelClick(e) {
|
129
107
|
if (this.disabled) {
|
108
|
+
e.stopPropagation();
|
109
|
+
e.preventDefault();
|
130
110
|
return;
|
131
111
|
}
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
112
|
+
this._handleModal(e);
|
113
|
+
}
|
114
|
+
_handleModal(e) {
|
115
|
+
const modal = document.createElement("i");
|
116
|
+
const rect = this.getBoundingClientRect();
|
117
|
+
const h = rect.height;
|
118
|
+
const w = rect.width;
|
119
|
+
const size = `${Math.sqrt(h * h + w * w) * 2}px`;
|
120
|
+
modal.style.height = size;
|
121
|
+
modal.style.width = size;
|
122
|
+
modal.style.left = `${e.clientX - rect.left}px`;
|
123
|
+
modal.style.top = `${e.clientY - rect.y}px`;
|
124
|
+
modal.style.animationName = "kf";
|
125
|
+
this._modalRoot.appendChild(modal);
|
126
|
+
modal.addEventListener("animationend", () => modal.remove(), { once: true });
|
139
127
|
}
|
140
|
-
/**
|
141
|
-
* Get the color to render, default is this.color.
|
142
|
-
*
|
143
|
-
* @returns New color.
|
144
|
-
*
|
145
|
-
* Colors can be set for different states.
|
146
|
-
*
|
147
|
-
* The matching selector is `[color=COLOR]`.
|
148
|
-
*
|
149
|
-
* @example
|
150
|
-
* ```ts
|
151
|
-
* button.adoptStyles("[color=COLOR1]{...}")
|
152
|
-
* button.adoptStyles("[color=COLOR2]{...}")
|
153
|
-
* button.nextColor = () => state ? COLOR1 : COLOR2
|
154
|
-
* ```
|
155
|
-
*/
|
156
128
|
nextColor() {
|
157
129
|
return this.color;
|
158
130
|
}
|
159
131
|
};
|
160
|
-
Button.styles = [
|
161
|
-
unsafeCSS(constructCSS(vars, colors, (raw) => `[color=${raw}]`, (k, v) => `${cssvarScope}--${k}:${v}`)),
|
162
|
-
css `
|
163
|
-
:host {
|
164
|
-
${cssvarScope}--padding: .05em .25em;
|
165
|
-
${cssvarScope}--deg: 45deg;
|
166
|
-
${cssvarScope}--ghost-width: .09em;
|
167
|
-
${cssvarScope}--modal-opacity: .15;
|
168
|
-
${cssvarScope}--modal-opacity-end: 0;
|
169
|
-
${cssvarScope}--modal-animation-duration: 1s;
|
170
|
-
${cssvarScope}--focus-scale: .975;
|
171
|
-
transition: 0.1s;
|
172
|
-
display: flex;
|
173
|
-
width: fit-content;
|
174
|
-
border-radius: 0.25em;
|
175
|
-
cursor: pointer;
|
176
|
-
background: none !important;
|
177
|
-
}
|
178
|
-
|
179
|
-
:host([disabled]) {
|
180
|
-
cursor: not-allowed;
|
181
|
-
}
|
182
|
-
|
183
|
-
:host(:active) {
|
184
|
-
scale: var(${cssvarScope}--focus-scale);
|
185
|
-
}
|
186
|
-
|
187
|
-
div {
|
188
|
-
background: var(${cssvarScope}--background);
|
189
|
-
box-shadow: var(${cssvarScope}--box-shadow);
|
190
|
-
color: var(${cssvarScope}--color, inherit);
|
191
|
-
width: 100%;
|
192
|
-
height: 100%;
|
193
|
-
position: relative;
|
194
|
-
overflow: hidden;
|
195
|
-
border-radius: inherit;
|
196
|
-
transition-duration: inherit;
|
197
|
-
transition-property: scale;
|
198
|
-
pointer-events: none;
|
199
|
-
box-sizing: border-box;
|
200
|
-
}
|
201
|
-
|
202
|
-
b {
|
203
|
-
pointer-events: none;
|
204
|
-
transform: translate(-50%, -50%);
|
205
|
-
position: absolute;
|
206
|
-
visibility: hidden;
|
207
|
-
}
|
208
|
-
|
209
|
-
p {
|
210
|
-
padding: var(${cssvarScope}--padding);
|
211
|
-
margin: 0;
|
212
|
-
user-select: none;
|
213
|
-
transition: none;
|
214
|
-
}
|
215
|
-
|
216
|
-
:host([ghost]) p {
|
217
|
-
background-image: var(${cssvarScope}--background);
|
218
|
-
margin: calc(-1 * var(${cssvarScope}--ghost-width));
|
219
|
-
background-clip: text;
|
220
|
-
-webkit-background-clip: text;
|
221
|
-
color: transparent;
|
222
|
-
}
|
223
|
-
|
224
|
-
:host([ghost]) div {
|
225
|
-
background: transparent;
|
226
|
-
border: var(${cssvarScope}--ghost-width) solid var(${cssvarScope}--ghost-color);
|
227
|
-
}
|
228
|
-
|
229
|
-
:host([radius]) {
|
230
|
-
border-radius: calc(infinity * 1px);
|
231
|
-
${cssvarScope}--padding: .075em .5em;
|
232
|
-
}
|
233
|
-
`,
|
234
|
-
css `
|
235
|
-
i {
|
236
|
-
position: absolute;
|
237
|
-
top: 0;
|
238
|
-
left: 0;
|
239
|
-
right: 0;
|
240
|
-
bottom: 0;
|
241
|
-
width: 100%;
|
242
|
-
height: 100%;
|
243
|
-
pointer-events: none;
|
244
|
-
border-radius: 50%;
|
245
|
-
transform: translate(0, 0);
|
246
|
-
background: currentColor;
|
247
|
-
opacity: var(${cssvarScope}--modal-opacity-end);
|
248
|
-
visibility: visible;
|
249
|
-
animation-duration: min(var(${cssvarScope}--modal-animation-duration), 2s);
|
250
|
-
}
|
251
|
-
|
252
|
-
:host([ghost]) i {
|
253
|
-
background: var(${cssvarScope}--ghost-color);
|
254
|
-
}
|
255
|
-
|
256
|
-
@keyframes i {
|
257
|
-
0% {
|
258
|
-
transform: scale(0);
|
259
|
-
opacity: var(${cssvarScope}--modal-opacity);
|
260
|
-
}
|
261
|
-
80% {
|
262
|
-
transform: scale(1);
|
263
|
-
}
|
264
|
-
100% {
|
265
|
-
opacity: var(${cssvarScope}--modal-opacity-end);
|
266
|
-
}
|
267
|
-
}
|
268
|
-
`,
|
269
|
-
];
|
270
132
|
__decorate([
|
271
133
|
property({ type: Boolean, reflect: true })
|
272
134
|
], Button.prototype, "disabled", void 0);
|
@@ -278,21 +140,116 @@ __decorate([
|
|
278
140
|
], Button.prototype, "active", void 0);
|
279
141
|
__decorate([
|
280
142
|
property({ type: Boolean, reflect: true })
|
281
|
-
], Button.prototype, "
|
143
|
+
], Button.prototype, "round", void 0);
|
282
144
|
__decorate([
|
283
|
-
property()
|
145
|
+
property({ reflect: true })
|
284
146
|
], Button.prototype, "color", void 0);
|
285
147
|
__decorate([
|
286
148
|
property()
|
287
149
|
], Button.prototype, "text", void 0);
|
288
150
|
__decorate([
|
289
|
-
|
290
|
-
], Button.prototype, "
|
151
|
+
part("modal-root")
|
152
|
+
], Button.prototype, "_modalRoot", void 0);
|
291
153
|
__decorate([
|
292
|
-
|
293
|
-
], Button.prototype, "
|
154
|
+
part("root")
|
155
|
+
], Button.prototype, "_root", void 0);
|
294
156
|
Button = __decorate([
|
295
|
-
|
157
|
+
godown(protoName),
|
158
|
+
styles([
|
159
|
+
css `
|
160
|
+
:host(:not([disabled]):active) {
|
161
|
+
transform: scale(var(--${cssScope}--focus-scale));
|
162
|
+
}
|
163
|
+
|
164
|
+
:host([round]) {
|
165
|
+
--${cssScope}--padding-x: .75em;
|
166
|
+
border-radius: calc(infinity * 1px);
|
167
|
+
}
|
168
|
+
|
169
|
+
:host([disabled]) {
|
170
|
+
cursor: not-allowed;
|
171
|
+
filter: brightness(0.85);
|
172
|
+
}
|
173
|
+
|
174
|
+
:host([ghost]) {
|
175
|
+
--${cssScope}--modal-background: var(--${cssScope}--ghost-color);
|
176
|
+
border-color: var(--${cssScope}--ghost-color);
|
177
|
+
border-width: var(--${cssScope}--ghost-width);
|
178
|
+
color: var(--${cssScope}--ghost-color);
|
179
|
+
background: transparent;
|
180
|
+
border-style: solid;
|
181
|
+
}
|
182
|
+
`,
|
183
|
+
css `
|
184
|
+
:host {
|
185
|
+
--${cssScope}--padding-x: .5em;
|
186
|
+
--${cssScope}--padding: .1em var(--${cssScope}--padding-x);
|
187
|
+
--${cssScope}--modal-animation-duration: 1s;
|
188
|
+
--${cssScope}--ghost-width: .08em;
|
189
|
+
--${cssScope}--focus-scale: .97;
|
190
|
+
--${cssScope}--deg: 45deg;
|
191
|
+
--${cssScope}--ghost-color:var(--${cssScope}--background);
|
192
|
+
color: var(--${cssScope}--color, inherit);
|
193
|
+
background: linear-gradient(
|
194
|
+
var(--${cssScope}--deg),
|
195
|
+
var(--${cssScope}--background),
|
196
|
+
var(--${cssScope}--gradients, var(--${cssScope}--background))
|
197
|
+
);
|
198
|
+
border-radius: 0.3em;
|
199
|
+
width: -moz-fit-content;
|
200
|
+
width: fit-content;
|
201
|
+
transition: 0.1s;
|
202
|
+
display: block;
|
203
|
+
overflow: hidden;
|
204
|
+
text-align: center;
|
205
|
+
padding: 0 !important;
|
206
|
+
cursor: pointer;
|
207
|
+
}
|
208
|
+
|
209
|
+
[part="root"] {
|
210
|
+
width: 100%;
|
211
|
+
height: 100%;
|
212
|
+
overflow: hidden;
|
213
|
+
position: relative;
|
214
|
+
border-radius: inherit;
|
215
|
+
-webkit-user-select: none;
|
216
|
+
user-select: none;
|
217
|
+
transition: none;
|
218
|
+
transition-duration: inherit;
|
219
|
+
}
|
220
|
+
|
221
|
+
[part="slot"] {
|
222
|
+
padding: var(--${cssScope}--padding);
|
223
|
+
}
|
224
|
+
|
225
|
+
i {
|
226
|
+
position: absolute;
|
227
|
+
inset: 0;
|
228
|
+
opacity: 0;
|
229
|
+
width: 100%;
|
230
|
+
height: 100%;
|
231
|
+
border-radius: 50%;
|
232
|
+
visibility: visible;
|
233
|
+
pointer-events: none;
|
234
|
+
transform-origin: 0 0;
|
235
|
+
background: var(--${cssScope}--modal-background, currentColor);
|
236
|
+
animation-duration: var(--${cssScope}--modal-animation-duration);
|
237
|
+
}
|
238
|
+
|
239
|
+
@keyframes kf {
|
240
|
+
0% {
|
241
|
+
transform: scale(0) translate(-50%, -50%);
|
242
|
+
opacity: var(--${cssScope}--modal-opacity, 0.18);
|
243
|
+
}
|
244
|
+
80% {
|
245
|
+
transform: scale(1) translate(-50%, -50%);
|
246
|
+
}
|
247
|
+
to {
|
248
|
+
opacity: 0;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
`,
|
252
|
+
])
|
296
253
|
], Button);
|
297
254
|
export { Button };
|
298
255
|
export default Button;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property, query, unsafeCSS } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { constructCSS } from \"../../lib/utils.js\";\nimport { createScope, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"button\";\nconst cssvarScope = createScope(defineName);\n\nconst shadow1 = \"-2px 2px 5px -2px\";\nconst shadow2 = \"2px -2px 5px -2px\";\nconst linearGradient = \"linear-gradient\";\nconst fff = \"#fff\";\nconst _000 = \"#000\";\nconst deg = `var(${cssvarScope}--deg)`;\n\nconst vars = [\"color\", \"background\", \"box-shadow\", \"ghost-color\"];\nconst colors = {\n black: [\n fff, //\n `${linearGradient}(${deg}, rgb(30 30 30), rgb(65 65 65))`,\n `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,\n \"rgb(22 20 20)\",\n ],\n gary: [\n fff, //\n `${linearGradient}(${deg}, rgb(65 65 65), rgb(100 100 100))`,\n `${shadow1} rgb(0 0 0 / 20%), ${shadow2} rgb(99 99 99 / 20%)`,\n \"rgb(56 56 56)\",\n ],\n white: [\n _000, //\n `${linearGradient}(${deg}, rgb(225 225 225), rgb(240 240 240))`,\n `${shadow1} rgb(255 255 255 / 20%), ${shadow2} rgb(165 165 165 / 20%)`,\n \"rgb(212 212 212)\",\n ],\n red: [\n fff, //\n `${linearGradient}(${deg}, rgb(215 57 68), rgb(250 141 106))`,\n `${shadow1} rgb(181 35 44 / 20%), ${shadow2} rgb(234 130 174 / 20%)`,\n \"rgb(214 11 23)\",\n ],\n green: [\n _000, //\n `${linearGradient}(${deg}, rgb(21 206 71), rgb(99 253 122))`,\n `${shadow1} rgb(63 179 69 / 20%), ${shadow2} rgb(136 225 142 / 20%)`,\n \"rgb(60 214 68)\",\n ],\n blue: [\n fff, //\n `${linearGradient}(${deg}, rgb(14 143 255), rgb(121 211 255))`,\n `${shadow1} rgb(92 182 255 / 20%), ${shadow2} rgb(135 232 222 / 20%)`,\n \"rgb(42 141 221)\",\n ],\n yellow: [\n _000, //\n `${linearGradient}(${deg}, rgb(255 190 54), rgb(255 249 68))`,\n `${shadow1} rgb(214 203 55 / 20%), ${shadow2} rgb(202 203 137 / 20%)`,\n \"rgb(255 235 59)\",\n ],\n};\n\ntype Colors = keyof typeof colors;\n\n/**\n * {@linkcode Button}.\n *\n * Inspired by Next-ui.\n */\n@define(defineName)\nexport class Button extends GodownElement {\n /**\n * Whether to disable this element.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n /**\n * Invert font and background color.\n */\n @property({ type: Boolean, reflect: true }) ghost = false;\n /**\n * Whether this element is active or not.\n */\n @property({ type: Boolean, reflect: true }) active = false;\n /**\n * Enables rounded corners to appear capsule shaped.\n */\n @property({ type: Boolean, reflect: true }) radius = false;\n /**\n * The primary color.\n */\n @property() color: \"none\" | Colors = \"black\";\n /**\n * Text inside.\n */\n @property() text = \"\";\n\n @query(\"b\") _b: HTMLElement;\n @query(\"div\") _div: HTMLButtonElement;\n\n static styles = [\n unsafeCSS(\n constructCSS(\n vars,\n colors,\n (raw) => `[color=${raw}]`,\n (k, v) => `${cssvarScope}--${k}:${v}`,\n ),\n ),\n css`\n :host {\n ${cssvarScope}--padding: .05em .25em;\n ${cssvarScope}--deg: 45deg;\n ${cssvarScope}--ghost-width: .09em;\n ${cssvarScope}--modal-opacity: .15;\n ${cssvarScope}--modal-opacity-end: 0;\n ${cssvarScope}--modal-animation-duration: 1s;\n ${cssvarScope}--focus-scale: .975;\n transition: 0.1s;\n display: flex;\n width: fit-content;\n border-radius: 0.25em;\n cursor: pointer;\n background: none !important;\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n }\n\n :host(:active) {\n scale: var(${cssvarScope}--focus-scale);\n }\n\n div {\n background: var(${cssvarScope}--background);\n box-shadow: var(${cssvarScope}--box-shadow);\n color: var(${cssvarScope}--color, inherit);\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n border-radius: inherit;\n transition-duration: inherit;\n transition-property: scale;\n pointer-events: none;\n box-sizing: border-box;\n }\n\n b {\n pointer-events: none;\n transform: translate(-50%, -50%);\n position: absolute;\n visibility: hidden;\n }\n\n p {\n padding: var(${cssvarScope}--padding);\n margin: 0;\n user-select: none;\n transition: none;\n }\n\n :host([ghost]) p {\n background-image: var(${cssvarScope}--background);\n margin: calc(-1 * var(${cssvarScope}--ghost-width));\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n }\n\n :host([ghost]) div {\n background: transparent;\n border: var(${cssvarScope}--ghost-width) solid var(${cssvarScope}--ghost-color);\n }\n\n :host([radius]) {\n border-radius: calc(infinity * 1px);\n ${cssvarScope}--padding: .075em .5em;\n }\n `,\n css`\n i {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n border-radius: 50%;\n transform: translate(0, 0);\n background: currentColor;\n opacity: var(${cssvarScope}--modal-opacity-end);\n visibility: visible;\n animation-duration: min(var(${cssvarScope}--modal-animation-duration), 2s);\n }\n\n :host([ghost]) i {\n background: var(${cssvarScope}--ghost-color);\n }\n\n @keyframes i {\n 0% {\n transform: scale(0);\n opacity: var(${cssvarScope}--modal-opacity);\n }\n 80% {\n transform: scale(1);\n }\n 100% {\n opacity: var(${cssvarScope}--modal-opacity-end);\n }\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`\n <div color=\"${this.nextColor()}\">\n <b></b>\n <p>${this.text || htmlSlot()}</p>\n </div>\n `;\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.active = true;\n }\n\n blur() {\n this.active = false;\n }\n\n protected firstUpdated() {\n this.addEvent(document, \"click\", this._handelClick.bind(this));\n }\n\n protected _handleModal(e: MouseEvent) {\n const a = this._div.offsetHeight + 1;\n const b = this._div.offsetWidth + 1;\n const size = `${Math.sqrt(a * a + b * b) * 2}px`;\n const translate = `translate(calc(-50% + ${e.offsetX}px), calc(-50% + ${e.offsetY}px))`;\n this._b.style.width = size;\n this._b.style.height = size;\n this._b.style.transform = translate;\n const i = document.createElement(\"i\");\n i.style.animationName = \"i\";\n this._b.appendChild(i);\n setTimeout(() => {\n i.remove();\n }, 2000);\n }\n\n protected _handelClick(e: MouseEvent) {\n if (this.disabled) {\n return;\n }\n if (e.target === this) {\n this._handleModal(e);\n this.focus();\n } else {\n this.blur();\n }\n }\n\n /**\n * Get the color to render, default is this.color.\n *\n * @returns New color.\n *\n * Colors can be set for different states.\n *\n * The matching selector is `[color=COLOR]`.\n *\n * @example\n * ```ts\n * button.adoptStyles(\"[color=COLOR1]{...}\")\n * button.adoptStyles(\"[color=COLOR2]{...}\")\n * button.nextColor = () => state ? COLOR1 : COLOR2\n * ```\n */\n nextColor(): Colors | string {\n return this.color;\n }\n}\n\nexport default Button;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"base-button\": Button;\n \"g-button\": Button;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/button/button.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property } from \"../../_deps.js\";\nimport { godown } from \"../../decorators/godown.js\";\nimport { part } from \"../../decorators/part.js\";\nimport { styles } from \"../../decorators/styles.js\";\nimport { constructCSSObject } from \"../../lib/css.js\";\nimport { htmlSlot, htmlStyle } from \"../../lib/directives.js\";\nimport { GodownElement } from \"../../proto/godown-element.js\";\nimport { colorValues, createScope } from \"../../styles/global.js\";\n\nconst protoName = \"button\";\nconst cssScope = createScope(protoName);\n\nconst whiteFont = colorValues.lightgray[0];\nconst blackFont = colorValues.darkgray[6];\n\nconst colors = constructCSSObject(\n [\"color\", \"background\", \"gradients\"].map((k) => `--${cssScope}--${k}`),\n {\n black: [\n whiteFont, // color\n colorValues.darkgray[7], // background\n colorValues.darkgray[4], // gradients\n ],\n gray: [\n whiteFont, // color\n colorValues.darkgray[1], // background\n colorValues.lightgray[8], // gradients\n ],\n white: [\n blackFont, // color\n colorValues.lightgray[3], // background\n colorValues.lightgray[0], // gradients\n ],\n blue: [\n whiteFont, // color\n colorValues.blue[6], // background\n colorValues.blue[4], // gradients\n ],\n green: [\n whiteFont, // color\n colorValues.green[6], // background\n colorValues.green[4], // gradients\n ],\n red: [\n whiteFont, // color\n colorValues.red[6], // background\n colorValues.red[4], // gradients\n ],\n orange: [\n whiteFont, // color\n colorValues.orange[6], // background\n colorValues.orange[4], // gradients\n ],\n pink: [\n whiteFont, // color\n colorValues.pink[6], // background\n colorValues.pink[4], // gradients\n ],\n purple: [\n whiteFont, // color\n colorValues.purple[6], // background\n colorValues.purple[4], // gradients\n ],\n yellow: [\n blackFont, // color\n colorValues.yellow[6], // background\n colorValues.yellow[4], // gradients\n ],\n teal: [\n whiteFont, // color\n colorValues.teal[6], // background\n colorValues.teal[4], //gradients\n ],\n },\n () => `:host`,\n);\n\n/**\n * {@linkcode Button}.\n *\n * Inspired by Next-ui.\n */\n@godown(protoName)\n@styles([\n css`\n :host(:not([disabled]):active) {\n transform: scale(var(--${cssScope}--focus-scale));\n }\n\n :host([round]) {\n --${cssScope}--padding-x: .75em;\n border-radius: calc(infinity * 1px);\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n filter: brightness(0.85);\n }\n\n :host([ghost]) {\n --${cssScope}--modal-background: var(--${cssScope}--ghost-color);\n border-color: var(--${cssScope}--ghost-color);\n border-width: var(--${cssScope}--ghost-width);\n color: var(--${cssScope}--ghost-color);\n background: transparent;\n border-style: solid;\n }\n `,\n css`\n :host {\n --${cssScope}--padding-x: .5em;\n --${cssScope}--padding: .1em var(--${cssScope}--padding-x);\n --${cssScope}--modal-animation-duration: 1s;\n --${cssScope}--ghost-width: .08em;\n --${cssScope}--focus-scale: .97;\n --${cssScope}--deg: 45deg;\n --${cssScope}--ghost-color:var(--${cssScope}--background);\n color: var(--${cssScope}--color, inherit);\n background: linear-gradient(\n var(--${cssScope}--deg),\n var(--${cssScope}--background),\n var(--${cssScope}--gradients, var(--${cssScope}--background))\n );\n border-radius: 0.3em;\n width: -moz-fit-content;\n width: fit-content;\n transition: 0.1s;\n display: block;\n overflow: hidden;\n text-align: center;\n padding: 0 !important;\n cursor: pointer;\n }\n\n [part=\"root\"] {\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: relative;\n border-radius: inherit;\n -webkit-user-select: none;\n user-select: none;\n transition: none;\n transition-duration: inherit;\n }\n\n [part=\"slot\"] {\n padding: var(--${cssScope}--padding);\n }\n\n i {\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n visibility: visible;\n pointer-events: none;\n transform-origin: 0 0;\n background: var(--${cssScope}--modal-background, currentColor);\n animation-duration: var(--${cssScope}--modal-animation-duration);\n }\n\n @keyframes kf {\n 0% {\n transform: scale(0) translate(-50%, -50%);\n opacity: var(--${cssScope}--modal-opacity, 0.18);\n }\n 80% {\n transform: scale(1) translate(-50%, -50%);\n }\n to {\n opacity: 0;\n }\n }\n `,\n])\nexport class Button extends GodownElement {\n /**\n * Whether to disable this element.\n */\n @property({ type: Boolean, reflect: true }) disabled: boolean;\n /**\n * Invert font and background color.\n */\n @property({ type: Boolean, reflect: true }) ghost: boolean;\n /**\n * Whether this element is active or not.\n */\n @property({ type: Boolean, reflect: true }) active: boolean;\n /**\n * Enables rounded corners to appear capsule shaped.\n */\n @property({ type: Boolean, reflect: true }) round: boolean;\n /**\n * The primary color.\n */\n @property({ reflect: true }) color: \"none\" | keyof typeof colors = \"black\";\n /**\n * Text inside.\n */\n @property() text: string;\n\n @part(\"modal-root\") _modalRoot: HTMLElement;\n @part(\"root\") _root: HTMLElement;\n\n protected render() {\n const color = this.nextColor();\n return html`\n <div part=\"root\">\n <span part=\"modal-root\"></span>\n <div part=\"slot\">${this.text || htmlSlot()}</div>\n </div>\n ${htmlStyle(colors[color])}\n `;\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.active = true;\n }\n\n blur() {\n this.active = false;\n }\n\n firstUpdated() {\n this.addEvent(this, \"click\", this._handelClick, true);\n }\n\n protected _handelClick(e: MouseEvent) {\n if (this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n this._handleModal(e);\n }\n\n protected _handleModal(e: MouseEvent) {\n const modal = document.createElement(\"i\");\n const rect = this.getBoundingClientRect();\n const h = rect.height;\n const w = rect.width;\n const size = `${Math.sqrt(h * h + w * w) * 2}px`;\n modal.style.height = size;\n modal.style.width = size;\n modal.style.left = `${e.clientX - rect.left}px`;\n modal.style.top = `${e.clientY - rect.y}px`;\n modal.style.animationName = \"kf\";\n this._modalRoot.appendChild(modal);\n modal.addEventListener(\"animationend\", () => modal.remove(), { once: true });\n }\n\n nextColor() {\n return this.color;\n }\n}\n\nexport default Button;\n"]}
|