@particle-network/ui-react 0.3.2 → 0.4.0-beta.1

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 (29) hide show
  1. package/dist/components/UXEmpty/index.js +1 -1
  2. package/dist/components/UXInput/index.d.ts +1 -1
  3. package/dist/components/UXInput/input.extend.d.ts +1 -1
  4. package/dist/components/UXThemeSwitch/index.d.ts +6 -0
  5. package/dist/components/UXThemeSwitch/index.js +6 -0
  6. package/dist/components/UXThemeSwitch/theme-data.d.ts +28 -0
  7. package/dist/components/UXThemeSwitch/theme-data.js +304 -0
  8. package/dist/components/UXThemeSwitch/theme-item.d.ts +7 -0
  9. package/dist/components/UXThemeSwitch/theme-item.js +145 -0
  10. package/dist/components/UXThemeSwitch/theme-switch.d.ts +8 -0
  11. package/dist/components/UXThemeSwitch/theme-switch.js +149 -0
  12. package/dist/components/UXThemeSwitch/use-color-scheme.d.ts +1 -0
  13. package/dist/components/UXThemeSwitch/use-color-scheme.js +6 -0
  14. package/dist/components/UXThemeSwitch/use-quote-color.d.ts +6 -0
  15. package/dist/components/UXThemeSwitch/use-quote-color.js +12 -0
  16. package/dist/components/UXThemeSwitch/use-theme-color.d.ts +19 -0
  17. package/dist/components/UXThemeSwitch/use-theme-color.js +6 -0
  18. package/dist/components/UXThemeSwitch/use-theme-store.d.ts +56 -0
  19. package/dist/components/UXThemeSwitch/use-theme-store.js +44 -0
  20. package/dist/components/UXThemeSwitch/use-theme.d.ts +18 -0
  21. package/dist/components/UXThemeSwitch/use-theme.js +126 -0
  22. package/dist/components/index.d.ts +1 -0
  23. package/dist/components/index.js +1 -0
  24. package/dist/hooks/useI18n.d.ts +12 -0
  25. package/dist/hooks/useI18n.js +24 -0
  26. package/dist/utils/input-classes.d.ts +0 -32
  27. package/dist/utils/input-classes.js +5 -23
  28. package/package.json +6 -5
  29. package/tailwind-preset.js +804 -44
