@customafk/lunas-ui 0.0.2-s → 0.0.2-u

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.
@@ -5,7 +5,7 @@ import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const buttonVariants: (props?: ({
7
7
  variant?: "default" | "secondary" | "outline" | "destructive" | "destructive-secondary" | "destructive-outline" | "sort-outline" | "normal" | null | undefined;
8
- size?: "default" | "base" | "large" | "small" | null | undefined;
8
+ size?: "small" | "default" | "base" | "large" | null | undefined;
9
9
  } & class_variance_authority_dist_types.ClassProp) | undefined) => string;
10
10
 
11
11
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+
4
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
5
+
6
+ export { Checkbox };
@@ -0,0 +1,276 @@
1
+ "use client";
2
+
3
+ // packages/Atoms/Checkbox/index.tsx
4
+ import { forwardRef } from "react";
5
+
6
+ // packages/tailwindTheme.ts
7
+ var themes = {
8
+ spacing: {
9
+ 30: "7.5rem",
10
+ // 120px
11
+ 33: "8.25rem"
12
+ // 132px
13
+ },
14
+ colors: {
15
+ ui: {
16
+ white: "#ffffff",
17
+ "white-primary": "#ffffff",
18
+ "black-primary": "#111315",
19
+ "bg-white": "#FAFAFA",
20
+ primary: {
21
+ default: "#6C70F0",
22
+ 50: "#EEF2FF",
23
+ 100: "#E0E7FF",
24
+ 200: "#C8D2FD",
25
+ 300: "#A6B6FB",
26
+ 400: "#828EF7",
27
+ 500: "#6C70F0",
28
+ 600: "#5048E3",
29
+ 700: "#443AC8",
30
+ 800: "#3731A2",
31
+ 900: "#312F80",
32
+ 950: "#1F1C4A"
33
+ },
34
+ secondary: {
35
+ default: "#C170FF",
36
+ 50: "#F9F1FF",
37
+ 100: "#F3E2FF",
38
+ 200: "#ECD4FF",
39
+ 300: "#E0B8FF",
40
+ 400: "#D49BFF",
41
+ 500: "#C170FF",
42
+ 600: "#AE65E6",
43
+ 700: "#9A5ACC",
44
+ 800: "#874EB3",
45
+ 900: "#613880",
46
+ 950: "#3A224C"
47
+ },
48
+ tertiary: {
49
+ default: "#5B8CFF",
50
+ 50: "#EFF4FF",
51
+ 100: "#DEE8FF",
52
+ 200: "#CEDDFF",
53
+ 300: "#BDD1FF",
54
+ 400: "#7CA3FF",
55
+ 500: "#5B8CFF",
56
+ 600: "#527EE6",
57
+ 700: "#4062B3",
58
+ 800: "#2E4680",
59
+ 900: "#243866",
60
+ 950: "#1B2A4C"
61
+ },
62
+ destructive: {
63
+ default: "#EF4444",
64
+ 50: "#FEF2F2",
65
+ 100: "#FEE2E2",
66
+ 200: "#FECACA",
67
+ 300: "#FCA5A5",
68
+ 400: "#F87171",
69
+ 500: "#EF4444",
70
+ 600: "#DC2626",
71
+ 700: "#B91C1C",
72
+ 800: "#991B1B",
73
+ 900: "#7F1D1D",
74
+ 950: "#450A0A"
75
+ },
76
+ success: {
77
+ default: "#22c55e",
78
+ 50: "#f0fdf4",
79
+ 100: "#dcfce7",
80
+ 200: "#bbf7d0",
81
+ 300: "#86efac",
82
+ 400: "#4ade80",
83
+ 500: "#22c55e",
84
+ 600: "#16a34a",
85
+ 700: "#15803d",
86
+ 800: "#166534",
87
+ 900: "#14532d",
88
+ 950: "#052e16"
89
+ },
90
+ warn: {
91
+ default: "#f59e0b",
92
+ 50: "#fffbeb",
93
+ 100: "#fef3c7",
94
+ 200: "#fde68a",
95
+ 300: "#fcd34d",
96
+ 400: "#fbbf24",
97
+ 500: "#f59e0b",
98
+ 600: "#d97706",
99
+ 700: "#b45309",
100
+ 800: "#92400e",
101
+ 900: "#78350f",
102
+ 950: "#451a03"
103
+ },
104
+ text: {
105
+ black: "#09090b",
106
+ white: "#fafafa",
107
+ 50: "#fafafa",
108
+ 100: "#f4f4f5",
109
+ 200: "#e4e4e7",
110
+ 300: "#d4d4d8",
111
+ 400: "#a1a1aa",
112
+ 500: "#71717a",
113
+ 600: "#52525b",
114
+ 700: "#3f3f46",
115
+ 800: "#27272a",
116
+ 900: "#18181b",
117
+ 950: "#09090b"
118
+ },
119
+ surface: {
120
+ default: "#ffffff",
121
+ 50: "#ffffff",
122
+ 100: "#f5f5f5",
123
+ 200: "#e5e5e5",
124
+ 300: "#d4d4d4",
125
+ 400: "#a3a3a3",
126
+ 500: "#737373",
127
+ 600: "#525252",
128
+ 700: "#404040",
129
+ 800: "#262626",
130
+ 900: "#171717",
131
+ 950: "#0a0a0a"
132
+ },
133
+ border: {
134
+ default: "#64748B",
135
+ 50: "#f9fafb",
136
+ 100: "#f3f4f6",
137
+ 200: "#e5e7eb",
138
+ 300: "#d1d5db",
139
+ 400: "#9ca3af",
140
+ 500: "#64748B",
141
+ 600: "#475569",
142
+ 700: "#334155",
143
+ 800: "#1E293B",
144
+ 900: "#0F172A",
145
+ 950: "#020817"
146
+ },
147
+ // TEXT COLOR
148
+ "text-primary": "#111315",
149
+ "text-secondary": "#30353C",
150
+ "text-third": "#30353CCC",
151
+ "text-placeholder": "#11131566",
152
+ "text-white-placeholder": "#FDFDFD99",
153
+ "text-black": {
154
+ primary: "#19191B",
155
+ secondary: "#222325",
156
+ third: "#292A2E",
157
+ fourth: "#5F606A",
158
+ placeholder: "#B2B3BD"
159
+ },
160
+ "text-white": {
161
+ primary: "#FCFCFC",
162
+ secondary: "#F9F9F9",
163
+ third: "#D9D9D9"
164
+ },
165
+ // COLOR SPECIAL
166
+ "positive-flat": "#4ADE80",
167
+ "destruction-flat": "#EF4444",
168
+ "neutral-flat": "#BFDBFE",
169
+ rating: "#FDE047",
170
+ input: {
171
+ border: {
172
+ active: "#71717A",
173
+ disabled: "#D4D4D8"
174
+ },
175
+ bg: {
176
+ default: "#FDFDFD",
177
+ error: "#FEF2F2"
178
+ }
179
+ }
180
+ }
181
+ },
182
+ backgroundImage: {
183
+ "ui-bg-color": "linear-gradient(110deg, #9CD5F5 3.09%, #B1B8E6 33.47%, rgba(185, 155, 215, 0.90) 62.82%, #A293DF 84.45%, #878AEA 106.08%)",
184
+ "ui-bg-page": "radial-gradient(70.47% 70.47% at 50% 50%, #FDFDFD 0%, #F3F1FF 50%, #F1FCFF 100%)",
185
+ "ui-btn-primary": "linear-gradient(180deg, #828EF7 0%, #6C70F0 100%)",
186
+ "ui-btn-secondary": "linear-gradient(180deg, #4277EF 0%, #669BF4 100%)",
187
+ "ui-btn-accept": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
188
+ "ui-btn-destructive": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
189
+ "ui-status-bg-positive": "linear-gradient(0deg, #C4FFD8 0%, #68FF9D 100%)",
190
+ "ui-status-bg-negative": "linear-gradient(0deg, #FECACA 0%, #FF8F8F 100%)",
191
+ "ui-status-bg-neutral": "linear-gradient(0deg, #E1EBFF 0%, #C7E8FF 100%)",
192
+ "ui-status-order": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
193
+ "ui-status-out-of-stock": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
194
+ "ui-status-in-stock": "linear-gradient(282deg, #30A8FF 6.81%, #73BAED 93.19%)",
195
+ "ui-line": "linear-gradient(90deg, #D3D4FF 0%, #7587EA 50%, #AEC0FF 100%)"
196
+ },
197
+ boxShadow: {
198
+ "ui-sd-primary": "0 4px 20px 0 rgba(104, 109, 224, 0.5)",
199
+ "ui-sd-base": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
200
+ "ui-sd-destructive": "0 10px 10px 0 rgba(255, 56, 74, 0.15)",
201
+ "ui-sd-accept": "0 10px 10px 0 rgba(46, 213, 115, 0.15)",
202
+ "ui-xl": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
203
+ "ui-soft": "0px 5px 12px 0px rgba(0, 67, 101, 0.08)",
204
+ "ui-muli": "0px 5px 50px 0px rgba(0, 67, 101, 0.08), 0px 2px 6px 0px rgba(130, 169, 188, 0.08)",
205
+ "ui-category-effect": "0px 4px 50px 0px rgba(0, 67, 101, 0.08)",
206
+ "ui-flat": "0px 0.25rem 0.625rem 0px rgba(99, 102, 241, 0.07)",
207
+ "ui-overlay": "0px 4px 4px 1px rgba(99, 102, 241, 0.04)",
208
+ "ui-sticky-nav": "0px 3px 12px -1px rgba(151, 71, 255, 0.07)",
209
+ "ui-dialog": "0px 8px 12px 0px rgba(99, 102, 241, 0.15)"
210
+ },
211
+ fontSize: {
212
+ "ui-h1": ["1.5rem", "2rem"],
213
+ "ui-h2": ["1.25rem", "1.75rem"],
214
+ "ui-h3": ["1.125rem", "1.75rem"],
215
+ "ui-p": ["1rem", "1.5rem"],
216
+ "ui-note": ["0.875rem", "1.25rem"],
217
+ "ui-small-note": ["0.75rem", "1rem"]
218
+ },
219
+ keyframes: {
220
+ "accordion-down": {
221
+ from: { height: "0" },
222
+ to: { height: "var(--radix-accordion-content-height)" }
223
+ },
224
+ "accordion-up": {
225
+ from: { height: "var(--radix-accordion-content-height)" },
226
+ to: { height: "0" }
227
+ }
228
+ },
229
+ animation: {
230
+ "accordion-down": "accordion-down 0.2s ease-out",
231
+ "accordion-up": "accordion-up 0.2s ease-out"
232
+ }
233
+ };
234
+ var tailwindTheme_default = themes;
235
+
236
+ // packages/libs/utils.ts
237
+ import clsx from "clsx";
238
+ import { extendTailwindMerge } from "tailwind-merge";
239
+ var customTailwindMerge = () => {
240
+ return extendTailwindMerge({
241
+ ...tailwindTheme_default,
242
+ prefix: ""
243
+ });
244
+ };
245
+ var cn = (...inputs) => {
246
+ const customTwMerge = customTailwindMerge();
247
+ return customTwMerge(clsx(inputs));
248
+ };
249
+
250
+ // packages/Atoms/Checkbox/index.tsx
251
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
252
+ import { Check } from "lucide-react";
253
+ import { jsx } from "react/jsx-runtime";
254
+ var Checkbox = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
255
+ CheckboxPrimitive.Root,
256
+ {
257
+ ref,
258
+ className: cn(
259
+ "size-4 shrink-0 rounded",
260
+ "border border-ui-primary-600",
261
+ "focus-within:ring-2 focus-within:ring-ui-primary-200",
262
+ "disabled:cursor-not-allowed",
263
+ "disabled:opacity-50",
264
+ "data-[state=checked]:bg-ui-primary-default",
265
+ "data-[state=checked]:text-ui-text-50",
266
+ "transition-colors duration-200",
267
+ className
268
+ ),
269
+ ...props,
270
+ children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx(Check, { className: "size-4" }) })
271
+ }
272
+ ));
273
+ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
274
+ export {
275
+ Checkbox
276
+ };
@@ -8,7 +8,7 @@ declare const Command: React.ForwardRefExoticComponent<Omit<{
8
8
  ref?: React.Ref<HTMLDivElement>;
9
9
  } & {
10
10
  asChild?: boolean;
11
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
11
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
12
12
  label?: string;
13
13
  shouldFilter?: boolean;
14
14
  filter?: (value: string, search: string, keywords?: string[]) => number;
@@ -26,7 +26,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
26
26
  ref?: React.Ref<HTMLInputElement>;
27
27
  } & {
28
28
  asChild?: boolean;
29
- }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
29
+ }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
30
30
  value?: string;
