1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.TapIconButton = exports.Button = void 0;
|
7 |
|
8 | var _preact = require("preact");
|
9 |
|
10 | var _getStyledComponent = _interopRequireDefault(require("./utils/get-styled-component"));
|
11 |
|
12 | var _icon = require("./icon");
|
13 |
|
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15 |
|
16 |
|
17 | const preventDefault = e => {
|
18 | e.preventDefault();
|
19 | };
|
20 |
|
21 | const Button = (0, _getStyledComponent.default)({
|
22 | tagName: 'button',
|
23 | baseClasses: 'br2 ba',
|
24 | options: {
|
25 | size: ['tiny', 'large'],
|
26 | pressed: ['pressed'],
|
27 | variant: ['primary', 'stop', 'disabled']
|
28 | },
|
29 | defaultProps: {
|
30 | onContextMenu: preventDefault
|
31 | },
|
32 | fn: ({
|
33 | tiny,
|
34 | large,
|
35 | disabled,
|
36 | pressed,
|
37 | primary,
|
38 | stop
|
39 | }) => {
|
40 | let classes = ['bn'];
|
41 |
|
42 | if (tiny) {
|
43 | classes.push('pa1');
|
44 | } else if (large) {
|
45 | classes.push('pa3 fw6');
|
46 | } else {
|
47 | classes.push('pa2');
|
48 | }
|
49 |
|
50 |
|
51 | if (disabled) {
|
52 | classes.push('mid-gray bg-light-gray not-allowed');
|
53 | return classes.join(' ');
|
54 | }
|
55 |
|
56 |
|
57 | classes.push('pointer');
|
58 |
|
59 | if (pressed) {
|
60 | classes.push('shadow-3');
|
61 | } else {
|
62 | classes.push('shadow-2');
|
63 | }
|
64 |
|
65 | if (stop) {
|
66 | classes.push('white bg-red');
|
67 | }
|
68 |
|
69 | if (primary) {
|
70 | classes.push('dark-blue bg-light-blue');
|
71 | }
|
72 |
|
73 | if (!stop && !primary) {
|
74 | classes.push('dark-blue');
|
75 |
|
76 | if (pressed) {
|
77 | classes.push('bg-lightest-blue');
|
78 | } else {
|
79 | classes.push('bg-white');
|
80 | }
|
81 | }
|
82 |
|
83 | return classes.join(' ');
|
84 | }
|
85 | });
|
86 | exports.Button = Button;
|
87 | const TapIconButton = (0, _getStyledComponent.default)({
|
88 | baseClasses: 'button-reset pointer pa0 ma0 bn bg-transparent flex items-center justify-center',
|
89 | style: {
|
90 | width: '40px',
|
91 | height: '40px'
|
92 | },
|
93 | options: {
|
94 | icon: ['icon'],
|
95 | color: ['color']
|
96 | },
|
97 | renderChildren: ({
|
98 | icon,
|
99 | color
|
100 | }) => [(0, _preact.h)(_icon.Icon, {
|
101 | key: icon,
|
102 | icon: icon,
|
103 | color: color,
|
104 | size: "28"
|
105 | })]
|
106 | });
|
107 | exports.TapIconButton = TapIconButton; |
\ | No newline at end of file |