From b185b9afb6b70bb6150e2374709bf5d669aa02a3 Mon Sep 17 00:00:00 2001 From: imnyang Date: Sun, 15 Dec 2024 02:59:06 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=B4=EA=B2=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 6 +- bun.lockb | Bin 155043 -> 212322 bytes next.config.ts | 5 +- package.json | 4 + pnpm-lock.yaml | 1227 ++++++++++++++++++++++++++++ src/app/components/Timeline.tsx | 48 -- src/app/components/repos.tsx | 24 - src/app/globals.css | 9 +- src/app/layout.tsx | 4 +- src/app/page.tsx | 74 +- src/app/timeline/page.tsx | 17 +- src/components/ui/accordion.tsx | 47 ++ src/components/ui/avatar.tsx | 74 ++ src/components/ui/button.tsx | 40 + src/components/ui/checkbox.tsx | 25 + src/components/ui/close-button.tsx | 17 + src/components/ui/color-mode.tsx | 67 ++ src/components/ui/dialog.tsx | 62 ++ src/components/ui/drawer.tsx | 52 ++ src/components/ui/field.tsx | 33 + src/components/ui/input-group.tsx | 53 ++ src/components/ui/popover.tsx | 59 ++ src/components/ui/provider.tsx | 15 + src/components/ui/radio.tsx | 24 + src/components/ui/slider.tsx | 82 ++ src/components/ui/tooltip.tsx | 46 ++ tsconfig.json | 4 +- 27 files changed, 1998 insertions(+), 120 deletions(-) delete mode 100644 src/app/components/Timeline.tsx delete mode 100644 src/app/components/repos.tsx create mode 100644 src/components/ui/accordion.tsx create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/checkbox.tsx create mode 100644 src/components/ui/close-button.tsx create mode 100644 src/components/ui/color-mode.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/drawer.tsx create mode 100644 src/components/ui/field.tsx create mode 100644 src/components/ui/input-group.tsx create mode 100644 src/components/ui/popover.tsx create mode 100644 src/components/ui/provider.tsx create mode 100644 src/components/ui/radio.tsx create mode 100644 src/components/ui/slider.tsx create mode 100644 src/components/ui/tooltip.tsx diff --git a/.eslintrc.json b/.eslintrc.json index 3722418..c890126 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,3 +1,7 @@ { - "extends": ["next/core-web-vitals", "next/typescript"] + "extends": ["next/core-web-vitals", "next/typescript"], + "rules": { + "@typescript-eslint/no-empty-object-type": "off", + "@typescript-eslint/no-unused-vars": "off" + } } diff --git a/bun.lockb b/bun.lockb index 57ab2fbb55702f94870551bc2b5353d50de6745b..c28a76411a77d668807f03854772872a157a6530 100755 GIT binary patch delta 69483 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 delta 31850 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 R)8lQJB^b@8SK2VY1OUltUJn2O diff --git a/next.config.ts b/next.config.ts index dd6aa42..c10fb60 100644 --- a/next.config.ts +++ b/next.config.ts @@ -10,7 +10,10 @@ const nextConfig: NextConfig = { pathname: "/profile/**", }, ], - }, + }, + experimental: { + optimizePackageImports: ["@chakra-ui/react"], + }, }; export default nextConfig; diff --git a/package.json b/package.json index f48d752..77a77e3 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,15 @@ "lint": "next lint" }, "dependencies": { + "@chakra-ui/react": "^3.2.3", + "@emotion/react": "^11.14.0", "@tippyjs/react": "^4.2.6", "lucide-react": "^0.468.0", "next": "15.0.3", + "next-themes": "^0.4.4", "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106", + "react-icons": "^5.4.0", "tippy.js": "^6.3.7" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf8a0fe..48d6fc9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,12 @@ importers: .: dependencies: + '@chakra-ui/react': + specifier: ^3.2.3 + version: 3.2.3(@emotion/react@11.14.0(@types/react@18.3.12)(react@19.0.0-rc-66855b96-20241106))(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + '@emotion/react': + specifier: ^11.14.0 + version: 11.14.0(@types/react@18.3.12)(react@19.0.0-rc-66855b96-20241106) '@tippyjs/react': specifier: ^4.2.6 version: 4.2.6(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) @@ -58,9 +64,118 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@ark-ui/react@4.4.4': + resolution: {integrity: sha512-oYIHk12bLM0VvqmDNLD4lINeoctDijLpuN0L9Rycp6MH9h4JNbSPN2LKgpHhPwoe0nEau3let6wsBOIydPcCvw==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.26.4': + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} + + '@chakra-ui/react@3.2.3': + resolution: {integrity: sha512-KfhKkcnHPqMwrX5eZ1xVeewOy6L4+iL2684tnP7re7erferfEBeqAAkGZpzWUcjb+IMwClYFygXk0gQrsVdtaQ==} + peerDependencies: + '@emotion/react': '>=11' + react: '>=18' + react-dom: '>=18' + '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.2': + resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.1': + resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -79,6 +194,15 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -197,6 +321,12 @@ packages: cpu: [x64] os: [win32] + '@internationalized/date@3.5.6': + resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} + + '@internationalized/number@3.5.4': + resolution: {integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -289,6 +419,9 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@pandacss/is-valid-prop@0.41.0': + resolution: {integrity: sha512-BE6h6CsJk14ugIRrsazJtN3fcg+KDFRat1Bs93YFKH6jd4DOb1yUyVvC70jKqPVvg70zEcV8acZ7VdcU5TLu+w==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -320,6 +453,9 @@ packages: '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} @@ -394,6 +530,213 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@zag-js/accordion@0.77.1': + resolution: {integrity: sha512-KEXFPZB+Z2NfdQLNDOZ5fbRzv++mIDmZdpOPjP0kur7asVhLEyhLtpBEfXKMdF1fZoYOeXT4R6loZ5fRXPfK+Q==} + + '@zag-js/anatomy@0.77.1': + resolution: {integrity: sha512-VMj+z4kco9zVKDEsabQDy8IYCqXdMqdZ2Z+n4IeEOV93oX7iG86vNHgZ7NXykN2jSR/Bka+LcGtAstaUvVw2dA==} + + '@zag-js/aria-hidden@0.77.1': + resolution: {integrity: sha512-Nx8hYDXMsOfGxxLQcfL2pAo4UutE7IGdbYbacsnqbfJhg/vDyTkf4Uhy7HXvZAccGxtj5kb2WeCbtzh9lklwsQ==} + + '@zag-js/auto-resize@0.77.1': + resolution: {integrity: sha512-CIvUaxhwuqkpS/+Q816C531deN+RT8SRzDy3YfuvKRfGtEfRRTNuwk9P2dlo6MoinfORcjvX1y4EAaBjA/lsxw==} + + '@zag-js/avatar@0.77.1': + resolution: {integrity: sha512-wERKUzjLCElAKk6CNsBe6U4tKZNQTr9AZKOQqbONWJr6wISy7Ftu5el0Yp0SbUxmwacfB9ghdHslTbaThz190g==} + + '@zag-js/carousel@0.77.1': + resolution: {integrity: sha512-sSVzQ/ZUAmJrArvkwCz1z/er9zLg3HDsyFDPvIJIqDAqZNatmKAth0Gia8wuWnz5YV1YGsLS8OeHr1lXYWvLQQ==} + + '@zag-js/checkbox@0.77.1': + resolution: {integrity: sha512-PbG/IU80tN1F5V+tGzyAN54p37kS4cQ8U/MUrtBxFOGMy3kGVeVMQCX/xo9fz6H49L+2+4XVzfkTHBDyNVuSxg==} + + '@zag-js/clipboard@0.77.1': + resolution: {integrity: sha512-1eLgL3dxEIMTZhe+0fkv05PX8i2LZprLf71hLqHPcjt/DDa/g4tDpoDG9HBgEM68s8mFLB3niwbfbpVgepcR6g==} + + '@zag-js/collapsible@0.77.1': + resolution: {integrity: sha512-Wh/PJCEHdt0nzpo/HqwLXHN/nC6aYZXKlV7tztTPYzUOOF5/g1QiGE0ecQEX1tpKEHME+Ro3lwwI0vAh3L6Evg==} + + '@zag-js/collection@0.77.1': + resolution: {integrity: sha512-YwdpSRy3yqFRLqOqNpkQJ6cVH3JS9MLhW+f4FKypfvz1tLLTpt/uMnKAOwoIVy+EjCuzeMwUtR7MQF/kK5y56A==} + + '@zag-js/color-picker@0.77.1': + resolution: {integrity: sha512-NV3g5J2zQmnv4jMMkKFlzhX8vvX7W6etQX0ZfaxUGKBFaGf/Vfdow0EEyurf+QqGkxGTWRI4rZncy5/K02n9Cg==} + + '@zag-js/color-utils@0.77.1': + resolution: {integrity: sha512-6Z7zoAOQr3LprL6POV1gzA9tzzz4FHLtfo9ZqgN3SxbhFXj0xw1hhEB6COwJxqsNL9jqN2yhXBj3RBY89WsWzQ==} + + '@zag-js/combobox@0.77.1': + resolution: {integrity: sha512-uAT/ByipNCm0eNdPZJzBqqbSjtSeSHSAdSyki2puyLtl779G6vRZv44aKey+0LKxmTZYKD1neMl06dWwtdnA9w==} + + '@zag-js/core@0.77.1': + resolution: {integrity: sha512-tY5A/XayGdtiSutjQl4jBzoj2xdka8JD4JuzffsAT7aWJklbfiuIKc0R7dbAviRQ1vFe0Jvmrd3FZz85aJJfdg==} + + '@zag-js/date-picker@0.77.1': + resolution: {integrity: sha512-Rci3u5YvpObAVbYKp5lUmWyvS0VFambjhZYc0avFp7MTHhRZErXKviq/q1wqvWWtfrAZKRuQrG5Rex7+E9zDMg==} + peerDependencies: + '@internationalized/date': '>=3.0.0' + + '@zag-js/date-utils@0.77.1': + resolution: {integrity: sha512-lPYI76n/PO2LZ+PVqgKqLZfYvpNTwOdGdbBFSkwBS7eUvleEd2/oi7AE1jJaKMZ3+Bf/zy1lM5e4dlY09xRFQw==} + peerDependencies: + '@internationalized/date': '>=3.0.0' + + '@zag-js/dialog@0.77.1': + resolution: {integrity: sha512-RaJInIhlihpPUpWheweZPfcHgDv35xvsAG75JLQgGI9NU7seTrxL6I8ADugASPr4l77dBmdu6nhC5o9AeJNEYw==} + + '@zag-js/dismissable@0.77.1': + resolution: {integrity: sha512-S0u3NAyVuO2DQH+B1v+e/35BHw2jgnQ+2X+RfzpunNd5Iu1mZA3dekbxPbP8U24jguRuqQiI2WFvw3YMbno9vg==} + + '@zag-js/dom-event@0.77.1': + resolution: {integrity: sha512-W5LYu/arBgHCGh3UYkkPclEYlDlZXbST+QPvma5pXv4pzkrFS0P189sLNEedE4hkIgkbIRwdaL6YJITbKD03cA==} + + '@zag-js/dom-query@0.77.1': + resolution: {integrity: sha512-hr+4lzx4wHqhunjMzAmNp7sma5K58o0ti1h5gXpei1puoeGs8epZfzjW/ZTsKyuVgH3+0f80YOC+oTK6rDAhcw==} + + '@zag-js/editable@0.77.1': + resolution: {integrity: sha512-iSnamhmODF5LdcGkgnqQBkRP7AyfYL7mCjRY/69kQFcXtsK8psWJxQQZLDJTzylMxMHRM1EwS452NDIG0P3/6w==} + + '@zag-js/element-rect@0.77.1': + resolution: {integrity: sha512-cHCzdtp30wrM+trYdv0kN9wqUqYc743/muob0gHanDvvbQv8TVZ/tABA6bksL/bWCXk50bm6jiAKV/7dPYdtCQ==} + + '@zag-js/element-size@0.77.1': + resolution: {integrity: sha512-USzS/Q10TW02vHmWKUQ1Fizy8cQ6Aco0IWVHaKkEdzmyCJPL+XZnm5Xe9B8nDpsLt9qgR5TblB0zqqr2EqmQkw==} + + '@zag-js/file-upload@0.77.1': + resolution: {integrity: sha512-0MaVDnAuzsL4NO1gssRutuCacFqLql76uF4qaXt6GWygmGpLP24gVfcBeXaBD2HHRB3IZ70MQx8oBq91sNaYMQ==} + + '@zag-js/file-utils@0.77.1': + resolution: {integrity: sha512-lBGdjIdoETUdDlL5NxFtKdl5aSd9JvkokuNHTj1VJjBaW1KHQjzDNMJMgPabDyekQWcIOxNok33MhtiW3y3rNA==} + + '@zag-js/focus-visible@0.77.1': + resolution: {integrity: sha512-hQgkYDxbFuiHvV/bFQGQ278s/WXX/M+7qwr9o4If3lSsIz1U5tfUl7vg7K8cNgr9l5tWpWlb7SeGZ0bqrZWNwA==} + + '@zag-js/form-utils@0.77.1': + resolution: {integrity: sha512-1AVpIBtAelR4i6V8yJuhVGGAT9MeTbC86ckOH23GsH73QlvK+U55G2PckF0ClWeJ1AHw/vfy4OwibAULvv6cIg==} + + '@zag-js/highlight-word@0.77.1': + resolution: {integrity: sha512-71Ykri3NHAXUE689pPpAoQOxYhHGZAx0eGjpMH3ZAlmXlG5QXCAeGG3EiDY+REPY5egIkGz6woCWj0E4iKta9Q==} + + '@zag-js/hover-card@0.77.1': + resolution: {integrity: sha512-3/pA79VSF4Z+57FD4hQt6UiSMNPL9OO1I0LryM7FhgHqgQ5HA+ICFYdgpoEwQXdYKkyhZ/LetfpXS5gw038+QQ==} + + '@zag-js/i18n-utils@0.77.1': + resolution: {integrity: sha512-HJAaCXf6r8b72JajIEQmnekRX/7Dz2sBMrAqpvIV6dpMDjCVcyow8WgfDqE46ipdNLi2XL1lgwaW3h5ckYEL+Q==} + + '@zag-js/interact-outside@0.77.1': + resolution: {integrity: sha512-q5GhN4CPtYy/YXh8Fv8VCofuYpQ0D2X6r+/gscf4C/5QhXka8q4RwhJXjXnv+7b3jvTTjtXovZ9RqWdNw5rEcg==} + + '@zag-js/live-region@0.77.1': + resolution: {integrity: sha512-NqTJWRfolf343X7NeDbaFDeC96lSlAAI1BO3ALV8cRIcEO+XF7iW1/8Cdyi2mEXaCvENv7OoBR8pRxD72RqN1g==} + + '@zag-js/menu@0.77.1': + resolution: {integrity: sha512-NZ4YfiBWpByF98IaSOwASRZHCRIyj/Xbut3F2bTtoIsG+qQYEbQ4g3qXbmkjJC1GM7AmyiI54ZlKqoNn9wGZ7w==} + + '@zag-js/number-input@0.77.1': + resolution: {integrity: sha512-/1fUh0Jrg/Lzc5ilRIsNo2/k7LUm8nXfxogef6yVADPxROUImrRfS1wQaf79L+8vibDyKGRxyPBgEcVjHX1Gaw==} + + '@zag-js/number-utils@0.77.1': + resolution: {integrity: sha512-liP+TsEWP4GtjaaNihYe4MmLkFfI8I2TpDDnPlyo0tnCZLd1/+rNvcuU7lwVck7OOL4NX8uuRnSBP58toRKv6A==} + + '@zag-js/numeric-range@0.77.1': + resolution: {integrity: sha512-ny75qTNaebomkeWUI7X86MSE7c77/Ek8Oi6wNY6Til6YugaLCm2I5P9BO25sGcYj1w3FeUz2uCxRkPMtnxamrg==} + + '@zag-js/pagination@0.77.1': + resolution: {integrity: sha512-/Ud7kzamnp1F0w2ImerFjH3N9JOSS1JzPfd9BgvyfqkYXQCaUGMNBjiRidOFMTOBUW/ftwuPLZfW6f5FGLEjkQ==} + + '@zag-js/pin-input@0.77.1': + resolution: {integrity: sha512-PhSfQg72lx0dzIWwqcCNZ0nHJ0QgknzE2qL/wDcOQ/J/MYReRx2lX1+RzOmFheNLV+LrAIenXOTL4xCF+8Gfig==} + + '@zag-js/popover@0.77.1': + resolution: {integrity: sha512-9LVuyY8LjZf6v26Uvc3+uINy740cPgkcRWaiBiW8SunsyaLzcZIA6PSOIbE14XE2lEENIeBIOYbafuahM45gBQ==} + + '@zag-js/popper@0.77.1': + resolution: {integrity: sha512-+DlFlRwuLyUiKl8i+efBYzC6UutcSt1ROHRgmGeB9zwSPvtn1pKlaUqSkxAY2lUDHU56RX8entF5RAeZ8mGwOg==} + + '@zag-js/presence@0.77.1': + resolution: {integrity: sha512-bVgkleWPZxO3FZCBeXHSL2lTJN8ZaIwRbH2MAwdk70VxNYVtWvo3KsbiNNGR/R5PwAPf45T0x99S+sOrByqMgA==} + + '@zag-js/progress@0.77.1': + resolution: {integrity: sha512-wX7isF+6ExNm/ci9gMowtZa7cVMW7ss6VAqnwIpzTu8KBCo6fArD/e1EOpeUilrs1qiiDCLhDbZ07OKG0tRVSQ==} + + '@zag-js/qr-code@0.77.1': + resolution: {integrity: sha512-LY5GwSprGhB6wfY/3XFeENiSj+AKUmzSqR3k2KixAeE0H7amPFr27kbeEX33nCvzBE1ZAXFHPtTa3/rvneXk4A==} + + '@zag-js/radio-group@0.77.1': + resolution: {integrity: sha512-d4KF4qaVSWO+OqdnZ4DWTNywdgRSaRENTE02nBIGwSwOVPFIP8kQCtd0W+0nVFcXR9e7BIncj1ckOzxZM/+BUA==} + + '@zag-js/rating-group@0.77.1': + resolution: {integrity: sha512-cBkwCHxOJyCVHDUmKqKRcwDsoYL3kGtZ0WEviUAOVFHR2ZUm24lm7+1geuPrQcEXpSBmIXNbke/jyM0+haxSDQ==} + + '@zag-js/react@0.77.1': + resolution: {integrity: sha512-clP04/bKty4FUh5oTCoQydEiMQt1TO1W7tZ+rq+H9eqstzpaHYbl/FScsioHXecl43jROdd3EPquI8TK3snlZw==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + + '@zag-js/rect-utils@0.77.1': + resolution: {integrity: sha512-AIT90ALk7yrpWu4dJTDOfWOxQNLeGDqbINt+3wz50nwVLMmF3KFG34RMPFwt1mwAYEhON4QD1JjedbL+dXfd7g==} + + '@zag-js/remove-scroll@0.77.1': + resolution: {integrity: sha512-dqRl2sbghzyjQY/xngrllcq4/KvhDYKpP3OV13rFjHEJJnQNYfyRrRF5b2n6W6qZmsNr+xTL+OHk2qWl+BCMvA==} + + '@zag-js/select@0.77.1': + resolution: {integrity: sha512-aE+g4xDegGrsdlqDLALh84stwRJwQakNXSw2Rk+gP7BtFvrZ6cHizYvaZVHoVwSn/oNAozYk/eUQMYK1HOdNuw==} + + '@zag-js/signature-pad@0.77.1': + resolution: {integrity: sha512-B2muP6rhevuV27Y4A5hZt/5GR7WpaUSq7B7a/jAiYZmp8Tutmz1zRFsS9Zc9husESAhJyrtA1AkNDGQiYVau8g==} + + '@zag-js/slider@0.77.1': + resolution: {integrity: sha512-AYcWiQquLyxOKsHreuw+KVf6MEOmBGYuq9qlXm62ZoI5OZIgxKUEw69P8IhP3afowXnrrhq8gnqgEj7W//dDSQ==} + + '@zag-js/splitter@0.77.1': + resolution: {integrity: sha512-KaNM/3vHAdl2otVzu2G+Y24tqvAy0r3n1yLvU5lNIkDwlr+gwNWJy0cMOXf3DFokhI5ijMbtuux8dFT7Wmib+g==} + + '@zag-js/steps@0.77.1': + resolution: {integrity: sha512-CbVlWNQkHy+SRzTWTKd0sWvKXfg112ped6/I6ei/tSC4vqJdFSm9/QRXGvFiSy06wOoN3Oqlw93KlwbdpEhH+g==} + + '@zag-js/store@0.77.1': + resolution: {integrity: sha512-qk9uuXehAiq9BG0Rhd6nGwYI1WiXa3KcFydxbiMnlGiET8/zAeNTw5biYW5riptAmZ6xiwVUNtzg0T58+3YIag==} + + '@zag-js/switch@0.77.1': + resolution: {integrity: sha512-GbIdY+Ph3XZWISOCQ3/MM+tbq/EnyEGGs1falAlVmuaVfS1gGsa9p8NKjy2mlrE+Ho8aScZgSYZfzoZfFVcWDw==} + + '@zag-js/tabs@0.77.1': + resolution: {integrity: sha512-YEL+Vyx2c6sp3qj3rgb9X81gBPOrCGke1OshZMkv6nUhmzVvajfAwKdwbTKSZ4PwLTPAkfyjd8t1MFdWdutCKg==} + + '@zag-js/tags-input@0.77.1': + resolution: {integrity: sha512-+N+vtfRDNzAngqT+zk5PwoXJafaIQWioEAEMvIJYn77DNZU+Vi0Du9T1O9/hDcI75/cPtdXCIE0oor+fWDHneA==} + + '@zag-js/text-selection@0.77.1': + resolution: {integrity: sha512-5bg4qvEQCQBTW7Ow4yuzumgt0fWWRSqRXaOr/27xDuyTgq7pCQzH5Yfg0pWoQGBMop9djrxN3Z1XrESbXJyZEA==} + + '@zag-js/time-picker@0.77.1': + resolution: {integrity: sha512-Dq7SD/CBv5qrknxx3t5b/cotmS6eZx5BCPkXQfKIC8jajdpSSLsWq891RSrEk7zTAGjx5iY1q3VSGT5EyPEIOQ==} + peerDependencies: + '@internationalized/date': '>=3.0.0' + + '@zag-js/timer@0.77.1': + resolution: {integrity: sha512-INSMVQYJCkvEgy4bvr0g+PUPvtetm0Zrh9wC29UqgbQKpdcsvFKI8yDu3Sm4Mk9dp0AkMhS2GhT92r+TeHLomg==} + + '@zag-js/toast@0.77.1': + resolution: {integrity: sha512-ohaoox2TXf0NpC4W3mNKgjyZGg+Zz/+QeQBtglcIBLyr39o/pkrK3wHc27+twKciu4ZcWC5jucsR6lo9A12wbQ==} + + '@zag-js/toggle-group@0.77.1': + resolution: {integrity: sha512-wQXUBClzBmPHL0jqTOXD78mmlIABObxgqHG3jMgutl/7TqPMk65jatR0piWxkAF8dn+Oav5HLIOaHFKR/m+RCw==} + + '@zag-js/tooltip@0.77.1': + resolution: {integrity: sha512-0Vu9rC9StV+QrXMsGiOOvGY3NIVqKQt1oh5AaFyIo/SglnJ2UvYB7c/ERMSyW/YoTi/Pv7+7kaZzitR2JGQ+Cw==} + + '@zag-js/tree-view@0.77.1': + resolution: {integrity: sha512-3Otb+pVB7KFbCs4Xi4w6mU0sYz3z/+CaTQp3jN6VRNzUMSCVKRar/NuZbnmCExj+4iLUEvANrOlkneBr6stFpA==} + + '@zag-js/types@0.77.1': + resolution: {integrity: sha512-GtZKdiltPDxp19qmXa/L+a1ffL67bmSxAPlT/wVv2G7uLtL82GKKT86m2yaUqKq+VUE47kXjarj9pTcTrwTSVQ==} + + '@zag-js/utils@0.77.1': + resolution: {integrity: sha512-sYCRwWQlQeYuRUvuDX0ji6Dnt/Ld6bIbVXV7NtbHCpz/G0sOnVaHJLTOoIFt1KEIrm9QvDtj/JFJGNi9Jc1Bew==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -436,6 +779,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -487,6 +834,10 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -555,6 +906,13 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -641,6 +999,9 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + es-abstract@1.23.5: resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} @@ -816,6 +1177,9 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -827,6 +1191,9 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + focus-trap@7.6.0: + resolution: {integrity: sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==} + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -879,6 +1246,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -923,6 +1294,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -950,6 +1324,9 @@ packages: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -1087,9 +1464,17 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -1107,6 +1492,10 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -1267,6 +1656,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1286,6 +1679,13 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + perfect-freehand@1.2.2: + resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1357,6 +1757,15 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proxy-compare@3.0.0: + resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} + + proxy-compare@3.0.1: + resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} + + proxy-memoize@3.0.1: + resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1387,6 +1796,9 @@ packages: resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} engines: {node: '>= 0.4'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} @@ -1473,6 +1885,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -1536,6 +1952,9 @@ packages: babel-plugin-macros: optional: true + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -1549,6 +1968,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tailwindcss@3.4.15: resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==} engines: {node: '>=14.0.0'} @@ -1625,6 +2047,9 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1667,6 +2092,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yaml@2.6.1: resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} @@ -1680,11 +2109,217 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@ark-ui/react@4.4.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@internationalized/date': 3.5.6 + '@zag-js/accordion': 0.77.1 + '@zag-js/anatomy': 0.77.1 + '@zag-js/auto-resize': 0.77.1 + '@zag-js/avatar': 0.77.1 + '@zag-js/carousel': 0.77.1 + '@zag-js/checkbox': 0.77.1 + '@zag-js/clipboard': 0.77.1 + '@zag-js/collapsible': 0.77.1 + '@zag-js/collection': 0.77.1 + '@zag-js/color-picker': 0.77.1 + '@zag-js/color-utils': 0.77.1 + '@zag-js/combobox': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/date-picker': 0.77.1(@internationalized/date@3.5.6) + '@zag-js/date-utils': 0.77.1(@internationalized/date@3.5.6) + '@zag-js/dialog': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/editable': 0.77.1 + '@zag-js/file-upload': 0.77.1 + '@zag-js/file-utils': 0.77.1 + '@zag-js/highlight-word': 0.77.1 + '@zag-js/hover-card': 0.77.1 + '@zag-js/i18n-utils': 0.77.1 + '@zag-js/menu': 0.77.1 + '@zag-js/number-input': 0.77.1 + '@zag-js/pagination': 0.77.1 + '@zag-js/pin-input': 0.77.1 + '@zag-js/popover': 0.77.1 + '@zag-js/presence': 0.77.1 + '@zag-js/progress': 0.77.1 + '@zag-js/qr-code': 0.77.1 + '@zag-js/radio-group': 0.77.1 + '@zag-js/rating-group': 0.77.1 + '@zag-js/react': 0.77.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + '@zag-js/select': 0.77.1 + '@zag-js/signature-pad': 0.77.1 + '@zag-js/slider': 0.77.1 + '@zag-js/splitter': 0.77.1 + '@zag-js/steps': 0.77.1 + '@zag-js/switch': 0.77.1 + '@zag-js/tabs': 0.77.1 + '@zag-js/tags-input': 0.77.1 + '@zag-js/time-picker': 0.77.1(@internationalized/date@3.5.6) + '@zag-js/timer': 0.77.1 + '@zag-js/toast': 0.77.1 + '@zag-js/toggle-group': 0.77.1 + '@zag-js/tooltip': 0.77.1 + '@zag-js/tree-view': 0.77.1 + '@zag-js/types': 0.77.1 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/generator@7.26.3': + dependencies: + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/parser@7.26.3': + dependencies: + '@babel/types': 7.26.3 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + + '@babel/traverse@7.26.4': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@chakra-ui/react@3.2.3(@emotion/react@11.14.0(@types/react@18.3.12)(react@19.0.0-rc-66855b96-20241106))(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@ark-ui/react': 4.4.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.14.0(@types/react@18.3.12)(react@19.0.0-rc-66855b96-20241106) + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@19.0.0-rc-66855b96-20241106) + '@emotion/utils': 1.4.1 + '@pandacss/is-valid-prop': 0.41.0 + csstype: 3.1.3 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 optional: true + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/runtime': 7.26.0 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.14.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.3.1': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.14.0(@types/react@18.3.12)(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0-rc-66855b96-20241106) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': 18.3.12 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.2': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.1 + csstype: 3.1.3 + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@19.0.0-rc-66855b96-20241106)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0-rc-66855b96-20241106)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 + + '@emotion/utils@1.4.1': {} + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.4.0': {} + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -1708,6 +2343,17 @@ snapshots: '@eslint/js@8.57.1': {} + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.12': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/utils@0.2.8': {} + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -1795,6 +2441,14 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true + '@internationalized/date@3.5.6': + dependencies: + '@swc/helpers': 0.5.13 + + '@internationalized/number@3.5.4': + dependencies: + '@swc/helpers': 0.5.13 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1865,6 +2519,8 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@pandacss/is-valid-prop@0.41.0': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -1892,6 +2548,8 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/parse-json@4.0.2': {} + '@types/prop-types@15.7.13': {} '@types/react-dom@18.3.1': @@ -1987,6 +2645,500 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@zag-js/accordion@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/anatomy@0.77.1': {} + + '@zag-js/aria-hidden@0.77.1': + dependencies: + aria-hidden: 1.2.4 + + '@zag-js/auto-resize@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + + '@zag-js/avatar@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/carousel@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/checkbox@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/focus-visible': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/clipboard@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/collapsible@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/collection@0.77.1': + dependencies: + '@zag-js/utils': 0.77.1 + + '@zag-js/color-picker@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/color-utils': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/text-selection': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/color-utils@0.77.1': + dependencies: + '@zag-js/numeric-range': 0.77.1 + + '@zag-js/combobox@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/aria-hidden': 0.77.1 + '@zag-js/collection': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/core@0.77.1': + dependencies: + '@zag-js/store': 0.77.1 + '@zag-js/utils': 0.77.1 + klona: 2.0.6 + + '@zag-js/date-picker@0.77.1(@internationalized/date@3.5.6)': + dependencies: + '@internationalized/date': 3.5.6 + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/date-utils': 0.77.1(@internationalized/date@3.5.6) + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/live-region': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/text-selection': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/date-utils@0.77.1(@internationalized/date@3.5.6)': + dependencies: + '@internationalized/date': 3.5.6 + + '@zag-js/dialog@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/aria-hidden': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/remove-scroll': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + focus-trap: 7.6.0 + + '@zag-js/dismissable@0.77.1': + dependencies: + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/interact-outside': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/dom-event@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + '@zag-js/text-selection': 0.77.1 + '@zag-js/types': 0.77.1 + + '@zag-js/dom-query@0.77.1': {} + + '@zag-js/editable@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/interact-outside': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/element-rect@0.77.1': {} + + '@zag-js/element-size@0.77.1': {} + + '@zag-js/file-upload@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/file-utils': 0.77.1 + '@zag-js/i18n-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/file-utils@0.77.1': + dependencies: + '@zag-js/i18n-utils': 0.77.1 + + '@zag-js/focus-visible@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + + '@zag-js/form-utils@0.77.1': {} + + '@zag-js/highlight-word@0.77.1': {} + + '@zag-js/hover-card@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/i18n-utils@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + + '@zag-js/interact-outside@0.77.1': + dependencies: + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/live-region@0.77.1': {} + + '@zag-js/menu@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/rect-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/number-input@0.77.1': + dependencies: + '@internationalized/number': 3.5.4 + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/number-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/number-utils@0.77.1': {} + + '@zag-js/numeric-range@0.77.1': {} + + '@zag-js/pagination@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/pin-input@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/popover@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/aria-hidden': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/remove-scroll': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + focus-trap: 7.6.0 + + '@zag-js/popper@0.77.1': + dependencies: + '@floating-ui/dom': 1.6.12 + '@zag-js/dom-query': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/presence@0.77.1': + dependencies: + '@zag-js/core': 0.77.1 + '@zag-js/types': 0.77.1 + + '@zag-js/progress@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/qr-code@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + proxy-memoize: 3.0.1 + uqr: 0.1.2 + + '@zag-js/radio-group@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/element-rect': 0.77.1 + '@zag-js/focus-visible': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/rating-group@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/react@0.77.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@zag-js/core': 0.77.1 + '@zag-js/store': 0.77.1 + '@zag-js/types': 0.77.1 + proxy-compare: 3.0.0 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + + '@zag-js/rect-utils@0.77.1': {} + + '@zag-js/remove-scroll@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + + '@zag-js/select@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/collection': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/signature-pad@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + perfect-freehand: 1.2.2 + + '@zag-js/slider@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/element-size': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/numeric-range': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/splitter@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/number-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/steps@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/store@0.77.1': + dependencies: + proxy-compare: 3.0.0 + + '@zag-js/switch@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/focus-visible': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/tabs@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/element-rect': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/tags-input@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/auto-resize': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/form-utils': 0.77.1 + '@zag-js/interact-outside': 0.77.1 + '@zag-js/live-region': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/text-selection@0.77.1': + dependencies: + '@zag-js/dom-query': 0.77.1 + + '@zag-js/time-picker@0.77.1(@internationalized/date@3.5.6)': + dependencies: + '@internationalized/date': 3.5.6 + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/timer@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/toast@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dismissable': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/toggle-group@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/tooltip@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/focus-visible': 0.77.1 + '@zag-js/popper': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/tree-view@0.77.1': + dependencies: + '@zag-js/anatomy': 0.77.1 + '@zag-js/collection': 0.77.1 + '@zag-js/core': 0.77.1 + '@zag-js/dom-event': 0.77.1 + '@zag-js/dom-query': 0.77.1 + '@zag-js/types': 0.77.1 + '@zag-js/utils': 0.77.1 + + '@zag-js/types@0.77.1': + dependencies: + csstype: 3.1.3 + + '@zag-js/utils@0.77.1': {} + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -2021,6 +3173,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.1: @@ -2098,6 +3254,12 @@ snapshots: axobject-query@4.1.0: {} + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.26.0 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + balanced-match@1.0.2: {} binary-extensions@2.3.0: {} @@ -2174,6 +3336,16 @@ snapshots: concat-map@0.0.1: {} + convert-source-map@1.9.0: {} + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -2252,6 +3424,10 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + es-abstract@1.23.5: dependencies: array-buffer-byte-length: 1.0.1 @@ -2583,6 +3759,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-root@1.1.0: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -2596,6 +3774,10 @@ snapshots: flatted@3.3.2: {} + focus-trap@7.6.0: + dependencies: + tabbable: 6.2.0 + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -2665,6 +3847,8 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + globals@11.12.0: {} + globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -2704,6 +3888,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + ignore@5.3.2: {} import-fresh@3.3.0: @@ -2731,6 +3919,8 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 + is-arrayish@0.2.1: {} + is-arrayish@0.3.2: optional: true @@ -2863,8 +4053,12 @@ snapshots: dependencies: argparse: 2.0.1 + jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -2884,6 +4078,8 @@ snapshots: dependencies: json-buffer: 3.0.1 + klona@2.0.6: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -3042,6 +4238,13 @@ snapshots: dependencies: callsites: 3.1.0 + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -3055,6 +4258,10 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-type@4.0.0: {} + + perfect-freehand@1.2.2: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -3116,6 +4323,14 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proxy-compare@3.0.0: {} + + proxy-compare@3.0.1: {} + + proxy-memoize@3.0.1: + dependencies: + proxy-compare: 3.0.1 + punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -3147,6 +4362,8 @@ snapshots: gopd: 1.1.0 which-builtin-type: 1.2.0 + regenerator-runtime@0.14.1: {} + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 @@ -3264,6 +4481,8 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.5.7: {} + streamsearch@1.1.0: {} string-width@4.2.3: @@ -3340,6 +4559,8 @@ snapshots: client-only: 0.0.1 react: 19.0.0-rc-66855b96-20241106 + stylis@4.2.0: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -3356,6 +4577,8 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tabbable@6.2.0: {} + tailwindcss@3.4.15: dependencies: '@alloc/quick-lru': 5.2.0 @@ -3468,6 +4691,8 @@ snapshots: undici-types@6.19.8: {} + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -3533,6 +4758,8 @@ snapshots: wrappy@1.0.2: {} + yaml@1.10.2: {} + yaml@2.6.1: {} yocto-queue@0.1.0: {} diff --git a/src/app/components/Timeline.tsx b/src/app/components/Timeline.tsx deleted file mode 100644 index 98d265c..0000000 --- a/src/app/components/Timeline.tsx +++ /dev/null @@ -1,48 +0,0 @@ -const events = [ - { date: '2024-12-07', description: '??? ???? ?? ? ??', link: 'https://ncf.or.kr/' }, - { date: '2024-12-07', description: '??? ???? ?? ?? ??', link: 'https://ncf.or.kr/' }, - { date: '2024-08-18', description: '29회 해킹캠프 CTF 1위 (고민중독)', link: 'https://ctf.hackingcamp.org/' }, - { date: '2024-08-05', description: '29회 해킹캠프 선발', link: 'https://hackingcamp.org/' }, - { date: '2024-08-01', description: '글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)', link: 'http://ncf.or.kr' }, - { date: '2024-05-16', description: '글로벌 스타트업 학교 2기 합격', link: 'http://ncf.or.kr' }, - { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 LG 탐색상 수상', link: 'https://lgaiyouthcamp.or.kr/' }, - { date: '2024-05-11', description: 'LG AI 청소년 캠프 1기 수료', link: 'https://lgaiyouthcamp.or.kr/' }, - { date: '2024-04-22', description: '@isangjeong.today (인천상정중학교의 오늘 급식)', link: 'https://www.instagram.com/isangjeong.today/' }, - { date: '2024-04-06', description: 'TimeTable (Sekai 개조판 배포) [API 유실]', link: 'https://timeline.imnyang.xyz' }, - { date: '2024-03-24', description: 'Dreamhack #133', link: 'https://dreamhack.io/users/40116/wargame' }, - { date: '2024-03-24', description: 'Ubuntu Mirror', link: 'https://launchpad.net/ubuntu/+mirror/mirror.imnyang.xyz-release' }, - { date: '2024-03-24', description: '내 목소리로 AI Cover 만들기', link: 'https://colab.research.google.com/drive/1a4G4hD9huBeGRZhEL2HNDMpqSuf4y61k?usp=sharing' }, - { date: '2024-01-26', description: 'Fastapi를 통해 API 제작', link: 'https://github.com/imnyang/api' }, - { date: '2023-12-20', description: 'LG AI 청소년 캠프 1기 합격' }, - { date: '2023-11-14', description: '인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여' }, - { date: '2023-11-01', description: '블로그 시작', link: 'https://blog.imnyang.xyz' }, - { date: '2023-10-12', description: '나는 로컬 시간을 알고 싶다', link: 'https://time.imnyang.xyz/' }, - { date: '2023-09-24', description: 'sqlr.kr 기획 및 초기 개발', link: 'https://github.com/sqlare/sqlr.kr/tree/main' }, - { date: '2023-09-02', description: '선린인터넷고등학교 제6회 소프트웨어나늠축제 Layer7 부서 과정 이수' }, - { date: '2023-08-26', description: '컴시간 시간표를 더 나아보이게 Sekai', link: 'https://github.com/imnyang/Sekai' }, - { date: '2023-08-23', description: '디스코드 통화방 녹음', link: 'https://github.com/imnyang/discord-voice-rec'}, - { date: '2023-07-24', description: '한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료' }, - { date: '2023-03-20', description: '디스코드에서 대화형 인공지능 Siru 제작', link: 'https://github.com/imnyang/siru' }, - { date: '2023-05-15', description: '한국 코드페어 예선 진출' }, - { date: '2023-03-14', description: '타이머', link: 'https://github.com/imnyang/imnyang-timer' }, - { date: '2022-12-20', description: '2022 SW영재 창작대회 은상 수상'}, - { date: '2022-09-27', description: '2022 삼성 주니어 SW 창작대회 본선 진출' }, - { date: '2022-05-23', description: '2022학년도 석정초SW영재학급 첫 수업' }, - { date: '2022-07-26', description: '제 14회 맑은하늘 맑은웃음 공모전에서 맑은웃음상 수여' }, - { date: '2021-11-14', description: 'Become a ZEPETO Creator 이수' }, - { date: '2021-05-19', description: '소프트웨어와 전자신문이 주관한 소프트웨어재단 꿈찾기 캠프 이수' }, - { date: '2018-01-27', description: '제4회 맑은하늘 맑은웃음 어린이 문예공모전에서 위닉스상(2위) 수여' }, -]; - -export default function Timeline() { - return ( -
- {events.map((event, index) => ( -
-

{event.date}

- {event.link ? {event.description} : event.description} -
- ))} -
- ); -} \ No newline at end of file diff --git a/src/app/components/repos.tsx b/src/app/components/repos.tsx deleted file mode 100644 index 14b4191..0000000 --- a/src/app/components/repos.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" -import { useEffect, useState } from "react"; - -export default function Repos() { - const [userInfo, setUserInfo] = useState({ public_repos: 0, followers: 0 }); - - useEffect(() => { - async function fetchUserInfo() { - try { - const response = await fetch("https://api.github.com/users/imnyang"); - const data = await response.json(); - setUserInfo({ public_repos: data.public_repos, followers: data.followers }); - } catch (error) { - console.error("Error fetching user info:", error); - } - } - - fetchUserInfo(); - }, []); - - return ( - <>{userInfo.public_repos} - ) -} \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index 05988e9..7b89b6d 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,17 +1,12 @@ @import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css"); -@import url('https://unpkg.com/@catppuccin/palette/css/catppuccin.css'); @tailwind base; @tailwind components; @tailwind utilities; :root { - --bg: var(--ctp-mocha-base); - --fg: var(--ctp-mocha-crust); - --primary: var(--ctp-mocha-lavender); - --secondary: var(--ctp-mocha-mauve); - --accent: var(--ctp-mocha-peach); - --accent-foreground: var(--ctp-mocha-text); + --bg: #101010; + --fg: #fff; } .main { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0136ac6..0257ace 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,8 @@ import type { Metadata } from "next"; import "./globals.css"; +import { Provider } from "@/components/ui/provider" + export const metadata: Metadata = { title: "imnyang", description: "imnyang's portfolio", @@ -22,7 +24,7 @@ export default function RootLayout({ - {children} + {children} ); diff --git a/src/app/page.tsx b/src/app/page.tsx index 3dfd12f..f037691 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,13 +1,22 @@ 'use client'; -import { useEffect, useState, forwardRef, Ref, Suspense } from "react"; +import React, { useEffect, useState, forwardRef, Ref, Suspense } from "react"; import Image from "next/image"; import Link from "next/link"; -import Tippy from "@tippyjs/react"; -import "tippy.js/dist/tippy.css"; import "./index.css"; import { Link as LinkIcon } from 'lucide-react'; +import { Tooltip } from "@/components/ui/tooltip"; + +import { Icon, Stack } from "@chakra-ui/react" +import { + AccordionRoot, + AccordionItem, + AccordionItemContent, + AccordionItemTrigger, +} from "@/components/ui/accordion" +import { Text } from "@chakra-ui/react" +import { Heart, ChartBar } from "lucide-react"; const events = [ { date: '2024-12-07', description: '글로벌 스타트업 학교 팀 1위', link: 'https://blog.imnyang.xyz/blog/gss' }, @@ -124,8 +133,8 @@ export default function Home() { } const SocialLink = ({ href, icon, tooltip }: SocialLinkProps) => ( - - + - - + + ); + const [value, setValue] = useState(["about"]) + return ( Loading...}>
@@ -156,23 +167,38 @@ export default function Home() {
-
- {events.map((event, index) => ( -
-

{event.date}

-
- {event.link && ( - - - {event.description} - - )} - {!event.link && {event.description}} -
-
- ))} -
+ + setValue(e.value)}> + {items.map((item) => ( + + + + {item.icon} + + {item.title} + + {item.content} + + ))} + +
); -} \ No newline at end of file +} + +const items = [ + { + value: "about", + icon: , + title: "About", + content: + "사람이래요.", + }, + { + value: "timeline", + icon: , + title: "Timeline", + content:
{events.map((event, index) => (

{event.date}

{event.link && ({event.description})}{!event.link && {event.description}}
))}
, + }, +] \ No newline at end of file diff --git a/src/app/timeline/page.tsx b/src/app/timeline/page.tsx index 4be3c84..e4ef328 100644 --- a/src/app/timeline/page.tsx +++ b/src/app/timeline/page.tsx @@ -1,13 +1,6 @@ -import Link from 'next/link'; -import Timeline from '../components/Timeline'; - -export default function Timeline_Page() { - return ( -
-
- 🏠 Back - -
-
- ); +import { redirect } from 'next/navigation' + + +export default async function TimelinePage( ) { + redirect('/') } \ No newline at end of file diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx new file mode 100644 index 0000000..d8763da --- /dev/null +++ b/src/components/ui/accordion.tsx @@ -0,0 +1,47 @@ +import { Accordion, HStack } from "@chakra-ui/react" +import * as React from "react" +import { LuChevronDown } from "react-icons/lu" + +interface AccordionItemTriggerProps extends Accordion.ItemTriggerProps { + indicatorPlacement?: "start" | "end" +} + +export const AccordionItemTrigger = React.forwardRef< + HTMLButtonElement, + AccordionItemTriggerProps +>(function AccordionItemTrigger(props, ref) { + const { children, indicatorPlacement = "end", ...rest } = props + return ( + + {indicatorPlacement === "start" && ( + + + + )} + + {children} + + {indicatorPlacement === "end" && ( + + + + )} + + ) +}) + +interface AccordionItemContentProps extends Accordion.ItemContentProps {} + +export const AccordionItemContent = React.forwardRef< + HTMLDivElement, + AccordionItemContentProps +>(function AccordionItemContent(props, ref) { + return ( + + + + ) +}) + +export const AccordionRoot = Accordion.Root +export const AccordionItem = Accordion.Item diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 0000000..cd84664 --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,74 @@ +"use client" + +import type { GroupProps, SlotRecipeProps } from "@chakra-ui/react" +import { Avatar as ChakraAvatar, Group } from "@chakra-ui/react" +import * as React from "react" + +type ImageProps = React.ImgHTMLAttributes + +export interface AvatarProps extends ChakraAvatar.RootProps { + name?: string + src?: string + srcSet?: string + loading?: ImageProps["loading"] + icon?: React.ReactElement + fallback?: React.ReactNode +} + +export const Avatar = React.forwardRef( + function Avatar(props, ref) { + const { name, src, srcSet, loading, icon, fallback, children, ...rest } = + props + return ( + + + {fallback} + + + {children} + + ) + }, +) + +interface AvatarFallbackProps extends ChakraAvatar.FallbackProps { + name?: string + icon?: React.ReactElement +} + +const AvatarFallback = React.forwardRef( + function AvatarFallback(props, ref) { + const { name, icon, children, ...rest } = props + return ( + + {children} + {name != null && children == null && <>{getInitials(name)}} + {name == null && children == null && ( + {icon} + )} + + ) + }, +) + +function getInitials(name: string) { + const names = name.trim().split(" ") + const firstName = names[0] != null ? names[0] : "" + const lastName = names.length > 1 ? names[names.length - 1] : "" + return firstName && lastName + ? `${firstName.charAt(0)}${lastName.charAt(0)}` + : firstName.charAt(0) +} + +interface AvatarGroupProps extends GroupProps, SlotRecipeProps<"avatar"> {} + +export const AvatarGroup = React.forwardRef( + function AvatarGroup(props, ref) { + const { size, variant, borderless, ...rest } = props + return ( + + + + ) + }, +) diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx new file mode 100644 index 0000000..21d5f4b --- /dev/null +++ b/src/components/ui/button.tsx @@ -0,0 +1,40 @@ +import type { ButtonProps as ChakraButtonProps } from "@chakra-ui/react" +import { + AbsoluteCenter, + Button as ChakraButton, + Span, + Spinner, +} from "@chakra-ui/react" +import * as React from "react" + +interface ButtonLoadingProps { + loading?: boolean + loadingText?: React.ReactNode +} + +export interface ButtonProps extends ChakraButtonProps, ButtonLoadingProps {} + +export const Button = React.forwardRef( + function Button(props, ref) { + const { loading, disabled, loadingText, children, ...rest } = props + return ( + + {loading && !loadingText ? ( + <> + + + + {children} + + ) : loading && loadingText ? ( + <> + + {loadingText} + + ) : ( + children + )} + + ) + }, +) diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx new file mode 100644 index 0000000..2a27c2f --- /dev/null +++ b/src/components/ui/checkbox.tsx @@ -0,0 +1,25 @@ +import { Checkbox as ChakraCheckbox } from "@chakra-ui/react" +import * as React from "react" + +export interface CheckboxProps extends ChakraCheckbox.RootProps { + icon?: React.ReactNode + inputProps?: React.InputHTMLAttributes + rootRef?: React.Ref +} + +export const Checkbox = React.forwardRef( + function Checkbox(props, ref) { + const { icon, children, inputProps, rootRef, ...rest } = props + return ( + + + + {icon || } + + {children != null && ( + {children} + )} + + ) + }, +) diff --git a/src/components/ui/close-button.tsx b/src/components/ui/close-button.tsx new file mode 100644 index 0000000..94af488 --- /dev/null +++ b/src/components/ui/close-button.tsx @@ -0,0 +1,17 @@ +import type { ButtonProps } from "@chakra-ui/react" +import { IconButton as ChakraIconButton } from "@chakra-ui/react" +import * as React from "react" +import { LuX } from "react-icons/lu" + +export type CloseButtonProps = ButtonProps + +export const CloseButton = React.forwardRef< + HTMLButtonElement, + CloseButtonProps +>(function CloseButton(props, ref) { + return ( + + {props.children ?? } + + ) +}) diff --git a/src/components/ui/color-mode.tsx b/src/components/ui/color-mode.tsx new file mode 100644 index 0000000..a34b968 --- /dev/null +++ b/src/components/ui/color-mode.tsx @@ -0,0 +1,67 @@ +"use client" + +import type { IconButtonProps } from "@chakra-ui/react" +import { ClientOnly, IconButton, Skeleton } from "@chakra-ui/react" +import { ThemeProvider, useTheme } from "next-themes" +import type { ThemeProviderProps } from "next-themes" +import * as React from "react" +import { LuMoon, LuSun } from "react-icons/lu" + +export interface ColorModeProviderProps extends ThemeProviderProps {} + +export function ColorModeProvider(props: ColorModeProviderProps) { + return ( + + ) +} + +export function useColorMode() { + const { resolvedTheme, setTheme } = useTheme() + const toggleColorMode = () => { + setTheme(resolvedTheme === "light" ? "dark" : "light") + } + return { + colorMode: resolvedTheme, + setColorMode: setTheme, + toggleColorMode, + } +} + +export function useColorModeValue(light: T, dark: T) { + const { colorMode } = useColorMode() + return colorMode === "light" ? light : dark +} + +export function ColorModeIcon() { + const { colorMode } = useColorMode() + return colorMode === "light" ? : +} + +interface ColorModeButtonProps extends Omit {} + +export const ColorModeButton = React.forwardRef< + HTMLButtonElement, + ColorModeButtonProps +>(function ColorModeButton(props, ref) { + const { toggleColorMode } = useColorMode() + return ( + }> + + + + + ) +}) diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx new file mode 100644 index 0000000..89d68a5 --- /dev/null +++ b/src/components/ui/dialog.tsx @@ -0,0 +1,62 @@ +import { Dialog as ChakraDialog, Portal } from "@chakra-ui/react" +import { CloseButton } from "./close-button" +import * as React from "react" + +interface DialogContentProps extends ChakraDialog.ContentProps { + portalled?: boolean + portalRef?: React.RefObject + backdrop?: boolean +} + +export const DialogContent = React.forwardRef< + HTMLDivElement, + DialogContentProps +>(function DialogContent(props, ref) { + const { + children, + portalled = true, + portalRef, + backdrop = true, + ...rest + } = props + + return ( + + {backdrop && } + + + {children} + + + + ) +}) + +export const DialogCloseTrigger = React.forwardRef< + HTMLButtonElement, + ChakraDialog.CloseTriggerProps +>(function DialogCloseTrigger(props, ref) { + return ( + + + {props.children} + + + ) +}) + +export const DialogRoot = ChakraDialog.Root +export const DialogFooter = ChakraDialog.Footer +export const DialogHeader = ChakraDialog.Header +export const DialogBody = ChakraDialog.Body +export const DialogBackdrop = ChakraDialog.Backdrop +export const DialogTitle = ChakraDialog.Title +export const DialogDescription = ChakraDialog.Description +export const DialogTrigger = ChakraDialog.Trigger +export const DialogActionTrigger = ChakraDialog.ActionTrigger diff --git a/src/components/ui/drawer.tsx b/src/components/ui/drawer.tsx new file mode 100644 index 0000000..ccb96c8 --- /dev/null +++ b/src/components/ui/drawer.tsx @@ -0,0 +1,52 @@ +import { Drawer as ChakraDrawer, Portal } from "@chakra-ui/react" +import { CloseButton } from "./close-button" +import * as React from "react" + +interface DrawerContentProps extends ChakraDrawer.ContentProps { + portalled?: boolean + portalRef?: React.RefObject + offset?: ChakraDrawer.ContentProps["padding"] +} + +export const DrawerContent = React.forwardRef< + HTMLDivElement, + DrawerContentProps +>(function DrawerContent(props, ref) { + const { children, portalled = true, portalRef, offset, ...rest } = props + return ( + + + + {children} + + + + ) +}) + +export const DrawerCloseTrigger = React.forwardRef< + HTMLButtonElement, + ChakraDrawer.CloseTriggerProps +>(function DrawerCloseTrigger(props, ref) { + return ( + + + + ) +}) + +export const DrawerTrigger = ChakraDrawer.Trigger +export const DrawerRoot = ChakraDrawer.Root +export const DrawerFooter = ChakraDrawer.Footer +export const DrawerHeader = ChakraDrawer.Header +export const DrawerBody = ChakraDrawer.Body +export const DrawerBackdrop = ChakraDrawer.Backdrop +export const DrawerDescription = ChakraDrawer.Description +export const DrawerTitle = ChakraDrawer.Title +export const DrawerActionTrigger = ChakraDrawer.ActionTrigger diff --git a/src/components/ui/field.tsx b/src/components/ui/field.tsx new file mode 100644 index 0000000..dd3b66f --- /dev/null +++ b/src/components/ui/field.tsx @@ -0,0 +1,33 @@ +import { Field as ChakraField } from "@chakra-ui/react" +import * as React from "react" + +export interface FieldProps extends Omit { + label?: React.ReactNode + helperText?: React.ReactNode + errorText?: React.ReactNode + optionalText?: React.ReactNode +} + +export const Field = React.forwardRef( + function Field(props, ref) { + const { label, children, helperText, errorText, optionalText, ...rest } = + props + return ( + + {label && ( + + {label} + + + )} + {children} + {helperText && ( + {helperText} + )} + {errorText && ( + {errorText} + )} + + ) + }, +) diff --git a/src/components/ui/input-group.tsx b/src/components/ui/input-group.tsx new file mode 100644 index 0000000..1ac30f3 --- /dev/null +++ b/src/components/ui/input-group.tsx @@ -0,0 +1,53 @@ +import type { BoxProps, InputElementProps } from "@chakra-ui/react" +import { Group, InputElement } from "@chakra-ui/react" +import * as React from "react" + +export interface InputGroupProps extends BoxProps { + startElementProps?: InputElementProps + endElementProps?: InputElementProps + startElement?: React.ReactNode + endElement?: React.ReactNode + children: React.ReactElement + startOffset?: InputElementProps["paddingStart"] + endOffset?: InputElementProps["paddingEnd"] +} + +export const InputGroup = React.forwardRef( + function InputGroup(props, ref) { + const { + startElement, + startElementProps, + endElement, + endElementProps, + children, + startOffset = "6px", + endOffset = "6px", + ...rest + } = props + + const child = + React.Children.only>(children) + + return ( + + {startElement && ( + + {startElement} + + )} + {React.cloneElement(child, { + ...(startElement && { + ps: `calc(var(--input-height) - ${startOffset})`, + }), + ...(endElement && { pe: `calc(var(--input-height) - ${endOffset})` }), + ...children.props, + })} + {endElement && ( + + {endElement} + + )} + + ) + }, +) diff --git a/src/components/ui/popover.tsx b/src/components/ui/popover.tsx new file mode 100644 index 0000000..3320659 --- /dev/null +++ b/src/components/ui/popover.tsx @@ -0,0 +1,59 @@ +import { Popover as ChakraPopover, Portal } from "@chakra-ui/react" +import { CloseButton } from "./close-button" +import * as React from "react" + +interface PopoverContentProps extends ChakraPopover.ContentProps { + portalled?: boolean + portalRef?: React.RefObject +} + +export const PopoverContent = React.forwardRef< + HTMLDivElement, + PopoverContentProps +>(function PopoverContent(props, ref) { + const { portalled = true, portalRef, ...rest } = props + return ( + + + + + + ) +}) + +export const PopoverArrow = React.forwardRef< + HTMLDivElement, + ChakraPopover.ArrowProps +>(function PopoverArrow(props, ref) { + return ( + + + + ) +}) + +export const PopoverCloseTrigger = React.forwardRef< + HTMLButtonElement, + ChakraPopover.CloseTriggerProps +>(function PopoverCloseTrigger(props, ref) { + return ( + + + + ) +}) + +export const PopoverTitle = ChakraPopover.Title +export const PopoverDescription = ChakraPopover.Description +export const PopoverFooter = ChakraPopover.Footer +export const PopoverHeader = ChakraPopover.Header +export const PopoverRoot = ChakraPopover.Root +export const PopoverBody = ChakraPopover.Body +export const PopoverTrigger = ChakraPopover.Trigger diff --git a/src/components/ui/provider.tsx b/src/components/ui/provider.tsx new file mode 100644 index 0000000..fd0331b --- /dev/null +++ b/src/components/ui/provider.tsx @@ -0,0 +1,15 @@ +"use client" + +import { ChakraProvider, defaultSystem } from "@chakra-ui/react" +import { + ColorModeProvider, + type ColorModeProviderProps, +} from "./color-mode" + +export function Provider(props: ColorModeProviderProps) { + return ( + + + + ) +} diff --git a/src/components/ui/radio.tsx b/src/components/ui/radio.tsx new file mode 100644 index 0000000..b3919d0 --- /dev/null +++ b/src/components/ui/radio.tsx @@ -0,0 +1,24 @@ +import { RadioGroup as ChakraRadioGroup } from "@chakra-ui/react" +import * as React from "react" + +export interface RadioProps extends ChakraRadioGroup.ItemProps { + rootRef?: React.Ref + inputProps?: React.InputHTMLAttributes +} + +export const Radio = React.forwardRef( + function Radio(props, ref) { + const { children, inputProps, rootRef, ...rest } = props + return ( + + + + {children && ( + {children} + )} + + ) + }, +) + +export const RadioGroup = ChakraRadioGroup.Root diff --git a/src/components/ui/slider.tsx b/src/components/ui/slider.tsx new file mode 100644 index 0000000..55a7283 --- /dev/null +++ b/src/components/ui/slider.tsx @@ -0,0 +1,82 @@ +import { Slider as ChakraSlider, For, HStack } from "@chakra-ui/react" +import * as React from "react" + +export interface SliderProps extends ChakraSlider.RootProps { + marks?: Array + label?: React.ReactNode + showValue?: boolean +} + +export const Slider = React.forwardRef( + function Slider(props, ref) { + const { marks: marksProp, label, showValue, ...rest } = props + const value = props.defaultValue ?? props.value + + const marks = marksProp?.map((mark) => { + if (typeof mark === "number") return { value: mark, label: undefined } + return mark + }) + + const hasMarkLabel = !!marks?.some((mark) => mark.label) + + return ( + + {label && !showValue && ( + {label} + )} + {label && showValue && ( + + {label} + + + )} + + + + + + + + + ) + }, +) + +function SliderThumbs(props: { value?: number[] }) { + const { value } = props + return ( + + {(_, index) => ( + + + + )} + + ) +} + +interface SliderMarksProps { + marks?: Array +} + +const SliderMarks = React.forwardRef( + function SliderMarks(props, ref) { + const { marks } = props + if (!marks?.length) return null + + return ( + + {marks.map((mark, index) => { + const value = typeof mark === "number" ? mark : mark.value + const label = typeof mark === "number" ? undefined : mark.label + return ( + + + {label} + + ) + })} + + ) + }, +) diff --git a/src/components/ui/tooltip.tsx b/src/components/ui/tooltip.tsx new file mode 100644 index 0000000..644c37c --- /dev/null +++ b/src/components/ui/tooltip.tsx @@ -0,0 +1,46 @@ +import { Tooltip as ChakraTooltip, Portal } from "@chakra-ui/react" +import * as React from "react" + +export interface TooltipProps extends ChakraTooltip.RootProps { + showArrow?: boolean + portalled?: boolean + portalRef?: React.RefObject + content: React.ReactNode + contentProps?: ChakraTooltip.ContentProps + disabled?: boolean +} + +export const Tooltip = React.forwardRef( + function Tooltip(props, ref) { + const { + showArrow, + children, + disabled, + portalled, + content, + contentProps, + portalRef, + ...rest + } = props + + if (disabled) return children + + return ( + + {children} + + + + {showArrow && ( + + + + )} + {content} + + + + + ) + }, +) diff --git a/tsconfig.json b/tsconfig.json index c133409..d0c16ec 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES2017", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, @@ -20,7 +20,7 @@ ], "paths": { "@/*": ["./src/*"] - } + }, }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"]