nextjs-starter-kit 0.1.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 (67) hide show
  1. package/.github/PR_REQUEST_TEMPLATE.md +18 -0
  2. package/.github/workflows/pr_check.yml +38 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.prettierignore +7 -0
  5. package/.prettierrc +9 -0
  6. package/README.md +165 -0
  7. package/components.json +21 -0
  8. package/eslint.config.mjs +42 -0
  9. package/jsconfig.json +7 -0
  10. package/lint-staged.config.js +6 -0
  11. package/next.config.mjs +6 -0
  12. package/package.json +72 -0
  13. package/postcss.config.mjs +5 -0
  14. package/src/animations/loader.js +81 -0
  15. package/src/app/(routes)/(home)/page.jsx +7 -0
  16. package/src/app/favicon.ico +0 -0
  17. package/src/app/layout.js +81 -0
  18. package/src/app/not-found.jsx +19 -0
  19. package/src/app/robots.js +10 -0
  20. package/src/app/sitemap.js +10 -0
  21. package/src/assets/Logos/index.js +3 -0
  22. package/src/assets/index.js +5 -0
  23. package/src/components/ui/accordion.jsx +53 -0
  24. package/src/components/ui/alert-dialog.jsx +136 -0
  25. package/src/components/ui/alert.jsx +59 -0
  26. package/src/components/ui/avatar.jsx +44 -0
  27. package/src/components/ui/badge.jsx +40 -0
  28. package/src/components/ui/breadcrumb.jsx +96 -0
  29. package/src/components/ui/button.jsx +49 -0
  30. package/src/components/ui/calendar.jsx +221 -0
  31. package/src/components/ui/card.jsx +92 -0
  32. package/src/components/ui/carousel.jsx +217 -0
  33. package/src/components/ui/chart.jsx +332 -0
  34. package/src/components/ui/checkbox.jsx +29 -0
  35. package/src/components/ui/collapsible.jsx +27 -0
  36. package/src/components/ui/command.jsx +156 -0
  37. package/src/components/ui/container.jsx +18 -0
  38. package/src/components/ui/dialog.jsx +127 -0
  39. package/src/components/ui/drawer.jsx +114 -0
  40. package/src/components/ui/dropdown-menu.jsx +210 -0
  41. package/src/components/ui/form.jsx +140 -0
  42. package/src/components/ui/headings.jsx +34 -0
  43. package/src/components/ui/image.jsx +21 -0
  44. package/src/components/ui/input-otp.jsx +66 -0
  45. package/src/components/ui/input.jsx +21 -0
  46. package/src/components/ui/label.jsx +21 -0
  47. package/src/components/ui/pagination.jsx +105 -0
  48. package/src/components/ui/popover.jsx +42 -0
  49. package/src/components/ui/progress.jsx +27 -0
  50. package/src/components/ui/select.jsx +157 -0
  51. package/src/components/ui/separator.jsx +28 -0
  52. package/src/components/ui/sheet.jsx +117 -0
  53. package/src/components/ui/skeleton.jsx +13 -0
  54. package/src/components/ui/slider.jsx +63 -0
  55. package/src/components/ui/sonner.jsx +23 -0
  56. package/src/components/ui/switch.jsx +28 -0
  57. package/src/components/ui/table.jsx +113 -0
  58. package/src/components/ui/tabs.jsx +54 -0
  59. package/src/components/ui/textarea.jsx +18 -0
  60. package/src/components/ui/tooltip.jsx +49 -0
  61. package/src/lib/axios.js +8 -0
  62. package/src/lib/queryClient.js +11 -0
  63. package/src/lib/utils.js +6 -0
  64. package/src/providers/QueryProvider.jsx +15 -0
  65. package/src/shared/icons.js +308 -0
  66. package/src/styles/fonts.js +30 -0
  67. package/src/styles/globals.css +124 -0