@@ -11,7 +11,7 @@ const UXEmpty = forwardRef((props, ref)=>{
11
11
  return /*#__PURE__*/ jsxs(VStack, {
12
12
  ref: ref,
13
13
  center: true,
14
- gap: "sm",
14
+ gap: 1,
15
15
  ...restProps,
16
16
  children: [
17
17
  /*#__PURE__*/ jsx(EmptyIcon, {
@@ -302,7 +302,6 @@ export declare const UXInput: React.ForwardRefExoticComponent<Omit<Omit<{
302
302
  key?: React.Key | null | undefined;
303
303
  labelPlacement?: "inside" | "outside" | "outside-left" | "outside-top" | undefined;
304
304
  label?: React.ReactNode;
305
- isInvalid?: boolean | undefined;
306
305
  disableAnimation?: boolean | undefined;
307
306
  isDisabled?: boolean | undefined;
308
307
  pattern?: string | undefined;
@@ -328,6 +327,7 @@ export declare const UXInput: React.ForwardRefExoticComponent<Omit<Omit<{
328
327
  classNames?: import("@heroui/theme").SlotsToClasses<"label" | "inputWrapper" | "base" | "input" | "errorMessage" | "helperWrapper" | "description" | "innerWrapper" | "mainWrapper" | "clearButton"> | undefined;
329
328
  isReadOnly?: boolean | undefined;
330
329
  validationState?: import("@react-types/shared").ValidationState | undefined;
330
+ isInvalid?: boolean | undefined;
331
331
  errorMessage?: React.ReactNode | ((v: import("@react-types/shared").ValidationResult) => React.ReactNode);
332
332
  placeholder?: string | undefined;
333
333
  readOnly?: boolean | undefined;
@@ -299,7 +299,6 @@ declare const ExtendedInput: import("react").ForwardRefExoticComponent<Omit<{
299
299
  key?: import("react").Key | null | undefined;
300
300
  labelPlacement?: "inside" | "outside" | "outside-left" | "outside-top" | undefined;
301
301
  label?: import("react").ReactNode;
302
- isInvalid?: boolean | undefined;
303
302
  disableAnimation?: boolean | undefined;
304
303
  isDisabled?: boolean | undefined;
305
304
  pattern?: string | undefined;
@@ -325,6 +324,7 @@ declare const ExtendedInput: import("react").ForwardRefExoticComponent<Omit<{
325
324
  classNames?: import("@heroui/theme").SlotsToClasses<"label" | "inputWrapper" | "base" | "input" | "errorMessage" | "helperWrapper" | "description" | "innerWrapper" | "mainWrapper" | "clearButton"> | undefined;
326
325
  isReadOnly?: boolean | undefined;
327
326
  validationState?: import("@react-types/shared").ValidationState | undefined;
327
+ isInvalid?: boolean | undefined;
328
328
  errorMessage?: import("react").ReactNode | ((v: import("@react-types/shared").ValidationResult) => import("react").ReactNode);
329
329
  placeholder?: string | undefined;
330
330
  readOnly?: boolean | undefined;
@@ -0,0 +1,6 @@
1
+ export * from './theme-data';
2
+ export * from './theme-switch';
3
+ export * from './use-color-scheme';
4
+ export * from './use-quote-color';
5
+ export * from './use-theme';
6
+ export * from './use-theme-color';
@@ -0,0 +1,6 @@
1
+ export * from "./theme-data.js";
2
+ export * from "./theme-switch.js";
3
+ export * from "./use-color-scheme.js";
4
+ export * from "./use-quote-color.js";
5
+ export * from "./use-theme.js";
6
+ export * from "./use-theme-color.js";
@@ -0,0 +1,28 @@
1
+ export type ThemeId = 'ux-purple-gold-dark' | 'ux-purple-gold-light' | 'ux-green-red-dark' | 'ux-green-red-light' | 'ux-green-red-soft-dark' | 'ux-green-red-soft-light' | 'gmgn-dark' | 'axiom-dark' | 'hyperliquid-dark' | 'phantom-dark' | 'binance-dark' | 'bullx-dark';
2
+ export interface ThemeItemType {
3
+ id: ThemeId;
4
+ zhName: string;
5
+ enName: string;
6
+ colorScheme: 'dark' | 'light';
7
+ colorVariables: {
8
+ foreground: string;
9
+ secondary: string;
10
+ tertiary: string;
11
+ primary: string;
12
+ success: string;
13
+ danger: string;
14
+ alert: string;
15
+ warning: string;
16
+ gold: string;
17
+ background: string;
18
+ 'background-200': string;
19
+ 'background-300': string;
20
+ 'background-400': string;
21
+ overlay: string;
22
+ divider: string;
23
+ bullish: string;
24
+ bearish: string;
25
+ };
26
+ }
27
+ export declare const themeData: ThemeItemType[];
28
+ export declare const themeKeys: ThemeId[];
@@ -0,0 +1,304 @@
1
+ const themeData = [
2
+ {
3
+ id: 'ux-purple-gold-dark',
4
+ zhName: 'UX 紫金 Dark',
5
+ enName: 'UX Purple/Gold Dark',
6
+ colorScheme: 'dark',
7
+ colorVariables: {
8
+ foreground: '#FFFFFF',
9
+ secondary: '#A1A1AA',
10
+ tertiary: '#4E4E56',
11
+ primary: '#D745FF',
12
+ success: '#45B167',
13
+ danger: '#E84A5A',
14
+ alert: '#F57733',
15
+ warning: '#FF9821',
16
+ gold: '#FFB800',
17
+ background: '#000000',
18
+ 'background-200': '#1F1F23',
19
+ 'background-300': '#17171C',
20
+ 'background-400': '#0F0F0F',
21
+ overlay: '#17171C',
22
+ divider: '#282828',
23
+ bullish: '#D745FF',
24
+ bearish: '#FFAC34'
25
+ }
26
+ },
27
+ {
28
+ id: 'ux-purple-gold-light',
29
+ zhName: 'UX 紫金 Light',
30
+ enName: 'UX Purple/Gold Light',
31
+ colorScheme: 'light',
32
+ colorVariables: {
33
+ foreground: '#000000',
34
+ secondary: '#767A80',
35
+ tertiary: '#D8D8DE',
36
+ primary: '#D745FF',
37
+ success: '#2E9F4A',
38
+ danger: '#DE4A40',
39
+ alert: '#E65E16',
40
+ warning: '#FF9821',
41
+ gold: '#F38300',
42
+ background: '#F8F8FA',
43
+ 'background-200': '#F0F0F2',
44
+ 'background-300': '#F8F8FA',
45
+ 'background-400': '#FFFFFF',
46
+ overlay: '#FFFFFF',
47
+ divider: '#E8E8ED',
48
+ bullish: '#D745FF',
49
+ bearish: '#F9A01E'
50
+ }
51
+ },
52
+ {
53
+ id: 'ux-green-red-dark',
54
+ zhName: 'UX 绿红 Dark',
55
+ enName: 'UX Green/Red Dark',
56
+ colorScheme: 'dark',
57
+ colorVariables: {
58
+ foreground: '#FFFFFF',
59
+ secondary: '#A1A1AA',
60
+ tertiary: '#4E4E56',
61
+ primary: '#D745FF',
62
+ success: '#45B167',
63
+ danger: '#E84A5A',
64
+ alert: '#F57733',
65
+ warning: '#FF9821',
66
+ gold: '#FFB800',
67
+ background: '#000000',
68
+ 'background-200': '#1F1F23',
69
+ 'background-300': '#17171C',
70
+ 'background-400': '#0F0F0F',
71
+ overlay: '#17171C',
72
+ divider: '#282828',
73
+ bullish: '#45B167',
74
+ bearish: '#E84A5A'
75
+ }
76
+ },
77
+ {
78
+ id: 'ux-green-red-light',
79
+ zhName: 'UX 绿红 Light',
80
+ enName: 'UX Green/Red Light',
81
+ colorScheme: 'light',
82
+ colorVariables: {
83
+ foreground: '#000000',
84
+ secondary: '#767A80',
85
+ tertiary: '#D8D8DE',
86
+ primary: '#D745FF',
87
+ success: '#2E9F4A',
88
+ danger: '#DE4A40',
89
+ alert: '#E65E16',
90
+ warning: '#FF9821',
91
+ gold: '#F38300',
92
+ background: '#F8F8FA',
93
+ 'background-200': '#F0F0F2',
94
+ 'background-300': '#F8F8FA',
95
+ 'background-400': '#FFFFFF',
96
+ overlay: '#FFFFFF',
97
+ divider: '#E8E8ED',
98
+ bullish: '#45B167',
99
+ bearish: '#E84A5A'
100
+ }
101
+ },
102
+ {
103
+ id: 'ux-green-red-soft-dark',
104
+ zhName: 'UX 柔和 Dark',
105
+ enName: 'UX Soft Dark',
106
+ colorScheme: 'dark',
107
+ colorVariables: {
108
+ foreground: '#FDFDFE',
109
+ secondary: '#BBBBC4',
110
+ tertiary: '#70707C',
111
+ primary: '#D745FF',
112
+ success: '#73D090',
113
+ danger: '#F46271',
114
+ alert: '#F37A39',
115
+ warning: '#F8BF63',
116
+ gold: '#FFB800',
117
+ background: '#100E11',
118
+ 'background-200': '#2A2A30',
119
+ 'background-300': '#17171C',
120
+ 'background-400': '#19161B',
121
+ overlay: '#17171C',
122
+ divider: '#282828',
123
+ bullish: '#73D090',
124
+ bearish: '#F46271'
125
+ }
126
+ },
127
+ {
128
+ id: 'ux-green-red-soft-light',
129
+ zhName: 'UX 柔和 Light',
130
+ enName: 'UX Soft Light',
131
+ colorScheme: 'light',
132
+ colorVariables: {
133
+ foreground: '#0C0C0F',
134
+ secondary: '#363538',
135
+ tertiary: '#7B7B85',
136
+ primary: '#D745FF',
137
+ success: '#19AB5E',
138
+ danger: '#FF5868',
139
+ alert: '#F07939',
140
+ warning: '#F6932B',
141
+ gold: '#FFB800',
142
+ background: '#F6F6F6',
143
+ 'background-200': '#E9E7EE',
144
+ 'background-300': '#F6F6F6',
145
+ 'background-400': '#FFFFFF',
146
+ overlay: '#FFFFFF',
147
+ divider: '#DAD7E0',
148
+ bullish: '#19AB5E',
149
+ bearish: '#FF5868'
150
+ }
151
+ },
152
+ {
153
+ id: 'gmgn-dark',
154
+ zhName: 'GMGN',
155
+ enName: 'GMGN',
156
+ colorScheme: 'dark',
157
+ colorVariables: {
158
+ foreground: '#F0F5F5',
159
+ secondary: '#C4CCCC',
160
+ tertiary: '#757E80',
161
+ primary: '#86D99F',
162
+ success: '#86D99F',
163
+ danger: '#F26682',
164
+ alert: '#F55832',
165
+ warning: '#EDB951',
166
+ gold: '#F5DA54',
167
+ background: '#0C0C0F',
168
+ 'background-200': '#282A2E',
169
+ 'background-300': '#1A1B1F',
170
+ 'background-400': '#111214',
171
+ overlay: '#1A1B1F',
172
+ divider: '#282828',
173
+ bullish: '#1DB069',
174
+ bearish: '#DE4E52'
175
+ }
176
+ },
177
+ {
178
+ id: 'axiom-dark',
179
+ zhName: 'AXIOM',
180
+ enName: 'AXIOM',
181
+ colorScheme: 'dark',
182
+ colorVariables: {
183
+ foreground: '#FCFCFC',
184
+ secondary: '#C8C9D1',
185
+ tertiary: '#777A8C',
186
+ primary: '#526FFF',
187
+ success: '#2FE3AC',
188
+ danger: '#EC397A',
189
+ alert: '#F57733',
190
+ warning: '#F7931A',
191
+ gold: '#F7931A',
192
+ background: '#0C0C0F',
193
+ 'background-200': '#333542',
194
+ 'background-300': '#18181A',
195
+ 'background-400': '#101114',
196
+ overlay: '#18181A',
197
+ divider: '#333542',
198
+ bullish: '#0B9981',
199
+ bearish: '#F23646'
200
+ }
201
+ },
202
+ {
203
+ id: 'hyperliquid-dark',
204
+ zhName: 'Hyperliquid',
205
+ enName: 'Hyperliquid',
206
+ colorScheme: 'dark',
207
+ colorVariables: {
208
+ foreground: '#F6FEFD',
209
+ secondary: '#D1D4DC',
210
+ tertiary: '#949E9C',
211
+ primary: '#50D2C1',
212
+ success: '#1FA67D',
213
+ danger: '#ED7088',
214
+ alert: '#EF8F50',
215
+ warning: '#FFB648',
216
+ gold: '#FFB648',
217
+ background: '#0F1A1F',
218
+ 'background-200': '#273035',
219
+ 'background-300': '#1B2429',
220
+ 'background-400': '#0F1A1F',
221
+ overlay: '#1B2429',
222
+ divider: '#444651',
223
+ bullish: '#51D2C1',
224
+ bearish: '#D45B71'
225
+ }
226
+ },
227
+ {
228
+ id: 'phantom-dark',
229
+ zhName: 'Phantom',
230
+ enName: 'Phantom',
231
+ colorScheme: 'dark',
232
+ colorVariables: {
233
+ foreground: '#FFFFFF',
234
+ secondary: '#999999',
235
+ tertiary: '#757E80',
236
+ primary: '#AB9FF2',
237
+ success: '#2EC08B',
238
+ danger: '#F7525F',
239
+ alert: '#FF9C3F',
240
+ warning: '#FFD13F',
241
+ gold: '#FFD13F',
242
+ background: '#13121A',
243
+ 'background-200': '#222222',
244
+ 'background-300': '#272735',
245
+ 'background-400': '#22212A',
246
+ overlay: '#272735',
247
+ divider: '#323232',
248
+ bullish: '#2EC08B',
249
+ bearish: '#FF7243'
250
+ }
251
+ },
252
+ {
253
+ id: 'binance-dark',
254
+ zhName: 'Binance',
255
+ enName: 'Binance',
256
+ colorScheme: 'dark',
257
+ colorVariables: {
258
+ foreground: '#EAECEF',
259
+ secondary: '#929AA5',
260
+ tertiary: '#707A8A',
261
+ primary: '#FCD535',
262
+ success: '#2EBD85',
263
+ danger: '#F6465D',
264
+ alert: '#FF693D',
265
+ warning: '#F0B90B',
266
+ gold: '#2DBD85',
267
+ background: '#0B0E11',
268
+ 'background-200': '#29313D',
269
+ 'background-300': '#202630',
270
+ 'background-400': '#181A20',
271
+ overlay: '#202630',
272
+ divider: '#343B47',
273
+ bullish: '#2EBD85',
274
+ bearish: '#F6465D'
275
+ }
276
+ },
277
+ {
278
+ id: 'bullx-dark',
279
+ zhName: "Bullx's",
280
+ enName: "Bullx's",
281
+ colorScheme: 'dark',
282
+ colorVariables: {
283
+ foreground: '#E9E9E9',
284
+ secondary: '#98989B',
285
+ tertiary: '#686a6d',
286
+ primary: '#61DC9B',
287
+ success: '#459C6E',
288
+ danger: '#A13C45',
289
+ alert: '#E9BF52',
290
+ warning: '#DCC161',
291
+ gold: '#E9BF52',
292
+ background: '#09090B',
293
+ 'background-200': '#1B1D22',
294
+ 'background-300': '#0D0D10',
295
+ 'background-400': '#0F0F0F',
296
+ overlay: '#0D0D10',
297
+ divider: '#1E2025',
298
+ bullish: '#459C6E',
299
+ bearish: '#A13C45'
300
+ }
301
+ }
302
+ ];
303
+ const themeKeys = themeData.map((theme)=>theme.id);
304
+ export { themeData, themeKeys };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { ThemeItemType } from './theme-data';
3
+ export interface ThemeItemProps extends ThemeItemType {
4
+ isSelected: boolean;
5
+ onClick: () => void;
6
+ }
7
+ export declare const ThemeItem: React.FC<ThemeItemProps>;
@@ -0,0 +1,145 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { cn } from "@heroui/theme";
4
+ import { useLang } from "../../hooks/index.js";
5
+ import { VStack } from "../layout/index.js";
6
+ import { Text } from "../typography/Text.js";
7
+ const ThemeItem = ({ id, zhName, enName, isSelected, onClick })=>{
8
+ const lang = useLang();
9
+ return /*#__PURE__*/ jsxs(VStack, {
10
+ center: true,
11
+ className: cn('cursor-pointer hover:scale-105 transition-all duration-300', id),
12
+ onClick: onClick,
13
+ children: [
14
+ /*#__PURE__*/ jsx("div", {
15
+ className: cn('rounded-small border-1.5', isSelected ? 'border-primary' : 'border-transparent'),
16
+ children: /*#__PURE__*/ jsxs("svg", {
17
+ xmlns: "http://www.w3.org/2000/svg",
18
+ width: "180",
19
+ height: "106.5",
20
+ viewBox: "0 0 120 71",
21
+ fill: "none",
22
+ children: [
23
+ /*#__PURE__*/ jsx("rect", {
24
+ opacity: "0.5",
25
+ x: "1.9043",
26
+ y: "2",
27
+ width: "116.19",
28
+ height: "67",
29
+ rx: "5",
30
+ fill: "currentColor",
31
+ className: "text-primary"
32
+ }),
33
+ /*#__PURE__*/ jsx("mask", {
34
+ id: "mask0_40928_218196",
35
+ style: {
36
+ maskType: 'alpha'
37
+ },
38
+ maskUnits: "userSpaceOnUse",
39
+ x: "1",
40
+ y: "2",
41
+ width: "118",
42
+ height: "67",
43
+ children: /*#__PURE__*/ jsx("rect", {
44
+ x: "1.9043",
45
+ y: "2",
46
+ width: "116.19",
47
+ height: "67",
48
+ rx: "5",
49
+ fill: "currentColor",
50
+ className: "text-background"
51
+ })
52
+ }),
53
+ /*#__PURE__*/ jsx("g", {
54
+ mask: "url(#mask0_40928_218196)",
55
+ children: /*#__PURE__*/ jsx("rect", {
56
+ x: "17.1426",
57
+ y: "18",
58
+ width: "116.19",
59
+ height: "67",
60
+ rx: "6",
61
+ fill: "currentColor",
62
+ className: "text-background"
63
+ })
64
+ }),
65
+ /*#__PURE__*/ jsx("rect", {
66
+ x: "18.0957",
67
+ y: "31",
68
+ width: "100",
69
+ height: "1",
70
+ fill: "currentColor",
71
+ className: "text-divider"
72
+ }),
73
+ /*#__PURE__*/ jsx("rect", {
74
+ x: "54.082",
75
+ y: "41.2568",
76
+ width: "30.0917",
77
+ height: "6.01835",
78
+ rx: "3.00917",
79
+ fill: "currentColor",
80
+ className: "text-foreground"
81
+ }),
82
+ /*#__PURE__*/ jsx("rect", {
83
+ x: "54.082",
84
+ y: "53.2939",
85
+ width: "19.5596",
86
+ height: "6.01835",
87
+ rx: "3.00917",
88
+ fill: "currentColor",
89
+ className: "text-bullish"
90
+ }),
91
+ /*#__PURE__*/ jsx("rect", {
92
+ x: "75.8994",
93
+ y: "53.2939",
94
+ width: "19.5596",
95
+ height: "6.01835",
96
+ rx: "3.00917",
97
+ fill: "currentColor",
98
+ className: "text-bearish"
99
+ }),
100
+ /*#__PURE__*/ jsx("rect", {
101
+ x: "86.4316",
102
+ y: "41.2568",
103
+ width: "6.01835",
104
+ height: "6.01835",
105
+ rx: "3.00917",
106
+ fill: "currentColor",
107
+ className: "text-secondary"
108
+ }),
109
+ /*#__PURE__*/ jsx("rect", {
110
+ x: "94.707",
111
+ y: "41.2568",
112
+ width: "6.01835",
113
+ height: "6.01835",
114
+ rx: "3.00917",
115
+ fill: "currentColor",
116
+ className: "text-secondary"
117
+ }),
118
+ /*#__PURE__*/ jsx("rect", {
119
+ x: "102.981",
120
+ y: "41.2568",
121
+ width: "6.01835",
122
+ height: "6.01835",
123
+ rx: "3.00917",
124
+ fill: "currentColor",
125
+ className: "text-secondary"
126
+ }),
127
+ /*#__PURE__*/ jsx("rect", {
128
+ x: "27",
129
+ y: "39",
130
+ width: "22.5688",
131
+ height: "22.5688",
132
+ rx: "11.2844",
133
+ fill: "currentColor",
134
+ className: "text-primary"
135
+ })
136
+ ]
137
+ })
138
+ }),
139
+ /*#__PURE__*/ jsx(Text, {
140
+ children: 'zh' === lang ? zhName : enName
141
+ })
142
+ ]
143
+ });
144
+ };
145
+ export { ThemeItem };
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { DrawerProps } from '@heroui/drawer';
3
+ export type UXThemeSwitchDrawerProps = Omit<DrawerProps, 'children'>;
4
+ export declare const UXThemeSwitchDrawer: React.FC<UXThemeSwitchDrawerProps>;
5
+ export interface UXThemeSwitchProps {
6
+ children?: (onOpen: () => void) => React.ReactNode;
7
+ }
8
+ export declare const UXThemeSwitch: React.FC<UXThemeSwitchProps>;