@customafk/lunas-ui 0.0.2 → 0.0.3-b

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 (68) hide show
  1. package/dist/Atoms/AspectRatio/index.js +2 -0
  2. package/dist/Atoms/Avatar/index.js +3 -3
  3. package/dist/Atoms/Badge/index.js +2 -0
  4. package/dist/Atoms/Breadcrumb/index.js +7 -23
  5. package/dist/Atoms/Button/index.d.ts +2 -2
  6. package/dist/Atoms/Button/index.js +2 -0
  7. package/dist/Atoms/Card/index.js +2 -0
  8. package/dist/Atoms/Checkbox/index.d.ts +6 -0
  9. package/dist/Atoms/Checkbox/index.js +276 -0
  10. package/dist/Atoms/Command/index.d.ts +7 -7
  11. package/dist/Atoms/Command/index.js +39 -50
  12. package/dist/Atoms/Dialog/index.js +16 -31
  13. package/dist/Atoms/DropdownMenu/index.js +2 -0
  14. package/dist/Atoms/Form/index.js +32 -21
  15. package/dist/Atoms/Input/index.d.ts +5 -1
  16. package/dist/Atoms/Input/index.js +45 -543
  17. package/dist/Atoms/Label/index.js +2 -0
  18. package/dist/Atoms/MenuItem/index.d.ts +14 -0
  19. package/dist/Atoms/MenuItem/index.js +287 -0
  20. package/dist/Atoms/Money/index.js +2 -0
  21. package/dist/Atoms/Navbar/index.js +2 -0
  22. package/dist/Atoms/NavigationMenu/index.js +2 -0
  23. package/dist/Atoms/NumberInput/index.d.ts +7 -0
  24. package/dist/Atoms/NumberInput/index.js +321 -0
  25. package/dist/Atoms/Popover/index.d.ts +8 -0
  26. package/dist/Atoms/Popover/index.js +286 -0
  27. package/dist/Atoms/Progress/index.js +2 -0
  28. package/dist/Atoms/QuantityBtn/index.js +2 -0
  29. package/dist/Atoms/RadioGroup/index.d.ts +7 -0
  30. package/dist/Atoms/RadioGroup/index.js +285 -0
  31. package/dist/Atoms/ScrollBar/index.js +4 -2
  32. package/dist/Atoms/Select/index.js +2 -0
  33. package/dist/Atoms/Sheet/index.d.ts +29 -0
  34. package/dist/Atoms/Sheet/index.js +422 -0
  35. package/dist/Atoms/Slider/index.d.ts +6 -0
  36. package/dist/Atoms/Slider/index.js +286 -0
  37. package/dist/Atoms/SmallQuantityBtn/index.d.ts +9 -0
  38. package/dist/Atoms/SmallQuantityBtn/index.js +110 -0
  39. package/dist/Atoms/Switch/index.d.ts +6 -0
  40. package/dist/Atoms/Switch/index.js +293 -0
  41. package/dist/Atoms/Tabs/index.d.ts +9 -0
  42. package/dist/Atoms/Tabs/index.js +304 -0
  43. package/dist/Atoms/Textarea/index.d.ts +5 -0
  44. package/dist/Atoms/Textarea/index.js +283 -0
  45. package/dist/Atoms/Tooltip/index.d.ts +10 -0
  46. package/dist/Atoms/Tooltip/index.js +289 -0
  47. package/dist/Atoms/UserAvatar/index.d.ts +2 -2
  48. package/dist/Atoms/UserAvatar/index.js +24 -28
  49. package/dist/Atoms/XButton/index.d.ts +10 -0
  50. package/dist/Atoms/XButton/index.js +309 -0
  51. package/dist/Authentication/SignIn/index.d.ts +1 -1
  52. package/dist/Authentication/SignIn/index.js +129 -74
  53. package/dist/Authentication/SignUp/index.d.ts +5 -5
  54. package/dist/Authentication/SignUp/index.js +181 -110
  55. package/dist/Authentication/ThankYou/index.js +13 -4
  56. package/dist/Ecommerce/Categories/index.d.ts +33 -0
  57. package/dist/Ecommerce/Categories/index.js +1426 -0
  58. package/dist/Icons/index.d.ts +5 -3
  59. package/dist/Icons/index.js +126 -97
  60. package/dist/Molecules/AuthenForm/index.js +30 -21
  61. package/dist/Molecules/Search/index.js +46 -57
  62. package/dist/Molecules/UserDropdown/index.js +42 -33
  63. package/dist/Organisms/Header/index.d.ts +25 -3
  64. package/dist/Organisms/Header/index.js +585 -324
  65. package/dist/hooks/index.d.ts +1 -54
  66. package/dist/hooks/index.js +3 -127
  67. package/dist/{types-BgHhiNa-.d.ts → types-BlE003QY.d.ts} +1 -1
  68. package/package.json +85 -41