31
31
  onValueChange?: (search: string) => void;
32
32
  } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -36,7 +36,7 @@ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
36
36
  ref?: React.Ref<HTMLDivElement>;
37
37
  } & {
38
38
  asChild?: boolean;
39
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
39
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
40
40
  label?: string;
41
41
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
42
42
  declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
@@ -45,14 +45,14 @@ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
45
45
  ref?: React.Ref<HTMLDivElement>;
46
46
  } & {
47
47
  asChild?: boolean;
48
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
48
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
49
49
  declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
50
50
  children?: React.ReactNode;
51
51
  } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
52
52
  ref?: React.Ref<HTMLDivElement>;
53
53
  } & {
54
54
  asChild?: boolean;
55
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
55
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
56
56
  heading?: React.ReactNode;
57
57
  value?: string;
58
58
  forceMount?: boolean;
@@ -61,7 +61,7 @@ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<R
61
61
  ref?: React.Ref<HTMLDivElement>;
62
62
  } & {
63
63
  asChild?: boolean;
64
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
64
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
65
65
  alwaysRender?: boolean;
66
66
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
67
67
  declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
@@ -70,7 +70,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
70
70
  ref?: React.Ref<HTMLDivElement>;
71
71
  } & {
72
72
  asChild?: boolean;
73
- }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
73
+ }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
74
74
  disabled?: boolean;