@@ -0,0 +1,113 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+
5
+ import { cn } from "@/lib/utils";
6
+
7
+ function Table({ className, ...props }) {
8
+ return (
9
+ <div
10
+ data-slot="table-container"
11
+ className="relative w-full overflow-x-auto"
12
+ >
13
+ <table
14
+ data-slot="table"
15
+ className={cn("w-full caption-bottom text-sm", className)}
16
+ {...props}
17
+ />
18
+ </div>
19
+ );
20
+ }
21
+
22
+ function TableHeader({ className, ...props }) {
23
+ return (
24
+ <thead
25
+ data-slot="table-header"
26
+ className={cn("[&_tr]:border-b", className)}
27
+ {...props}
28
+ />
29
+ );
30
+ }
31
+
32
+ function TableBody({ className, ...props }) {
33
+ return (
34
+ <tbody
35
+ data-slot="table-body"
36
+ className={cn("[&_tr:last-child]:border-0", className)}
37
+ {...props}
38
+ />
39
+ );
40
+ }
41
+
42
+ function TableFooter({ className, ...props }) {
43
+ return (
44
+ <tfoot
45
+ data-slot="table-footer"
46
+ className={cn(
47
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
48
+ className
49
+ )}
50
+ {...props}
51
+ />
52
+ );
53
+ }
54
+
55
+ function TableRow({ className, ...props }) {
56
+ return (
57
+ <tr
58
+ data-slot="table-row"
59
+ className={cn(
60
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
61
+ className
62
+ )}
63
+ {...props}
64
+ />
65
+ );
66
+ }
67
+
68
+ function TableHead({ className, ...props }) {
69
+ return (
70
+ <th
71
+ data-slot="table-head"
72
+ className={cn(
73
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
74
+ className
75
+ )}
76
+ {...props}
77
+ />
78
+ );
79
+ }
80
+
81
+ function TableCell({ className, ...props }) {
82
+ return (
83
+ <td
84
+ data-slot="table-cell"
85
+ className={cn(
86
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
87
+ className
88
+ )}
89
+ {...props}
90
+ />
91
+ );
92
+ }
93
+
94
+ function TableCaption({ className, ...props }) {
95
+ return (
96
+ <caption
97
+ data-slot="table-caption"
98
+ className={cn("text-muted-foreground mt-4 text-sm", className)}
99
+ {...props}
100
+ />
101
+ );
102
+ }
103
+
104
+ export {
105
+ Table,
106
+ TableHeader,
107
+ TableBody,
108
+ TableFooter,
109
+ TableHead,
110
+ TableRow,
111
+ TableCell,
112
+ TableCaption,
113
+ };
@@ -0,0 +1,54 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
5
+
6
+ import { cn } from "@/lib/utils";
7
+
8
+ function Tabs({ className, ...props }) {
9
+ return (
10
+ <TabsPrimitive.Root
11
+ data-slot="tabs"
12
+ className={cn("flex flex-col gap-2", className)}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function TabsList({ className, ...props }) {
19
+ return (
20
+ <TabsPrimitive.List
21
+ data-slot="tabs-list"
22
+ className={cn(
23
+ "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
24
+ className
25
+ )}
26
+ {...props}
27
+ />
28
+ );
29
+ }
30
+
31
+ function TabsTrigger({ className, ...props }) {
32
+ return (
33
+ <TabsPrimitive.Trigger
34
+ data-slot="tabs-trigger"
35
+ className={cn(
36
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
37
+ className
38
+ )}
39
+ {...props}
40
+ />
41
+ );
42
+ }
43
+
44
+ function TabsContent({ className, ...props }) {
45
+ return (
46
+ <TabsPrimitive.Content
47
+ data-slot="tabs-content"
48
+ className={cn("flex-1 outline-none", className)}
49
+ {...props}
50
+ />
51
+ );
52
+ }
53
+
54
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+
3
+ import { cn } from "@/lib/utils";
4
+
5
+ function Textarea({ className, ...props }) {
6
+ return (
7
+ <textarea
8
+ data-slot="textarea"
9
+ className={cn(
10
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ className
12
+ )}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ export { Textarea };
@@ -0,0 +1,49 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
+
6
+ import { cn } from "@/lib/utils";
7
+
8
+ function TooltipProvider({ delayDuration = 0, ...props }) {
9
+ return (
10
+ <TooltipPrimitive.Provider
11
+ data-slot="tooltip-provider"
12
+ delayDuration={delayDuration}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function Tooltip({ ...props }) {
19
+ return (
20
+ <TooltipProvider>
21
+ <TooltipPrimitive.Root data-slot="tooltip" {...props} />
22
+ </TooltipProvider>
23
+ );
24
+ }
25
+
26
+ function TooltipTrigger({ ...props }) {
27
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
28
+ }
29
+
30
+ function TooltipContent({ className, sideOffset = 0, children, ...props }) {
31
+ return (
32
+ <TooltipPrimitive.Portal>
33
+ <TooltipPrimitive.Content
34
+ data-slot="tooltip-content"
35
+ sideOffset={sideOffset}
36
+ className={cn(
37
+ "bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
38
+ className
39
+ )}
40
+ {...props}
41
+ >
42
+ {children}
43
+ <TooltipPrimitive.Arrow className="bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" />
44
+ </TooltipPrimitive.Content>
45
+ </TooltipPrimitive.Portal>
46
+ );
47
+ }
48
+
49
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,8 @@
1
+ import axios from "axios";
2
+
3
+ const axiosClient = axios.create({
4
+ baseURL: process.env.NEXT_PUBLIC_API_URL,
5
+ withCredentials: true,
6
+ });
7
+
8
+ export default axiosClient;
@@ -0,0 +1,11 @@
1
+ import { QueryClient } from "@tanstack/react-query";
2
+
3
+ export const queryClient = new QueryClient({
4
+ defaultOptions: {
5
+ queries: {
6
+ staleTime: 0, // 👈 Always stale → always refetch
7
+ refetchOnWindowFocus: false, // 👈 Optional: Don' t spam refetch on tab switch
8
+ retry: 1, // 👈 1 retry only, safe
9
+ },
10
+ },
11
+ });
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+
4
+ export function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { QueryClientProvider } from "@tanstack/react-query";
3
+ import { queryClient } from "@/lib/queryClient";
4
+ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
5
+
6
+ export function QueryProvider({ children }) {
7
+ return (
8
+ <QueryClientProvider client={queryClient}>
9
+ {children}
10
+ {process.env.NODE_ENV === "development" && (
11
+ <ReactQueryDevtools initialIsOpen={false} />
12
+ )}
13
+ </QueryClientProvider>
14
+ );
15
+ }
@@ -0,0 +1,308 @@
1
+ import {
2
+ IconAdjustmentsHorizontal,
3
+ IconArrowDown,
4
+ IconArrowLeft,
5
+ IconArrowRight,
6
+ IconArrowUp,
7
+ IconArrowNarrowRight,
8
+ IconArrowsUpDown,
9
+ IconBoxMultipleFilled,
10
+ IconBrandDiscordFilled,
11
+ IconBrandFacebook,
12
+ IconBrandInstagram,
13
+ IconBrandX,
14
+ IconCalendarWeek,
15
+ IconLock,
16
+ IconChalkboard,
17
+ IconCheck,
18
+ IconChevronDown,
19
+ IconChevronLeft,
20
+ IconChevronRight,
21
+ IconChevronUp,
22
+ IconChevronsDown,
23
+ IconChevronsLeft,
24
+ IconChevronsRight,
25
+ IconChevronsUp,
26
+ IconCircle,
27
+ IconCircleCheck,
28
+ IconCircleDashedCheck,
29
+ IconCirclePlus,
30
+ IconDeviceTvOld,
31
+ IconDotsVertical,
32
+ IconEye,
33
+ IconEyeOff,
34
+ IconHash,
35
+ IconHelpCircle,
36
+ IconKey,
37
+ IconLibraryPhoto,
38
+ IconMail,
39
+ IconMenu,
40
+ IconMenuDeep,
41
+ IconMessagePlus,
42
+ IconMessageQuestion,
43
+ IconPhoneRinging,
44
+ IconRosetteDiscountCheckFilled,
45
+ IconSend,
46
+ IconShield,
47
+ IconSquareRounded,
48
+ IconSquareRoundedCheck,
49
+ IconStar,
50
+ IconTrashX,
51
+ IconTrophy,
52
+ IconUserCog,
53
+ IconUsersGroup,
54
+ IconX,
55
+ IconTimeDuration0,
56
+ IconTimeDurationOff,
57
+ IconSun,
58
+ IconMoon,
59
+ IconRings,
60
+ IconBrandAppleFilled,
61
+ IconSearch,
62
+ IconFilter,
63
+ IconArrowsSort,
64
+ IconMap,
65
+ IconCurrencyRupee,
66
+ IconTimeline,
67
+ IconTimelineEvent,
68
+ IconClock,
69
+ IconUserFilled,
70
+ IconHomeFilled,
71
+ IconBubbleTextFilled,
72
+ IconBrandGooglePhotos,
73
+ IconHeartHandshake,
74
+ IconInfoTriangle,
75
+ IconShieldLock,
76
+ IconHeart,
77
+ IconProgress,
78
+ IconLogout,
79
+ IconEdit,
80
+ IconLogout2,
81
+ IconPlus,
82
+ IconMessage,
83
+ IconUsers,
84
+ IconBell,
85
+ IconBellBolt,
86
+ IconNotification,
87
+ IconTrendingUp,
88
+ IconTrendingDown,
89
+ IconSortAscending,
90
+ IconSortDescending,
91
+ IconMapPin,
92
+ IconPhone,
93
+ IconLogin,
94
+ IconUserX,
95
+ IconLoader3,
96
+ IconLoader2,
97
+ IconLoader,
98
+ IconBolt,
99
+ IconQuote,
100
+ IconBulb,
101
+ IconBrandWhatsapp,
102
+ IconBrandGoogle,
103
+ IconRefresh,
104
+ IconCalculator,
105
+ IconMoodSmile,
106
+ IconDownload,
107
+ IconShare,
108
+ IconArrowNarrowUp,
109
+ IconArrowNarrowDown,
110
+ IconArrowNarrowLeft,
111
+ IconUserShield,
112
+ IconPictureInPicture,
113
+ IconMaximize,
114
+ IconPawFilled,
115
+ IconTree,
116
+ IconMoneybagHeart,
117
+ IconPhoneCalling,
118
+ IconHeartPlus,
119
+ IconBook,
120
+ IconPaint,
121
+ IconHandLoveYou,
122
+ IconSTurnDown,
123
+ IconExclamationMark,
124
+ IconCreditCard,
125
+ IconDeviceMobile,
126
+ IconBuilding,
127
+ IconMessage2,
128
+ IconWallet,
129
+ IconDeviceFloppy,
130
+ IconFriends,
131
+ IconBrandYoutube,
132
+ IconTarget,
133
+ IconGraph,
134
+ IconOm,
135
+ IconFlag,
136
+ IconTicket,
137
+ } from "@tabler/icons-react";
138
+ import { FcGoogle } from "react-icons/fc";
139
+ import { FaFacebook, FaLinkedinIn } from "react-icons/fa";
140
+
141
+ export const Icons = {
142
+ paw: IconPawFilled,
143
+ exclamation: IconExclamationMark,
144
+ heartHandshake: IconHeartHandshake,
145
+ heartPulse: IconHeartPlus,
146
+ message: IconMessage2,
147
+ flag: IconFlag,
148
+ bookOpen: IconBook,
149
+ om: IconOm,
150
+ people: IconUsers,
151
+ tree: IconTree,
152
+ friends: IconFriends,
153
+ target: IconTarget,
154
+ paintBrush: IconPaint,
155
+ money: IconMoneybagHeart,
156
+ handsHelping: IconHandLoveYou,
157
+ graph: IconGraph,
158
+ fireExtinguisher: IconSTurnDown,
159
+ utensils: IconPictureInPicture,
160
+ megaphone: IconPhoneCalling,
161
+
162
+ arrowSort: IconArrowsSort,
163
+ shieldCheck: IconUserShield,
164
+ image: IconPictureInPicture,
165
+ maximize: IconMaximize,
166
+ arrowSortAsc: IconSortAscending,
167
+ arrowSortDesc: IconSortDescending,
168
+ whatsapp: IconBrandWhatsapp,
169
+ youtube: IconBrandYoutube,
170
+ download: IconDownload,
171
+ arrowLeft: IconArrowLeft,
172
+ twitter: IconBrandX,
173
+ facebook: IconBrandFacebook,
174
+ loginFacebook: FaFacebook,
175
+ bolt: IconBolt,
176
+ notification: IconNotification,
177
+ discord: IconBrandDiscordFilled,
178
+ instagram: IconBrandInstagram,
179
+ share: IconShare,
180
+
181
+ trendUp: IconTrendingUp,
182
+ calculator: IconCalculator,
183
+ simle: IconMoodSmile,
184
+ trendDown: IconTrendingDown,
185
+ linkedin: FaLinkedinIn,
186
+ google: IconBrandGoogle,
187
+ refresh: IconRefresh,
188
+ loginGoogle: FcGoogle,
189
+ apple: IconBrandAppleFilled,
190
+ user: IconUserFilled,
191
+ users: IconUsers,
192
+ info: IconMessage,
193
+ bell: IconBell,
194
+ bellDot: IconBellBolt,
195
+ home: IconHomeFilled,
196
+ lock: IconLock,
197
+ alertTriangle: IconInfoTriangle,
198
+ heart: IconHeart,
199
+ progress: IconProgress,
200
+ logout: IconLogout,
201
+ logout2: IconLogout2,
202
+
203
+ faq: IconBubbleTextFilled,
204
+ gallery: IconBrandGooglePhotos,
205
+ donation: IconHeartHandshake,
206
+
207
+ // Navigation
208
+ menu: IconMenu,
209
+ menuDeep: IconMenuDeep,
210
+ arrowLeft: IconArrowLeft,
211
+ arrowRight: IconArrowRight,
212
+ arrowUp: IconArrowUp,
213
+ arrowDown: IconArrowDown,
214
+ chevronLeft: IconChevronLeft,
215
+ chevronRight: IconChevronRight,
216
+ chevronUp: IconChevronUp,
217
+ chevronDown: IconChevronDown,
218
+ chevronsLeft: IconChevronsLeft,
219
+ chevronsRight: IconChevronsRight,
220
+ chevronsUp: IconChevronsUp,
221
+ chevronsDown: IconChevronsDown,
222
+ arrowsUpDown: IconArrowsUpDown,
223
+ moreOptions: IconDotsVertical,
224
+ arrowsSort: IconArrowsSort,
225
+ map: IconMap,
226
+ rupees: IconCurrencyRupee,
227
+ ticket: IconTicket,
228
+ timelineEvent: IconTimelineEvent,
229
+ timeline: IconTimeline,
230
+ clock: IconClock,
231
+
232
+ // UI Actions
233
+ send: IconSend,
234
+ delete: IconTrashX,
235
+ x: IconX,
236
+ plus: IconPlus,
237
+ mail: IconMail,
238
+ messageAdd: IconMessagePlus,
239
+ settings: IconAdjustmentsHorizontal,
240
+ key: IconKey,
241
+ circleAdd: IconCirclePlus,
242
+ edit: IconEdit,
243
+ user: IconUserFilled,
244
+ userX: IconUserX,
245
+ mapPin: IconMapPin,
246
+ phone: IconPhone,
247
+ logIn: IconLogin,
248
+ save: IconDeviceFloppy,
249
+
250
+ // Status & Feedback
251
+ verified: (
252
+ <IconRosetteDiscountCheckFilled className="fill-blue-400" size={28} />
253
+ ),
254
+ verifiedBadge: (
255
+ <IconRosetteDiscountCheckFilled className="fill-blue-400 text-black" />
256
+ ),
257
+ check: IconCheck,
258
+ checkCircle: IconCircleCheck,
259
+ dashedCheckCircle: IconCircleDashedCheck,
260
+ squareUnchecked: IconSquareRounded,
261
+ squareChecked: IconSquareRoundedCheck,
262
+ circle: IconCircle,
263
+ eye: IconEye,
264
+ eyeOff: IconEyeOff,
265
+ loader3: IconLoader3,
266
+ loader2: IconLoader2,
267
+ loader: IconLoader,
268
+
269
+ // User & Groups
270
+ userSettings: IconUserCog,
271
+ userGroup: IconUsersGroup,
272
+
273
+ // Features
274
+ filter: IconFilter,
275
+ search: IconSearch,
276
+ star: IconStar,
277
+ shield: IconShield,
278
+ shieldLock: IconShieldLock,
279
+ leaderboard: IconTrophy,
280
+ mentor: IconChalkboard,
281
+ calendar: IconCalendarWeek,
282
+ contact: IconPhoneRinging,
283
+ gallery: IconLibraryPhoto,
284
+ media: IconDeviceTvOld,
285
+ faq: IconMessageQuestion,
286
+ blog: IconBoxMultipleFilled,
287
+ wedding: IconRings,
288
+ help: IconHelpCircle,
289
+ hashtag: IconHash,
290
+ sun: IconSun,
291
+ arrowNarrowRight: IconArrowNarrowRight,
292
+ arrowNarrowUp: IconArrowNarrowUp,
293
+ arrowNarrowDown: IconArrowNarrowDown,
294
+ arrowNarrowLeft: IconArrowNarrowLeft,
295
+ moon: IconMoon,
296
+
297
+ // Timer
298
+ timer: IconTimeDuration0,
299
+ timerOff: IconTimeDurationOff,
300
+ lightbulb: IconBulb,
301
+ quote: IconQuote,
302
+
303
+ // Payment
304
+ creditCard: IconCreditCard,
305
+ smartphone: IconDeviceMobile,
306
+ building: IconBuilding,
307
+ wallet: IconWallet,
308
+ };
@@ -0,0 +1,30 @@
1
+ import { Figtree, Inter, Manrope } from "next/font/google";
2
+
3
+ const inter = Inter({
4
+ preload: true,
5
+ subsets: ["latin"],
6
+ weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
7
+ adjustFontFallback: true,
8
+ variable: "--Inter",
9
+ fallback: ["system-ui", "sans-serif"],
10
+ });
11
+
12
+ const figtree = Figtree({
13
+ preload: true,
14
+ subsets: ["latin"],
15
+ weight: ["300", "400", "500", "600", "700", "800", "900"],
16
+ adjustFontFallback: true,
17
+ variable: "--Figtree",
18
+ fallback: ["system-ui", "sans-serif"],
19
+ });
20
+
21
+ const manrope = Manrope({
22
+ preload: true,
23
+ subsets: ["latin"],
24
+ weight: ["200", "300", "400", "500", "600", "700", "800"],
25
+ adjustFontFallback: true,
26
+ variable: "--Manrope",
27
+ fallback: ["system-ui", "sans-serif"],
28
+ });
29
+
30
+ export { inter, figtree, manrope };