├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── app
├── api
│ └── (auth)
│ │ ├── signin
│ │ └── page.tsx
│ │ └── signup
│ │ └── page.tsx
├── favicon.ico
├── globals.css
├── layout.tsx
└── page.tsx
├── components.json
├── components
├── framework-rotation.tsx
├── theme-provider.tsx
└── ui
│ ├── button.tsx
│ ├── dropdown-menu.tsx
│ └── input.tsx
├── config
└── site.ts
├── lib
└── utils.ts
├── next.config.js
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── public
├── next.svg
└── vercel.svg
├── tailwind.config.ts
├── tsconfig.json
└── utils
├── assets.ts
├── data.ts
└── tailwind.ts
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env*.local
29 |
30 | # vercel
31 | .vercel
32 |
33 | # typescript
34 | *.tsbuildinfo
35 | next-env.d.ts
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
"Launch" Landing Page
2 |
3 |
4 |
5 | A beautifully designed & Animated "Coming Soon" landing page.
6 |
7 | 🚀 Demo
8 |
9 | [https://crm.xypeui.com/](https://crm.xypeui.com/)
10 |
11 | Project Screenshots:
12 |
13 |
14 |
15 | 🧐 Features
16 |
17 | Here're some of the project's best features:
18 |
19 | - Beautifully styled UI
20 | - Lightweight
21 | - Animated
22 |
23 | 🛠️ Installation Steps:
24 |
25 | 1. Install all dependencies
26 |
27 | ```
28 | pnpm i
29 | ```
30 |
31 | 🍰 Contribution Guidelines:
32 |
33 | Please credit me if you use this!
34 |
35 | 💻 Built with
36 |
37 | Technologies used in the project:
38 |
39 | - NextJS 13
40 | - TailwindCSS
41 | - shadcn-ui
42 |
43 | 🛡️ License:
44 |
45 | This project is licensed under the Creative Commons Regulation.
46 |
--------------------------------------------------------------------------------
/app/api/(auth)/signin/page.tsx:
--------------------------------------------------------------------------------
1 | import { Input } from "@/components/ui/input";
2 |
3 | const SignInPage = () => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 | Keep it special
11 |
12 |
13 | Capture your personal memory in unique way, anywhere.
14 |
15 |
16 |
17 |
18 |
25 |
26 |
27 |
28 |
29 |
36 |
37 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
56 |
57 |
58 |
59 |
65 |
71 |
72 |
73 |
74 |
75 | f
76 |
77 |
78 | G+
79 |
80 |
81 | in
82 |
83 |
84 |
or use email your account
85 |
149 |
150 |
151 |
152 | );
153 | };
154 |
155 | export default SignInPage;
156 |
--------------------------------------------------------------------------------
/app/api/(auth)/signup/page.tsx:
--------------------------------------------------------------------------------
1 | const SignUpPage = () => {
2 | return (
3 |
4 |
Sign Up
5 |
6 | );
7 | };
8 |
9 | export default SignUpPage;
10 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1w6ts/launch-landing-page/90607f16d15c8fd608e76553b954dcd969dc00a4/app/favicon.ico
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | body {
6 | background: #13131e;
7 | color: #ffffff;
8 | }
9 |
10 | @layer base {
11 | :root {
12 | --background: #13131e;
13 | --foreground: 222.2 84% 4.9%;
14 |
15 | --card: 0 0% 100%;
16 | --card-foreground: 222.2 84% 4.9%;
17 |
18 | --popover: 0 0% 100%;
19 | --popover-foreground: 222.2 84% 4.9%;
20 |
21 | --primary: 222.2 47.4% 11.2%;
22 | --primary-foreground: 210 40% 98%;
23 |
24 | --secondary: 210 40% 96.1%;
25 | --secondary-foreground: 222.2 47.4% 11.2%;
26 |
27 | --muted: 210 40% 96.1%;
28 | --muted-foreground: 215.4 16.3% 46.9%;
29 |
30 | --accent: 210 40% 96.1%;
31 | --accent-foreground: 222.2 47.4% 11.2%;
32 |
33 | --destructive: 0 84.2% 60.2%;
34 | --destructive-foreground: 210 40% 98%;
35 |
36 | --border: 214.3 31.8% 91.4%;
37 | --input: 214.3 31.8% 91.4%;
38 | --ring: 222.2 84% 4.9%;
39 |
40 | --radius: 0.5rem;
41 | }
42 |
43 | .dark {
44 | --background: #13131e;
45 | --foreground: #fff;
46 |
47 | --card: 222.2 84% 4.9%;
48 | --card-foreground: 210 40% 98%;
49 |
50 | --popover: 222.2 84% 4.9%;
51 | --popover-foreground: 210 40% 98%;
52 |
53 | --primary: 210 40% 98%;
54 | --primary-foreground: 222.2 47.4% 11.2%;
55 |
56 | --secondary: 217.2 32.6% 17.5%;
57 | --secondary-foreground: 210 40% 98%;
58 |
59 | --muted: 217.2 32.6% 17.5%;
60 | --muted-foreground: 215 20.2% 65.1%;
61 |
62 | --accent: 217.2 32.6% 17.5%;
63 | --accent-foreground: 210 40% 98%;
64 |
65 | --destructive: 0 62.8% 30.6%;
66 | --destructive-foreground: 210 40% 98%;
67 |
68 | --border: 217.2 32.6% 17.5%;
69 | --input: 217.2 32.6% 17.5%;
70 | --ring: 212.7 26.8% 83.9%;
71 | }
72 | }
73 |
74 | @layer base {
75 | * {
76 | @apply border-border;
77 | }
78 | body {
79 | @apply bg-background text-foreground;
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import { ThemeProvider } from "@/components/theme-provider";
2 | import "./globals.css";
3 | import type { Metadata } from "next";
4 | import { Inter } from "next/font/google";
5 | import { Toaster } from "react-hot-toast";
6 | import { siteConfig } from "@/config/site";
7 |
8 | const inter = Inter({ subsets: ["latin"] });
9 |
10 | export const metadata: Metadata = {
11 | title: siteConfig.name,
12 | description: siteConfig.description,
13 | };
14 |
15 | export default function RootLayout({
16 | children,
17 | }: {
18 | children: React.ReactNode;
19 | }) {
20 | return (
21 |
22 |
23 |
24 |
30 | {children}
31 |
32 |
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import Image from "next/image";
4 | import { assets } from "@/utils/assets";
5 | import { type Framework, frameworks } from "@/utils/data";
6 | import { useState, useEffect } from "react";
7 | import { cn } from "@/utils/tailwind";
8 | import { FrameworkRotation } from "@/components/framework-rotation";
9 | import Link from "next/link";
10 | import { Button } from "@/components/ui/button";
11 | import { Input } from "@/components/ui/input";
12 | import { toast } from "react-hot-toast";
13 |
14 | export default function Home() {
15 | const [currentFramework, setCurrentFramework] = useState(
16 | frameworks[0]
17 | );
18 |
19 | const [showBackground, setShowBackground] = useState(false);
20 |
21 | useEffect(() => {
22 | let currentIndex = 0;
23 | const rotateFrameworks = () => {
24 | setCurrentFramework(frameworks[currentIndex]);
25 | currentIndex = (currentIndex + 1) % frameworks.length;
26 | };
27 | const intervalId = setInterval(rotateFrameworks, 2000);
28 | return () => clearInterval(intervalId);
29 | }, []);
30 |
31 | useEffect(() => {
32 | setShowBackground(true);
33 | }, []);
34 |
35 | return (
36 |
37 |
49 |
57 |
64 |
70 |
71 |
72 |
73 |
76 | Build{" "}
77 |
86 | scalable
87 | {" "}
88 | CRM apps with{" "}
89 |
90 |
91 |
92 |
93 |
94 | Join us for the launch event by{" "}
95 |
96 |
105 |
106 | xypeui
107 |
108 |
109 |
110 |
111 |
112 |
114 | toast("Claiming tickets is currently not available!", {
115 | icon: "❌",
116 | style: {
117 | background: "#272727",
118 | color: "#fff",
119 | },
120 | })
121 | }
122 | className={cn(
123 | "bg-white px-6 py-3 rounded-md text-sm font-bold transition-colors duration-200 whitespace-nowrap",
124 | {
125 | "bg-purple-300 hover:bg-purple-400":
126 | currentFramework === "qwik",
127 | "bg-teal-300 hover:bg-teal-400":
128 | currentFramework === "tailwind",
129 | "bg-blue-300 hover:bg-blue-400": currentFramework === "react",
130 | "bg-green-300 hover:bg-green-400": currentFramework === "vue",
131 | "bg-orange-400 hover:bg-orange-500":
132 | currentFramework === "svelte",
133 | }
134 | )}
135 | >
136 | Claim Ticket
137 |
138 |
139 |
140 |
141 |
142 | );
143 | }
144 |
--------------------------------------------------------------------------------
/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "default",
4 | "rsc": true,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.ts",
8 | "css": "app/globals.css",
9 | "baseColor": "slate",
10 | "cssVariables": true
11 | },
12 | "aliases": {
13 | "components": "@/components",
14 | "utils": "@/lib/utils"
15 | }
16 | }
--------------------------------------------------------------------------------
/components/framework-rotation.tsx:
--------------------------------------------------------------------------------
1 | import Image from "next/image";
2 | import { assets } from "@/utils/assets";
3 | import { Framework, frameworks } from "@/utils/data";
4 | import { cn } from "@/utils/tailwind";
5 |
6 | type AssetKey = keyof typeof assets;
7 |
8 | export const FrameworkRotation = ({
9 | currentFramework,
10 | }: {
11 | currentFramework: Framework;
12 | }) => {
13 | return (
14 |
15 | {frameworks.map((name, index) => (
16 | frameworks.indexOf(currentFramework as Framework)
24 | ? "opacity-0 -translate-y-2"
25 | : "opacity-0 translate-y-2"
26 | )}
27 | alt="Framework logo"
28 | width="80"
29 | height="80"
30 | />
31 | ))}
32 |
33 | );
34 | };
35 |
--------------------------------------------------------------------------------
/components/theme-provider.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import * as React from "react";
4 | import { ThemeProvider as NextThemesProvider } from "next-themes";
5 | import { type ThemeProviderProps } from "next-themes/dist/types";
6 |
7 | export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
8 | return {children} ;
9 | }
10 |
--------------------------------------------------------------------------------
/components/ui/button.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Slot } from "@radix-ui/react-slot"
3 | import { cva, type VariantProps } from "class-variance-authority"
4 |
5 | import { cn } from "@/lib/utils"
6 |
7 | const buttonVariants = cva(
8 | "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
9 | {
10 | variants: {
11 | variant: {
12 | default: "bg-primary text-primary-foreground hover:bg-primary/90",
13 | destructive:
14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90",
15 | outline:
16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
17 | secondary:
18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19 | ghost: "hover:bg-accent hover:text-accent-foreground",
20 | link: "text-primary underline-offset-4 hover:underline",
21 | },
22 | size: {
23 | default: "h-10 px-4 py-2",
24 | sm: "h-9 rounded-md px-3",
25 | lg: "h-11 rounded-md px-8",
26 | icon: "h-10 w-10",
27 | },
28 | },
29 | defaultVariants: {
30 | variant: "default",
31 | size: "default",
32 | },
33 | }
34 | )
35 |
36 | export interface ButtonProps
37 | extends React.ButtonHTMLAttributes,
38 | VariantProps {
39 | asChild?: boolean
40 | }
41 |
42 | const Button = React.forwardRef(
43 | ({ className, variant, size, asChild = false, ...props }, ref) => {
44 | const Comp = asChild ? Slot : "button"
45 | return (
46 |
51 | )
52 | }
53 | )
54 | Button.displayName = "Button"
55 |
56 | export { Button, buttonVariants }
57 |
--------------------------------------------------------------------------------
/components/ui/dropdown-menu.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import * as React from "react"
4 | import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
5 | import { Check, ChevronRight, Circle } from "lucide-react"
6 |
7 | import { cn } from "@/lib/utils"
8 |
9 | const DropdownMenu = DropdownMenuPrimitive.Root
10 |
11 | const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger
12 |
13 | const DropdownMenuGroup = DropdownMenuPrimitive.Group
14 |
15 | const DropdownMenuPortal = DropdownMenuPrimitive.Portal
16 |
17 | const DropdownMenuSub = DropdownMenuPrimitive.Sub
18 |
19 | const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup
20 |
21 | const DropdownMenuSubTrigger = React.forwardRef<
22 | React.ElementRef,
23 | React.ComponentPropsWithoutRef & {
24 | inset?: boolean
25 | }
26 | >(({ className, inset, children, ...props }, ref) => (
27 |
36 | {children}
37 |
38 |
39 | ))
40 | DropdownMenuSubTrigger.displayName =
41 | DropdownMenuPrimitive.SubTrigger.displayName
42 |
43 | const DropdownMenuSubContent = React.forwardRef<
44 | React.ElementRef,
45 | React.ComponentPropsWithoutRef
46 | >(({ className, ...props }, ref) => (
47 |
55 | ))
56 | DropdownMenuSubContent.displayName =
57 | DropdownMenuPrimitive.SubContent.displayName
58 |
59 | const DropdownMenuContent = React.forwardRef<
60 | React.ElementRef,
61 | React.ComponentPropsWithoutRef
62 | >(({ className, sideOffset = 4, ...props }, ref) => (
63 |
64 |
73 |
74 | ))
75 | DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
76 |
77 | const DropdownMenuItem = React.forwardRef<
78 | React.ElementRef,
79 | React.ComponentPropsWithoutRef & {
80 | inset?: boolean
81 | }
82 | >(({ className, inset, ...props }, ref) => (
83 |
92 | ))
93 | DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
94 |
95 | const DropdownMenuCheckboxItem = React.forwardRef<
96 | React.ElementRef,
97 | React.ComponentPropsWithoutRef
98 | >(({ className, children, checked, ...props }, ref) => (
99 |
108 |
109 |
110 |
111 |
112 |
113 | {children}
114 |
115 | ))
116 | DropdownMenuCheckboxItem.displayName =
117 | DropdownMenuPrimitive.CheckboxItem.displayName
118 |
119 | const DropdownMenuRadioItem = React.forwardRef<
120 | React.ElementRef,
121 | React.ComponentPropsWithoutRef
122 | >(({ className, children, ...props }, ref) => (
123 |
131 |
132 |
133 |
134 |
135 |
136 | {children}
137 |
138 | ))
139 | DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName
140 |
141 | const DropdownMenuLabel = React.forwardRef<
142 | React.ElementRef,
143 | React.ComponentPropsWithoutRef & {
144 | inset?: boolean
145 | }
146 | >(({ className, inset, ...props }, ref) => (
147 |
156 | ))
157 | DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
158 |
159 | const DropdownMenuSeparator = React.forwardRef<
160 | React.ElementRef,
161 | React.ComponentPropsWithoutRef
162 | >(({ className, ...props }, ref) => (
163 |
168 | ))
169 | DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
170 |
171 | const DropdownMenuShortcut = ({
172 | className,
173 | ...props
174 | }: React.HTMLAttributes) => {
175 | return (
176 |
180 | )
181 | }
182 | DropdownMenuShortcut.displayName = "DropdownMenuShortcut"
183 |
184 | export {
185 | DropdownMenu,
186 | DropdownMenuTrigger,
187 | DropdownMenuContent,
188 | DropdownMenuItem,
189 | DropdownMenuCheckboxItem,
190 | DropdownMenuRadioItem,
191 | DropdownMenuLabel,
192 | DropdownMenuSeparator,
193 | DropdownMenuShortcut,
194 | DropdownMenuGroup,
195 | DropdownMenuPortal,
196 | DropdownMenuSub,
197 | DropdownMenuSubContent,
198 | DropdownMenuSubTrigger,
199 | DropdownMenuRadioGroup,
200 | }
201 |
--------------------------------------------------------------------------------
/components/ui/input.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 |
3 | import { cn } from "@/lib/utils"
4 |
5 | export interface InputProps
6 | extends React.InputHTMLAttributes {}
7 |
8 | const Input = React.forwardRef(
9 | ({ className, type, ...props }, ref) => {
10 | return (
11 |
20 | )
21 | }
22 | )
23 | Input.displayName = "Input"
24 |
25 | export { Input }
26 |
--------------------------------------------------------------------------------
/config/site.ts:
--------------------------------------------------------------------------------
1 | export const siteConfig = {
2 | name: "xype/crm - Launching soon!",
3 | description: "Build scalable CRM apps with xype/crm's API and Components",
4 | keywords: "CRM, website, best",
5 | url: "https://crm.xypeui.com",
6 | };
7 |
--------------------------------------------------------------------------------
/lib/utils.ts:
--------------------------------------------------------------------------------
1 | import { type ClassValue, clsx } from "clsx"
2 | import { twMerge } from "tailwind-merge"
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs))
6 | }
7 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | images: {
4 | domains: ["localhost", "cdn.builder.io"],
5 | dangerouslyAllowSVG: true,
6 | },
7 | };
8 |
9 | module.exports = nextConfig;
10 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "xype",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@radix-ui/react-dropdown-menu": "^2.0.6",
13 | "@radix-ui/react-slot": "^1.0.2",
14 | "class-variance-authority": "^0.7.0",
15 | "clsx": "^2.0.0",
16 | "lucide-react": "^0.279.0",
17 | "next": "latest",
18 | "next-themes": "^0.2.1",
19 | "react": "latest",
20 | "react-dom": "latest",
21 | "react-hot-toast": "^2.4.1",
22 | "tailwind-merge": "^1.14.0",
23 | "tailwindcss-animate": "^1.0.7"
24 | },
25 | "devDependencies": {
26 | "@types/node": "latest",
27 | "@types/react": "latest",
28 | "@types/react-dom": "latest",
29 | "autoprefixer": "latest",
30 | "postcss": "latest",
31 | "tailwindcss": "latest",
32 | "typescript": "latest"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@radix-ui/react-dropdown-menu':
9 | specifier: ^2.0.6
10 | version: 2.0.6(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
11 | '@radix-ui/react-slot':
12 | specifier: ^1.0.2
13 | version: 1.0.2(@types/react@18.2.23)(react@18.2.0)
14 | class-variance-authority:
15 | specifier: ^0.7.0
16 | version: 0.7.0
17 | clsx:
18 | specifier: ^2.0.0
19 | version: 2.0.0
20 | lucide-react:
21 | specifier: ^0.279.0
22 | version: 0.279.0(react@18.2.0)
23 | next:
24 | specifier: latest
25 | version: 13.5.3(react-dom@18.2.0)(react@18.2.0)
26 | next-themes:
27 | specifier: ^0.2.1
28 | version: 0.2.1(next@13.5.3)(react-dom@18.2.0)(react@18.2.0)
29 | react:
30 | specifier: latest
31 | version: 18.2.0
32 | react-dom:
33 | specifier: latest
34 | version: 18.2.0(react@18.2.0)
35 | react-hot-toast:
36 | specifier: ^2.4.1
37 | version: 2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0)
38 | tailwind-merge:
39 | specifier: ^1.14.0
40 | version: 1.14.0
41 | tailwindcss-animate:
42 | specifier: ^1.0.7
43 | version: 1.0.7(tailwindcss@3.3.3)
44 |
45 | devDependencies:
46 | '@types/node':
47 | specifier: latest
48 | version: 20.7.0
49 | '@types/react':
50 | specifier: latest
51 | version: 18.2.23
52 | '@types/react-dom':
53 | specifier: latest
54 | version: 18.2.8
55 | autoprefixer:
56 | specifier: latest
57 | version: 10.4.16(postcss@8.4.30)
58 | postcss:
59 | specifier: latest
60 | version: 8.4.30
61 | tailwindcss:
62 | specifier: latest
63 | version: 3.3.3
64 | typescript:
65 | specifier: latest
66 | version: 5.2.2
67 |
68 | packages:
69 |
70 | /@alloc/quick-lru@5.2.0:
71 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
72 | engines: {node: '>=10'}
73 |
74 | /@babel/runtime@7.23.1:
75 | resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==}
76 | engines: {node: '>=6.9.0'}
77 | dependencies:
78 | regenerator-runtime: 0.14.0
79 | dev: false
80 |
81 | /@floating-ui/core@1.5.0:
82 | resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==}
83 | dependencies:
84 | '@floating-ui/utils': 0.1.4
85 | dev: false
86 |
87 | /@floating-ui/dom@1.5.3:
88 | resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
89 | dependencies:
90 | '@floating-ui/core': 1.5.0
91 | '@floating-ui/utils': 0.1.4
92 | dev: false
93 |
94 | /@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0):
95 | resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==}
96 | peerDependencies:
97 | react: '>=16.8.0'
98 | react-dom: '>=16.8.0'
99 | dependencies:
100 | '@floating-ui/dom': 1.5.3
101 | react: 18.2.0
102 | react-dom: 18.2.0(react@18.2.0)
103 | dev: false
104 |
105 | /@floating-ui/utils@0.1.4:
106 | resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==}
107 | dev: false
108 |
109 | /@jridgewell/gen-mapping@0.3.3:
110 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
111 | engines: {node: '>=6.0.0'}
112 | dependencies:
113 | '@jridgewell/set-array': 1.1.2
114 | '@jridgewell/sourcemap-codec': 1.4.15
115 | '@jridgewell/trace-mapping': 0.3.19
116 |
117 | /@jridgewell/resolve-uri@3.1.1:
118 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
119 | engines: {node: '>=6.0.0'}
120 |
121 | /@jridgewell/set-array@1.1.2:
122 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
123 | engines: {node: '>=6.0.0'}
124 |
125 | /@jridgewell/sourcemap-codec@1.4.15:
126 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
127 |
128 | /@jridgewell/trace-mapping@0.3.19:
129 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
130 | dependencies:
131 | '@jridgewell/resolve-uri': 3.1.1
132 | '@jridgewell/sourcemap-codec': 1.4.15
133 |
134 | /@next/env@13.5.3:
135 | resolution: {integrity: sha512-X4te86vsbjsB7iO4usY9jLPtZ827Mbx+WcwNBGUOIuswuTAKQtzsuoxc/6KLxCMvogKG795MhrR1LDhYgDvasg==}
136 | dev: false
137 |
138 | /@next/swc-darwin-arm64@13.5.3:
139 | resolution: {integrity: sha512-6hiYNJxJmyYvvKGrVThzo4nTcqvqUTA/JvKim7Auaj33NexDqSNwN5YrrQu+QhZJCIpv2tULSHt+lf+rUflLSw==}
140 | engines: {node: '>= 10'}
141 | cpu: [arm64]
142 | os: [darwin]
143 | requiresBuild: true
144 | dev: false
145 | optional: true
146 |
147 | /@next/swc-darwin-x64@13.5.3:
148 | resolution: {integrity: sha512-UpBKxu2ob9scbpJyEq/xPgpdrgBgN3aLYlxyGqlYX5/KnwpJpFuIHU2lx8upQQ7L+MEmz+fA1XSgesoK92ppwQ==}
149 | engines: {node: '>= 10'}
150 | cpu: [x64]
151 | os: [darwin]
152 | requiresBuild: true
153 | dev: false
154 | optional: true
155 |
156 | /@next/swc-linux-arm64-gnu@13.5.3:
157 | resolution: {integrity: sha512-5AzM7Yx1Ky+oLY6pHs7tjONTF22JirDPd5Jw/3/NazJ73uGB05NqhGhB4SbeCchg7SlVYVBeRMrMSZwJwq/xoA==}
158 | engines: {node: '>= 10'}
159 | cpu: [arm64]
160 | os: [linux]
161 | requiresBuild: true
162 | dev: false
163 | optional: true
164 |
165 | /@next/swc-linux-arm64-musl@13.5.3:
166 | resolution: {integrity: sha512-A/C1shbyUhj7wRtokmn73eBksjTM7fFQoY2v/0rTM5wehpkjQRLOXI8WJsag2uLhnZ4ii5OzR1rFPwoD9cvOgA==}
167 | engines: {node: '>= 10'}
168 | cpu: [arm64]
169 | os: [linux]
170 | requiresBuild: true
171 | dev: false
172 | optional: true
173 |
174 | /@next/swc-linux-x64-gnu@13.5.3:
175 | resolution: {integrity: sha512-FubPuw/Boz8tKkk+5eOuDHOpk36F80rbgxlx4+xty/U71e3wZZxVYHfZXmf0IRToBn1Crb8WvLM9OYj/Ur815g==}
176 | engines: {node: '>= 10'}
177 | cpu: [x64]
178 | os: [linux]
179 | requiresBuild: true
180 | dev: false
181 | optional: true
182 |
183 | /@next/swc-linux-x64-musl@13.5.3:
184 | resolution: {integrity: sha512-DPw8nFuM1uEpbX47tM3wiXIR0Qa+atSzs9Q3peY1urkhofx44o7E1svnq+a5Q0r8lAcssLrwiM+OyJJgV/oj7g==}
185 | engines: {node: '>= 10'}
186 | cpu: [x64]
187 | os: [linux]
188 | requiresBuild: true
189 | dev: false
190 | optional: true
191 |
192 | /@next/swc-win32-arm64-msvc@13.5.3:
193 | resolution: {integrity: sha512-zBPSP8cHL51Gub/YV8UUePW7AVGukp2D8JU93IHbVDu2qmhFAn9LWXiOOLKplZQKxnIPUkJTQAJDCWBWU4UWUA==}
194 | engines: {node: '>= 10'}
195 | cpu: [arm64]
196 | os: [win32]
197 | requiresBuild: true
198 | dev: false
199 | optional: true
200 |
201 | /@next/swc-win32-ia32-msvc@13.5.3:
202 | resolution: {integrity: sha512-ONcL/lYyGUj4W37D4I2I450SZtSenmFAvapkJQNIJhrPMhzDU/AdfLkW98NvH1D2+7FXwe7yclf3+B7v28uzBQ==}
203 | engines: {node: '>= 10'}
204 | cpu: [ia32]
205 | os: [win32]
206 | requiresBuild: true
207 | dev: false
208 | optional: true
209 |
210 | /@next/swc-win32-x64-msvc@13.5.3:
211 | resolution: {integrity: sha512-2Vz2tYWaLqJvLcWbbTlJ5k9AN6JD7a5CN2pAeIzpbecK8ZF/yobA39cXtv6e+Z8c5UJuVOmaTldEAIxvsIux/Q==}
212 | engines: {node: '>= 10'}
213 | cpu: [x64]
214 | os: [win32]
215 | requiresBuild: true
216 | dev: false
217 | optional: true
218 |
219 | /@nodelib/fs.scandir@2.1.5:
220 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
221 | engines: {node: '>= 8'}
222 | dependencies:
223 | '@nodelib/fs.stat': 2.0.5
224 | run-parallel: 1.2.0
225 |
226 | /@nodelib/fs.stat@2.0.5:
227 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
228 | engines: {node: '>= 8'}
229 |
230 | /@nodelib/fs.walk@1.2.8:
231 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
232 | engines: {node: '>= 8'}
233 | dependencies:
234 | '@nodelib/fs.scandir': 2.1.5
235 | fastq: 1.15.0
236 |
237 | /@radix-ui/primitive@1.0.1:
238 | resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==}
239 | dependencies:
240 | '@babel/runtime': 7.23.1
241 | dev: false
242 |
243 | /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
244 | resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
245 | peerDependencies:
246 | '@types/react': '*'
247 | '@types/react-dom': '*'
248 | react: ^16.8 || ^17.0 || ^18.0
249 | react-dom: ^16.8 || ^17.0 || ^18.0
250 | peerDependenciesMeta:
251 | '@types/react':
252 | optional: true
253 | '@types/react-dom':
254 | optional: true
255 | dependencies:
256 | '@babel/runtime': 7.23.1
257 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
258 | '@types/react': 18.2.23
259 | '@types/react-dom': 18.2.8
260 | react: 18.2.0
261 | react-dom: 18.2.0(react@18.2.0)
262 | dev: false
263 |
264 | /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
265 | resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
266 | peerDependencies:
267 | '@types/react': '*'
268 | '@types/react-dom': '*'
269 | react: ^16.8 || ^17.0 || ^18.0
270 | react-dom: ^16.8 || ^17.0 || ^18.0
271 | peerDependenciesMeta:
272 | '@types/react':
273 | optional: true
274 | '@types/react-dom':
275 | optional: true
276 | dependencies:
277 | '@babel/runtime': 7.23.1
278 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
279 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.23)(react@18.2.0)
280 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
281 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.23)(react@18.2.0)
282 | '@types/react': 18.2.23
283 | '@types/react-dom': 18.2.8
284 | react: 18.2.0
285 | react-dom: 18.2.0(react@18.2.0)
286 | dev: false
287 |
288 | /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.23)(react@18.2.0):
289 | resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
290 | peerDependencies:
291 | '@types/react': '*'
292 | react: ^16.8 || ^17.0 || ^18.0
293 | peerDependenciesMeta:
294 | '@types/react':
295 | optional: true
296 | dependencies:
297 | '@babel/runtime': 7.23.1
298 | '@types/react': 18.2.23
299 | react: 18.2.0
300 | dev: false
301 |
302 | /@radix-ui/react-context@1.0.1(@types/react@18.2.23)(react@18.2.0):
303 | resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
304 | peerDependencies:
305 | '@types/react': '*'
306 | react: ^16.8 || ^17.0 || ^18.0
307 | peerDependenciesMeta:
308 | '@types/react':
309 | optional: true
310 | dependencies:
311 | '@babel/runtime': 7.23.1
312 | '@types/react': 18.2.23
313 | react: 18.2.0
314 | dev: false
315 |
316 | /@radix-ui/react-direction@1.0.1(@types/react@18.2.23)(react@18.2.0):
317 | resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
318 | peerDependencies:
319 | '@types/react': '*'
320 | react: ^16.8 || ^17.0 || ^18.0
321 | peerDependenciesMeta:
322 | '@types/react':
323 | optional: true
324 | dependencies:
325 | '@babel/runtime': 7.23.1
326 | '@types/react': 18.2.23
327 | react: 18.2.0
328 | dev: false
329 |
330 | /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
331 | resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
332 | peerDependencies:
333 | '@types/react': '*'
334 | '@types/react-dom': '*'
335 | react: ^16.8 || ^17.0 || ^18.0
336 | react-dom: ^16.8 || ^17.0 || ^18.0
337 | peerDependenciesMeta:
338 | '@types/react':
339 | optional: true
340 | '@types/react-dom':
341 | optional: true
342 | dependencies:
343 | '@babel/runtime': 7.23.1
344 | '@radix-ui/primitive': 1.0.1
345 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
346 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
347 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
348 | '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.23)(react@18.2.0)
349 | '@types/react': 18.2.23
350 | '@types/react-dom': 18.2.8
351 | react: 18.2.0
352 | react-dom: 18.2.0(react@18.2.0)
353 | dev: false
354 |
355 | /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
356 | resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==}
357 | peerDependencies:
358 | '@types/react': '*'
359 | '@types/react-dom': '*'
360 | react: ^16.8 || ^17.0 || ^18.0
361 | react-dom: ^16.8 || ^17.0 || ^18.0
362 | peerDependenciesMeta:
363 | '@types/react':
364 | optional: true
365 | '@types/react-dom':
366 | optional: true
367 | dependencies:
368 | '@babel/runtime': 7.23.1
369 | '@radix-ui/primitive': 1.0.1
370 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
371 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.23)(react@18.2.0)
372 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.23)(react@18.2.0)
373 | '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
374 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
375 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.23)(react@18.2.0)
376 | '@types/react': 18.2.23
377 | '@types/react-dom': 18.2.8
378 | react: 18.2.0
379 | react-dom: 18.2.0(react@18.2.0)
380 | dev: false
381 |
382 | /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.23)(react@18.2.0):
383 | resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
384 | peerDependencies:
385 | '@types/react': '*'
386 | react: ^16.8 || ^17.0 || ^18.0
387 | peerDependenciesMeta:
388 | '@types/react':
389 | optional: true
390 | dependencies:
391 | '@babel/runtime': 7.23.1
392 | '@types/react': 18.2.23
393 | react: 18.2.0
394 | dev: false
395 |
396 | /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
397 | resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
398 | peerDependencies:
399 | '@types/react': '*'
400 | '@types/react-dom': '*'
401 | react: ^16.8 || ^17.0 || ^18.0
402 | react-dom: ^16.8 || ^17.0 || ^18.0
403 | peerDependenciesMeta:
404 | '@types/react':
405 | optional: true
406 | '@types/react-dom':
407 | optional: true
408 | dependencies:
409 | '@babel/runtime': 7.23.1
410 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
411 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
412 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
413 | '@types/react': 18.2.23
414 | '@types/react-dom': 18.2.8
415 | react: 18.2.0
416 | react-dom: 18.2.0(react@18.2.0)
417 | dev: false
418 |
419 | /@radix-ui/react-id@1.0.1(@types/react@18.2.23)(react@18.2.0):
420 | resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
421 | peerDependencies:
422 | '@types/react': '*'
423 | react: ^16.8 || ^17.0 || ^18.0
424 | peerDependenciesMeta:
425 | '@types/react':
426 | optional: true
427 | dependencies:
428 | '@babel/runtime': 7.23.1
429 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.23)(react@18.2.0)
430 | '@types/react': 18.2.23
431 | react: 18.2.0
432 | dev: false
433 |
434 | /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
435 | resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==}
436 | peerDependencies:
437 | '@types/react': '*'
438 | '@types/react-dom': '*'
439 | react: ^16.8 || ^17.0 || ^18.0
440 | react-dom: ^16.8 || ^17.0 || ^18.0
441 | peerDependenciesMeta:
442 | '@types/react':
443 | optional: true
444 | '@types/react-dom':
445 | optional: true
446 | dependencies:
447 | '@babel/runtime': 7.23.1
448 | '@radix-ui/primitive': 1.0.1
449 | '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
450 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
451 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.23)(react@18.2.0)
452 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.23)(react@18.2.0)
453 | '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
454 | '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.23)(react@18.2.0)
455 | '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
456 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.23)(react@18.2.0)
457 | '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
458 | '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
459 | '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
460 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
461 | '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
462 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.23)(react@18.2.0)
463 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
464 | '@types/react': 18.2.23
465 | '@types/react-dom': 18.2.8
466 | aria-hidden: 1.2.3
467 | react: 18.2.0
468 | react-dom: 18.2.0(react@18.2.0)
469 | react-remove-scroll: 2.5.5(@types/react@18.2.23)(react@18.2.0)
470 | dev: false
471 |
472 | /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
473 | resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==}
474 | peerDependencies:
475 | '@types/react': '*'
476 | '@types/react-dom': '*'
477 | react: ^16.8 || ^17.0 || ^18.0
478 | react-dom: ^16.8 || ^17.0 || ^18.0
479 | peerDependenciesMeta:
480 | '@types/react':
481 | optional: true
482 | '@types/react-dom':
483 | optional: true
484 | dependencies:
485 | '@babel/runtime': 7.23.1
486 | '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0)
487 | '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
488 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
489 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.23)(react@18.2.0)
490 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
491 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
492 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.23)(react@18.2.0)
493 | '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.23)(react@18.2.0)
494 | '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.23)(react@18.2.0)
495 | '@radix-ui/rect': 1.0.1
496 | '@types/react': 18.2.23
497 | '@types/react-dom': 18.2.8
498 | react: 18.2.0
499 | react-dom: 18.2.0(react@18.2.0)
500 | dev: false
501 |
502 | /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
503 | resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
504 | peerDependencies:
505 | '@types/react': '*'
506 | '@types/react-dom': '*'
507 | react: ^16.8 || ^17.0 || ^18.0
508 | react-dom: ^16.8 || ^17.0 || ^18.0
509 | peerDependenciesMeta:
510 | '@types/react':
511 | optional: true
512 | '@types/react-dom':
513 | optional: true
514 | dependencies:
515 | '@babel/runtime': 7.23.1
516 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
517 | '@types/react': 18.2.23
518 | '@types/react-dom': 18.2.8
519 | react: 18.2.0
520 | react-dom: 18.2.0(react@18.2.0)
521 | dev: false
522 |
523 | /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
524 | resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
525 | peerDependencies:
526 | '@types/react': '*'
527 | '@types/react-dom': '*'
528 | react: ^16.8 || ^17.0 || ^18.0
529 | react-dom: ^16.8 || ^17.0 || ^18.0
530 | peerDependenciesMeta:
531 | '@types/react':
532 | optional: true
533 | '@types/react-dom':
534 | optional: true
535 | dependencies:
536 | '@babel/runtime': 7.23.1
537 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
538 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.23)(react@18.2.0)
539 | '@types/react': 18.2.23
540 | '@types/react-dom': 18.2.8
541 | react: 18.2.0
542 | react-dom: 18.2.0(react@18.2.0)
543 | dev: false
544 |
545 | /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
546 | resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
547 | peerDependencies:
548 | '@types/react': '*'
549 | '@types/react-dom': '*'
550 | react: ^16.8 || ^17.0 || ^18.0
551 | react-dom: ^16.8 || ^17.0 || ^18.0
552 | peerDependenciesMeta:
553 | '@types/react':
554 | optional: true
555 | '@types/react-dom':
556 | optional: true
557 | dependencies:
558 | '@babel/runtime': 7.23.1
559 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.23)(react@18.2.0)
560 | '@types/react': 18.2.23
561 | '@types/react-dom': 18.2.8
562 | react: 18.2.0
563 | react-dom: 18.2.0(react@18.2.0)
564 | dev: false
565 |
566 | /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0):
567 | resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
568 | peerDependencies:
569 | '@types/react': '*'
570 | '@types/react-dom': '*'
571 | react: ^16.8 || ^17.0 || ^18.0
572 | react-dom: ^16.8 || ^17.0 || ^18.0
573 | peerDependenciesMeta:
574 | '@types/react':
575 | optional: true
576 | '@types/react-dom':
577 | optional: true
578 | dependencies:
579 | '@babel/runtime': 7.23.1
580 | '@radix-ui/primitive': 1.0.1
581 | '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
582 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
583 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.23)(react@18.2.0)
584 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.23)(react@18.2.0)
585 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.23)(react@18.2.0)
586 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.8)(@types/react@18.2.23)(react-dom@18.2.0)(react@18.2.0)
587 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
588 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.23)(react@18.2.0)
589 | '@types/react': 18.2.23
590 | '@types/react-dom': 18.2.8
591 | react: 18.2.0
592 | react-dom: 18.2.0(react@18.2.0)
593 | dev: false
594 |
595 | /@radix-ui/react-slot@1.0.2(@types/react@18.2.23)(react@18.2.0):
596 | resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
597 | peerDependencies:
598 | '@types/react': '*'
599 | react: ^16.8 || ^17.0 || ^18.0
600 | peerDependenciesMeta:
601 | '@types/react':
602 | optional: true
603 | dependencies:
604 | '@babel/runtime': 7.23.1
605 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.23)(react@18.2.0)
606 | '@types/react': 18.2.23
607 | react: 18.2.0
608 | dev: false
609 |
610 | /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.23)(react@18.2.0):
611 | resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
612 | peerDependencies:
613 | '@types/react': '*'
614 | react: ^16.8 || ^17.0 || ^18.0
615 | peerDependenciesMeta:
616 | '@types/react':
617 | optional: true
618 | dependencies:
619 | '@babel/runtime': 7.23.1
620 | '@types/react': 18.2.23
621 | react: 18.2.0
622 | dev: false
623 |
624 | /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.23)(react@18.2.0):
625 | resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
626 | peerDependencies:
627 | '@types/react': '*'
628 | react: ^16.8 || ^17.0 || ^18.0
629 | peerDependenciesMeta:
630 | '@types/react':
631 | optional: true
632 | dependencies:
633 | '@babel/runtime': 7.23.1
634 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
635 | '@types/react': 18.2.23
636 | react: 18.2.0
637 | dev: false
638 |
639 | /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.23)(react@18.2.0):
640 | resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
641 | peerDependencies:
642 | '@types/react': '*'
643 | react: ^16.8 || ^17.0 || ^18.0
644 | peerDependenciesMeta:
645 | '@types/react':
646 | optional: true
647 | dependencies:
648 | '@babel/runtime': 7.23.1
649 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.23)(react@18.2.0)
650 | '@types/react': 18.2.23
651 | react: 18.2.0
652 | dev: false
653 |
654 | /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.23)(react@18.2.0):
655 | resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
656 | peerDependencies:
657 | '@types/react': '*'
658 | react: ^16.8 || ^17.0 || ^18.0
659 | peerDependenciesMeta:
660 | '@types/react':
661 | optional: true
662 | dependencies:
663 | '@babel/runtime': 7.23.1
664 | '@types/react': 18.2.23
665 | react: 18.2.0
666 | dev: false
667 |
668 | /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.23)(react@18.2.0):
669 | resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
670 | peerDependencies:
671 | '@types/react': '*'
672 | react: ^16.8 || ^17.0 || ^18.0
673 | peerDependenciesMeta:
674 | '@types/react':
675 | optional: true
676 | dependencies:
677 | '@babel/runtime': 7.23.1
678 | '@radix-ui/rect': 1.0.1
679 | '@types/react': 18.2.23
680 | react: 18.2.0
681 | dev: false
682 |
683 | /@radix-ui/react-use-size@1.0.1(@types/react@18.2.23)(react@18.2.0):
684 | resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
685 | peerDependencies:
686 | '@types/react': '*'
687 | react: ^16.8 || ^17.0 || ^18.0
688 | peerDependenciesMeta:
689 | '@types/react':
690 | optional: true
691 | dependencies:
692 | '@babel/runtime': 7.23.1
693 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.23)(react@18.2.0)
694 | '@types/react': 18.2.23
695 | react: 18.2.0
696 | dev: false
697 |
698 | /@radix-ui/rect@1.0.1:
699 | resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==}
700 | dependencies:
701 | '@babel/runtime': 7.23.1
702 | dev: false
703 |
704 | /@swc/helpers@0.5.2:
705 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
706 | dependencies:
707 | tslib: 2.6.2
708 | dev: false
709 |
710 | /@types/node@20.7.0:
711 | resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==}
712 | dev: true
713 |
714 | /@types/prop-types@15.7.7:
715 | resolution: {integrity: sha512-FbtmBWCcSa2J4zL781Zf1p5YUBXQomPEcep9QZCfRfQgTxz3pJWiDFLebohZ9fFntX5ibzOkSsrJ0TEew8cAog==}
716 |
717 | /@types/react-dom@18.2.8:
718 | resolution: {integrity: sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw==}
719 | dependencies:
720 | '@types/react': 18.2.23
721 |
722 | /@types/react@18.2.23:
723 | resolution: {integrity: sha512-qHLW6n1q2+7KyBEYnrZpcsAmU/iiCh9WGCKgXvMxx89+TYdJWRjZohVIo9XTcoLhfX3+/hP0Pbulu3bCZQ9PSA==}
724 | dependencies:
725 | '@types/prop-types': 15.7.7
726 | '@types/scheduler': 0.16.4
727 | csstype: 3.1.2
728 |
729 | /@types/scheduler@0.16.4:
730 | resolution: {integrity: sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==}
731 |
732 | /any-promise@1.3.0:
733 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
734 |
735 | /anymatch@3.1.3:
736 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
737 | engines: {node: '>= 8'}
738 | dependencies:
739 | normalize-path: 3.0.0
740 | picomatch: 2.3.1
741 |
742 | /arg@5.0.2:
743 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
744 |
745 | /aria-hidden@1.2.3:
746 | resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==}
747 | engines: {node: '>=10'}
748 | dependencies:
749 | tslib: 2.6.2
750 | dev: false
751 |
752 | /autoprefixer@10.4.16(postcss@8.4.30):
753 | resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
754 | engines: {node: ^10 || ^12 || >=14}
755 | hasBin: true
756 | peerDependencies:
757 | postcss: ^8.1.0
758 | dependencies:
759 | browserslist: 4.22.0
760 | caniuse-lite: 1.0.30001540
761 | fraction.js: 4.3.6
762 | normalize-range: 0.1.2
763 | picocolors: 1.0.0
764 | postcss: 8.4.30
765 | postcss-value-parser: 4.2.0
766 | dev: true
767 |
768 | /balanced-match@1.0.2:
769 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
770 |
771 | /binary-extensions@2.2.0:
772 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
773 | engines: {node: '>=8'}
774 |
775 | /brace-expansion@1.1.11:
776 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
777 | dependencies:
778 | balanced-match: 1.0.2
779 | concat-map: 0.0.1
780 |
781 | /braces@3.0.2:
782 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
783 | engines: {node: '>=8'}
784 | dependencies:
785 | fill-range: 7.0.1
786 |
787 | /browserslist@4.22.0:
788 | resolution: {integrity: sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA==}
789 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
790 | hasBin: true
791 | dependencies:
792 | caniuse-lite: 1.0.30001540
793 | electron-to-chromium: 1.4.531
794 | node-releases: 2.0.13
795 | update-browserslist-db: 1.0.13(browserslist@4.22.0)
796 | dev: true
797 |
798 | /busboy@1.6.0:
799 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
800 | engines: {node: '>=10.16.0'}
801 | dependencies:
802 | streamsearch: 1.1.0
803 | dev: false
804 |
805 | /camelcase-css@2.0.1:
806 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
807 | engines: {node: '>= 6'}
808 |
809 | /caniuse-lite@1.0.30001540:
810 | resolution: {integrity: sha512-9JL38jscuTJBTcuETxm8QLsFr/F6v0CYYTEU6r5+qSM98P2Q0Hmu0eG1dTG5GBUmywU3UlcVOUSIJYY47rdFSw==}
811 |
812 | /chokidar@3.5.3:
813 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
814 | engines: {node: '>= 8.10.0'}
815 | dependencies:
816 | anymatch: 3.1.3
817 | braces: 3.0.2
818 | glob-parent: 5.1.2
819 | is-binary-path: 2.1.0
820 | is-glob: 4.0.3
821 | normalize-path: 3.0.0
822 | readdirp: 3.6.0
823 | optionalDependencies:
824 | fsevents: 2.3.3
825 |
826 | /class-variance-authority@0.7.0:
827 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
828 | dependencies:
829 | clsx: 2.0.0
830 | dev: false
831 |
832 | /client-only@0.0.1:
833 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
834 | dev: false
835 |
836 | /clsx@2.0.0:
837 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
838 | engines: {node: '>=6'}
839 | dev: false
840 |
841 | /commander@4.1.1:
842 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
843 | engines: {node: '>= 6'}
844 |
845 | /concat-map@0.0.1:
846 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
847 |
848 | /cssesc@3.0.0:
849 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
850 | engines: {node: '>=4'}
851 | hasBin: true
852 |
853 | /csstype@3.1.2:
854 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
855 |
856 | /detect-node-es@1.1.0:
857 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
858 | dev: false
859 |
860 | /didyoumean@1.2.2:
861 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
862 |
863 | /dlv@1.1.3:
864 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
865 |
866 | /electron-to-chromium@1.4.531:
867 | resolution: {integrity: sha512-H6gi5E41Rn3/mhKlPaT1aIMg/71hTAqn0gYEllSuw9igNWtvQwu185jiCZoZD29n7Zukgh7GVZ3zGf0XvkhqjQ==}
868 | dev: true
869 |
870 | /escalade@3.1.1:
871 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
872 | engines: {node: '>=6'}
873 | dev: true
874 |
875 | /fast-glob@3.3.1:
876 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
877 | engines: {node: '>=8.6.0'}
878 | dependencies:
879 | '@nodelib/fs.stat': 2.0.5
880 | '@nodelib/fs.walk': 1.2.8
881 | glob-parent: 5.1.2
882 | merge2: 1.4.1
883 | micromatch: 4.0.5
884 |
885 | /fastq@1.15.0:
886 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
887 | dependencies:
888 | reusify: 1.0.4
889 |
890 | /fill-range@7.0.1:
891 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
892 | engines: {node: '>=8'}
893 | dependencies:
894 | to-regex-range: 5.0.1
895 |
896 | /fraction.js@4.3.6:
897 | resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==}
898 | dev: true
899 |
900 | /fs.realpath@1.0.0:
901 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
902 |
903 | /fsevents@2.3.3:
904 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
905 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
906 | os: [darwin]
907 | requiresBuild: true
908 | optional: true
909 |
910 | /function-bind@1.1.1:
911 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
912 |
913 | /get-nonce@1.0.1:
914 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
915 | engines: {node: '>=6'}
916 | dev: false
917 |
918 | /glob-parent@5.1.2:
919 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
920 | engines: {node: '>= 6'}
921 | dependencies:
922 | is-glob: 4.0.3
923 |
924 | /glob-parent@6.0.2:
925 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
926 | engines: {node: '>=10.13.0'}
927 | dependencies:
928 | is-glob: 4.0.3
929 |
930 | /glob-to-regexp@0.4.1:
931 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
932 | dev: false
933 |
934 | /glob@7.1.6:
935 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
936 | dependencies:
937 | fs.realpath: 1.0.0
938 | inflight: 1.0.6
939 | inherits: 2.0.4
940 | minimatch: 3.1.2
941 | once: 1.4.0
942 | path-is-absolute: 1.0.1
943 |
944 | /goober@2.1.13(csstype@3.1.2):
945 | resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==}
946 | peerDependencies:
947 | csstype: ^3.0.10
948 | dependencies:
949 | csstype: 3.1.2
950 | dev: false
951 |
952 | /graceful-fs@4.2.11:
953 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
954 | dev: false
955 |
956 | /has@1.0.3:
957 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
958 | engines: {node: '>= 0.4.0'}
959 | dependencies:
960 | function-bind: 1.1.1
961 |
962 | /inflight@1.0.6:
963 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
964 | dependencies:
965 | once: 1.4.0
966 | wrappy: 1.0.2
967 |
968 | /inherits@2.0.4:
969 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
970 |
971 | /invariant@2.2.4:
972 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
973 | dependencies:
974 | loose-envify: 1.4.0
975 | dev: false
976 |
977 | /is-binary-path@2.1.0:
978 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
979 | engines: {node: '>=8'}
980 | dependencies:
981 | binary-extensions: 2.2.0
982 |
983 | /is-core-module@2.13.0:
984 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
985 | dependencies:
986 | has: 1.0.3
987 |
988 | /is-extglob@2.1.1:
989 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
990 | engines: {node: '>=0.10.0'}
991 |
992 | /is-glob@4.0.3:
993 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
994 | engines: {node: '>=0.10.0'}
995 | dependencies:
996 | is-extglob: 2.1.1
997 |
998 | /is-number@7.0.0:
999 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1000 | engines: {node: '>=0.12.0'}
1001 |
1002 | /jiti@1.20.0:
1003 | resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==}
1004 | hasBin: true
1005 |
1006 | /js-tokens@4.0.0:
1007 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1008 | dev: false
1009 |
1010 | /lilconfig@2.1.0:
1011 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1012 | engines: {node: '>=10'}
1013 |
1014 | /lines-and-columns@1.2.4:
1015 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1016 |
1017 | /loose-envify@1.4.0:
1018 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1019 | hasBin: true
1020 | dependencies:
1021 | js-tokens: 4.0.0
1022 | dev: false
1023 |
1024 | /lucide-react@0.279.0(react@18.2.0):
1025 | resolution: {integrity: sha512-LJ8g66+Bxc3t3x9vKTeK3wn3xucrOQGfJ9ou9GsBwCt2offsrT2BB90XrTrIzE1noYYDe2O8jZaRHi6sAHXNxw==}
1026 | peerDependencies:
1027 | react: ^16.5.1 || ^17.0.0 || ^18.0.0
1028 | dependencies:
1029 | react: 18.2.0
1030 | dev: false
1031 |
1032 | /merge2@1.4.1:
1033 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1034 | engines: {node: '>= 8'}
1035 |
1036 | /micromatch@4.0.5:
1037 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1038 | engines: {node: '>=8.6'}
1039 | dependencies:
1040 | braces: 3.0.2
1041 | picomatch: 2.3.1
1042 |
1043 | /minimatch@3.1.2:
1044 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1045 | dependencies:
1046 | brace-expansion: 1.1.11
1047 |
1048 | /mz@2.7.0:
1049 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1050 | dependencies:
1051 | any-promise: 1.3.0
1052 | object-assign: 4.1.1
1053 | thenify-all: 1.6.0
1054 |
1055 | /nanoid@3.3.6:
1056 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
1057 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1058 | hasBin: true
1059 |
1060 | /next-themes@0.2.1(next@13.5.3)(react-dom@18.2.0)(react@18.2.0):
1061 | resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==}
1062 | peerDependencies:
1063 | next: '*'
1064 | react: '*'
1065 | react-dom: '*'
1066 | dependencies:
1067 | next: 13.5.3(react-dom@18.2.0)(react@18.2.0)
1068 | react: 18.2.0
1069 | react-dom: 18.2.0(react@18.2.0)
1070 | dev: false
1071 |
1072 | /next@13.5.3(react-dom@18.2.0)(react@18.2.0):
1073 | resolution: {integrity: sha512-4Nt4HRLYDW/yRpJ/QR2t1v63UOMS55A38dnWv3UDOWGezuY0ZyFO1ABNbD7mulVzs9qVhgy2+ppjdsANpKP1mg==}
1074 | engines: {node: '>=16.14.0'}
1075 | hasBin: true
1076 | peerDependencies:
1077 | '@opentelemetry/api': ^1.1.0
1078 | react: ^18.2.0
1079 | react-dom: ^18.2.0
1080 | sass: ^1.3.0
1081 | peerDependenciesMeta:
1082 | '@opentelemetry/api':
1083 | optional: true
1084 | sass:
1085 | optional: true
1086 | dependencies:
1087 | '@next/env': 13.5.3
1088 | '@swc/helpers': 0.5.2
1089 | busboy: 1.6.0
1090 | caniuse-lite: 1.0.30001540
1091 | postcss: 8.4.14
1092 | react: 18.2.0
1093 | react-dom: 18.2.0(react@18.2.0)
1094 | styled-jsx: 5.1.1(react@18.2.0)
1095 | watchpack: 2.4.0
1096 | zod: 3.21.4
1097 | optionalDependencies:
1098 | '@next/swc-darwin-arm64': 13.5.3
1099 | '@next/swc-darwin-x64': 13.5.3
1100 | '@next/swc-linux-arm64-gnu': 13.5.3
1101 | '@next/swc-linux-arm64-musl': 13.5.3
1102 | '@next/swc-linux-x64-gnu': 13.5.3
1103 | '@next/swc-linux-x64-musl': 13.5.3
1104 | '@next/swc-win32-arm64-msvc': 13.5.3
1105 | '@next/swc-win32-ia32-msvc': 13.5.3
1106 | '@next/swc-win32-x64-msvc': 13.5.3
1107 | transitivePeerDependencies:
1108 | - '@babel/core'
1109 | - babel-plugin-macros
1110 | dev: false
1111 |
1112 | /node-releases@2.0.13:
1113 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
1114 | dev: true
1115 |
1116 | /normalize-path@3.0.0:
1117 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1118 | engines: {node: '>=0.10.0'}
1119 |
1120 | /normalize-range@0.1.2:
1121 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1122 | engines: {node: '>=0.10.0'}
1123 | dev: true
1124 |
1125 | /object-assign@4.1.1:
1126 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1127 | engines: {node: '>=0.10.0'}
1128 |
1129 | /object-hash@3.0.0:
1130 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1131 | engines: {node: '>= 6'}
1132 |
1133 | /once@1.4.0:
1134 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1135 | dependencies:
1136 | wrappy: 1.0.2
1137 |
1138 | /path-is-absolute@1.0.1:
1139 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1140 | engines: {node: '>=0.10.0'}
1141 |
1142 | /path-parse@1.0.7:
1143 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1144 |
1145 | /picocolors@1.0.0:
1146 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1147 |
1148 | /picomatch@2.3.1:
1149 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1150 | engines: {node: '>=8.6'}
1151 |
1152 | /pify@2.3.0:
1153 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1154 | engines: {node: '>=0.10.0'}
1155 |
1156 | /pirates@4.0.6:
1157 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1158 | engines: {node: '>= 6'}
1159 |
1160 | /postcss-import@15.1.0(postcss@8.4.30):
1161 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1162 | engines: {node: '>=14.0.0'}
1163 | peerDependencies:
1164 | postcss: ^8.0.0
1165 | dependencies:
1166 | postcss: 8.4.30
1167 | postcss-value-parser: 4.2.0
1168 | read-cache: 1.0.0
1169 | resolve: 1.22.6
1170 |
1171 | /postcss-js@4.0.1(postcss@8.4.30):
1172 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1173 | engines: {node: ^12 || ^14 || >= 16}
1174 | peerDependencies:
1175 | postcss: ^8.4.21
1176 | dependencies:
1177 | camelcase-css: 2.0.1
1178 | postcss: 8.4.30
1179 |
1180 | /postcss-load-config@4.0.1(postcss@8.4.30):
1181 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
1182 | engines: {node: '>= 14'}
1183 | peerDependencies:
1184 | postcss: '>=8.0.9'
1185 | ts-node: '>=9.0.0'
1186 | peerDependenciesMeta:
1187 | postcss:
1188 | optional: true
1189 | ts-node:
1190 | optional: true
1191 | dependencies:
1192 | lilconfig: 2.1.0
1193 | postcss: 8.4.30
1194 | yaml: 2.3.2
1195 |
1196 | /postcss-nested@6.0.1(postcss@8.4.30):
1197 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
1198 | engines: {node: '>=12.0'}
1199 | peerDependencies:
1200 | postcss: ^8.2.14
1201 | dependencies:
1202 | postcss: 8.4.30
1203 | postcss-selector-parser: 6.0.13
1204 |
1205 | /postcss-selector-parser@6.0.13:
1206 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
1207 | engines: {node: '>=4'}
1208 | dependencies:
1209 | cssesc: 3.0.0
1210 | util-deprecate: 1.0.2
1211 |
1212 | /postcss-value-parser@4.2.0:
1213 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1214 |
1215 | /postcss@8.4.14:
1216 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
1217 | engines: {node: ^10 || ^12 || >=14}
1218 | dependencies:
1219 | nanoid: 3.3.6
1220 | picocolors: 1.0.0
1221 | source-map-js: 1.0.2
1222 | dev: false
1223 |
1224 | /postcss@8.4.30:
1225 | resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==}
1226 | engines: {node: ^10 || ^12 || >=14}
1227 | dependencies:
1228 | nanoid: 3.3.6
1229 | picocolors: 1.0.0
1230 | source-map-js: 1.0.2
1231 |
1232 | /queue-microtask@1.2.3:
1233 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1234 |
1235 | /react-dom@18.2.0(react@18.2.0):
1236 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1237 | peerDependencies:
1238 | react: ^18.2.0
1239 | dependencies:
1240 | loose-envify: 1.4.0
1241 | react: 18.2.0
1242 | scheduler: 0.23.0
1243 | dev: false
1244 |
1245 | /react-hot-toast@2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0):
1246 | resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==}
1247 | engines: {node: '>=10'}
1248 | peerDependencies:
1249 | react: '>=16'
1250 | react-dom: '>=16'
1251 | dependencies:
1252 | goober: 2.1.13(csstype@3.1.2)
1253 | react: 18.2.0
1254 | react-dom: 18.2.0(react@18.2.0)
1255 | transitivePeerDependencies:
1256 | - csstype
1257 | dev: false
1258 |
1259 | /react-remove-scroll-bar@2.3.4(@types/react@18.2.23)(react@18.2.0):
1260 | resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
1261 | engines: {node: '>=10'}
1262 | peerDependencies:
1263 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1264 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1265 | peerDependenciesMeta:
1266 | '@types/react':
1267 | optional: true
1268 | dependencies:
1269 | '@types/react': 18.2.23
1270 | react: 18.2.0
1271 | react-style-singleton: 2.2.1(@types/react@18.2.23)(react@18.2.0)
1272 | tslib: 2.6.2
1273 | dev: false
1274 |
1275 | /react-remove-scroll@2.5.5(@types/react@18.2.23)(react@18.2.0):
1276 | resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
1277 | engines: {node: '>=10'}
1278 | peerDependencies:
1279 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1280 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1281 | peerDependenciesMeta:
1282 | '@types/react':
1283 | optional: true
1284 | dependencies:
1285 | '@types/react': 18.2.23
1286 | react: 18.2.0
1287 | react-remove-scroll-bar: 2.3.4(@types/react@18.2.23)(react@18.2.0)
1288 | react-style-singleton: 2.2.1(@types/react@18.2.23)(react@18.2.0)
1289 | tslib: 2.6.2
1290 | use-callback-ref: 1.3.0(@types/react@18.2.23)(react@18.2.0)
1291 | use-sidecar: 1.1.2(@types/react@18.2.23)(react@18.2.0)
1292 | dev: false
1293 |
1294 | /react-style-singleton@2.2.1(@types/react@18.2.23)(react@18.2.0):
1295 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
1296 | engines: {node: '>=10'}
1297 | peerDependencies:
1298 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1299 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1300 | peerDependenciesMeta:
1301 | '@types/react':
1302 | optional: true
1303 | dependencies:
1304 | '@types/react': 18.2.23
1305 | get-nonce: 1.0.1
1306 | invariant: 2.2.4
1307 | react: 18.2.0
1308 | tslib: 2.6.2
1309 | dev: false
1310 |
1311 | /react@18.2.0:
1312 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1313 | engines: {node: '>=0.10.0'}
1314 | dependencies:
1315 | loose-envify: 1.4.0
1316 | dev: false
1317 |
1318 | /read-cache@1.0.0:
1319 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1320 | dependencies:
1321 | pify: 2.3.0
1322 |
1323 | /readdirp@3.6.0:
1324 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1325 | engines: {node: '>=8.10.0'}
1326 | dependencies:
1327 | picomatch: 2.3.1
1328 |
1329 | /regenerator-runtime@0.14.0:
1330 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
1331 | dev: false
1332 |
1333 | /resolve@1.22.6:
1334 | resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
1335 | hasBin: true
1336 | dependencies:
1337 | is-core-module: 2.13.0
1338 | path-parse: 1.0.7
1339 | supports-preserve-symlinks-flag: 1.0.0
1340 |
1341 | /reusify@1.0.4:
1342 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1343 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1344 |
1345 | /run-parallel@1.2.0:
1346 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1347 | dependencies:
1348 | queue-microtask: 1.2.3
1349 |
1350 | /scheduler@0.23.0:
1351 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1352 | dependencies:
1353 | loose-envify: 1.4.0
1354 | dev: false
1355 |
1356 | /source-map-js@1.0.2:
1357 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1358 | engines: {node: '>=0.10.0'}
1359 |
1360 | /streamsearch@1.1.0:
1361 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1362 | engines: {node: '>=10.0.0'}
1363 | dev: false
1364 |
1365 | /styled-jsx@5.1.1(react@18.2.0):
1366 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
1367 | engines: {node: '>= 12.0.0'}
1368 | peerDependencies:
1369 | '@babel/core': '*'
1370 | babel-plugin-macros: '*'
1371 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
1372 | peerDependenciesMeta:
1373 | '@babel/core':
1374 | optional: true
1375 | babel-plugin-macros:
1376 | optional: true
1377 | dependencies:
1378 | client-only: 0.0.1
1379 | react: 18.2.0
1380 | dev: false
1381 |
1382 | /sucrase@3.34.0:
1383 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
1384 | engines: {node: '>=8'}
1385 | hasBin: true
1386 | dependencies:
1387 | '@jridgewell/gen-mapping': 0.3.3
1388 | commander: 4.1.1
1389 | glob: 7.1.6
1390 | lines-and-columns: 1.2.4
1391 | mz: 2.7.0
1392 | pirates: 4.0.6
1393 | ts-interface-checker: 0.1.13
1394 |
1395 | /supports-preserve-symlinks-flag@1.0.0:
1396 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1397 | engines: {node: '>= 0.4'}
1398 |
1399 | /tailwind-merge@1.14.0:
1400 | resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==}
1401 | dev: false
1402 |
1403 | /tailwindcss-animate@1.0.7(tailwindcss@3.3.3):
1404 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
1405 | peerDependencies:
1406 | tailwindcss: '>=3.0.0 || insiders'
1407 | dependencies:
1408 | tailwindcss: 3.3.3
1409 | dev: false
1410 |
1411 | /tailwindcss@3.3.3:
1412 | resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
1413 | engines: {node: '>=14.0.0'}
1414 | hasBin: true
1415 | dependencies:
1416 | '@alloc/quick-lru': 5.2.0
1417 | arg: 5.0.2
1418 | chokidar: 3.5.3
1419 | didyoumean: 1.2.2
1420 | dlv: 1.1.3
1421 | fast-glob: 3.3.1
1422 | glob-parent: 6.0.2
1423 | is-glob: 4.0.3
1424 | jiti: 1.20.0
1425 | lilconfig: 2.1.0
1426 | micromatch: 4.0.5
1427 | normalize-path: 3.0.0
1428 | object-hash: 3.0.0
1429 | picocolors: 1.0.0
1430 | postcss: 8.4.30
1431 | postcss-import: 15.1.0(postcss@8.4.30)
1432 | postcss-js: 4.0.1(postcss@8.4.30)
1433 | postcss-load-config: 4.0.1(postcss@8.4.30)
1434 | postcss-nested: 6.0.1(postcss@8.4.30)
1435 | postcss-selector-parser: 6.0.13
1436 | resolve: 1.22.6
1437 | sucrase: 3.34.0
1438 | transitivePeerDependencies:
1439 | - ts-node
1440 |
1441 | /thenify-all@1.6.0:
1442 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1443 | engines: {node: '>=0.8'}
1444 | dependencies:
1445 | thenify: 3.3.1
1446 |
1447 | /thenify@3.3.1:
1448 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1449 | dependencies:
1450 | any-promise: 1.3.0
1451 |
1452 | /to-regex-range@5.0.1:
1453 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1454 | engines: {node: '>=8.0'}
1455 | dependencies:
1456 | is-number: 7.0.0
1457 |
1458 | /ts-interface-checker@0.1.13:
1459 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1460 |
1461 | /tslib@2.6.2:
1462 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
1463 | dev: false
1464 |
1465 | /typescript@5.2.2:
1466 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
1467 | engines: {node: '>=14.17'}
1468 | hasBin: true
1469 | dev: true
1470 |
1471 | /update-browserslist-db@1.0.13(browserslist@4.22.0):
1472 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
1473 | hasBin: true
1474 | peerDependencies:
1475 | browserslist: '>= 4.21.0'
1476 | dependencies:
1477 | browserslist: 4.22.0
1478 | escalade: 3.1.1
1479 | picocolors: 1.0.0
1480 | dev: true
1481 |
1482 | /use-callback-ref@1.3.0(@types/react@18.2.23)(react@18.2.0):
1483 | resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
1484 | engines: {node: '>=10'}
1485 | peerDependencies:
1486 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1487 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1488 | peerDependenciesMeta:
1489 | '@types/react':
1490 | optional: true
1491 | dependencies:
1492 | '@types/react': 18.2.23
1493 | react: 18.2.0
1494 | tslib: 2.6.2
1495 | dev: false
1496 |
1497 | /use-sidecar@1.1.2(@types/react@18.2.23)(react@18.2.0):
1498 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
1499 | engines: {node: '>=10'}
1500 | peerDependencies:
1501 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
1502 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1503 | peerDependenciesMeta:
1504 | '@types/react':
1505 | optional: true
1506 | dependencies:
1507 | '@types/react': 18.2.23
1508 | detect-node-es: 1.1.0
1509 | react: 18.2.0
1510 | tslib: 2.6.2
1511 | dev: false
1512 |
1513 | /util-deprecate@1.0.2:
1514 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1515 |
1516 | /watchpack@2.4.0:
1517 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
1518 | engines: {node: '>=10.13.0'}
1519 | dependencies:
1520 | glob-to-regexp: 0.4.1
1521 | graceful-fs: 4.2.11
1522 | dev: false
1523 |
1524 | /wrappy@1.0.2:
1525 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1526 |
1527 | /yaml@2.3.2:
1528 | resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
1529 | engines: {node: '>= 14'}
1530 |
1531 | /zod@3.21.4:
1532 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
1533 | dev: false
1534 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | darkMode: ["class"],
4 | content: [
5 | './pages/**/*.{ts,tsx}',
6 | './components/**/*.{ts,tsx}',
7 | './app/**/*.{ts,tsx}',
8 | './src/**/*.{ts,tsx}',
9 | ],
10 | theme: {
11 | container: {
12 | center: true,
13 | padding: "2rem",
14 | screens: {
15 | "2xl": "1400px",
16 | },
17 | },
18 | extend: {
19 | colors: {
20 | border: "hsl(var(--border))",
21 | input: "hsl(var(--input))",
22 | ring: "hsl(var(--ring))",
23 | background: "hsl(var(--background))",
24 | foreground: "hsl(var(--foreground))",
25 | primary: {
26 | DEFAULT: "hsl(var(--primary))",
27 | foreground: "hsl(var(--primary-foreground))",
28 | },
29 | secondary: {
30 | DEFAULT: "hsl(var(--secondary))",
31 | foreground: "hsl(var(--secondary-foreground))",
32 | },
33 | destructive: {
34 | DEFAULT: "hsl(var(--destructive))",
35 | foreground: "hsl(var(--destructive-foreground))",
36 | },
37 | muted: {
38 | DEFAULT: "hsl(var(--muted))",
39 | foreground: "hsl(var(--muted-foreground))",
40 | },
41 | accent: {
42 | DEFAULT: "hsl(var(--accent))",
43 | foreground: "hsl(var(--accent-foreground))",
44 | },
45 | popover: {
46 | DEFAULT: "hsl(var(--popover))",
47 | foreground: "hsl(var(--popover-foreground))",
48 | },
49 | card: {
50 | DEFAULT: "hsl(var(--card))",
51 | foreground: "hsl(var(--card-foreground))",
52 | },
53 | },
54 | borderRadius: {
55 | lg: "var(--radius)",
56 | md: "calc(var(--radius) - 2px)",
57 | sm: "calc(var(--radius) - 4px)",
58 | },
59 | keyframes: {
60 | "accordion-down": {
61 | from: { height: 0 },
62 | to: { height: "var(--radix-accordion-content-height)" },
63 | },
64 | "accordion-up": {
65 | from: { height: "var(--radix-accordion-content-height)" },
66 | to: { height: 0 },
67 | },
68 | },
69 | animation: {
70 | "accordion-down": "accordion-down 0.2s ease-out",
71 | "accordion-up": "accordion-up 0.2s ease-out",
72 | },
73 | },
74 | },
75 | plugins: [require("tailwindcss-animate")],
76 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "noEmit": true,
9 | "esModuleInterop": true,
10 | "module": "esnext",
11 | "moduleResolution": "bundler",
12 | "resolveJsonModule": true,
13 | "isolatedModules": true,
14 | "jsx": "preserve",
15 | "incremental": true,
16 | "plugins": [
17 | {
18 | "name": "next"
19 | }
20 | ],
21 | "paths": {
22 | "@/*": ["./*"]
23 | }
24 | },
25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
26 | "exclude": ["node_modules"]
27 | }
28 |
--------------------------------------------------------------------------------
/utils/assets.ts:
--------------------------------------------------------------------------------
1 | export const assets = {
2 | gradient:
3 | "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F266e05dba3864799b4715cf4bfd8aa2a",
4 | square:
5 | "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F8997f779f33b430bb22ca667d1b73ade",
6 | react:
7 | "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F95c70a06f779481a957c2b384e3a270d",
8 | svelte:
9 | "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Ffbe9dfb6bb09448ba4fe5feb4bb0e53e?format=webp",
10 | tailwind:
11 | "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F8d0b6724f6f6496dbf124bfc3af2a0b0?format=webp",
12 | vue: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F73a54a19443e48fab077e6f21687cd20?format=webp",
13 | qwik: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fddb7b5acc2d747f198e8ed90dc245f1a",
14 | };
15 |
--------------------------------------------------------------------------------
/utils/data.ts:
--------------------------------------------------------------------------------
1 | export const frameworks = [
2 | "react",
3 | "qwik",
4 | "svelte",
5 | "vue",
6 | "tailwind",
7 | ] as const;
8 |
9 | export type Framework = (typeof frameworks)[number];
10 |
--------------------------------------------------------------------------------
/utils/tailwind.ts:
--------------------------------------------------------------------------------
1 | import { type ClassValue, clsx } from "clsx";
2 | import { twMerge } from "tailwind-merge";
3 |
4 | export function cn(...classes: ClassValue[]) {
5 | return twMerge(clsx(...classes));
6 | }
7 |
--------------------------------------------------------------------------------