75
75
  onSelect?: (value: string) => void;
76
76
  value?: string;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface IProps {
5
+ name?: string;
6
+ isActive?: boolean;
7
+ isDisabled?: boolean;
8
+ leftIcon?: ReactNode;
9
+ rightIcon?: ReactNode;
10
+ onClick?: () => void;
11
+ }
12
+ declare const _default: React.NamedExoticComponent<IProps>;
13
+
14
+ export { _default as default };
@@ -0,0 +1,287 @@
1
+ "use client";
2
+
3
+ // packages/Atoms/MenuItem/index.tsx
4
+ import { memo } from "react";
5
+
6
+ // packages/tailwindTheme.ts
7
+ var themes = {
8
+ spacing: {
9
+ 30: "7.5rem",
10
+ // 120px
11
+ 33: "8.25rem"
12
+ // 132px
13
+ },
14
+ colors: {
15
+ ui: {
16
+ white: "#ffffff",
17
+ "white-primary": "#ffffff",
18
+ "black-primary": "#111315",
19
+ "bg-white": "#FAFAFA",
20
+ primary: {
21
+ default: "#6C70F0",
22
+ 50: "#EEF2FF",
23
+ 100: "#E0E7FF",
24
+ 200: "#C8D2FD",
25
+ 300: "#A6B6FB",
26
+ 400: "#828EF7",
27
+ 500: "#6C70F0",
28
+ 600: "#5048E3",
29
+ 700: "#443AC8",
30
+ 800: "#3731A2",
31
+ 900: "#312F80",
32
+ 950: "#1F1C4A"
33
+ },
34
+ secondary: {
35
+ default: "#C170FF",
36
+ 50: "#F9F1FF",
37
+ 100: "#F3E2FF",
38
+ 200: "#ECD4FF",
39
+ 300: "#E0B8FF",
40
+ 400: "#D49BFF",
41
+ 500: "#C170FF",
42
+ 600: "#AE65E6",
43
+ 700: "#9A5ACC",
44
+ 800: "#874EB3",
45
+ 900: "#613880",
46
+ 950: "#3A224C"
47
+ },
48
+ tertiary: {
49
+ default: "#5B8CFF",
50
+ 50: "#EFF4FF",
51
+ 100: "#DEE8FF",
52
+ 200: "#CEDDFF",
53
+ 300: "#BDD1FF",
54
+ 400: "#7CA3FF",
55
+ 500: "#5B8CFF",
56
+ 600: "#527EE6",
57
+ 700: "#4062B3",
58
+ 800: "#2E4680",
59
+ 900: "#243866",
60
+ 950: "#1B2A4C"
61
+ },
62
+ destructive: {
63
+ default: "#EF4444",
64
+ 50: "#FEF2F2",
65
+ 100: "#FEE2E2",
66
+ 200: "#FECACA",
67
+ 300: "#FCA5A5",
68
+ 400: "#F87171",
69
+ 500: "#EF4444",
70
+ 600: "#DC2626",
71
+ 700: "#B91C1C",
72
+ 800: "#991B1B",
73
+ 900: "#7F1D1D",
74
+ 950: "#450A0A"
75
+ },
76
+ success: {
77
+ default: "#22c55e",
78
+ 50: "#f0fdf4",
79
+ 100: "#dcfce7",
80
+ 200: "#bbf7d0",
81
+ 300: "#86efac",
82
+ 400: "#4ade80",
83
+ 500: "#22c55e",
84
+ 600: "#16a34a",
85
+ 700: "#15803d",
86
+ 800: "#166534",
87
+ 900: "#14532d",
88
+ 950: "#052e16"
89
+ },
90
+ warn: {
91
+ default: "#f59e0b",
92
+ 50: "#fffbeb",
93
+ 100: "#fef3c7",
94
+ 200: "#fde68a",
95
+ 300: "#fcd34d",
96
+ 400: "#fbbf24",
97
+ 500: "#f59e0b",
98
+ 600: "#d97706",
99
+ 700: "#b45309",
100
+ 800: "#92400e",
101
+ 900: "#78350f",
102
+ 950: "#451a03"
103
+ },
104
+ text: {
105
+ black: "#09090b",
106
+ white: "#fafafa",
107
+ 50: "#fafafa",
108
+ 100: "#f4f4f5",
109
+ 200: "#e4e4e7",
110
+ 300: "#d4d4d8",
111
+ 400: "#a1a1aa",
112
+ 500: "#71717a",
113
+ 600: "#52525b",
114
+ 700: "#3f3f46",
115
+ 800: "#27272a",
116
+ 900: "#18181b",
117
+ 950: "#09090b"
118
+ },
119
+ surface: {
120
+ default: "#ffffff",
121
+ 50: "#ffffff",
122
+ 100: "#f5f5f5",
123
+ 200: "#e5e5e5",
124
+ 300: "#d4d4d4",
125
+ 400: "#a3a3a3",
126
+ 500: "#737373",
127
+ 600: "#525252",
128
+ 700: "#404040",
129
+ 800: "#262626",
130
+ 900: "#171717",
131
+ 950: "#0a0a0a"
132
+ },
133
+ border: {
134
+ default: "#64748B",
135
+ 50: "#f9fafb",
136
+ 100: "#f3f4f6",
137
+ 200: "#e5e7eb",
138
+ 300: "#d1d5db",
139
+ 400: "#9ca3af",
140
+ 500: "#64748B",
141
+ 600: "#475569",
142
+ 700: "#334155",
143
+ 800: "#1E293B",
144
+ 900: "#0F172A",
145
+ 950: "#020817"
146
+ },
147
+ // TEXT COLOR
148
+ "text-primary": "#111315",
149
+ "text-secondary": "#30353C",
150
+ "text-third": "#30353CCC",
151
+ "text-placeholder": "#11131566",
152
+ "text-white-placeholder": "#FDFDFD99",
153
+ "text-black": {
154
+ primary: "#19191B",
155
+ secondary: "#222325",
156
+ third: "#292A2E",
157
+ fourth: "#5F606A",
158
+ placeholder: "#B2B3BD"
159
+ },
160
+ "text-white": {
161
+ primary: "#FCFCFC",
162
+ secondary: "#F9F9F9",
163
+ third: "#D9D9D9"
164
+ },
165
+ // COLOR SPECIAL
166
+ "positive-flat": "#4ADE80",
167
+ "destruction-flat": "#EF4444",
168
+ "neutral-flat": "#BFDBFE",
169
+ rating: "#FDE047",
170
+ input: {
171
+ border: {
172
+ active: "#71717A",
173
+ disabled: "#D4D4D8"
174
+ },
175
+ bg: {
176
+ default: "#FDFDFD",
177
+ error: "#FEF2F2"
178
+ }
179
+ }
180
+ }
181
+ },
182
+ backgroundImage: {
183
+ "ui-bg-color": "linear-gradient(110deg, #9CD5F5 3.09%, #B1B8E6 33.47%, rgba(185, 155, 215, 0.90) 62.82%, #A293DF 84.45%, #878AEA 106.08%)",
184
+ "ui-bg-page": "radial-gradient(70.47% 70.47% at 50% 50%, #FDFDFD 0%, #F3F1FF 50%, #F1FCFF 100%)",
185
+ "ui-btn-primary": "linear-gradient(180deg, #828EF7 0%, #6C70F0 100%)",
186
+ "ui-btn-secondary": "linear-gradient(180deg, #4277EF 0%, #669BF4 100%)",
187
+ "ui-btn-accept": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
188
+ "ui-btn-destructive": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
189
+ "ui-status-bg-positive": "linear-gradient(0deg, #C4FFD8 0%, #68FF9D 100%)",
190
+ "ui-status-bg-negative": "linear-gradient(0deg, #FECACA 0%, #FF8F8F 100%)",
191
+ "ui-status-bg-neutral": "linear-gradient(0deg, #E1EBFF 0%, #C7E8FF 100%)",
192
+ "ui-status-order": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
193
+ "ui-status-out-of-stock": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
194
+ "ui-status-in-stock": "linear-gradient(282deg, #30A8FF 6.81%, #73BAED 93.19%)",
195
+ "ui-line": "linear-gradient(90deg, #D3D4FF 0%, #7587EA 50%, #AEC0FF 100%)"
196
+ },
197
+ boxShadow: {
198
+ "ui-sd-primary": "0 4px 20px 0 rgba(104, 109, 224, 0.5)",
199
+ "ui-sd-base": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
200
+ "ui-sd-destructive": "0 10px 10px 0 rgba(255, 56, 74, 0.15)",
201
+ "ui-sd-accept": "0 10px 10px 0 rgba(46, 213, 115, 0.15)",
202
+ "ui-xl": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
203
+ "ui-soft": "0px 5px 12px 0px rgba(0, 67, 101, 0.08)",
204
+ "ui-muli": "0px 5px 50px 0px rgba(0, 67, 101, 0.08), 0px 2px 6px 0px rgba(130, 169, 188, 0.08)",
205
+ "ui-category-effect": "0px 4px 50px 0px rgba(0, 67, 101, 0.08)",
206
+ "ui-flat": "0px 0.25rem 0.625rem 0px rgba(99, 102, 241, 0.07)",
207
+ "ui-overlay": "0px 4px 4px 1px rgba(99, 102, 241, 0.04)",
208
+ "ui-sticky-nav": "0px 3px 12px -1px rgba(151, 71, 255, 0.07)",
209
+ "ui-dialog": "0px 8px 12px 0px rgba(99, 102, 241, 0.15)"
210
+ },
211
+ fontSize: {
212
+ "ui-h1": ["1.5rem", "2rem"],
213
+ "ui-h2": ["1.25rem", "1.75rem"],
214
+ "ui-h3": ["1.125rem", "1.75rem"],
215
+ "ui-p": ["1rem", "1.5rem"],
216
+ "ui-note": ["0.875rem", "1.25rem"],
217
+ "ui-small-note": ["0.75rem", "1rem"]
218
+ },
219
+ keyframes: {
220
+ "accordion-down": {
221
+ from: { height: "0" },
222
+ to: { height: "var(--radix-accordion-content-height)" }
223
+ },
224
+ "accordion-up": {
225
+ from: { height: "var(--radix-accordion-content-height)" },
226
+ to: { height: "0" }
227
+ }
228
+ },
229
+ animation: {
230
+ "accordion-down": "accordion-down 0.2s ease-out",
231
+ "accordion-up": "accordion-up 0.2s ease-out"
232
+ }
233
+ };
234
+ var tailwindTheme_default = themes;
235
+
236
+ // packages/libs/utils.ts
237
+ import clsx from "clsx";
238
+ import { extendTailwindMerge } from "tailwind-merge";
239
+ var customTailwindMerge = () => {
240
+ return extendTailwindMerge({
241
+ ...tailwindTheme_default,
242
+ prefix: ""
243
+ });
244
+ };
245
+ var cn = (...inputs) => {
246
+ const customTwMerge = customTailwindMerge();
247
+ return customTwMerge(clsx(inputs));
248
+ };
249
+
250
+ // packages/Atoms/MenuItem/index.tsx
251
+ import { jsx, jsxs } from "react/jsx-runtime";
252
+ var MenuItem = ({
253
+ isActive = false,
254
+ isDisabled = false,
255
+ name,
256
+ leftIcon,
257
+ rightIcon,
258
+ onClick
259
+ }) => {
260
+ return /* @__PURE__ */ jsx("li", { className: "w-full list-none", children: /* @__PURE__ */ jsxs(
261
+ "button",
262
+ {
263
+ "data-active": isActive,
264
+ disabled: isDisabled,
265
+ className: cn(
266
+ "flex w-full items-center justify-start gap-x-1 rounded-lg bg-ui-surface-50 px-3 py-2 !text-ui-note text-ui-text-700",
267
+ "disabled:opacity-30",
268
+ "disabled:cursor-not-allowed",
269
+ "enabled:hover:bg-ui-primary-50",
270
+ "enabled:data-[active=true]:font-semibold",
271
+ "enabled:data-[active=true]:text-ui-text-50",
272
+ "enabled:data-[active=true]:bg-ui-primary-500",
273
+ "transition duration-200"
274
+ ),
275
+ onClick,
276
+ children: [
277
+ leftIcon,
278
+ name,
279
+ rightIcon
280
+ ]
281
+ }
282
+ ) });
283
+ };
284
+ var MenuItem_default = memo(MenuItem);
285
+ export {
286
+ MenuItem_default as default
287
+ };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+
3
+ declare const NumberInput: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLInputElement> & React.InputHTMLAttributes<HTMLInputElement> & {
4
+ onValueChange?: (value: number) => void;
5
+ }, "ref"> & React.RefAttributes<HTMLInputElement>>;
6
+
7
+ export { NumberInput as default };
@@ -0,0 +1,321 @@
1
+ "use client";
2
+
3
+ // packages/Atoms/NumberInput/index.tsx
4
+ import {
5
+ forwardRef,
6
+ useCallback,
7
+ useMemo,
8
+ useRef,
9
+ useState
10
+ } from "react";
11
+
12
+ // packages/tailwindTheme.ts
13
+ var themes = {
14
+ spacing: {
15
+ 30: "7.5rem",
16
+ // 120px
17
+ 33: "8.25rem"
18
+ // 132px
19
+ },
20
+ colors: {
21
+ ui: {
22
+ white: "#ffffff",
23
+ "white-primary": "#ffffff",
24
+ "black-primary": "#111315",
25
+ "bg-white": "#FAFAFA",
26
+ primary: {
27
+ default: "#6C70F0",
28
+ 50: "#EEF2FF",
29
+ 100: "#E0E7FF",
30
+ 200: "#C8D2FD",
31
+ 300: "#A6B6FB",
32
+ 400: "#828EF7",
33
+ 500: "#6C70F0",
34
+ 600: "#5048E3",
35
+ 700: "#443AC8",
36
+ 800: "#3731A2",
37
+ 900: "#312F80",
38
+ 950: "#1F1C4A"
39
+ },
40
+ secondary: {
41
+ default: "#C170FF",
42
+ 50: "#F9F1FF",
43
+ 100: "#F3E2FF",
44
+ 200: "#ECD4FF",
45
+ 300: "#E0B8FF",
46
+ 400: "#D49BFF",
47
+ 500: "#C170FF",
48
+ 600: "#AE65E6",
49
+ 700: "#9A5ACC",
50
+ 800: "#874EB3",
51
+ 900: "#613880",
52
+ 950: "#3A224C"
53
+ },
54
+ tertiary: {
55
+ default: "#5B8CFF",
56
+ 50: "#EFF4FF",
57
+ 100: "#DEE8FF",
58
+ 200: "#CEDDFF",
59
+ 300: "#BDD1FF",
60
+ 400: "#7CA3FF",
61
+ 500: "#5B8CFF",
62
+ 600: "#527EE6",
63
+ 700: "#4062B3",
64
+ 800: "#2E4680",
65
+ 900: "#243866",
66
+ 950: "#1B2A4C"
67
+ },
68
+ destructive: {
69
+ default: "#EF4444",
70
+ 50: "#FEF2F2",
71
+ 100: "#FEE2E2",
72
+ 200: "#FECACA",
73
+ 300: "#FCA5A5",
74
+ 400: "#F87171",
75
+ 500: "#EF4444",
76
+ 600: "#DC2626",
77
+ 700: "#B91C1C",
78
+ 800: "#991B1B",
79
+ 900: "#7F1D1D",
80
+ 950: "#450A0A"
81
+ },
82
+ success: {
83
+ default: "#22c55e",
84
+ 50: "#f0fdf4",
85
+ 100: "#dcfce7",
86
+ 200: "#bbf7d0",
87
+ 300: "#86efac",
88
+ 400: "#4ade80",
89
+ 500: "#22c55e",
90
+ 600: "#16a34a",
91
+ 700: "#15803d",
92
+ 800: "#166534",
93
+ 900: "#14532d",
94
+ 950: "#052e16"
95
+ },
96
+ warn: {
97
+ default: "#f59e0b",
98
+ 50: "#fffbeb",
99
+ 100: "#fef3c7",
100
+ 200: "#fde68a",
101
+ 300: "#fcd34d",
102
+ 400: "#fbbf24",
103
+ 500: "#f59e0b",
104
+ 600: "#d97706",
105
+ 700: "#b45309",
106
+ 800: "#92400e",
107
+ 900: "#78350f",
108
+ 950: "#451a03"
109
+ },
110
+ text: {
111
+ black: "#09090b",
112
+ white: "#fafafa",
113
+ 50: "#fafafa",
114
+ 100: "#f4f4f5",
115
+ 200: "#e4e4e7",
116
+ 300: "#d4d4d8",
117
+ 400: "#a1a1aa",
118
+ 500: "#71717a",
119
+ 600: "#52525b",
120
+ 700: "#3f3f46",
121
+ 800: "#27272a",
122
+ 900: "#18181b",
123
+ 950: "#09090b"
124
+ },
125
+ surface: {
126
+ default: "#ffffff",
127
+ 50: "#ffffff",
128
+ 100: "#f5f5f5",
129
+ 200: "#e5e5e5",
130
+ 300: "#d4d4d4",
131
+ 400: "#a3a3a3",
132
+ 500: "#737373",
133
+ 600: "#525252",
134
+ 700: "#404040",
135
+ 800: "#262626",
136
+ 900: "#171717",
137
+ 950: "#0a0a0a"
138
+ },
139
+ border: {
140
+ default: "#64748B",
141
+ 50: "#f9fafb",
142
+ 100: "#f3f4f6",
143
+ 200: "#e5e7eb",
144
+ 300: "#d1d5db",
145
+ 400: "#9ca3af",
146
+ 500: "#64748B",
147
+ 600: "#475569",
148
+ 700: "#334155",
149
+ 800: "#1E293B",
150
+ 900: "#0F172A",
151
+ 950: "#020817"
152
+ },
153
+ // TEXT COLOR
154
+ "text-primary": "#111315",
155
+ "text-secondary": "#30353C",
156
+ "text-third": "#30353CCC",
157
+ "text-placeholder": "#11131566",
158
+ "text-white-placeholder": "#FDFDFD99",
159
+ "text-black": {
160
+ primary: "#19191B",
161
+ secondary: "#222325",
162
+ third: "#292A2E",
163
+ fourth: "#5F606A",
164
+ placeholder: "#B2B3BD"
165
+ },
166
+ "text-white": {
167
+ primary: "#FCFCFC",
168
+ secondary: "#F9F9F9",
169
+ third: "#D9D9D9"
170
+ },
171
+ // COLOR SPECIAL
172
+ "positive-flat": "#4ADE80",
173
+ "destruction-flat": "#EF4444",
174
+ "neutral-flat": "#BFDBFE",
175
+ rating: "#FDE047",
176
+ input: {
177
+ border: {
178
+ active: "#71717A",
179
+ disabled: "#D4D4D8"
180
+ },
181
+ bg: {
182
+ default: "#FDFDFD",
183
+ error: "#FEF2F2"
184
+ }
185
+ }
186
+ }
187
+ },
188
+ backgroundImage: {
189
+ "ui-bg-color": "linear-gradient(110deg, #9CD5F5 3.09%, #B1B8E6 33.47%, rgba(185, 155, 215, 0.90) 62.82%, #A293DF 84.45%, #878AEA 106.08%)",
190
+ "ui-bg-page": "radial-gradient(70.47% 70.47% at 50% 50%, #FDFDFD 0%, #F3F1FF 50%, #F1FCFF 100%)",
191
+ "ui-btn-primary": "linear-gradient(180deg, #828EF7 0%, #6C70F0 100%)",
192
+ "ui-btn-secondary": "linear-gradient(180deg, #4277EF 0%, #669BF4 100%)",
193
+ "ui-btn-accept": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
194
+ "ui-btn-destructive": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
195
+ "ui-status-bg-positive": "linear-gradient(0deg, #C4FFD8 0%, #68FF9D 100%)",
196
+ "ui-status-bg-negative": "linear-gradient(0deg, #FECACA 0%, #FF8F8F 100%)",
197
+ "ui-status-bg-neutral": "linear-gradient(0deg, #E1EBFF 0%, #C7E8FF 100%)",
198
+ "ui-status-order": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
199
+ "ui-status-out-of-stock": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
200
+ "ui-status-in-stock": "linear-gradient(282deg, #30A8FF 6.81%, #73BAED 93.19%)",
201
+ "ui-line": "linear-gradient(90deg, #D3D4FF 0%, #7587EA 50%, #AEC0FF 100%)"
202
+ },
203
+ boxShadow: {
204
+ "ui-sd-primary": "0 4px 20px 0 rgba(104, 109, 224, 0.5)",
205
+ "ui-sd-base": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
206
+ "ui-sd-destructive": "0 10px 10px 0 rgba(255, 56, 74, 0.15)",
207
+ "ui-sd-accept": "0 10px 10px 0 rgba(46, 213, 115, 0.15)",
208
+ "ui-xl": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
209
+ "ui-soft": "0px 5px 12px 0px rgba(0, 67, 101, 0.08)",
210
+ "ui-muli": "0px 5px 50px 0px rgba(0, 67, 101, 0.08), 0px 2px 6px 0px rgba(130, 169, 188, 0.08)",
211
+ "ui-category-effect": "0px 4px 50px 0px rgba(0, 67, 101, 0.08)",
212
+ "ui-flat": "0px 0.25rem 0.625rem 0px rgba(99, 102, 241, 0.07)",
213
+ "ui-overlay": "0px 4px 4px 1px rgba(99, 102, 241, 0.04)",
214
+ "ui-sticky-nav": "0px 3px 12px -1px rgba(151, 71, 255, 0.07)",
215
+ "ui-dialog": "0px 8px 12px 0px rgba(99, 102, 241, 0.15)"
216
+ },
217
+ fontSize: {
218
+ "ui-h1": ["1.5rem", "2rem"],
219
+ "ui-h2": ["1.25rem", "1.75rem"],
220
+ "ui-h3": ["1.125rem", "1.75rem"],
221
+ "ui-p": ["1rem", "1.5rem"],
222
+ "ui-note": ["0.875rem", "1.25rem"],
223
+ "ui-small-note": ["0.75rem", "1rem"]
224
+ },
225
+ keyframes: {
226
+ "accordion-down": {
227
+ from: { height: "0" },
228
+ to: { height: "var(--radix-accordion-content-height)" }
229
+ },
230
+ "accordion-up": {
231
+ from: { height: "var(--radix-accordion-content-height)" },
232
+ to: { height: "0" }
233
+ }
234
+ },
235
+ animation: {
236
+ "accordion-down": "accordion-down 0.2s ease-out",
237
+ "accordion-up": "accordion-up 0.2s ease-out"
238
+ }
239
+ };
240
+ var tailwindTheme_default = themes;
241
+
242
+ // packages/libs/utils.ts
243
+ import clsx from "clsx";
244
+ import { extendTailwindMerge } from "tailwind-merge";
245
+ var customTailwindMerge = () => {
246
+ return extendTailwindMerge({
247
+ ...tailwindTheme_default,
248
+ prefix: ""
249
+ });
250
+ };
251
+ var cn = (...inputs) => {
252
+ const customTwMerge = customTailwindMerge();
253
+ return customTwMerge(clsx(inputs));
254
+ };
255
+
256
+ // packages/Atoms/NumberInput/index.tsx
257
+ import { jsx } from "react/jsx-runtime";
258
+ var NumberInput = forwardRef(({ className, value: initialValue, onChange, onValueChange, ...props }, ref) => {
259
+ const isFocused = useRef(false);
260
+ const [value, setValue] = useState(void 0);
261
+ const formattedValue = useMemo(() => {
262
+ const regex = /\B(?=(?:\d{3})+(?!\d))/g;
263
+ const focused = isFocused.current;
264
+ if (initialValue) {
265
+ return focused ? initialValue : initialValue.toString().replaceAll(regex, ",");
266
+ }
267
+ if (!value) return "";
268
+ if (focused) return value.toString().replaceAll(regex, "");
269
+ return value.toString().replaceAll(regex, ",");
270
+ }, [initialValue, value]);
271
+ const handleChange = useCallback(
272
+ (e) => {
273
+ const { value: value2 } = e.target;
274
+ if (/[^\d,]/.test(value2)) return;
275
+ setValue(value2.replaceAll(",", ""));
276
+ onChange?.(e);
277
+ onValueChange?.(Number(value2));
278
+ },
279
+ [onChange, onValueChange]
280
+ );
281
+ const handleFocus = useCallback(() => {
282
+ isFocused.current = true;
283
+ if (initialValue) {
284
+ setValue((initialValue ?? "").toString().replaceAll(",", ""));
285
+ return;
286
+ }
287
+ setValue((value ?? "").toString().replaceAll(",", ""));
288
+ }, [initialValue, value]);
289
+ const handleBlur = useCallback(() => {
290
+ isFocused.current = false;
291
+ setValue((value ?? "").toString().replaceAll(/\B(?=(?:\d{3})+(?!\d))/g, ","));
292
+ }, [value]);
293
+ return /* @__PURE__ */ jsx(
294
+ "input",
295
+ {
296
+ ref,
297
+ value: formattedValue,
298
+ className: cn(
299
+ "relative",
300
+ "outline-none",
301
+ "px-2 py-1",
302
+ "!text-ui-note text-ui-text-600",
303
+ "rounded border border-ui-border-300",
304
+ "placeholder:!text-ui-note placeholder:text-ui-text-400",
305
+ "focus-within:border-ui-primary-500",
306
+ "focus-within:ring-4",
307
+ "focus-within:ring-ui-primary-50",
308
+ "transition-all duration-300 ease-in-out",
309
+ className
310
+ ),
311
+ ...props,
312
+ onChange: handleChange,
313
+ onFocus: handleFocus,
314
+ onBlur: handleBlur
315
+ }
316
+ );
317
+ });
318
+ var NumberInput_default = NumberInput;
319
+ export {
320
+ NumberInput_default as default
321
+ };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
3
+
4
+ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
6
+
7
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,285 @@
1
+ "use client";
2
+
3
+ // packages/Atoms/RadioGroup/index.tsx
4
+ import { forwardRef } from "react";
5
+
6
+ // packages/tailwindTheme.ts
7
+ var themes = {
8
+ spacing: {
9
+ 30: "7.5rem",
10
+ // 120px
11
+ 33: "8.25rem"
12
+ // 132px
13
+ },
14
+ colors: {
15
+ ui: {
16
+ white: "#ffffff",
17
+ "white-primary": "#ffffff",
18
+ "black-primary": "#111315",
19
+ "bg-white": "#FAFAFA",
20
+ primary: {
21
+ default: "#6C70F0",
22
+ 50: "#EEF2FF",
23
+ 100: "#E0E7FF",
24
+ 200: "#C8D2FD",
25
+ 300: "#A6B6FB",
26
+ 400: "#828EF7",
27
+ 500: "#6C70F0",
28
+ 600: "#5048E3",
29
+ 700: "#443AC8",
30
+ 800: "#3731A2",
31
+ 900: "#312F80",
32
+ 950: "#1F1C4A"
33
+ },
34
+ secondary: {
35
+ default: "#C170FF",
36
+ 50: "#F9F1FF",
37
+ 100: "#F3E2FF",
38
+ 200: "#ECD4FF",
39
+ 300: "#E0B8FF",
40
+ 400: "#D49BFF",
41
+ 500: "#C170FF",
42
+ 600: "#AE65E6",
43
+ 700: "#9A5ACC",
44
+ 800: "#874EB3",
45
+ 900: "#613880",
46
+ 950: "#3A224C"
47
+ },
48
+ tertiary: {
49
+ default: "#5B8CFF",
50
+ 50: "#EFF4FF",
51
+ 100: "#DEE8FF",
52
+ 200: "#CEDDFF",
53
+ 300: "#BDD1FF",
54
+ 400: "#7CA3FF",
55
+ 500: "#5B8CFF",
56
+ 600: "#527EE6",
57
+ 700: "#4062B3",
58
+ 800: "#2E4680",
59
+ 900: "#243866",
60
+ 950: "#1B2A4C"
61
+ },
62
+ destructive: {
63
+ default: "#EF4444",
64
+ 50: "#FEF2F2",
65
+ 100: "#FEE2E2",
66
+ 200: "#FECACA",
67
+ 300: "#FCA5A5",
68
+ 400: "#F87171",
69
+ 500: "#EF4444",
70
+ 600: "#DC2626",
71
+ 700: "#B91C1C",
72
+ 800: "#991B1B",
73
+ 900: "#7F1D1D",
74
+ 950: "#450A0A"
75
+ },
76
+ success: {
77
+ default: "#22c55e",
78
+ 50: "#f0fdf4",
79
+ 100: "#dcfce7",
80
+ 200: "#bbf7d0",
81
+ 300: "#86efac",
82
+ 400: "#4ade80",
83
+ 500: "#22c55e",
84
+ 600: "#16a34a",
85
+ 700: "#15803d",
86
+ 800: "#166534",
87
+ 900: "#14532d",
88
+ 950: "#052e16"
89
+ },
90
+ warn: {
91
+ default: "#f59e0b",
92
+ 50: "#fffbeb",
93
+ 100: "#fef3c7",
94
+ 200: "#fde68a",
95
+ 300: "#fcd34d",
96
+ 400: "#fbbf24",
97
+ 500: "#f59e0b",
98
+ 600: "#d97706",
99
+ 700: "#b45309",
100
+ 800: "#92400e",
101
+ 900: "#78350f",
102
+ 950: "#451a03"
103
+ },
104
+ text: {
105
+ black: "#09090b",
106
+ white: "#fafafa",
107
+ 50: "#fafafa",
108
+ 100: "#f4f4f5",
109
+ 200: "#e4e4e7",
110
+ 300: "#d4d4d8",
111
+ 400: "#a1a1aa",
112
+ 500: "#71717a",
113
+ 600: "#52525b",
114
+ 700: "#3f3f46",
115
+ 800: "#27272a",
116
+ 900: "#18181b",
117
+ 950: "#09090b"
118
+ },
119
+ surface: {
120
+ default: "#ffffff",
121
+ 50: "#ffffff",
122
+ 100: "#f5f5f5",
123
+ 200: "#e5e5e5",
124
+ 300: "#d4d4d4",
125
+ 400: "#a3a3a3",
126
+ 500: "#737373",
127
+ 600: "#525252",
128
+ 700: "#404040",
129
+ 800: "#262626",
130
+ 900: "#171717",
131
+ 950: "#0a0a0a"
132
+ },
133
+ border: {
134
+ default: "#64748B",
135
+ 50: "#f9fafb",
136
+ 100: "#f3f4f6",
137
+ 200: "#e5e7eb",
138
+ 300: "#d1d5db",
139
+ 400: "#9ca3af",
140
+ 500: "#64748B",
141
+ 600: "#475569",
142
+ 700: "#334155",
143
+ 800: "#1E293B",
144
+ 900: "#0F172A",
145
+ 950: "#020817"
146
+ },
147
+ // TEXT COLOR
148
+ "text-primary": "#111315",
149
+ "text-secondary": "#30353C",
150
+ "text-third": "#30353CCC",
151
+ "text-placeholder": "#11131566",
152
+ "text-white-placeholder": "#FDFDFD99",
153
+ "text-black": {
154
+ primary: "#19191B",
155
+ secondary: "#222325",
156
+ third: "#292A2E",
157
+ fourth: "#5F606A",
158
+ placeholder: "#B2B3BD"
159
+ },
160
+ "text-white": {
161
+ primary: "#FCFCFC",
162
+ secondary: "#F9F9F9",
163
+ third: "#D9D9D9"
164
+ },
165
+ // COLOR SPECIAL
166
+ "positive-flat": "#4ADE80",
167
+ "destruction-flat": "#EF4444",
168
+ "neutral-flat": "#BFDBFE",
169
+ rating: "#FDE047",
170
+ input: {
171
+ border: {
172
+ active: "#71717A",
173
+ disabled: "#D4D4D8"
174
+ },
175
+ bg: {
176
+ default: "#FDFDFD",
177
+ error: "#FEF2F2"
178
+ }
179
+ }
180
+ }
181
+ },
182
+ backgroundImage: {
183
+ "ui-bg-color": "linear-gradient(110deg, #9CD5F5 3.09%, #B1B8E6 33.47%, rgba(185, 155, 215, 0.90) 62.82%, #A293DF 84.45%, #878AEA 106.08%)",
184
+ "ui-bg-page": "radial-gradient(70.47% 70.47% at 50% 50%, #FDFDFD 0%, #F3F1FF 50%, #F1FCFF 100%)",
185
+ "ui-btn-primary": "linear-gradient(180deg, #828EF7 0%, #6C70F0 100%)",
186
+ "ui-btn-secondary": "linear-gradient(180deg, #4277EF 0%, #669BF4 100%)",
187
+ "ui-btn-accept": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
188
+ "ui-btn-destructive": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
189
+ "ui-status-bg-positive": "linear-gradient(0deg, #C4FFD8 0%, #68FF9D 100%)",
190
+ "ui-status-bg-negative": "linear-gradient(0deg, #FECACA 0%, #FF8F8F 100%)",
191
+ "ui-status-bg-neutral": "linear-gradient(0deg, #E1EBFF 0%, #C7E8FF 100%)",
192
+ "ui-status-order": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
193
+ "ui-status-out-of-stock": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
194
+ "ui-status-in-stock": "linear-gradient(282deg, #30A8FF 6.81%, #73BAED 93.19%)",
195
+ "ui-line": "linear-gradient(90deg, #D3D4FF 0%, #7587EA 50%, #AEC0FF 100%)"
196
+ },
197
+ boxShadow: {
198
+ "ui-sd-primary": "0 4px 20px 0 rgba(104, 109, 224, 0.5)",
199
+ "ui-sd-base": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
200
+ "ui-sd-destructive": "0 10px 10px 0 rgba(255, 56, 74, 0.15)",
201
+ "ui-sd-accept": "0 10px 10px 0 rgba(46, 213, 115, 0.15)",
202
+ "ui-xl": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
203
+ "ui-soft": "0px 5px 12px 0px rgba(0, 67, 101, 0.08)",
204
+ "ui-muli": "0px 5px 50px 0px rgba(0, 67, 101, 0.08), 0px 2px 6px 0px rgba(130, 169, 188, 0.08)",
205
+ "ui-category-effect": "0px 4px 50px 0px rgba(0, 67, 101, 0.08)",
206
+ "ui-flat": "0px 0.25rem 0.625rem 0px rgba(99, 102, 241, 0.07)",
207
+ "ui-overlay": "0px 4px 4px 1px rgba(99, 102, 241, 0.04)",
208
+ "ui-sticky-nav": "0px 3px 12px -1px rgba(151, 71, 255, 0.07)",
209
+ "ui-dialog": "0px 8px 12px 0px rgba(99, 102, 241, 0.15)"
210
+ },
211
+ fontSize: {
212
+ "ui-h1": ["1.5rem", "2rem"],
213
+ "ui-h2": ["1.25rem", "1.75rem"],
214
+ "ui-h3": ["1.125rem", "1.75rem"],
215
+ "ui-p": ["1rem", "1.5rem"],
216
+ "ui-note": ["0.875rem", "1.25rem"],
217
+ "ui-small-note": ["0.75rem", "1rem"]
218
+ },
219
+ keyframes: {
220
+ "accordion-down": {
221
+ from: { height: "0" },
222
+ to: { height: "var(--radix-accordion-content-height)" }
223
+ },
224
+ "accordion-up": {
225
+ from: { height: "var(--radix-accordion-content-height)" },
226
+ to: { height: "0" }
227
+ }
228
+ },
229
+ animation: {
230
+ "accordion-down": "accordion-down 0.2s ease-out",
231
+ "accordion-up": "accordion-up 0.2s ease-out"
232
+ }
233
+ };
234
+ var tailwindTheme_default = themes;
235
+
236
+ // packages/libs/utils.ts
237
+ import clsx from "clsx";
238
+ import { extendTailwindMerge } from "tailwind-merge";
239
+ var customTailwindMerge = () => {
240
+ return extendTailwindMerge({
241
+ ...tailwindTheme_default,
242
+ prefix: ""
243
+ });
244
+ };
245
+ var cn = (...inputs) => {
246
+ const customTwMerge = customTailwindMerge();
247
+ return customTwMerge(clsx(inputs));
248
+ };
249
+
250
+ // packages/Atoms/RadioGroup/index.tsx
251
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
252
+ import { Circle } from "lucide-react";
253
+ import { jsx } from "react/jsx-runtime";
254
+ var RadioGroup = forwardRef(({ className, ...props }, ref) => {
255
+ return /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
256
+ });
257
+ RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
258
+ var RadioGroupItem = forwardRef(({ className, ...props }, ref) => {
259
+ return /* @__PURE__ */ jsx(
260
+ RadioGroupPrimitive.Item,
261
+ {
262
+ ref,
263
+ className: cn(
264
+ "focus-visible:ring-ring",
265
+ "aspect-square size-4 rounded-full",
266
+ "border border-ui-primary-500",
267
+ "text-ui-primary-400",
268
+ "focus:outline-none",
269
+ "focus-visible:ring-2",
270
+ "focus-visible:ring-offset-2",
271
+ "disabled:cursor-not-allowed",
272
+ "disabled:opacity-50",
273
+ "transition duration-1000 ease-in-out",
274
+ className
275
+ ),
276
+ ...props,
277
+ children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Circle, { className: "size-2.5 fill-current text-current" }) })
278
+ }
279
+ );
280
+ });
281
+ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
282
+ export {
283
+ RadioGroup,
284
+ RadioGroupItem
285
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@customafk/lunas-ui",
3
3
  "private": false,
4
- "version": "0.0.2-s",
4
+ "version": "0.0.2-u",
5
5
  "type": "module",
6
6
  "homepage": "https://docs.customafk.com",
7
7
  "repository": {
@@ -109,6 +109,11 @@
109
109
  "import": "./dist/Atoms/Label/index.js",
110
110
  "require": "./dist/Atoms/Label/index.js"
111
111
  },
112
+ "./Atoms/MenuItem": {
113
+ "types": "./dist/Atoms/MenuItem/index.d.ts",
114
+ "import": "./dist/Atoms/MenuItem/index.js",
115
+ "require": "./dist/Atoms/MenuItem/index.js"
116
+ },
112
117
  "./Atoms/Money": {
113
118
  "types": "./dist/Atoms/Money/index.d.ts",
114
119
  "import": "./dist/Atoms/Money/index.js",
@@ -139,6 +144,11 @@
139
144
  "import": "./dist/Atoms/QuantityBtn/index.js",
140
145
  "require": "./dist/Atoms/QuantityBtn/index.js"
141
146
  },
147
+ "./Atoms/RadioGroup": {
148
+ "types": "./dist/Atoms/RadioGroup/index.d.ts",
149
+ "import": "./dist/Atoms/RadioGroup/index.js",
150
+ "require": "./dist/Atoms/RadioGroup/index.js"
151
+ },
142
152
  "./Atoms/ScrollBar": {
143
153
  "types": "./dist/Atoms/ScrollBar/index.d.ts",
144
154
  "import": "./dist/Atoms/ScrollBar/index.js",
@@ -180,9 +190,9 @@
180
190
  "require": "./dist/Atoms/Switch/index.js"
181
191
  },
182
192
  "./Atoms/Tabs": {
183
- "types": "./dist/Atoms/Switch/index.d.ts",
184
- "import": "./dist/Atoms/Switch/index.js",
185
- "require": "./dist/Atoms/Switch/index.js"
193
+ "types": "./dist/Atoms/Tabs/index.d.ts",
194
+ "import": "./dist/Atoms/Tabs/index.js",
195
+ "require": "./dist/Atoms/Tabs/index.js"
186
196
  },
187
197
  "./Atoms/Textarea": {
188
198
  "types": "./dist/Atoms/Textarea/index.d.ts",