@hanzogui/button 8.3.0 → 8.3.2
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/dist/cjs/Button.js +238 -0
- package/dist/cjs/Button.js.map +1 -0
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/Button.js +235 -0
- package/dist/esm/Button.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +24 -24
- package/src/Button.test.tsx +1 -1
- package/src/index.ts +1 -1
- package/types/Button.d.ts +58 -57
- package/types/Button.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/dist/cjs/Button.cjs +0 -289
- package/dist/cjs/Button.native.js +0 -297
- package/dist/cjs/Button.native.js.map +0 -1
- package/dist/cjs/Button.test.cjs +0 -37
- package/dist/cjs/Button.test.native.js +0 -40
- package/dist/cjs/Button.test.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -20
- package/dist/cjs/index.native.js +0 -23
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/esm/Button.mjs +0 -263
- package/dist/esm/Button.mjs.map +0 -1
- package/dist/esm/Button.native.js +0 -268
- package/dist/esm/Button.native.js.map +0 -1
- package/dist/esm/Button.test.mjs +0 -38
- package/dist/esm/Button.test.mjs.map +0 -1
- package/dist/esm/Button.test.native.js +0 -38
- package/dist/esm/Button.test.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -2
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -2
- package/dist/esm/index.native.js.map +0 -1
- package/dist/jsx/Button.mjs +0 -263
- package/dist/jsx/Button.mjs.map +0 -1
- package/dist/jsx/Button.native.js +0 -297
- package/dist/jsx/Button.native.js.map +0 -1
- package/dist/jsx/Button.test.mjs +0 -38
- package/dist/jsx/Button.test.mjs.map +0 -1
- package/dist/jsx/Button.test.native.js +0 -40
- package/dist/jsx/Button.test.native.js.map +0 -1
- package/dist/jsx/index.js +0 -2
- package/dist/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs +0 -2
- package/dist/jsx/index.mjs.map +0 -1
- package/dist/jsx/index.native.js +0 -23
- package/dist/jsx/index.native.js.map +0 -1
- package/types/Button.test.d.ts +0 -2
- package/types/Button.test.d.ts.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Button = exports.ButtonContext = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const font_size_1 = require("@hanzogui/font-size");
|
|
6
|
+
const get_button_sized_1 = require("@hanzogui/get-button-sized");
|
|
7
|
+
const component_helpers_1 = require("@hanzogui/component-helpers");
|
|
8
|
+
const stacks_1 = require("@hanzogui/stacks");
|
|
9
|
+
const text_1 = require("@hanzogui/text");
|
|
10
|
+
const web_1 = require("@hanzogui/web");
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
const context = (0, web_1.createStyledContext)({
|
|
13
|
+
size: undefined,
|
|
14
|
+
variant: undefined,
|
|
15
|
+
color: undefined,
|
|
16
|
+
elevation: undefined,
|
|
17
|
+
ellipsis: undefined,
|
|
18
|
+
fontFamily: undefined,
|
|
19
|
+
fontSize: undefined,
|
|
20
|
+
fontStyle: undefined,
|
|
21
|
+
fontWeight: undefined,
|
|
22
|
+
letterSpacing: undefined,
|
|
23
|
+
maxFontSizeMultiplier: undefined,
|
|
24
|
+
textAlign: undefined,
|
|
25
|
+
});
|
|
26
|
+
const Frame = (0, web_1.styled)(web_1.View, {
|
|
27
|
+
context,
|
|
28
|
+
name: 'Button',
|
|
29
|
+
role: 'button',
|
|
30
|
+
render: (0, jsx_runtime_1.jsx)("button", { type: "button" }),
|
|
31
|
+
tabIndex: 0,
|
|
32
|
+
variants: {
|
|
33
|
+
unstyled: {
|
|
34
|
+
true: {
|
|
35
|
+
// reset browser <button> defaults
|
|
36
|
+
outlineWidth: 0,
|
|
37
|
+
borderWidth: 0,
|
|
38
|
+
backgroundColor: 'transparent',
|
|
39
|
+
},
|
|
40
|
+
false: {
|
|
41
|
+
size: '$true',
|
|
42
|
+
justifyContent: 'center',
|
|
43
|
+
alignItems: 'center',
|
|
44
|
+
flexWrap: 'nowrap',
|
|
45
|
+
flexDirection: 'row',
|
|
46
|
+
backgroundColor: '$background',
|
|
47
|
+
borderWidth: 1,
|
|
48
|
+
borderColor: 'transparent',
|
|
49
|
+
'$platform-web': {
|
|
50
|
+
cursor: 'pointer',
|
|
51
|
+
},
|
|
52
|
+
hoverStyle: {
|
|
53
|
+
backgroundColor: '$backgroundHover',
|
|
54
|
+
borderColor: '$borderColorHover',
|
|
55
|
+
},
|
|
56
|
+
pressStyle: {
|
|
57
|
+
backgroundColor: '$backgroundPress',
|
|
58
|
+
borderColor: '$borderColorHover',
|
|
59
|
+
},
|
|
60
|
+
focusVisibleStyle: {
|
|
61
|
+
outlineColor: '$outlineColor',
|
|
62
|
+
outlineStyle: 'solid',
|
|
63
|
+
outlineWidth: 2,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
variant: {
|
|
68
|
+
outlined: process.env.GUI_HEADLESS === '1'
|
|
69
|
+
? {}
|
|
70
|
+
: {
|
|
71
|
+
backgroundColor: 'transparent',
|
|
72
|
+
borderWidth: 1,
|
|
73
|
+
borderColor: '$borderColor',
|
|
74
|
+
hoverStyle: {
|
|
75
|
+
backgroundColor: 'transparent',
|
|
76
|
+
borderColor: '$borderColorHover',
|
|
77
|
+
},
|
|
78
|
+
pressStyle: {
|
|
79
|
+
backgroundColor: 'transparent',
|
|
80
|
+
borderColor: '$borderColorPress',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
circular: stacks_1.themeableVariants.circular,
|
|
85
|
+
chromeless: stacks_1.themeableVariants.chromeless,
|
|
86
|
+
size: {
|
|
87
|
+
'...size': (val, extras) => {
|
|
88
|
+
const buttonStyle = (0, get_button_sized_1.getButtonSized)(val, extras);
|
|
89
|
+
const gap = (0, web_1.getTokenValue)(val);
|
|
90
|
+
return {
|
|
91
|
+
...buttonStyle,
|
|
92
|
+
gap,
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
':number': (val, extras) => {
|
|
96
|
+
const buttonStyle = (0, get_button_sized_1.getButtonSized)(val, extras);
|
|
97
|
+
const gap = val * 0.4;
|
|
98
|
+
return {
|
|
99
|
+
...buttonStyle,
|
|
100
|
+
gap,
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
elevation: {
|
|
105
|
+
'...size': stacks_1.getElevation,
|
|
106
|
+
':number': stacks_1.getElevation,
|
|
107
|
+
},
|
|
108
|
+
disabled: {
|
|
109
|
+
true: {
|
|
110
|
+
pointerEvents: 'none',
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
'aria-disabled': true,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
defaultVariants: {
|
|
117
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
const Text = (0, web_1.styled)(text_1.SizableText, {
|
|
121
|
+
context,
|
|
122
|
+
variants: {
|
|
123
|
+
unstyled: {
|
|
124
|
+
false: {
|
|
125
|
+
userSelect: 'none',
|
|
126
|
+
// flexGrow 1 leads to inconsistent native style where text pushes to start of view
|
|
127
|
+
flexGrow: 0,
|
|
128
|
+
flexShrink: 1,
|
|
129
|
+
ellipsis: true,
|
|
130
|
+
color: '$color',
|
|
131
|
+
'$platform-web': {
|
|
132
|
+
cursor: 'pointer',
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
defaultVariants: {
|
|
138
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
const Icon = (props) => {
|
|
142
|
+
const { children, scaleIcon = 1, size } = props;
|
|
143
|
+
const styledContext = context.useStyledContext();
|
|
144
|
+
if (!styledContext) {
|
|
145
|
+
throw new Error('Button.Icon must be used within a Button');
|
|
146
|
+
}
|
|
147
|
+
const sizeToken = size ?? styledContext.size;
|
|
148
|
+
const iconColorProp = styledContext.color === 'unset' || typeof styledContext.color === 'number'
|
|
149
|
+
? undefined
|
|
150
|
+
: styledContext.color;
|
|
151
|
+
const iconColor = (0, component_helpers_1.useCurrentColor)(iconColorProp);
|
|
152
|
+
const iconSize = (typeof sizeToken === 'number' ? sizeToken * 0.5 : (0, font_size_1.getFontSize)(sizeToken)) *
|
|
153
|
+
scaleIcon;
|
|
154
|
+
return (0, component_helpers_1.getIcon)(children, {
|
|
155
|
+
size: iconSize,
|
|
156
|
+
color: iconColor,
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
exports.ButtonContext = (0, web_1.createStyledContext)({
|
|
160
|
+
size: undefined,
|
|
161
|
+
variant: undefined,
|
|
162
|
+
color: undefined,
|
|
163
|
+
});
|
|
164
|
+
const ButtonComponent = Frame.styleable((propsIn, ref) => {
|
|
165
|
+
const isNested = (0, react_1.useContext)(stacks_1.ButtonNestingContext);
|
|
166
|
+
// Process props through useProps to expand shorthands (like br -> borderRadius)
|
|
167
|
+
const processedProps = (0, web_1.useProps)(propsIn, {
|
|
168
|
+
noNormalize: true,
|
|
169
|
+
noExpand: true,
|
|
170
|
+
});
|
|
171
|
+
const { children, iconSize, icon, iconAfter, scaleIcon = 1, noTextWrap, textProps, color, ellipsis, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, maxFontSizeMultiplier, textAlign, ...props } = processedProps;
|
|
172
|
+
const size = propsIn.size || (propsIn.unstyled ? undefined : '$true');
|
|
173
|
+
const styledContext = context.useStyledContext();
|
|
174
|
+
const contextColor = color ?? propsIn.color ?? styledContext?.color;
|
|
175
|
+
const iconColorProp = contextColor === 'unset' || typeof contextColor === 'number'
|
|
176
|
+
? undefined
|
|
177
|
+
: contextColor;
|
|
178
|
+
const iconColor = (0, component_helpers_1.useCurrentColor)(iconColorProp);
|
|
179
|
+
const finalSize = iconSize ?? size ?? styledContext?.size;
|
|
180
|
+
const iconSizeNumber = (typeof finalSize === 'number' ? finalSize * 0.5 : (0, font_size_1.getFontSize)(finalSize)) *
|
|
181
|
+
scaleIcon;
|
|
182
|
+
const [themedIcon, themedIconAfter] = [icon, iconAfter].map((icon) => {
|
|
183
|
+
if (!icon)
|
|
184
|
+
return null;
|
|
185
|
+
return (0, component_helpers_1.getIcon)(icon, {
|
|
186
|
+
size: iconSizeNumber,
|
|
187
|
+
color: iconColor,
|
|
188
|
+
// No marginLeft or marginRight needed - spacing is handled by the gap property in Frame's size variants
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
const wrappedChildren = (0, text_1.wrapChildrenInText)(Text, {
|
|
192
|
+
children,
|
|
193
|
+
color: contextColor,
|
|
194
|
+
ellipsis: ellipsis ?? propsIn.ellipsis ?? styledContext?.ellipsis,
|
|
195
|
+
fontFamily: fontFamily ?? propsIn.fontFamily ?? styledContext?.fontFamily,
|
|
196
|
+
fontSize: fontSize ?? propsIn.fontSize ?? styledContext?.fontSize,
|
|
197
|
+
fontStyle: fontStyle ?? propsIn.fontStyle ?? styledContext?.fontStyle,
|
|
198
|
+
fontWeight: fontWeight ?? propsIn.fontWeight ?? styledContext?.fontWeight,
|
|
199
|
+
letterSpacing: letterSpacing ?? propsIn.letterSpacing ?? styledContext?.letterSpacing,
|
|
200
|
+
maxFontSizeMultiplier: maxFontSizeMultiplier ??
|
|
201
|
+
propsIn.maxFontSizeMultiplier ??
|
|
202
|
+
styledContext?.maxFontSizeMultiplier,
|
|
203
|
+
noTextWrap: noTextWrap ?? propsIn.noTextWrap,
|
|
204
|
+
textAlign: textAlign ?? propsIn.textAlign ?? styledContext?.textAlign,
|
|
205
|
+
textProps: textProps ?? propsIn.textProps,
|
|
206
|
+
}, {
|
|
207
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
208
|
+
size: finalSize ?? styledContext?.size,
|
|
209
|
+
});
|
|
210
|
+
const textContext = {
|
|
211
|
+
color: contextColor,
|
|
212
|
+
ellipsis: ellipsis ?? propsIn.ellipsis ?? styledContext?.ellipsis,
|
|
213
|
+
fontFamily: fontFamily ?? propsIn.fontFamily ?? styledContext?.fontFamily,
|
|
214
|
+
fontSize: fontSize ?? propsIn.fontSize ?? styledContext?.fontSize,
|
|
215
|
+
fontStyle: fontStyle ?? propsIn.fontStyle ?? styledContext?.fontStyle,
|
|
216
|
+
fontWeight: fontWeight ?? propsIn.fontWeight ?? styledContext?.fontWeight,
|
|
217
|
+
letterSpacing: letterSpacing ?? propsIn.letterSpacing ?? styledContext?.letterSpacing,
|
|
218
|
+
maxFontSizeMultiplier: maxFontSizeMultiplier ??
|
|
219
|
+
propsIn.maxFontSizeMultiplier ??
|
|
220
|
+
styledContext?.maxFontSizeMultiplier,
|
|
221
|
+
textAlign: textAlign ?? propsIn.textAlign ?? styledContext?.textAlign,
|
|
222
|
+
};
|
|
223
|
+
const buttonContext = {
|
|
224
|
+
...styledContext,
|
|
225
|
+
...textContext,
|
|
226
|
+
size: props.size ?? propsIn.size ?? styledContext?.size,
|
|
227
|
+
variant: props.variant ?? propsIn.variant ?? styledContext?.variant,
|
|
228
|
+
elevation: props.elevation ?? propsIn.elevation ?? styledContext?.elevation,
|
|
229
|
+
};
|
|
230
|
+
return ((0, jsx_runtime_1.jsx)(stacks_1.ButtonNestingContext.Provider, { value: true, children: (0, jsx_runtime_1.jsx)(context.Provider, { ...buttonContext, children: (0, jsx_runtime_1.jsxs)(Frame, { ref: ref, ...props, ...(isNested && { render: 'span' }), ...(props.circular && !propsIn.size && { size }), tabIndex: 0, children: [themedIcon, wrappedChildren, themedIconAfter] }) }) }));
|
|
231
|
+
});
|
|
232
|
+
exports.Button = (0, web_1.withStaticProperties)(ButtonComponent, {
|
|
233
|
+
Apply: context.Provider,
|
|
234
|
+
Frame,
|
|
235
|
+
Text,
|
|
236
|
+
Icon,
|
|
237
|
+
});
|
|
238
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/Button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "commonjs" }
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getFontSize } from '@hanzogui/font-size';
|
|
3
|
+
import { getButtonSized } from '@hanzogui/get-button-sized';
|
|
4
|
+
import { getIcon, useCurrentColor } from '@hanzogui/component-helpers';
|
|
5
|
+
import { ButtonNestingContext, getElevation, themeableVariants } from '@hanzogui/stacks';
|
|
6
|
+
import { SizableText, wrapChildrenInText } from '@hanzogui/text';
|
|
7
|
+
import { createStyledContext, getTokenValue, styled, useProps, View, withStaticProperties, } from '@hanzogui/web';
|
|
8
|
+
import { useContext } from 'react';
|
|
9
|
+
const context = createStyledContext({
|
|
10
|
+
size: undefined,
|
|
11
|
+
variant: undefined,
|
|
12
|
+
color: undefined,
|
|
13
|
+
elevation: undefined,
|
|
14
|
+
ellipsis: undefined,
|
|
15
|
+
fontFamily: undefined,
|
|
16
|
+
fontSize: undefined,
|
|
17
|
+
fontStyle: undefined,
|
|
18
|
+
fontWeight: undefined,
|
|
19
|
+
letterSpacing: undefined,
|
|
20
|
+
maxFontSizeMultiplier: undefined,
|
|
21
|
+
textAlign: undefined,
|
|
22
|
+
});
|
|
23
|
+
const Frame = styled(View, {
|
|
24
|
+
context,
|
|
25
|
+
name: 'Button',
|
|
26
|
+
role: 'button',
|
|
27
|
+
render: _jsx("button", { type: "button" }),
|
|
28
|
+
tabIndex: 0,
|
|
29
|
+
variants: {
|
|
30
|
+
unstyled: {
|
|
31
|
+
true: {
|
|
32
|
+
// reset browser <button> defaults
|
|
33
|
+
outlineWidth: 0,
|
|
34
|
+
borderWidth: 0,
|
|
35
|
+
backgroundColor: 'transparent',
|
|
36
|
+
},
|
|
37
|
+
false: {
|
|
38
|
+
size: '$true',
|
|
39
|
+
justifyContent: 'center',
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
flexWrap: 'nowrap',
|
|
42
|
+
flexDirection: 'row',
|
|
43
|
+
backgroundColor: '$background',
|
|
44
|
+
borderWidth: 1,
|
|
45
|
+
borderColor: 'transparent',
|
|
46
|
+
'$platform-web': {
|
|
47
|
+
cursor: 'pointer',
|
|
48
|
+
},
|
|
49
|
+
hoverStyle: {
|
|
50
|
+
backgroundColor: '$backgroundHover',
|
|
51
|
+
borderColor: '$borderColorHover',
|
|
52
|
+
},
|
|
53
|
+
pressStyle: {
|
|
54
|
+
backgroundColor: '$backgroundPress',
|
|
55
|
+
borderColor: '$borderColorHover',
|
|
56
|
+
},
|
|
57
|
+
focusVisibleStyle: {
|
|
58
|
+
outlineColor: '$outlineColor',
|
|
59
|
+
outlineStyle: 'solid',
|
|
60
|
+
outlineWidth: 2,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
variant: {
|
|
65
|
+
outlined: process.env.GUI_HEADLESS === '1'
|
|
66
|
+
? {}
|
|
67
|
+
: {
|
|
68
|
+
backgroundColor: 'transparent',
|
|
69
|
+
borderWidth: 1,
|
|
70
|
+
borderColor: '$borderColor',
|
|
71
|
+
hoverStyle: {
|
|
72
|
+
backgroundColor: 'transparent',
|
|
73
|
+
borderColor: '$borderColorHover',
|
|
74
|
+
},
|
|
75
|
+
pressStyle: {
|
|
76
|
+
backgroundColor: 'transparent',
|
|
77
|
+
borderColor: '$borderColorPress',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
circular: themeableVariants.circular,
|
|
82
|
+
chromeless: themeableVariants.chromeless,
|
|
83
|
+
size: {
|
|
84
|
+
'...size': (val, extras) => {
|
|
85
|
+
const buttonStyle = getButtonSized(val, extras);
|
|
86
|
+
const gap = getTokenValue(val);
|
|
87
|
+
return {
|
|
88
|
+
...buttonStyle,
|
|
89
|
+
gap,
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
':number': (val, extras) => {
|
|
93
|
+
const buttonStyle = getButtonSized(val, extras);
|
|
94
|
+
const gap = val * 0.4;
|
|
95
|
+
return {
|
|
96
|
+
...buttonStyle,
|
|
97
|
+
gap,
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
elevation: {
|
|
102
|
+
'...size': getElevation,
|
|
103
|
+
':number': getElevation,
|
|
104
|
+
},
|
|
105
|
+
disabled: {
|
|
106
|
+
true: {
|
|
107
|
+
pointerEvents: 'none',
|
|
108
|
+
// @ts-ignore
|
|
109
|
+
'aria-disabled': true,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
defaultVariants: {
|
|
114
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
const Text = styled(SizableText, {
|
|
118
|
+
context,
|
|
119
|
+
variants: {
|
|
120
|
+
unstyled: {
|
|
121
|
+
false: {
|
|
122
|
+
userSelect: 'none',
|
|
123
|
+
// flexGrow 1 leads to inconsistent native style where text pushes to start of view
|
|
124
|
+
flexGrow: 0,
|
|
125
|
+
flexShrink: 1,
|
|
126
|
+
ellipsis: true,
|
|
127
|
+
color: '$color',
|
|
128
|
+
'$platform-web': {
|
|
129
|
+
cursor: 'pointer',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
defaultVariants: {
|
|
135
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
const Icon = (props) => {
|
|
139
|
+
const { children, scaleIcon = 1, size } = props;
|
|
140
|
+
const styledContext = context.useStyledContext();
|
|
141
|
+
if (!styledContext) {
|
|
142
|
+
throw new Error('Button.Icon must be used within a Button');
|
|
143
|
+
}
|
|
144
|
+
const sizeToken = size ?? styledContext.size;
|
|
145
|
+
const iconColorProp = styledContext.color === 'unset' || typeof styledContext.color === 'number'
|
|
146
|
+
? undefined
|
|
147
|
+
: styledContext.color;
|
|
148
|
+
const iconColor = useCurrentColor(iconColorProp);
|
|
149
|
+
const iconSize = (typeof sizeToken === 'number' ? sizeToken * 0.5 : getFontSize(sizeToken)) *
|
|
150
|
+
scaleIcon;
|
|
151
|
+
return getIcon(children, {
|
|
152
|
+
size: iconSize,
|
|
153
|
+
color: iconColor,
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
export const ButtonContext = createStyledContext({
|
|
157
|
+
size: undefined,
|
|
158
|
+
variant: undefined,
|
|
159
|
+
color: undefined,
|
|
160
|
+
});
|
|
161
|
+
const ButtonComponent = Frame.styleable((propsIn, ref) => {
|
|
162
|
+
const isNested = useContext(ButtonNestingContext);
|
|
163
|
+
// Process props through useProps to expand shorthands (like br -> borderRadius)
|
|
164
|
+
const processedProps = useProps(propsIn, {
|
|
165
|
+
noNormalize: true,
|
|
166
|
+
noExpand: true,
|
|
167
|
+
});
|
|
168
|
+
const { children, iconSize, icon, iconAfter, scaleIcon = 1, noTextWrap, textProps, color, ellipsis, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, maxFontSizeMultiplier, textAlign, ...props } = processedProps;
|
|
169
|
+
const size = propsIn.size || (propsIn.unstyled ? undefined : '$true');
|
|
170
|
+
const styledContext = context.useStyledContext();
|
|
171
|
+
const contextColor = color ?? propsIn.color ?? styledContext?.color;
|
|
172
|
+
const iconColorProp = contextColor === 'unset' || typeof contextColor === 'number'
|
|
173
|
+
? undefined
|
|
174
|
+
: contextColor;
|
|
175
|
+
const iconColor = useCurrentColor(iconColorProp);
|
|
176
|
+
const finalSize = iconSize ?? size ?? styledContext?.size;
|
|
177
|
+
const iconSizeNumber = (typeof finalSize === 'number' ? finalSize * 0.5 : getFontSize(finalSize)) *
|
|
178
|
+
scaleIcon;
|
|
179
|
+
const [themedIcon, themedIconAfter] = [icon, iconAfter].map((icon) => {
|
|
180
|
+
if (!icon)
|
|
181
|
+
return null;
|
|
182
|
+
return getIcon(icon, {
|
|
183
|
+
size: iconSizeNumber,
|
|
184
|
+
color: iconColor,
|
|
185
|
+
// No marginLeft or marginRight needed - spacing is handled by the gap property in Frame's size variants
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
const wrappedChildren = wrapChildrenInText(Text, {
|
|
189
|
+
children,
|
|
190
|
+
color: contextColor,
|
|
191
|
+
ellipsis: ellipsis ?? propsIn.ellipsis ?? styledContext?.ellipsis,
|
|
192
|
+
fontFamily: fontFamily ?? propsIn.fontFamily ?? styledContext?.fontFamily,
|
|
193
|
+
fontSize: fontSize ?? propsIn.fontSize ?? styledContext?.fontSize,
|
|
194
|
+
fontStyle: fontStyle ?? propsIn.fontStyle ?? styledContext?.fontStyle,
|
|
195
|
+
fontWeight: fontWeight ?? propsIn.fontWeight ?? styledContext?.fontWeight,
|
|
196
|
+
letterSpacing: letterSpacing ?? propsIn.letterSpacing ?? styledContext?.letterSpacing,
|
|
197
|
+
maxFontSizeMultiplier: maxFontSizeMultiplier ??
|
|
198
|
+
propsIn.maxFontSizeMultiplier ??
|
|
199
|
+
styledContext?.maxFontSizeMultiplier,
|
|
200
|
+
noTextWrap: noTextWrap ?? propsIn.noTextWrap,
|
|
201
|
+
textAlign: textAlign ?? propsIn.textAlign ?? styledContext?.textAlign,
|
|
202
|
+
textProps: textProps ?? propsIn.textProps,
|
|
203
|
+
}, {
|
|
204
|
+
unstyled: process.env.GUI_HEADLESS === '1',
|
|
205
|
+
size: finalSize ?? styledContext?.size,
|
|
206
|
+
});
|
|
207
|
+
const textContext = {
|
|
208
|
+
color: contextColor,
|
|
209
|
+
ellipsis: ellipsis ?? propsIn.ellipsis ?? styledContext?.ellipsis,
|
|
210
|
+
fontFamily: fontFamily ?? propsIn.fontFamily ?? styledContext?.fontFamily,
|
|
211
|
+
fontSize: fontSize ?? propsIn.fontSize ?? styledContext?.fontSize,
|
|
212
|
+
fontStyle: fontStyle ?? propsIn.fontStyle ?? styledContext?.fontStyle,
|
|
213
|
+
fontWeight: fontWeight ?? propsIn.fontWeight ?? styledContext?.fontWeight,
|
|
214
|
+
letterSpacing: letterSpacing ?? propsIn.letterSpacing ?? styledContext?.letterSpacing,
|
|
215
|
+
maxFontSizeMultiplier: maxFontSizeMultiplier ??
|
|
216
|
+
propsIn.maxFontSizeMultiplier ??
|
|
217
|
+
styledContext?.maxFontSizeMultiplier,
|
|
218
|
+
textAlign: textAlign ?? propsIn.textAlign ?? styledContext?.textAlign,
|
|
219
|
+
};
|
|
220
|
+
const buttonContext = {
|
|
221
|
+
...styledContext,
|
|
222
|
+
...textContext,
|
|
223
|
+
size: props.size ?? propsIn.size ?? styledContext?.size,
|
|
224
|
+
variant: props.variant ?? propsIn.variant ?? styledContext?.variant,
|
|
225
|
+
elevation: props.elevation ?? propsIn.elevation ?? styledContext?.elevation,
|
|
226
|
+
};
|
|
227
|
+
return (_jsx(ButtonNestingContext.Provider, { value: true, children: _jsx(context.Provider, { ...buttonContext, children: _jsxs(Frame, { ref: ref, ...props, ...(isNested && { render: 'span' }), ...(props.circular && !propsIn.size && { size }), tabIndex: 0, children: [themedIcon, wrappedChildren, themedIconAfter] }) }) }));
|
|
228
|
+
});
|
|
229
|
+
export const Button = withStaticProperties(ButtonComponent, {
|
|
230
|
+
Apply: context.Provider,
|
|
231
|
+
Frame,
|
|
232
|
+
Text,
|
|
233
|
+
Icon,
|
|
234
|
+
});
|
|
235
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/Button.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export * from './Button.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzogui/button",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.2",
|
|
4
4
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"files": [
|
|
@@ -10,49 +10,49 @@
|
|
|
10
10
|
],
|
|
11
11
|
"type": "module",
|
|
12
12
|
"sideEffects": false,
|
|
13
|
-
"main": "dist/cjs",
|
|
14
|
-
"module": "dist/esm",
|
|
13
|
+
"main": "./dist/cjs/index.js",
|
|
14
|
+
"module": "./dist/esm/index.js",
|
|
15
15
|
"types": "./types/index.d.ts",
|
|
16
16
|
"exports": {
|
|
17
17
|
"./package.json": "./package.json",
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./types/index.d.ts",
|
|
20
|
-
"react-native": "./dist/esm/index.
|
|
21
|
-
"browser": "./dist/esm/index.
|
|
22
|
-
"module": "./dist/esm/index.
|
|
23
|
-
"import": "./dist/esm/index.
|
|
24
|
-
"require": "./dist/cjs/index.
|
|
25
|
-
"default": "./dist/esm/index.
|
|
20
|
+
"react-native": "./dist/esm/index.js",
|
|
21
|
+
"browser": "./dist/esm/index.js",
|
|
22
|
+
"module": "./dist/esm/index.js",
|
|
23
|
+
"import": "./dist/esm/index.js",
|
|
24
|
+
"require": "./dist/cjs/index.js",
|
|
25
|
+
"default": "./dist/esm/index.js"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
|
-
"build": "hanzogui-build",
|
|
32
|
+
"build": "hanzogui-build --skip-native",
|
|
33
33
|
"watch": "hanzogui-build --watch",
|
|
34
34
|
"clean": "hanzogui-build clean",
|
|
35
35
|
"clean:build": "hanzogui-build clean:build"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@hanzogui/
|
|
39
|
-
"@hanzogui/
|
|
40
|
-
"@hanzogui/
|
|
41
|
-
"@hanzogui/
|
|
42
|
-
"@hanzogui/
|
|
43
|
-
"@hanzogui/
|
|
44
|
-
"@hanzogui/
|
|
45
|
-
"@hanzogui/
|
|
46
|
-
"@hanzogui/
|
|
47
|
-
"@hanzogui/web": "8.3.
|
|
38
|
+
"@hanzogui/component-helpers": "8.3.2",
|
|
39
|
+
"@hanzogui/config-default": "8.3.2",
|
|
40
|
+
"@hanzogui/core": "8.3.2",
|
|
41
|
+
"@hanzogui/font-size": "8.3.2",
|
|
42
|
+
"@hanzogui/get-button-sized": "8.3.2",
|
|
43
|
+
"@hanzogui/helpers": "8.3.2",
|
|
44
|
+
"@hanzogui/spacer": "8.3.2",
|
|
45
|
+
"@hanzogui/stacks": "8.3.2",
|
|
46
|
+
"@hanzogui/text": "8.3.2",
|
|
47
|
+
"@hanzogui/web": "8.3.2"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@hanzogui/build": "8.3.
|
|
51
|
-
"react": "
|
|
52
|
-
"vitest": "4.
|
|
50
|
+
"@hanzogui/build": "8.3.2",
|
|
51
|
+
"react": "19.2.8",
|
|
52
|
+
"vitest": "^4.1.11"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"react": ">=19"
|
|
55
|
+
"react": ">=19.2.8"
|
|
56
56
|
},
|
|
57
57
|
"module:jsx": "dist/jsx",
|
|
58
58
|
"repository": {
|
package/src/Button.test.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getDefaultGuiConfig } from '@hanzogui/config-default'
|
|
2
2
|
import { createGui } from '@hanzogui/core'
|
|
3
3
|
import { describe, expect, test } from 'vitest'
|
|
4
|
-
import { Button } from './Button'
|
|
4
|
+
import { Button } from './Button.tsx'
|
|
5
5
|
|
|
6
6
|
const conf = createGui(getDefaultGuiConfig())
|
|
7
7
|
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Button'
|
|
1
|
+
export * from './Button.tsx'
|