elseware-ui 2.40.3 → 3.0.0
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/LICENSE +20 -20
- package/dist/index.css +124 -24
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +82 -251
- package/dist/index.d.ts +82 -251
- package/dist/index.js +630 -430
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +320 -123
- package/dist/index.mjs.map +1 -1
- package/dist/index.native.d.mts +7 -0
- package/dist/index.native.d.ts +7 -0
- package/dist/index.native.js +351 -0
- package/dist/index.native.js.map +1 -0
- package/dist/index.native.mjs +346 -0
- package/dist/index.native.mjs.map +1 -0
- package/dist/resolveGlobalConfigs-CcaOIQCE.d.mts +228 -0
- package/dist/resolveGlobalConfigs-CcaOIQCE.d.ts +228 -0
- package/package.json +32 -4
- package/tailwind.preset.js +116 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
import { Pressable, View, ActivityIndicator, Text } from 'react-native';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { createContext, useState, useContext } from 'react';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
import { jsx as jsx$1, jsxs } from 'nativewind/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
// src/components/data-entry/button/native/Button.native.tsx
|
|
8
|
+
|
|
9
|
+
// node_modules/clsx/dist/clsx.mjs
|
|
10
|
+
function r(e) {
|
|
11
|
+
var t, f, n = "";
|
|
12
|
+
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
13
|
+
else if ("object" == typeof e) if (Array.isArray(e)) {
|
|
14
|
+
var o = e.length;
|
|
15
|
+
for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
|
|
16
|
+
} else for (f in e) e[f] && (n && (n += " "), n += f);
|
|
17
|
+
return n;
|
|
18
|
+
}
|
|
19
|
+
function clsx() {
|
|
20
|
+
for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
21
|
+
return n;
|
|
22
|
+
}
|
|
23
|
+
var clsx_default = clsx;
|
|
24
|
+
function cn(...inputs) {
|
|
25
|
+
return twMerge(clsx_default(inputs));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// src/utils/styles.ts
|
|
29
|
+
function resolveAppearanceStyles({
|
|
30
|
+
appearance = "solid",
|
|
31
|
+
variant = "default",
|
|
32
|
+
solid,
|
|
33
|
+
lite,
|
|
34
|
+
ghost
|
|
35
|
+
}) {
|
|
36
|
+
switch (appearance) {
|
|
37
|
+
case "ghost":
|
|
38
|
+
return ghost[variant];
|
|
39
|
+
case "lite":
|
|
40
|
+
return lite[variant];
|
|
41
|
+
default:
|
|
42
|
+
return solid[variant];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
var EUIContext = createContext(null);
|
|
46
|
+
var EUIProvider = ({
|
|
47
|
+
config,
|
|
48
|
+
children
|
|
49
|
+
}) => {
|
|
50
|
+
const [state, setState] = useState(config);
|
|
51
|
+
return /* @__PURE__ */ jsx(EUIContext.Provider, { value: { config: state, setConfig: setState }, children });
|
|
52
|
+
};
|
|
53
|
+
var useEUIConfig = () => {
|
|
54
|
+
const ctx = useContext(EUIContext);
|
|
55
|
+
if (!ctx) {
|
|
56
|
+
throw new Error("useEUIConfig must be used inside EUIProvider");
|
|
57
|
+
}
|
|
58
|
+
return ctx;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// src/components/eui/resolveGlobalConfigs.tsx
|
|
62
|
+
function resolveWithGlobal(config, props, defaults) {
|
|
63
|
+
return {
|
|
64
|
+
...defaults,
|
|
65
|
+
...config?.global ?? {},
|
|
66
|
+
...props
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// src/components/data-entry/button/base/Button.config.ts
|
|
71
|
+
var buttonModeAppearance = {
|
|
72
|
+
contained: "solid",
|
|
73
|
+
"contained-tonal": "lite",
|
|
74
|
+
outlined: "ghost",
|
|
75
|
+
text: "ghost"
|
|
76
|
+
};
|
|
77
|
+
function useResolvedButtonConfig({
|
|
78
|
+
compact = false,
|
|
79
|
+
mode,
|
|
80
|
+
variant,
|
|
81
|
+
appearance,
|
|
82
|
+
shape,
|
|
83
|
+
size
|
|
84
|
+
}) {
|
|
85
|
+
const eui = useEUIConfig();
|
|
86
|
+
const configuredSize = size ?? eui?.config?.global?.size ?? "md";
|
|
87
|
+
return {
|
|
88
|
+
shape: shape ?? eui?.config?.global?.shape ?? "square",
|
|
89
|
+
size: compact && configuredSize === "md" ? "sm" : configuredSize,
|
|
90
|
+
variant: variant ?? eui?.config?.global?.variant ?? "success",
|
|
91
|
+
appearance: appearance ?? (mode ? buttonModeAppearance[mode] : "solid")
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// src/data/styles.tsx
|
|
96
|
+
var variantsSolid = {
|
|
97
|
+
["default" /* default */]: "bg-gray-300 text-gray-900 hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600",
|
|
98
|
+
["primary" /* primary */]: "bg-gradient-to-r from-eui-primary-500 to-eui-primary-600 text-white hover:brightness-110",
|
|
99
|
+
["secondary" /* secondary */]: "bg-gradient-to-r from-eui-secondary-600 to-eui-secondary-500 text-white hover:brightness-110",
|
|
100
|
+
["success" /* success */]: "bg-gradient-to-r from-eui-success-600 to-eui-success-500 text-white hover:brightness-110",
|
|
101
|
+
["danger" /* danger */]: "bg-gradient-to-r from-eui-danger-600 to-eui-danger-500 text-white hover:brightness-110",
|
|
102
|
+
["warning" /* warning */]: "bg-gradient-to-r from-eui-warning-500 to-eui-warning-400 text-black hover:brightness-105",
|
|
103
|
+
["info" /* info */]: "bg-gradient-to-r from-eui-info-600 to-eui-info-500 text-white hover:brightness-110",
|
|
104
|
+
["light" /* light */]: "bg-gradient-to-r from-eui-light-400 to-eui-light-300 text-gray-900 hover:brightness-105 dark:from-gray-200 dark:to-gray-100 dark:text-gray-900",
|
|
105
|
+
["dark" /* dark */]: "bg-gradient-to-r from-eui-dark-400 to-eui-dark-500 text-white hover:brightness-110 dark:from-eui-dark-300 dark:to-eui-dark-400"
|
|
106
|
+
};
|
|
107
|
+
var variantsLite = {
|
|
108
|
+
["default" /* default */]: "bg-gray-500/10 border border-gray-300 text-gray-700 dark:bg-gray-400/10 dark:border-gray-700 dark:text-gray-200",
|
|
109
|
+
["primary" /* primary */]: "bg-eui-primary-500/10 border border-eui-primary-500/30 text-eui-primary-400 dark:text-eui-primary-300",
|
|
110
|
+
["secondary" /* secondary */]: "bg-eui-secondary-500/10 border border-eui-secondary-500/30 text-eui-secondary-500 dark:text-eui-secondary-400",
|
|
111
|
+
["success" /* success */]: "bg-eui-success-500/10 border border-eui-success-500/30 text-eui-success-500 dark:text-eui-success-400",
|
|
112
|
+
["danger" /* danger */]: "bg-eui-danger-500/10 border border-eui-danger-500/30 text-eui-danger-500 dark:text-eui-danger-400",
|
|
113
|
+
["warning" /* warning */]: "bg-eui-warning-500/10 border border-eui-warning-500/30 text-eui-warning-600 dark:text-eui-warning-400",
|
|
114
|
+
["info" /* info */]: "bg-eui-info-500/10 border border-eui-info-500/30 text-eui-info-500 dark:text-eui-info-400",
|
|
115
|
+
["light" /* light */]: "bg-white/40 border border-white/30 text-gray-800 dark:bg-white/10 dark:border-white/10 dark:text-gray-100",
|
|
116
|
+
["dark" /* dark */]: "bg-eui-dark-500/10 border border-eui-dark-500/30 text-eui-dark-500 dark:text-eui-dark-300"
|
|
117
|
+
};
|
|
118
|
+
var variantsGhost = {
|
|
119
|
+
["default" /* default */]: "bg-transparent border border-gray-300 text-gray-700 hover:bg-gray-100 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800",
|
|
120
|
+
["primary" /* primary */]: "bg-transparent border border-eui-primary-500 text-eui-primary-500 hover:bg-eui-primary-500/10 dark:text-eui-primary-300 dark:border-eui-primary-400",
|
|
121
|
+
["secondary" /* secondary */]: "bg-transparent border border-eui-secondary-500 text-eui-secondary-500 hover:bg-eui-secondary-500/10 dark:text-eui-secondary-400 dark:border-eui-secondary-400",
|
|
122
|
+
["success" /* success */]: "bg-transparent border border-eui-success-500 text-eui-success-500 hover:bg-eui-success-500/10 dark:text-eui-success-400 dark:border-eui-success-400",
|
|
123
|
+
["danger" /* danger */]: "bg-transparent border border-eui-danger-500 text-eui-danger-500 hover:bg-eui-danger-500/10 dark:text-eui-danger-400 dark:border-eui-danger-400",
|
|
124
|
+
["warning" /* warning */]: "bg-transparent border border-eui-warning-500 text-eui-warning-600 hover:bg-eui-warning-500/10 dark:text-eui-warning-400 dark:border-eui-warning-400",
|
|
125
|
+
["info" /* info */]: "bg-transparent border border-eui-info-500 text-eui-info-500 hover:bg-eui-info-500/10 dark:text-eui-info-400 dark:border-eui-info-400",
|
|
126
|
+
["light" /* light */]: "bg-transparent border border-gray-300 text-gray-700 hover:bg-white/10 dark:border-gray-500 dark:text-gray-100 dark:hover:bg-white/5",
|
|
127
|
+
["dark" /* dark */]: "bg-transparent border border-eui-dark-500 text-eui-dark-500 hover:bg-eui-dark-500/10 dark:text-eui-dark-300 dark:border-eui-dark-300"
|
|
128
|
+
};
|
|
129
|
+
var shapes = {
|
|
130
|
+
["square" /* square */]: "rounded-none",
|
|
131
|
+
["roundedSquare" /* roundedSquare */]: "rounded-md",
|
|
132
|
+
["softRoundedSquare" /* softRoundedSquare */]: "rounded-lg",
|
|
133
|
+
["circle" /* circle */]: "rounded-full"
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// src/components/data-entry/button/base/Button.styles.ts
|
|
137
|
+
var buttonShapes = shapes;
|
|
138
|
+
var buttonIconSizes = {
|
|
139
|
+
xs: 14,
|
|
140
|
+
sm: 16,
|
|
141
|
+
md: 18,
|
|
142
|
+
lg: 20,
|
|
143
|
+
xl: 22
|
|
144
|
+
};
|
|
145
|
+
function resolveButtonVariantStyles({
|
|
146
|
+
appearance,
|
|
147
|
+
variant
|
|
148
|
+
}) {
|
|
149
|
+
return resolveAppearanceStyles({
|
|
150
|
+
appearance,
|
|
151
|
+
variant,
|
|
152
|
+
solid: variantsSolid,
|
|
153
|
+
lite: variantsLite,
|
|
154
|
+
ghost: variantsGhost
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function getButtonTextColorClassName(className) {
|
|
158
|
+
return className.split(/\s+/).filter(
|
|
159
|
+
(token) => token.startsWith("text-") || token.startsWith("dark:text-") || token.startsWith("disabled:text-")
|
|
160
|
+
).join(" ");
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// src/components/data-entry/button/native/Button.native.styles.ts
|
|
164
|
+
var nativeButtonSizes = {
|
|
165
|
+
xs: {
|
|
166
|
+
rootClassName: "min-h-[30px] px-2.5 py-1",
|
|
167
|
+
labelClassName: "text-xs leading-[14px]",
|
|
168
|
+
slotClassName: "h-[14px] w-[14px]"
|
|
169
|
+
},
|
|
170
|
+
sm: {
|
|
171
|
+
rootClassName: "min-h-9 px-3 py-1.5",
|
|
172
|
+
labelClassName: "text-sm leading-4",
|
|
173
|
+
slotClassName: "h-4 w-4"
|
|
174
|
+
},
|
|
175
|
+
md: {
|
|
176
|
+
rootClassName: "min-h-11 px-4 py-2",
|
|
177
|
+
labelClassName: "text-[15px] leading-[18px]",
|
|
178
|
+
slotClassName: "h-[18px] w-[18px]"
|
|
179
|
+
},
|
|
180
|
+
lg: {
|
|
181
|
+
rootClassName: "min-h-[50px] px-[18px] py-3",
|
|
182
|
+
labelClassName: "text-[17px] leading-5",
|
|
183
|
+
slotClassName: "h-5 w-5"
|
|
184
|
+
},
|
|
185
|
+
xl: {
|
|
186
|
+
rootClassName: "min-h-14 px-[22px] py-4",
|
|
187
|
+
labelClassName: "text-[19px] leading-[22px]",
|
|
188
|
+
slotClassName: "h-[22px] w-[22px]"
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
var nativeLabelBaseStyle = {
|
|
192
|
+
includeFontPadding: false,
|
|
193
|
+
textAlignVertical: "center"
|
|
194
|
+
};
|
|
195
|
+
function Button({
|
|
196
|
+
icon,
|
|
197
|
+
text,
|
|
198
|
+
children,
|
|
199
|
+
loading = false,
|
|
200
|
+
disabled = false,
|
|
201
|
+
block = false,
|
|
202
|
+
compact = false,
|
|
203
|
+
mode,
|
|
204
|
+
buttonColor,
|
|
205
|
+
textColor,
|
|
206
|
+
contentClassName,
|
|
207
|
+
labelClassName,
|
|
208
|
+
className,
|
|
209
|
+
variant,
|
|
210
|
+
appearance,
|
|
211
|
+
shape,
|
|
212
|
+
size,
|
|
213
|
+
style,
|
|
214
|
+
contentStyle,
|
|
215
|
+
labelStyle,
|
|
216
|
+
accessibilityRole = "button",
|
|
217
|
+
accessibilityState,
|
|
218
|
+
type: _type,
|
|
219
|
+
onClick: _onClick,
|
|
220
|
+
onMouseMove: _onMouseMove,
|
|
221
|
+
onPress,
|
|
222
|
+
...rest
|
|
223
|
+
}) {
|
|
224
|
+
const {
|
|
225
|
+
shape: resolvedShape,
|
|
226
|
+
size: resolvedSize,
|
|
227
|
+
variant: resolvedVariant,
|
|
228
|
+
appearance: resolvedAppearance
|
|
229
|
+
} = useResolvedButtonConfig({
|
|
230
|
+
compact,
|
|
231
|
+
mode,
|
|
232
|
+
variant,
|
|
233
|
+
appearance,
|
|
234
|
+
shape,
|
|
235
|
+
size
|
|
236
|
+
});
|
|
237
|
+
const metrics = nativeButtonSizes[resolvedSize];
|
|
238
|
+
const iconSize = buttonIconSizes[resolvedSize];
|
|
239
|
+
const variantStyles = resolveButtonVariantStyles({
|
|
240
|
+
appearance: resolvedAppearance,
|
|
241
|
+
variant: resolvedVariant
|
|
242
|
+
});
|
|
243
|
+
const textColorClassName = getButtonTextColorClassName(variantStyles);
|
|
244
|
+
const rootStyle = {
|
|
245
|
+
...mode === "text" ? {
|
|
246
|
+
backgroundColor: "transparent",
|
|
247
|
+
borderColor: "transparent"
|
|
248
|
+
} : null,
|
|
249
|
+
...buttonColor && mode !== "text" ? {
|
|
250
|
+
backgroundColor: buttonColor,
|
|
251
|
+
borderColor: buttonColor
|
|
252
|
+
} : null,
|
|
253
|
+
...!buttonColor && textColor && resolvedAppearance !== "solid" ? { borderColor: textColor } : null
|
|
254
|
+
};
|
|
255
|
+
const labelTextStyle = textColor ? { color: textColor } : null;
|
|
256
|
+
const content = text ?? children;
|
|
257
|
+
const resolvedIcon = typeof icon === "function" ? icon({ color: textColor ?? "currentColor", size: iconSize }) : icon;
|
|
258
|
+
return /* @__PURE__ */ jsx$1(
|
|
259
|
+
Pressable,
|
|
260
|
+
{
|
|
261
|
+
...rest,
|
|
262
|
+
accessibilityRole,
|
|
263
|
+
accessibilityState: {
|
|
264
|
+
disabled: disabled || loading,
|
|
265
|
+
...accessibilityState
|
|
266
|
+
},
|
|
267
|
+
className: cn(
|
|
268
|
+
"relative items-center justify-center overflow-hidden",
|
|
269
|
+
variantStyles,
|
|
270
|
+
buttonShapes[resolvedShape],
|
|
271
|
+
metrics.rootClassName,
|
|
272
|
+
block && "w-full",
|
|
273
|
+
mode === "text" && "border-transparent bg-transparent",
|
|
274
|
+
(disabled || loading) && "opacity-55",
|
|
275
|
+
!disabled && !loading && "active:opacity-80",
|
|
276
|
+
className
|
|
277
|
+
),
|
|
278
|
+
disabled: disabled || loading,
|
|
279
|
+
onPress,
|
|
280
|
+
style: ({ pressed }) => [
|
|
281
|
+
rootStyle,
|
|
282
|
+
pressed && !disabled && !loading ? { opacity: 0.82 } : null,
|
|
283
|
+
disabled || loading ? { opacity: 0.55 } : null,
|
|
284
|
+
style
|
|
285
|
+
],
|
|
286
|
+
children: /* @__PURE__ */ jsxs(
|
|
287
|
+
View,
|
|
288
|
+
{
|
|
289
|
+
className: cn(
|
|
290
|
+
"z-10 flex-row items-center justify-center gap-2",
|
|
291
|
+
contentClassName
|
|
292
|
+
),
|
|
293
|
+
style: contentStyle,
|
|
294
|
+
children: [
|
|
295
|
+
loading ? /* @__PURE__ */ jsx$1(
|
|
296
|
+
View,
|
|
297
|
+
{
|
|
298
|
+
className: cn(
|
|
299
|
+
"shrink-0 items-center justify-center",
|
|
300
|
+
metrics.slotClassName
|
|
301
|
+
),
|
|
302
|
+
children: /* @__PURE__ */ jsx$1(
|
|
303
|
+
ActivityIndicator,
|
|
304
|
+
{
|
|
305
|
+
className: textColorClassName,
|
|
306
|
+
color: textColor,
|
|
307
|
+
size: "small"
|
|
308
|
+
}
|
|
309
|
+
)
|
|
310
|
+
}
|
|
311
|
+
) : null,
|
|
312
|
+
!loading && resolvedIcon ? /* @__PURE__ */ jsx$1(
|
|
313
|
+
View,
|
|
314
|
+
{
|
|
315
|
+
className: cn(
|
|
316
|
+
"shrink-0 items-center justify-center",
|
|
317
|
+
metrics.slotClassName
|
|
318
|
+
),
|
|
319
|
+
children: resolvedIcon
|
|
320
|
+
}
|
|
321
|
+
) : null,
|
|
322
|
+
typeof content === "string" || typeof content === "number" ? /* @__PURE__ */ jsx$1(View, { className: "items-center justify-center", children: /* @__PURE__ */ jsx$1(
|
|
323
|
+
Text,
|
|
324
|
+
{
|
|
325
|
+
className: cn(
|
|
326
|
+
"font-bold",
|
|
327
|
+
metrics.labelClassName,
|
|
328
|
+
textColorClassName,
|
|
329
|
+
labelClassName
|
|
330
|
+
),
|
|
331
|
+
numberOfLines: 1,
|
|
332
|
+
style: [nativeLabelBaseStyle, labelTextStyle, labelStyle],
|
|
333
|
+
children: content
|
|
334
|
+
}
|
|
335
|
+
) }) : content
|
|
336
|
+
]
|
|
337
|
+
}
|
|
338
|
+
)
|
|
339
|
+
}
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
var Button_native_default = Button;
|
|
343
|
+
|
|
344
|
+
export { Button_native_default as Button, EUIProvider, resolveWithGlobal, useEUIConfig };
|
|
345
|
+
//# sourceMappingURL=index.native.mjs.map
|
|
346
|
+
//# sourceMappingURL=index.native.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/clsx/dist/clsx.mjs","../src/utils/cn.ts","../src/utils/styles.ts","../src/components/eui/EUIProvider.tsx","../src/components/eui/resolveGlobalConfigs.tsx","../src/components/data-entry/button/base/Button.config.ts","../src/data/styles.tsx","../src/components/data-entry/button/base/Button.styles.ts","../src/components/data-entry/button/native/Button.native.styles.ts","../src/components/data-entry/button/native/Button.native.tsx"],"names":["jsx"],"mappings":"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","file":"index.native.mjs","sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { ClassValue } from \"clsx\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { Appearance, Variant } from \"../types\";\n\ninterface ResolveAppearanceStylesProps<T> {\n appearance?: Appearance;\n variant: Variant;\n solid: Record<Variant, T>;\n lite: Record<Variant, T>;\n ghost: Record<Variant, T>;\n}\n\nexport function resolveAppearanceStyles<T = string>({\n appearance = \"solid\",\n variant = \"default\",\n solid,\n lite,\n ghost,\n}: ResolveAppearanceStylesProps<T>): T {\n switch (appearance) {\n case \"ghost\":\n return ghost[variant];\n\n case \"lite\":\n return lite[variant];\n\n default:\n return solid[variant];\n }\n}\n","import React, { createContext, useContext, useState } from \"react\";\nimport { EUIConfigs } from \"./EUITypes\";\n\ninterface EUIContextValue {\n config: EUIConfigs;\n setConfig: React.Dispatch<React.SetStateAction<EUIConfigs>>;\n}\n\nconst EUIContext = createContext<EUIContextValue | null>(null);\n\nexport const EUIProvider = ({\n config,\n children,\n}: {\n config: EUIConfigs;\n children: React.ReactNode;\n}) => {\n const [state, setState] = useState<EUIConfigs>(config);\n\n return (\n <EUIContext.Provider value={{ config: state, setConfig: setState }}>\n {children}\n </EUIContext.Provider>\n );\n};\n\nexport const useEUIConfig = () => {\n const ctx = useContext(EUIContext);\n if (!ctx) {\n throw new Error(\"useEUIConfig must be used inside EUIProvider\");\n }\n return ctx;\n};\n","import { EUIConfigs } from \"./EUITypes\";\n\nexport function resolveWithGlobal<T>(\n config: EUIConfigs | null,\n props: T,\n defaults: Partial<T>,\n): T {\n return {\n ...defaults,\n ...(config?.global ?? {}),\n ...props,\n } as T;\n}\n","import { useEUIConfig } from \"../../../eui\";\n\nimport type { Appearance, Shape, Size, Variant } from \"../../../../types\";\nimport type { ButtonMode, ButtonProps } from \"./Button.types\";\n\nexport const buttonModeAppearance: Record<ButtonMode, Appearance> = {\n contained: \"solid\",\n \"contained-tonal\": \"lite\",\n outlined: \"ghost\",\n text: \"ghost\",\n};\n\nexport interface ResolvedButtonConfig {\n shape: Shape;\n size: Size;\n variant: Variant;\n appearance: Appearance;\n}\n\nexport function useResolvedButtonConfig({\n compact = false,\n mode,\n variant,\n appearance,\n shape,\n size,\n}: Pick<\n ButtonProps,\n \"compact\" | \"mode\" | \"variant\" | \"appearance\" | \"shape\" | \"size\"\n>): ResolvedButtonConfig {\n const eui = useEUIConfig();\n const configuredSize = size ?? eui?.config?.global?.size ?? \"md\";\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n size: compact && configuredSize === \"md\" ? \"sm\" : configuredSize,\n variant: variant ?? eui?.config?.global?.variant ?? \"success\",\n appearance: appearance ?? (mode ? buttonModeAppearance[mode] : \"solid\"),\n };\n}\n","import {\n Decoration,\n Shape,\n Target,\n ToastPosition,\n ToastStatus,\n Variant,\n} from \"./enums\";\n\nexport const variantsSolid: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-300 text-gray-900 hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600\",\n [Variant.primary]:\n \"bg-gradient-to-r from-eui-primary-500 to-eui-primary-600 text-white hover:brightness-110\",\n [Variant.secondary]:\n \"bg-gradient-to-r from-eui-secondary-600 to-eui-secondary-500 text-white hover:brightness-110\",\n [Variant.success]:\n \"bg-gradient-to-r from-eui-success-600 to-eui-success-500 text-white hover:brightness-110\",\n [Variant.danger]:\n \"bg-gradient-to-r from-eui-danger-600 to-eui-danger-500 text-white hover:brightness-110\",\n [Variant.warning]:\n \"bg-gradient-to-r from-eui-warning-500 to-eui-warning-400 text-black hover:brightness-105\",\n [Variant.info]:\n \"bg-gradient-to-r from-eui-info-600 to-eui-info-500 text-white hover:brightness-110\",\n [Variant.light]:\n \"bg-gradient-to-r from-eui-light-400 to-eui-light-300 text-gray-900 hover:brightness-105 dark:from-gray-200 dark:to-gray-100 dark:text-gray-900\",\n [Variant.dark]:\n \"bg-gradient-to-r from-eui-dark-400 to-eui-dark-500 text-white hover:brightness-110 dark:from-eui-dark-300 dark:to-eui-dark-400\",\n};\n\nexport const variantsLite: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-500/10 border border-gray-300 text-gray-700 dark:bg-gray-400/10 dark:border-gray-700 dark:text-gray-200\",\n [Variant.primary]:\n \"bg-eui-primary-500/10 border border-eui-primary-500/30 text-eui-primary-400 dark:text-eui-primary-300\",\n [Variant.secondary]:\n \"bg-eui-secondary-500/10 border border-eui-secondary-500/30 text-eui-secondary-500 dark:text-eui-secondary-400\",\n [Variant.success]:\n \"bg-eui-success-500/10 border border-eui-success-500/30 text-eui-success-500 dark:text-eui-success-400\",\n [Variant.danger]:\n \"bg-eui-danger-500/10 border border-eui-danger-500/30 text-eui-danger-500 dark:text-eui-danger-400\",\n [Variant.warning]:\n \"bg-eui-warning-500/10 border border-eui-warning-500/30 text-eui-warning-600 dark:text-eui-warning-400\",\n [Variant.info]:\n \"bg-eui-info-500/10 border border-eui-info-500/30 text-eui-info-500 dark:text-eui-info-400\",\n [Variant.light]:\n \"bg-white/40 border border-white/30 text-gray-800 dark:bg-white/10 dark:border-white/10 dark:text-gray-100\",\n [Variant.dark]:\n \"bg-eui-dark-500/10 border border-eui-dark-500/30 text-eui-dark-500 dark:text-eui-dark-300\",\n};\n\nexport const variantsGhost: Record<Variant, string> = {\n [Variant.default]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-gray-100 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800\",\n [Variant.primary]:\n \"bg-transparent border border-eui-primary-500 text-eui-primary-500 hover:bg-eui-primary-500/10 dark:text-eui-primary-300 dark:border-eui-primary-400\",\n [Variant.secondary]:\n \"bg-transparent border border-eui-secondary-500 text-eui-secondary-500 hover:bg-eui-secondary-500/10 dark:text-eui-secondary-400 dark:border-eui-secondary-400\",\n [Variant.success]:\n \"bg-transparent border border-eui-success-500 text-eui-success-500 hover:bg-eui-success-500/10 dark:text-eui-success-400 dark:border-eui-success-400\",\n [Variant.danger]:\n \"bg-transparent border border-eui-danger-500 text-eui-danger-500 hover:bg-eui-danger-500/10 dark:text-eui-danger-400 dark:border-eui-danger-400\",\n [Variant.warning]:\n \"bg-transparent border border-eui-warning-500 text-eui-warning-600 hover:bg-eui-warning-500/10 dark:text-eui-warning-400 dark:border-eui-warning-400\",\n [Variant.info]:\n \"bg-transparent border border-eui-info-500 text-eui-info-500 hover:bg-eui-info-500/10 dark:text-eui-info-400 dark:border-eui-info-400\",\n [Variant.light]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-white/10 dark:border-gray-500 dark:text-gray-100 dark:hover:bg-white/5\",\n [Variant.dark]:\n \"bg-transparent border border-eui-dark-500 text-eui-dark-500 hover:bg-eui-dark-500/10 dark:text-eui-dark-300 dark:border-eui-dark-300\",\n};\n\nexport const textVariants: Record<Variant, string> = {\n [Variant.default]: \"eui-text-md\",\n [Variant.primary]: \"text-blue-500\",\n [Variant.secondary]: \"text-gray-500\",\n [Variant.success]: \"text-green-500\",\n [Variant.danger]: \"text-red-500\",\n [Variant.warning]: \"text-yellow-500\",\n [Variant.info]: \"text-blue-400\",\n [Variant.light]: \"text-gray-300\",\n [Variant.dark]: \"text-gray-900\",\n};\n\nexport const borderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-gray-300\",\n [Variant.primary]: \"border-eui-primary-500\",\n [Variant.secondary]: \"border-eui-secondary-500\",\n [Variant.success]: \"border-eui-success-500\",\n [Variant.danger]: \"border-eui-danger-500\",\n [Variant.warning]: \"border-eui-warning-500\",\n [Variant.info]: \"border-eui-info-500\",\n [Variant.light]: \"border-eui-light-500\",\n [Variant.dark]: \"border-eui-dark-500\",\n};\n\nexport const decorations: Record<Decoration, string> = {\n [Decoration.underline]: \"underline\",\n [Decoration.overline]: \"overline\",\n [Decoration.lineThrough]: \"line-through\",\n [Decoration.noUnderline]: \"no-underline\",\n};\n\nexport const targets: Record<Target, string> = {\n [Target.blank]: \"_blank\",\n [Target.self]: \"_self\",\n [Target.parent]: \"_parent\",\n [Target.top]: \"_top\",\n};\n\nexport const shapes: Record<Shape, string> = {\n [Shape.square]: \"rounded-none\",\n [Shape.roundedSquare]: \"rounded-md\",\n [Shape.softRoundedSquare]: \"rounded-lg\",\n [Shape.circle]: \"rounded-full\",\n};\n\nexport const cardBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-white/10\",\n [Variant.primary]: \"border-eui-primary-500/30\",\n [Variant.secondary]: \"border-eui-secondary-500/30\",\n [Variant.success]: \"border-eui-success-500/30\",\n [Variant.danger]: \"border-eui-danger-500/30\",\n [Variant.warning]: \"border-eui-warning-500/30\",\n [Variant.info]: \"border-eui-info-500/30\",\n [Variant.light]: \"border-eui-light-500/30\",\n [Variant.dark]: \"border-eui-dark-500/30\",\n};\n\nexport const cardHoverBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"hover:border-white/20\",\n [Variant.primary]: \"hover:border-eui-primary-500\",\n [Variant.secondary]: \"hover:border-eui-secondary-500\",\n [Variant.success]: \"hover:border-eui-success-500\",\n [Variant.danger]: \"hover:border-eui-danger-500\",\n [Variant.warning]: \"hover:border-eui-warning-500\",\n [Variant.info]: \"hover:border-eui-info-500\",\n [Variant.light]: \"hover:border-eui-light-500\",\n [Variant.dark]: \"hover:border-eui-dark-500\",\n};\n\nexport const cardBgVariants: Record<Variant, string> = {\n [Variant.default]: \"bg-white/5\",\n [Variant.primary]: \"bg-eui-primary-500/10\",\n [Variant.secondary]: \"bg-eui-secondary-500/10\",\n [Variant.success]: \"bg-eui-success-500/10\",\n [Variant.danger]: \"bg-eui-danger-500/10\",\n [Variant.warning]: \"bg-eui-warning-500/10\",\n [Variant.info]: \"bg-eui-info-500/10\",\n [Variant.light]: \"bg-eui-light-500/10\",\n [Variant.dark]: \"bg-eui-dark-500/20\",\n};\n\nexport const checkboxVariants: Record<Variant, string> = {\n [Variant.default]:\n \"checked:bg-gray-600 checked:border-gray-600 dark:checked:bg-gray-500 dark:checked:border-gray-500\",\n\n [Variant.primary]:\n \"checked:bg-eui-primary-600 checked:border-eui-primary-600 dark:checked:bg-eui-primary-500 dark:checked:border-eui-primary-500\",\n\n [Variant.secondary]:\n \"checked:bg-eui-secondary-600 checked:border-eui-secondary-600 dark:checked:bg-eui-secondary-500 dark:checked:border-eui-secondary-500\",\n\n [Variant.success]:\n \"checked:bg-eui-success-600 checked:border-eui-success-600 dark:checked:bg-eui-success-500 dark:checked:border-eui-success-500\",\n\n [Variant.danger]:\n \"checked:bg-eui-danger-600 checked:border-eui-danger-600 dark:checked:bg-eui-danger-500 dark:checked:border-eui-danger-500\",\n\n [Variant.warning]:\n \"checked:bg-eui-warning-500 checked:border-eui-warning-500 dark:checked:bg-eui-warning-400 dark:checked:border-eui-warning-400\",\n\n [Variant.info]:\n \"checked:bg-eui-info-600 checked:border-eui-info-600 dark:checked:bg-eui-info-500 dark:checked:border-eui-info-500\",\n\n [Variant.light]:\n \"checked:bg-eui-light-400 checked:border-eui-light-400 dark:checked:bg-gray-200 dark:checked:border-gray-200\",\n\n [Variant.dark]:\n \"checked:bg-eui-dark-500 checked:border-eui-dark-500 dark:checked:bg-eui-dark-300 dark:checked:border-eui-dark-300\",\n};\n\nexport const toastPositionStyles: Record<ToastPosition, string> = {\n [ToastPosition.topLeft]: \"top-4 left-4 items-start\",\n [ToastPosition.topCenter]: \"top-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.topRight]: \"top-4 right-4 items-end\",\n\n [ToastPosition.bottomLeft]: \"bottom-4 left-4 items-start\",\n [ToastPosition.bottomCenter]:\n \"bottom-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.bottomRight]: \"bottom-4 right-4 items-end\",\n};\n\nexport type ToastDisplayVariant =\n | Variant.default\n | Variant.success\n | Variant.warning\n | Variant.danger\n | Variant.info;\n\nexport interface ToastVariantStyle {\n root: string;\n icon: string;\n progress: string;\n title: string;\n message: string;\n}\n\nexport const toastStatusVariantMap: Record<ToastStatus, ToastDisplayVariant> = {\n [ToastStatus.default]: Variant.default,\n [ToastStatus.success]: Variant.success,\n [ToastStatus.warning]: Variant.warning,\n [ToastStatus.error]: Variant.danger,\n [ToastStatus.danger]: Variant.danger,\n [ToastStatus.info]: Variant.info,\n};\n\nexport const toastVariantStyles: Record<\n ToastDisplayVariant,\n ToastVariantStyle\n> = {\n [Variant.default]: {\n root: \"border-gray-200 bg-white text-gray-900 shadow-xl dark:border-gray-700 dark:bg-gray-900 dark:text-white\",\n icon: \"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-200\",\n progress: \"bg-gray-500\",\n title: \"text-gray-950 dark:text-white\",\n message: \"text-gray-600 dark:text-gray-300\",\n },\n\n [Variant.success]: {\n root: \"border-eui-success-500/30 bg-eui-success-500/10 text-eui-success-700 shadow-xl dark:border-eui-success-400/40 dark:bg-eui-success-500/15 dark:text-eui-success-300\",\n icon: \"bg-eui-success-500/15 text-eui-success-600 dark:bg-eui-success-500/20 dark:text-eui-success-300\",\n progress: \"bg-eui-success-500\",\n title: \"text-eui-success-700 dark:text-eui-success-300\",\n message: \"text-eui-success-600 dark:text-eui-success-300/80\",\n },\n\n [Variant.warning]: {\n root: \"border-eui-warning-500/30 bg-eui-warning-500/10 text-eui-warning-700 shadow-xl dark:border-eui-warning-400/40 dark:bg-eui-warning-500/15 dark:text-eui-warning-300\",\n icon: \"bg-eui-warning-500/15 text-eui-warning-600 dark:bg-eui-warning-500/20 dark:text-eui-warning-300\",\n progress: \"bg-eui-warning-500\",\n title: \"text-eui-warning-700 dark:text-eui-warning-300\",\n message: \"text-eui-warning-600 dark:text-eui-warning-300/80\",\n },\n\n [Variant.danger]: {\n root: \"border-eui-danger-500/30 bg-eui-danger-500/10 text-eui-danger-700 shadow-xl dark:border-eui-danger-400/40 dark:bg-eui-danger-500/15 dark:text-eui-danger-300\",\n icon: \"bg-eui-danger-500/15 text-eui-danger-600 dark:bg-eui-danger-500/20 dark:text-eui-danger-300\",\n progress: \"bg-eui-danger-500\",\n title: \"text-eui-danger-700 dark:text-eui-danger-300\",\n message: \"text-eui-danger-600 dark:text-eui-danger-300/80\",\n },\n\n [Variant.info]: {\n root: \"border-eui-info-500/30 bg-eui-info-500/10 text-eui-info-700 shadow-xl dark:border-eui-info-400/40 dark:bg-eui-info-500/15 dark:text-eui-info-300\",\n icon: \"bg-eui-info-500/15 text-eui-info-600 dark:bg-eui-info-500/20 dark:text-eui-info-300\",\n progress: \"bg-eui-info-500\",\n title: \"text-eui-info-700 dark:text-eui-info-300\",\n message: \"text-eui-info-600 dark:text-eui-info-300/80\",\n },\n};\n\nexport const toastShapeStyles: Record<Shape, string> = {\n [Shape.circle]: \"!rounded-3xl\",\n [Shape.roundedSquare]: \"!rounded-lg\",\n [Shape.softRoundedSquare]: \"!rounded-3xl\",\n [Shape.square]: \"!rounded-none\",\n};\n","import {\n shapes,\n variantsGhost,\n variantsLite,\n variantsSolid,\n} from \"../../../../data/styles\";\nimport type { Shape, Size } from \"../../../../types\";\nimport { resolveAppearanceStyles } from \"../../../../utils\";\nimport type { ResolvedButtonConfig } from \"./Button.config\";\n\nexport const buttonShapes: Record<Shape, string> = shapes;\n\nexport const buttonIconSizes: Record<Size, number> = {\n xs: 14,\n sm: 16,\n md: 18,\n lg: 20,\n xl: 22,\n};\n\nexport function resolveButtonVariantStyles({\n appearance,\n variant,\n}: Pick<ResolvedButtonConfig, \"appearance\" | \"variant\">): string {\n return resolveAppearanceStyles({\n appearance,\n variant,\n solid: variantsSolid,\n lite: variantsLite,\n ghost: variantsGhost,\n });\n}\n\nexport function getButtonTextColorClassName(className: string): string {\n return className\n .split(/\\s+/)\n .filter(\n (token) =>\n token.startsWith(\"text-\") ||\n token.startsWith(\"dark:text-\") ||\n token.startsWith(\"disabled:text-\"),\n )\n .join(\" \");\n}\n","import type { Size } from \"../../../../types\";\n\nexport const nativeButtonSizes: Record<\n Size,\n {\n rootClassName: string;\n labelClassName: string;\n slotClassName: string;\n }\n> = {\n xs: {\n rootClassName: \"min-h-[30px] px-2.5 py-1\",\n labelClassName: \"text-xs leading-[14px]\",\n slotClassName: \"h-[14px] w-[14px]\",\n },\n sm: {\n rootClassName: \"min-h-9 px-3 py-1.5\",\n labelClassName: \"text-sm leading-4\",\n slotClassName: \"h-4 w-4\",\n },\n md: {\n rootClassName: \"min-h-11 px-4 py-2\",\n labelClassName: \"text-[15px] leading-[18px]\",\n slotClassName: \"h-[18px] w-[18px]\",\n },\n lg: {\n rootClassName: \"min-h-[50px] px-[18px] py-3\",\n labelClassName: \"text-[17px] leading-5\",\n slotClassName: \"h-5 w-5\",\n },\n xl: {\n rootClassName: \"min-h-14 px-[22px] py-4\",\n labelClassName: \"text-[19px] leading-[22px]\",\n slotClassName: \"h-[22px] w-[22px]\",\n },\n};\n","/** @jsxImportSource nativewind */\n// External\nimport { ActivityIndicator, Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n getButtonTextColorClassName,\n resolveButtonVariantStyles,\n useResolvedButtonConfig,\n} from \"../base\";\n\n// Types\nimport type { ButtonProps } from \"../base\";\n\n// Data\nimport { buttonIconSizes, buttonShapes } from \"../base\";\nimport { nativeButtonSizes } from \"./Button.native.styles\";\n\nconst nativeLabelBaseStyle = {\n includeFontPadding: false,\n textAlignVertical: \"center\",\n} as const;\n\nfunction Button({\n icon,\n text,\n children,\n loading = false,\n disabled = false,\n block = false,\n compact = false,\n mode,\n buttonColor,\n textColor,\n contentClassName,\n labelClassName,\n className,\n variant,\n appearance,\n shape,\n size,\n style,\n contentStyle,\n labelStyle,\n accessibilityRole = \"button\",\n accessibilityState,\n type: _type,\n onClick: _onClick,\n onMouseMove: _onMouseMove,\n onPress,\n ...rest\n}: ButtonProps) {\n const {\n shape: resolvedShape,\n size: resolvedSize,\n variant: resolvedVariant,\n appearance: resolvedAppearance,\n } = useResolvedButtonConfig({\n compact,\n mode,\n variant,\n appearance,\n shape,\n size,\n });\n\n const metrics = nativeButtonSizes[resolvedSize];\n const iconSize = buttonIconSizes[resolvedSize];\n const variantStyles = resolveButtonVariantStyles({\n appearance: resolvedAppearance,\n variant: resolvedVariant,\n });\n const textColorClassName = getButtonTextColorClassName(variantStyles);\n const rootStyle = {\n ...(mode === \"text\"\n ? {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n }\n : null),\n ...(buttonColor && mode !== \"text\"\n ? {\n backgroundColor: buttonColor,\n borderColor: buttonColor,\n }\n : null),\n ...(!buttonColor && textColor && resolvedAppearance !== \"solid\"\n ? { borderColor: textColor }\n : null),\n };\n const labelTextStyle = textColor ? { color: textColor } : null;\n const content = text ?? children;\n const resolvedIcon =\n typeof icon === \"function\"\n ? icon({ color: textColor ?? \"currentColor\", size: iconSize })\n : icon;\n\n return (\n <Pressable\n {...rest}\n accessibilityRole={accessibilityRole}\n accessibilityState={{\n disabled: disabled || loading,\n ...(accessibilityState as object),\n }}\n className={cn(\n \"relative items-center justify-center overflow-hidden\",\n variantStyles,\n buttonShapes[resolvedShape],\n metrics.rootClassName,\n block && \"w-full\",\n mode === \"text\" && \"border-transparent bg-transparent\",\n (disabled || loading) && \"opacity-55\",\n !disabled && !loading && \"active:opacity-80\",\n className,\n )}\n disabled={disabled || loading}\n onPress={onPress}\n style={({ pressed }: { pressed: boolean }) => [\n rootStyle,\n pressed && !disabled && !loading ? { opacity: 0.82 } : null,\n disabled || loading ? { opacity: 0.55 } : null,\n style,\n ]}\n >\n <View\n className={cn(\n \"z-10 flex-row items-center justify-center gap-2\",\n contentClassName,\n )}\n style={contentStyle}\n >\n {loading ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n <ActivityIndicator\n className={textColorClassName}\n color={textColor}\n size=\"small\"\n />\n </View>\n ) : null}\n {!loading && resolvedIcon ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n {resolvedIcon}\n </View>\n ) : null}\n {typeof content === \"string\" || typeof content === \"number\" ? (\n <View className=\"items-center justify-center\">\n <Text\n className={cn(\n \"font-bold\",\n metrics.labelClassName,\n textColorClassName,\n labelClassName,\n )}\n numberOfLines={1}\n style={[nativeLabelBaseStyle, labelTextStyle, labelStyle]}\n >\n {content}\n </Text>\n </View>\n ) : (\n content\n )}\n </View>\n </Pressable>\n );\n}\n\nexport default Button;\n"]}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import React__default, { HTMLAttributes, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
declare const CURRENCIES: {
|
|
4
|
+
name: string;
|
|
5
|
+
symbol: string;
|
|
6
|
+
code: string;
|
|
7
|
+
}[];
|
|
8
|
+
|
|
9
|
+
declare enum Variant$1 {
|
|
10
|
+
default = "default",
|
|
11
|
+
primary = "primary",
|
|
12
|
+
secondary = "secondary",
|
|
13
|
+
success = "success",
|
|
14
|
+
danger = "danger",
|
|
15
|
+
warning = "warning",
|
|
16
|
+
info = "info",
|
|
17
|
+
light = "light",
|
|
18
|
+
dark = "dark"
|
|
19
|
+
}
|
|
20
|
+
declare enum TextVariant {
|
|
21
|
+
default = "default",
|
|
22
|
+
primary = "primary",
|
|
23
|
+
secondary = "secondary",
|
|
24
|
+
success = "success",
|
|
25
|
+
danger = "danger",
|
|
26
|
+
warning = "warning",
|
|
27
|
+
info = "info",
|
|
28
|
+
light = "light",
|
|
29
|
+
dark = "dark"
|
|
30
|
+
}
|
|
31
|
+
declare enum Shape$1 {
|
|
32
|
+
circle = "circle",
|
|
33
|
+
roundedSquare = "roundedSquare",
|
|
34
|
+
softRoundedSquare = "softRoundedSquare",
|
|
35
|
+
square = "square"
|
|
36
|
+
}
|
|
37
|
+
declare enum Size$1 {
|
|
38
|
+
xs = "xs",
|
|
39
|
+
sm = "sm",
|
|
40
|
+
md = "md",
|
|
41
|
+
lg = "lg",
|
|
42
|
+
xl = "xl"
|
|
43
|
+
}
|
|
44
|
+
declare enum Appearance$1 {
|
|
45
|
+
solid = "solid",
|
|
46
|
+
lite = "lite",
|
|
47
|
+
ghost = "ghost"
|
|
48
|
+
}
|
|
49
|
+
declare enum Decoration {
|
|
50
|
+
underline = "underline",
|
|
51
|
+
overline = "overline",
|
|
52
|
+
lineThrough = "lineThrough",
|
|
53
|
+
noUnderline = "noUnderline"
|
|
54
|
+
}
|
|
55
|
+
declare enum Target {
|
|
56
|
+
blank = "blank",
|
|
57
|
+
self = "self",
|
|
58
|
+
parent = "parent",
|
|
59
|
+
top = "top"
|
|
60
|
+
}
|
|
61
|
+
declare enum VerticalPosition$1 {
|
|
62
|
+
top = "top",
|
|
63
|
+
bottom = "bottom"
|
|
64
|
+
}
|
|
65
|
+
declare enum HorizontalPosition$1 {
|
|
66
|
+
left = "left",
|
|
67
|
+
right = "right"
|
|
68
|
+
}
|
|
69
|
+
declare enum CardinalPosition$1 {
|
|
70
|
+
top = "top",
|
|
71
|
+
bottom = "bottom",
|
|
72
|
+
left = "left",
|
|
73
|
+
right = "right"
|
|
74
|
+
}
|
|
75
|
+
declare enum CornerPosition$1 {
|
|
76
|
+
"top-left" = "top-left",
|
|
77
|
+
"top-right" = "top-right",
|
|
78
|
+
"bottom-left" = "bottom-left",
|
|
79
|
+
"bottom-right" = "bottom-right"
|
|
80
|
+
}
|
|
81
|
+
declare enum OctilePosition$1 {
|
|
82
|
+
top = "top",
|
|
83
|
+
bottom = "bottom",
|
|
84
|
+
left = "left",
|
|
85
|
+
right = "right",
|
|
86
|
+
"top-left" = "top-left",
|
|
87
|
+
"top-right" = "top-right",
|
|
88
|
+
"bottom-left" = "bottom-left",
|
|
89
|
+
"bottom-right" = "bottom-right"
|
|
90
|
+
}
|
|
91
|
+
declare enum ListBulletType$1 {
|
|
92
|
+
dot = "dot",
|
|
93
|
+
diamond = "diamond",
|
|
94
|
+
number = "number",
|
|
95
|
+
none = "none"
|
|
96
|
+
}
|
|
97
|
+
declare enum ListAlign$1 {
|
|
98
|
+
start = "start",
|
|
99
|
+
center = "center"
|
|
100
|
+
}
|
|
101
|
+
declare enum ListDirection$1 {
|
|
102
|
+
vertical = "vertical",
|
|
103
|
+
horizontal = "horizontal"
|
|
104
|
+
}
|
|
105
|
+
declare enum SpinnerType$1 {
|
|
106
|
+
border = "border",
|
|
107
|
+
ring = "ring",
|
|
108
|
+
dots = "dots",
|
|
109
|
+
bars = "bars",
|
|
110
|
+
pulse = "pulse",
|
|
111
|
+
orbit = "orbit",
|
|
112
|
+
dualRing = "dualRing",
|
|
113
|
+
ripple = "ripple",
|
|
114
|
+
grid = "grid",
|
|
115
|
+
wave = "wave"
|
|
116
|
+
}
|
|
117
|
+
declare enum ToastPosition {
|
|
118
|
+
topLeft = "top-left",
|
|
119
|
+
topCenter = "top-center",
|
|
120
|
+
topRight = "top-right",
|
|
121
|
+
bottomLeft = "bottom-left",
|
|
122
|
+
bottomCenter = "bottom-center",
|
|
123
|
+
bottomRight = "bottom-right"
|
|
124
|
+
}
|
|
125
|
+
declare enum ToastStatus {
|
|
126
|
+
default = "default",
|
|
127
|
+
success = "success",
|
|
128
|
+
warning = "warning",
|
|
129
|
+
error = "error",
|
|
130
|
+
danger = "danger",
|
|
131
|
+
info = "info"
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
type Variant = `${Variant$1}`;
|
|
135
|
+
type Shape = `${Shape$1}`;
|
|
136
|
+
type Size = `${Size$1}`;
|
|
137
|
+
type Appearance = `${Appearance$1}`;
|
|
138
|
+
type TextDecoration = `${Decoration}`;
|
|
139
|
+
type HyperRefTarget = `${Target}`;
|
|
140
|
+
type VerticalPosition = `${VerticalPosition$1}`;
|
|
141
|
+
type HorizontalPosition = `${HorizontalPosition$1}`;
|
|
142
|
+
type CardinalPosition = `${CardinalPosition$1}`;
|
|
143
|
+
type CornerPosition = `${CornerPosition$1}`;
|
|
144
|
+
type OctilePosition = `${OctilePosition$1}`;
|
|
145
|
+
type TitleBannerLevel = 1 | 2;
|
|
146
|
+
type ListBulletType = `${ListBulletType$1}`;
|
|
147
|
+
type ListAlign = `${ListAlign$1}`;
|
|
148
|
+
type ListDirection = `${ListDirection$1}`;
|
|
149
|
+
type RouteTabMode = "route" | "state";
|
|
150
|
+
type CurrencyCode = (typeof CURRENCIES)[number]["code"];
|
|
151
|
+
type SpinnerType = `${SpinnerType$1}`;
|
|
152
|
+
type SpinnerDirection = "vertical" | "horizontal";
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Contains ReactElements such as "children" using HTMLAttributes
|
|
156
|
+
*
|
|
157
|
+
* Contains DOMAttributes such as "onClick" using HTMLAttributes
|
|
158
|
+
*
|
|
159
|
+
* Define the custom types as follows for the custom DOM elements
|
|
160
|
+
* BaseComponentProps<HTMLDivElement> // default
|
|
161
|
+
* BaseComponentProps<HTMLButtonElement> // buttons
|
|
162
|
+
* BaseComponentProps<HTMLAnchorElement> // links
|
|
163
|
+
*/
|
|
164
|
+
interface BaseComponentProps<T extends HTMLElement = HTMLDivElement> extends Omit<HTMLAttributes<T>, "children"> {
|
|
165
|
+
className?: string;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
type ButtonMode = "contained" | "contained-tonal" | "outlined" | "text";
|
|
169
|
+
type ButtonIcon = ReactNode | ((props: {
|
|
170
|
+
color: string;
|
|
171
|
+
size: number;
|
|
172
|
+
}) => ReactNode);
|
|
173
|
+
interface ButtonProps extends BaseComponentProps<HTMLButtonElement> {
|
|
174
|
+
type?: "button" | "submit" | "reset";
|
|
175
|
+
icon?: ButtonIcon;
|
|
176
|
+
text?: string;
|
|
177
|
+
children?: ReactNode;
|
|
178
|
+
loading?: boolean;
|
|
179
|
+
disabled?: boolean;
|
|
180
|
+
block?: boolean;
|
|
181
|
+
compact?: boolean;
|
|
182
|
+
mode?: ButtonMode;
|
|
183
|
+
buttonColor?: string;
|
|
184
|
+
textColor?: string;
|
|
185
|
+
contentClassName?: string;
|
|
186
|
+
labelClassName?: string;
|
|
187
|
+
variant?: Variant;
|
|
188
|
+
appearance?: Appearance;
|
|
189
|
+
shape?: Shape;
|
|
190
|
+
size?: Size;
|
|
191
|
+
style?: CSSProperties;
|
|
192
|
+
contentStyle?: unknown;
|
|
193
|
+
labelStyle?: unknown;
|
|
194
|
+
accessibilityLabel?: string;
|
|
195
|
+
accessibilityRole?: string;
|
|
196
|
+
accessibilityState?: unknown;
|
|
197
|
+
testID?: string;
|
|
198
|
+
onPress?: () => void;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
interface EUIComponentDefaults {
|
|
202
|
+
variant?: keyof typeof Variant$1;
|
|
203
|
+
size?: keyof typeof Size$1;
|
|
204
|
+
shape?: keyof typeof Shape$1;
|
|
205
|
+
styles?: string;
|
|
206
|
+
}
|
|
207
|
+
interface EUIRoute {
|
|
208
|
+
path: string;
|
|
209
|
+
name: string;
|
|
210
|
+
}
|
|
211
|
+
interface EUIConfigs {
|
|
212
|
+
global?: EUIComponentDefaults;
|
|
213
|
+
routes?: EUIRoute[];
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
interface EUIContextValue {
|
|
217
|
+
config: EUIConfigs;
|
|
218
|
+
setConfig: React__default.Dispatch<React__default.SetStateAction<EUIConfigs>>;
|
|
219
|
+
}
|
|
220
|
+
declare const EUIProvider: ({ config, children, }: {
|
|
221
|
+
config: EUIConfigs;
|
|
222
|
+
children: React__default.ReactNode;
|
|
223
|
+
}) => React__default.JSX.Element;
|
|
224
|
+
declare const useEUIConfig: () => EUIContextValue;
|
|
225
|
+
|
|
226
|
+
declare function resolveWithGlobal<T>(config: EUIConfigs | null, props: T, defaults: Partial<T>): T;
|
|
227
|
+
|
|
228
|
+
export { type Appearance as A, type ButtonProps as B, type CurrencyCode as C, Decoration as D, type EUIComponentDefaults as E, type HorizontalPosition as H, type ListBulletType as L, type OctilePosition as O, type RouteTabMode as R, type Shape as S, type TitleBannerLevel as T, type Variant as V, type ButtonIcon as a, type ButtonMode as b, type EUIConfigs as c, EUIProvider as d, type EUIRoute as e, type BaseComponentProps as f, type Size as g, type ListDirection as h, type ListAlign as i, type SpinnerType as j, type SpinnerDirection as k, type TextDecoration as l, Shape$1 as m, Variant$1 as n, Size$1 as o, TextVariant as p, ToastStatus as q, resolveWithGlobal as r, ToastPosition as s, Target as t, useEUIConfig as u, type CardinalPosition as v, type CornerPosition as w, type HyperRefTarget as x, type VerticalPosition as y };
|