@@ -0,0 +1,286 @@
1
+ // packages/Atoms/Slider/index.tsx
2
+ import { forwardRef } from "react";
3
+
4
+ // packages/tailwindTheme.ts
5
+ var themes = {
6
+ spacing: {
7
+ 30: "7.5rem",
8
+ // 120px
9
+ 33: "8.25rem"
10
+ // 132px
11
+ },
12
+ colors: {
13
+ ui: {
14
+ white: "#ffffff",
15
+ "white-primary": "#ffffff",
16
+ "black-primary": "#111315",
17
+ "bg-white": "#FAFAFA",
18
+ primary: {
19
+ default: "#6C70F0",
20
+ 50: "#EEF2FF",
21
+ 100: "#E0E7FF",
22
+ 200: "#C8D2FD",
23
+ 300: "#A6B6FB",
24
+ 400: "#828EF7",
25
+ 500: "#6C70F0",
26
+ 600: "#5048E3",
27
+ 700: "#443AC8",
28
+ 800: "#3731A2",
29
+ 900: "#312F80",
30
+ 950: "#1F1C4A"
31
+ },
32
+ secondary: {
33
+ default: "#C170FF",
34
+ 50: "#F9F1FF",
35
+ 100: "#F3E2FF",
36
+ 200: "#ECD4FF",
37
+ 300: "#E0B8FF",
38
+ 400: "#D49BFF",
39
+ 500: "#C170FF",
40
+ 600: "#AE65E6",
41
+ 700: "#9A5ACC",
42
+ 800: "#874EB3",
43
+ 900: "#613880",
44
+ 950: "#3A224C"
45
+ },
46
+ tertiary: {
47
+ default: "#5B8CFF",
48
+ 50: "#EFF4FF",
49
+ 100: "#DEE8FF",
50
+ 200: "#CEDDFF",
51
+ 300: "#BDD1FF",
52
+ 400: "#7CA3FF",
53
+ 500: "#5B8CFF",
54
+ 600: "#527EE6",
55
+ 700: "#4062B3",
56
+ 800: "#2E4680",
57
+ 900: "#243866",
58
+ 950: "#1B2A4C"
59
+ },
60
+ destructive: {
61
+ default: "#EF4444",
62
+ 50: "#FEF2F2",
63
+ 100: "#FEE2E2",
64
+ 200: "#FECACA",
65
+ 300: "#FCA5A5",
66
+ 400: "#F87171",
67
+ 500: "#EF4444",
68
+ 600: "#DC2626",
69
+ 700: "#B91C1C",
70
+ 800: "#991B1B",
71
+ 900: "#7F1D1D",
72
+ 950: "#450A0A"
73
+ },
74
+ success: {
75
+ default: "#22c55e",
76
+ 50: "#f0fdf4",
77
+ 100: "#dcfce7",
78
+ 200: "#bbf7d0",
79
+ 300: "#86efac",
80
+ 400: "#4ade80",
81
+ 500: "#22c55e",
82
+ 600: "#16a34a",
83
+ 700: "#15803d",
84
+ 800: "#166534",
85
+ 900: "#14532d",
86
+ 950: "#052e16"
87
+ },
88
+ warn: {
89
+ default: "#f59e0b",
90
+ 50: "#fffbeb",
91
+ 100: "#fef3c7",
92
+ 200: "#fde68a",
93
+ 300: "#fcd34d",
94
+ 400: "#fbbf24",
95
+ 500: "#f59e0b",
96
+ 600: "#d97706",
97
+ 700: "#b45309",
98
+ 800: "#92400e",
99
+ 900: "#78350f",
100
+ 950: "#451a03"
101
+ },
102
+ text: {
103
+ black: "#09090b",
104
+ white: "#fafafa",
105
+ 50: "#fafafa",
106
+ 100: "#f4f4f5",
107
+ 200: "#e4e4e7",
108
+ 300: "#d4d4d8",
109
+ 400: "#a1a1aa",
110
+ 500: "#71717a",
111
+ 600: "#52525b",
112
+ 700: "#3f3f46",
113
+ 800: "#27272a",
114
+ 900: "#18181b",
115
+ 950: "#09090b"
116
+ },
117
+ surface: {
118
+ default: "#ffffff",
119
+ 50: "#ffffff",
120
+ 100: "#f5f5f5",
121
+ 200: "#e5e5e5",
122
+ 300: "#d4d4d4",
123
+ 400: "#a3a3a3",
124
+ 500: "#737373",
125
+ 600: "#525252",
126
+ 700: "#404040",
127
+ 800: "#262626",
128
+ 900: "#171717",
129
+ 950: "#0a0a0a"
130
+ },
131
+ border: {
132
+ default: "#64748B",
133
+ 50: "#f9fafb",
134
+ 100: "#f3f4f6",
135
+ 200: "#e5e7eb",
136
+ 300: "#d1d5db",
137
+ 400: "#9ca3af",
138
+ 500: "#64748B",
139
+ 600: "#475569",
140
+ 700: "#334155",
141
+ 800: "#1E293B",
142
+ 900: "#0F172A",
143
+ 950: "#020817"
144
+ },
145
+ // TEXT COLOR
146
+ "text-primary": "#111315",
147
+ "text-secondary": "#30353C",
148
+ "text-third": "#30353CCC",
149
+ "text-placeholder": "#11131566",
150
+ "text-white-placeholder": "#FDFDFD99",
151
+ "text-black": {
152
+ primary: "#19191B",
153
+ secondary: "#222325",
154
+ third: "#292A2E",
155
+ fourth: "#5F606A",
156
+ placeholder: "#B2B3BD"
157
+ },
158
+ "text-white": {
159
+ primary: "#FCFCFC",
160
+ secondary: "#F9F9F9",
161
+ third: "#D9D9D9"
162
+ },
163
+ // COLOR SPECIAL
164
+ "positive-flat": "#4ADE80",
165
+ "destruction-flat": "#EF4444",
166
+ "neutral-flat": "#BFDBFE",
167
+ rating: "#FDE047",
168
+ input: {
169
+ border: {
170
+ active: "#71717A",
171
+ disabled: "#D4D4D8"
172
+ },
173
+ bg: {
174
+ default: "#FDFDFD",
175
+ error: "#FEF2F2"
176
+ }
177
+ }
178
+ }
179
+ },
180
+ backgroundImage: {
181
+ "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%)",
182
+ "ui-bg-page": "radial-gradient(70.47% 70.47% at 50% 50%, #FDFDFD 0%, #F3F1FF 50%, #F1FCFF 100%)",
183
+ "ui-btn-primary": "linear-gradient(180deg, #828EF7 0%, #6C70F0 100%)",
184
+ "ui-btn-secondary": "linear-gradient(180deg, #4277EF 0%, #669BF4 100%)",
185
+ "ui-btn-accept": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
186
+ "ui-btn-destructive": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
187
+ "ui-status-bg-positive": "linear-gradient(0deg, #C4FFD8 0%, #68FF9D 100%)",
188
+ "ui-status-bg-negative": "linear-gradient(0deg, #FECACA 0%, #FF8F8F 100%)",
189
+ "ui-status-bg-neutral": "linear-gradient(0deg, #E1EBFF 0%, #C7E8FF 100%)",
190
+ "ui-status-order": "linear-gradient(282deg, #30C36D 6.81%, #6BCD8A 93.19%)",
191
+ "ui-status-out-of-stock": "linear-gradient(282deg, #FF384A 7.07%, #FF5463 92.93%)",
192
+ "ui-status-in-stock": "linear-gradient(282deg, #30A8FF 6.81%, #73BAED 93.19%)",
193
+ "ui-line": "linear-gradient(90deg, #D3D4FF 0%, #7587EA 50%, #AEC0FF 100%)"
194
+ },
195
+ boxShadow: {
196
+ "ui-sd-primary": "0 4px 20px 0 rgba(104, 109, 224, 0.5)",
197
+ "ui-sd-base": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
198
+ "ui-sd-destructive": "0 10px 10px 0 rgba(255, 56, 74, 0.15)",
199
+ "ui-sd-accept": "0 10px 10px 0 rgba(46, 213, 115, 0.15)",
200
+ "ui-xl": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
201
+ "ui-soft": "0px 5px 12px 0px rgba(0, 67, 101, 0.08)",
202
+ "ui-muli": "0px 5px 50px 0px rgba(0, 67, 101, 0.08), 0px 2px 6px 0px rgba(130, 169, 188, 0.08)",
203
+ "ui-category-effect": "0px 4px 50px 0px rgba(0, 67, 101, 0.08)",
204
+ "ui-flat": "0px 0.25rem 0.625rem 0px rgba(99, 102, 241, 0.07)",
205
+ "ui-overlay": "0px 4px 4px 1px rgba(99, 102, 241, 0.04)",
206
+ "ui-sticky-nav": "0px 3px 12px -1px rgba(151, 71, 255, 0.07)",
207
+ "ui-dialog": "0px 8px 12px 0px rgba(99, 102, 241, 0.15)"
208
+ },
209
+ fontSize: {
210
+ "ui-h1": ["1.5rem", "2rem"],
211
+ "ui-h2": ["1.25rem", "1.75rem"],
212
+ "ui-h3": ["1.125rem", "1.75rem"],
213
+ "ui-p": ["1rem", "1.5rem"],
214
+ "ui-note": ["0.875rem", "1.25rem"],
215
+ "ui-small-note": ["0.75rem", "1rem"]
216
+ },
217
+ keyframes: {
218
+ "accordion-down": {
219
+ from: { height: "0" },
220
+ to: { height: "var(--radix-accordion-content-height)" }
221
+ },
222
+ "accordion-up": {
223
+ from: { height: "var(--radix-accordion-content-height)" },
224
+ to: { height: "0" }
225
+ }
226
+ },
227
+ animation: {
228
+ "accordion-down": "accordion-down 0.2s ease-out",
229
+ "accordion-up": "accordion-up 0.2s ease-out"
230
+ }
231
+ };
232
+ var tailwindTheme_default = themes;
233
+
234
+ // packages/libs/utils.ts
235
+ import clsx from "clsx";
236
+ import { extendTailwindMerge } from "tailwind-merge";
237
+ var customTailwindMerge = () => {
238
+ return extendTailwindMerge({
239
+ ...tailwindTheme_default,
240
+ prefix: ""
241
+ });
242
+ };
243
+ var cn = (...inputs) => {
244
+ const customTwMerge = customTailwindMerge();
245
+ return customTwMerge(clsx(inputs));
246
+ };
247
+
248
+ // packages/Atoms/Slider/index.tsx
249
+ import * as SliderPrimitive from "@radix-ui/react-slider";
250
+ import { jsx, jsxs } from "react/jsx-runtime";
251
+ var Slider = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
252
+ SliderPrimitive.Root,
253
+ {
254
+ ref,
255
+ className: cn("relative flex w-full touch-none select-none items-center", className),
256
+ ...props,
257
+ children: [
258
+ /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-ui-surface-400", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-ui-primary-500" }) }),
259
+ /* @__PURE__ */ jsx(
260
+ SliderPrimitive.Thumb,
261
+ {
262
+ className: cn(
263
+ "block size-5 rounded-full",
264
+ "border-2 border-ui-primary-400",
265
+ "bg-ui-primary-500",
266
+ "ring-offset-ui-primary-200",
267
+ "transition-all duration-200",
268
+ "focus-visible:outline-none",
269
+ "disabled:pointer-events-none",
270
+ "disabled:opacity-50",
271
+ "cursor-grab",
272
+ "active:scale-110",
273
+ "active:cursor-grabbing",
274
+ "active:outline-none",
275
+ "active:ring-2",
276
+ "active:ring-offset-2"
277
+ )
278
+ }
279
+ )
280
+ ]
281
+ }
282
+ ));
283
+ Slider.displayName = SliderPrimitive.Root.displayName;
284
+ export {
285
+ Slider
286
+ };
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+
3
+ interface IProps {
4
+ value?: number;
5
+ onValueChange: (value: number) => void;
6
+ }
7
+ declare const SmallQuantityBtn: FC<IProps>;
8
+
9
+ export { SmallQuantityBtn as default };
@@ -0,0 +1,110 @@
1
+ // packages/Atoms/SmallQuantityBtn/index.tsx
2
+ import { useCallback, useEffect, useRef } from "react";
3
+
4
+ // packages/Icons/Lucide2MinusIcon.tsx
5
+ import { jsx } from "react/jsx-runtime";
6
+ var Lucide2MinusIcon = ({ size, color }) => {
7
+ return /* @__PURE__ */ jsx(
8
+ "svg",
9
+ {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ width: size ?? 16,
12
+ height: size ?? 16,
13
+ viewBox: "0 0 16 16",
14
+ fill: "none",
15
+ children: /* @__PURE__ */ jsx(
16
+ "path",
17
+ {
18
+ d: "M3.33325 8H12.6666",
19
+ stroke: color ?? "black",
20
+ strokeWidth: "1.33333",
21
+ strokeLinecap: "round",
22
+ strokeLinejoin: "round"
23
+ }
24
+ )
25
+ }
26
+ );
27
+ };
28
+ var Lucide2MinusIcon_default = Lucide2MinusIcon;
29
+
30
+ // packages/Icons/Lucide2PlusIcon.tsx
31
+ import { jsx as jsx2 } from "react/jsx-runtime";
32
+ var Lucide2PlusIcon = ({ size, color }) => {
33
+ return /* @__PURE__ */ jsx2(
34
+ "svg",
35
+ {
36
+ xmlns: "http://www.w3.org/2000/svg",
37
+ width: size ?? 16,
38
+ height: size ?? 16,
39
+ viewBox: "0 0 16 16",
40
+ fill: "none",
41
+ children: /* @__PURE__ */ jsx2(
42
+ "path",
43
+ {
44
+ d: "M3.33325 7.99998H12.6666M7.99992 3.33331V12.6666",
45
+ stroke: color ?? "black",
46
+ strokeWidth: "1.33333",
47
+ strokeLinecap: "round",
48
+ strokeLinejoin: "round"
49
+ }
50
+ )
51
+ }
52
+ );
53
+ };
54
+ var Lucide2PlusIcon_default = Lucide2PlusIcon;
55
+
56
+ // packages/Atoms/SmallQuantityBtn/index.tsx
57
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
58
+ var SmallQuantityBtn = ({ value: initialValue = 1, onValueChange }) => {
59
+ const inputRef = useRef(null);
60
+ const handleValueChange = (event) => {
61
+ if (!inputRef.current) return;
62
+ const { value: val } = event.target;
63
+ const integerRegexOrEmpty = /^$|^\d*$/;
64
+ const maxLength = 3;
65
+ if (!integerRegexOrEmpty.test(val) || val.length >= maxLength || Number(val) > 99 || Number(val) < 1) {
66
+ inputRef.current.value = initialValue.toString();
67
+ return;
68
+ }
69
+ if (val === "") {
70
+ inputRef.current.value = "0";
71
+ return;
72
+ }
73
+ inputRef.current.value = Number(val).toString();
74
+ };
75
+ const handleMinus = useCallback(() => {
76
+ if (!inputRef.current) return;
77
+ const { value } = inputRef.current;
78
+ const newVal = Math.max(1, Number.parseInt(value, 10) - 1).toString();
79
+ inputRef.current.value = newVal;
80
+ onValueChange(Number(newVal));
81
+ }, [onValueChange]);
82
+ const handlePlus = useCallback(() => {
83
+ if (!inputRef.current) return;
84
+ const { value } = inputRef.current;
85
+ const newVal = Number(value) >= 99 ? "1" : (Number.parseInt(value, 10) + 1).toString();
86
+ inputRef.current.value = newVal;
87
+ onValueChange(Number(newVal));
88
+ }, [onValueChange]);
89
+ useEffect(() => {
90
+ if (!inputRef.current) return;
91
+ inputRef.current.value = initialValue.toString();
92
+ }, [initialValue]);
93
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-fit justify-center gap-x-0 overflow-hidden rounded-lg border border-ui-primary-500 px-0", children: [
94
+ /* @__PURE__ */ jsx3("button", { className: "size-6 px-2", onClick: handleMinus, children: /* @__PURE__ */ jsx3(Lucide2MinusIcon_default, { color: "#6C70F0" }) }),
95
+ /* @__PURE__ */ jsx3("div", { className: "flex h-6 w-8 items-center justify-center", children: /* @__PURE__ */ jsx3(
96
+ "input",
97
+ {
98
+ ref: inputRef,
99
+ type: "text",
100
+ className: "size-6 bg-transparent text-center text-ui-note text-ui-primary-500 outline-none",
101
+ onChange: handleValueChange
102
+ }
103
+ ) }),
104
+ /* @__PURE__ */ jsx3("button", { className: "flex size-6 items-center justify-center", onClick: handlePlus, children: /* @__PURE__ */ jsx3(Lucide2PlusIcon_default, { color: "#6C70F0" }) })
105
+ ] });
106
+ };
107
+ var SmallQuantityBtn_default = SmallQuantityBtn;
108
+ export {
109
+ SmallQuantityBtn_default as default
110
+ };
@@ -0,0 +1,6 @@
1
+ import React__default from 'react';
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
+
4
+ declare const Switch: React__default.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
5
+
6
+ export { Switch };