@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.
Files changed (53) hide show
  1. package/dist/cjs/Button.js +238 -0
  2. package/dist/cjs/Button.js.map +1 -0
  3. package/dist/cjs/index.js +5 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/package.json +1 -0
  6. package/dist/esm/Button.js +235 -0
  7. package/dist/esm/Button.js.map +1 -0
  8. package/dist/esm/index.js +2 -2
  9. package/dist/esm/index.js.map +1 -1
  10. package/package.json +24 -24
  11. package/src/Button.test.tsx +1 -1
  12. package/src/index.ts +1 -1
  13. package/types/Button.d.ts +58 -57
  14. package/types/Button.d.ts.map +1 -1
  15. package/types/index.d.ts +1 -1
  16. package/types/index.d.ts.map +1 -1
  17. package/dist/cjs/Button.cjs +0 -289
  18. package/dist/cjs/Button.native.js +0 -297
  19. package/dist/cjs/Button.native.js.map +0 -1
  20. package/dist/cjs/Button.test.cjs +0 -37
  21. package/dist/cjs/Button.test.native.js +0 -40
  22. package/dist/cjs/Button.test.native.js.map +0 -1
  23. package/dist/cjs/index.cjs +0 -20
  24. package/dist/cjs/index.native.js +0 -23
  25. package/dist/cjs/index.native.js.map +0 -1
  26. package/dist/esm/Button.mjs +0 -263
  27. package/dist/esm/Button.mjs.map +0 -1
  28. package/dist/esm/Button.native.js +0 -268
  29. package/dist/esm/Button.native.js.map +0 -1
  30. package/dist/esm/Button.test.mjs +0 -38
  31. package/dist/esm/Button.test.mjs.map +0 -1
  32. package/dist/esm/Button.test.native.js +0 -38
  33. package/dist/esm/Button.test.native.js.map +0 -1
  34. package/dist/esm/index.mjs +0 -2
  35. package/dist/esm/index.mjs.map +0 -1
  36. package/dist/esm/index.native.js +0 -2
  37. package/dist/esm/index.native.js.map +0 -1
  38. package/dist/jsx/Button.mjs +0 -263
  39. package/dist/jsx/Button.mjs.map +0 -1
  40. package/dist/jsx/Button.native.js +0 -297
  41. package/dist/jsx/Button.native.js.map +0 -1
  42. package/dist/jsx/Button.test.mjs +0 -38
  43. package/dist/jsx/Button.test.mjs.map +0 -1
  44. package/dist/jsx/Button.test.native.js +0 -40
  45. package/dist/jsx/Button.test.native.js.map +0 -1
  46. package/dist/jsx/index.js +0 -2
  47. package/dist/jsx/index.js.map +0 -1
  48. package/dist/jsx/index.mjs +0 -2
  49. package/dist/jsx/index.mjs.map +0 -1
  50. package/dist/jsx/index.native.js +0 -23
  51. package/dist/jsx/index.native.js.map +0 -1
  52. package/types/Button.test.d.ts +0 -2
  53. 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":";;;;AAAA,mDAAiD;AACjD,iEAA2D;AAC3D,mEAAsE;AACtE,6CAAwF;AAExF,yCAAgE;AAEhE,uCAOsB;AAEtB,iCAAkC;AAUlC,MAAM,OAAO,GAAG,IAAA,yBAAmB,EAAsB;IACvD,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS;IACxB,qBAAqB,EAAE,SAAS;IAChC,SAAS,EAAE,SAAS;CACrB,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,IAAA,YAAM,EAAC,UAAI,EAAE;IACzB,OAAO;IACP,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,mCAAQ,IAAI,EAAC,QAAQ,GAAG;IAChC,QAAQ,EAAE,CAAC;IAEX,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,kCAAkC;gBAClC,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,eAAe,EAAE,aAAa;aAC/B;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,QAAQ;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,KAAK;gBACpB,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,aAAa;gBAE1B,eAAe,EAAE;oBACf,MAAM,EAAE,SAAS;iBAClB;gBAED,UAAU,EAAE;oBACV,eAAe,EAAE,kBAAkB;oBACnC,WAAW,EAAE,mBAAmB;iBACjC;gBAED,UAAU,EAAE;oBACV,eAAe,EAAE,kBAAkB;oBACnC,WAAW,EAAE,mBAAmB;iBACjC;gBAED,iBAAiB,EAAE;oBACjB,YAAY,EAAE,eAAe;oBAC7B,YAAY,EAAE,OAAO;oBACrB,YAAY,EAAE,CAAC;iBAChB;aACF;SACF;QAED,OAAO,EAAE;YACP,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,eAAe,EAAE,aAAa;oBAC9B,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,cAAc;oBAE3B,UAAU,EAAE;wBACV,eAAe,EAAE,aAAa;wBAC9B,WAAW,EAAE,mBAAmB;qBACjC;oBAED,UAAU,EAAE;wBACV,eAAe,EAAE,aAAa;wBAC9B,WAAW,EAAE,mBAAmB;qBACjC;iBACF;SACR;QAED,QAAQ,EAAE,0BAAiB,CAAC,QAAQ;QAEpC,UAAU,EAAE,0BAAiB,CAAC,UAAU;QAExC,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,IAAA,iCAAc,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,GAAG,GAAG,IAAA,mBAAa,EAAC,GAAY,CAAC,CAAA;gBACvC,OAAO;oBACL,GAAG,WAAW;oBACd,GAAG;iBACJ,CAAA;YACH,CAAC;YACD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,IAAA,iCAAc,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;gBACrB,OAAO;oBACL,GAAG,WAAW;oBACd,GAAG;iBACJ,CAAA;YACH,CAAC;SACF;QAED,SAAS,EAAE;YACT,SAAS,EAAE,qBAAY;YACvB,SAAS,EAAE,qBAAY;SACxB;QAED,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,aAAa,EAAE,MAAM;gBACrB,aAAa;gBACb,eAAe,EAAE,IAAI;aACtB;SACF;KACO;IAEV,eAAe,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG;KAC3C;CACF,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG,IAAA,YAAM,EAAC,kBAAW,EAAE;IAC/B,OAAO;IAEP,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,KAAK,EAAE;gBACL,UAAU,EAAE,MAAM;gBAClB,mFAAmF;gBACnF,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;gBAEf,eAAe,EAAE;oBACf,MAAM,EAAE,SAAS;iBAClB;aACF;SACF;KACO;IAEV,eAAe,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG;KAC3C;CACF,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG,CAAC,KAIb,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAA;IAChD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,aAAa,CAAC,IAAI,CAAA;IAC5C,MAAM,aAAa,GACjB,aAAa,CAAC,KAAK,KAAK,OAAO,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ;QACxE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC,KAAK,CAAA;IACzB,MAAM,SAAS,GAAG,IAAA,mCAAe,EAAC,aAAa,CAAC,CAAA;IAEhD,MAAM,QAAQ,GACZ,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAA,uBAAW,EAAC,SAAkB,CAAC,CAAC;QACnF,SAAS,CAAA;IAEX,OAAO,IAAA,2BAAO,EAAC,QAAQ,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;AACJ,CAAC,CAAA;AAEY,QAAA,aAAa,GAAG,IAAA,yBAAmB,EAI7C;IACD,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;CACjB,CAAC,CAAA;AAsBF,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IACzE,MAAM,QAAQ,GAAG,IAAA,kBAAU,EAAC,6BAAoB,CAAC,CAAA;IAEjD,gFAAgF;IAChF,MAAM,cAAc,GAAG,IAAA,cAAQ,EAAC,OAAO,EAAE;QACvC,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,SAAS,GAAG,CAAC,EACb,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,SAAS,EACT,GAAG,KAAK,EACT,GAAG,cAAc,CAAA;IAElB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAErE,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,KAAK,CAAA;IACnE,MAAM,aAAa,GACjB,YAAY,KAAK,OAAO,IAAI,OAAO,YAAY,KAAK,QAAQ;QAC1D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAA;IAClB,MAAM,SAAS,GAAG,IAAA,mCAAe,EAAC,aAAa,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,IAAI,aAAa,EAAE,IAAI,CAAA;IACzD,MAAM,cAAc,GAClB,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAA,uBAAW,EAAC,SAAkB,CAAC,CAAC;QACnF,SAAS,CAAA;IAEX,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnE,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,OAAO,IAAA,2BAAO,EAAC,IAAI,EAAE;YACnB,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,SAAS;YAChB,wGAAwG;SACzG,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,IAAA,yBAAkB,EACxC,IAAI,EACJ;QACE,QAAQ;QACR,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,QAAQ;QACjE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,UAAU;QACzE,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,QAAQ;QACjE,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS;QACrE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,UAAU;QACzE,aAAa,EACX,aAAa,IAAI,OAAO,CAAC,aAAa,IAAI,aAAa,EAAE,aAAa;QACxE,qBAAqB,EACnB,qBAAqB;YACrB,OAAO,CAAC,qBAAqB;YAC7B,aAAa,EAAE,qBAAqB;QACtC,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU;QAC5C,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS;QACrE,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS;KAC1C,EACD;QACE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG;QAC1C,IAAI,EAAE,SAAS,IAAI,aAAa,EAAE,IAAI;KACvC,CACF,CAAA;IAED,MAAM,WAAW,GAAsB;QACrC,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,QAAQ;QACjE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,UAAU;QACzE,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,QAAQ;QACjE,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS;QACrE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,UAAU;QACzE,aAAa,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa,IAAI,aAAa,EAAE,aAAa;QACrF,qBAAqB,EACnB,qBAAqB;YACrB,OAAO,CAAC,qBAAqB;YAC7B,aAAa,EAAE,qBAAqB;QACtC,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS;KACtE,CAAA;IAED,MAAM,aAAa,GAAwB;QACzC,GAAG,aAAa;QAChB,GAAG,WAAW;QACd,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,aAAa,EAAE,IAAI;QACvD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,aAAa,EAAE,OAAO;QACnE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS;KAC5E,CAAA;IAED,OAAO,CACL,uBAAC,6BAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YACxC,uBAAC,OAAO,CAAC,QAAQ,OAAK,aAAa,YACjC,wBAAC,KAAK,IACJ,GAAG,EAAE,GAAG,KACJ,KAAK,KACL,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAEhC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EACjD,QAAQ,EAAE,CAAC,aAEV,UAAU,EACV,eAAe,EACf,eAAe,IACV,GACS,GACW,CACjC,CAAA;AACH,CAAC,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,0BAAoB,EAAC,eAAe,EAAE;IAC1D,KAAK,EAAE,OAAO,CAAC,QAAQ;IACvB,KAAK;IACL,IAAI;IACJ,IAAI;CACL,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Button.js"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -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 "./Button.mjs";
2
- //# sourceMappingURL=index.js.map
1
+ export * from './Button.js';
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
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.0",
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.native.js",
21
- "browser": "./dist/esm/index.mjs",
22
- "module": "./dist/esm/index.mjs",
23
- "import": "./dist/esm/index.mjs",
24
- "require": "./dist/cjs/index.cjs",
25
- "default": "./dist/esm/index.mjs"
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/config-default": "8.3.0",
39
- "@hanzogui/core": "8.3.0",
40
- "@hanzogui/get-button-sized": "8.3.0",
41
- "@hanzogui/helpers": "8.3.0",
42
- "@hanzogui/component-helpers": "8.3.0",
43
- "@hanzogui/spacer": "8.3.0",
44
- "@hanzogui/stacks": "8.3.0",
45
- "@hanzogui/text": "8.3.0",
46
- "@hanzogui/font-size": "8.3.0",
47
- "@hanzogui/web": "8.3.0"
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.0",
51
- "react": ">=19",
52
- "vitest": "4.0.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": {
@@ -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'