From f5c34e6b18bdc4a4fa31437d6c2569f03574d980 Mon Sep 17 00:00:00 2001 From: sumi-0011 Date: Mon, 6 Apr 2026 18:09:57 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20legacy=20Remix=20admin=20=EB=B0=8F=20@?= =?UTF-8?q?gitanimals/ui-panda=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - apps/admin(Remix) 디렉터리 제거, pnpm-workspace에서 apps/admin/* 제외 - packages/ui/panda(@gitanimals/ui-panda) 삭제 - apps/web에서 ui-panda·PandaCSS·shadow-panda 의존성 제거 - 루트 sb:panda 스크립트 제거, CLAUDE.md·ESLint 메시지 정리 - lockfile 갱신 Made-with: Cursor --- CLAUDE.md | 21 +- apps/admin/.eslintrc.cjs | 26 - apps/admin/.gitignore | 9 - apps/admin/README.md | 40 - apps/admin/app/QueryClientProvider.tsx | 22 - .../Auction/AllBuy/ProductTable.tsx | 228 - .../components/Auction/AllBuy/SortFilter.tsx | 72 - .../app/components/layout/Header/Header.tsx | 48 - .../app/components/layout/Header/Nav.tsx | 53 - .../app/components/layout/Header/NavItem.tsx | 59 - .../app/components/layout/Header/index.ts | 2 - .../layout/Header/menu.constants.ts | 31 - .../app/components/layout/Main/Heading.tsx | 18 - .../admin/app/components/layout/Main/Main.tsx | 12 - .../app/components/layout/Main/index.tsx | 4 - .../components/shop/drop-pet/ProductTable.tsx | 182 - apps/admin/app/components/ui/avatar/index.tsx | 10 - apps/admin/app/components/ui/badge/index.tsx | 6 - apps/admin/app/components/ui/button/index.tsx | 28 - apps/admin/app/components/ui/card/index.tsx | 9 - .../app/components/ui/checkbox/index.tsx | 24 - .../app/components/ui/dropdown-menu/index.tsx | 96 - apps/admin/app/components/ui/input/index.tsx | 6 - .../components/ui/navigation-menu/index.tsx | 53 - apps/admin/app/components/ui/table/index.tsx | 31 - apps/admin/app/components/ui/tabs/index.tsx | 11 - apps/admin/app/constants/outlink.ts | 1 - apps/admin/app/cookies.server.ts | 5 - apps/admin/app/entry.client.tsx | 18 - apps/admin/app/entry.server.tsx | 140 - apps/admin/app/index.css | 1 - apps/admin/app/root.tsx | 51 - apps/admin/app/routes/_index.tsx | 45 - apps/admin/app/routes/auction.all-buy.tsx | 110 - apps/admin/app/routes/auth-main.tsx | 50 - apps/admin/app/routes/auth.tsx | 37 - apps/admin/app/routes/shop.drop-pet.tsx | 32 - apps/admin/app/utils/token.ts | 13 - apps/admin/package.json | 60 - apps/admin/panda.config.ts | 33 - apps/admin/postcss.config.cjs | 5 - apps/admin/public/favicon.ico | Bin 16958 -> 0 bytes apps/admin/public/og-image.png | Bin 51769 -> 0 bytes apps/admin/tsconfig.json | 35 - apps/admin/vite.config.ts | 16 - apps/web/.eslintrc.json | 2 +- apps/web/package.json | 4 - package.json | 1 - packages/ui/panda/.eslintrc.js | 6 - packages/ui/panda/.storybook/globals.css | 37 - packages/ui/panda/.storybook/main.ts | 31 - packages/ui/panda/.storybook/preview.ts | 16 - packages/ui/panda/package.json | 54 - packages/ui/panda/panda.config.ts | 40 - packages/ui/panda/postcss.config.cjs | 5 - .../public/animal-card/card-back-A_PLUS.webp | Bin 17758 -> 0 bytes .../public/animal-card/card-back-B_MINUS.webp | Bin 17506 -> 0 bytes .../public/animal-card/card-back-EX.webp | Bin 17376 -> 0 bytes .../public/animal-card/card-back-S_PLUS.webp | Bin 19860 -> 0 bytes .../public/animal-card/card-bg-A_PLUS.webp | Bin 25402 -> 0 bytes .../public/animal-card/card-bg-B_MINUS.webp | Bin 2526 -> 0 bytes .../public/animal-card/card-bg-EVOLUTION.webp | Bin 33196 -> 0 bytes .../panda/public/animal-card/card-bg-EX.webp | Bin 45346 -> 0 bytes .../public/animal-card/card-bg-S_PLUS.webp | Bin 8210 -> 0 bytes .../animal-card/card-thumbnail-A_PLUS.webp | Bin 5404 -> 0 bytes .../animal-card/card-thumbnail-B_MINUS.webp | Bin 4704 -> 0 bytes .../animal-card/card-thumbnail-EVOLUTION.webp | Bin 5384 -> 0 bytes .../public/animal-card/card-thumbnail-EX.webp | Bin 5504 -> 0 bytes .../animal-card/card-thumbnail-S_PLUS.webp | Bin 36388 -> 0 bytes .../animation/SplitText/SplitText.stories.tsx | 50 - .../src/animation/SplitText/SplitText.tsx | 145 - .../ui/panda/src/animation/SplitText/index.ts | 1 - packages/ui/panda/src/animation/index.ts | 1 - .../src/components/Accordion/Accordion.tsx | 40 - .../panda/src/components/Accordion/index.ts | 1 - .../ui/panda/src/components/Banner/Banner.tsx | 64 - .../src/components/Banner/BannerPetSelect.tsx | 29 - .../src/components/Banner/LevelBanner.tsx | 31 - .../ui/panda/src/components/Banner/cva.ts | 69 - .../ui/panda/src/components/Banner/index.ts | 3 - .../src/components/Button/Button.stories.tsx | 31 - .../ui/panda/src/components/Button/Button.tsx | 5 - .../ui/panda/src/components/Button/cva.ts | 116 - .../ui/panda/src/components/Button/index.ts | 1 - .../ui/panda/src/components/Card/CardBack.tsx | 41 - .../src/components/Card/GameCard.stories.tsx | 146 - .../ui/panda/src/components/Card/GameCard.tsx | 172 - .../src/components/Card/NoRatingCard.tsx | 96 - .../ui/panda/src/components/Card/constants.ts | 26 - .../ui/panda/src/components/Card/index.ts | 3 - .../src/components/CheckBox/CheckBox.tsx | 35 - .../ui/panda/src/components/CheckBox/index.ts | 1 - .../components/Chip/CombineChip.stories.tsx | 49 - .../panda/src/components/Chip/CombineChip.tsx | 139 - .../ui/panda/src/components/Chip/index.ts | 1 - .../src/components/Dialog/CommonDialog.tsx | 27 - .../src/components/Dialog/Dialog.styles.ts | 113 - .../ui/panda/src/components/Dialog/Dialog.tsx | 107 - .../ui/panda/src/components/Dialog/index.ts | 3 - .../components/DropdownMenu/DropdownMenu.tsx | 136 - .../src/components/DropdownMenu/index.tsx | 1 - .../ui/panda/src/components/Label/Label.tsx | 5 - .../ui/panda/src/components/Label/index.tsx | 1 - .../src/components/ScrollArea/ScrollArea.tsx | 44 - .../panda/src/components/ScrollArea/index.ts | 1 - .../SearchBar/SearchBar.stories.tsx | 38 - .../src/components/SearchBar/SearchBar.tsx | 63 - .../panda/src/components/SearchBar/index.ts | 1 - .../src/components/Select/Select.stories.tsx | 55 - .../src/components/Select/Select.styles.ts | 45 - .../ui/panda/src/components/Select/Select.tsx | 84 - .../ui/panda/src/components/Select/index.ts | 6 - .../src/components/Skeleton/Skeleton.tsx | 4 - .../ui/panda/src/components/Skeleton/cva.tsx | 26 - .../ui/panda/src/components/Skeleton/index.ts | 2 - .../Textfield/TextField.stories.tsx | 38 - .../src/components/Textfield/TextField.tsx | 37 - .../components/Textfield/Textarea.stories.tsx | 31 - .../src/components/Textfield/Textarea.tsx | 21 - .../panda/src/components/Textfield/index.ts | 2 - .../components/Tooltip/Tooltip.stories.tsx | 60 - .../panda/src/components/Tooltip/Tooltip.tsx | 38 - .../ui/panda/src/components/Tooltip/index.ts | 1 - packages/ui/panda/src/components/index.ts | 15 - packages/ui/panda/src/index.ts | 5 - packages/ui/panda/src/theme/index.ts | 5 - packages/ui/panda/src/theme/keyframes.ts | 107 - packages/ui/panda/src/theme/media.ts | 12 - packages/ui/panda/src/theme/semanticTokens.ts | 36 - packages/ui/panda/src/theme/textStyles.ts | 16 - packages/ui/panda/src/theme/tokens.ts | 45 - packages/ui/panda/src/utilities/index.ts | 1 - packages/ui/panda/src/utilities/noSelect.ts | 23 - packages/ui/panda/tsconfig.json | 11 - packages/ui/panda/turbo/generators/config.ts | 30 - .../turbo/generators/templates/component.hbs | 8 - pnpm-lock.yaml | 4723 +---------------- pnpm-workspace.yaml | 1 - 138 files changed, 94 insertions(+), 9179 deletions(-) delete mode 100644 apps/admin/.eslintrc.cjs delete mode 100644 apps/admin/.gitignore delete mode 100644 apps/admin/README.md delete mode 100644 apps/admin/app/QueryClientProvider.tsx delete mode 100644 apps/admin/app/components/Auction/AllBuy/ProductTable.tsx delete mode 100644 apps/admin/app/components/Auction/AllBuy/SortFilter.tsx delete mode 100644 apps/admin/app/components/layout/Header/Header.tsx delete mode 100644 apps/admin/app/components/layout/Header/Nav.tsx delete mode 100644 apps/admin/app/components/layout/Header/NavItem.tsx delete mode 100644 apps/admin/app/components/layout/Header/index.ts delete mode 100644 apps/admin/app/components/layout/Header/menu.constants.ts delete mode 100644 apps/admin/app/components/layout/Main/Heading.tsx delete mode 100644 apps/admin/app/components/layout/Main/Main.tsx delete mode 100644 apps/admin/app/components/layout/Main/index.tsx delete mode 100644 apps/admin/app/components/shop/drop-pet/ProductTable.tsx delete mode 100644 apps/admin/app/components/ui/avatar/index.tsx delete mode 100644 apps/admin/app/components/ui/badge/index.tsx delete mode 100644 apps/admin/app/components/ui/button/index.tsx delete mode 100644 apps/admin/app/components/ui/card/index.tsx delete mode 100644 apps/admin/app/components/ui/checkbox/index.tsx delete mode 100644 apps/admin/app/components/ui/dropdown-menu/index.tsx delete mode 100644 apps/admin/app/components/ui/input/index.tsx delete mode 100644 apps/admin/app/components/ui/navigation-menu/index.tsx delete mode 100644 apps/admin/app/components/ui/table/index.tsx delete mode 100644 apps/admin/app/components/ui/tabs/index.tsx delete mode 100644 apps/admin/app/constants/outlink.ts delete mode 100644 apps/admin/app/cookies.server.ts delete mode 100644 apps/admin/app/entry.client.tsx delete mode 100644 apps/admin/app/entry.server.tsx delete mode 100644 apps/admin/app/index.css delete mode 100644 apps/admin/app/root.tsx delete mode 100644 apps/admin/app/routes/_index.tsx delete mode 100644 apps/admin/app/routes/auction.all-buy.tsx delete mode 100644 apps/admin/app/routes/auth-main.tsx delete mode 100644 apps/admin/app/routes/auth.tsx delete mode 100644 apps/admin/app/routes/shop.drop-pet.tsx delete mode 100644 apps/admin/app/utils/token.ts delete mode 100644 apps/admin/package.json delete mode 100644 apps/admin/panda.config.ts delete mode 100644 apps/admin/postcss.config.cjs delete mode 100644 apps/admin/public/favicon.ico delete mode 100644 apps/admin/public/og-image.png delete mode 100644 apps/admin/tsconfig.json delete mode 100644 apps/admin/vite.config.ts delete mode 100644 packages/ui/panda/.eslintrc.js delete mode 100644 packages/ui/panda/.storybook/globals.css delete mode 100644 packages/ui/panda/.storybook/main.ts delete mode 100644 packages/ui/panda/.storybook/preview.ts delete mode 100644 packages/ui/panda/package.json delete mode 100644 packages/ui/panda/panda.config.ts delete mode 100644 packages/ui/panda/postcss.config.cjs delete mode 100644 packages/ui/panda/public/animal-card/card-back-A_PLUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-back-B_MINUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-back-EX.webp delete mode 100644 packages/ui/panda/public/animal-card/card-back-S_PLUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-bg-A_PLUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-bg-B_MINUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-bg-EVOLUTION.webp delete mode 100644 packages/ui/panda/public/animal-card/card-bg-EX.webp delete mode 100644 packages/ui/panda/public/animal-card/card-bg-S_PLUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-thumbnail-A_PLUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-thumbnail-B_MINUS.webp delete mode 100644 packages/ui/panda/public/animal-card/card-thumbnail-EVOLUTION.webp delete mode 100644 packages/ui/panda/public/animal-card/card-thumbnail-EX.webp delete mode 100644 packages/ui/panda/public/animal-card/card-thumbnail-S_PLUS.webp delete mode 100644 packages/ui/panda/src/animation/SplitText/SplitText.stories.tsx delete mode 100644 packages/ui/panda/src/animation/SplitText/SplitText.tsx delete mode 100644 packages/ui/panda/src/animation/SplitText/index.ts delete mode 100644 packages/ui/panda/src/animation/index.ts delete mode 100644 packages/ui/panda/src/components/Accordion/Accordion.tsx delete mode 100644 packages/ui/panda/src/components/Accordion/index.ts delete mode 100644 packages/ui/panda/src/components/Banner/Banner.tsx delete mode 100644 packages/ui/panda/src/components/Banner/BannerPetSelect.tsx delete mode 100644 packages/ui/panda/src/components/Banner/LevelBanner.tsx delete mode 100644 packages/ui/panda/src/components/Banner/cva.ts delete mode 100644 packages/ui/panda/src/components/Banner/index.ts delete mode 100644 packages/ui/panda/src/components/Button/Button.stories.tsx delete mode 100644 packages/ui/panda/src/components/Button/Button.tsx delete mode 100644 packages/ui/panda/src/components/Button/cva.ts delete mode 100644 packages/ui/panda/src/components/Button/index.ts delete mode 100644 packages/ui/panda/src/components/Card/CardBack.tsx delete mode 100644 packages/ui/panda/src/components/Card/GameCard.stories.tsx delete mode 100644 packages/ui/panda/src/components/Card/GameCard.tsx delete mode 100644 packages/ui/panda/src/components/Card/NoRatingCard.tsx delete mode 100644 packages/ui/panda/src/components/Card/constants.ts delete mode 100644 packages/ui/panda/src/components/Card/index.ts delete mode 100644 packages/ui/panda/src/components/CheckBox/CheckBox.tsx delete mode 100644 packages/ui/panda/src/components/CheckBox/index.ts delete mode 100644 packages/ui/panda/src/components/Chip/CombineChip.stories.tsx delete mode 100644 packages/ui/panda/src/components/Chip/CombineChip.tsx delete mode 100644 packages/ui/panda/src/components/Chip/index.ts delete mode 100644 packages/ui/panda/src/components/Dialog/CommonDialog.tsx delete mode 100644 packages/ui/panda/src/components/Dialog/Dialog.styles.ts delete mode 100644 packages/ui/panda/src/components/Dialog/Dialog.tsx delete mode 100644 packages/ui/panda/src/components/Dialog/index.ts delete mode 100644 packages/ui/panda/src/components/DropdownMenu/DropdownMenu.tsx delete mode 100644 packages/ui/panda/src/components/DropdownMenu/index.tsx delete mode 100644 packages/ui/panda/src/components/Label/Label.tsx delete mode 100644 packages/ui/panda/src/components/Label/index.tsx delete mode 100644 packages/ui/panda/src/components/ScrollArea/ScrollArea.tsx delete mode 100644 packages/ui/panda/src/components/ScrollArea/index.ts delete mode 100644 packages/ui/panda/src/components/SearchBar/SearchBar.stories.tsx delete mode 100644 packages/ui/panda/src/components/SearchBar/SearchBar.tsx delete mode 100644 packages/ui/panda/src/components/SearchBar/index.ts delete mode 100644 packages/ui/panda/src/components/Select/Select.stories.tsx delete mode 100644 packages/ui/panda/src/components/Select/Select.styles.ts delete mode 100644 packages/ui/panda/src/components/Select/Select.tsx delete mode 100644 packages/ui/panda/src/components/Select/index.ts delete mode 100644 packages/ui/panda/src/components/Skeleton/Skeleton.tsx delete mode 100644 packages/ui/panda/src/components/Skeleton/cva.tsx delete mode 100644 packages/ui/panda/src/components/Skeleton/index.ts delete mode 100644 packages/ui/panda/src/components/Textfield/TextField.stories.tsx delete mode 100644 packages/ui/panda/src/components/Textfield/TextField.tsx delete mode 100644 packages/ui/panda/src/components/Textfield/Textarea.stories.tsx delete mode 100644 packages/ui/panda/src/components/Textfield/Textarea.tsx delete mode 100644 packages/ui/panda/src/components/Textfield/index.ts delete mode 100644 packages/ui/panda/src/components/Tooltip/Tooltip.stories.tsx delete mode 100644 packages/ui/panda/src/components/Tooltip/Tooltip.tsx delete mode 100644 packages/ui/panda/src/components/Tooltip/index.ts delete mode 100644 packages/ui/panda/src/components/index.ts delete mode 100644 packages/ui/panda/src/index.ts delete mode 100644 packages/ui/panda/src/theme/index.ts delete mode 100644 packages/ui/panda/src/theme/keyframes.ts delete mode 100644 packages/ui/panda/src/theme/media.ts delete mode 100644 packages/ui/panda/src/theme/semanticTokens.ts delete mode 100644 packages/ui/panda/src/theme/textStyles.ts delete mode 100644 packages/ui/panda/src/theme/tokens.ts delete mode 100644 packages/ui/panda/src/utilities/index.ts delete mode 100644 packages/ui/panda/src/utilities/noSelect.ts delete mode 100644 packages/ui/panda/tsconfig.json delete mode 100644 packages/ui/panda/turbo/generators/config.ts delete mode 100644 packages/ui/panda/turbo/generators/templates/component.hbs diff --git a/CLAUDE.md b/CLAUDE.md index 49ed522c..c621a3e6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,10 +10,10 @@ GitAnimals is a monorepo that allows users to raise virtual pets through GitHub **Monorepo Structure:** - `apps/web` - Next.js 14 web application (main frontend) -- `apps/admin` - Remix admin dashboard +- `apps/admin-main` - Admin dashboard (Vite) - `apps/webview` - Vite + React Router webview for mobile integration - `apps/webview-history` - Legacy Next.js webview (being migrated) -- `packages/ui/panda` - Component library using PandaCSS +- `packages/ui/tailwind` - Component library (Tailwind + Radix) - `packages/ui/icon` - Icon components - `packages/ui/token` - Design tokens - `packages/api` - Shared API client with interceptors @@ -52,7 +52,7 @@ src/ ```bash # Development servers pnpm dev:web # Start web app dev server (Next.js) -pnpm dev:admin # Start admin app dev server (Remix) +pnpm dev:admin # Start admin app dev server (admin-main) pnpm dev:webview # Start webview dev server (Vite) # Build commands @@ -66,13 +66,12 @@ pnpm lint # Lint all workspaces pnpm format # Format code with Prettier # UI Development -pnpm sb:panda # Start Storybook for UI components +pnpm sb:tailwind # Start Storybook for @gitanimals/ui-tailwind ``` **Workspace-specific commands:** ```bash # Web app (apps/web) -pnpm --filter @gitanimals/web prepare # PandaCSS codegen pnpm --filter @gitanimals/web type-check # TypeScript validation pnpm --filter @gitanimals/web lint:fix # Fix ESLint issues @@ -80,8 +79,8 @@ pnpm --filter @gitanimals/web lint:fix # Fix ESLint issues pnpm --filter @gitanimals/webview dev # Vite dev server on port 3000 pnpm --filter @gitanimals/webview type-check # TypeScript validation -# UI components (packages/ui/panda) -pnpm --filter @gitanimals/ui-panda storybook # Start Storybook +# UI components (packages/ui/tailwind) +pnpm --filter @gitanimals/ui-tailwind storybook # Start Storybook (port 6002) ``` ## Code Patterns & Conventions @@ -178,14 +177,14 @@ pnpm --filter @gitanimals/ui-panda storybook # Start Storybook - `turbo.json` - Build pipeline configuration - `pnpm-workspace.yaml` - Workspace definition - `apps/web/ARCHITECTURE.md` - **FSD 아키텍처 상세 가이드 (필독)** -- `packages/ui/panda/src/theme/` - Design system tokens and styles +- `packages/ui/tailwind/src/theme/` - Design system tokens (Tailwind preset) ## Build Pipeline Dependencies The build system has specific dependency chains: -- Most builds depend on `^build` and `^prepare` -- `prepare` tasks generate PandaCSS styled-system -- Admin uses different output patterns (dist/**) vs others (.next/**) +- Most builds depend on `^build` and `^prepare` where applicable +- Some packages use `prepare` for codegen (e.g. legacy styled-system); web/webview rely on Tailwind +- Admin-main and webview use `dist/**`; web uses `.next/**` ## Notes for Development diff --git a/apps/admin/.eslintrc.cjs b/apps/admin/.eslintrc.cjs deleted file mode 100644 index 69f9fe0d..00000000 --- a/apps/admin/.eslintrc.cjs +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This is intended to be a basic starting point for linting in your app. - * It relies on recommended configs out of the box for simplicity, but you can - * and should modify this configuration to best suit your team's needs. - */ - -/** @type {import('eslint').Linter.Config} */ -module.exports = { - root: true, - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, - }, - env: { - browser: true, - commonjs: true, - es6: true, - }, - ignorePatterns: ['!**/.server', '!**/.client'], - - extends: ['@gitanimals/eslint-config/library.js'], - parser: '@typescript-eslint/parser', -}; diff --git a/apps/admin/.gitignore b/apps/admin/.gitignore deleted file mode 100644 index c78de0eb..00000000 --- a/apps/admin/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules - -/.cache -/build -.env - -## Panda -styled-system -styled-system-studio \ No newline at end of file diff --git a/apps/admin/README.md b/apps/admin/README.md deleted file mode 100644 index 6c4d2168..00000000 --- a/apps/admin/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Welcome to Remix! - -- 📖 [Remix docs](https://remix.run/docs) - -## Development - -Run the dev server: - -```shellscript -npm run dev -``` - -## Deployment - -First, build your app for production: - -```sh -npm run build -``` - -Then run the app in production mode: - -```sh -npm start -``` - -Now you'll need to pick a host to deploy it to. - -### DIY - -If you're familiar with deploying Node applications, the built-in Remix app server is production-ready. - -Make sure to deploy the output of `npm run build` - -- `build/server` -- `build/client` - -## Styling - -This template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever css framework you prefer. See the [Vite docs on css](https://vitejs.dev/guide/features.html#css) for more information. diff --git a/apps/admin/app/QueryClientProvider.tsx b/apps/admin/app/QueryClientProvider.tsx deleted file mode 100644 index 33d84158..00000000 --- a/apps/admin/app/QueryClientProvider.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import type { PropsWithChildren } from 'react'; -import { useState } from 'react'; -import type { QueryClientConfig } from '@tanstack/react-query'; -import { QueryClient, QueryClientProvider as BaseQueryClientProvider } from '@tanstack/react-query'; - -const queryClientOption: QueryClientConfig = { - defaultOptions: { - queries: { - retry: false, - refetchOnMount: false, - refetchOnWindowFocus: false, - }, - }, -}; - -const QueryClientProvider = ({ children }: PropsWithChildren) => { - const [queryClient] = useState(() => new QueryClient(queryClientOption)); - - return {children}; -}; - -export default QueryClientProvider; diff --git a/apps/admin/app/components/Auction/AllBuy/ProductTable.tsx b/apps/admin/app/components/Auction/AllBuy/ProductTable.tsx deleted file mode 100644 index 84cbb857..00000000 --- a/apps/admin/app/components/Auction/AllBuy/ProductTable.tsx +++ /dev/null @@ -1,228 +0,0 @@ -import * as React from 'react'; -import { - ColumnDef, - ColumnFiltersState, - SortingState, - VisibilityState, - flexRender, - getCoreRowModel, - getFilteredRowModel, - getPaginationRowModel, - getSortedRowModel, - useReactTable, -} from '@tanstack/react-table'; -import { ChevronDown } from 'lucide-react'; -import { Button } from '@/components/ui/button'; -import { Checkbox } from '@/components/ui/checkbox'; -import { - DropdownMenu, - DropdownMenuCheckboxItem, - DropdownMenuContent, - DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; -import { STATIC_IMAGE_URL } from '@/constants/outlink'; -import { BuyProductRequest, buyProductWithToken, Product } from '@gitanimals/api'; -import { Box, Flex } from '_panda/jsx'; -import { icon } from '_panda/recipes'; -import { getToken } from '@/utils/token'; -import { useMutation } from '@tanstack/react-query'; -import { token } from '_panda/tokens'; - -function ProductBuyButton({ productId }: { productId: string }) { - const { mutate, isSuccess, isPending } = useMutation({ - mutationFn: (request: BuyProductRequest) => { - const token = getToken(); - if (!token) throw new Error('Token not found'); - - return buyProductWithToken({ ...request, token }); - }, - }); - const onClick = async () => { - mutate({ productId }); - }; - - return ( - - ); -} - -export const columns: ColumnDef[] = [ - { - id: 'select', - header: ({ table }) => ( - table.toggleAllPageRowsSelected(!!value)} - aria-label="Select all" - /> - ), - cell: ({ row }) => ( - row.toggleSelected(!!value)} - aria-label="Select row" - /> - ), - enableSorting: false, - enableHiding: false, - }, - - { - // persona - accessorKey: 'personaType', - accessorFn: (info) => info.persona.personaType, - header: 'Image', - cell: ({ row }) => ( -
- {row.getValue('personaType')} -
- ), - }, - { - accessorKey: 'personaLevel', - accessorFn: (info) => info.persona.personaLevel, - header: 'Level', - cell: ({ row }) =>
level {row.getValue('personaLevel')}
, - }, - { - accessorKey: 'price', - header: 'Price', - cell: ({ row }) =>
{row.getValue('price')}
, - }, - { - accessorKey: 'paymentState', - header: 'Payment State', - cell: ({ row }) =>
{row.getValue('paymentState')}
, - }, - { - accessorKey: 'actions', - header: () => Actions, - cell: ({ row }) => , - }, -]; - -function ProductDataTable({ data }: { data: Product[] }) { - const [sorting, setSorting] = React.useState([]); - const [columnFilters, setColumnFilters] = React.useState([]); - const [columnVisibility, setColumnVisibility] = React.useState({}); - const [rowSelection, setRowSelection] = React.useState({}); - - const table = useReactTable({ - data, - columns, - onSortingChange: setSorting, - onColumnFiltersChange: setColumnFilters, - getCoreRowModel: getCoreRowModel(), - getPaginationRowModel: getPaginationRowModel(), - getSortedRowModel: getSortedRowModel(), - getFilteredRowModel: getFilteredRowModel(), - onColumnVisibilityChange: setColumnVisibility, - onRowSelectionChange: setRowSelection, - state: { - sorting, - columnFilters, - columnVisibility, - rowSelection, - }, - initialState: { - pagination: { - pageSize: 5, - }, - }, - }); - - return ( - - - - - - - - {table - .getAllColumns() - .filter((column) => column.getCanHide()) - .map((column) => { - return ( - column.toggleVisibility(!!value)} - > - {column.id} - - ); - })} - - - - - - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} - - ); - })} - - ))} - - - {table.getRowModel().rows?.length ? ( - table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - {flexRender(cell.column.columnDef.cell, cell.getContext())} - ))} - - )) - ) : ( - - - No results. - - - )} - -
-
- - - {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) - selected. - - - - - - -
- ); -} - -export default ProductDataTable; diff --git a/apps/admin/app/components/Auction/AllBuy/SortFilter.tsx b/apps/admin/app/components/Auction/AllBuy/SortFilter.tsx deleted file mode 100644 index 05451d70..00000000 --- a/apps/admin/app/components/Auction/AllBuy/SortFilter.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { Link } from '@remix-run/react'; -import { GetProductsRequest } from '@gitanimals/api'; -import { Button } from '@/components/ui/button'; -import { Grid } from '_panda/jsx'; - -const SORT_OPTION: { - label: string; - options?: Partial; -}[] = [ - { - label: '오래된 순', - options: { sortDirection: 'ASC', orderType: 'CREATED_AT' }, - }, - { - label: '가격 낮은 순', - options: { orderType: 'PRICE', sortDirection: 'ASC' }, - }, - { - label: '가격 높은 순', - options: { orderType: 'PRICE', sortDirection: 'DESC' }, - }, -]; - -const PAGE_SIZE = [20, 40, 100]; - -function SortFilter({ tableParams }: { tableParams: Record }) { - return ( - - {SORT_OPTION.map((option) => ( - - - - ))} - - {PAGE_SIZE.map((size) => ( - - - - ))} - - ); -} - -export default SortFilter; - -const getNewTableUrl = ({ - baseUrl, - newParams, - oldParams = {}, -}: { - baseUrl: string; - oldParams?: Record; - newParams: Record; -}) => { - let params = new URLSearchParams(); - - for (const [key, value] of Object.entries({ ...oldParams, ...newParams })) { - params.append(key, String(value)); - } - - return `${baseUrl}?${params.toString()}`; -}; diff --git a/apps/admin/app/components/layout/Header/Header.tsx b/apps/admin/app/components/layout/Header/Header.tsx deleted file mode 100644 index 87a1e20a..00000000 --- a/apps/admin/app/components/layout/Header/Header.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { css } from '_panda/css'; -import Nav from './Nav'; -import { Avatar, AvatarImage } from '@radix-ui/react-avatar'; - -const PROFILE_IMG = 'https://avatars.githubusercontent.com/u/171903401?s=200&v=4'; -function Header() { - return ( -
-
- ); -} - -export default Header; - -const containerStyle = css({ - h: '16px', - bg: 'background', - shadow: 'md', - zIndex: 'sticky', - px: '4px', - py: '3px', - - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between', -}); - -const avatarStyle = css({ - overflow: 'hidden', - borderRadius: '50%', - height: '100%', - background: 'muted', - '& span': { - height: '100%', - display: 'block', - '& img': { - borderRadius: '50%', - height: '100%', - width: 'auto', - }, - }, -}); diff --git a/apps/admin/app/components/layout/Header/Nav.tsx b/apps/admin/app/components/layout/Header/Nav.tsx deleted file mode 100644 index 251879c0..00000000 --- a/apps/admin/app/components/layout/Header/Nav.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, -} from '@/components/ui/navigation-menu'; -import ListItem from './NavItem'; -import { css } from '_panda/css'; -import { MENU } from './menu.constants'; - -export default function Example() { - return ( - - - - - Home - - - {MENU.map((menu) => ( - - {menu.title} - -
    - {menu.items.map((component) => ( - - {component.description} - - ))} -
-
-
- ))} -
-
- ); -} - -const listStyle = css({ - display: 'flex', - flexDirection: 'column', - gap: '3px', - p: '6px', - md: { - w: '400px', - }, - lg: { - w: '500px', - gridTemplateColumns: '.75fr 1fr', - }, -}); diff --git a/apps/admin/app/components/layout/Header/NavItem.tsx b/apps/admin/app/components/layout/Header/NavItem.tsx deleted file mode 100644 index 6f3d2573..00000000 --- a/apps/admin/app/components/layout/Header/NavItem.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { NavigationMenuLink } from '@radix-ui/react-navigation-menu'; -import { cx, css } from '_panda/css'; -import { forwardRef, ElementRef, ComponentPropsWithoutRef } from 'react'; - -const ListItem = forwardRef, ComponentPropsWithoutRef<'a'>>( - ({ className, title, children, ...props }, ref) => { - return ( -
  • - - -
    {title}
    -

    {children}

    -
    -
    -
  • - ); - }, -); - -ListItem.displayName = 'ListItem'; - -export default ListItem; - -const anchorStyle = css({ - display: 'block', - userSelect: 'none', - spaceY: '1', - rounded: 'md', - p: '3', - leading: 'none', - textDecoration: 'none', - outline: 'none', - transition: 'colors', - _hover: { - bg: 'accent', - color: 'accent.foreground', - }, - _focus: { - bg: 'accent', - color: 'accent.foreground', - }, -}); - -const titleStyle = css({ - textStyle: 'sm', - fontWeight: 'medium', - leading: 'none', -}); - -const descriptionStyle = css({ - lineClamp: '2', - textStyle: 'sm', - leading: 'snug', - color: 'muted.foreground', -}); diff --git a/apps/admin/app/components/layout/Header/index.ts b/apps/admin/app/components/layout/Header/index.ts deleted file mode 100644 index 6a0251df..00000000 --- a/apps/admin/app/components/layout/Header/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Header from './Header'; -export { Header }; diff --git a/apps/admin/app/components/layout/Header/menu.constants.ts b/apps/admin/app/components/layout/Header/menu.constants.ts deleted file mode 100644 index 44cdf0ce..00000000 --- a/apps/admin/app/components/layout/Header/menu.constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -interface MenuItem { - title: string; - href: string; - description: string; -} - -export const MENU: { - title: string; - items: MenuItem[]; -}[] = [ - { - title: '경매장', - items: [ - { - title: '경매장 일괄 구매', - href: '/auction/all-buy', - description: '시장경제를 위해 경매장에서 일괄 구매할 수 있습니다.', - }, - ], - }, - { - title: '상점', - items: [ - { - title: '펫 판매', - href: '/shop/drop-pet', - description: '펫을 판매할 수 있습니다.', - }, - ], - }, -]; diff --git a/apps/admin/app/components/layout/Main/Heading.tsx b/apps/admin/app/components/layout/Main/Heading.tsx deleted file mode 100644 index bb8ae24a..00000000 --- a/apps/admin/app/components/layout/Main/Heading.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { cva } from '_panda/css'; -import { styled } from '_panda/jsx'; - -const mainHeadingRecipe = cva({ - base: { - display: 'block', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap', - width: '100%', - maxWidth: '100%', - textStyle: 'glyph24.bold', - }, -}); - -const MainHeading = styled('h1', mainHeadingRecipe); - -export default MainHeading; diff --git a/apps/admin/app/components/layout/Main/Main.tsx b/apps/admin/app/components/layout/Main/Main.tsx deleted file mode 100644 index 16517232..00000000 --- a/apps/admin/app/components/layout/Main/Main.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { css } from '_panda/css'; -import React, { PropsWithChildren } from 'react'; - -function Main({ children }: PropsWithChildren<{}>) { - return
    {children}
    ; -} - -export default Main; - -const containerStyle = css({ - p: '8px', -}); diff --git a/apps/admin/app/components/layout/Main/index.tsx b/apps/admin/app/components/layout/Main/index.tsx deleted file mode 100644 index 05fcce78..00000000 --- a/apps/admin/app/components/layout/Main/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import Main from './Main'; -import MainHeading from './Heading'; - -export { Main, MainHeading }; diff --git a/apps/admin/app/components/shop/drop-pet/ProductTable.tsx b/apps/admin/app/components/shop/drop-pet/ProductTable.tsx deleted file mode 100644 index 5c5477ac..00000000 --- a/apps/admin/app/components/shop/drop-pet/ProductTable.tsx +++ /dev/null @@ -1,182 +0,0 @@ -import * as React from 'react'; -import { - ColumnDef, - ColumnFiltersState, - SortingState, - VisibilityState, - flexRender, - getCoreRowModel, - getFilteredRowModel, - getPaginationRowModel, - getSortedRowModel, - useReactTable, -} from '@tanstack/react-table'; -import { Button } from '@/components/ui/button'; -import { Checkbox } from '@/components/ui/checkbox'; - -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; -import { STATIC_IMAGE_URL } from '@/constants/outlink'; -import { BuyProductRequest, buyProductWithToken, Persona } from '@gitanimals/api'; -import { Box, Flex } from '_panda/jsx'; -import { getToken } from '@/utils/token'; -import { useMutation } from '@tanstack/react-query'; - -function ProductBuyButton({ productId }: { productId: string }) { - const { mutate, isSuccess, isPending } = useMutation({ - mutationFn: (request: BuyProductRequest) => { - const token = getToken(); - if (!token) throw new Error('Token not found'); - - return buyProductWithToken({ ...request, token }); - }, - }); - - const onClick = async () => { - mutate({ productId }); - }; - - return ( - - ); -} - -export const columns: ColumnDef[] = [ - { - id: 'select', - header: ({ table }) => ( - table.toggleAllPageRowsSelected(!!value)} - aria-label="Select all" - /> - ), - cell: ({ row }) => ( - row.toggleSelected(!!value)} - aria-label="Select row" - /> - ), - enableSorting: false, - enableHiding: false, - }, - { - // persona - accessorKey: 'type', - header: 'type', - cell: ({ row }) => ( -
    - {row.getValue('type')} -
    - ), - }, - { - accessorKey: 'level', - header: 'level', - cell: ({ row }) =>
    level {row.getValue('level')}
    , - }, - { - accessorKey: 'dropRate', - header: 'dropRate', - cell: ({ row }) =>
    {row.getValue('dropRate')}
    , - }, - { - accessorKey: 'actions', - header: () => Actions, - cell: ({ row }) => , - }, -]; - -function ProductDataTable({ data }: { data: Persona[] }) { - const [sorting, setSorting] = React.useState([]); - const [columnFilters, setColumnFilters] = React.useState([]); - const [columnVisibility, setColumnVisibility] = React.useState({}); - const [rowSelection, setRowSelection] = React.useState({}); - - const table = useReactTable({ - data, - columns, - onSortingChange: setSorting, - onColumnFiltersChange: setColumnFilters, - getCoreRowModel: getCoreRowModel(), - getPaginationRowModel: getPaginationRowModel(), - getSortedRowModel: getSortedRowModel(), - getFilteredRowModel: getFilteredRowModel(), - onColumnVisibilityChange: setColumnVisibility, - onRowSelectionChange: setRowSelection, - state: { - sorting, - columnFilters, - columnVisibility, - rowSelection, - }, - initialState: { - pagination: { - pageSize: 5, - }, - }, - }); - - return ( - - - - - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} - - ); - })} - - ))} - - - {table.getRowModel().rows?.length ? ( - table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - {flexRender(cell.column.columnDef.cell, cell.getContext())} - ))} - - )) - ) : ( - - - No results. - - - )} - -
    -
    - - - {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) - selected. - - - - - - -
    - ); -} - -export default ProductDataTable; diff --git a/apps/admin/app/components/ui/avatar/index.tsx b/apps/admin/app/components/ui/avatar/index.tsx deleted file mode 100644 index 4b2ef4a2..00000000 --- a/apps/admin/app/components/ui/avatar/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import * as AvatarPrimitive from '@radix-ui/react-avatar'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { avatar } from '_panda/recipes'; - -const { withProvider, withContext } = createStyleContext(avatar); - -export const Avatar = withProvider(styled(AvatarPrimitive.Root), 'root'); -export const AvatarImage = withContext(styled(AvatarPrimitive.Image), 'image'); -export const AvatarFallback = withContext(styled(AvatarPrimitive.Fallback), 'fallback'); diff --git a/apps/admin/app/components/ui/badge/index.tsx b/apps/admin/app/components/ui/badge/index.tsx deleted file mode 100644 index 49df8613..00000000 --- a/apps/admin/app/components/ui/badge/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { HTMLStyledProps, styled } from '_panda/jsx'; -import { badge } from '_panda/recipes'; - -export const Badge = styled('div', badge); - -export type BadgeProps = HTMLStyledProps; diff --git a/apps/admin/app/components/ui/button/index.tsx b/apps/admin/app/components/ui/button/index.tsx deleted file mode 100644 index 2694e52b..00000000 --- a/apps/admin/app/components/ui/button/index.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { styled } from '_panda/jsx'; -import { button, icon } from '_panda/recipes'; -import { HTMLStyledProps } from '_panda/types'; -import * as React from 'react'; -import { Slot } from '@radix-ui/react-slot'; -import { cx, css } from '_panda/css'; -import { Loader2 } from 'lucide-react'; - -const BaseButton = React.forwardRef< - HTMLButtonElement, - React.ButtonHTMLAttributes & { asChild?: boolean; children?: React.ReactNode; isLoading?: boolean } ->(({ asChild = false, isLoading = false, ...props }, ref) => { - const Comp = asChild ? Slot : 'button'; - - if (isLoading) { - return ( - - - Loading... - - ); - } - return ; -}); -BaseButton.displayName = 'Button'; - -export const Button = styled(BaseButton, button); -export type ButtonProps = HTMLStyledProps; diff --git a/apps/admin/app/components/ui/card/index.tsx b/apps/admin/app/components/ui/card/index.tsx deleted file mode 100644 index d754135d..00000000 --- a/apps/admin/app/components/ui/card/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { styled } from '_panda/jsx'; -import { card, cardHeader, cardTitle, cardDescription, cardContent, cardFooter } from '_panda/recipes'; - -export const Card = styled('div', card); -export const CardHeader = styled('div', cardHeader); -export const CardTitle = styled('h3', cardTitle); -export const CardDescription = styled('p', cardDescription); -export const CardContent = styled('div', cardContent); -export const CardFooter = styled('div', cardFooter); diff --git a/apps/admin/app/components/ui/checkbox/index.tsx b/apps/admin/app/components/ui/checkbox/index.tsx deleted file mode 100644 index b7487468..00000000 --- a/apps/admin/app/components/ui/checkbox/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from 'react'; -import * as CheckboxPrimitive from '@radix-ui/react-checkbox'; -import { cx } from '_panda/css'; -import { styled } from '_panda/jsx'; -import { checkbox, icon } from '_panda/recipes'; -import { Check } from 'lucide-react'; - -const BaseCheckbox = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => { - const styles = checkbox(); - - return ( - - - - - - ); -}); -BaseCheckbox.displayName = CheckboxPrimitive.Root.displayName; - -export const Checkbox = styled(BaseCheckbox); diff --git a/apps/admin/app/components/ui/dropdown-menu/index.tsx b/apps/admin/app/components/ui/dropdown-menu/index.tsx deleted file mode 100644 index fa979641..00000000 --- a/apps/admin/app/components/ui/dropdown-menu/index.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import * as React from 'react'; -import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; -import { Check, ChevronRight, Circle } from 'lucide-react'; -import { cx, css } from '_panda/css'; -import { styled } from '_panda/jsx'; -import { dropdownMenu, icon } from '_panda/recipes'; -import { createStyleContext } from '@shadow-panda/style-context'; - -const { withProvider, withContext } = createStyleContext(dropdownMenu); - -const SubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, children, ...props }, ref) => ( - - {children} - - -)); -SubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName; - -const Content = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ sideOffset = 4, ...props }, ref) => ( - - - -)); -Content.displayName = DropdownMenuPrimitive.Content.displayName; - -const Item = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, ...props }, ref) => ( - -)); -Item.displayName = DropdownMenuPrimitive.Item.displayName; - -const ItemIndicator = withContext(styled(DropdownMenuPrimitive.ItemIndicator), 'itemIndicator'); - -const CheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - {children} - -)); -CheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName; - -const RadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - {children} - -)); -RadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; - -const Label = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, ...props }, ref) => ( - -)); -Label.displayName = DropdownMenuPrimitive.Label.displayName; - -export const DropdownMenu = withProvider(styled(DropdownMenuPrimitive.Root), 'root'); -export const DropdownMenuTrigger = withContext(styled(DropdownMenuPrimitive.Trigger), 'trigger'); -export const DropdownMenuGroup = withContext(styled(DropdownMenuPrimitive.Group), 'group'); -export const DropdownMenuPortal = withContext(styled(DropdownMenuPrimitive.Portal), 'portal'); -export const DropdownMenuSub = withContext(styled(DropdownMenuPrimitive.Sub), 'sub'); -export const DropdownMenuRadioGroup = withContext(styled(DropdownMenuPrimitive.RadioGroup), 'radioGroup'); -export const DropdownMenuSubTrigger = withContext(styled(SubTrigger), 'subTrigger'); -export const DropdownMenuSubContent = withContext(styled(DropdownMenuPrimitive.SubContent), 'subContent'); -export const DropdownMenuContent = withContext(styled(Content), 'content'); -export const DropdownMenuItem = withContext(styled(Item), 'item'); -export const DropdownMenuCheckboxItem = withContext(styled(CheckboxItem), 'checkboxItem'); -export const DropdownMenuRadioItem = withContext(styled(RadioItem), 'radioItem'); -export const DropdownMenuLabel = withContext(styled(Label), 'label'); -export const DropdownMenuSeparator = withContext(styled(DropdownMenuPrimitive.Separator), 'separator'); -export const DropdownMenuShortcut = withContext(styled('span'), 'shortcut'); diff --git a/apps/admin/app/components/ui/input/index.tsx b/apps/admin/app/components/ui/input/index.tsx deleted file mode 100644 index f1bb431a..00000000 --- a/apps/admin/app/components/ui/input/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { styled } from '_panda/jsx'; -import { input } from '_panda/recipes'; -import { HTMLStyledProps } from '_panda/types'; - -export const Input = styled('input', input); -export type InputProps = HTMLStyledProps; diff --git a/apps/admin/app/components/ui/navigation-menu/index.tsx b/apps/admin/app/components/ui/navigation-menu/index.tsx deleted file mode 100644 index 947880db..00000000 --- a/apps/admin/app/components/ui/navigation-menu/index.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import * as React from 'react'; -import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { cx } from '_panda/css'; -import { styled } from '_panda/jsx'; -import { navigationMenu } from '_panda/recipes'; -import { ChevronDown } from 'lucide-react'; - -const { withProvider, withContext } = createStyleContext(navigationMenu); - -const BaseNavigationMenu = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - {children} - - -)); -BaseNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName; - -const BaseNavigationMenuTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - {children} -)); -BaseNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName; - -const ViewportWrapper = withContext(styled('div'), 'viewportWrapper'); - -const BaseNavigationMenuViewport = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)); -BaseNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName; - -export const NavigationMenu = withProvider(styled(BaseNavigationMenu), 'root'); -export const NavigationMenuList = withContext(styled(NavigationMenuPrimitive.List), 'list'); -export const NavigationMenuItem = withContext(styled(NavigationMenuPrimitive.Item), 'item'); -export const NavigationMenuTrigger = withContext(styled(BaseNavigationMenuTrigger), 'trigger'); -export const NavigationMenuContent = withContext(styled(NavigationMenuPrimitive.Content), 'content'); -export const NavigationMenuLink = withContext(styled(NavigationMenuPrimitive.Link), 'link'); -export const NavigationMenuViewport = withContext(styled(BaseNavigationMenuViewport), 'viewport'); -export const NavigationMenuIndicator = withContext(styled(NavigationMenuPrimitive.Indicator), 'indicator', { - children:
    , -}); diff --git a/apps/admin/app/components/ui/table/index.tsx b/apps/admin/app/components/ui/table/index.tsx deleted file mode 100644 index 5323cb6e..00000000 --- a/apps/admin/app/components/ui/table/index.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { styled } from '_panda/jsx'; -import { - tableContainer, - table, - tableHeader, - tableBody, - tableFooter, - tableHead, - tableRow, - tableCell, - tableCaption, -} from '_panda/recipes'; -import { forwardRef, HTMLAttributes } from 'react'; - -const TableContainer = styled('div', tableContainer); - -const BaseTable = forwardRef>((props, ref) => ( - - - -)); -BaseTable.displayName = 'Table'; - -export const Table = styled(BaseTable, table); -export const TableHeader = styled('thead', tableHeader); -export const TableBody = styled('tbody', tableBody); -export const TableFooter = styled('tfoot', tableFooter); -export const TableHead = styled('th', tableHead); -export const TableRow = styled('tr', tableRow); -export const TableCell = styled('td', tableCell); -export const TableCaption = styled('caption', tableCaption); diff --git a/apps/admin/app/components/ui/tabs/index.tsx b/apps/admin/app/components/ui/tabs/index.tsx deleted file mode 100644 index db667ec4..00000000 --- a/apps/admin/app/components/ui/tabs/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import * as TabsPrimitive from '@radix-ui/react-tabs'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { tabs } from '_panda/recipes'; - -const { withProvider, withContext } = createStyleContext(tabs); - -export const Tabs = withProvider(styled(TabsPrimitive.Root), 'root'); -export const TabsList = withContext(styled(TabsPrimitive.List), 'list'); -export const TabsTrigger = withContext(styled(TabsPrimitive.Trigger), 'trigger'); -export const TabsContent = withContext(styled(TabsPrimitive.Content), 'content'); diff --git a/apps/admin/app/constants/outlink.ts b/apps/admin/app/constants/outlink.ts deleted file mode 100644 index e8d5d51a..00000000 --- a/apps/admin/app/constants/outlink.ts +++ /dev/null @@ -1 +0,0 @@ -export const STATIC_IMAGE_URL = 'https://static.gitanimals.org/personas'; diff --git a/apps/admin/app/cookies.server.ts b/apps/admin/app/cookies.server.ts deleted file mode 100644 index 868527e7..00000000 --- a/apps/admin/app/cookies.server.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createCookie } from '@remix-run/node'; // or cloudflare/deno - -export const userToken = createCookie('user-token', { - maxAge: 604_800, // one week -}); diff --git a/apps/admin/app/entry.client.tsx b/apps/admin/app/entry.client.tsx deleted file mode 100644 index 94d5dc0d..00000000 --- a/apps/admin/app/entry.client.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/** - * By default, Remix will handle hydrating your app on the client for you. - * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ - * For more information, see https://remix.run/file-conventions/entry.client - */ - -import { RemixBrowser } from "@remix-run/react"; -import { startTransition, StrictMode } from "react"; -import { hydrateRoot } from "react-dom/client"; - -startTransition(() => { - hydrateRoot( - document, - - - - ); -}); diff --git a/apps/admin/app/entry.server.tsx b/apps/admin/app/entry.server.tsx deleted file mode 100644 index 45db3229..00000000 --- a/apps/admin/app/entry.server.tsx +++ /dev/null @@ -1,140 +0,0 @@ -/** - * By default, Remix will handle generating the HTTP Response for you. - * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ - * For more information, see https://remix.run/file-conventions/entry.server - */ - -import { PassThrough } from "node:stream"; - -import type { AppLoadContext, EntryContext } from "@remix-run/node"; -import { createReadableStreamFromReadable } from "@remix-run/node"; -import { RemixServer } from "@remix-run/react"; -import { isbot } from "isbot"; -import { renderToPipeableStream } from "react-dom/server"; - -const ABORT_DELAY = 5_000; - -export default function handleRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext, - // This is ignored so we can keep it in the template for visibility. Feel - // free to delete this parameter in your app if you're not using it! - // eslint-disable-next-line @typescript-eslint/no-unused-vars - loadContext: AppLoadContext -) { - return isbot(request.headers.get("user-agent") || "") - ? handleBotRequest( - request, - responseStatusCode, - responseHeaders, - remixContext - ) - : handleBrowserRequest( - request, - responseStatusCode, - responseHeaders, - remixContext - ); -} - -function handleBotRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - return new Promise((resolve, reject) => { - let shellRendered = false; - const { pipe, abort } = renderToPipeableStream( - , - { - onAllReady() { - shellRendered = true; - const body = new PassThrough(); - const stream = createReadableStreamFromReadable(body); - - responseHeaders.set("Content-Type", "text/html"); - - resolve( - new Response(stream, { - headers: responseHeaders, - status: responseStatusCode, - }) - ); - - pipe(body); - }, - onShellError(error: unknown) { - reject(error); - }, - onError(error: unknown) { - responseStatusCode = 500; - // Log streaming rendering errors from inside the shell. Don't log - // errors encountered during initial shell rendering since they'll - // reject and get logged in handleDocumentRequest. - if (shellRendered) { - console.error(error); - } - }, - } - ); - - setTimeout(abort, ABORT_DELAY); - }); -} - -function handleBrowserRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - return new Promise((resolve, reject) => { - let shellRendered = false; - const { pipe, abort } = renderToPipeableStream( - , - { - onShellReady() { - shellRendered = true; - const body = new PassThrough(); - const stream = createReadableStreamFromReadable(body); - - responseHeaders.set("Content-Type", "text/html"); - - resolve( - new Response(stream, { - headers: responseHeaders, - status: responseStatusCode, - }) - ); - - pipe(body); - }, - onShellError(error: unknown) { - reject(error); - }, - onError(error: unknown) { - responseStatusCode = 500; - // Log streaming rendering errors from inside the shell. Don't log - // errors encountered during initial shell rendering since they'll - // reject and get logged in handleDocumentRequest. - if (shellRendered) { - console.error(error); - } - }, - } - ); - - setTimeout(abort, ABORT_DELAY); - }); -} diff --git a/apps/admin/app/index.css b/apps/admin/app/index.css deleted file mode 100644 index e27a23b7..00000000 --- a/apps/admin/app/index.css +++ /dev/null @@ -1 +0,0 @@ -@layer reset, base, tokens, recipes, utilities; diff --git a/apps/admin/app/root.tsx b/apps/admin/app/root.tsx deleted file mode 100644 index cb8f1873..00000000 --- a/apps/admin/app/root.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import type { LinksFunction, LoaderFunction } from '@remix-run/node'; -import { Links, Meta, Outlet, Scripts, ScrollRestoration, redirect, useLoaderData } from '@remix-run/react'; - -import styles from './index.css?url'; -import { Header } from './components/layout/Header'; -import QueryClientProvider from './QueryClientProvider'; -import { userToken } from './cookies.server'; - -export const links: LinksFunction = () => [{ rel: 'stylesheet', href: styles }]; - -export const loader: LoaderFunction = async ({ request }) => { - if (request.url.includes('/auth-main')) { - return { noHeader: true }; - } - - if (request.url.includes('/auth')) { - return null; - } - - const cookieHeader = request.headers.get('Cookie'); - const cookie = (await userToken.parse(cookieHeader)) || {}; - - if (!cookie.token) { - return redirect('/auth-main'); - } - - return null; -}; -export default function App() { - const isAuthMain = useLoaderData()?.noHeader; - - return ( - - - - - - - - - - {!isAuthMain &&
    } - - - - - {/* */} - - - ); -} diff --git a/apps/admin/app/routes/_index.tsx b/apps/admin/app/routes/_index.tsx deleted file mode 100644 index 3c21d493..00000000 --- a/apps/admin/app/routes/_index.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Main, MainHeading } from '@/components/layout/Main'; -import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; -import { userToken } from '@/cookies.server'; - -import { ActionFunctionArgs, redirect, type MetaFunction } from '@remix-run/node'; -import { Form, Link } from '@remix-run/react'; -import { css } from '_panda/css'; -import { Box } from '_panda/jsx'; -import { useState } from 'react'; - -export const meta: MetaFunction = () => { - return [ - { title: 'GitAnimals Admin' }, - { name: 'description', content: 'GitAnimals 관리를 위한 admin 페이지입니다. ' }, - { - property: 'og:title', - content: 'GitAnimals Admin', - }, - { - property: 'og:description', - content: 'GitAnimals 관리를 위한 admin 페이지입니다. ', - }, - { - property: 'og:image', - content: '/og-image.png', - }, - ]; -}; - -export async function action() { - return {}; -} - -export default function Index() { - return ( -
    - Home -

    Gitanimals Admin 페이지입니다.

    -
    -
    - -
    - ); -} diff --git a/apps/admin/app/routes/auction.all-buy.tsx b/apps/admin/app/routes/auction.all-buy.tsx deleted file mode 100644 index 0d589759..00000000 --- a/apps/admin/app/routes/auction.all-buy.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import ProductDataTable from '@/components/Auction/AllBuy/ProductTable'; -import SortFilter from '@/components/Auction/AllBuy/SortFilter'; -import { Button } from '@/components/ui/button'; -import { Card, CardHeader, CardTitle, CardContent, CardDescription } from '@/components/ui/card'; -import { userToken } from '@/cookies.server'; -import { GetProductsResponse, Product, buyProductWithToken, getProducts } from '@gitanimals/api'; -import { ActionFunctionArgs, LoaderFunction, json, redirect } from '@remix-run/node'; -import { Form, useLoaderData, useSubmit } from '@remix-run/react'; - -import { Flex } from '_panda/jsx'; -import { useEffect, useState } from 'react'; - -const INIT_COUNT = 20; - -const getProductParams = (query: URLSearchParams) => { - return Object.fromEntries( - Object.entries({ - pageNumber: query.get('pageNumber'), - personaType: query.get('personaType'), - count: query.get('count') ?? INIT_COUNT, - orderType: query.get('orderType') ?? 'PRICE', - sortDirection: query.get('sortDirection') ?? 'ASC', - }).filter(([, v]) => v != null), - ); -}; - -export const loader: LoaderFunction = async ({ request }) => { - const query = new URL(request.url).searchParams; - - const alertQuery = { alert: query.get('alert'), failed: query.get('failed') }; - - const params = getProductParams(query); - - const data: GetProductsResponse = await getProducts(params); - return json({ products: data.products, tableParams: params, query: alertQuery }); -}; - -export async function action({ request }: ActionFunctionArgs) { - const cookieHeader = request.headers.get('Cookie'); - const { token } = (await userToken.parse(cookieHeader)) || {}; - - let formData = await request.formData(); - let items = formData.get('products'); - let itemsArray = items ? JSON.parse(items as string) : []; - - try { - const promises = itemsArray.map((id: string) => buyProductWithToken({ productId: id, token })); - const results = await Promise.allSettled(promises); - - const failed = results.filter((result) => result.status === 'rejected'); - if (failed.length === itemsArray.length) { - throw new Error(`Failed to buy ${failed.length} products`); - } - - console.info('buy product success'); - - return redirect(`/auction/all-buy?alert=success&failed=${failed.length}`); - } catch (error) { - console.error('buy products error'); - return redirect('/auction/all-buy?alert=error'); - } -} - -function ActionAllBuyPage() { - const { products, tableParams, query } = useLoaderData(); - - const submit = useSubmit(); - - const [isLoading, setIsLoading] = useState(false); - - useEffect(() => { - setIsLoading(false); - }, [query]); - - return ( - - - - 경매장 일괄 구매 - 시장 경제 손보다가, 손이 빠질 것 같아여....... - -
    { - submit(tableParams, { method: 'post', encType: 'application/json' }); - setIsLoading(true); - }} - > - item.id))} /> - - - -
    - - - {products && } - -
    -
    - ); -} - -export default ActionAllBuyPage; - -const getProductAveragePrice = (products: Product[]) => { - const total = products.reduce((acc, product) => acc + Number(product.price), 0); - return total / products.length; -}; diff --git a/apps/admin/app/routes/auth-main.tsx b/apps/admin/app/routes/auth-main.tsx deleted file mode 100644 index b7359919..00000000 --- a/apps/admin/app/routes/auth-main.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Button } from '@/components/ui/button'; -import { Link } from '@remix-run/react'; -import { css } from '_panda/css'; -import { Center, Flex, Grid } from '_panda/jsx'; -import { h2, p } from '_panda/recipes'; -import React from 'react'; - -function AuthMainPage() { - return ( - - -

    - GitAnimals -

    -

    - Have pet in your github
    -

    -
    -
    -

    GitAnimals Admin

    -

    Please Github OAuth Login

    - - - - -
    -
    - ); -} - -export default AuthMainPage; diff --git a/apps/admin/app/routes/auth.tsx b/apps/admin/app/routes/auth.tsx deleted file mode 100644 index 8dc7af9b..00000000 --- a/apps/admin/app/routes/auth.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { userToken } from '@/cookies.server'; -import { LoaderFunction, redirect } from '@remix-run/node'; -import { useLoaderData } from '@remix-run/react'; - -export let loader: LoaderFunction = async ({ request }) => { - const query = new URL(request.url).searchParams; - const authToken = query.get('jwt'); - - if (authToken) { - const cookieHeader = request.headers.get('Cookie'); - const cookie = (await userToken.parse(cookieHeader)) || {}; - - cookie.token = authToken.split(' ')[1]; - - return redirect('/', { - headers: { - 'Set-Cookie': await userToken.serialize(cookie), - }, - }); - } - - const res = await fetch('https://api.gitanimals.org/logins/oauth/github', { - headers: { - 'Redirect-When-Success': process.env.NODE_ENV === 'production' ? 'ADMIN' : 'LOCAL_ADMIN', - }, - }); - - return redirect(res.url); -}; - -function AuthPage() { - useLoaderData(); - - return
    ; -} - -export default AuthPage; diff --git a/apps/admin/app/routes/shop.drop-pet.tsx b/apps/admin/app/routes/shop.drop-pet.tsx deleted file mode 100644 index 37e1fb3a..00000000 --- a/apps/admin/app/routes/shop.drop-pet.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import ProductDataTable from '@/components/shop/drop-pet/ProductTable'; -import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'; -import { Persona, getAllMyPersonas } from '@gitanimals/api'; -import { LoaderFunction, json } from '@remix-run/node'; -import { useLoaderData } from '@remix-run/react'; -import { Flex } from '_panda/jsx'; - -export const loader: LoaderFunction = async ({ request }) => { - const { personas } = await getAllMyPersonas('git-good-w'); - return json({ personas }); -}; - -function ShopDropPetPage() { - const data = useLoaderData(); - - const personas: Persona[] = data.personas; - - return ( - - - - 상점 펫 판매 - - - - - - - ); -} - -export default ShopDropPetPage; diff --git a/apps/admin/app/utils/token.ts b/apps/admin/app/utils/token.ts deleted file mode 100644 index 383d4e45..00000000 --- a/apps/admin/app/utils/token.ts +++ /dev/null @@ -1,13 +0,0 @@ -const ADMIN_TOKEN = 'gitanimals-admin-token'; - -export const getToken = () => { - if (typeof window === 'undefined' || !window.localStorage) return; - - return window.localStorage.getItem(ADMIN_TOKEN); -}; - -export const setToken = (token: string) => { - if (typeof window === 'undefined' || !window.localStorage) return; - - window.localStorage.setItem(ADMIN_TOKEN, token); -}; diff --git a/apps/admin/package.json b/apps/admin/package.json deleted file mode 100644 index c699af9d..00000000 --- a/apps/admin/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@gitanimals/admin", - "version": "0.1.0", - "private": true, - "sideEffects": false, - "type": "module", - "scripts": { - "prepare": "panda codegen", - "build": "remix vite:build", - "dev": "remix vite:dev", - "lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .", - "start": "remix-serve ./build/server/index.js", - "typecheck": "tsc" - }, - "dependencies": { - "@gitanimals/api": "workspace:*", - "@gitanimals/asset-font": "workspace:*", - "@gitanimals/exception": "workspace:*", - "@gitanimals/ui-panda": "workspace:*", - "@radix-ui/react-avatar": "^1.1.0", - "@radix-ui/react-checkbox": "^1.1.1", - "@radix-ui/react-dropdown-menu": "^2.1.1", - "@radix-ui/react-navigation-menu": "^1.2.0", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.0", - "@remix-run/node": "^2.10.2", - "@remix-run/react": "^2.10.2", - "@remix-run/serve": "^2.10.2", - "@shadow-panda/style-context": "^0.7.1", - "@tanstack/react-query": "*", - "@tanstack/react-table": "^8.19.3", - "isbot": "^4.1.0", - "lucide-react": "^0.408.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@gitanimals/eslint-config": "workspace:*", - "@gitanimals/typescript-config": "workspace:*", - "@pandacss/dev": "^0.41.0", - "@remix-run/dev": "^2.10.2", - "@shadow-panda/preset": "^0.7.1", - "@types/react": "*", - "@types/react-dom": "^18.2.7", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "eslint": "^8.38.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "typescript": "^5.1.6", - "vite": "^5.1.0", - "vite-tsconfig-paths": "^4.2.1" - }, - "engines": { - "node": ">=20.0.0" - } -} \ No newline at end of file diff --git a/apps/admin/panda.config.ts b/apps/admin/panda.config.ts deleted file mode 100644 index 0488d24e..00000000 --- a/apps/admin/panda.config.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { semanticTokens, textStyles, tokens } from '@gitanimals/ui-panda'; -import { defineConfig } from '@pandacss/dev'; - -export default defineConfig({ - presets: ['@shadow-panda/preset'], - - // Whether to use css reset - preflight: true, - - // Where to look for your css declarations - include: [ - './app/routes/**/*.{ts,tsx,js,jsx}', - './app/components/**/*.{ts,tsx,js,jsx}', - '../../packages/ui/panda/src/**/*.{ts,tsx}', - ], - - // Files to exclude - exclude: [], - - // Useful for theme customization - theme: { - extend: { - tokens, - semanticTokens, - textStyles, - }, - }, - jsxFramework: 'react', - - // The output directory for your css system - // outdir: 'styled-system', - outdir: 'styled-system', -}); diff --git a/apps/admin/postcss.config.cjs b/apps/admin/postcss.config.cjs deleted file mode 100644 index ee939cb0..00000000 --- a/apps/admin/postcss.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - '@pandacss/dev/postcss': {}, - }, -}; diff --git a/apps/admin/public/favicon.ico b/apps/admin/public/favicon.ico deleted file mode 100644 index 8830cf6821b354114848e6354889b8ecf6d2bc61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 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 EKbET!0{{R3 diff --git a/apps/admin/public/og-image.png b/apps/admin/public/og-image.png deleted file mode 100644 index f0e92e467a7a83d34c0275ecf8a3c334b36c6f92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51769 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

    {RiX4TJCS=!}lYFGlm+ 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 { - if (config.resolve) { - // _panda 경로 매핑 추가 - config.resolve.alias = { - ...config.resolve.alias, - _panda: '../styled-system', // 상대 경로 사용 - }; - } - return config; - }, - staticDirs: ['../public'], -}; - -export default config; diff --git a/packages/ui/panda/.storybook/preview.ts b/packages/ui/panda/.storybook/preview.ts deleted file mode 100644 index e03ba0d3..00000000 --- a/packages/ui/panda/.storybook/preview.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Preview } from '@storybook/react'; -import './globals.css'; - -const preview: Preview = { - parameters: { - actions: { argTypesRegex: '^on[A-Z].*' }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/i, - }, - }, - }, -}; - -export default preview; diff --git a/packages/ui/panda/package.json b/packages/ui/panda/package.json deleted file mode 100644 index 64ee05f1..00000000 --- a/packages/ui/panda/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "@gitanimals/ui-panda", - "version": "0.0.0", - "private": true, - "main": "src/index.ts", - "scripts": { - "prepare": "panda codegen", - "lint": "eslint . ", - "generate:component": "turbo gen react-component", - "storybook": "panda codegen && storybook dev -p 6001", - "build-storybook": "panda codegen && storybook build" - }, - "dependencies": { - "@gitanimals/react": "workspace:*", - "@radix-ui/react-accordion": "^1.2.1", - "@radix-ui/react-checkbox": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-dropdown-menu": "^2.1.1", - "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-scroll-area": "^1.2.10", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-tooltip": "^1.1.6", - "@react-spring/web": "^9.7.5", - "@shadow-panda/style-context": "^0.7.1", - "lucide-react": "^0.408.0" - }, - "devDependencies": { - "@chromatic-com/storybook": "^1.9.0", - "@gitanimals/eslint-config": "workspace:*", - "@gitanimals/typescript-config": "workspace:*", - "@gitanimals/ui-token": "workspace:*", - "@gitanimals/util-typescript": "workspace:*", - "@pandacss/dev": "^0.41.0", - "@shadow-panda/preset": "^0.7.1", - "@storybook/addon-essentials": "^8.0.9", - "@storybook/addon-interactions": "^8.0.9", - "@storybook/addon-links": "^8.0.9", - "@storybook/addon-onboarding": "^8.0.9", - "@storybook/blocks": "^8.0.9", - "@storybook/nextjs": "^8.0.9", - "@storybook/react": "^8.0.9", - "@storybook/test": "^8.0.9", - "@turbo/gen": "^1.12.4", - "@types/eslint": "^8.56.5", - "@types/node": "^20.11.24", - "@types/react": "*", - "@types/react-dom": "^18.2.19", - "eslint": "^8.57.0", - "eslint-plugin-storybook": "^0.8.0", - "react": "*", - "storybook": "^8.0.9", - "typescript": "*" - } -} diff --git a/packages/ui/panda/panda.config.ts b/packages/ui/panda/panda.config.ts deleted file mode 100644 index 3a942429..00000000 --- a/packages/ui/panda/panda.config.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { defineConfig } from '@pandacss/dev'; -import { tokens, semanticTokens, textStyles, media } from './src/theme'; - -export default defineConfig({ - // Whether to use css reset - preflight: true, - - // Where to look for your css declarations - include: ['./src/**/*.{ts,tsx}'], - - // Files to exclude - exclude: [], - - // Useful for theme customization - theme: { - extend: { - tokens, - semanticTokens, - textStyles, - }, - }, - conditions: { - extend: { - mobile: media.mobile, - desktop: media.desktop, - }, - }, - - // utilities: { - // extend: utilities, - // }, - outExtension: 'js', - jsxFramework: 'react', - - // The output directory for your css system - outdir: 'styled-system', - - // delete default presets - presets: ['@shadow-panda/preset'], -}); diff --git a/packages/ui/panda/postcss.config.cjs b/packages/ui/panda/postcss.config.cjs deleted file mode 100644 index 573efad2..00000000 --- a/packages/ui/panda/postcss.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - '@pandacss/dev/postcss': {}, - }, -} \ No newline at end of file diff --git a/packages/ui/panda/public/animal-card/card-back-A_PLUS.webp b/packages/ui/panda/public/animal-card/card-back-A_PLUS.webp deleted file mode 100644 index 7b0e3d8cb87c5694ce86417da61f22c566935ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17758 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 z zpjD$F?sH~o1ydbpp%`U2S^=<*NeCiUfc)nr@(4G@S-Dgt;MeWXFsyFL4?=>zI4n;c zF4vBh4men%Qt()N2_cZ%e%Ek<0}|{zgBiGQ0+v*9l|Tf zK&Rz8@LQY^y!uUQP)H$i^pkY(S4ewy?81f^ve6f)fB7TAX#xO1?h}v&LWK$%2g<{U z9U+)cl!uNZ6-NjL-q>OiF!Ws(W2u+t;iFsNZ&3m`5s$>!V2rrxhxu&1-HbfA|L!=u zygga5TiABYPz`r&_%3=I`n*@5c--O38RV_{s`c#iP(7)8jDBFgFZu4dq&Nnafi3O~ z$tL2Se&{|!QPs4t@qALeKA-O#sgCnbeZ%*ly8Ctg{N%b5lh+X@f z^`yuJU}`qKur9$ERvW)_ z>Z`0{)!lnTf~>S6^Ziz6!eJgEgBa>tXD)yoi%=Z?HJ{74+LHi>&mUfQkF+-wOT@{Qqvdfs~Ghm ze0hz6mn0-;t0-QmC$zdrWSC1ff+@sxY4*IO%tpf+XaDK>u}nadhI`wH59tW5m@(A( z4yp~J#_jVcKzJ!)c&PbQE+wq{-ra=f7rM*I_fyG7Z$Bd+CoJ6e`}+k(M-j%iAs-p@ z*!eY&KF28m|K8%M0a@ab642r+{AQYR*`VFjEWSik(2FARl9XG7xtc4#zlr*9*G~TS z;HQP|%;&gn#^j1eI;|_zoFD`?JA!8x9thy?t7(FKojZ^sfDs`#xc`Y6kvy)DHd@+2 zq{mlGUpN*Zi(t?mtxKtWt~ znUbV(AOJ$fHCw|j1rh~tfw?7DPt(2XP418n{xaHyE)i*_dBN&p!MIL*GHHzW^KoR@ z4?9Wbl(4}bpnX2L(2hy+>d~ptC*jm^sP$j7oF1kic13w3`-bWpL7CG>J=d`MYuL4W z7~lGYT^ttbn!bLj${BcU*zLLx<-jOuD+zUVar92u;?TK6x52t@?y3}t^^K3CA0gzc zT{XSlxNL*611;sy<75DDY;&Dq@-(i%^D06jiW{Y-Pb?<#c~sVQ7}}dtb^*7(O{Oh+ z?%hN7q*&7!xHQ`r@+8EwqI}mIxQX>j$)Gwf+r8tidLnnX7PWdydoBd(&Q-;KT0~=H zild~*_ap1~#3^tOk1HvJzir8)F_|jU{xwUM8zLt_a{umB)x2o6!tqdEk!Dz}OEqXI zEdZe-<;-Qi2* zlg@-o627t@wg&ulWAuU(T(tgBmd6#=c)?i!!O1pDE`B%Xg^TjY*5Sacgx#`w_ZQ)2 z$@#9Jt40I`&iH$!FUL324HZ-&rKNp(~B%dE3tZgkx%XcMtn6AGcDjE} z^hZ!;-w?Tj@z6LnMWDEn!|_nPuqdfk`Y2$G@} zjIy9r-o1G6W`GCfimBi6Xd3U$&vGS3zre?#EO&{qU$=Sxe7~Cza!#8U0oicw!&it! z={B%>G0CwtqKq%8G6<;l4L*z>AN8VGPsub-XES=k3^z0sxN4SbBBvMwW54Qbd)XA7 z41&(giH3*d^M8fZ%>Y7Y2!G94Km^1XAy$y=Vi@~wJih?Ypdx+`&rf2jzbS`-Dc)Wjqzs-E0Zu`qX5-VSGC)bs__M-=|ixT#!F6*K^b004zqEtB) z8$G>1%!uFMn!&2z`K8cAB#|5#%`Wojufnq_eG!5&5L9DO{x%@l%YjZ?9KV*_|3s8K zVQ@qoQZRhN5TBBjkgE~`!NPqZcnVdixF%p=STjIz4@vy~FccQGm*_b)u^O{oTv;pe zBzVdoq#RI9lpti^U)THr(UidWJYBaE`kJS`bKSkalD&2Xb5<8|k`fC~@yT|LTERIY4sDQCYi@hwr&$apn%_8`yDNmiqo4 z&62U?hqLFY@$HENA)g<0fkGrjzI?l4IDa{fUb+#bk|$q?-lHn&QMHo~P4(3}PqN9_ z-dM_958+98Q>nigjW(1|JEOGmEBy+k1@WTN*M`BJ-f}?Zv_ns=H=|JH*TcnN6`L=I#gOptR|G+kdZ^j6cEiu z-?g!szx9*J*$=wAT`67g%tsj(D-y96#P8|CNH--&7gHo zZTR)&Gtiep+z=L#z(XB7MnEtr;EpZwMARDO^`E! zb^9eyjyq`@6vT|c4+c3VH5h4if`_?E>~#=J2QfcRi^B1mw3mq*1P@V#`5J4(dgu&S zk{uxZQ2g8F&K;if8}ByTP=EMG4=a=(Q^B9ZjEVd5#R1p0`6nMg-^%H0@!-5_jD1#e z`*Zv~*I_EhCpi=A;zPs8TegY`6{J;{EcQbWhCvC@-pZ9v3TMr((In1N?8CEgmi`I^ z%V=qP=@y_GlB%^1J*Hb;xLs|guLjpMfl4+xox-BKvCi|G9GEPJ?|9-jhtLOZ>F2hTd1nk>1~Tci*|kpV&0hv~x?Ks+M&x6g6rI~GN8d=-x;C=U4bvlR$&J-+hsU)CkKLqq z+)86Q=_st#U#hA5(fKz04q~oJzJ@n>zM^I1`;OO}IUOR}OyueQBhb&kvZ3Lw6{IUK@eF%NN|H(omPZ~Pgc1Et>@QWU2`=Mz z?{{_=?YJd9Mop49rp^4t8LINi71D}P?Wc0K&gZusFMlA6H(I|mVu(qK>*PhS{m}pA znsGj3rPRXJW%K(!6;m8uPuW1sJ2 z`pqSlHk3A5WQh%kZt#Gj{$|mmjUoq=N3?u1-SpvbA(C4W!Jp~37*2VN#4imAQMuPi z=zA55k$vgt6?>}Q6+V1jqE~Xi11eNG8p93yugY?(?2GkLpP)f-WeOT|Cl|nFnluD* zWSM&QWMcO?ovnB)LeY!+TyV~;gK3GZ15z1C;<^Od#*QTq*oNrNUJzLGE03~5!Rezw z7eKOU+JDD%b+%r9c3NI>TWVtrJo-g)4KF3mdd!{uNyaY(ri4}alNGOCo6oV%O z{fQ)U!qRfe$m!8L(g4d|^!Q43p2scz0aV2~&ykM5a;JfGDEu@bQJxC$Ix+PYEo_gR zKi^4vOzH%XB1s^&B-Dsg9ye>Fj0Kg{JOjt#(qYdO*!pdz zkH%^zzL0LNiBJ$1E|#Rw2*%9*x4D@{E*1am1NB=nK?h~3%wLzd+-R4btpOyj(l^Jy zdiqK6xF|I%v=^}BxMz~CU$KPLxKB@5*#SrDc1!8%SUWvW;YqTsxAyHsk_i^X_sFSH zk9DJuD%!Y^lAohKJZ7d;`D`s|Hlmr@5>=E+f+(ctQE*MN#aZMiYJ_te>zqJcwMw-N zv7!mb(TEU$BVYZt1|xN%ji{od#7`wUbcJ?psQ;sG%n4$O&T{8jBwMlOj`l)UYcC6y zi=0C$laX9Rv¨{xt=|`m?ZbnvJtjUG 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 diff --git a/packages/ui/panda/public/animal-card/card-back-EX.webp b/packages/ui/panda/public/animal-card/card-back-EX.webp deleted file mode 100644 index 1932e47b839f460355557cfa46ffcae205d9d4f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17376 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 B!twwB diff --git a/packages/ui/panda/public/animal-card/card-back-S_PLUS.webp b/packages/ui/panda/public/animal-card/card-back-S_PLUS.webp deleted file mode 100644 index adacfbfde38ac0758b759459ddaec15665f2dda6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19860 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 DM6Am# diff --git a/packages/ui/panda/public/animal-card/card-bg-A_PLUS.webp b/packages/ui/panda/public/animal-card/card-bg-A_PLUS.webp deleted file mode 100644 index 4ae031f8bf98d8385dbb7e9088bd08cdc44e4b52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25402 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 LqGfYeYu|_fl!N7) diff --git a/packages/ui/panda/public/animal-card/card-bg-EX.webp b/packages/ui/panda/public/animal-card/card-bg-EX.webp deleted file mode 100644 index 5cb77b79c98d3bfd691e68605f5ac2aed9dc7185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45346 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

  • <6_~bHz%eLj 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 diff --git a/packages/ui/panda/public/animal-card/card-thumbnail-A_PLUS.webp b/packages/ui/panda/public/animal-card/card-thumbnail-A_PLUS.webp deleted file mode 100644 index 93d894244d53dd8e32c4f32cd672fd6466ac45d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5404 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 diff --git a/packages/ui/panda/public/animal-card/card-thumbnail-B_MINUS.webp b/packages/ui/panda/public/animal-card/card-thumbnail-B_MINUS.webp deleted file mode 100644 index 7fdab3a3c2a86fb24b42e4e2e0a064da4edceb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4704 zcmb_g}t4G(_`)p?GKwW@0DIo(F#EiI>aBo%mj_&Hp|+|RSw_p;@gyCPjY=h0GCzx>*(O7TiK zsw)nwJ6dDQljj>*3;6nrj!_by=7M)E1g)D0&r09X0(FFRqVp=c|8-Vvs432a#P2+w zzc(A2qhr(XKuuAv6v}sf#937I=?60Pjj9;$hp@x8ld;zhkjT4ng{4NqGOr&;@ETJn z>RBe_=<1eOK~d6ILtAFmNo)6TR>!^-s0 z!qV*M9#^@ub@-C|wC14^gTbPzu6`=+-*iz?5xmL-e=`h!xNRNdML4tD98xnT{suqX?vL@JQ0bNYkd3~;!l^cs)vLU^YMe@ulLm?RuCG4FcoORV z(Jc)9o&J)oM1{fupb3NUlSRA6DDw026!dbkL>7u=BlQWlkg>%%s+$AK1x>lRiaWe| zJoUw#<~+P&1^Ei}Y%$gIsZ31Z~0;DhYIWfs@;f5`4F!6Py($qx zFHPsxG|dR{+64Glm*}h27a~12K63CvA&Ot>%~T5}pG}6x_%hKNFlo-!I_VBiaoG8M z&(jqFB}4|%kA=#X4(P=AyUD}KArMJ;g`%CJGQt`%*@TQBdo0<*xnjUtIlKNa@z_c% z$<-(;pnu1szd2sX1`~kUyG7>@mHD-PtvS{o6Dkx4zj<}DfAOEMy=C?F^*#Nso~?TJ zlZpg6(?Wv=dg{!Y4}Zqpo&RzPMpNVAH)na3!l)Tp3smJDNfoT>3Ngvg_
  • g@q|bu-uH1`(~osbaqC%YTEgcRejbivxLCF3TRb?=AR!>#4K%5J<%TO2Iu4 z>eWTz<$=~oAk$CsNwf8^`ZMIrcMFf&X8dOB%LBp_i7m!gl(E7`+BjUBB;Agn)+Krp zK2^Rmwm{*54Z&vGCj8Y=ppyTx5bYpGyAT4YAyv1cPVQmn!x^IPOx))?_AGG*q@x|M zClS^5yt8*Sm7f05SFxhpmrl`xYnFAL{uTW!l)^@%U9Ns6$X=(l#^J0>{dM=`;w$A4 z>`|EbA?C1J!N2Y-qbC;i$KQ@RHkxg6_4C}+o?`{y?JuI$c3Ggxuhr~#f=`U2G9iZv;#}}2R&`l{=82D<9h@OgLXLw!8AK$wvNCos|@O#=1^M+idrppFg?*v@eL??_PJ& z?+h$`z=mWQr46-JM?Hwp%K}1dc~rINv%d!Urw(9(q~_4n3g72`p?<<8PlxbAS9L)> z0R;$u(t|=$nl90aE3=_;E>||+BxU4TH!P@yDmaDq@0Xv}?KuKjS4qL@6~5~N=U=$( zXjAfNq_X|ej@?HK-VcQ(bq|y}D^TE@9C8@*(A3|ZxY?i&xQ*RDt+z&t5oZuou^PeIizKY73d97_-}woCvu_W^Q1xo_>Do3W9wfgzR?I??G0?l_4Zd{Rm^XXQQbK#j7DrT;6Jz?r zSj5b*`eS7?IJ_KVMsTN(BY0IWKQl@_!J%fOw)q$5Hpg37s(_A3Pi!+?FEPqkimb8I z+C429uG(b%EKG~>wz;RpFsiu!{;%kkJ_Z2bP6>SwCer(SGsY;l{i-N`*NrOkUzG~= z*IJUEnQ}3&%)dQkyTCvGO18WIm-Xo@_}iFDO06WOXi@XVbS6eWJP%g>NN`*4u1HBh z>tlQzo+hY{)%WviaRfJRndF7*L$`*#20h~bJeEr@k+yOKey?cI=>1n|(Ga@6I^4!0 z0`nv$zH8XncYmPaB$R9+^P`p|Jxj6pW8AlOe24wl?#UbTMvQLrKRR6Jj;1u{ zJuDR-wl^-Kb3R=X+-5cOYnm0k z#EyOCdKqI$#`Y9()9m>VLi%dx-s_1XsEde^xyD(mj**O=_`4_pqhP6nj>6PN5U?+( zQ%>n2cV==vd}yzehFPW%FvBn90E6~t}a z>0{9gWQDE14xsHaq0>C8=1Q~Vv$q%JU|l#K8TU)EYhL_#o%?zRmFqg@?>$7i0yWY} zrFB;s-|ZIqiWMB@tU!dXFuo2sgO{4V`TC19J+(Q(mNZ z#PEM;9DXqIB(uI9Tk3~n&l1Xq(L>FTsKtjr77#W2d~VK5C#p_Jl38j!Sr^b0D6M?t zEJ_#(rS%Y8<Srf7QgvzEc*pXG}Z#u9Ke$0k>aj_5tf|(tQIW^WZzKb{sw=q0aAu@aLY}9b<^Hm zu3dAX=HHPdH{f(dtC4AMi}bCIz6%$`jJEapt^n9tt$5F;d#TO6?y=*wet?|t>*CEO z%(FeCcP7&B*`D>($_`krc2Z@vc33zj7O@WQXPbmDzGlGB4!sCkzM~@DDy~b|vFujz zY$pY+@m3-u*@CT1mx3sE_Xv~lsZs5L`x(P5;8=P zr{t3_+AB0HQQ&Y$Xbd7+(ez;fN?-f}daBetG&6OEJQNO}da#m1Np>7)iZQ%!IwuBR zksX3U+Dm#e-?CuiGm8un0!Nv!t?o0y)Tzo%Fmu{U20k`h*yo~Fm;04A$3owDLKXWN zMg{PMGAv94B;7_{zVC&kq zDV=ZpFeN5of)6mKgpl# zTG3?ki2p{k>E#mk?J^aP?k>UmqnmpP@w;kXKpr-NPqSZVRQdIx-&7Dw^&eX`r7-5alXkbVbc ze^y>BFKip34buv}gpaJu42gUh8nW9txBh zZZ*86#IJw7A>KH8QjBiji@1>c|$M`K7fVFkBzU8dy1* z?Hj>;dAj=4zq)ywv(wFv`*$#R=0?rq?XKYEusxKtuhsrXa7VNX6Q$mZ358C z=6%5tMZ)GbkR!j>XQDS3(@%3?`S~i}D3P1s_nHRPw!lphVHRlqIO`Qugo*(a>S{CP z2{Ur>sPL!6I#-`52X2yd_b#KSC=*5e5r#>EcSlP^HyA%_c+B*B53c!~2@e)F8u!-!F`BAMd?^0D%Kh{YaSuvjHf)nJ*+D{O;( zuBtFsDn(`gPU3-Q*DhmwWm1mp5SfRR1!2(v*byxArgGM51mjxkTdTTHpD*z(-+R#c zjgtzuJlV(2nn3}#=DL9|%TlpkAOdGT?k_ElZar&a0H(a2en2rn@t0gk7dt10JecXH z&IuOq1oJ7`bq#Q3Dd0WQ_5|*~gnqu;?!Z`lUs01U0!-3c*DO@+UYR3WRoySsd`X%{ zkLjf>f5Fr>#B6NT(UjtFd}%5RlyYb79q$zXkV98<+E|-|G8JksN=o!iJt#`t2v9`) z^ZXR`iW|-mbJrj7s zAq|I}@QT?(>*f%g(xBL-LHyC68YG>8l`^^yk8vnh&L&(5>eTyX@58z@8Rt&WM1KBv z|NQwV{ir`EdD7O`zLnxKT=xv{NRC~!H!9jtLpiem-A2uFBLZZr#=z%;n8)$mf_3ZI3IQy zd&+l*>qn)fqkHC#K|xjnLyG6taEepf_#nlL{26DKE>4iUU%@<49L=Lp<^i6b7=#E! zLbMJkQujbkSDONseOE2CqtX)YG8`lFx?AphcUEPnpdJTmy~7jDy_QS4KQZ_`QEP5- zqmH$ji*^}SwHDPPv8d5@F)hd@%VnDKpnN<^VBLK(Ho8DE7h=Z8d_k_m%)F2fYw;%e z=G&}7mmEl1C>o)C(UY+H&tk!0U^a|9;Uy)PgKPn@F|)C-?2A?km~|#dA3Wt$&|)P4 zHGidD(iXEXulUUl?LwN75_{ed^r-t+om=oU(t;f{n)9*T{@}w&!*h?73`f)-^bnA=VPq=+oH;btgTc=K5Hqz&o{j0;~#u-gpU|F&Dwn)CZep75kzW#n+Q z9Xi0h>{3!hansr;Uhhm_xEytxsgPo@6FCHrHhRd#@;7KX{KO}gctlTXn0xy!$kFXB zFOUCfY()9Xbp#R13BCJ#9zuu$0IUK5#2Cg{aU(vU+|^h1J9@G6Nq8D`a2?C8XaDJ?pGIqDerBJqB>ETHYYRzty)Qcg7n$ z&eR#tPk_H}nwxf?-z-U$-7l*W$l~3BN%P#tncbNJkDwSBuOECsOATlkZ8>7Gg$a>i?qPfdka?L#6xl|Ho| zHi(p0j>`S%mE|LS`Ggw`*XF@-yfgL4nGJe=GwCbOOQ+%uvAMeLChxT@a$uKK8cI&O7B zPVQa=6_3xX+ISM0)Tig9R5seWbfaF`#KcJ_R65+@i}`prc*6W>MP53eDuiX+vO2ot zwQ}`lm`d@eTCuuCU*tzS9uVMm5`I` zmbUnDV;ER*BmD)2uzQk($NFF!yM?y%@W;31bgM(cqwQmqQ zs$ry>Wx^^2-^>9y0^NOXl;{Py8cps%TX`KP0cpj$lpP#nnMr%tH3aOMR>cL3u3oiA zj{HciH2v2@QSoVpL{ZC5P2iT7v zMC}F(uo8(|1(J?_zAo`q@mQ6J?iV?f>Y_Heydj_`81B?-$_chn4|VIIp88Ws85j*D zC0zRo%}upj>w&&?vRdO64i30;1YCI-wHbd12v5p@ISXjYD;kUg)hr2Af+`cF$lRCX zYU7|zjhrNi@*t|bXVTDMoO;TJy07hE^DS3bqR>o2wbcyBvHWGw_^hp~i;Nbw%9b{_ z+sASmWP_E^9IoL}S5Y+_&mUyu#tmQ_3({*Z^M!V%)nyuV-Yj1FW?5_h#TqyyN!S#) z$ty55#jNdZa1+=lDB&!F(WvhO;dn>6?2z!Akf`ZXf`nd@!~uYtLDzx44lALYU{w|+ zWvwfc>g$`Z_*Qi#44cIM04?BsUxdo{#h?)*E03&E{X{kYl2u>E0VRX|8wXK349-)~ zZrTf=upO{+E=P)k}(&YL&T&K z8-wh`roFoOHQTNqQVUGI*JDm;WX}##C&6vOU~^{^`OM*YBju?z{Jt;HCD|>0I0>nI zJpn->kEMmcFnXVvAhmJ5AfZ(sKYJZMxAdjjL1RHuhF)hl+7!Je(#@tVSdbjo~SGH71AJkf(c27>GwVl8>^t75DJ;`1o#@hOUYsR7;b0U&bZ zDFhD552*-mS$6;0x6=bMN*2Cx<4GJnU1fltZesA;6kv* zXPg~gwpd3BqhKtT6J>amMc{c#i&x?bu)z#Im zcr`}Wd(J8G+ve>tZ_Hu>&R@*>73W4^ljxmdM10O=t5>?~Gr(%$<$QKtyzNPKnGVs; zA0iUHZ5%P{?yqLAK1Wp4{fL5^$ZzMEj0wtV#ExT_I0;WV2xnROvEt_^7bCxquU;%D zo?^DLqqPE=%t_Yx}x9ILM4_erNQT8o-Mm8Y{1vI9i0dHXU+W zKZTs!&Gk5B9BcXkYxRx3mtp*s#CmuMb!Xd^5<9X^F=%WhP7zb<>aiA-d%3HYXGrYe z2uE1DS8Wgji`EN)pEzYfjXD?7O0|^%M8a}KUA)N2VdKBM8k$7TQ9Lsj-|l^Dn)ql{ zT2X%{O7>&MSwIP_=G9#zb}N$@^bqm-ori}@2Z!uXWBnuHF$OLiv;OVuu8bFp-Hbyf zZiRx1i$5)?y5y^1TjxQ!m+ZXqJX}&=!grGP-vz@!u_Wh#ZeOauMlyYPYc>7-lafO7 zy%gE0*@_gBE=w8dexk(+p;b|DMSRMwT}ysp9l|}noDcOYK&9<(EPJFBTgQ)IU3+R{%=qI zMXlq;*7Kdrh+6mmT4)_|+h^aR_o}6MEOJ@RYL)bo7<;-CUsyeCujl3jtka@Y=WoTo zSYPJOtqBQE<*dRw{{v@M{V#a!h*u3T!0X4k(^P*`S<1*za2x(Hz!7(`%t-t%iIJpL z%zwmVPq%LcdTv77X1r%yPmpuS=B)<*`kne&!c1FN$492m^j=3Tbg_X|yV45eT^*Ch z?3^Ta^DcguQ<)=XA(3}e-I8_p*4wOQ`U-z}&WWZkkN7pYB}4gy{i>b}Y(fhUl{Xst z8vl3YGT2_;#_P}z_%g*LkcqorX!E{Ux)G?^Pc<2`4z-sWrm2h{4zKQIf!eu1K%&B+V@ z84%vt4ujfMQ%ojfVBGyrL>DKv(E+~xy80z0hf)fKMWds?v#X&iqkk$K_`@=lbVJih z#kpFavwTNc6FP>ykE#824Kq5qyfsMj{?OJ*PbYeyU$ai|*Xc;DNN7W9dUm?17T)%N zs}?e{V8koapFvpgudHPbEaBGjrhf&o=SoFJj$K=ClUwI#oH=&!yK-|=XEA6X6PMwZ ztVbg=y@1htcASf!`%dgP4K7pn`onrGx2e|5G-6}Ox>ED`gLQmB7Oe)eH7xy#X9eRVN0v3#b#O^pk>V6T`mKJw-lag7!F5)5W|=P!zKLZlJ!6G|L4eXTyX4%3bPX7Au1J)0h4a(t`F|(ee@A1 z&weM@@_)6R-|Xn`w3cS;wYaeBM_hQaTYR3-o6f$3AD=ujRv`obM~57E2mqX4u+AQw zMwXybY2qOW6H(OH`&NC`uB2`k?-Wt6`+CBIJ$t3GVOU))m&l&}P!6*QqV1J}jRL}F z2K3HXM=!O)wj-}9FnT{EL4JA4@CeQ;`umAGhM%YO-1?mr%Xx$}$7r%|;TpByzE0$9 zUO@coy}%J;wyEkG-_Aq}MfpJQ^Krtj!_Y6I$&1v_+u$pT^Dvn0bw(Gfaa-X=V)jXr z@#2ZubVAHyJRvL0XD5-t2Db{$HUD+zunDnMFkM@8u4^(MFp(>Zj-+Z(X@6(b;SMFr zW`67#+xApwiyQ44J(n4@JCKBb2Je}+K+BYv1DBT{%!C@=J7eJBx4dz<)ohyss5AyB zLO|QZweg@yeC2xyX*DI%tV~CG7G+a_PgYn7Vdj)5Q2AcX`e>3gYZ93}Ff0PH-xBKmBQV%``E$bnpiAgE|8uVQ8)$>9t%WtS!eg}g~YST4n(&Rwop4eI^OJ(n{&T(0qR|RsiEshyaeqexc zVk3exg_QfIe&XUe_XaL*@$A$^hT8ULg!6SAE2P`6o}`KV#Awe(P>!|U7|{F7oWl)f z7vd7g7zA7m96w~8hRk{Fmd8wl^sY^7Z+aCJP^m#8bRIx@*$x zKt1Sq#~0+MKz91>m4;RaK69^kDNcsU30;!xNA~51{rQ?SS%&{IT^dg`>~TX1Z^Z@2fBdbyuZtOin@&rHW_xMENM@;kO-jaKqylpU)&BGYVus&*TQj{o=d3 zXsM*#aHro!G#Rm}S_M4GC$1@1Ry^)*x$)`bZC{{nDB7hYBn*An z($S>Jx5jpl4jT#F#>?hAj?L$kD**r!7?v)zyi*i_e(b5;cXrmTXbv4zDT+727hogz z3^iF4L>;0vSWv8|%O**Bh0Go?I82q{JRig%*j$}zSY4_Ur@A8%i<8~=rHWf2Qxhs$ ze8dX?P{;-E9X+DWMghpGiSQeb?`n;a!|`&2CrU1Qhu5>SDLRcygAQFkPSa(U)YM5o zFYMuoltHk3Kf=20Zo^V;N3XCPVP0AXe^F{cynW8!>sP&=jvDe{$C$fsKCbsilF%GS z_g<+o_Gq2o<4K#XY!qy0BtbK^(4^;^zmpT}+ID@D$BTN9mB`{xYk(R*N}1o0xD%NZ zePgNH!-BrHvMPI#X`!hp&?hWG2<^OZqm=Ha3UbW!dl%{v0LaAngdfA91m4l}_~!#_ur2Smoc_fQl?{3TH_T?-h>hfHV$9}g<~uPNsxPA)GuP75kuo?4sv1TI#n%?TWvI&7Lf%?JwS zC4>eV>&dc*7=Ev{=qhPRHjdrPgI&zZN{^}f^Kuod#-g|U%PEvCU)q^So!e}4pR2!u zWSd|mN%m9wSD=CMFcEN3`9zz-f{EhM)eC%ko7lw{)`~I{u2!?Mz#qR4zntv}Q{5!( z*WLgxKe?8#|KoOt=2~We3;7K=vcCKXj(=WZWtS{nE-yV}`mzq*653}LF@`CeL40g{ WYIBl$Qao>=nM$l#$#=&I0Qeuc$%?H2 diff --git a/packages/ui/panda/public/animal-card/card-thumbnail-EX.webp b/packages/ui/panda/public/animal-card/card-thumbnail-EX.webp deleted file mode 100644 index 52dd0437f03e49181dfc1c5a3c39d74923946a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5504 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 Ng3N9vBb`G5AOKT#0nGpa diff --git a/packages/ui/panda/src/animation/SplitText/SplitText.stories.tsx b/packages/ui/panda/src/animation/SplitText/SplitText.stories.tsx deleted file mode 100644 index b586c7a6..00000000 --- a/packages/ui/panda/src/animation/SplitText/SplitText.stories.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import SplitText from './SplitText'; - -const meta: Meta = { - title: 'Animation/SplitText', - component: SplitText, - parameters: { - layout: 'centered', - }, - tags: ['autodocs'], - argTypes: { - text: { control: 'text' }, - delay: { control: { type: 'number', min: 0, max: 500, step: 10 } }, - textAlign: { - control: { type: 'radio' }, - options: ['left', 'center', 'right', 'justify'], - }, - threshold: { control: { type: 'number', min: 0, max: 1, step: 0.1 } }, - onLetterAnimationComplete: { action: 'animationComplete' }, - }, -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: { - text: 'Hello, World!', - delay: 100, - textAlign: 'center', - threshold: 0.1, - rootMargin: '-10px', - }, -}; - -export const LongText: Story = { - args: { - text: 'This is a longer text example to show how SplitText handles multiple words', - delay: 50, - textAlign: 'left', - }, -}; - -export const SlowAnimation: Story = { - args: { - text: 'Slow Animation', - delay: 300, - textAlign: 'center', - }, -}; diff --git a/packages/ui/panda/src/animation/SplitText/SplitText.tsx b/packages/ui/panda/src/animation/SplitText/SplitText.tsx deleted file mode 100644 index bf0d03bd..00000000 --- a/packages/ui/panda/src/animation/SplitText/SplitText.tsx +++ /dev/null @@ -1,145 +0,0 @@ -'use client'; - -import { useSprings, animated } from '@react-spring/web'; -import { css } from '_panda/css'; -import { useEffect, useRef, useState } from 'react'; - -interface SplitTextProps { - text?: string; - className?: string; - delay?: number; - animationFrom?: { - opacity: number; - transform: string; - }; - animationTo?: { - opacity: number; - transform: string; - }; - easing?: string; - threshold?: number; - rootMargin?: string; - textAlign?: 'left' | 'center' | 'right' | 'justify'; - onLetterAnimationComplete?: () => void; - style?: React.CSSProperties; -} - -/** - * @example - * - * - * @see https://www.reactbits.dev/text-animations/split-text - */ -const SplitText = ({ - text = '', - className = '', - delay = 100, - animationFrom = { opacity: 0, transform: 'translate3d(0,40px,0)' }, - animationTo = { opacity: 1, transform: 'translate3d(0,0,0)' }, - easing = 'easeOutCubic', - threshold = 0.1, - rootMargin = '-50px', - textAlign = 'center', - onLetterAnimationComplete, - style, -}: SplitTextProps) => { - const words = text.split(' ').map((word) => word.split('')); - - const letters = words.flat(); - const [inView, setInView] = useState(false); - const ref = useRef(null); - const animatedCount = useRef(0); - - useEffect(() => { - if (!ref.current) return; - - const observer = new IntersectionObserver( - ([entry]) => { - if (entry.isIntersecting) { - setInView(true); - if (ref.current) { - observer.unobserve(ref.current); - } - } - }, - { - threshold, - rootMargin, - // delay: 100, - }, - ); - - observer.observe(ref.current); - - return () => observer.disconnect(); - }, [threshold, rootMargin]); - - const springs = useSprings( - letters.length, - letters.map((_, i) => ({ - from: animationFrom, - to: inView - ? async (next: any) => { - await next(animationTo); - animatedCount.current += 1; - if (animatedCount.current === letters.length && onLetterAnimationComplete) { - onLetterAnimationComplete(); - } - } - : animationFrom, - delay: i * delay, - easing: easing, - })), - ); - - return ( -

    - {words.map((word, wordIndex) => ( - - {word.map((letter, letterIndex) => { - const index = words.slice(0, wordIndex).reduce((acc, w) => acc + w.length, 0) + letterIndex; - - return ( - - {letter} - - ); - })} -   - - ))} -

    - ); -}; - -// Panda CSS styles -const splitParentStyle = css({ - overflow: 'hidden', - display: 'inline', - whiteSpace: 'normal', - wordWrap: 'break-word', - backfaceVisibility: 'hidden', - fontSmoothing: 'antialiased', -}); - -const wordStyle = css({ - display: 'inline', - whiteSpace: 'nowrap', - backfaceVisibility: 'hidden', - fontSmoothing: 'antialiased', -}); - -const spaceStyle = css({ - display: 'inline', - width: '0.3em', -}); - -export default SplitText; diff --git a/packages/ui/panda/src/animation/SplitText/index.ts b/packages/ui/panda/src/animation/SplitText/index.ts deleted file mode 100644 index 24d97fcd..00000000 --- a/packages/ui/panda/src/animation/SplitText/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SplitText'; diff --git a/packages/ui/panda/src/animation/index.ts b/packages/ui/panda/src/animation/index.ts deleted file mode 100644 index 24d97fcd..00000000 --- a/packages/ui/panda/src/animation/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SplitText'; diff --git a/packages/ui/panda/src/components/Accordion/Accordion.tsx b/packages/ui/panda/src/components/Accordion/Accordion.tsx deleted file mode 100644 index 2e13ec6b..00000000 --- a/packages/ui/panda/src/components/Accordion/Accordion.tsx +++ /dev/null @@ -1,40 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as AccordionPrimitive from '@radix-ui/react-accordion'; -import { ChevronDown } from 'lucide-react'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { accordion } from '_panda/recipes'; - -const { withProvider, withContext } = createStyleContext(accordion); - -const Header = withContext(styled(AccordionPrimitive.Header), 'header'); - -const Trigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( -
    - - {children} - - -
    -)); -Trigger.displayName = AccordionPrimitive.Trigger.displayName; - -const Content = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - -
    {children}
    -
    -)); -Content.displayName = AccordionPrimitive.Content.displayName; - -export const Accordion = withProvider(styled(AccordionPrimitive.Root), 'root'); -export const AccordionItem = withContext(styled(AccordionPrimitive.Item), 'item'); -export const AccordionTrigger = withContext(styled(Trigger), 'trigger'); -export const AccordionContent = withContext(styled(Content), 'content'); diff --git a/packages/ui/panda/src/components/Accordion/index.ts b/packages/ui/panda/src/components/Accordion/index.ts deleted file mode 100644 index 63f62bc6..00000000 --- a/packages/ui/panda/src/components/Accordion/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Accordion'; diff --git a/packages/ui/panda/src/components/Banner/Banner.tsx b/packages/ui/panda/src/components/Banner/Banner.tsx deleted file mode 100644 index bd3fc5a2..00000000 --- a/packages/ui/panda/src/components/Banner/Banner.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { ReactNode } from 'react'; -import { bannerStyle, BannerStyleProps } from './cva'; -import { css, cx } from '_panda/css'; -import { skeletonStyle } from '../Skeleton'; -import { Loader } from 'lucide-react'; - -type BannerProps = BannerStyleProps & { - label?: string; - image: string | ReactNode; - loading?: boolean; - className?: string; -}; - -export function Banner({ image, label, loading, ...styleProps }: BannerProps) { - const { className, ...rest } = styleProps; - return ( -
    - {typeof image === 'string' ? {image} : image} - {label &&

    {label}

    } - {loading && ( -
    - -
    - )} -
    - ); -} - -const loadingStyle = css({ - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - backgroundColor: 'white.white_25', - borderColor: 'white.white_50', -}); - -const labelStyle = css({ - textStyle: 'glyph16.regular', - color: 'white', - maxWidth: '80px', - textAlign: 'center', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap', -}); - -export function BannerSkeleton(props: BannerStyleProps) { - return
    ; -} - -export function BannerSkeletonList({ length, ...props }: BannerStyleProps & { length: number }) { - return ( - <> - {Array.from({ length }).map((_, index) => ( - - ))} - - ); -} diff --git a/packages/ui/panda/src/components/Banner/BannerPetSelect.tsx b/packages/ui/panda/src/components/Banner/BannerPetSelect.tsx deleted file mode 100644 index 7e5673cc..00000000 --- a/packages/ui/panda/src/components/Banner/BannerPetSelect.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { css } from '_panda/css'; -import { bannerStyle } from './cva'; - -interface BannerPetSelectMediumProps { - name: string; - count: string; - image: string; - status?: 'selected' | 'gradient' | 'default'; -} - -export function BannerPetSelectMedium({ name, count, image, status = 'default' }: BannerPetSelectMediumProps) { - return ( -
    - {name} -

    {name}

    -

    {count}

    -
    - ); -} - -const nameStyle = css({ - textStyle: 'glyph16.regular', - color: 'white', -}); - -const countStyle = css({ - textStyle: 'glyph14.regular', - color: 'white.white_50', -}); diff --git a/packages/ui/panda/src/components/Banner/LevelBanner.tsx b/packages/ui/panda/src/components/Banner/LevelBanner.tsx deleted file mode 100644 index 113adb4c..00000000 --- a/packages/ui/panda/src/components/Banner/LevelBanner.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { ReactNode } from 'react'; -import { bannerStyle, BannerStyleProps } from './cva'; -import { css, cx } from '_panda/css'; - -type Props = BannerStyleProps & { - image: string | ReactNode; - level: number; - className?: string; -}; - -export function LevelBanner({ image, level, className, ...styleProps }: Props) { - return ( -
    - {typeof image === 'string' ? {image} : image} -

    Lv.{level}

    -
    - ); -} - -const levelTagStyle = css({ - borderRadius: '12px', - background: 'black.black_25', - padding: '0 8px', - color: 'white.white_75', - textStyle: 'glyph12.regular', - fontSize: '10px', - lineHeight: '20px', - position: 'absolute', - bottom: '3px', - right: '3px', -}); diff --git a/packages/ui/panda/src/components/Banner/cva.ts b/packages/ui/panda/src/components/Banner/cva.ts deleted file mode 100644 index edd3dedb..00000000 --- a/packages/ui/panda/src/components/Banner/cva.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { cva, RecipeVariantProps } from '_panda/css'; - -export const bannerStyle = cva({ - base: { - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - borderRadius: '12px', - transition: 'border 0.3s, background-color 0.3s', - position: 'relative', - borderColor: 'transparent', - overflow: 'hidden', - }, - variants: { - status: { - selected: { - border: '2px solid', - borderColor: 'white.white_50', - backgroundColor: 'white.white_25', - }, - gradient: { - background: - 'linear-gradient(133deg, rgba(255, 253, 201, 0.40) 2.19%, rgba(150, 230, 216, 0.40) 49.24%, rgba(125, 171, 241, 0.40) 98.21%)', - }, - default: { - backgroundColor: 'white.white_10', - }, - }, - size: { - small: { - width: '80px', - height: '80px', - '& img': { - width: '100%', - height: '100%', - objectFit: 'contain', - }, - - _mobile: { - width: '52px', - height: '52px', - borderRadius: '5px', - }, - }, - medium: { - width: '120px', - padding: '12px 20px', - height: '149px', - }, - full: { - width: '100%', - height: '100%', - '& img': { - width: '100%', - height: '100%', - objectFit: 'contain', - }, - }, - }, - }, - - defaultVariants: { - size: 'medium', - status: 'default', - }, -}); - -export type BannerStyleProps = RecipeVariantProps; diff --git a/packages/ui/panda/src/components/Banner/index.ts b/packages/ui/panda/src/components/Banner/index.ts deleted file mode 100644 index ce1d283c..00000000 --- a/packages/ui/panda/src/components/Banner/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { Banner, BannerSkeleton, BannerSkeletonList } from './Banner'; -export { LevelBanner } from './LevelBanner'; -export { BannerPetSelectMedium } from './BannerPetSelect'; diff --git a/packages/ui/panda/src/components/Button/Button.stories.tsx b/packages/ui/panda/src/components/Button/Button.stories.tsx deleted file mode 100644 index 5173e23b..00000000 --- a/packages/ui/panda/src/components/Button/Button.stories.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { Button } from './Button'; - -// 메타데이터 정의 -const meta = { - title: 'Components/Button', - component: Button, - parameters: { - layout: 'centered', - }, - tags: ['autodocs'], - argTypes: { - disabled: { - control: 'boolean', - description: '버튼 비활성화 상태', - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -// 기본 버튼 스토리 -export const 기본: Story = { - args: { - children: '버튼', - variant: 'primary', - size: 'm', - colorScheme: 'primary', - }, -}; diff --git a/packages/ui/panda/src/components/Button/Button.tsx b/packages/ui/panda/src/components/Button/Button.tsx deleted file mode 100644 index 54fe4a7c..00000000 --- a/packages/ui/panda/src/components/Button/Button.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { styled } from '_panda/jsx'; -import { buttonStyle } from './cva'; - -export const Button = styled('button', buttonStyle); -export const AnchorButton = styled('a', buttonStyle); diff --git a/packages/ui/panda/src/components/Button/cva.ts b/packages/ui/panda/src/components/Button/cva.ts deleted file mode 100644 index 35f9fee4..00000000 --- a/packages/ui/panda/src/components/Button/cva.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { cva } from '_panda/css'; - -export const buttonStyle = cva({ - base: { - padding: '8px 42px', - borderRadius: '6px', - border: '1px solid black', - fontFamily: 'Product Sans', - fontSize: '16px', - fontStyle: 'normal', - fontWeight: '400', - lineHeight: '150%', - letterSpacing: '-0.3px', - transition: 'filter 0.2s, box-shadow 0.2s', - backgroundColor: 'brand.canary', - boxShadow: '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #c4c382 inset, 0px 3px 0px 0px #fdfed2 inset', - color: '#000', - - _disabled: { - cursor: 'not-allowed', - }, - }, - variants: { - size: { - s: { - padding: '0 24px', - fontSize: '14px', - minHeight: '32px', - }, - m: { - padding: '0 30px', - fontSize: '16px', - minHeight: '40px', - height: '40px', - }, - l: { - padding: '25px 76px', - fontSize: '20px', - minHeight: '76px', - }, - }, - floating: { - true: { - width: '100%', - maxWidth: 'calc(100% - 32px)', - position: 'fixed', - bottom: '16px', - left: '50%', - transform: 'translateX(-50%)', - }, - }, - variant: { - primary: { - background: 'brand.canary', - boxShadow: '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #c4c382 inset, 0px 3px 0px 0px #fdfed2 inset', - color: '#000', - - _hover: { - backgroundColor: '#EAE78A', - boxShadow: - '0px 4px 16px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #C4C382 inset, 0px 3px 0px 0px #fdfed2 inset', - }, - _active: { - boxShadow: - '0px 4px 16px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #C4C382 inset, 0px 3px 0px 0px #fdfed2 inset', - }, - - _disabled: { - border: '1px solid #000', - backgroundColor: 'gray.gray_800', - boxShadow: - '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #a3a3a3 inset, 0px 3px 0px 0px #dbdbdb inset', - - _hover: { - backgroundColor: 'gray.gray_800', - boxShadow: - '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #a3a3a3 inset, 0px 3px 0px 0px #dbdbdb inset', - }, - _active: { - backgroundColor: 'gray.gray_800', - boxShadow: - '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #a3a3a3 inset, 0px 3px 0px 0px #dbdbdb inset', - }, - }, - }, - secondary: { - borderRadius: '6px', - border: '1px solid #000', - backgroundColor: '#FFF', - boxShadow: '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #A1A1B1 inset, 0px 3px 0px 0px #D2DCFE inset', - - _hover: { - backgroundColor: 'gray.gray_900', - boxShadow: - '0px 4px 16px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #A1A1B1 inset, 0px 3px 0px 0px #D2DCFE inset', - }, - - _disabled: { - backgroundColor: 'gray.gray_800', - boxShadow: - '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #A3A3A3 inset, 0px 3px 0px 0px #DBDBDB inset', - _hover: { - backgroundColor: 'gray.gray_800', - boxShadow: - '0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px -3px 0px 0px #A3A3A3 inset, 0px 3px 0px 0px #DBDBDB inset', - }, - }, - }, - }, - }, - defaultVariants: { - variant: 'primary', - size: 'm', - floating: false, - }, -}); diff --git a/packages/ui/panda/src/components/Button/index.ts b/packages/ui/panda/src/components/Button/index.ts deleted file mode 100644 index 8b166a86..00000000 --- a/packages/ui/panda/src/components/Button/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Button'; diff --git a/packages/ui/panda/src/components/Card/CardBack.tsx b/packages/ui/panda/src/components/Card/CardBack.tsx deleted file mode 100644 index 9ec41148..00000000 --- a/packages/ui/panda/src/components/Card/CardBack.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { css } from '_panda/css'; -import { ANIMAL_CARD_IMAGE_BASE_URL } from './constants'; - -interface Props { - tier: 'EX' | 'S_PLUS' | 'A_PLUS' | 'B_MINUS'; -} - -export function CardBack(props: Props) { - const { bg } = getTierToCardBackInfo(props.tier); - - return ( -
    - {props.tier} -
    - ); -} - -const bgStyle = css({ - width: '100%', -}); - -const getTierToCardBackInfo = (tier: Props['tier']): { bg: string } => { - switch (tier) { - case 'EX': - return { - bg: 'card-back-EX.webp', - }; - case 'S_PLUS': - return { - bg: 'card-back-S_PLUS.webp', - }; - case 'A_PLUS': - return { - bg: 'card-back-A_PLUS.webp', - }; - case 'B_MINUS': - return { - bg: 'card-back-B_MINUS.webp', - }; - } -}; diff --git a/packages/ui/panda/src/components/Card/GameCard.stories.tsx b/packages/ui/panda/src/components/Card/GameCard.stories.tsx deleted file mode 100644 index 224ed662..00000000 --- a/packages/ui/panda/src/components/Card/GameCard.stories.tsx +++ /dev/null @@ -1,146 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { GameCard } from './GameCard'; -import { css } from '_panda/css'; - -const meta: Meta = { - title: 'Components/GameCard', - component: GameCard, - parameters: { - layout: 'centered', - }, - tags: ['autodocs'], -}; - -export default meta; - -type Story = StoryObj; - -export const GameCardDefault: Story = { - args: { - title: 'QUOKKA', - percentage: '10%', - tier: 'A_PLUS', - size: 'medium', - imageUrl: 'https://static.gitanimals.org/personas/QUOKKA', - }, -}; - -export const AllCards = () => { - return ( -
    -

    Responsive Game Cards

    - -
    - - - - - -
    - -
    -

    Responsive Sizing

    -
    -
    - -
    -
    - -
    -
    -
    -
    - ); -}; - -const mainStyle = css({ - display: 'flex', - minHeight: '100vh', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - padding: '1rem', - gap: '2rem', -}); - -const headingStyle = css({ - fontSize: '1.5rem', - fontWeight: 'bold', - marginBottom: '1rem', -}); - -const cardGridStyle = css({ - display: 'grid', - gridTemplateColumns: 'repeat(1, 1fr)', - gap: '1.5rem', - width: '100%', - maxWidth: '64rem', - '@media (min-width: 640px)': { - gridTemplateColumns: 'repeat(2, 1fr)', - }, - '@media (min-width: 768px)': { - gridTemplateColumns: 'repeat(3, 1fr)', - }, -}); - -const responsiveDemoStyle = css({ - width: '100%', - maxWidth: '64rem', - marginTop: '2rem', -}); - -const subheadingStyle = css({ - fontSize: '1.25rem', - fontWeight: 'bold', - marginBottom: '1rem', -}); - -const responsiveGridStyle = css({ - display: 'grid', - gridTemplateColumns: 'repeat(1, 1fr)', - gap: '1.5rem', - '@media (min-width: 640px)': { - gridTemplateColumns: 'repeat(3, 1fr)', - }, -}); - -const fullWidthStyle = css({ - width: '100%', -}); - -const largeCardContainerStyle = css({ - width: '100%', - '@media (min-width: 640px)': { - gridColumn: 'span 2', - }, -}); diff --git a/packages/ui/panda/src/components/Card/GameCard.tsx b/packages/ui/panda/src/components/Card/GameCard.tsx deleted file mode 100644 index 20eaa8e0..00000000 --- a/packages/ui/panda/src/components/Card/GameCard.tsx +++ /dev/null @@ -1,172 +0,0 @@ -'use client'; - -import { css, cva } from '_panda/css'; -import { useRef, useState, useEffect } from 'react'; -import { ANIMAL_CARD_IMAGE_BASE_URL, CARD_INFO, CardTierType } from './constants'; - -interface GameCardProps { - tier: CardTierType; - title: string; - percentage: string; - imageUrl: string; - size?: 'small' | 'medium' | 'large' | 'responsive'; -} - -export function GameCard({ title, percentage, tier, imageUrl, size = 'medium' }: GameCardProps) { - const svgRef = useRef(null); - const [fontSize, setFontSize] = useState({ - title: 16, - percentage: 16, - rating: 16, - }); - const [positions, setPositions] = useState('1rem'); - - useEffect(() => { - if (!svgRef.current) return; - - const resizeObserver = new ResizeObserver((entries) => { - const width = entries[0].contentRect.width; - - setFontSize({ - title: width * 0.08, - percentage: width * 0.08, - rating: width * 0.1, - }); - - const paddingX = Math.max(12, width * 0.075); - const paddingY = Math.max(14.4, width * 0.09); - - setPositions(`${paddingY}px ${paddingX}px`); - }); - - resizeObserver.observe(svgRef.current); - return () => resizeObserver.disconnect(); - }, [size]); - - const { bg, thumbnail } = CARD_INFO[tier]; - - return ( -
    -
    - {'A_PLUS'} -
    - -
    -
    - {title} -
    -
    - {title} -
    -
    - -
    -
    {title}
    - -
    {percentage}%
    -
    -
    - ); -} - -const bgImageStyle = css({ - width: '100%', - height: '100%', -}); - -const imageContainerStyle = css({ - position: 'absolute', - inset: '0', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - top: '0', - left: '0', - right: '0', - width: '100%', - aspectRatio: '1/1', -}); - -const imageWrapperStyle = css({ - position: 'relative', - width: '90%', - aspectRatio: '1/1', -}); - -const imageStyle = css({ - width: '90%', - aspectRatio: '1/1', - position: 'absolute', - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - '& > img': { - width: '100%', - height: '100%', - objectFit: 'contain', - }, -}); - -const textWrapperStyle = css({ - position: 'absolute', - bottom: '0', - left: '0', - right: '0', - padding: '1rem', - fontWeight: 'bold', - color: '#000000', - display: 'flex', - justifyContent: 'space-between', -}); - -const titleStyle = css({ - fontWeight: 'bold', - color: '#000000', - flex: 1, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - textAlign: 'left', -}); - -const percentageStyle = css({ - fontWeight: 'bold', - color: '#000000', - textAlign: 'right', -}); - -const cardCva = cva({ - base: { - position: 'relative', - display: 'inline-block', - width: '100%', - maxWidth: '300px', - aspectRatio: '220/272', - }, - variants: { - size: { - small: { - maxWidth: '150px', - }, - medium: { - maxWidth: '200px', - }, - large: { - maxWidth: '300px', - }, - responsive: { - maxWidth: '100%', - }, - }, - }, -}); diff --git a/packages/ui/panda/src/components/Card/NoRatingCard.tsx b/packages/ui/panda/src/components/Card/NoRatingCard.tsx deleted file mode 100644 index 8445e01a..00000000 --- a/packages/ui/panda/src/components/Card/NoRatingCard.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { cx, css } from '_panda/css'; -import { flex } from '_panda/patterns'; - -// TODO : 아예 외부 경로로 옮겨도 괜찮을것 같다. - -type CardTierType = 'EX' | 'S_PLUS' | 'A_PLUS' | 'B_MINUS'; - -interface Props { - tier: CardTierType; - type: string; - personaImage: string; - bgUrl: string; - thumbnailUrl: string; - rightTextEl: React.ReactNode; -} - -export function NoRatingCard(props: Props) { - return ( -
    -
    - {props.tier} -
    -
    - {props.tier} -
    -
    - {props.type} -
    -
    -

    {snakeToTitleCase(props.type)}

    -

    {props.rightTextEl}

    -
    -
    - ); -} - -/** - * 스네이크 케이스 문자열을 타이틀 케이스로 변환합니다. - * @param str - 변환할 스네이크 케이스 문자열 - * @returns 타이틀 케이스로 변환된 문자열 - * @example - * snakeToTitleCase('SUMI_MA') => 'Sumi Ma' - */ -export const snakeToTitleCase = (str: string): string => { - return str - .toLowerCase() - .split('_') - .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) - .join(' '); -}; - -export const container = css({ - position: 'relative', - width: '265px', - height: '328px', -}); - -export const bgImage = css({ - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - zIndex: 0, -}); - -export const thumbnailImage = css({ - position: 'absolute', - top: '16px', - left: '16px', - right: '16px', - - zIndex: 1, -}); - -export const infoWrapper = flex({ - position: 'absolute', - bottom: '20px', - left: '20px', - right: '20px', - justifyContent: 'space-between', - gap: '8px', -}); - -export const typeText = css({ - textStyle: 'glyph24.bold', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - overflow: 'hidden', - lineHeight: '40px', -}); - -export const ratingText = css({ - textStyle: 'glyph22.regular', - lineHeight: '40px', -}); diff --git a/packages/ui/panda/src/components/Card/constants.ts b/packages/ui/panda/src/components/Card/constants.ts deleted file mode 100644 index 3937be9e..00000000 --- a/packages/ui/panda/src/components/Card/constants.ts +++ /dev/null @@ -1,26 +0,0 @@ -export type CardTierType = 'EX' | 'S_PLUS' | 'A_PLUS' | 'B_MINUS' | 'EVOLUTION'; - -export const CARD_INFO: Record = { - EX: { - bg: 'card-bg-EX.webp', - thumbnail: 'card-thumbnail-EX.webp', - }, - S_PLUS: { - bg: 'card-bg-S_PLUS.webp', - thumbnail: 'card-thumbnail-S_PLUS.webp', - }, - A_PLUS: { - bg: 'card-bg-A_PLUS.webp', - thumbnail: 'card-thumbnail-A_PLUS.webp', - }, - B_MINUS: { - bg: 'card-bg-B_MINUS.webp', - thumbnail: 'card-thumbnail-B_MINUS.webp', - }, - EVOLUTION: { - bg: 'card-bg-EVOLUTION.webp', - thumbnail: 'card-thumbnail-EVOLUTION.webp', - }, -}; - -export const ANIMAL_CARD_IMAGE_BASE_URL = '/assets/animal-card/'; diff --git a/packages/ui/panda/src/components/Card/index.ts b/packages/ui/panda/src/components/Card/index.ts deleted file mode 100644 index 55c84945..00000000 --- a/packages/ui/panda/src/components/Card/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { CardBack } from './CardBack'; -export { NoRatingCard } from './NoRatingCard'; -export { GameCard } from './GameCard'; diff --git a/packages/ui/panda/src/components/CheckBox/CheckBox.tsx b/packages/ui/panda/src/components/CheckBox/CheckBox.tsx deleted file mode 100644 index 769556ef..00000000 --- a/packages/ui/panda/src/components/CheckBox/CheckBox.tsx +++ /dev/null @@ -1,35 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as CheckboxPrimitive from '@radix-ui/react-checkbox'; -import { Check } from 'lucide-react'; -import { css, cx } from '_panda/css'; -import { styled } from '_panda/jsx'; -import { checkbox, icon } from '_panda/recipes'; - -const BaseCheckbox = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => { - const styles = checkbox(); - - return ( - - - - - - ); -}); -BaseCheckbox.displayName = CheckboxPrimitive.Root.displayName; - -export const Checkbox = styled(BaseCheckbox); - -const checkboxLightStyle = css({ - borderColor: '#fafafa', - - '&[data-state="checked"]': { - backgroundColor: '#fafafa', - color: '#000', - }, -}); diff --git a/packages/ui/panda/src/components/CheckBox/index.ts b/packages/ui/panda/src/components/CheckBox/index.ts deleted file mode 100644 index 9c857f3d..00000000 --- a/packages/ui/panda/src/components/CheckBox/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Checkbox } from './CheckBox'; diff --git a/packages/ui/panda/src/components/Chip/CombineChip.stories.tsx b/packages/ui/panda/src/components/Chip/CombineChip.stories.tsx deleted file mode 100644 index aca529ad..00000000 --- a/packages/ui/panda/src/components/Chip/CombineChip.stories.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { CombineChip } from './CombineChip'; - -const meta: Meta = { - title: 'Components/CombineChip', - component: CombineChip, - tags: ['autodocs'], - parameters: { - layout: 'centered', - }, -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - render: () => ( - - - - - - - 옵션 - 옵션 1 - 옵션 2 - 옵션 3 - - - - ), -}; - -export const SmallSize: Story = { - render: () => ( - - - - - - - 옵션 - 옵션 1 - 옵션 2 - - - - ), -}; diff --git a/packages/ui/panda/src/components/Chip/CombineChip.tsx b/packages/ui/panda/src/components/Chip/CombineChip.tsx deleted file mode 100644 index 6ab7cdd1..00000000 --- a/packages/ui/panda/src/components/Chip/CombineChip.tsx +++ /dev/null @@ -1,139 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as ChipPrimitive from '@radix-ui/react-select'; -import { Check, ChevronDown } from 'lucide-react'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { select, icon } from '_panda/recipes'; -import { css, cva, cx, RecipeVariantProps } from '_panda/css'; - -const chipTriggerStyle = cva({ - base: { - width: 'fit-content', - padding: '6px 12px 6px 8px', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - }, - - variants: { - size: { - small: { - height: '30px', - color: 'white.white_50', - borderRadius: '6px', - textStyle: 'glyph12.regular', - borderColor: 'white.white_5', - backgroundColor: 'white.white_5', - gap: '1px', - }, - medium: { - height: '36px', - color: 'white.white_90', - textStyle: 'glyph16.regular', - borderColor: 'white.white_25', - backgroundColor: 'white.white_25', - borderRadius: '8px', - gap: '2px', - }, - }, - }, - defaultVariants: { - size: 'medium', - }, -}); - -type ChipTriggerStyleProps = RecipeVariantProps; - -const chipContentStyle = css({ - backgroundColor: 'black.black_75', - borderRadius: 10, - border: '1px solid', - borderColor: 'black.black_50', - color: 'white', - zIndex: 9999, - pointerEvents: 'auto', -}); - -const chipItemStyle = css({ - color: 'white', - textStyle: 'glyph16.regular', - - _hover: { - backgroundColor: 'white.white_5', - }, - _focus: { - backgroundColor: 'white.white_5', - }, -}); - -const { withProvider, withContext } = createStyleContext(select); - -const Trigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & ChipTriggerStyleProps ->(({ children, ...props }, ref) => ( - - {children} - - - - -)); -Trigger.displayName = ChipPrimitive.Trigger.displayName; - -const Viewport = withContext(ChipPrimitive.Viewport, 'viewport'); - -const Content = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, position = 'popper', ...props }, ref) => ( - - - {children} - - -)); -Content.displayName = ChipPrimitive.Content.displayName; - -const ItemIndicator = withContext(styled(ChipPrimitive.ItemIndicator), 'itemIndicator'); - -const Item = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - - {children} - -)); -Item.displayName = ChipPrimitive.Item.displayName; - -const ChipRoot = withProvider(styled(ChipPrimitive.Root), 'root'); -const ChipGroup = withContext(styled(ChipPrimitive.Group), 'group'); -const ChipValue = withContext(styled(ChipPrimitive.Value), 'value'); -const ChipTrigger = withContext(styled(Trigger), 'trigger'); -const ChipContent = withContext(styled(Content), 'content'); -const ChipLabel = withContext(styled(ChipPrimitive.Label), 'label'); -const ChipItem = withContext(styled(Item), 'item'); -const ChipSeparator = withContext(styled(ChipPrimitive.Separator), 'separator'); - -export const CombineChip = Object.assign(ChipRoot, { - Group: ChipGroup, - Value: ChipValue, - Trigger: ChipTrigger, - Content: ChipContent, - Label: ChipLabel, - Item: ChipItem, - Separator: ChipSeparator, -}); diff --git a/packages/ui/panda/src/components/Chip/index.ts b/packages/ui/panda/src/components/Chip/index.ts deleted file mode 100644 index f84225b8..00000000 --- a/packages/ui/panda/src/components/Chip/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './CombineChip'; diff --git a/packages/ui/panda/src/components/Dialog/CommonDialog.tsx b/packages/ui/panda/src/components/Dialog/CommonDialog.tsx deleted file mode 100644 index 19d7f184..00000000 --- a/packages/ui/panda/src/components/Dialog/CommonDialog.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { css } from '_panda/css'; -import { Dialog } from './Dialog'; - -interface CommonDialogProps { - isOpen: boolean; - onClose: () => void; - title?: string; - description?: string; - children: React.ReactNode; - - size?: 'default' | 'large' | 'screen'; -} - -export function CommonDialog(props: CommonDialogProps) { - return ( - - - {props.title && {props.title}} - {props.description && {props.description}} - {props.children} - - - ); -} - -const headingStyle = css({ display: 'flex', flexDirection: 'column', justifyContent: 'flex-end' }); -const descriptionStyle = css({ marginTop: '16px' }); diff --git a/packages/ui/panda/src/components/Dialog/Dialog.styles.ts b/packages/ui/panda/src/components/Dialog/Dialog.styles.ts deleted file mode 100644 index 720e28a1..00000000 --- a/packages/ui/panda/src/components/Dialog/Dialog.styles.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { css, cva, RecipeVariantProps } from '_panda/css'; - -export const dialogContentCva = cva({ - base: { - background: 'gray.gray_150', - borderRadius: '16px', - border: '1px solid', - borderColor: 'gray.gray_150', - zIndex: 3001, - color: 'white.white_100', - }, - variants: { - size: { - default: { - display: 'flex', - width: '100%', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - gap: '28px', - color: 'white', - '& .dialog-title': { - textStyle: 'glyph20.regular', - textAlign: 'left', - width: '100%', - }, - - _mobile: { - maxWidth: 'calc(100vw - 48px)', - }, - }, - large: { - borderRadius: '16px', - backgroundColor: 'gray.gray_150', - padding: '60px 40px', - - maxWidth: 'calc(100% - 400px)', - maxHeight: 'calc(100% - 240px)', - width: '100%', - height: '100%', - - '@media (max-width: 1200px)': { - padding: '48px 24px', - maxWidth: 'calc(100vw - 240px)', - maxHeight: 'calc(100vh - 120px)', - }, - _mobile: { - height: '100%', - maxWidth: '100vw', - maxHeight: '100vh', - borderRadius: '0px', - }, - }, - screen: { - margin: 'auto', - borderRadius: '0', - backgroundColor: 'gray.gray_150', - padding: '24px', - width: '100vw', - height: '100vh', - maxWidth: '100vw', - maxHeight: '100vh', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - - '@media (min-width: 1920px)': { - borderRadius: '16px', - width: '1400px', - height: 'fit-content', - }, - }, - }, - }, - defaultVariants: { - size: 'default', - }, -}); - -export type DialogContentVariants = RecipeVariantProps; - -export const dialogScrollableStyle = css({ - display: 'flex', - flexDirection: 'column', - overflow: 'hidden', - '& .dialog-title': { flexShrink: 0 }, -}); - -export const dialogTopSlotStyle = css({ - flexShrink: 0, - width: '100%', -}); - -export const dialogBodyStyle = css({ - flex: 1, - minHeight: 0, - overflowY: 'auto', - overflowX: 'hidden', - width: '100%', -}); - -export const dialogTitleStyle = css({ - textStyle: 'glyph48.bold', - color: 'white.white_100', - textAlign: 'center', - '@media (max-width: 1200px)': { - textStyle: 'glyph32.bold', - }, - _mobile: { - textStyle: 'glyph24.bold', - }, -}); diff --git a/packages/ui/panda/src/components/Dialog/Dialog.tsx b/packages/ui/panda/src/components/Dialog/Dialog.tsx deleted file mode 100644 index becac65a..00000000 --- a/packages/ui/panda/src/components/Dialog/Dialog.tsx +++ /dev/null @@ -1,107 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import { X } from 'lucide-react'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { css, cx } from '_panda/css'; -import { dialog } from '_panda/recipes'; -import { - dialogContentCva, - DialogContentVariants, - dialogTitleStyle, - dialogScrollableStyle, - dialogTopSlotStyle, - dialogBodyStyle, -} from './Dialog.styles'; - -const { withProvider, withContext } = createStyleContext(dialog); - -const DialogPortal = withContext(styled(DialogPrimitive.Portal), 'portal'); -const DialogOverlay = withContext(styled(DialogPrimitive.Overlay), 'overlay'); -const DialogClose = withContext(styled(DialogPrimitive.Close), 'close'); - -type DialogContentProps = { - isShowClose?: boolean; - scrollable?: boolean; -} & DialogContentVariants & - React.ComponentPropsWithoutRef; - -const Content = React.forwardRef, DialogContentProps>( - ({ children, isShowClose = true, scrollable, ...props }, ref) => ( - - - - {children} - {isShowClose && ( - - - Close - - )} - - - ), -); - -Content.displayName = DialogPrimitive.Content.displayName; - -// TODO: z-index 수정 필요 -const overlayStyle = css({ background: 'black.black_75', zIndex: 3000 }); -const closeStyle = css({ background: 'transparent', outline: 'none', padding: '0' }); - -const Title = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => { - return ( - - {children} - - ); -}); - -Title.displayName = DialogPrimitive.Title.displayName; - -const TopSlot = React.forwardRef>( - ({ className, ...props }, ref) =>
    , -); -TopSlot.displayName = 'DialogTopSlot'; - -const Body = React.forwardRef>( - ({ className, ...props }, ref) =>
    , -); -Body.displayName = 'DialogBody'; - -export const DialogRoot = withProvider(styled(DialogPrimitive.Root), 'root'); -export const DialogTrigger = withContext(styled(DialogPrimitive.Trigger), 'trigger'); -export const DialogContent = withContext(styled(Content), 'content'); -export const DialogHeader = withContext(styled('div'), 'header'); -export const DialogFooter = withContext(styled('div'), 'footer'); -export const DialogTitle = withContext(styled(Title), 'title'); -export const DialogDescription = withContext(styled(DialogPrimitive.Description), 'description'); -export const DialogTopSlot = TopSlot; -export const DialogBody = Body; - -const Dialog = Object.assign(DialogRoot, { - Root: DialogRoot, - Trigger: DialogTrigger, - Content: DialogContent, - Header: DialogHeader, - Footer: DialogFooter, - Title: DialogTitle, - Description: DialogDescription, - TopSlot: DialogTopSlot, - Body: DialogBody, -}); - -export { Dialog }; diff --git a/packages/ui/panda/src/components/Dialog/index.ts b/packages/ui/panda/src/components/Dialog/index.ts deleted file mode 100644 index c7509f44..00000000 --- a/packages/ui/panda/src/components/Dialog/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Dialog'; -export * from './Dialog.styles'; -export * from './CommonDialog'; diff --git a/packages/ui/panda/src/components/DropdownMenu/DropdownMenu.tsx b/packages/ui/panda/src/components/DropdownMenu/DropdownMenu.tsx deleted file mode 100644 index fecdfdb0..00000000 --- a/packages/ui/panda/src/components/DropdownMenu/DropdownMenu.tsx +++ /dev/null @@ -1,136 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; -import { Check, ChevronRight, Circle } from 'lucide-react'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { dropdownMenu, icon } from '_panda/recipes'; -import { css, cx } from '_panda/css'; -const { withProvider, withContext } = createStyleContext(dropdownMenu); - -const SubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, children, ...props }, ref) => ( - - {children} - - -)); -SubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName; - -const Content = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ sideOffset = 4, ...props }, ref) => ( - - - -)); -Content.displayName = DropdownMenuPrimitive.Content.displayName; - -const Item = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, ...props }, ref) => ( - -)); -Item.displayName = DropdownMenuPrimitive.Item.displayName; - -const ItemIndicator = withContext(styled(DropdownMenuPrimitive.ItemIndicator), 'itemIndicator'); - -const CheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - {children} - -)); -CheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName; - -const RadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - {children} - -)); -RadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; - -const Label = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - insetLeft?: boolean; - } ->(({ className, insetLeft, ...props }, ref) => ( - -)); -Label.displayName = DropdownMenuPrimitive.Label.displayName; - -export const DropdownMenu = withProvider(styled(DropdownMenuPrimitive.Root), 'root'); -export const DropdownMenuTrigger = withContext(styled(DropdownMenuPrimitive.Trigger), 'trigger'); -export const DropdownMenuGroup = withContext(styled(DropdownMenuPrimitive.Group), 'group'); -export const DropdownMenuPortal = withContext(styled(DropdownMenuPrimitive.Portal), 'portal'); -export const DropdownMenuSub = withContext(styled(DropdownMenuPrimitive.Sub), 'sub'); -export const DropdownMenuRadioGroup = withContext(styled(DropdownMenuPrimitive.RadioGroup), 'radioGroup'); -export const DropdownMenuSubTrigger = withContext(styled(SubTrigger), 'subTrigger'); -export const DropdownMenuSubContent = withContext(styled(DropdownMenuPrimitive.SubContent), 'subContent'); -export const DropdownMenuContent = withContext(styled(Content), 'content'); -export const DropdownMenuItem = withContext(styled(Item), 'item'); -export const DropdownMenuCheckboxItem = withContext(styled(CheckboxItem), 'checkboxItem'); -export const DropdownMenuRadioItem = withContext(styled(RadioItem), 'radioItem'); -export const DropdownMenuLabel = withContext(styled(Label), 'label'); -export const DropdownMenuSeparator = withContext(styled(DropdownMenuPrimitive.Separator), 'separator'); -export const DropdownMenuShortcut = withContext(styled('span'), 'shortcut'); diff --git a/packages/ui/panda/src/components/DropdownMenu/index.tsx b/packages/ui/panda/src/components/DropdownMenu/index.tsx deleted file mode 100644 index 8aadf2fa..00000000 --- a/packages/ui/panda/src/components/DropdownMenu/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './DropdownMenu'; diff --git a/packages/ui/panda/src/components/Label/Label.tsx b/packages/ui/panda/src/components/Label/Label.tsx deleted file mode 100644 index 6850e574..00000000 --- a/packages/ui/panda/src/components/Label/Label.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { styled, type HTMLStyledProps } from '_panda/jsx'; -import { label } from '_panda/recipes'; - -export const Label = styled('label', label); -export type LabelProps = HTMLStyledProps; diff --git a/packages/ui/panda/src/components/Label/index.tsx b/packages/ui/panda/src/components/Label/index.tsx deleted file mode 100644 index dd0252d8..00000000 --- a/packages/ui/panda/src/components/Label/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Label } from './Label'; diff --git a/packages/ui/panda/src/components/ScrollArea/ScrollArea.tsx b/packages/ui/panda/src/components/ScrollArea/ScrollArea.tsx deleted file mode 100644 index d6e1df0c..00000000 --- a/packages/ui/panda/src/components/ScrollArea/ScrollArea.tsx +++ /dev/null @@ -1,44 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { scrollArea } from '_panda/recipes'; - -const { withProvider, withContext } = createStyleContext(scrollArea); - -const Viewport = withContext(ScrollAreaPrimitive.Viewport, 'viewport'); -const Corner = withContext(ScrollAreaPrimitive.Corner, 'corner'); -const Thumb = withContext(ScrollAreaPrimitive.ScrollAreaThumb, 'thumb'); - -const BaseScrollBar = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ orientation = 'vertical', ...props }, ref) => ( - - - -)); -BaseScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName; - -export const ScrollBar = withContext(styled(BaseScrollBar), 'scrollbar'); - -const BaseScrollArea = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - {children} - - - -)); -BaseScrollArea.displayName = ScrollAreaPrimitive.Root.displayName; - -export const ScrollArea = withProvider(styled(BaseScrollArea), 'root'); diff --git a/packages/ui/panda/src/components/ScrollArea/index.ts b/packages/ui/panda/src/components/ScrollArea/index.ts deleted file mode 100644 index 4ab76e5c..00000000 --- a/packages/ui/panda/src/components/ScrollArea/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './ScrollArea'; diff --git a/packages/ui/panda/src/components/SearchBar/SearchBar.stories.tsx b/packages/ui/panda/src/components/SearchBar/SearchBar.stories.tsx deleted file mode 100644 index 92807799..00000000 --- a/packages/ui/panda/src/components/SearchBar/SearchBar.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { SearchBar } from './SearchBar'; - -const meta: Meta = { - title: 'Components/SearchBar', - component: SearchBar, - tags: ['autodocs'], -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: { - placeholder: '검색어를 입력하세요', - }, -}; - -export const WithValue: Story = { - args: { - placeholder: '검색어를 입력하세요', - defaultValue: '검색어', - }, -}; - -export const Disabled: Story = { - args: { - placeholder: '검색어를 입력하세요', - disabled: true, - }, -}; - -export const WithOnSubmit: Story = { - args: { - placeholder: '검색어를 입력하세요', - onSubmit: () => alert('검색이 실행되었습니다!'), - }, -}; diff --git a/packages/ui/panda/src/components/SearchBar/SearchBar.tsx b/packages/ui/panda/src/components/SearchBar/SearchBar.tsx deleted file mode 100644 index a789edf3..00000000 --- a/packages/ui/panda/src/components/SearchBar/SearchBar.tsx +++ /dev/null @@ -1,63 +0,0 @@ -'use client'; - -import { css, cx } from '_panda/css'; -import { flex } from '_panda/patterns'; -import { SearchIcon } from 'lucide-react'; -import { ComponentProps } from 'react'; - -export function SearchBar({ onSubmit, onKeyDown, ...props }: ComponentProps<'input'> & { onSubmit?: () => void }) { - return ( -
    - { - if (e.key === 'Enter') { - onSubmit?.(); - } - onKeyDown?.(e); - }} - /> - -
    - ); -} - -const containerStyle = flex({ - width: '100%', - height: '40px', - alignItems: 'center', - gap: '8px', - borderRadius: '8px', - border: '1px solid', - borderColor: 'white.white_25', - flexShrink: 0, - position: 'relative', - transition: 'border-color 0.1s ease-in-out', - _focusWithin: { - borderColor: 'white.white_75', - }, -}); - -const inputStyle = css({ - width: '100%', - height: '100%', - border: 'none', - outline: 'none', - textStyle: 'glyph16.regular', - padding: '8px 12px', - color: 'white.white_75', - _placeholder: { - color: 'white.white_25', - }, -}); - -const iconStyle = css({ - position: 'absolute', - right: '12px', - top: '50%', - transform: 'translateY(-50%)', -}); diff --git a/packages/ui/panda/src/components/SearchBar/index.ts b/packages/ui/panda/src/components/SearchBar/index.ts deleted file mode 100644 index 3d7e42eb..00000000 --- a/packages/ui/panda/src/components/SearchBar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SearchBar'; diff --git a/packages/ui/panda/src/components/Select/Select.stories.tsx b/packages/ui/panda/src/components/Select/Select.stories.tsx deleted file mode 100644 index afe0481c..00000000 --- a/packages/ui/panda/src/components/Select/Select.stories.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { Select } from './Select'; - -const meta: Meta = { - title: 'Components/Select', - component: Select, - tags: ['autodocs'], - parameters: { - layout: 'centered', - }, -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - render: () => ( - - ), -}; - -export const WithSeparator: Story = { - render: () => ( - - ), -}; diff --git a/packages/ui/panda/src/components/Select/Select.styles.ts b/packages/ui/panda/src/components/Select/Select.styles.ts deleted file mode 100644 index 82ccddc9..00000000 --- a/packages/ui/panda/src/components/Select/Select.styles.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { css, cva, RecipeVariantProps } from '_panda/css'; - -export const selectTriggerStyle = cva({ - base: { - textStyle: 'glyph16.regular', - color: 'white.white_90', - width: 'fit-content', - height: '36px', - padding: '6px 8px', - borderRadius: 10, - backgroundColor: 'white.white_25', - borderColor: 'white.white_25', - }, - - variants: { - size: { - sm: { - height: '30px', - backgroundColor: 'white.white_5', - }, - }, - }, -}); - -export type SelectTriggerStyleProps = RecipeVariantProps; - -export const selectContentStyle = css({ - backgroundColor: 'black.black_75', - borderRadius: 10, - border: '1px solid', - borderColor: 'black.black_50', - color: 'white', -}); - -export const selectItemStyle = css({ - color: 'white', - textStyle: 'glyph16.regular', - - _hover: { - backgroundColor: 'white.white_5', - }, - _focus: { - backgroundColor: 'white.white_5', - }, -}); diff --git a/packages/ui/panda/src/components/Select/Select.tsx b/packages/ui/panda/src/components/Select/Select.tsx deleted file mode 100644 index 9b66581f..00000000 --- a/packages/ui/panda/src/components/Select/Select.tsx +++ /dev/null @@ -1,84 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as SelectPrimitive from '@radix-ui/react-select'; -import { Check, ChevronDown } from 'lucide-react'; -import { createStyleContext } from '@shadow-panda/style-context'; -import { styled } from '_panda/jsx'; -import { select, icon } from '_panda/recipes'; -import { cx } from '_panda/css'; -import { selectContentStyle, selectItemStyle, selectTriggerStyle, SelectTriggerStyleProps } from './Select.styles'; - -const { withProvider, withContext } = createStyleContext(select); - -const Trigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & SelectTriggerStyleProps ->(({ children, ...props }, ref) => ( - - {children} - - - - -)); -Trigger.displayName = SelectPrimitive.Trigger.displayName; - -const Viewport = withContext(SelectPrimitive.Viewport, 'viewport'); - -const Content = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, position = 'popper', ...props }, ref) => ( - - - {children} - - -)); -Content.displayName = SelectPrimitive.Content.displayName; - -const ItemIndicator = withContext(styled(SelectPrimitive.ItemIndicator), 'itemIndicator'); - -const Item = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ children, ...props }, ref) => ( - - - - - - {children} - -)); -Item.displayName = SelectPrimitive.Item.displayName; - -const SelectRoot = withProvider(styled(SelectPrimitive.Root), 'root'); -const SelectGroup = withContext(styled(SelectPrimitive.Group), 'group'); -const SelectValue = withContext(styled(SelectPrimitive.Value), 'value'); -const SelectTrigger = withContext(styled(Trigger), 'trigger'); -const SelectContent = withContext(styled(Content), 'content'); -const SelectLabel = withContext(styled(SelectPrimitive.Label), 'label'); -const SelectItem = withContext(styled(Item), 'item'); -const SelectSeparator = withContext(styled(SelectPrimitive.Separator), 'separator'); - -export const Select = Object.assign(SelectRoot, { - Group: SelectGroup, - Value: SelectValue, - Trigger: SelectTrigger, - Content: SelectContent, - Label: SelectLabel, - Item: SelectItem, - Separator: SelectSeparator, -}); diff --git a/packages/ui/panda/src/components/Select/index.ts b/packages/ui/panda/src/components/Select/index.ts deleted file mode 100644 index f5430298..00000000 --- a/packages/ui/panda/src/components/Select/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Chip 컴포넌트와 동일합니다. - * 디자인 가이드 상 이름이 Chip임으로 통일하는 것이 좋을 것 같아요. - * @deprecated - */ -export * from './Select'; diff --git a/packages/ui/panda/src/components/Skeleton/Skeleton.tsx b/packages/ui/panda/src/components/Skeleton/Skeleton.tsx deleted file mode 100644 index 996ac221..00000000 --- a/packages/ui/panda/src/components/Skeleton/Skeleton.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { styled } from '_panda/jsx'; -import { skeletonStyle } from './cva'; - -export const Skeleton = styled('div', skeletonStyle); diff --git a/packages/ui/panda/src/components/Skeleton/cva.tsx b/packages/ui/panda/src/components/Skeleton/cva.tsx deleted file mode 100644 index 65ddbcba..00000000 --- a/packages/ui/panda/src/components/Skeleton/cva.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { cva } from '_panda/css'; - -export const skeletonStyle = cva({ - base: { - overflow: 'hidden', - backgroundSize: '200% 100%', - animation: `skeletonLoading 1.5s infinite linear`, - background: - 'linear-gradient(90deg, token(colors.gray.800) 25%, token(colors.gray.600) 50%, token(colors.gray.200) 75%, token(colors.gray.800) 100%)', - }, - variants: { - color: { - white: { - backgroundColor: 'white_10', - background: - 'linear-gradient(90deg, token(colors.gray.800) 25%, token(colors.gray.600) 50%, token(colors.gray.200) 75%, token(colors.gray.800) 100%)', - }, - black: { - backgroundColor: 'black_10', - }, - }, - }, - defaultVariants: { - color: 'white', - }, -}); diff --git a/packages/ui/panda/src/components/Skeleton/index.ts b/packages/ui/panda/src/components/Skeleton/index.ts deleted file mode 100644 index 0dbc6dac..00000000 --- a/packages/ui/panda/src/components/Skeleton/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { Skeleton } from './Skeleton'; -export { skeletonStyle } from './cva'; diff --git a/packages/ui/panda/src/components/Textfield/TextField.stories.tsx b/packages/ui/panda/src/components/Textfield/TextField.stories.tsx deleted file mode 100644 index cb44aaf9..00000000 --- a/packages/ui/panda/src/components/Textfield/TextField.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { TextField } from './TextField'; - -const meta: Meta = { - title: 'Components/TextField', - component: TextField, - tags: ['autodocs'], -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: { - placeholder: '텍스트를 입력하세요', - }, -}; - -export const WithValue: Story = { - args: { - placeholder: '텍스트를 입력하세요', - defaultValue: '입력된 텍스트', - }, -}; - -export const WithError: Story = { - args: { - placeholder: '텍스트를 입력하세요', - error: '올바른 텍스트를 입력해주세요', - }, -}; - -export const Disabled: Story = { - args: { - placeholder: '텍스트를 입력하세요', - disabled: true, - }, -}; diff --git a/packages/ui/panda/src/components/Textfield/TextField.tsx b/packages/ui/panda/src/components/Textfield/TextField.tsx deleted file mode 100644 index 433ad002..00000000 --- a/packages/ui/panda/src/components/Textfield/TextField.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { css, cx } from '_panda/css'; -import { ComponentProps } from 'react'; - -interface TextFieldProps extends ComponentProps<'input'> { - error?: string; -} - -export const TextField = ({ error, ...props }: TextFieldProps) => { - return ( -
    - - {error &&

    {error}

    } -
    - ); -}; - -const textFieldStyle = css({ - height: '55px', - padding: '14px 20px', - alignItems: 'flex-start', - gap: '8px', - borderRadius: '8px', - border: '1px solid', - borderColor: 'white.white_25', - color: 'white', - textStyle: 'glyph16.regular', - width: '100%', - _placeholder: { - color: 'white.white_50', - }, -}); - -const errorStyle = css({ - textStyle: 'glyph14.regular', - color: 'brand.coral', - mt: '6px', -}); diff --git a/packages/ui/panda/src/components/Textfield/Textarea.stories.tsx b/packages/ui/panda/src/components/Textfield/Textarea.stories.tsx deleted file mode 100644 index b2d5e2ee..00000000 --- a/packages/ui/panda/src/components/Textfield/Textarea.stories.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { TextArea } from './Textarea'; - -const meta: Meta = { - title: 'Components/TextArea', - component: TextArea, - tags: ['autodocs'], -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: { - placeholder: '텍스트를 입력하세요', - }, -}; - -export const WithValue: Story = { - args: { - placeholder: '텍스트를 입력하세요', - defaultValue: '입력된 텍스트입니다.\n여러 줄의 텍스트를 입력할 수 있습니다.', - }, -}; - -export const Disabled: Story = { - args: { - placeholder: '텍스트를 입력하세요', - disabled: true, - }, -}; diff --git a/packages/ui/panda/src/components/Textfield/Textarea.tsx b/packages/ui/panda/src/components/Textfield/Textarea.tsx deleted file mode 100644 index 51e189b1..00000000 --- a/packages/ui/panda/src/components/Textfield/Textarea.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { cx, css } from '_panda/css'; -import { ComponentProps } from 'react'; - -export const TextArea = (props: ComponentProps<'textarea'>) => { - return