From 087c6cba5e3eaf76775a25aefa947ae2af344089 Mon Sep 17 00:00:00 2001 From: TinsFox Date: Fri, 29 Nov 2024 15:01:37 +0800 Subject: [PATCH] feat: use monorepo (#17) * ci: update release config * chore: monorepo * chore: bump turbo * fix: turbo config * feat: enable turbo new tui * feat: new docs * feat: update docs * feat: split ui to package * docs: update docs * feat: add `web` package * feat: add `tauri` package * chore: remove deprecated docs * feat: package * chore: remove internal pro-components * feat: change the menu control icon * feat: internal storybook * chore: eslint fix quiet * fix: fix table schema * fix: filed --- .github/workflows/gh-deploy.yml | 11 +- .github/workflows/release.yml | 26 +- .gitignore | 12 +- .storybook/main.ts | 20 - .vscode/settings.json | 15 +- .env.example => apps/admin/.env.example | 0 apps/admin/.storybook/Introduction.mdx | 30 + .../admin/.storybook}/ThemeChanger.tsx | 4 +- apps/admin/.storybook/main.ts | 28 + .../admin/.storybook}/manager.ts | 0 .../admin/.storybook}/preview.tsx | 2 +- .../admin/.storybook}/theme.ts | 0 components.json => apps/admin/components.json | 0 env.ts => apps/admin/env.ts | 0 index.html => apps/admin/index.html | 0 {locales => apps/admin/locales}/en/auth.json | 0 .../admin/locales}/en/common.json | 0 .../admin/locales}/en/errors.json | 0 {locales => apps/admin/locales}/en/forms.json | 0 .../admin/locales}/en/navigation.json | 0 .../admin/locales}/en/settings.json | 0 .../admin/locales}/zh-CN/auth.json | 0 .../admin/locales}/zh-CN/common.json | 0 .../admin/locales}/zh-CN/errors.json | 0 .../admin/locales}/zh-CN/forms.json | 0 .../admin/locales}/zh-CN/navigation.json | 0 .../admin/locales}/zh-CN/settings.json | 0 apps/admin/package.json | 107 + .../admin/postcss.config.cjs | 0 {public => apps/admin/public}/avatars/01.png | Bin {public => apps/admin/public}/avatars/02.png | Bin {public => apps/admin/public}/avatars/03.png | Bin {public => apps/admin/public}/avatars/04.png | Bin {public => apps/admin/public}/avatars/05.png | Bin .../admin/public}/avatars/shadcn.jpg | Bin {public => apps/admin/public}/favicon.ico | Bin {public => apps/admin/public}/index.png | Bin {public => apps/admin/public}/overview.png | Bin .../admin}/public/vite-boilerplate.svg | 0 {public => apps/admin/public}/vite.svg | 0 {scripts => apps/admin/scripts}/lib.ts | 0 {src => apps/admin/src}/App.tsx | 0 .../admin/src}/assets/logo/docker.svg | 0 .../admin/src}/assets/logo/eslint.svg | 0 {src => apps/admin/src}/assets/logo/faker.svg | 0 {src => apps/admin/src}/assets/logo/fly.svg | 0 .../admin/src}/assets/logo/github.svg | 0 {src => apps/admin/src}/assets/logo/msw.svg | 0 .../admin/src}/assets/logo/playwright.svg | 0 .../admin/src}/assets/logo/prettier.svg | 0 .../admin/src}/assets/logo/prisma.svg | 0 {src => apps/admin/src}/assets/logo/radix.svg | 0 .../admin/src}/assets/logo/react-email.svg | 0 {src => apps/admin/src}/assets/logo/react.svg | 0 {src => apps/admin/src}/assets/logo/remix.svg | 0 .../admin/src}/assets/logo/resend.svg | 0 .../admin/src}/assets/logo/sentry.svg | 0 .../admin/src}/assets/logo/shadcn-ui.svg | 0 .../admin/src}/assets/logo/sqlite.svg | 0 .../admin/src}/assets/logo/tailwind.svg | 0 .../src}/assets/logo/testing-library.png | Bin .../admin/src}/assets/logo/typescript.svg | 0 {src => apps/admin/src}/assets/logo/vite.svg | 0 .../admin/src}/assets/logo/vitest.svg | 0 {src => apps/admin/src}/assets/logo/zod.svg | 0 {src => apps/admin/src}/atoms/nav.ts | 0 .../src/components/announcement.stories.tsx | 24 + .../admin/src}/components/announcement.tsx | 3 +- .../src}/components/common/ErrorElement.tsx | 3 +- .../admin/src}/components/common/NotFound.tsx | 2 +- .../components/common/PoweredByFooter.tsx | 0 .../components/date-picker-with-range.tsx | 10 +- .../src}/components/date-range-picker.tsx | 10 +- .../devtools/tailwind-indicator.tsx | 0 {src => apps/admin/src}/components/empty.tsx | 0 .../src}/components/errors/ModalError.tsx | 0 .../admin/src}/components/errors/helper.ts | 0 .../admin/src}/components/errors/index.ts | 0 .../admin/src}/components/fallback.tsx | 0 {src => apps/admin/src}/components/icons.tsx | 0 .../admin/src}/components/icons/logo.tsx | 0 .../admin/src}/components/icons/logos.ts | 7 - .../admin/src}/components/language-switch.tsx | 6 +- .../admin/src}/components/loading.tsx | 0 .../components/nav-sidebar/app-sidebar.tsx | 20 +- .../components/nav-sidebar/nav-breadcrumb.tsx | 12 +- .../src}/components/nav-sidebar/nav-main.tsx | 29 +- .../components/nav-sidebar/nav-projects.tsx | 19 +- .../components/nav-sidebar/nav-secondary.tsx | 9 +- .../src}/components/nav-sidebar/nav-user.tsx | 32 +- {src => apps/admin/src}/components/search.tsx | 16 +- .../components/theme/theme-customizer.tsx | 24 +- .../src}/components/theme/theme-provider.tsx | 0 .../src}/components/theme/theme-switcher.tsx | 9 +- .../src}/components/theme/theme-wrapper.tsx | 0 .../src}/components/theme/themes-selector.tsx | 10 +- .../src}/components/theme/themes-styles.tsx | 0 {src => apps/admin/src}/constants/index.ts | 0 {src => apps/admin/src}/env.d.ts | 0 .../admin/src}/framer-lazy-feature.ts | 0 {src => apps/admin/src}/global.d.ts | 2 +- .../admin/src}/hooks/query/use-album.ts | 0 .../admin/src}/hooks/query/use-tasks.ts | 0 .../admin/src}/hooks/query/use-user.test.tsx | 0 .../admin/src}/hooks/query/use-user.ts | 0 .../admin/src/hooks/query/user-menu.ts | 0 {src => apps/admin/src}/hooks/styles.ts | 0 {src => apps/admin/src}/hooks/themes.ts | 0 {src => apps/admin/src}/hooks/use-config.ts | 0 .../admin/src}/hooks/use-media-query.tsx | 0 {src => apps/admin/src}/hooks/use-mobile.tsx | 0 .../admin/src}/hooks/use-theme.test.ts | 0 .../admin/src}/hooks/use-themes-config.ts | 0 {src => apps/admin/src}/i18n/index.ts | 0 {src => apps/admin/src}/lib/api-fetch.ts | 0 {src => apps/admin/src}/lib/charts.ts | 0 .../admin/src}/lib/data-dictionary.ts | 0 {src => apps/admin/src}/lib/dev.tsx | 0 {src => apps/admin/src}/lib/issues.ts | 0 {src => apps/admin/src}/lib/jotai.ts | 0 {src => apps/admin/src}/lib/menu.ts | 0 {src => apps/admin/src}/lib/query-client.ts | 0 .../admin/src}/lib/route-builder.test.ts | 0 {src => apps/admin/src}/lib/route-builder.ts | 0 {src => apps/admin/src}/lib/themes.ts | 0 {src => apps/admin/src}/lib/utils.test.ts | 0 {src => apps/admin/src}/lib/utils.ts | 0 {src => apps/admin/src}/main.tsx | 2 +- .../analysis/components/overview.tsx | 0 .../analysis/components/recent-sales.tsx | 2 +- .../dashboard/analysis/index.tsx | 2 +- .../(admin)/(with-layout)/dashboard/index.tsx | 0 .../overview/components/overview.tsx | 0 .../overview/components/recent-sales.tsx | 2 +- .../dashboard/overview/index.tsx | 4 +- .../dashboard/workplace/index.tsx | 0 .../(admin)/(with-layout)/exception/403.tsx | 0 .../(admin)/(with-layout)/exception/404.tsx | 0 .../(admin)/(with-layout)/exception/500.tsx | 0 .../(with-layout)/form/advanced-form.tsx | 0 .../(admin)/(with-layout)/form/basic-form.tsx | 36 +- .../(admin)/(with-layout)/form/index.tsx | 0 .../(admin)/(with-layout)/form/step-form.tsx | 0 .../(admin)/(with-layout)/list/card-list.tsx | 0 .../list/data-table/components/view-user.tsx | 25 +- .../(with-layout)/list/data-table/index.tsx | 42 +- .../(admin)/(with-layout)/list/index.tsx | 0 .../(with-layout)/list/pro-table/index.tsx | 32 +- .../list/table-list/components/album-card.tsx | 11 +- .../(with-layout)/list/table-list/index.tsx | 30 +- .../(admin)/(with-layout)/result/fail.tsx | 0 .../(admin)/(with-layout)/result/success.tsx | 0 .../(with-layout)/settings/account.tsx | 3 +- .../(with-layout)/settings/appearance.tsx | 3 +- .../settings/components/account-form.tsx | 25 +- .../settings/components/appearance-form.tsx | 17 +- .../settings/components/display-form.tsx | 16 +- .../components/notifications-form.tsx | 22 +- .../settings/components/profile-form.tsx | 26 +- .../settings/components/sidebar-nav.tsx | 2 +- .../(with-layout)/settings/display.tsx | 3 +- .../(admin)/(with-layout)/settings/index.tsx | 0 .../(admin)/(with-layout)/settings/layout.tsx | 0 .../(with-layout)/settings/notifications.tsx | 3 +- .../(with-layout)/settings/profile.tsx | 3 +- .../components/example/activity-goal.tsx | 12 +- .../theme/components/example/calendar.tsx | 5 +- .../theme/components/example/chat.tsx | 18 +- .../components/example/cookie-settings.tsx | 8 +- .../components/example/create-account.tsx | 11 +- .../theme/components/example/data-table.tsx | 43 +- .../theme/components/example/index.tsx | 0 .../theme/components/example/metric.tsx | 8 +- .../components/example/payment-method.tsx | 15 +- .../theme/components/example/report-issue.tsx | 15 +- .../theme/components/example/share.tsx | 14 +- .../theme/components/example/stats.tsx | 8 +- .../theme/components/example/team-members.tsx | 11 +- .../(with-layout)/settings/theme/index.tsx | 3 +- .../(admin)/(with-layout)/system/about.tsx | 18 +- .../(admin)/(with-layout)/system/index.tsx | 0 .../(admin)/charts/[chartName]/index.tsx | 0 .../(admin)/charts/[chartName]/layout.tsx | 2 +- .../src}/pages/(admin)/charts/charts-nav.tsx | 2 +- .../area-chart/chart-area-default.tsx | 11 +- .../area-chart/chart-area-gradient.tsx | 11 +- .../area-chart/chart-area-icons.tsx | 11 +- .../area-chart/chart-area-interactive.tsx | 13 +- .../area-chart/chart-area-legend.tsx | 11 +- .../area-chart/chart-area-linear.tsx | 11 +- .../area-chart/chart-area-stacked-expand.tsx | 11 +- .../area-chart/chart-area-stacked.tsx | 11 +- .../components/area-chart/chart-area-step.tsx | 11 +- .../components/bar-chart/chart-bar-active.tsx | 15 +- .../bar-chart/chart-bar-default.tsx | 13 +- .../bar-chart/chart-bar-horizontal.tsx | 13 +- .../bar-chart/chart-bar-interactive.tsx | 11 +- .../bar-chart/chart-bar-label-custom.tsx | 13 +- .../components/bar-chart/chart-bar-label.tsx | 13 +- .../components/bar-chart/chart-bar-mixed.tsx | 13 +- .../bar-chart/chart-bar-multiple.tsx | 13 +- .../bar-chart/chart-bar-negative.tsx | 13 +- .../bar-chart/chart-bar-stacked.tsx | 13 +- .../line-chart/chart-line-default.tsx | 13 +- .../line-chart/chart-line-dots-colors.tsx | 13 +- .../line-chart/chart-line-dots-custom.tsx | 13 +- .../components/line-chart/chart-line-dots.tsx | 13 +- .../line-chart/chart-line-interactive.tsx | 13 +- .../line-chart/chart-line-label-custom.tsx | 13 +- .../line-chart/chart-line-label.tsx | 13 +- .../line-chart/chart-line-linear.tsx | 13 +- .../line-chart/chart-line-multiple.tsx | 13 +- .../components/line-chart/chart-line-step.tsx | 13 +- .../(admin)/charts/components/page-header.tsx | 0 .../pie-chart/chart-pie-donut-active.tsx | 15 +- .../pie-chart/chart-pie-donut-text.tsx | 15 +- .../components/pie-chart/chart-pie-donut.tsx | 13 +- .../pie-chart/chart-pie-interactive.tsx | 17 +- .../pie-chart/chart-pie-label-custom.tsx | 13 +- .../pie-chart/chart-pie-label-list.tsx | 13 +- .../components/pie-chart/chart-pie-label.tsx | 13 +- .../components/pie-chart/chart-pie-legend.tsx | 11 +- .../pie-chart/chart-pie-separator-none.tsx | 13 +- .../components/pie-chart/chart-pie-simple.tsx | 13 +- .../pie-chart/chart-pie-stacked.tsx | 13 +- .../radar-chart/chart-radar-default.tsx | 15 +- .../radar-chart/chart-radar-dots.tsx | 13 +- .../chart-radar-grid-circle-fill.tsx | 13 +- .../chart-radar-grid-circle-no-lines.tsx | 13 +- .../radar-chart/chart-radar-grid-circle.tsx | 13 +- .../radar-chart/chart-radar-grid-custom.tsx | 13 +- .../radar-chart/chart-radar-grid-fill.tsx | 13 +- .../radar-chart/chart-radar-grid-none.tsx | 13 +- .../radar-chart/chart-radar-icons.tsx | 13 +- .../radar-chart/chart-radar-label-custom.tsx | 13 +- .../radar-chart/chart-radar-legend.tsx | 13 +- .../radar-chart/chart-radar-lines-only.tsx | 13 +- .../radar-chart/chart-radar-multiple.tsx | 13 +- .../radar-chart/chart-radar-radius.tsx | 23 +- .../radar-chart/chart-radial-grid.tsx | 13 +- .../radar-chart/chart-radial-label.tsx | 13 +- .../radar-chart/chart-radial-shape.tsx | 21 +- .../radar-chart}/chart-radial-simple.tsx | 13 +- .../radar-chart}/chart-radial-stacked.tsx | 13 +- .../radar-chart}/chart-radial-text.tsx | 21 +- .../radial-chart/chart-radial-grid.tsx | 15 +- .../radial-chart/chart-radial-label.tsx | 13 +- .../radial-chart/chart-radial-shape.tsx | 21 +- .../radial-chart}/chart-radial-simple.tsx | 13 +- .../radial-chart}/chart-radial-stacked.tsx | 13 +- .../radial-chart}/chart-radial-text.tsx | 21 +- .../tooltip-chart/chart-tooltip-advanced.tsx | 13 +- .../tooltip-chart/chart-tooltip-default.tsx | 13 +- .../tooltip-chart/chart-tooltip-formatter.tsx | 11 +- .../tooltip-chart/chart-tooltip-icons.tsx | 13 +- .../chart-tooltip-indicator-line.tsx | 11 +- .../chart-tooltip-indicator-none.tsx | 11 +- .../chart-tooltip-label-custom.tsx | 11 +- .../chart-tooltip-label-formatter.tsx | 11 +- .../chart-tooltip-label-none.tsx | 11 +- .../admin/src}/pages/(admin)/charts/index.tsx | 0 .../admin/src}/pages/(admin)/layout.tsx | 18 +- .../src}/pages/(external)/login/index.tsx | 20 +- .../admin/src}/pages/(external)/test/[id].tsx | 0 .../admin/src}/pages/(main)/index.test.tsx | 0 .../admin/src}/pages/(main)/index.tsx | 10 +- .../admin/src}/pages/(main)/layout.tsx | 2 +- .../admin/src}/providers/root-providers.tsx | 11 +- {src => apps/admin/src}/router.tsx | 0 {src => apps/admin/src}/schema/album.ts | 1 - {src => apps/admin/src}/schema/menu.ts | 0 {src => apps/admin/src}/schema/task.ts | 0 {src => apps/admin/src}/schema/user.ts | 0 {src => apps/admin/src}/styles/dev.css | 0 {src => apps/admin/src}/styles/index.css | 0 {src => apps/admin/src}/styles/mdx.css | 0 {src => apps/admin/src}/styles/tailwind.css | 0 {src => apps/admin/src}/styles/themes.css | 0 {src => apps/admin/src}/test/setup.ts | 0 {src => apps/admin/src}/test/test-utils.tsx | 0 {src => apps/admin/src}/types/i18next.d.ts | 0 .../admin/tailwind.config.ts | 4 + .../admin/tsconfig.app.json | 7 +- tsconfig.json => apps/admin/tsconfig.json | 0 .../admin/tsconfig.node.json | 4 +- {types => apps/admin/types}/i18next.d.ts | 0 {types => apps/admin/types}/vite-env.d.ts | 0 vercel.json => apps/admin/vercel.json | 0 vite.config.ts => apps/admin/vite.config.ts | 9 +- .../admin/vitest.config.ts | 0 apps/api/.dev.vars.example | 4 + apps/api/.gitignore | 36 + apps/api/.prettierignore | 7 + apps/api/.prettierrc | 6 + apps/api/LICENSE | 21 + apps/api/README.md | 28 + apps/api/drizzle.config.ts | 13 + apps/api/drizzle/0000_greedy_loners.sql | 48 + apps/api/drizzle/meta/0000_snapshot.json | 331 + apps/api/drizzle/meta/_journal.json | 13 + apps/api/package.json | 44 + apps/api/pnpm-lock.yaml | 3447 ++++++ apps/api/src/db/client.node.ts | 7 + apps/api/src/db/client.serverless.ts | 13 + apps/api/src/db/migrate.ts | 20 + apps/api/src/db/schema/album.schema.ts | 27 + apps/api/src/db/schema/index.ts | 3 + apps/api/src/db/schema/tasks.schema.ts | 26 + apps/api/src/db/schema/users.schema.ts | 28 + apps/api/src/db/seed.ts | 23 + apps/api/src/db/seeds.ts | 112 + apps/api/src/db/utils.ts | 52 + apps/api/src/index.test.ts | 8 + apps/api/src/index.ts | 59 + apps/api/src/lib/crypto.ts | 12 + apps/api/src/middleware/auth-middleware.ts | 18 + apps/api/src/module/albums/albums.test.ts | 8 + apps/api/src/module/albums/albums.ts | 54 + apps/api/src/module/albums/schema.ts | 111 + apps/api/src/module/auth/auth.test.ts | 46 + apps/api/src/module/auth/auth.ts | 235 + apps/api/src/module/auth/schema.ts | 60 + apps/api/src/module/tasks/enums.ts | 14 + apps/api/src/module/tasks/schema.ts | 108 + apps/api/src/module/tasks/tasks.ts | 239 + apps/api/src/module/users/schema.ts | 128 + apps/api/src/module/users/users.ts | 344 + apps/api/src/schema/base.ts | 74 + apps/api/src/types/types.d.ts | 28 + apps/api/tsconfig.json | 20 + apps/api/vitest.config.ts | 12 + apps/api/wrangler.toml | 25 + apps/app/.eslintrc.json | 3 + apps/app/.gitignore | 40 + apps/app/README.md | 36 + apps/app/app/favicon.ico | Bin 0 -> 25931 bytes apps/app/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes apps/app/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes apps/app/app/globals.css | 21 + apps/app/app/layout.tsx | 36 + apps/app/app/page.tsx | 102 + apps/app/next.config.ts | 7 + apps/app/package.json | 26 + apps/app/postcss.config.mjs | 8 + apps/app/public/file.svg | 1 + apps/app/public/globe.svg | 1 + apps/app/public/next.svg | 1 + apps/app/public/vercel.svg | 1 + apps/app/public/window.svg | 1 + apps/app/tailwind.config.ts | 18 + apps/app/tsconfig.json | 27 + apps/docs/README.md | 32 + apps/docs/api-reference/endpoint/create.mdx | 4 + apps/docs/api-reference/endpoint/delete.mdx | 4 + apps/docs/api-reference/endpoint/get.mdx | 4 + apps/docs/api-reference/introduction.mdx | 33 + apps/docs/api-reference/openapi.json | 195 + apps/docs/deploying/deploy.mdx | 58 + apps/docs/deploying/docker.mdx | 15 + .../configuring/environment-variables.mdx | 16 + .../admin/data-fetching/data-fetching.mdx | 115 + .../admin/routing/defining-routes.mdx | 8 + .../admin/routing/dynamic-routes.mdx | 54 + .../docs/development/admin/routing/layout.mdx | 35 + apps/docs/development/admin/routing/page.mdx | 24 + .../development/admin/routing/redirect.mdx | 29 + .../development/admin/routing/route-group.mdx | 31 + .../development/admin/routing/routing.mdx | 41 + apps/docs/development/admin/styling/theme.mdx | 3 + apps/docs/development/command.mdx | 133 + apps/docs/development/getting-started.mdx | 112 + apps/docs/development/project-structure.mdx | 48 + apps/docs/development/state-management.mdx | 4 + apps/docs/essentials/code.mdx | 37 + apps/docs/essentials/images.mdx | 59 + apps/docs/essentials/markdown.mdx | 88 + apps/docs/essentials/navigation.mdx | 66 + apps/docs/essentials/reusable-snippets.mdx | 110 + apps/docs/essentials/settings.mdx | 318 + apps/docs/faq.mdx | 38 + .../docs/favicon.svg | 0 .../guide/what-is-shadcn-ui-boilerplate.mdx | 26 + apps/docs/images/checks-passed.png | Bin 0 -> 160724 bytes apps/docs/images/hero-dark.svg | 161 + apps/docs/images/hero-light.svg | 155 + apps/docs/images/index-light.png | Bin 0 -> 257863 bytes apps/docs/images/overview.png | Bin 0 -> 439259 bytes apps/docs/introduction.mdx | 55 + apps/docs/logo/dark.svg | 4 + apps/docs/logo/light.svg | 4 + apps/docs/mint.json | 128 + apps/docs/package.json | 16 + apps/docs/quickstart.mdx | 58 + apps/docs/reference/project-config.md | 1 + apps/docs/snippets/snippet-intro.mdx | 4 + apps/tauri/.gitignore | 7 + apps/tauri/Cargo.lock | 4570 ++++++++ apps/tauri/Cargo.toml | 25 + apps/tauri/build.rs | 3 + apps/tauri/capabilities/default.json | 10 + apps/tauri/icons/128x128.png | Bin 0 -> 3512 bytes apps/tauri/icons/128x128@2x.png | Bin 0 -> 7012 bytes apps/tauri/icons/32x32.png | Bin 0 -> 974 bytes apps/tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes apps/tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes apps/tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes apps/tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes apps/tauri/icons/Square30x30Logo.png | Bin 0 -> 903 bytes apps/tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes apps/tauri/icons/Square44x44Logo.png | Bin 0 -> 1299 bytes apps/tauri/icons/Square71x71Logo.png | Bin 0 -> 2011 bytes apps/tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes apps/tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes apps/tauri/icons/icon.icns | Bin 0 -> 98451 bytes apps/tauri/icons/icon.ico | Bin 0 -> 86642 bytes apps/tauri/icons/icon.png | Bin 0 -> 14183 bytes apps/tauri/package.json | 23 + apps/tauri/src/lib.rs | 14 + apps/tauri/src/main.rs | 6 + apps/tauri/tauri.conf.json | 35 + docs/.vitepress/config/shared.ts | 1 - docs/public/wechat-appreciation-code.jpeg | Bin 74119 -> 0 bytes docs/public/wechat-group.png | Bin 136399 -> 0 bytes eslint.config.mjs | 17 +- package.json | 122 +- packages/pro-components/.gitignore | 26 + packages/pro-components/.storybook/main.ts | 25 + packages/pro-components/.storybook/preview.ts | 14 + packages/pro-components/README.md | 50 + packages/pro-components/eslint.config.js | 25 + packages/pro-components/index.html | 13 + packages/pro-components/package.json | 56 + packages/pro-components/public/vite.svg | 1 + packages/pro-components/src/App.css | 42 + packages/pro-components/src/App.tsx | 38 + packages/pro-components/src/assets/react.svg | 1 + .../src}/components/data-table/context.tsx | 0 .../data-table/data-table-column-header.tsx | 11 +- .../data-table/data-table-faceted-filter.tsx | 17 +- .../data-table-pagination.stories.tsx | 0 .../data-table/data-table-pagination.tsx | 14 +- .../data-table/data-table-search.tsx | 33 +- .../data-table-skeleton.stories.tsx | 3 +- .../data-table/data-table-skeleton.tsx | 4 +- .../data-table/data-table-toolbar.stories.tsx | 3 +- .../data-table/data-table-toolbar.tsx | 5 +- .../components/data-table/data-table-types.ts | 0 .../components/data-table/data-table-util.ts | 0 .../data-table-view-options.stories.tsx | 0 .../data-table/data-table-view-options.tsx | 9 +- .../src}/components/data-table/data-table.tsx | 3 +- .../src/components/data-table/index.tsx | 28 + .../pro-components/src/components/empty.tsx | 10 + .../src}/components/pro-table/index.tsx | 1 + .../src}/components/pro-table/types.ts | 0 packages/pro-components/src/index.css | 68 + packages/pro-components/src/main.tsx | 12 + .../src}/stories/Button.stories.ts | 4 - .../pro-components/src}/stories/Button.tsx | 26 +- .../pro-components/src}/stories/Configure.mdx | 0 .../src}/stories/Header.stories.ts | 0 .../pro-components/src}/stories/Header.tsx | 2 +- .../src}/stories/Page.stories.ts | 0 .../pro-components/src}/stories/Page.tsx | 2 +- .../src}/stories/assets/accessibility.png | Bin .../src}/stories/assets/accessibility.svg | 0 .../src}/stories/assets/addon-library.png | Bin .../src}/stories/assets/assets.png | Bin .../src}/stories/assets/avif-test-image.avif | Bin .../src}/stories/assets/context.png | Bin .../src}/stories/assets/discord.svg | 0 .../src}/stories/assets/docs.png | Bin .../src}/stories/assets/figma-plugin.png | Bin .../src}/stories/assets/github.svg | 0 .../src}/stories/assets/share.png | Bin .../src}/stories/assets/styling.png | Bin .../src}/stories/assets/testing.png | Bin .../src}/stories/assets/theming.png | Bin .../src}/stories/assets/tutorials.svg | 0 .../src}/stories/assets/youtube.svg | 0 .../pro-components/src}/stories/button.css | 20 +- .../pro-components/src}/stories/header.css | 16 +- .../pro-components/src}/stories/page.css | 40 +- packages/pro-components/src/vite-env.d.ts | 1 + packages/pro-components/tsconfig.app.json | 25 + packages/pro-components/tsconfig.json | 7 + packages/pro-components/tsconfig.node.json | 24 + packages/pro-components/vite.config.ts | 7 + packages/ui/components.json | 21 + packages/ui/package.json | 126 + packages/ui/scripts/generate-exports.ts | 84 + .../ui/src}/components/ui/accordion.tsx | 12 +- .../ui/src}/components/ui/alert-dialog.tsx | 28 +- .../ui/src}/components/ui/alert.tsx | 7 +- .../ui/src}/components/ui/aspect-ratio.tsx | 0 .../ui/src}/components/ui/avatar.tsx | 16 +- .../ui/src}/components/ui/badge.tsx | 7 +- .../ui/src}/components/ui/breadcrumb.tsx | 6 +- .../ui/src}/components/ui/button.tsx | 15 +- .../ui/src}/components/ui/calendar.tsx | 20 +- .../ui/src}/components/ui/card.tsx | 16 +- .../ui/src}/components/ui/carousel.tsx | 51 +- .../ui/src}/components/ui/chart.tsx | 87 +- .../ui/src}/components/ui/checkbox.tsx | 10 +- packages/ui/src/components/ui/collapsible.tsx | 11 + .../ui/src}/components/ui/command.tsx | 75 +- .../ui/src}/components/ui/context-menu.tsx | 68 +- .../ui/src}/components/ui/dialog.tsx | 31 +- .../ui/src}/components/ui/drawer.tsx | 16 +- .../ui/src}/components/ui/dropdown-menu.tsx | 12 +- .../ui/src}/components/ui/form.tsx | 48 +- .../ui/src}/components/ui/hover-card.tsx | 8 +- .../ui/src}/components/ui/input-otp.tsx | 16 +- packages/ui/src/components/ui/input.tsx | 22 + .../ui/src}/components/ui/label.tsx | 9 +- .../ui/src}/components/ui/menubar.tsx | 82 +- .../ui/src}/components/ui/navigation-menu.tsx | 35 +- .../ui/src}/components/ui/pagination.tsx | 34 +- .../ui/src}/components/ui/popover.tsx | 6 +- .../ui/src}/components/ui/progress.tsx | 8 +- packages/ui/src/components/ui/radio-group.tsx | 42 + .../ui/src}/components/ui/resizable.tsx | 14 +- .../ui/src}/components/ui/scroll-area.tsx | 10 +- .../ui/src}/components/ui/select.tsx | 49 +- .../ui/src}/components/ui/separator.tsx | 10 +- .../ui/src}/components/ui/sheet.tsx | 31 +- .../ui/src}/components/ui/sidebar.tsx | 26 +- .../ui/src}/components/ui/skeleton.tsx | 0 .../ui/src}/components/ui/slider.tsx | 6 +- .../ui/src}/components/ui/sonner.tsx | 4 +- .../ui/src}/components/ui/switch.tsx | 6 +- .../ui/src}/components/ui/table.tsx | 14 +- .../ui/src}/components/ui/tabs.tsx | 10 +- packages/ui/src/components/ui/textarea.tsx | 22 + .../ui/src}/components/ui/toast.tsx | 47 +- packages/ui/src/components/ui/toaster.tsx | 33 + .../ui/src}/components/ui/toggle-group.tsx | 12 +- .../ui/src}/components/ui/toggle.tsx | 19 +- packages/ui/src/components/ui/tooltip.tsx | 32 + packages/ui/src/globals.css | 85 + packages/ui/src/hooks/use-mobile.tsx | 19 + .../ui => packages/ui/src/hooks}/use-toast.ts | 51 +- packages/ui/src/index.ts | 56 + packages/ui/src/lib/utils.ts | 7 + packages/ui/tailwind.config.ts | 168 + packages/ui/tsconfig.json | 26 + pnpm-lock.yaml | 9315 +++++++++++++++-- pnpm-workspace.yaml | 3 + src/components/data-table/index.tsx | 27 - src/components/devtools/dev-monitor-panel.tsx | 120 - src/components/ui/collapsible.tsx | 9 - src/components/ui/input.tsx | 23 - src/components/ui/radio-group.tsx | 38 - src/components/ui/textarea.tsx | 22 - src/components/ui/toaster.tsx | 31 - src/components/ui/tooltip.tsx | 28 - turbo.json | 20 + 557 files changed, 24863 insertions(+), 2736 deletions(-) delete mode 100644 .storybook/main.ts rename .env.example => apps/admin/.env.example (100%) create mode 100644 apps/admin/.storybook/Introduction.mdx rename {.storybook => apps/admin/.storybook}/ThemeChanger.tsx (89%) create mode 100644 apps/admin/.storybook/main.ts rename {.storybook => apps/admin/.storybook}/manager.ts (100%) rename {.storybook => apps/admin/.storybook}/preview.tsx (97%) rename {.storybook => apps/admin/.storybook}/theme.ts (100%) rename components.json => apps/admin/components.json (100%) rename env.ts => apps/admin/env.ts (100%) rename index.html => apps/admin/index.html (100%) rename {locales => apps/admin/locales}/en/auth.json (100%) rename {locales => apps/admin/locales}/en/common.json (100%) rename {locales => apps/admin/locales}/en/errors.json (100%) rename {locales => apps/admin/locales}/en/forms.json (100%) rename {locales => apps/admin/locales}/en/navigation.json (100%) rename {locales => apps/admin/locales}/en/settings.json (100%) rename {locales => apps/admin/locales}/zh-CN/auth.json (100%) rename {locales => apps/admin/locales}/zh-CN/common.json (100%) rename {locales => apps/admin/locales}/zh-CN/errors.json (100%) rename {locales => apps/admin/locales}/zh-CN/forms.json (100%) rename {locales => apps/admin/locales}/zh-CN/navigation.json (100%) rename {locales => apps/admin/locales}/zh-CN/settings.json (100%) create mode 100644 apps/admin/package.json rename postcss.config.cjs => apps/admin/postcss.config.cjs (100%) rename {public => apps/admin/public}/avatars/01.png (100%) rename {public => apps/admin/public}/avatars/02.png (100%) rename {public => apps/admin/public}/avatars/03.png (100%) rename {public => apps/admin/public}/avatars/04.png (100%) rename {public => apps/admin/public}/avatars/05.png (100%) rename {public => apps/admin/public}/avatars/shadcn.jpg (100%) rename {public => apps/admin/public}/favicon.ico (100%) rename {public => apps/admin/public}/index.png (100%) rename {public => apps/admin/public}/overview.png (100%) rename {docs => apps/admin}/public/vite-boilerplate.svg (100%) rename {public => apps/admin/public}/vite.svg (100%) rename {scripts => apps/admin/scripts}/lib.ts (100%) rename {src => apps/admin/src}/App.tsx (100%) rename {src => apps/admin/src}/assets/logo/docker.svg (100%) rename {src => apps/admin/src}/assets/logo/eslint.svg (100%) rename {src => apps/admin/src}/assets/logo/faker.svg (100%) rename {src => apps/admin/src}/assets/logo/fly.svg (100%) rename {src => apps/admin/src}/assets/logo/github.svg (100%) rename {src => apps/admin/src}/assets/logo/msw.svg (100%) rename {src => apps/admin/src}/assets/logo/playwright.svg (100%) rename {src => apps/admin/src}/assets/logo/prettier.svg (100%) rename {src => apps/admin/src}/assets/logo/prisma.svg (100%) rename {src => apps/admin/src}/assets/logo/radix.svg (100%) rename {src => apps/admin/src}/assets/logo/react-email.svg (100%) rename {src => apps/admin/src}/assets/logo/react.svg (100%) rename {src => apps/admin/src}/assets/logo/remix.svg (100%) rename {src => apps/admin/src}/assets/logo/resend.svg (100%) rename {src => apps/admin/src}/assets/logo/sentry.svg (100%) rename {src => apps/admin/src}/assets/logo/shadcn-ui.svg (100%) rename {src => apps/admin/src}/assets/logo/sqlite.svg (100%) rename {src => apps/admin/src}/assets/logo/tailwind.svg (100%) rename {src => apps/admin/src}/assets/logo/testing-library.png (100%) rename {src => apps/admin/src}/assets/logo/typescript.svg (100%) rename {src => apps/admin/src}/assets/logo/vite.svg (100%) rename {src => apps/admin/src}/assets/logo/vitest.svg (100%) rename {src => apps/admin/src}/assets/logo/zod.svg (100%) rename {src => apps/admin/src}/atoms/nav.ts (100%) create mode 100644 apps/admin/src/components/announcement.stories.tsx rename {src => apps/admin/src}/components/announcement.tsx (92%) rename {src => apps/admin/src}/components/common/ErrorElement.tsx (98%) rename {src => apps/admin/src}/components/common/NotFound.tsx (96%) rename {src => apps/admin/src}/components/common/PoweredByFooter.tsx (100%) rename {src => apps/admin/src}/components/date-picker-with-range.tsx (90%) rename {src => apps/admin/src}/components/date-range-picker.tsx (90%) rename {src => apps/admin/src}/components/devtools/tailwind-indicator.tsx (100%) rename {src => apps/admin/src}/components/empty.tsx (100%) rename {src => apps/admin/src}/components/errors/ModalError.tsx (100%) rename {src => apps/admin/src}/components/errors/helper.ts (100%) rename {src => apps/admin/src}/components/errors/index.ts (100%) rename {src => apps/admin/src}/components/fallback.tsx (100%) rename {src => apps/admin/src}/components/icons.tsx (100%) rename {src => apps/admin/src}/components/icons/logo.tsx (100%) rename {src => apps/admin/src}/components/icons/logos.ts (94%) rename {src => apps/admin/src}/components/language-switch.tsx (96%) rename {src => apps/admin/src}/components/loading.tsx (100%) rename {src => apps/admin/src}/components/nav-sidebar/app-sidebar.tsx (95%) rename {src => apps/admin/src}/components/nav-sidebar/nav-breadcrumb.tsx (96%) rename {src => apps/admin/src}/components/nav-sidebar/nav-main.tsx (87%) rename {src => apps/admin/src}/components/nav-sidebar/nav-projects.tsx (96%) rename {src => apps/admin/src}/components/nav-sidebar/nav-secondary.tsx (96%) rename {src => apps/admin/src}/components/nav-sidebar/nav-user.tsx (96%) rename {src => apps/admin/src}/components/search.tsx (93%) rename {src => apps/admin/src}/components/theme/theme-customizer.tsx (97%) rename {src => apps/admin/src}/components/theme/theme-provider.tsx (100%) rename {src => apps/admin/src}/components/theme/theme-switcher.tsx (84%) rename {src => apps/admin/src}/components/theme/theme-wrapper.tsx (100%) rename {src => apps/admin/src}/components/theme/themes-selector.tsx (94%) rename {src => apps/admin/src}/components/theme/themes-styles.tsx (100%) rename {src => apps/admin/src}/constants/index.ts (100%) rename {src => apps/admin/src}/env.d.ts (100%) rename {src => apps/admin/src}/framer-lazy-feature.ts (100%) rename {src => apps/admin/src}/global.d.ts (89%) rename {src => apps/admin/src}/hooks/query/use-album.ts (100%) rename {src => apps/admin/src}/hooks/query/use-tasks.ts (100%) rename {src => apps/admin/src}/hooks/query/use-user.test.tsx (100%) rename {src => apps/admin/src}/hooks/query/use-user.ts (100%) rename src/hooks/query/user-memu.ts => apps/admin/src/hooks/query/user-menu.ts (100%) rename {src => apps/admin/src}/hooks/styles.ts (100%) rename {src => apps/admin/src}/hooks/themes.ts (100%) rename {src => apps/admin/src}/hooks/use-config.ts (100%) rename {src => apps/admin/src}/hooks/use-media-query.tsx (100%) rename {src => apps/admin/src}/hooks/use-mobile.tsx (100%) rename {src => apps/admin/src}/hooks/use-theme.test.ts (100%) rename {src => apps/admin/src}/hooks/use-themes-config.ts (100%) rename {src => apps/admin/src}/i18n/index.ts (100%) rename {src => apps/admin/src}/lib/api-fetch.ts (100%) rename {src => apps/admin/src}/lib/charts.ts (100%) rename {src => apps/admin/src}/lib/data-dictionary.ts (100%) rename {src => apps/admin/src}/lib/dev.tsx (100%) rename {src => apps/admin/src}/lib/issues.ts (100%) rename {src => apps/admin/src}/lib/jotai.ts (100%) rename {src => apps/admin/src}/lib/menu.ts (100%) rename {src => apps/admin/src}/lib/query-client.ts (100%) rename {src => apps/admin/src}/lib/route-builder.test.ts (100%) rename {src => apps/admin/src}/lib/route-builder.ts (100%) rename {src => apps/admin/src}/lib/themes.ts (100%) rename {src => apps/admin/src}/lib/utils.test.ts (100%) rename {src => apps/admin/src}/lib/utils.ts (100%) rename {src => apps/admin/src}/main.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/analysis/components/overview.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx (99%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/overview/components/overview.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/overview/index.tsx (98%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/dashboard/workplace/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/exception/403.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/exception/404.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/exception/500.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/form/advanced-form.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/form/basic-form.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/form/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/form/step-form.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/card-list.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/data-table/index.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/pro-table/index.tsx (92%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/list/table-list/index.tsx (92%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/result/fail.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/result/success.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/account.tsx (90%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/appearance.tsx (90%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/account-form.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/display-form.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/profile-form.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx (93%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/display.tsx (89%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/layout.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/notifications.tsx (90%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/profile.tsx (90%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx (79%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx (92%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx (90%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx (99%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx (91%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx (93%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx (99%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/settings/theme/index.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/system/about.tsx (98%) rename {src => apps/admin/src}/pages/(admin)/(with-layout)/system/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/charts/[chartName]/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/charts/[chartName]/layout.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/charts/charts-nav.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-default.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx (98%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/area-chart/chart-area-step.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx (99%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-default.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx (98%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-label.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/line-chart/chart-line-step.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/page-header.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx (94%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx (91%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx (97%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx (96%) rename {src/pages/(admin)/charts/components/radial-chart => apps/admin/src/pages/(admin)/charts/components/radar-chart}/chart-radial-simple.tsx (95%) rename {src/pages/(admin)/charts/components/radial-chart => apps/admin/src/pages/(admin)/charts/components/radar-chart}/chart-radial-stacked.tsx (97%) rename {src/pages/(admin)/charts/components/radial-chart => apps/admin/src/pages/(admin)/charts/components/radar-chart}/chart-radial-text.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx (93%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx (96%) rename {src/pages/(admin)/charts/components/radar-chart => apps/admin/src/pages/(admin)/charts/components/radial-chart}/chart-radial-simple.tsx (95%) rename {src/pages/(admin)/charts/components/radar-chart => apps/admin/src/pages/(admin)/charts/components/radial-chart}/chart-radial-stacked.tsx (97%) rename {src/pages/(admin)/charts/components/radar-chart => apps/admin/src/pages/(admin)/charts/components/radial-chart}/chart-radial-text.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx (92%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx (96%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx (95%) rename {src => apps/admin/src}/pages/(admin)/charts/index.tsx (100%) rename {src => apps/admin/src}/pages/(admin)/layout.tsx (90%) rename {src => apps/admin/src}/pages/(external)/login/index.tsx (98%) rename {src => apps/admin/src}/pages/(external)/test/[id].tsx (100%) rename {src => apps/admin/src}/pages/(main)/index.test.tsx (100%) rename {src => apps/admin/src}/pages/(main)/index.tsx (99%) rename {src => apps/admin/src}/pages/(main)/layout.tsx (95%) rename {src => apps/admin/src}/providers/root-providers.tsx (85%) rename {src => apps/admin/src}/router.tsx (100%) rename {src => apps/admin/src}/schema/album.ts (95%) rename {src => apps/admin/src}/schema/menu.ts (100%) rename {src => apps/admin/src}/schema/task.ts (100%) rename {src => apps/admin/src}/schema/user.ts (100%) rename {src => apps/admin/src}/styles/dev.css (100%) rename {src => apps/admin/src}/styles/index.css (100%) rename {src => apps/admin/src}/styles/mdx.css (100%) rename {src => apps/admin/src}/styles/tailwind.css (100%) rename {src => apps/admin/src}/styles/themes.css (100%) rename {src => apps/admin/src}/test/setup.ts (100%) rename {src => apps/admin/src}/test/test-utils.tsx (100%) rename {src => apps/admin/src}/types/i18next.d.ts (100%) rename tailwind.config.ts => apps/admin/tailwind.config.ts (95%) rename tsconfig.app.json => apps/admin/tsconfig.app.json (79%) rename tsconfig.json => apps/admin/tsconfig.json (100%) rename tsconfig.node.json => apps/admin/tsconfig.node.json (88%) rename {types => apps/admin/types}/i18next.d.ts (100%) rename {types => apps/admin/types}/vite-env.d.ts (100%) rename vercel.json => apps/admin/vercel.json (100%) rename vite.config.ts => apps/admin/vite.config.ts (86%) rename vitest.config.ts => apps/admin/vitest.config.ts (100%) create mode 100644 apps/api/.dev.vars.example create mode 100644 apps/api/.gitignore create mode 100644 apps/api/.prettierignore create mode 100644 apps/api/.prettierrc create mode 100644 apps/api/LICENSE create mode 100644 apps/api/README.md create mode 100644 apps/api/drizzle.config.ts create mode 100644 apps/api/drizzle/0000_greedy_loners.sql create mode 100644 apps/api/drizzle/meta/0000_snapshot.json create mode 100644 apps/api/drizzle/meta/_journal.json create mode 100644 apps/api/package.json create mode 100644 apps/api/pnpm-lock.yaml create mode 100644 apps/api/src/db/client.node.ts create mode 100644 apps/api/src/db/client.serverless.ts create mode 100644 apps/api/src/db/migrate.ts create mode 100644 apps/api/src/db/schema/album.schema.ts create mode 100644 apps/api/src/db/schema/index.ts create mode 100644 apps/api/src/db/schema/tasks.schema.ts create mode 100644 apps/api/src/db/schema/users.schema.ts create mode 100644 apps/api/src/db/seed.ts create mode 100644 apps/api/src/db/seeds.ts create mode 100644 apps/api/src/db/utils.ts create mode 100644 apps/api/src/index.test.ts create mode 100644 apps/api/src/index.ts create mode 100644 apps/api/src/lib/crypto.ts create mode 100644 apps/api/src/middleware/auth-middleware.ts create mode 100644 apps/api/src/module/albums/albums.test.ts create mode 100644 apps/api/src/module/albums/albums.ts create mode 100644 apps/api/src/module/albums/schema.ts create mode 100644 apps/api/src/module/auth/auth.test.ts create mode 100644 apps/api/src/module/auth/auth.ts create mode 100644 apps/api/src/module/auth/schema.ts create mode 100644 apps/api/src/module/tasks/enums.ts create mode 100644 apps/api/src/module/tasks/schema.ts create mode 100644 apps/api/src/module/tasks/tasks.ts create mode 100644 apps/api/src/module/users/schema.ts create mode 100644 apps/api/src/module/users/users.ts create mode 100644 apps/api/src/schema/base.ts create mode 100644 apps/api/src/types/types.d.ts create mode 100644 apps/api/tsconfig.json create mode 100644 apps/api/vitest.config.ts create mode 100644 apps/api/wrangler.toml create mode 100644 apps/app/.eslintrc.json create mode 100644 apps/app/.gitignore create mode 100644 apps/app/README.md create mode 100644 apps/app/app/favicon.ico create mode 100644 apps/app/app/fonts/GeistMonoVF.woff create mode 100644 apps/app/app/fonts/GeistVF.woff create mode 100644 apps/app/app/globals.css create mode 100644 apps/app/app/layout.tsx create mode 100644 apps/app/app/page.tsx create mode 100644 apps/app/next.config.ts create mode 100644 apps/app/package.json create mode 100644 apps/app/postcss.config.mjs create mode 100644 apps/app/public/file.svg create mode 100644 apps/app/public/globe.svg create mode 100644 apps/app/public/next.svg create mode 100644 apps/app/public/vercel.svg create mode 100644 apps/app/public/window.svg create mode 100644 apps/app/tailwind.config.ts create mode 100644 apps/app/tsconfig.json create mode 100644 apps/docs/README.md create mode 100644 apps/docs/api-reference/endpoint/create.mdx create mode 100644 apps/docs/api-reference/endpoint/delete.mdx create mode 100644 apps/docs/api-reference/endpoint/get.mdx create mode 100644 apps/docs/api-reference/introduction.mdx create mode 100644 apps/docs/api-reference/openapi.json create mode 100644 apps/docs/deploying/deploy.mdx create mode 100644 apps/docs/deploying/docker.mdx create mode 100644 apps/docs/development/admin/configuring/environment-variables.mdx create mode 100644 apps/docs/development/admin/data-fetching/data-fetching.mdx create mode 100644 apps/docs/development/admin/routing/defining-routes.mdx create mode 100644 apps/docs/development/admin/routing/dynamic-routes.mdx create mode 100644 apps/docs/development/admin/routing/layout.mdx create mode 100644 apps/docs/development/admin/routing/page.mdx create mode 100644 apps/docs/development/admin/routing/redirect.mdx create mode 100644 apps/docs/development/admin/routing/route-group.mdx create mode 100644 apps/docs/development/admin/routing/routing.mdx create mode 100644 apps/docs/development/admin/styling/theme.mdx create mode 100644 apps/docs/development/command.mdx create mode 100644 apps/docs/development/getting-started.mdx create mode 100644 apps/docs/development/project-structure.mdx create mode 100644 apps/docs/development/state-management.mdx create mode 100644 apps/docs/essentials/code.mdx create mode 100644 apps/docs/essentials/images.mdx create mode 100644 apps/docs/essentials/markdown.mdx create mode 100644 apps/docs/essentials/navigation.mdx create mode 100644 apps/docs/essentials/reusable-snippets.mdx create mode 100644 apps/docs/essentials/settings.mdx create mode 100644 apps/docs/faq.mdx rename public/vite-boilerplate.svg => apps/docs/favicon.svg (100%) create mode 100644 apps/docs/guide/what-is-shadcn-ui-boilerplate.mdx create mode 100644 apps/docs/images/checks-passed.png create mode 100644 apps/docs/images/hero-dark.svg create mode 100644 apps/docs/images/hero-light.svg create mode 100644 apps/docs/images/index-light.png create mode 100644 apps/docs/images/overview.png create mode 100644 apps/docs/introduction.mdx create mode 100644 apps/docs/logo/dark.svg create mode 100644 apps/docs/logo/light.svg create mode 100644 apps/docs/mint.json create mode 100644 apps/docs/package.json create mode 100644 apps/docs/quickstart.mdx create mode 100644 apps/docs/reference/project-config.md create mode 100644 apps/docs/snippets/snippet-intro.mdx create mode 100644 apps/tauri/.gitignore create mode 100644 apps/tauri/Cargo.lock create mode 100644 apps/tauri/Cargo.toml create mode 100644 apps/tauri/build.rs create mode 100644 apps/tauri/capabilities/default.json create mode 100644 apps/tauri/icons/128x128.png create mode 100644 apps/tauri/icons/128x128@2x.png create mode 100644 apps/tauri/icons/32x32.png create mode 100644 apps/tauri/icons/Square107x107Logo.png create mode 100644 apps/tauri/icons/Square142x142Logo.png create mode 100644 apps/tauri/icons/Square150x150Logo.png create mode 100644 apps/tauri/icons/Square284x284Logo.png create mode 100644 apps/tauri/icons/Square30x30Logo.png create mode 100644 apps/tauri/icons/Square310x310Logo.png create mode 100644 apps/tauri/icons/Square44x44Logo.png create mode 100644 apps/tauri/icons/Square71x71Logo.png create mode 100644 apps/tauri/icons/Square89x89Logo.png create mode 100644 apps/tauri/icons/StoreLogo.png create mode 100644 apps/tauri/icons/icon.icns create mode 100644 apps/tauri/icons/icon.ico create mode 100644 apps/tauri/icons/icon.png create mode 100644 apps/tauri/package.json create mode 100644 apps/tauri/src/lib.rs create mode 100644 apps/tauri/src/main.rs create mode 100644 apps/tauri/tauri.conf.json delete mode 100644 docs/public/wechat-appreciation-code.jpeg delete mode 100644 docs/public/wechat-group.png create mode 100644 packages/pro-components/.gitignore create mode 100644 packages/pro-components/.storybook/main.ts create mode 100644 packages/pro-components/.storybook/preview.ts create mode 100644 packages/pro-components/README.md create mode 100644 packages/pro-components/eslint.config.js create mode 100644 packages/pro-components/index.html create mode 100644 packages/pro-components/package.json create mode 100644 packages/pro-components/public/vite.svg create mode 100644 packages/pro-components/src/App.css create mode 100644 packages/pro-components/src/App.tsx create mode 100644 packages/pro-components/src/assets/react.svg rename {src => packages/pro-components/src}/components/data-table/context.tsx (100%) rename {src => packages/pro-components/src}/components/data-table/data-table-column-header.tsx (92%) rename {src => packages/pro-components/src}/components/data-table/data-table-faceted-filter.tsx (95%) rename {src => packages/pro-components/src}/components/data-table/data-table-pagination.stories.tsx (100%) rename {src => packages/pro-components/src}/components/data-table/data-table-pagination.tsx (96%) rename {src => packages/pro-components/src}/components/data-table/data-table-search.tsx (84%) rename {src => packages/pro-components/src}/components/data-table/data-table-skeleton.stories.tsx (94%) rename {src => packages/pro-components/src}/components/data-table/data-table-skeleton.tsx (80%) rename {src => packages/pro-components/src}/components/data-table/data-table-toolbar.stories.tsx (96%) rename {src => packages/pro-components/src}/components/data-table/data-table-toolbar.tsx (93%) rename {src => packages/pro-components/src}/components/data-table/data-table-types.ts (100%) rename {src => packages/pro-components/src}/components/data-table/data-table-util.ts (100%) rename {src => packages/pro-components/src}/components/data-table/data-table-view-options.stories.tsx (100%) rename {src => packages/pro-components/src}/components/data-table/data-table-view-options.tsx (91%) rename {src => packages/pro-components/src}/components/data-table/data-table.tsx (98%) create mode 100644 packages/pro-components/src/components/data-table/index.tsx create mode 100644 packages/pro-components/src/components/empty.tsx rename {src => packages/pro-components/src}/components/pro-table/index.tsx (99%) rename {src => packages/pro-components/src}/components/pro-table/types.ts (100%) create mode 100644 packages/pro-components/src/index.css create mode 100644 packages/pro-components/src/main.tsx rename {src => packages/pro-components/src}/stories/Button.stories.ts (94%) rename {src => packages/pro-components/src}/stories/Button.tsx (65%) rename {src => packages/pro-components/src}/stories/Configure.mdx (100%) rename {src => packages/pro-components/src}/stories/Header.stories.ts (100%) rename {src => packages/pro-components/src}/stories/Header.tsx (97%) rename {src => packages/pro-components/src}/stories/Page.stories.ts (100%) rename {src => packages/pro-components/src}/stories/Page.tsx (98%) rename {src => packages/pro-components/src}/stories/assets/accessibility.png (100%) rename {src => packages/pro-components/src}/stories/assets/accessibility.svg (100%) rename {src => packages/pro-components/src}/stories/assets/addon-library.png (100%) rename {src => packages/pro-components/src}/stories/assets/assets.png (100%) rename {src => packages/pro-components/src}/stories/assets/avif-test-image.avif (100%) rename {src => packages/pro-components/src}/stories/assets/context.png (100%) rename {src => packages/pro-components/src}/stories/assets/discord.svg (100%) rename {src => packages/pro-components/src}/stories/assets/docs.png (100%) rename {src => packages/pro-components/src}/stories/assets/figma-plugin.png (100%) rename {src => packages/pro-components/src}/stories/assets/github.svg (100%) rename {src => packages/pro-components/src}/stories/assets/share.png (100%) rename {src => packages/pro-components/src}/stories/assets/styling.png (100%) rename {src => packages/pro-components/src}/stories/assets/testing.png (100%) rename {src => packages/pro-components/src}/stories/assets/theming.png (100%) rename {src => packages/pro-components/src}/stories/assets/tutorials.svg (100%) rename {src => packages/pro-components/src}/stories/assets/youtube.svg (100%) rename {src => packages/pro-components/src}/stories/button.css (100%) rename {src => packages/pro-components/src}/stories/header.css (100%) rename {src => packages/pro-components/src}/stories/page.css (100%) create mode 100644 packages/pro-components/src/vite-env.d.ts create mode 100644 packages/pro-components/tsconfig.app.json create mode 100644 packages/pro-components/tsconfig.json create mode 100644 packages/pro-components/tsconfig.node.json create mode 100644 packages/pro-components/vite.config.ts create mode 100644 packages/ui/components.json create mode 100644 packages/ui/package.json create mode 100644 packages/ui/scripts/generate-exports.ts rename {src => packages/ui/src}/components/ui/accordion.tsx (83%) rename {src => packages/ui/src}/components/ui/alert-dialog.tsx (98%) rename {src => packages/ui/src}/components/ui/alert.tsx (90%) rename {src => packages/ui/src}/components/ui/aspect-ratio.tsx (100%) rename {src => packages/ui/src}/components/ui/avatar.tsx (78%) rename {src => packages/ui/src}/components/ui/badge.tsx (87%) rename {src => packages/ui/src}/components/ui/breadcrumb.tsx (94%) rename {src => packages/ui/src}/components/ui/button.tsx (77%) rename {src => packages/ui/src}/components/ui/calendar.tsx (73%) rename {src => packages/ui/src}/components/ui/card.tsx (86%) rename {src => packages/ui/src}/components/ui/carousel.tsx (87%) rename {src => packages/ui/src}/components/ui/chart.tsx (85%) rename {src => packages/ui/src}/components/ui/checkbox.tsx (63%) create mode 100644 packages/ui/src/components/ui/collapsible.tsx rename {src => packages/ui/src}/components/ui/command.tsx (65%) rename {src => packages/ui/src}/components/ui/context-menu.tsx (77%) rename {src => packages/ui/src}/components/ui/dialog.tsx (93%) rename {src => packages/ui/src}/components/ui/drawer.tsx (98%) rename {src => packages/ui/src}/components/ui/dropdown-menu.tsx (96%) rename {src => packages/ui/src}/components/ui/form.tsx (89%) rename {src => packages/ui/src}/components/ui/hover-card.tsx (92%) rename {src => packages/ui/src}/components/ui/input-otp.tsx (80%) create mode 100644 packages/ui/src/components/ui/input.tsx rename {src => packages/ui/src}/components/ui/label.tsx (76%) rename {src => packages/ui/src}/components/ui/menubar.tsx (79%) rename {src => packages/ui/src}/components/ui/navigation-menu.tsx (91%) rename {src => packages/ui/src}/components/ui/pagination.tsx (78%) rename {src => packages/ui/src}/components/ui/popover.tsx (93%) rename {src => packages/ui/src}/components/ui/progress.tsx (88%) create mode 100644 packages/ui/src/components/ui/radio-group.tsx rename {src => packages/ui/src}/components/ui/resizable.tsx (83%) rename {src => packages/ui/src}/components/ui/scroll-area.tsx (86%) rename {src => packages/ui/src}/components/ui/select.tsx (80%) rename {src => packages/ui/src}/components/ui/separator.tsx (85%) rename {src => packages/ui/src}/components/ui/sheet.tsx (93%) rename {src => packages/ui/src}/components/ui/sidebar.tsx (97%) rename {src => packages/ui/src}/components/ui/skeleton.tsx (100%) rename {src => packages/ui/src}/components/ui/slider.tsx (73%) rename {src => packages/ui/src}/components/ui/sonner.tsx (94%) rename {src => packages/ui/src}/components/ui/switch.tsx (82%) rename {src => packages/ui/src}/components/ui/table.tsx (97%) rename {src => packages/ui/src}/components/ui/tabs.tsx (94%) create mode 100644 packages/ui/src/components/ui/textarea.tsx rename {src => packages/ui/src}/components/ui/toast.tsx (91%) create mode 100644 packages/ui/src/components/ui/toaster.tsx rename {src => packages/ui/src}/components/ui/toggle-group.tsx (90%) rename {src => packages/ui/src}/components/ui/toggle.tsx (58%) create mode 100644 packages/ui/src/components/ui/tooltip.tsx create mode 100644 packages/ui/src/globals.css create mode 100644 packages/ui/src/hooks/use-mobile.tsx rename {src/components/ui => packages/ui/src/hooks}/use-toast.ts (86%) create mode 100644 packages/ui/src/index.ts create mode 100644 packages/ui/src/lib/utils.ts create mode 100644 packages/ui/tailwind.config.ts create mode 100644 packages/ui/tsconfig.json create mode 100644 pnpm-workspace.yaml delete mode 100644 src/components/data-table/index.tsx delete mode 100644 src/components/devtools/dev-monitor-panel.tsx delete mode 100644 src/components/ui/collapsible.tsx delete mode 100644 src/components/ui/input.tsx delete mode 100644 src/components/ui/radio-group.tsx delete mode 100644 src/components/ui/textarea.tsx delete mode 100644 src/components/ui/toaster.tsx delete mode 100644 src/components/ui/tooltip.tsx create mode 100644 turbo.json diff --git a/.github/workflows/gh-deploy.yml b/.github/workflows/gh-deploy.yml index f3e292d..9b996ae 100644 --- a/.github/workflows/gh-deploy.yml +++ b/.github/workflows/gh-deploy.yml @@ -31,20 +31,19 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 - - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消注释 - # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释 + fetch-depth: 0 + - uses: pnpm/action-setup@v3 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 - cache: pnpm # 或 pnpm / yarn + cache: pnpm - name: Setup Pages uses: actions/configure-pages@v4 - name: Install dependencies - run: pnpm install # 或 pnpm install / yarn install / bun install + run: pnpm install - name: Build with VitePress - run: pnpm docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build + run: pnpm docs:build - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 729d377..2c1c144 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,22 +1,36 @@ name: Release +permissions: + contents: write + id-token: write + on: - push: - tags: - - "v*" + workflow_dispatch: jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: git config run: | git config user.name "${ACTION_ACTOR}" git config user.email "${ACTION_ACTOR}@users.noreply.github.com" - - run: npm install - - run: npm run release + + - name: Set node + uses: actions/setup-node@v4 + with: + node-version: lts/* + registry-url: "https://registry.npmjs.org" + - name: Setup pnpm + uses: pnpm/action-setup@v3 + + - name: Install dependencies + run: pnpm install + + - name: Release + run: pnpm run release --verbose env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 192b411..c89e4b1 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,16 @@ dist-ssr docs/.vitepress/dist docs/.vitepress/cache - # vitest coverage/ + +# turbo +.turbo + +# next.js +/.next/ +/out/ + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.storybook/main.ts b/.storybook/main.ts deleted file mode 100644 index db86e2e..0000000 --- a/.storybook/main.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { StorybookConfig } from "@storybook/react-vite" - -const config: StorybookConfig = { - stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], - addons: [ - "@storybook/addon-onboarding", - "@storybook/addon-links", - "@storybook/addon-essentials", - "@chromatic-com/storybook", - "@storybook/addon-interactions", - "storybook-dark-mode", - ], - framework: { - name: "@storybook/react-vite", - options: {}, - }, - docs: {}, -} - -export default config diff --git a/.vscode/settings.json b/.vscode/settings.json index c1fa65a..0996980 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -55,5 +55,18 @@ "i18n-ally.localesPaths": "locales", "i18n-ally.displayLanguage": "zh-CN", "typescript.tsdk": "node_modules/typescript/lib", - "cSpell.words": ["autodocs", "hookform", "lucide", "ofetch", "tanstack"] + "cSpell.words": [ + "autodocs", + "classname", + "clsx", + "hono", + "hookform", + "hyoban", + "lucide", + "ofetch", + "tanstack", + "tsup" + ], + "typescript.preferences.autoImportFileExcludePatterns": ["react-day-picker"], + "typescript.preferences.importModuleSpecifier": "shortest" } diff --git a/.env.example b/apps/admin/.env.example similarity index 100% rename from .env.example rename to apps/admin/.env.example diff --git a/apps/admin/.storybook/Introduction.mdx b/apps/admin/.storybook/Introduction.mdx new file mode 100644 index 0000000..8fb54ee --- /dev/null +++ b/apps/admin/.storybook/Introduction.mdx @@ -0,0 +1,30 @@ +import { Meta } from '@storybook/blocks'; + + + +# Welcome to Admin UI Storybook + +This is a UI component library built with React, Tailwind CSS, and Shadcn UI. + +## Getting Started + +Our component library provides a set of reusable components that follow modern design principles and best practices. + +### Key Features + +- 🎨 Built with Tailwind CSS +- 🔧 Powered by Shadcn UI +- ⚛️ React Components +- 📱 Responsive Design +- 🌙 Dark Mode Support +- ♿ Accessibility First + +### Component Categories + +- **Layout Components**: Sidebar, Layout, Container +- **Data Display**: Tables, Cards, Lists +- **Form Elements**: Input, Select, Checkbox +- **Feedback**: Toast, Alert, Modal +- **Navigation**: Breadcrumb, Menu, Tabs + +## Installation diff --git a/.storybook/ThemeChanger.tsx b/apps/admin/.storybook/ThemeChanger.tsx similarity index 89% rename from .storybook/ThemeChanger.tsx rename to apps/admin/.storybook/ThemeChanger.tsx index 47595f3..d4ea3bc 100644 --- a/.storybook/ThemeChanger.tsx +++ b/apps/admin/.storybook/ThemeChanger.tsx @@ -1,9 +1,9 @@ +import { Button } from "@repo/ui/button" import { addons } from "@storybook/manager-api" +import { useTheme } from "@storybook/theming" import { Moon, Sun } from "lucide-react" import * as React from "react" -import { useTheme } from "../src/components/theme/theme-provider" -import { Button } from "../src/components/ui/button" import { darkTheme, lightTheme } from "./theme" export function ThemeChanger() { diff --git a/apps/admin/.storybook/main.ts b/apps/admin/.storybook/main.ts new file mode 100644 index 0000000..71351c3 --- /dev/null +++ b/apps/admin/.storybook/main.ts @@ -0,0 +1,28 @@ +import { dirname, join } from "node:path" + +import type { StorybookConfig } from "@storybook/react-vite" + +const config: StorybookConfig = { + stories: [ + "../src/**/*.mdx", + "./**/*.mdx", + "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)", + ], + addons: [ + getAbsolutePath("@storybook/addon-links"), + getAbsolutePath("@storybook/addon-essentials"), + getAbsolutePath("@storybook/addon-interactions"), + getAbsolutePath("storybook-dark-mode"), + ], + framework: { + name: getAbsolutePath("@storybook/react-vite"), + options: {}, + }, + docs: {}, +} + +export default config + +function getAbsolutePath(value: string): any { + return dirname(require.resolve(join(value, "package.json"))) +} diff --git a/.storybook/manager.ts b/apps/admin/.storybook/manager.ts similarity index 100% rename from .storybook/manager.ts rename to apps/admin/.storybook/manager.ts diff --git a/.storybook/preview.tsx b/apps/admin/.storybook/preview.tsx similarity index 97% rename from .storybook/preview.tsx rename to apps/admin/.storybook/preview.tsx index 0589705..8f4cab8 100644 --- a/.storybook/preview.tsx +++ b/apps/admin/.storybook/preview.tsx @@ -1,4 +1,4 @@ -import "../src/styles/index.css" +import "@repo/ui/globals.css" import type { Preview } from "@storybook/react" import { themes } from "@storybook/theming" diff --git a/.storybook/theme.ts b/apps/admin/.storybook/theme.ts similarity index 100% rename from .storybook/theme.ts rename to apps/admin/.storybook/theme.ts diff --git a/components.json b/apps/admin/components.json similarity index 100% rename from components.json rename to apps/admin/components.json diff --git a/env.ts b/apps/admin/env.ts similarity index 100% rename from env.ts rename to apps/admin/env.ts diff --git a/index.html b/apps/admin/index.html similarity index 100% rename from index.html rename to apps/admin/index.html diff --git a/locales/en/auth.json b/apps/admin/locales/en/auth.json similarity index 100% rename from locales/en/auth.json rename to apps/admin/locales/en/auth.json diff --git a/locales/en/common.json b/apps/admin/locales/en/common.json similarity index 100% rename from locales/en/common.json rename to apps/admin/locales/en/common.json diff --git a/locales/en/errors.json b/apps/admin/locales/en/errors.json similarity index 100% rename from locales/en/errors.json rename to apps/admin/locales/en/errors.json diff --git a/locales/en/forms.json b/apps/admin/locales/en/forms.json similarity index 100% rename from locales/en/forms.json rename to apps/admin/locales/en/forms.json diff --git a/locales/en/navigation.json b/apps/admin/locales/en/navigation.json similarity index 100% rename from locales/en/navigation.json rename to apps/admin/locales/en/navigation.json diff --git a/locales/en/settings.json b/apps/admin/locales/en/settings.json similarity index 100% rename from locales/en/settings.json rename to apps/admin/locales/en/settings.json diff --git a/locales/zh-CN/auth.json b/apps/admin/locales/zh-CN/auth.json similarity index 100% rename from locales/zh-CN/auth.json rename to apps/admin/locales/zh-CN/auth.json diff --git a/locales/zh-CN/common.json b/apps/admin/locales/zh-CN/common.json similarity index 100% rename from locales/zh-CN/common.json rename to apps/admin/locales/zh-CN/common.json diff --git a/locales/zh-CN/errors.json b/apps/admin/locales/zh-CN/errors.json similarity index 100% rename from locales/zh-CN/errors.json rename to apps/admin/locales/zh-CN/errors.json diff --git a/locales/zh-CN/forms.json b/apps/admin/locales/zh-CN/forms.json similarity index 100% rename from locales/zh-CN/forms.json rename to apps/admin/locales/zh-CN/forms.json diff --git a/locales/zh-CN/navigation.json b/apps/admin/locales/zh-CN/navigation.json similarity index 100% rename from locales/zh-CN/navigation.json rename to apps/admin/locales/zh-CN/navigation.json diff --git a/locales/zh-CN/settings.json b/apps/admin/locales/zh-CN/settings.json similarity index 100% rename from locales/zh-CN/settings.json rename to apps/admin/locales/zh-CN/settings.json diff --git a/apps/admin/package.json b/apps/admin/package.json new file mode 100644 index 0000000..9ad6d4f --- /dev/null +++ b/apps/admin/package.json @@ -0,0 +1,107 @@ +{ + "name": "admin", + "type": "module", + "version": "1.1.0", + "private": true, + "packageManager": "pnpm@9.12.3", + "homepage": "https://github.com/TinsFox/shadcnui-boilerplate", + "repository": { + "url": "https://github.com/TinsFox/shadcnui-boilerplate", + "type": "git" + }, + "scripts": { + "build": "tsc && vite build", + "build-storybook": "storybook build", + "commit": "commit", + "commitlint": "commitlint --edit", + "coverage": "vitest run --coverage", + "dev": "vite dev", + "lint": "eslint", + "lint:fix": "eslint --fix", + "prepare": "test -f .env || cp .env.example .env", + "preview": "vite preview", + "start": "tsc && vite build && vite preview", + "storybook": "storybook dev -p 6006", + "test": "vitest", + "test:coverage": "vitest run --coverage", + "test:ui": "vitest --ui", + "test:watch": "vitest watch" + }, + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "@radix-ui/react-icons": "^1.3.2", + "@repo/pro-components": "workspace:*", + "@repo/ui": "workspace:*", + "@tanstack/react-query": "^5.59.17", + "@tanstack/react-table": "^8.20.5", + "clsx": "^2.1.1", + "date-fns": "^2.30.0", + "dotenv": "^16.4.5", + "framer-motion": "^11.11.11", + "i18next": "^23.16.4", + "i18next-browser-languagedetector": "^8.0.0", + "input-otp": "^1.4.0", + "jotai": "^2.10.1", + "lodash-es": "^4.17.21", + "lucide-react": "^0.429.0", + "ofetch": "^1.4.1", + "qrcode.react": "^4.1.0", + "react": "^18.3.1", + "react-day-picker": "^8.10.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-hotkeys-hook": "^4.6.1", + "react-i18next": "^15.1.0", + "react-markdown": "^9.0.1", + "react-resizable-panels": "^2.1.6", + "react-router-dom": "^6.27.0", + "recharts": "2.13.0-alpha.4", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.0", + "sonner": "^1.6.1", + "storybook-dark-mode": "^4.0.2", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7", + "vaul": "^0.9.9", + "zod": "^3.23.8" + }, + "devDependencies": { + "@chromatic-com/storybook": "^3.2.2", + "@faker-js/faker": "^8.4.1", + "@storybook/addon-essentials": "^8.4.5", + "@storybook/addon-interactions": "^8.4.5", + "@storybook/addon-links": "^8.4.5", + "@storybook/blocks": "^8.4.5", + "@storybook/manager-api": "^8.4.5", + "@storybook/react": "^8.4.5", + "@storybook/react-vite": "^8.4.5", + "@storybook/test": "^8.4.5", + "@storybook/theming": "^8.4.5", + "@t3-oss/env-core": "^0.11.1", + "@tailwindcss/typography": "^0.5.15", + "@tanstack/react-query-devtools": "^5.59.17", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.0.1", + "@testing-library/user-event": "^14.5.2", + "@types/lodash-es": "^4.17.12", + "@types/node": "^20.17.5", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react-swc": "^3.7.1", + "@vitest/coverage-v8": "^1.6.0", + "@vitest/ui": "^1.6.0", + "autoprefixer": "^10.4.20", + "click-to-react-component": "^1.1.0", + "jsdom": "^25.0.1", + "postcss": "^8.4.47", + "storybook": "^8.4.5", + "tailwindcss": "^3.4.14", + "turbo": "^2.2.3", + "typescript": "^5.6.3", + "vite": "^5.4.10", + "vite-plugin-html": "^3.2.2", + "vite-tsconfig-paths": "^5.0.1", + "vitepress": "^1.4.3", + "vitest": "^2.1.4" + } +} diff --git a/postcss.config.cjs b/apps/admin/postcss.config.cjs similarity index 100% rename from postcss.config.cjs rename to apps/admin/postcss.config.cjs diff --git a/public/avatars/01.png b/apps/admin/public/avatars/01.png similarity index 100% rename from public/avatars/01.png rename to apps/admin/public/avatars/01.png diff --git a/public/avatars/02.png b/apps/admin/public/avatars/02.png similarity index 100% rename from public/avatars/02.png rename to apps/admin/public/avatars/02.png diff --git a/public/avatars/03.png b/apps/admin/public/avatars/03.png similarity index 100% rename from public/avatars/03.png rename to apps/admin/public/avatars/03.png diff --git a/public/avatars/04.png b/apps/admin/public/avatars/04.png similarity index 100% rename from public/avatars/04.png rename to apps/admin/public/avatars/04.png diff --git a/public/avatars/05.png b/apps/admin/public/avatars/05.png similarity index 100% rename from public/avatars/05.png rename to apps/admin/public/avatars/05.png diff --git a/public/avatars/shadcn.jpg b/apps/admin/public/avatars/shadcn.jpg similarity index 100% rename from public/avatars/shadcn.jpg rename to apps/admin/public/avatars/shadcn.jpg diff --git a/public/favicon.ico b/apps/admin/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to apps/admin/public/favicon.ico diff --git a/public/index.png b/apps/admin/public/index.png similarity index 100% rename from public/index.png rename to apps/admin/public/index.png diff --git a/public/overview.png b/apps/admin/public/overview.png similarity index 100% rename from public/overview.png rename to apps/admin/public/overview.png diff --git a/docs/public/vite-boilerplate.svg b/apps/admin/public/vite-boilerplate.svg similarity index 100% rename from docs/public/vite-boilerplate.svg rename to apps/admin/public/vite-boilerplate.svg diff --git a/public/vite.svg b/apps/admin/public/vite.svg similarity index 100% rename from public/vite.svg rename to apps/admin/public/vite.svg diff --git a/scripts/lib.ts b/apps/admin/scripts/lib.ts similarity index 100% rename from scripts/lib.ts rename to apps/admin/scripts/lib.ts diff --git a/src/App.tsx b/apps/admin/src/App.tsx similarity index 100% rename from src/App.tsx rename to apps/admin/src/App.tsx diff --git a/src/assets/logo/docker.svg b/apps/admin/src/assets/logo/docker.svg similarity index 100% rename from src/assets/logo/docker.svg rename to apps/admin/src/assets/logo/docker.svg diff --git a/src/assets/logo/eslint.svg b/apps/admin/src/assets/logo/eslint.svg similarity index 100% rename from src/assets/logo/eslint.svg rename to apps/admin/src/assets/logo/eslint.svg diff --git a/src/assets/logo/faker.svg b/apps/admin/src/assets/logo/faker.svg similarity index 100% rename from src/assets/logo/faker.svg rename to apps/admin/src/assets/logo/faker.svg diff --git a/src/assets/logo/fly.svg b/apps/admin/src/assets/logo/fly.svg similarity index 100% rename from src/assets/logo/fly.svg rename to apps/admin/src/assets/logo/fly.svg diff --git a/src/assets/logo/github.svg b/apps/admin/src/assets/logo/github.svg similarity index 100% rename from src/assets/logo/github.svg rename to apps/admin/src/assets/logo/github.svg diff --git a/src/assets/logo/msw.svg b/apps/admin/src/assets/logo/msw.svg similarity index 100% rename from src/assets/logo/msw.svg rename to apps/admin/src/assets/logo/msw.svg diff --git a/src/assets/logo/playwright.svg b/apps/admin/src/assets/logo/playwright.svg similarity index 100% rename from src/assets/logo/playwright.svg rename to apps/admin/src/assets/logo/playwright.svg diff --git a/src/assets/logo/prettier.svg b/apps/admin/src/assets/logo/prettier.svg similarity index 100% rename from src/assets/logo/prettier.svg rename to apps/admin/src/assets/logo/prettier.svg diff --git a/src/assets/logo/prisma.svg b/apps/admin/src/assets/logo/prisma.svg similarity index 100% rename from src/assets/logo/prisma.svg rename to apps/admin/src/assets/logo/prisma.svg diff --git a/src/assets/logo/radix.svg b/apps/admin/src/assets/logo/radix.svg similarity index 100% rename from src/assets/logo/radix.svg rename to apps/admin/src/assets/logo/radix.svg diff --git a/src/assets/logo/react-email.svg b/apps/admin/src/assets/logo/react-email.svg similarity index 100% rename from src/assets/logo/react-email.svg rename to apps/admin/src/assets/logo/react-email.svg diff --git a/src/assets/logo/react.svg b/apps/admin/src/assets/logo/react.svg similarity index 100% rename from src/assets/logo/react.svg rename to apps/admin/src/assets/logo/react.svg diff --git a/src/assets/logo/remix.svg b/apps/admin/src/assets/logo/remix.svg similarity index 100% rename from src/assets/logo/remix.svg rename to apps/admin/src/assets/logo/remix.svg diff --git a/src/assets/logo/resend.svg b/apps/admin/src/assets/logo/resend.svg similarity index 100% rename from src/assets/logo/resend.svg rename to apps/admin/src/assets/logo/resend.svg diff --git a/src/assets/logo/sentry.svg b/apps/admin/src/assets/logo/sentry.svg similarity index 100% rename from src/assets/logo/sentry.svg rename to apps/admin/src/assets/logo/sentry.svg diff --git a/src/assets/logo/shadcn-ui.svg b/apps/admin/src/assets/logo/shadcn-ui.svg similarity index 100% rename from src/assets/logo/shadcn-ui.svg rename to apps/admin/src/assets/logo/shadcn-ui.svg diff --git a/src/assets/logo/sqlite.svg b/apps/admin/src/assets/logo/sqlite.svg similarity index 100% rename from src/assets/logo/sqlite.svg rename to apps/admin/src/assets/logo/sqlite.svg diff --git a/src/assets/logo/tailwind.svg b/apps/admin/src/assets/logo/tailwind.svg similarity index 100% rename from src/assets/logo/tailwind.svg rename to apps/admin/src/assets/logo/tailwind.svg diff --git a/src/assets/logo/testing-library.png b/apps/admin/src/assets/logo/testing-library.png similarity index 100% rename from src/assets/logo/testing-library.png rename to apps/admin/src/assets/logo/testing-library.png diff --git a/src/assets/logo/typescript.svg b/apps/admin/src/assets/logo/typescript.svg similarity index 100% rename from src/assets/logo/typescript.svg rename to apps/admin/src/assets/logo/typescript.svg diff --git a/src/assets/logo/vite.svg b/apps/admin/src/assets/logo/vite.svg similarity index 100% rename from src/assets/logo/vite.svg rename to apps/admin/src/assets/logo/vite.svg diff --git a/src/assets/logo/vitest.svg b/apps/admin/src/assets/logo/vitest.svg similarity index 100% rename from src/assets/logo/vitest.svg rename to apps/admin/src/assets/logo/vitest.svg diff --git a/src/assets/logo/zod.svg b/apps/admin/src/assets/logo/zod.svg similarity index 100% rename from src/assets/logo/zod.svg rename to apps/admin/src/assets/logo/zod.svg diff --git a/src/atoms/nav.ts b/apps/admin/src/atoms/nav.ts similarity index 100% rename from src/atoms/nav.ts rename to apps/admin/src/atoms/nav.ts diff --git a/apps/admin/src/components/announcement.stories.tsx b/apps/admin/src/components/announcement.stories.tsx new file mode 100644 index 0000000..e05e251 --- /dev/null +++ b/apps/admin/src/components/announcement.stories.tsx @@ -0,0 +1,24 @@ +import type { Meta, StoryObj } from "@storybook/react" +import { BrowserRouter } from "react-router-dom" + +import { Announcement } from "./announcement" + +const meta = { + title: "Components/Announcement", + component: Announcement, + decorators: [ + (Story) => ( + + + + ), + ], + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} diff --git a/src/components/announcement.tsx b/apps/admin/src/components/announcement.tsx similarity index 92% rename from src/components/announcement.tsx rename to apps/admin/src/components/announcement.tsx index 77ff26a..2ebdf65 100644 --- a/src/components/announcement.tsx +++ b/apps/admin/src/components/announcement.tsx @@ -1,9 +1,8 @@ import { ArrowRightIcon } from "@radix-ui/react-icons" +import { Separator } from "@repo/ui/separator" import { PieChart } from "lucide-react" import { Link } from "react-router-dom" -import { Separator } from "@/ui/separator" - export function Announcement() { return ( { const navigate = useNavigate() diff --git a/src/components/common/PoweredByFooter.tsx b/apps/admin/src/components/common/PoweredByFooter.tsx similarity index 100% rename from src/components/common/PoweredByFooter.tsx rename to apps/admin/src/components/common/PoweredByFooter.tsx diff --git a/src/components/date-picker-with-range.tsx b/apps/admin/src/components/date-picker-with-range.tsx similarity index 90% rename from src/components/date-picker-with-range.tsx rename to apps/admin/src/components/date-picker-with-range.tsx index 2fa8ccd..aa31778 100644 --- a/src/components/date-picker-with-range.tsx +++ b/apps/admin/src/components/date-picker-with-range.tsx @@ -1,15 +1,11 @@ +import { Button } from "@repo/ui/button" +import { Calendar } from "@repo/ui/calendar" +import { Popover, PopoverContent, PopoverTrigger } from "@repo/ui/popover" import { addDays, format } from "date-fns" import { Calendar as CalendarIcon } from "lucide-react" import * as React from "react" import type { DateRange } from "react-day-picker" -import { Button } from "@/components/ui/button" -import { Calendar } from "@/components/ui/calendar" -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover" import { cn } from "@/lib/utils" export default function DatePickerWithRange({ diff --git a/src/components/date-range-picker.tsx b/apps/admin/src/components/date-range-picker.tsx similarity index 90% rename from src/components/date-range-picker.tsx rename to apps/admin/src/components/date-range-picker.tsx index 957fc26..2dd082e 100644 --- a/src/components/date-range-picker.tsx +++ b/apps/admin/src/components/date-range-picker.tsx @@ -1,15 +1,11 @@ import { CalendarIcon } from "@radix-ui/react-icons" +import { Button } from "@repo/ui/button" +import { Popover, PopoverContent, PopoverTrigger } from "@repo/ui/popover" import { addDays, format } from "date-fns" +import { Calendar } from "lucide-react" import * as React from "react" import type { DateRange } from "react-day-picker" -import { Button } from "@/components/ui/button" -import { Calendar } from "@/components/ui/calendar" -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover" import { cn } from "@/lib/utils" export function CalendarDateRangePicker({ diff --git a/src/components/devtools/tailwind-indicator.tsx b/apps/admin/src/components/devtools/tailwind-indicator.tsx similarity index 100% rename from src/components/devtools/tailwind-indicator.tsx rename to apps/admin/src/components/devtools/tailwind-indicator.tsx diff --git a/src/components/empty.tsx b/apps/admin/src/components/empty.tsx similarity index 100% rename from src/components/empty.tsx rename to apps/admin/src/components/empty.tsx diff --git a/src/components/errors/ModalError.tsx b/apps/admin/src/components/errors/ModalError.tsx similarity index 100% rename from src/components/errors/ModalError.tsx rename to apps/admin/src/components/errors/ModalError.tsx diff --git a/src/components/errors/helper.ts b/apps/admin/src/components/errors/helper.ts similarity index 100% rename from src/components/errors/helper.ts rename to apps/admin/src/components/errors/helper.ts diff --git a/src/components/errors/index.ts b/apps/admin/src/components/errors/index.ts similarity index 100% rename from src/components/errors/index.ts rename to apps/admin/src/components/errors/index.ts diff --git a/src/components/fallback.tsx b/apps/admin/src/components/fallback.tsx similarity index 100% rename from src/components/fallback.tsx rename to apps/admin/src/components/fallback.tsx diff --git a/src/components/icons.tsx b/apps/admin/src/components/icons.tsx similarity index 100% rename from src/components/icons.tsx rename to apps/admin/src/components/icons.tsx diff --git a/src/components/icons/logo.tsx b/apps/admin/src/components/icons/logo.tsx similarity index 100% rename from src/components/icons/logo.tsx rename to apps/admin/src/components/icons/logo.tsx diff --git a/src/components/icons/logos.ts b/apps/admin/src/components/icons/logos.ts similarity index 94% rename from src/components/icons/logos.ts rename to apps/admin/src/components/icons/logos.ts index d314c28..3c54f26 100644 --- a/src/components/icons/logos.ts +++ b/apps/admin/src/components/icons/logos.ts @@ -113,13 +113,6 @@ export const logos: ILogo[] = [ column: 5, row: 4, }, - // { - // src: prettier, - // alt: "Prettier", - // href: "https://prettier.io", - // column: 5, - // row: 3, - // }, { src: eslint, name: "ESLint", diff --git a/src/components/language-switch.tsx b/apps/admin/src/components/language-switch.tsx similarity index 96% rename from src/components/language-switch.tsx rename to apps/admin/src/components/language-switch.tsx index 67d77c4..a8d432b 100644 --- a/src/components/language-switch.tsx +++ b/apps/admin/src/components/language-switch.tsx @@ -1,12 +1,12 @@ -import { useTranslation } from "react-i18next" - import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" +} from "@repo/ui/select" +import { useTranslation } from "react-i18next" + import { languages } from "@/i18n" export const LanguageSwitch = () => { diff --git a/src/components/loading.tsx b/apps/admin/src/components/loading.tsx similarity index 100% rename from src/components/loading.tsx rename to apps/admin/src/components/loading.tsx diff --git a/src/components/nav-sidebar/app-sidebar.tsx b/apps/admin/src/components/nav-sidebar/app-sidebar.tsx similarity index 95% rename from src/components/nav-sidebar/app-sidebar.tsx rename to apps/admin/src/components/nav-sidebar/app-sidebar.tsx index 151f2d0..06dcbc6 100644 --- a/src/components/nav-sidebar/app-sidebar.tsx +++ b/apps/admin/src/components/nav-sidebar/app-sidebar.tsx @@ -1,4 +1,13 @@ import { env } from "@env" +import { + Sidebar, + SidebarContent, + SidebarFooter, + SidebarHeader, + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, +} from "@repo/ui/sidebar" import { Command, Send, @@ -9,16 +18,7 @@ import { Link } from "react-router-dom" import { NavMain } from "@/components/nav-sidebar/nav-main" import { NavSecondary } from "@/components/nav-sidebar/nav-secondary" import { NavUser } from "@/components/nav-sidebar/nav-user" -import { - Sidebar, - SidebarContent, - SidebarFooter, - SidebarHeader, - SidebarMenu, - SidebarMenuButton, - SidebarMenuItem, -} from "@/components/ui/sidebar" -import { useNavMenu } from "@/hooks/query/user-memu" +import { useNavMenu } from "@/hooks/query/user-menu" const navSecondary = [ { diff --git a/src/components/nav-sidebar/nav-breadcrumb.tsx b/apps/admin/src/components/nav-sidebar/nav-breadcrumb.tsx similarity index 96% rename from src/components/nav-sidebar/nav-breadcrumb.tsx rename to apps/admin/src/components/nav-sidebar/nav-breadcrumb.tsx index ea5ae34..fc6f5f6 100644 --- a/src/components/nav-sidebar/nav-breadcrumb.tsx +++ b/apps/admin/src/components/nav-sidebar/nav-breadcrumb.tsx @@ -1,7 +1,3 @@ -import * as React from "react" -import { useTranslation } from "react-i18next" -import { Link, useLocation } from "react-router-dom" - import { Breadcrumb, BreadcrumbItem, @@ -9,8 +5,12 @@ import { BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, -} from "@/components/ui/breadcrumb" -import { useNavMenu } from "@/hooks/query/user-memu" +} from "@repo/ui/breadcrumb" +import * as React from "react" +import { useTranslation } from "react-i18next" +import { Link, useLocation } from "react-router-dom" + +import { useNavMenu } from "@/hooks/query/user-menu" import { cn } from "@/lib/utils" import type { IMenu } from "@/schema/menu" diff --git a/src/components/nav-sidebar/nav-main.tsx b/apps/admin/src/components/nav-sidebar/nav-main.tsx similarity index 87% rename from src/components/nav-sidebar/nav-main.tsx rename to apps/admin/src/components/nav-sidebar/nav-main.tsx index dae05de..eabcb30 100644 --- a/src/components/nav-sidebar/nav-main.tsx +++ b/apps/admin/src/components/nav-sidebar/nav-main.tsx @@ -1,30 +1,15 @@ +import { Button } from "@repo/ui/button" +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@repo/ui/collapsible" +import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem } from "@repo/ui/sidebar" import { useAtom } from "jotai" -import { ChevronRight, Maximize2, Minimize2 } from "lucide-react" +import { ChevronRight, ChevronsDownUp, ChevronsUpDown } from "lucide-react" import { useEffect, useMemo } from "react" import { useTranslation } from "react-i18next" import { Link, useLocation } from "react-router-dom" import { navOpenItemsAtom } from "@/atoms/nav" -import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, -} from "@/components/ui/collapsible" -import { - SidebarGroup, - SidebarGroupLabel, - SidebarMenu, - SidebarMenuAction, - SidebarMenuButton, - SidebarMenuItem, - SidebarMenuSub, - SidebarMenuSubButton, - SidebarMenuSubItem, -} from "@/components/ui/sidebar" import type { IMenu } from "@/schema/menu" -import { Button } from "../ui/button" - export function NavMain({ items, }: { @@ -83,7 +68,7 @@ export function NavMain({ return ( -
+
Platform
diff --git a/src/components/nav-sidebar/nav-projects.tsx b/apps/admin/src/components/nav-sidebar/nav-projects.tsx similarity index 96% rename from src/components/nav-sidebar/nav-projects.tsx rename to apps/admin/src/components/nav-sidebar/nav-projects.tsx index d313952..6ed8089 100644 --- a/src/components/nav-sidebar/nav-projects.tsx +++ b/apps/admin/src/components/nav-sidebar/nav-projects.tsx @@ -1,18 +1,10 @@ -import type { LucideIcon } from "lucide-react" -import { - Folder, - MoreHorizontal, - Share, - Trash2, -} from "lucide-react" - import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" +} from "@repo/ui/dropdown-menu" import { SidebarGroup, SidebarGroupLabel, @@ -21,7 +13,14 @@ import { SidebarMenuButton, SidebarMenuItem, useSidebar, -} from "@/components/ui/sidebar" +} from "@repo/ui/sidebar" +import type { LucideIcon } from "lucide-react" +import { + Folder, + MoreHorizontal, + Share, + Trash2, +} from "lucide-react" export function NavProjects({ projects, diff --git a/src/components/nav-sidebar/nav-secondary.tsx b/apps/admin/src/components/nav-sidebar/nav-secondary.tsx similarity index 96% rename from src/components/nav-sidebar/nav-secondary.tsx rename to apps/admin/src/components/nav-sidebar/nav-secondary.tsx index 0b2d58b..e64d254 100644 --- a/src/components/nav-sidebar/nav-secondary.tsx +++ b/apps/admin/src/components/nav-sidebar/nav-secondary.tsx @@ -1,14 +1,13 @@ -import type { LucideIcon } from "lucide-react" -import * as React from "react" -import { Link } from "react-router-dom" - import { SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuButton, SidebarMenuItem, -} from "@/components/ui/sidebar" +} from "@repo/ui/sidebar" +import type { LucideIcon } from "lucide-react" +import * as React from "react" +import { Link } from "react-router-dom" export function NavSecondary({ items, diff --git a/src/components/nav-sidebar/nav-user.tsx b/apps/admin/src/components/nav-sidebar/nav-user.tsx similarity index 96% rename from src/components/nav-sidebar/nav-user.tsx rename to apps/admin/src/components/nav-sidebar/nav-user.tsx index d853791..e4ca938 100644 --- a/src/components/nav-sidebar/nav-user.tsx +++ b/apps/admin/src/components/nav-sidebar/nav-user.tsx @@ -1,19 +1,4 @@ -import { - BadgeCheck, - Bell, - ChevronsUpDown, - CreditCard, - LogOut, - Sparkles, -} from "lucide-react" -import { useTranslation } from "react-i18next" -import { Link } from "react-router-dom" - -import { - Avatar, - AvatarFallback, - AvatarImage, -} from "@/components/ui/avatar" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" import { DropdownMenu, DropdownMenuContent, @@ -22,13 +7,24 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" +} from "@repo/ui/dropdown-menu" import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, -} from "@/components/ui/sidebar" +} from "@repo/ui/sidebar" +import { + BadgeCheck, + Bell, + ChevronsUpDown, + CreditCard, + LogOut, + Sparkles, +} from "lucide-react" +import { useTranslation } from "react-i18next" +import { Link } from "react-router-dom" + import { useUser, useUserLogoutMutation } from "@/hooks/query/use-user" export function NavUser() { diff --git a/src/components/search.tsx b/apps/admin/src/components/search.tsx similarity index 93% rename from src/components/search.tsx rename to apps/admin/src/components/search.tsx index 2d7b8c6..98a6fbd 100644 --- a/src/components/search.tsx +++ b/apps/admin/src/components/search.tsx @@ -1,26 +1,18 @@ -import type { DialogProps } from "@radix-ui/react-dialog" import { LaptopIcon, MoonIcon, SunIcon } from "@radix-ui/react-icons" +import type { ButtonProps } from "@repo/ui/button" +import { Button } from "@repo/ui/button" +import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "@repo/ui/command" +import type { DialogProps } from "@repo/ui/dialog" import { CircleHelp, SearchIcon } from "lucide-react" import * as React from "react" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" -import type { ButtonProps } from "@/components/ui/button" -import { Button } from "@/components/ui/button" import { languages } from "@/i18n" import { cn } from "@/lib/utils" import { Icons } from "./icons" import { useTheme } from "./theme/theme-provider" -import { - CommandDialog, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, - CommandSeparator, -} from "./ui/command" export function Search({ ...props }: ButtonProps & DialogProps) { const navigate = useNavigate() diff --git a/src/components/theme/theme-customizer.tsx b/apps/admin/src/components/theme/theme-customizer.tsx similarity index 97% rename from src/components/theme/theme-customizer.tsx rename to apps/admin/src/components/theme/theme-customizer.tsx index e62db59..d828493 100644 --- a/src/components/theme/theme-customizer.tsx +++ b/apps/admin/src/components/theme/theme-customizer.tsx @@ -7,29 +7,25 @@ import { ResetIcon, SunIcon, } from "@radix-ui/react-icons" -import { Palette } from "lucide-react" -import * as React from "react" - -import { ThemeWrapper } from "@/components/theme/theme-wrapper" -import { Button } from "@/components/ui/button" -import { - Drawer, - DrawerContent, - DrawerTrigger, -} from "@/components/ui/drawer" -import { Label } from "@/components/ui/label" +import { Button } from "@repo/ui/button" +import { Drawer, DrawerContent, DrawerTrigger } from "@repo/ui/drawer" +import { Label } from "@repo/ui/label" import { Popover, PopoverContent, PopoverTrigger, -} from "@/components/ui/popover" -import { Skeleton } from "@/components/ui/skeleton" +} from "@repo/ui/popover" +import { Skeleton } from "@repo/ui/skeleton" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, -} from "@/components/ui/tooltip" +} from "@repo/ui/tooltip" +import { Palette } from "lucide-react" +import * as React from "react" + +import { ThemeWrapper } from "@/components/theme/theme-wrapper" import { themes } from "@/hooks/themes" import { useConfig } from "@/hooks/use-config" import { cn } from "@/lib/utils" diff --git a/src/components/theme/theme-provider.tsx b/apps/admin/src/components/theme/theme-provider.tsx similarity index 100% rename from src/components/theme/theme-provider.tsx rename to apps/admin/src/components/theme/theme-provider.tsx diff --git a/src/components/theme/theme-switcher.tsx b/apps/admin/src/components/theme/theme-switcher.tsx similarity index 84% rename from src/components/theme/theme-switcher.tsx rename to apps/admin/src/components/theme/theme-switcher.tsx index f85b33e..5a62d0b 100644 --- a/src/components/theme/theme-switcher.tsx +++ b/apps/admin/src/components/theme/theme-switcher.tsx @@ -1,13 +1,8 @@ +import { Button } from "@repo/ui/button" +import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@repo/ui/dropdown-menu" import { Moon, Sun } from "lucide-react" import { useTheme } from "@/components/theme/theme-provider" -import { Button } from "@/components/ui/button" -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" export function ThemeSwitcher() { const { setTheme } = useTheme() diff --git a/src/components/theme/theme-wrapper.tsx b/apps/admin/src/components/theme/theme-wrapper.tsx similarity index 100% rename from src/components/theme/theme-wrapper.tsx rename to apps/admin/src/components/theme/theme-wrapper.tsx diff --git a/src/components/theme/themes-selector.tsx b/apps/admin/src/components/theme/themes-selector.tsx similarity index 94% rename from src/components/theme/themes-selector.tsx rename to apps/admin/src/components/theme/themes-selector.tsx index a63136d..81679ac 100644 --- a/src/components/theme/themes-selector.tsx +++ b/apps/admin/src/components/theme/themes-selector.tsx @@ -1,12 +1,8 @@ +import { Skeleton } from "@repo/ui/skeleton" +import { ToggleGroup, ToggleGroupItem } from "@repo/ui/toggle-group" +import { Tooltip, TooltipContent, TooltipTrigger } from "@repo/ui/tooltip" import * as React from "react" -import { Skeleton } from "@/components/ui/skeleton" -import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group" -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "@/components/ui/tooltip" import { useMediaQuery } from "@/hooks/use-media-query" import { useThemesConfig } from "@/hooks/use-themes-config" import type { Theme } from "@/lib/themes" diff --git a/src/components/theme/themes-styles.tsx b/apps/admin/src/components/theme/themes-styles.tsx similarity index 100% rename from src/components/theme/themes-styles.tsx rename to apps/admin/src/components/theme/themes-styles.tsx diff --git a/src/constants/index.ts b/apps/admin/src/constants/index.ts similarity index 100% rename from src/constants/index.ts rename to apps/admin/src/constants/index.ts diff --git a/src/env.d.ts b/apps/admin/src/env.d.ts similarity index 100% rename from src/env.d.ts rename to apps/admin/src/env.d.ts diff --git a/src/framer-lazy-feature.ts b/apps/admin/src/framer-lazy-feature.ts similarity index 100% rename from src/framer-lazy-feature.ts rename to apps/admin/src/framer-lazy-feature.ts diff --git a/src/global.d.ts b/apps/admin/src/global.d.ts similarity index 89% rename from src/global.d.ts rename to apps/admin/src/global.d.ts index 32e9b69..b61b1b2 100644 --- a/src/global.d.ts +++ b/apps/admin/src/global.d.ts @@ -1,6 +1,6 @@ import type { useTranslation } from "react-i18next" -// eslint-disable-next-line react-hooks/rules-of-hooks, unused-imports/no-unused-vars +// eslint-disable-next-line unused-imports/no-unused-vars const { t } = useTranslation() declare global { diff --git a/src/hooks/query/use-album.ts b/apps/admin/src/hooks/query/use-album.ts similarity index 100% rename from src/hooks/query/use-album.ts rename to apps/admin/src/hooks/query/use-album.ts diff --git a/src/hooks/query/use-tasks.ts b/apps/admin/src/hooks/query/use-tasks.ts similarity index 100% rename from src/hooks/query/use-tasks.ts rename to apps/admin/src/hooks/query/use-tasks.ts diff --git a/src/hooks/query/use-user.test.tsx b/apps/admin/src/hooks/query/use-user.test.tsx similarity index 100% rename from src/hooks/query/use-user.test.tsx rename to apps/admin/src/hooks/query/use-user.test.tsx diff --git a/src/hooks/query/use-user.ts b/apps/admin/src/hooks/query/use-user.ts similarity index 100% rename from src/hooks/query/use-user.ts rename to apps/admin/src/hooks/query/use-user.ts diff --git a/src/hooks/query/user-memu.ts b/apps/admin/src/hooks/query/user-menu.ts similarity index 100% rename from src/hooks/query/user-memu.ts rename to apps/admin/src/hooks/query/user-menu.ts diff --git a/src/hooks/styles.ts b/apps/admin/src/hooks/styles.ts similarity index 100% rename from src/hooks/styles.ts rename to apps/admin/src/hooks/styles.ts diff --git a/src/hooks/themes.ts b/apps/admin/src/hooks/themes.ts similarity index 100% rename from src/hooks/themes.ts rename to apps/admin/src/hooks/themes.ts diff --git a/src/hooks/use-config.ts b/apps/admin/src/hooks/use-config.ts similarity index 100% rename from src/hooks/use-config.ts rename to apps/admin/src/hooks/use-config.ts diff --git a/src/hooks/use-media-query.tsx b/apps/admin/src/hooks/use-media-query.tsx similarity index 100% rename from src/hooks/use-media-query.tsx rename to apps/admin/src/hooks/use-media-query.tsx diff --git a/src/hooks/use-mobile.tsx b/apps/admin/src/hooks/use-mobile.tsx similarity index 100% rename from src/hooks/use-mobile.tsx rename to apps/admin/src/hooks/use-mobile.tsx diff --git a/src/hooks/use-theme.test.ts b/apps/admin/src/hooks/use-theme.test.ts similarity index 100% rename from src/hooks/use-theme.test.ts rename to apps/admin/src/hooks/use-theme.test.ts diff --git a/src/hooks/use-themes-config.ts b/apps/admin/src/hooks/use-themes-config.ts similarity index 100% rename from src/hooks/use-themes-config.ts rename to apps/admin/src/hooks/use-themes-config.ts diff --git a/src/i18n/index.ts b/apps/admin/src/i18n/index.ts similarity index 100% rename from src/i18n/index.ts rename to apps/admin/src/i18n/index.ts diff --git a/src/lib/api-fetch.ts b/apps/admin/src/lib/api-fetch.ts similarity index 100% rename from src/lib/api-fetch.ts rename to apps/admin/src/lib/api-fetch.ts diff --git a/src/lib/charts.ts b/apps/admin/src/lib/charts.ts similarity index 100% rename from src/lib/charts.ts rename to apps/admin/src/lib/charts.ts diff --git a/src/lib/data-dictionary.ts b/apps/admin/src/lib/data-dictionary.ts similarity index 100% rename from src/lib/data-dictionary.ts rename to apps/admin/src/lib/data-dictionary.ts diff --git a/src/lib/dev.tsx b/apps/admin/src/lib/dev.tsx similarity index 100% rename from src/lib/dev.tsx rename to apps/admin/src/lib/dev.tsx diff --git a/src/lib/issues.ts b/apps/admin/src/lib/issues.ts similarity index 100% rename from src/lib/issues.ts rename to apps/admin/src/lib/issues.ts diff --git a/src/lib/jotai.ts b/apps/admin/src/lib/jotai.ts similarity index 100% rename from src/lib/jotai.ts rename to apps/admin/src/lib/jotai.ts diff --git a/src/lib/menu.ts b/apps/admin/src/lib/menu.ts similarity index 100% rename from src/lib/menu.ts rename to apps/admin/src/lib/menu.ts diff --git a/src/lib/query-client.ts b/apps/admin/src/lib/query-client.ts similarity index 100% rename from src/lib/query-client.ts rename to apps/admin/src/lib/query-client.ts diff --git a/src/lib/route-builder.test.ts b/apps/admin/src/lib/route-builder.test.ts similarity index 100% rename from src/lib/route-builder.test.ts rename to apps/admin/src/lib/route-builder.test.ts diff --git a/src/lib/route-builder.ts b/apps/admin/src/lib/route-builder.ts similarity index 100% rename from src/lib/route-builder.ts rename to apps/admin/src/lib/route-builder.ts diff --git a/src/lib/themes.ts b/apps/admin/src/lib/themes.ts similarity index 100% rename from src/lib/themes.ts rename to apps/admin/src/lib/themes.ts diff --git a/src/lib/utils.test.ts b/apps/admin/src/lib/utils.test.ts similarity index 100% rename from src/lib/utils.test.ts rename to apps/admin/src/lib/utils.test.ts diff --git a/src/lib/utils.ts b/apps/admin/src/lib/utils.ts similarity index 100% rename from src/lib/utils.ts rename to apps/admin/src/lib/utils.ts diff --git a/src/main.tsx b/apps/admin/src/main.tsx similarity index 95% rename from src/main.tsx rename to apps/admin/src/main.tsx index ba9f5bc..a97fccb 100644 --- a/src/main.tsx +++ b/apps/admin/src/main.tsx @@ -1,4 +1,4 @@ -import "./styles/index.css" +import "@repo/ui/globals.css" import "./i18n" import { env } from "@env" diff --git a/src/pages/(admin)/(with-layout)/dashboard/analysis/components/overview.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/components/overview.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/dashboard/analysis/components/overview.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/components/overview.tsx diff --git a/src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx index c85f34d..308ca6e 100644 --- a/src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/components/recent-sales.tsx @@ -1,4 +1,4 @@ -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" export function RecentSales() { return ( diff --git a/src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx similarity index 99% rename from src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx index f2d25db..e3f6ca6 100644 --- a/src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/analysis/index.tsx @@ -4,7 +4,7 @@ import { CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" +} from "@repo/ui/card" import { Overview } from "./components/overview" import { RecentSales } from "./components/recent-sales" diff --git a/src/pages/(admin)/(with-layout)/dashboard/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/dashboard/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/index.tsx diff --git a/src/pages/(admin)/(with-layout)/dashboard/overview/components/overview.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/components/overview.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/dashboard/overview/components/overview.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/components/overview.tsx diff --git a/src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx index c85f34d..308ca6e 100644 --- a/src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/components/recent-sales.tsx @@ -1,4 +1,4 @@ -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" export function RecentSales() { return ( diff --git a/src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx similarity index 98% rename from src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx index 5e59565..e544fb0 100644 --- a/src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/overview/index.tsx @@ -4,8 +4,8 @@ import { CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +} from "@repo/ui/card" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@repo/ui/tabs" import { Overview } from "./components/overview" import { RecentSales } from "./components/recent-sales" diff --git a/src/pages/(admin)/(with-layout)/dashboard/workplace/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/dashboard/workplace/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/dashboard/workplace/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/dashboard/workplace/index.tsx diff --git a/src/pages/(admin)/(with-layout)/exception/403.tsx b/apps/admin/src/pages/(admin)/(with-layout)/exception/403.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/exception/403.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/exception/403.tsx diff --git a/src/pages/(admin)/(with-layout)/exception/404.tsx b/apps/admin/src/pages/(admin)/(with-layout)/exception/404.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/exception/404.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/exception/404.tsx diff --git a/src/pages/(admin)/(with-layout)/exception/500.tsx b/apps/admin/src/pages/(admin)/(with-layout)/exception/500.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/exception/500.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/exception/500.tsx diff --git a/src/pages/(admin)/(with-layout)/form/advanced-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/form/advanced-form.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/form/advanced-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/form/advanced-form.tsx diff --git a/src/pages/(admin)/(with-layout)/form/basic-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/form/basic-form.tsx similarity index 96% rename from src/pages/(admin)/(with-layout)/form/basic-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/form/basic-form.tsx index 0513b22..3580465 100644 --- a/src/pages/(admin)/(with-layout)/form/basic-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/form/basic-form.tsx @@ -1,13 +1,8 @@ import { zodResolver } from "@hookform/resolvers/zod" import { CalendarIcon, CaretSortIcon, CheckIcon } from "@radix-ui/react-icons" -import { format } from "date-fns" -import { useForm } from "react-hook-form" -import { Link } from "react-router-dom" -import { z } from "zod" - -import { Button } from "@/components/ui/button" -import { Calendar } from "@/components/ui/calendar" -import { Checkbox } from "@/components/ui/checkbox" +import { Button } from "@repo/ui/button" +import { Calendar } from "@repo/ui/calendar" +import { Checkbox } from "@repo/ui/checkbox" import { Command, CommandEmpty, @@ -15,7 +10,7 @@ import { CommandInput, CommandItem, CommandList, -} from "@/components/ui/command" +} from "@repo/ui/command" import { Form, FormControl, @@ -24,24 +19,29 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { Input } from "@/components/ui/input" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { Input } from "@repo/ui/input" import { Popover, PopoverContent, PopoverTrigger, -} from "@/components/ui/popover" -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" +} from "@repo/ui/popover" +import { RadioGroup, RadioGroupItem } from "@repo/ui/radio-group" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" -import { Switch } from "@/components/ui/switch" -import { Textarea } from "@/components/ui/textarea" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/select" +import { Switch } from "@repo/ui/switch" +import { Textarea } from "@repo/ui/textarea" +import { format } from "date-fns" +import { useForm } from "react-hook-form" +import { Link } from "react-router-dom" +import { z } from "zod" + import { cn } from "@/lib/utils" const languages = [ @@ -113,6 +113,8 @@ const formSchema = z.object({ }), }) export function Component() { + const { toast } = useToast() + // 1. Define your form. const form = useForm>({ resolver: zodResolver(formSchema), diff --git a/src/pages/(admin)/(with-layout)/form/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/form/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/form/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/form/index.tsx diff --git a/src/pages/(admin)/(with-layout)/form/step-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/form/step-form.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/form/step-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/form/step-form.tsx diff --git a/src/pages/(admin)/(with-layout)/list/card-list.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/card-list.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/list/card-list.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/card-list.tsx diff --git a/src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx similarity index 95% rename from src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx index 0bbccff..e011a77 100644 --- a/src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/list/data-table/components/view-user.tsx @@ -1,11 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod" -import { useRef, useState } from "react" -import { useForm } from "react-hook-form" -import type { z } from "zod" - -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" -import { DropdownMenuItem } from "@/components/ui/dropdown-menu" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" +import { DropdownMenuItem } from "@repo/ui/dropdown-menu" import { Form, FormControl, @@ -13,15 +9,16 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { Input } from "@/components/ui/input" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { Input } from "@repo/ui/input" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" +} from "@repo/ui/select" import { Sheet, SheetClose, @@ -31,14 +28,18 @@ import { SheetHeader, SheetTitle, SheetTrigger, -} from "@/components/ui/sheet" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/sheet" +import { useRef, useState } from "react" +import { useForm } from "react-hook-form" +import type { z } from "zod" + import { useUpdateUser } from "@/hooks/query/use-user" import type { IUsers } from "@/schema/user" import { userRoles, userSchema, userStatus } from "@/schema/user" export function ViewUser({ user }: { user: IUsers }) { const [state, setState] = useState(false) + const { toast } = useToast() const sheetCloseRef = useRef(null) const form = useForm({ resolver: zodResolver(userSchema), diff --git a/src/pages/(admin)/(with-layout)/list/data-table/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/data-table/index.tsx similarity index 94% rename from src/pages/(admin)/(with-layout)/list/data-table/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/data-table/index.tsx index 39391a3..da5fc37 100644 --- a/src/pages/(admin)/(with-layout)/list/data-table/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/list/data-table/index.tsx @@ -2,6 +2,28 @@ import { CaretSortIcon, DotsHorizontalIcon, } from "@radix-ui/react-icons" +import { + DataTablePagination, + DataTableSearch, +} from "@repo/pro-components/data-table" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" +import { Checkbox } from "@repo/ui/checkbox" +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuTrigger, +} from "@repo/ui/dropdown-menu" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@repo/ui/table" import type { ColumnDef, ColumnFiltersState, @@ -19,28 +41,8 @@ import { } from "@tanstack/react-table" import * as React from "react" -import { DataTablePagination } from "@/components/data-table/data-table-pagination" -import { DataTableSearch } from "@/components/data-table/data-table-search" import { Empty } from "@/components/empty" import { Loading } from "@/components/loading" -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@/components/ui/table" import { useUsers } from "@/hooks/query/use-user" import type { IUsers } from "@/schema/user" diff --git a/src/pages/(admin)/(with-layout)/list/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/list/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/index.tsx diff --git a/src/pages/(admin)/(with-layout)/list/pro-table/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/pro-table/index.tsx similarity index 92% rename from src/pages/(admin)/(with-layout)/list/pro-table/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/pro-table/index.tsx index edc4734..ce84cf5 100644 --- a/src/pages/(admin)/(with-layout)/list/pro-table/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/list/pro-table/index.tsx @@ -1,25 +1,31 @@ import { DotsHorizontalIcon, } from "@radix-ui/react-icons" -import type { - PaginationState, -} from "@tanstack/react-table" -import * as React from "react" - -import { ProTable } from "@/components/pro-table" -import type { ColumnDef, SearchParams } from "@/components/pro-table/types" -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" +import type { ColumnDef, SearchParams } from "@repo/pro-components/pro-table" +import { ProTable } from "@repo/pro-components/pro-table" +import { Avatar, AvatarFallback, AvatarImage } from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" +import { Checkbox } from "@repo/ui/checkbox" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" -import { Textarea } from "@/components/ui/textarea" +} from "@repo/ui/dropdown-menu" +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@repo/ui/select" +import { Textarea } from "@repo/ui/textarea" +import type { + PaginationState, +} from "@tanstack/react-table" +import * as React from "react" + import { useUsers } from "@/hooks/query/use-user" import type { IUsers } from "@/schema/user" diff --git a/src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx similarity index 94% rename from src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx index aaf2a19..d8cc98d 100644 --- a/src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/list/table-list/components/album-card.tsx @@ -1,13 +1,13 @@ +import { Button } from "@repo/ui/button" +import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@repo/ui/card" +import { Separator } from "@repo/ui/separator" +import { Tooltip, TooltipContent, TooltipTrigger } from "@repo/ui/tooltip" import { format } from "date-fns" import { CheckIcon, ClipboardIcon, Share, TrendingDown, TrendingUp } from "lucide-react" import { QRCodeSVG } from "qrcode.react" import * as React from "react" import { toast } from "sonner" -import { Button } from "@/components/ui/button" -import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" -import { Separator } from "@/components/ui/separator" -import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip" import { cn } from "@/lib/utils" import type { IAlbum } from "@/schema/album" @@ -92,13 +92,12 @@ export function AlbumCard(props: AlbumCardProps) { - +
- Trending {" "} {album.digitalDownloads} diff --git a/src/pages/(admin)/(with-layout)/list/table-list/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/list/table-list/index.tsx similarity index 92% rename from src/pages/(admin)/(with-layout)/list/table-list/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/list/table-list/index.tsx index 7a2d533..954848c 100644 --- a/src/pages/(admin)/(with-layout)/list/table-list/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/list/table-list/index.tsx @@ -1,16 +1,14 @@ import { Cross2Icon, DotsHorizontalIcon } from "@radix-ui/react-icons" -import type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from "@tanstack/react-table" -import { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table" -import * as React from "react" - -import { DataTable } from "@/components/data-table/data-table" -import { DataTableColumnHeader } from "@/components/data-table/data-table-column-header" -import { DataTableFacetedFilter } from "@/components/data-table/data-table-faceted-filter" -import { DataTablePagination } from "@/components/data-table/data-table-pagination" -import { DataTableViewOptions } from "@/components/data-table/data-table-view-options" -import { Badge } from "@/components/ui/badge" -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" +import { + DataTable, + DataTableColumnHeader, + DataTableFacetedFilter, + DataTablePagination, + DataTableViewOptions, +} from "@repo/pro-components/data-table" +import { Badge } from "@repo/ui/badge" +import { Button } from "@repo/ui/button" +import { Checkbox } from "@repo/ui/checkbox" import { DropdownMenu, DropdownMenuContent, @@ -23,8 +21,12 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { Input } from "@/components/ui/input" +} from "@repo/ui/dropdown-menu" +import { Input } from "@repo/ui/input" +import type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from "@tanstack/react-table" +import { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table" +import * as React from "react" + import { useTasks } from "@/hooks/query/use-tasks" import { labels, priorities, statuses } from "@/lib/data-dictionary" import type { ITask } from "@/schema/task" diff --git a/src/pages/(admin)/(with-layout)/result/fail.tsx b/apps/admin/src/pages/(admin)/(with-layout)/result/fail.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/result/fail.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/result/fail.tsx diff --git a/src/pages/(admin)/(with-layout)/result/success.tsx b/apps/admin/src/pages/(admin)/(with-layout)/result/success.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/result/success.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/result/success.tsx diff --git a/src/pages/(admin)/(with-layout)/settings/account.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/account.tsx similarity index 90% rename from src/pages/(admin)/(with-layout)/settings/account.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/account.tsx index a58fba3..9c64f4a 100644 --- a/src/pages/(admin)/(with-layout)/settings/account.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/account.tsx @@ -1,7 +1,6 @@ +import { Separator } from "@repo/ui/separator" import { useTranslation } from "react-i18next" -import { Separator } from "@/components/ui/separator" - import { AccountForm } from "./components/account-form" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/settings/appearance.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/appearance.tsx similarity index 90% rename from src/pages/(admin)/(with-layout)/settings/appearance.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/appearance.tsx index fdbf070..bf0d9ec 100644 --- a/src/pages/(admin)/(with-layout)/settings/appearance.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/appearance.tsx @@ -1,7 +1,6 @@ +import { Separator } from "@repo/ui/separator" import { useTranslation } from "react-i18next" -import { Separator } from "@/components/ui/separator" - import { AppearanceForm } from "./components/appearance-form" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/settings/components/account-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/account-form.tsx similarity index 94% rename from src/pages/(admin)/(with-layout)/settings/components/account-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/account-form.tsx index 0db5909..2ab3033 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/account-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/account-form.tsx @@ -1,12 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod" import { CalendarIcon } from "@radix-ui/react-icons" -import { format } from "date-fns" -import { useForm } from "react-hook-form" -import { useTranslation } from "react-i18next" -import { z } from "zod" - -import { Button } from "@/components/ui/button" -import { Calendar } from "@/components/ui/calendar" +import { Button } from "@repo/ui/button" +import { Calendar } from "@repo/ui/calendar" import { Form, FormControl, @@ -15,21 +10,26 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { Input } from "@/components/ui/input" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { Input } from "@repo/ui/input" import { Popover, PopoverContent, PopoverTrigger, -} from "@/components/ui/popover" +} from "@repo/ui/popover" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/select" +import { format } from "date-fns" +import { useForm } from "react-hook-form" +import { useTranslation } from "react-i18next" +import { z } from "zod" + import { languages } from "@/i18n" import { cn } from "@/lib/utils" @@ -53,6 +53,7 @@ const accountFormSchema = z.object({ type AccountFormValues = z.infer export function AccountForm() { + const { toast } = useToast() const { t, i18n } = useTranslation(["settings"]) const form = useForm({ resolver: zodResolver(accountFormSchema), diff --git a/src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx similarity index 96% rename from src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx index 40e37db..58d893e 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/appearance-form.tsx @@ -1,10 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod" import { ChevronDownIcon } from "@radix-ui/react-icons" -import { useForm } from "react-hook-form" -import { useTranslation } from "react-i18next" -import { z } from "zod" - -import { Button, buttonVariants } from "@/components/ui/button" +import { Button, buttonVariants } from "@repo/ui/button" import { Form, FormControl, @@ -13,9 +9,13 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { RadioGroup, RadioGroupItem } from "@repo/ui/radio-group" +import { useForm } from "react-hook-form" +import { useTranslation } from "react-i18next" +import { z } from "zod" + import { cn } from "@/lib/utils" const appearanceFormSchema = z.object({ @@ -37,6 +37,7 @@ const defaultValues: Partial = { export function AppearanceForm() { const { t } = useTranslation(["settings", "common"]) + const { toast } = useToast() const form = useForm({ resolver: zodResolver(appearanceFormSchema), defaultValues, diff --git a/src/pages/(admin)/(with-layout)/settings/components/display-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/display-form.tsx similarity index 94% rename from src/pages/(admin)/(with-layout)/settings/components/display-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/display-form.tsx index f11650d..d197fbe 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/display-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/display-form.tsx @@ -1,10 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod" -import { useForm } from "react-hook-form" -import { useTranslation } from "react-i18next" -import { z } from "zod" - -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" +import { Button } from "@repo/ui/button" +import { Checkbox } from "@repo/ui/checkbox" import { Form, FormControl, @@ -13,8 +9,11 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { useForm } from "react-hook-form" +import { useTranslation } from "react-i18next" +import { z } from "zod" const items = [ { @@ -57,6 +56,7 @@ const defaultValues: Partial = { } export function DisplayForm() { const { t } = useTranslation(["settings", "common"]) + const { toast } = useToast() const form = useForm({ resolver: zodResolver(displayFormSchema), defaultValues, diff --git a/src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx similarity index 95% rename from src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx index ad98571..e3a65ed 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/notifications-form.tsx @@ -1,16 +1,23 @@ import { zodResolver } from "@hookform/resolvers/zod" +import { Button } from "@repo/ui/button" +import { Checkbox } from "@repo/ui/checkbox" +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { RadioGroup, RadioGroupItem } from "@repo/ui/radio-group" +import { Switch } from "@repo/ui/switch" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import { Link } from "react-router-dom" import { z } from "zod" -import { Button } from "@/components/ui/button" -import { Checkbox } from "@/components/ui/checkbox" -import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form" -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" -import { Switch } from "@/components/ui/switch" -import { toast } from "@/components/ui/use-toast" - const notificationsFormSchema = z.object({ type: z.enum(["all", "mentions", "none"], { required_error: "You need to select a notification type.", @@ -33,6 +40,7 @@ const defaultValues: Partial = { } export function NotificationsForm() { const { t } = useTranslation(["settings"]) + const { toast } = useToast() const form = useForm({ resolver: zodResolver(notificationsFormSchema), defaultValues, diff --git a/src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx similarity index 95% rename from src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx index 75055bf..a7bf5ea 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/profile-form.tsx @@ -1,11 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod" -import { useEffect } from "react" -import { useFieldArray, useForm } from "react-hook-form" -import { useTranslation } from "react-i18next" -import { Link } from "react-router-dom" -import { z } from "zod" - -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Form, FormControl, @@ -14,17 +8,23 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form" -import { Input } from "@/components/ui/input" +} from "@repo/ui/form" +import { useToast } from "@repo/ui/hooks/use-toast" +import { Input } from "@repo/ui/input" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" -import { Textarea } from "@/components/ui/textarea" -import { toast } from "@/components/ui/use-toast" +} from "@repo/ui/select" +import { Textarea } from "@repo/ui/textarea" +import { useEffect } from "react" +import { useFieldArray, useForm } from "react-hook-form" +import { useTranslation } from "react-i18next" +import { Link } from "react-router-dom" +import { z } from "zod" + import { useUser } from "@/hooks/query/use-user" import { cn } from "@/lib/utils" @@ -65,7 +65,7 @@ type ProfileFormValues = z.infer export function ProfileForm() { const { t } = useTranslation(["settings"]) const user = useUser() - + const { toast } = useToast() const form = useForm({ resolver: zodResolver(profileFormSchema), defaultValues, diff --git a/src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx similarity index 93% rename from src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx index f7bfb0d..3a02bea 100644 --- a/src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/components/sidebar-nav.tsx @@ -1,6 +1,6 @@ +import { buttonVariants } from "@repo/ui/button" import { NavLink } from "react-router-dom" -import { buttonVariants } from "@/components/ui/button" import { cn } from "@/lib/utils" interface SidebarNavProps extends React.HTMLAttributes { diff --git a/src/pages/(admin)/(with-layout)/settings/display.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/display.tsx similarity index 89% rename from src/pages/(admin)/(with-layout)/settings/display.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/display.tsx index 433689d..bb579e0 100644 --- a/src/pages/(admin)/(with-layout)/settings/display.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/display.tsx @@ -1,7 +1,6 @@ +import { Separator } from "@repo/ui/separator" import { useTranslation } from "react-i18next" -import { Separator } from "@/components/ui/separator" - import { DisplayForm } from "./components/display-form" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/settings/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/settings/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/index.tsx diff --git a/src/pages/(admin)/(with-layout)/settings/layout.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/layout.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/settings/layout.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/layout.tsx diff --git a/src/pages/(admin)/(with-layout)/settings/notifications.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/notifications.tsx similarity index 90% rename from src/pages/(admin)/(with-layout)/settings/notifications.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/notifications.tsx index 6a0ba4f..ed6ebe3 100644 --- a/src/pages/(admin)/(with-layout)/settings/notifications.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/notifications.tsx @@ -1,7 +1,6 @@ +import { Separator } from "@repo/ui/separator" import { useTranslation } from "react-i18next" -import { Separator } from "@/components/ui/separator" - import { NotificationsForm } from "./components/notifications-form" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/settings/profile.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/profile.tsx similarity index 90% rename from src/pages/(admin)/(with-layout)/settings/profile.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/profile.tsx index 7541ad4..4ab6ab8 100644 --- a/src/pages/(admin)/(with-layout)/settings/profile.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/profile.tsx @@ -1,7 +1,6 @@ +import { Separator } from "@repo/ui/separator" import { useTranslation } from "react-i18next" -import { Separator } from "@/components/ui/separator" - import { ProfileForm } from "./components/profile-form" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx index 3956472..b95fec3 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/activity-goal.tsx @@ -1,9 +1,5 @@ import { MinusIcon, PlusIcon } from "@radix-ui/react-icons" -import * as React from "react" -import { Bar, BarChart, ResponsiveContainer } from "recharts" - -import { useTheme } from "@/components/theme/theme-provider" -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, @@ -11,7 +7,11 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" +} from "@repo/ui/card" +import * as React from "react" +import { Bar, BarChart, ResponsiveContainer } from "recharts" + +import { useTheme } from "@/components/theme/theme-provider" import { themes } from "@/hooks/themes" import { useConfig } from "@/hooks/use-config" diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx similarity index 79% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx index 4b1259a..29f0f8d 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/calendar.tsx @@ -1,8 +1,7 @@ +import { Calendar } from "@repo/ui/calendar" +import { Card, CardContent } from "@repo/ui/card" import { addDays } from "date-fns" -import { Calendar } from "@/components/ui/calendar" -import { Card, CardContent } from "@/components/ui/card" - const start = new Date(2023, 5, 5) export function CardsCalendar() { diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx similarity index 96% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx index 5346363..8dd7cf6 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/chat.tsx @@ -1,18 +1,16 @@ import { CheckIcon, PaperPlaneIcon, PlusIcon } from "@radix-ui/react-icons" -import * as React from "react" - import { Avatar, AvatarFallback, AvatarImage, -} from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" +} from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" import { Card, CardContent, CardFooter, CardHeader, -} from "@/components/ui/card" +} from "@repo/ui/card" import { Command, CommandEmpty, @@ -20,7 +18,7 @@ import { CommandInput, CommandItem, CommandList, -} from "@/components/ui/command" +} from "@repo/ui/command" import { Dialog, DialogContent, @@ -28,14 +26,16 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from "@/components/ui/dialog" -import { Input } from "@/components/ui/input" +} from "@repo/ui/dialog" +import { Input } from "@repo/ui/input" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, -} from "@/components/ui/tooltip" +} from "@repo/ui/tooltip" +import * as React from "react" + import { cn } from "@/lib/utils" const users = [ diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx similarity index 92% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx index 35a6ddc..4c7dc15 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/cookie-settings.tsx @@ -1,4 +1,4 @@ -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, @@ -6,9 +6,9 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Label } from "@/components/ui/label" -import { Switch } from "@/components/ui/switch" +} from "@repo/ui/card" +import { Label } from "@repo/ui/label" +import { Switch } from "@repo/ui/switch" export function CardsCookieSettings() { return ( diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx similarity index 90% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx index 827032a..63b61e3 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/create-account.tsx @@ -1,5 +1,4 @@ -import { Icons } from "@/components/icons" -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, @@ -7,9 +6,11 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" +} from "@repo/ui/card" +import { Input } from "@repo/ui/input" +import { Label } from "@repo/ui/label" + +import { Icons } from "@/components/icons" export function CardsCreateAccount() { return ( diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx index 9962276..acad447 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/data-table.tsx @@ -3,31 +3,15 @@ import { ChevronDownIcon, DotsHorizontalIcon, } from "@radix-ui/react-icons" -import type { - ColumnDef, - ColumnFiltersState, - SortingState, - VisibilityState, -} from "@tanstack/react-table" -import { - flexRender, - getCoreRowModel, - getFilteredRowModel, - getPaginationRowModel, - getSortedRowModel, - useReactTable, -} from "@tanstack/react-table" -import * as React from "react" - -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Checkbox } from "@/components/ui/checkbox" +} from "@repo/ui/card" +import { Checkbox } from "@repo/ui/checkbox" import { DropdownMenu, DropdownMenuCheckboxItem, @@ -36,8 +20,8 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { Input } from "@/components/ui/input" +} from "@repo/ui/dropdown-menu" +import { Input } from "@repo/ui/input" import { Table, TableBody, @@ -45,7 +29,22 @@ import { TableHead, TableHeader, TableRow, -} from "@/components/ui/table" +} from "@repo/ui/table" +import type { + ColumnDef, + ColumnFiltersState, + SortingState, + VisibilityState, +} from "@tanstack/react-table" +import { + flexRender, + getCoreRowModel, + getFilteredRowModel, + getPaginationRowModel, + getSortedRowModel, + useReactTable, +} from "@tanstack/react-table" +import * as React from "react" const data: Payment[] = [ { diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/index.tsx diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx similarity index 99% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx index f00bfaa..211746d 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/metric.tsx @@ -1,13 +1,13 @@ -import { Line, LineChart, ResponsiveContainer, Tooltip } from "recharts" - -import { useTheme } from "@/components/theme/theme-provider" import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" +} from "@repo/ui/card" +import { Line, LineChart, ResponsiveContainer, Tooltip } from "recharts" + +import { useTheme } from "@/components/theme/theme-provider" import { themes } from "@/hooks/themes" import { useConfig } from "@/hooks/use-config" diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx similarity index 95% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx index 8db0d99..2b36f97 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/payment-method.tsx @@ -1,5 +1,4 @@ -import { Icons } from "@/components/icons" -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, @@ -7,17 +6,19 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" +} from "@repo/ui/card" +import { Input } from "@repo/ui/input" +import { Label } from "@repo/ui/label" +import { RadioGroup, RadioGroupItem } from "@repo/ui/radio-group" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" +} from "@repo/ui/select" + +import { Icons } from "@/components/icons" export function CardsPaymentMethod() { return ( diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx similarity index 91% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx index dec924e..2ba9cda 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/report-issue.tsx @@ -1,6 +1,4 @@ -import * as React from "react" - -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { Card, CardContent, @@ -8,17 +6,18 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" +} from "@repo/ui/card" +import { Input } from "@repo/ui/input" +import { Label } from "@repo/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" -import { Textarea } from "@/components/ui/textarea" +} from "@repo/ui/select" +import { Textarea } from "@repo/ui/textarea" +import * as React from "react" export function CardsReportIssue() { const id = React.useId() diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx similarity index 93% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx index 40b8ed9..4f60869 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/share.tsx @@ -2,25 +2,25 @@ import { Avatar, AvatarFallback, AvatarImage, -} from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" +} from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" +} from "@repo/ui/card" +import { Input } from "@repo/ui/input" +import { Label } from "@repo/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" -import { Separator } from "@/components/ui/separator" +} from "@repo/ui/select" +import { Separator } from "@repo/ui/separator" export function CardsShare() { return ( diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx similarity index 99% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx index 71eaa17..fa46223 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/stats.tsx @@ -1,12 +1,12 @@ -import { Bar, BarChart, Line, LineChart, ResponsiveContainer } from "recharts" - -import { useTheme } from "@/components/theme/theme-provider" import { Card, CardContent, CardHeader, CardTitle, -} from "@/components/ui/card" +} from "@repo/ui/card" +import { Bar, BarChart, Line, LineChart, ResponsiveContainer } from "recharts" + +import { useTheme } from "@/components/theme/theme-provider" import { themes } from "@/hooks/themes" import { useConfig } from "@/hooks/use-config" diff --git a/src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx index 4176698..848b172 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/components/example/team-members.tsx @@ -1,18 +1,17 @@ import { ChevronDownIcon } from "@radix-ui/react-icons" - import { Avatar, AvatarFallback, AvatarImage, -} from "@/components/ui/avatar" -import { Button } from "@/components/ui/button" +} from "@repo/ui/avatar" +import { Button } from "@repo/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" +} from "@repo/ui/card" import { Command, CommandEmpty, @@ -20,12 +19,12 @@ import { CommandInput, CommandItem, CommandList, -} from "@/components/ui/command" +} from "@repo/ui/command" import { Popover, PopoverContent, PopoverTrigger, -} from "@/components/ui/popover" +} from "@repo/ui/popover" export function CardsTeamMembers() { return ( diff --git a/src/pages/(admin)/(with-layout)/settings/theme/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/index.tsx similarity index 97% rename from src/pages/(admin)/(with-layout)/settings/theme/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/settings/theme/index.tsx index 58b85a0..342cb1e 100644 --- a/src/pages/(admin)/(with-layout)/settings/theme/index.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/settings/theme/index.tsx @@ -1,7 +1,6 @@ +import { Skeleton } from "@repo/ui/skeleton" import * as React from "react" -import { Skeleton } from "@/components/ui/skeleton" - import CardsNewYork from "./components/example" export function Component() { diff --git a/src/pages/(admin)/(with-layout)/system/about.tsx b/apps/admin/src/pages/(admin)/(with-layout)/system/about.tsx similarity index 98% rename from src/pages/(admin)/(with-layout)/system/about.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/system/about.tsx index 71913a5..2ce1579 100644 --- a/src/pages/(admin)/(with-layout)/system/about.tsx +++ b/apps/admin/src/pages/(admin)/(with-layout)/system/about.tsx @@ -1,3 +1,12 @@ +import { Button } from "@repo/ui/button" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@repo/ui/table" import type { ColumnDef, } from "@tanstack/react-table" @@ -12,15 +21,6 @@ import Markdown from "react-markdown" import rehypeRaw from "rehype-raw" import remarkGfm from "remark-gfm" -import { Button } from "@/components/ui/button" -import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@/components/ui/table" import { cn } from "@/lib/utils" export type Dependency = { diff --git a/src/pages/(admin)/(with-layout)/system/index.tsx b/apps/admin/src/pages/(admin)/(with-layout)/system/index.tsx similarity index 100% rename from src/pages/(admin)/(with-layout)/system/index.tsx rename to apps/admin/src/pages/(admin)/(with-layout)/system/index.tsx diff --git a/src/pages/(admin)/charts/[chartName]/index.tsx b/apps/admin/src/pages/(admin)/charts/[chartName]/index.tsx similarity index 100% rename from src/pages/(admin)/charts/[chartName]/index.tsx rename to apps/admin/src/pages/(admin)/charts/[chartName]/index.tsx diff --git a/src/pages/(admin)/charts/[chartName]/layout.tsx b/apps/admin/src/pages/(admin)/charts/[chartName]/layout.tsx similarity index 97% rename from src/pages/(admin)/charts/[chartName]/layout.tsx rename to apps/admin/src/pages/(admin)/charts/[chartName]/layout.tsx index 5c6ffbf..50e3425 100644 --- a/src/pages/(admin)/charts/[chartName]/layout.tsx +++ b/apps/admin/src/pages/(admin)/charts/[chartName]/layout.tsx @@ -1,8 +1,8 @@ +import { Button } from "@repo/ui/button" import { Link, Outlet, useLoaderData } from "react-router-dom" import { Announcement } from "@/components/announcement" import { ThemesSwitcher } from "@/components/theme/themes-selector" -import { Button } from "@/components/ui/button" import { THEMES } from "@/lib/themes" import { ChartsNav } from "../charts-nav" diff --git a/src/pages/(admin)/charts/charts-nav.tsx b/apps/admin/src/pages/(admin)/charts/charts-nav.tsx similarity index 95% rename from src/pages/(admin)/charts/charts-nav.tsx rename to apps/admin/src/pages/(admin)/charts/charts-nav.tsx index 9ce9e44..0395d8f 100644 --- a/src/pages/(admin)/charts/charts-nav.tsx +++ b/apps/admin/src/pages/(admin)/charts/charts-nav.tsx @@ -1,7 +1,7 @@ +import { ScrollArea, ScrollBar } from "@repo/ui/scroll-area" import { NavLink } from "react-router-dom" import { cn } from "@/lib/utils" -import { ScrollArea, ScrollBar } from "@/ui/scroll-area" const links = [ { diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx similarity index 95% rename from src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx index 7896add..779845c 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-default.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "A simple area chart" export const A = 1 diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx similarity index 96% rename from src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx index f7f15e5..d0e1847 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-gradient.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "An area chart with gradient fill" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx similarity index 96% rename from src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx index 56c2e71..48df1dc 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-icons.tsx @@ -1,6 +1,3 @@ -import { TrendingDown, TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,17 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingDown, TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "An area chart with icons" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx similarity index 98% rename from src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx index fc970d4..8ffb1be 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-interactive.tsx @@ -1,28 +1,27 @@ -import * as React from "react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select" +} from "@repo/ui/select" +import * as React from "react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "An interactive area chart" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx similarity index 96% rename from src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx index 341c39c..6a3b572 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-legend.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,17 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "An area chart with a legend" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx similarity index 95% rename from src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx index 41563ca..29d9750 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-linear.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "A linear area chart" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx similarity index 96% rename from src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx index a7bfe35..805c2e9 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked-expand.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "A stacked area chart with expand stacking" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx similarity index 95% rename from src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx index d50efeb..7469a10 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-stacked.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "A stacked area chart" diff --git a/src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx similarity index 95% rename from src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx rename to apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx index fe878c6..34e1d1b 100644 --- a/src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/area-chart/chart-area-step.tsx @@ -1,6 +1,3 @@ -import { Activity, TrendingUp } from "lucide-react" -import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,13 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card" -import type { ChartConfig } from "@/components/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/components/ui/chart" +} from "@repo/ui/chart" +import { Activity, TrendingUp } from "lucide-react" +import { Area, AreaChart, CartesianGrid, XAxis } from "recharts" export const description = "A step area chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx similarity index 94% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx index e1c8d9b..2759f20 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-active.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts" - import { Card, CardContent, @@ -8,9 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts" export const description = "A bar chart with an active bar" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx similarity index 95% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx index 52212bc..9880c92 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-default.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" export const description = "A bar chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx similarity index 95% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx index 820ba65..fd6e760 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-horizontal.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, XAxis, YAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, XAxis, YAxis } from "recharts" export const description = "A horizontal bar chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx similarity index 99% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx index dcaed0d..a67fde9 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-interactive.tsx @@ -1,21 +1,20 @@ -import * as React from "react" -import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" +} from "@repo/ui/card" import type { ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import * as React from "react" +import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" export const description = "An interactive bar chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx similarity index 96% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx index ea92009..6ff2e83 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label-custom.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts" export const description = "A bar chart with a custom label" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx similarity index 95% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx index 7d84d18..c3380c5 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-label.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts" export const description = "A bar chart with a label" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx similarity index 96% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx index cec857c..87068cf 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-mixed.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, XAxis, YAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, XAxis, YAxis } from "recharts" export const description = "A mixed bar chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx similarity index 95% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx index 2289974..a82e866 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-multiple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" export const description = "A multiple bar chart" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx similarity index 95% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx index 3e068fb..91e590a 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-negative.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts" export const description = "A bar chart with negative values" diff --git a/src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx similarity index 96% rename from src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx rename to apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx index 4d53b3e..b464428 100644 --- a/src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/bar-chart/chart-bar-stacked.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" - import { Card, CardContent, @@ -8,17 +5,17 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Bar, BarChart, CartesianGrid, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx similarity index 95% rename from src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx index 066e459..e9d2d9c 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-default.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A line chart" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx index 07e9a85..93bf238 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-colors.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Dot, Line, LineChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Dot, Line, LineChart } from "recharts" export const description = "A line chart with dots and colors" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx index d335ffa..b1c217c 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots-custom.tsx @@ -1,6 +1,3 @@ -import { GitCommitVertical, TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { GitCommitVertical, TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A line chart with custom dots" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx index af7bc94..f43c626 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-dots.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A line chart with dots" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx similarity index 98% rename from src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx index 7206972..6cbc385 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-interactive.tsx @@ -1,21 +1,18 @@ -import * as React from "react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import * as React from "react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "An interactive line chart" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx index 9cd8d45..e4e14f7 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label-custom.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, LabelList, Line, LineChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, LabelList, Line, LineChart } from "recharts" export const description = "A line chart with a custom label" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx index d6f44c2..5809f34 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-label.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts" export const description = "A line chart with a label" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx similarity index 95% rename from src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx index 9e767a1..46eea5d 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-linear.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A linear line chart" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx similarity index 96% rename from src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx index d383841..cd83c25 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-multiple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A multiple line chart" diff --git a/src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx similarity index 95% rename from src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx rename to apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx index 8adeb71..f254c29 100644 --- a/src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/line-chart/chart-line-step.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { CartesianGrid, Line, LineChart, XAxis } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { CartesianGrid, Line, LineChart, XAxis } from "recharts" export const description = "A line chart with step" diff --git a/src/pages/(admin)/charts/components/page-header.tsx b/apps/admin/src/pages/(admin)/charts/components/page-header.tsx similarity index 100% rename from src/pages/(admin)/charts/components/page-header.tsx rename to apps/admin/src/pages/(admin)/charts/components/page-header.tsx diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx similarity index 96% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx index 79c613c..97faf0c 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-active.tsx @@ -1,7 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart, Sector } from "recharts" -import type { PieSectorDataItem } from "recharts/types/polar/Pie" - import { Card, CardContent, @@ -9,15 +5,16 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart, Sector } from "recharts" +import type { PieSectorDataItem } from "recharts/types/polar/Pie" export const description = "A donut chart with an active sector" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx similarity index 97% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx index c2d69c1..322edd7 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut-text.tsx @@ -1,7 +1,3 @@ -import { TrendingUp } from "lucide-react" -import * as React from "react" -import { Label, Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -9,15 +5,16 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import * as React from "react" +import { Label, Pie, PieChart } from "recharts" export const description = "A donut chart with text" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx similarity index 95% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx index 6917cfe..363c7ae 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-donut.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart } from "recharts" export const description = "A donut chart" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx similarity index 97% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx index c36b684..ac1758f 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-interactive.tsx @@ -1,30 +1,27 @@ -import * as React from "react" -import { Label, Pie, PieChart, Sector } from "recharts" -import type { PieSectorDataItem } from "recharts/types/polar/Pie" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartStyle, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/ui/select" +} from "@repo/ui/select" +import * as React from "react" +import { Label, Pie, PieChart, Sector } from "recharts" +import type { PieSectorDataItem } from "recharts/types/polar/Pie" export const description = "An interactive pie chart" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx similarity index 96% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx index a01f484..63e3064 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-custom.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart } from "recharts" export const description = "A pie chart with a custom label" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx similarity index 96% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx index c258589..6f17337 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label-list.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { LabelList, Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { LabelList, Pie, PieChart } from "recharts" export const description = "A pie chart with a label list" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx similarity index 95% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx index 68704fd..23b834d 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-label.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart } from "recharts" export const description = "A pie chart with a label" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx similarity index 94% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx index c9583e5..fe1c551 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-legend.tsx @@ -1,20 +1,17 @@ -import { Pie, PieChart } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Pie, PieChart } from "recharts" export const description = "A pie chart with a legend" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx similarity index 95% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx index 2ead2cc..653f57e 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-separator-none.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart } from "recharts" export const description = "A pie chart with no separator" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx similarity index 95% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx index 64ff417..f1bf693 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-simple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Pie, PieChart } from "recharts" export const description = "A simple pie chart" diff --git a/src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx similarity index 97% rename from src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx rename to apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx index 82c2c0f..8f72de1 100644 --- a/src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/pie-chart/chart-pie-stacked.tsx @@ -1,7 +1,3 @@ -import { TrendingUp } from "lucide-react" -import * as React from "react" -import { Pie, PieChart } from "recharts" - import { Card, CardContent, @@ -9,9 +5,12 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import * as React from "react" +import { Pie, PieChart } from "recharts" export const description = "A pie chart with stacked sections" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx similarity index 91% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx index c1d4c58..49fdf5b 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-default.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,9 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx index d4f0c1f..80cd025 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-dots.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with dots" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx index 30aa64d..b91c065 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-fill.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a grid and circle fill" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx index b283c70..32e1b50 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle-no-lines.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a grid and circle fill" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx index 75596c8..532d2df 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-circle.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a grid and circle" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx index 2e58f95..be3bc5a 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-custom.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a custom grid" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx index 505628f..a1bda10 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-fill.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a grid filled" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx index 4522076..5ff6f56 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-grid-none.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, Radar, RadarChart } from "recharts" export const description = "A radar chart with no grid" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx index ea253db..5e48421 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-icons.tsx @@ -1,6 +1,3 @@ -import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,17 +5,17 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with icons" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx similarity index 97% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx index b026e71..0b269ca 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-label-custom.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a custom label" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx index f660ee3..81ebe93 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-legend.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,17 +5,17 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with a legend" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx index 770b175..5d777dd 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-lines-only.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with lines only" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx index 5052430..e290266 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-multiple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts" export const description = "A radar chart with multiple data" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx index 2cc95cc..c62d730 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radar-radius.tsx @@ -1,11 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { - PolarGrid, - PolarRadiusAxis, - Radar, - RadarChart, -} from "recharts" - import { Card, CardContent, @@ -13,15 +5,20 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { + PolarGrid, + PolarRadiusAxis, + Radar, + RadarChart, +} from "recharts" export const description = "A radar chart with a radius axis" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx index 1f1ed9e..d879a0d 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-grid.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarGrid, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarGrid, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with a grid" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx index c54db7b..940410e 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-label.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { LabelList, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { LabelList, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with a label" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx index c3199ae..e3071ea 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-shape.tsx @@ -1,3 +1,13 @@ +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { ChartContainer } from "@repo/ui/chart" import { TrendingUp } from "lucide-react" import { Label, @@ -7,17 +17,6 @@ import { RadialBarChart, } from "recharts" -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer } from "@/ui/chart" - export const description = "A radial chart with a custom shape" const chartData = [ diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx index c3d081e..1ddfc52 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart" diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx similarity index 97% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx index 59d5824..2b64e60 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with stacked sections" diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx rename to apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx index 428b7b8..891d091 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx @@ -1,3 +1,13 @@ +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { ChartContainer } from "@repo/ui/chart" import { TrendingUp } from "lucide-react" import { Label, @@ -7,17 +17,6 @@ import { RadialBarChart, } from "recharts" -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer } from "@/ui/chart" - export const description = "A radial chart with text" const chartData = [ diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx similarity index 93% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx index 8ce5049..d879a0d 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-grid.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { PolarGrid, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,9 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { PolarGrid, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with a grid" diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx index c54db7b..940410e 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-label.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { LabelList, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { LabelList, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with a label" diff --git a/src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx index c3199ae..e3071ea 100644 --- a/src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-shape.tsx @@ -1,3 +1,13 @@ +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { ChartContainer } from "@repo/ui/chart" import { TrendingUp } from "lucide-react" import { Label, @@ -7,17 +17,6 @@ import { RadialBarChart, } from "recharts" -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer } from "@/ui/chart" - export const description = "A radial chart with a custom shape" const chartData = [ diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx similarity index 95% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx index c3d081e..1ddfc52 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-simple.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-simple.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx similarity index 97% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx index 59d5824..2b64e60 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-stacked.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-stacked.tsx @@ -1,6 +1,3 @@ -import { TrendingUp } from "lucide-react" -import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts" - import { Card, CardContent, @@ -8,15 +5,15 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { TrendingUp } from "lucide-react" +import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts" export const description = "A radial chart with stacked sections" diff --git a/src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx similarity index 96% rename from src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx rename to apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx index 428b7b8..891d091 100644 --- a/src/pages/(admin)/charts/components/radar-chart/chart-radial-text.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/radial-chart/chart-radial-text.tsx @@ -1,3 +1,13 @@ +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { ChartContainer } from "@repo/ui/chart" import { TrendingUp } from "lucide-react" import { Label, @@ -7,17 +17,6 @@ import { RadialBarChart, } from "recharts" -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer } from "@/ui/chart" - export const description = "A radial chart with text" const chartData = [ diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx index c4e48af..a816ac2 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-advanced.tsx @@ -1,14 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx similarity index 92% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx index 05a3886..1e99a6e 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-default.tsx @@ -1,14 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { ChartConfig } from "@/ui/chart" -import { ChartContainer, ChartTooltip, ChartTooltipContent } from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" +import { + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx similarity index 96% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx index c9527b2..1735fe4 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-formatter.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx index dfcd989..a5878ff 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-icons.tsx @@ -1,21 +1,18 @@ -import { Footprints, Waves } from "lucide-react" -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Footprints, Waves } from "lucide-react" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx index 07297a3..6cfcfc6 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-line.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx index d1e4239..200a9bb 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-indicator-none.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx index 2b86126..7687b4e 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-custom.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx index c059e4f..948ce3f 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-formatter.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx similarity index 95% rename from src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx rename to apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx index 101c098..59537a3 100644 --- a/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx +++ b/apps/admin/src/pages/(admin)/charts/components/tooltip-chart/chart-tooltip-label-none.tsx @@ -1,20 +1,17 @@ -import { Bar, BarChart, XAxis } from "recharts" - import { Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/ui/card" -import type { - ChartConfig, -} from "@/ui/chart" +} from "@repo/ui/card" +import type { ChartConfig } from "@repo/ui/chart" import { ChartContainer, ChartTooltip, ChartTooltipContent, -} from "@/ui/chart" +} from "@repo/ui/chart" +import { Bar, BarChart, XAxis } from "recharts" export const description = "A stacked bar chart with a legend" diff --git a/src/pages/(admin)/charts/index.tsx b/apps/admin/src/pages/(admin)/charts/index.tsx similarity index 100% rename from src/pages/(admin)/charts/index.tsx rename to apps/admin/src/pages/(admin)/charts/index.tsx diff --git a/src/pages/(admin)/layout.tsx b/apps/admin/src/pages/(admin)/layout.tsx similarity index 90% rename from src/pages/(admin)/layout.tsx rename to apps/admin/src/pages/(admin)/layout.tsx index cc11e7a..a128a7b 100644 --- a/src/pages/(admin)/layout.tsx +++ b/apps/admin/src/pages/(admin)/layout.tsx @@ -1,3 +1,11 @@ +import { Button } from "@repo/ui/button" +import { ScrollArea, ScrollBar } from "@repo/ui/scroll-area" +import { Separator } from "@repo/ui/separator" +import { + SidebarInset, + SidebarProvider, + SidebarTrigger, +} from "@repo/ui/sidebar" import { CircleHelp } from "lucide-react" import { Link, Outlet } from "react-router-dom" @@ -7,21 +15,13 @@ import { NavBreadcrumb } from "@/components/nav-sidebar/nav-breadcrumb" import { Search } from "@/components/search" import { ThemeCustomizer } from "@/components/theme/theme-customizer" import { ThemeSwitcher } from "@/components/theme/theme-switcher" -import { Button } from "@/components/ui/button" -import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area" -import { Separator } from "@/components/ui/separator" -import { - SidebarInset, - SidebarProvider, - SidebarTrigger, -} from "@/components/ui/sidebar" import { SIDEBAR_COOKIE_NAME } from "@/constants" export function Component() { const sidebarState = localStorage.getItem(SIDEBAR_COOKIE_NAME) === "true" return ( - +
diff --git a/src/pages/(external)/login/index.tsx b/apps/admin/src/pages/(external)/login/index.tsx similarity index 98% rename from src/pages/(external)/login/index.tsx rename to apps/admin/src/pages/(external)/login/index.tsx index b5a4aa9..240cc41 100644 --- a/src/pages/(external)/login/index.tsx +++ b/apps/admin/src/pages/(external)/login/index.tsx @@ -1,4 +1,14 @@ import { zodResolver } from "@hookform/resolvers/zod" +import { Button } from "@repo/ui/button" +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@repo/ui/form" +import { Input } from "@repo/ui/input" import * as React from "react" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" @@ -9,16 +19,6 @@ import type { z } from "zod" import { Icons } from "@/components/icons" import { Logo } from "@/components/icons/logo" import { LanguageSwitch } from "@/components/language-switch" -import { Button } from "@/components/ui/button" -import { - Form, - FormControl, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "@/components/ui/form" -import { Input } from "@/components/ui/input" import { useUserLoginMutation } from "@/hooks/query/use-user" import { getFetchErrorMessage } from "@/lib/api-fetch" import { cn } from "@/lib/utils" diff --git a/src/pages/(external)/test/[id].tsx b/apps/admin/src/pages/(external)/test/[id].tsx similarity index 100% rename from src/pages/(external)/test/[id].tsx rename to apps/admin/src/pages/(external)/test/[id].tsx diff --git a/src/pages/(main)/index.test.tsx b/apps/admin/src/pages/(main)/index.test.tsx similarity index 100% rename from src/pages/(main)/index.test.tsx rename to apps/admin/src/pages/(main)/index.test.tsx diff --git a/src/pages/(main)/index.tsx b/apps/admin/src/pages/(main)/index.tsx similarity index 99% rename from src/pages/(main)/index.tsx rename to apps/admin/src/pages/(main)/index.tsx index e1fbd24..0be66b1 100644 --- a/src/pages/(main)/index.tsx +++ b/apps/admin/src/pages/(main)/index.tsx @@ -1,13 +1,13 @@ -import { Link } from "react-router-dom" - -import { Logo } from "@/components/icons/logo" -import { logos } from "@/components/icons/logos" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, -} from "@/components/ui/tooltip.js" +} from "@repo/ui/tooltip" +import { Link } from "react-router-dom" + +import { Logo } from "@/components/icons/logo" +import { logos } from "@/components/icons/logos" import { cn } from "@/lib/utils" // Tailwind Grid cell classes lookup diff --git a/src/pages/(main)/layout.tsx b/apps/admin/src/pages/(main)/layout.tsx similarity index 95% rename from src/pages/(main)/layout.tsx rename to apps/admin/src/pages/(main)/layout.tsx index c478d46..1b60426 100644 --- a/src/pages/(main)/layout.tsx +++ b/apps/admin/src/pages/(main)/layout.tsx @@ -1,8 +1,8 @@ +import { Button } from "@repo/ui/button" import { Link, Outlet } from "react-router-dom" import { Logo } from "@/components/icons/logo" import { Search } from "@/components/search" -import { Button } from "@/components/ui/button" export function Component() { return ( diff --git a/src/providers/root-providers.tsx b/apps/admin/src/providers/root-providers.tsx similarity index 85% rename from src/providers/root-providers.tsx rename to apps/admin/src/providers/root-providers.tsx index 95d4500..77d6f25 100644 --- a/src/providers/root-providers.tsx +++ b/apps/admin/src/providers/root-providers.tsx @@ -1,3 +1,6 @@ +import { Toaster as SonnerToaster } from "@repo/ui/sonner" +import { ToasterPrimitive } from "@repo/ui/toaster" +import { TooltipProvider } from "@repo/ui/tooltip" import { QueryClientProvider } from "@tanstack/react-query" import { LazyMotion, MotionConfig } from "framer-motion" import type { FC, PropsWithChildren } from "react" @@ -7,9 +10,6 @@ import { I18nextProvider } from "react-i18next" import { ThemeProvider } from "@/components/theme/theme-provider" import { ThemeWrapper } from "@/components/theme/theme-wrapper" import { ThemesStyle } from "@/components/theme/themes-styles" -import { Toaster } from "@/components/ui/sonner" -import { Toaster as PrimitiveToaster } from "@/components/ui/toaster" -import { TooltipProvider } from "@/components/ui/tooltip" import { i18n } from "@/i18n" import { queryClient } from "@/lib/query-client" @@ -29,15 +29,14 @@ export const RootProviders: FC = ({ children }) => ( - {children} + - - + diff --git a/src/router.tsx b/apps/admin/src/router.tsx similarity index 100% rename from src/router.tsx rename to apps/admin/src/router.tsx diff --git a/src/schema/album.ts b/apps/admin/src/schema/album.ts similarity index 95% rename from src/schema/album.ts rename to apps/admin/src/schema/album.ts index c0b1673..c8080be 100644 --- a/src/schema/album.ts +++ b/apps/admin/src/schema/album.ts @@ -3,7 +3,6 @@ import { z } from "zod" export const albumSchema = z.object({ id: z.string(), title: z.string(), - cover: z.string(), url: z.string(), slogan: z.string(), updatedAt: z.date(), diff --git a/src/schema/menu.ts b/apps/admin/src/schema/menu.ts similarity index 100% rename from src/schema/menu.ts rename to apps/admin/src/schema/menu.ts diff --git a/src/schema/task.ts b/apps/admin/src/schema/task.ts similarity index 100% rename from src/schema/task.ts rename to apps/admin/src/schema/task.ts diff --git a/src/schema/user.ts b/apps/admin/src/schema/user.ts similarity index 100% rename from src/schema/user.ts rename to apps/admin/src/schema/user.ts diff --git a/src/styles/dev.css b/apps/admin/src/styles/dev.css similarity index 100% rename from src/styles/dev.css rename to apps/admin/src/styles/dev.css diff --git a/src/styles/index.css b/apps/admin/src/styles/index.css similarity index 100% rename from src/styles/index.css rename to apps/admin/src/styles/index.css diff --git a/src/styles/mdx.css b/apps/admin/src/styles/mdx.css similarity index 100% rename from src/styles/mdx.css rename to apps/admin/src/styles/mdx.css diff --git a/src/styles/tailwind.css b/apps/admin/src/styles/tailwind.css similarity index 100% rename from src/styles/tailwind.css rename to apps/admin/src/styles/tailwind.css diff --git a/src/styles/themes.css b/apps/admin/src/styles/themes.css similarity index 100% rename from src/styles/themes.css rename to apps/admin/src/styles/themes.css diff --git a/src/test/setup.ts b/apps/admin/src/test/setup.ts similarity index 100% rename from src/test/setup.ts rename to apps/admin/src/test/setup.ts diff --git a/src/test/test-utils.tsx b/apps/admin/src/test/test-utils.tsx similarity index 100% rename from src/test/test-utils.tsx rename to apps/admin/src/test/test-utils.tsx diff --git a/src/types/i18next.d.ts b/apps/admin/src/types/i18next.d.ts similarity index 100% rename from src/types/i18next.d.ts rename to apps/admin/src/types/i18next.d.ts diff --git a/tailwind.config.ts b/apps/admin/tailwind.config.ts similarity index 95% rename from tailwind.config.ts rename to apps/admin/tailwind.config.ts index e853d37..edd381e 100644 --- a/tailwind.config.ts +++ b/apps/admin/tailwind.config.ts @@ -1,10 +1,14 @@ +import uiConfig from "@repo/ui/tailwind.config.ts" import tailwindcssTypographyPlugin from "@tailwindcss/typography" import type { Config } from "tailwindcss" import animatePlugin from "tailwindcss-animate" export default { + ...uiConfig, darkMode: ["class"], content: [ + "../../packages/ui/src/**/*.{js,ts,jsx,tsx}", + "../../packages/pro-components/src/**/*.{js,ts,jsx,tsx}", "./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", diff --git a/tsconfig.app.json b/apps/admin/tsconfig.app.json similarity index 79% rename from tsconfig.app.json rename to apps/admin/tsconfig.app.json index 8d40389..ef054ee 100644 --- a/tsconfig.app.json +++ b/apps/admin/tsconfig.app.json @@ -26,10 +26,9 @@ "baseUrl": ".", "paths": { "@/*": ["./src/*"], - "@env": ["./env.ts"], - "@pkg": ["./package.json"], - "@/ui/*": ["./src/components/ui/*"] + "@env": ["env.ts"], + "@pkg": ["./package.json"] } }, - "include": ["src", "./env.ts", "types/**/*.d.ts", ".storybook"] + "include": ["src", "env.ts", "types/**/*.d.ts", ".storybook"] } diff --git a/tsconfig.json b/apps/admin/tsconfig.json similarity index 100% rename from tsconfig.json rename to apps/admin/tsconfig.json diff --git a/tsconfig.node.json b/apps/admin/tsconfig.node.json similarity index 88% rename from tsconfig.node.json rename to apps/admin/tsconfig.node.json index e5a743b..8392f34 100644 --- a/tsconfig.node.json +++ b/apps/admin/tsconfig.node.json @@ -30,9 +30,9 @@ "baseUrl": ".", "paths": { "@/*": ["./src/*"], - "@env": ["./env.ts"], + "@env": ["env.ts"], "@pkg": ["./package.json"] } }, - "include": ["./env.ts", "types/**/*.d.ts", "vite.config.ts", "scripts"] + "include": ["env.ts", "types/**/*.d.ts", "vite.config.ts", "scripts"] } diff --git a/types/i18next.d.ts b/apps/admin/types/i18next.d.ts similarity index 100% rename from types/i18next.d.ts rename to apps/admin/types/i18next.d.ts diff --git a/types/vite-env.d.ts b/apps/admin/types/vite-env.d.ts similarity index 100% rename from types/vite-env.d.ts rename to apps/admin/types/vite-env.d.ts diff --git a/vercel.json b/apps/admin/vercel.json similarity index 100% rename from vercel.json rename to apps/admin/vercel.json diff --git a/vite.config.ts b/apps/admin/vite.config.ts similarity index 86% rename from vite.config.ts rename to apps/admin/vite.config.ts index 92f56fc..38b827b 100644 --- a/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -8,7 +8,7 @@ import tsconfigPaths from "vite-tsconfig-paths" import { getGitHash } from "./scripts/lib.ts" const pkg = JSON.parse(readFileSync("package.json", "utf8")) -const readme = readFileSync("README.md", "utf8") +const readme = readFileSync("../../README.md", "utf8") export default defineConfig(({ mode }) => { const viteEnv = loadEnv(mode, process.cwd(), "") @@ -37,6 +37,8 @@ export default defineConfig(({ mode }) => { pkg: JSON.stringify(pkg), }, server: { + port: 5173, + strictPort: true, proxy: { "/api/": { target: viteEnv.VITE_API_URL, @@ -44,5 +46,10 @@ export default defineConfig(({ mode }) => { }, }, }, + build: { + rollupOptions: { + // external: ["react-hook-form"], + }, + }, } }) diff --git a/vitest.config.ts b/apps/admin/vitest.config.ts similarity index 100% rename from vitest.config.ts rename to apps/admin/vitest.config.ts diff --git a/apps/api/.dev.vars.example b/apps/api/.dev.vars.example new file mode 100644 index 0000000..0eb9e5a --- /dev/null +++ b/apps/api/.dev.vars.example @@ -0,0 +1,4 @@ +[vars] +JWT_SECRET = "" +COOKIE_KEY = "token" +DATABASE_URL = "postgresql://xxxx" diff --git a/apps/api/.gitignore b/apps/api/.gitignore new file mode 100644 index 0000000..2c5708d --- /dev/null +++ b/apps/api/.gitignore @@ -0,0 +1,36 @@ +# prod +dist/ + +# dev +.yarn/ +!.yarn/releases +.vscode/* +!.vscode/launch.json +!.vscode/*.code-snippets +.idea/workspace.xml +.idea/usage.statistics.xml +.idea/shelf + +# deps +node_modules/ +.wrangler + +# env +.env +.env.production +.dev.vars + +# logs +logs/ +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# misc +.DS_Store +prisma/dev.db + +.dev.vars diff --git a/apps/api/.prettierignore b/apps/api/.prettierignore new file mode 100644 index 0000000..1ced88c --- /dev/null +++ b/apps/api/.prettierignore @@ -0,0 +1,7 @@ +# Ignore artifacts: +build +coverage +.wrangler +node_modules +.idea +.DS_Store \ No newline at end of file diff --git a/apps/api/.prettierrc b/apps/api/.prettierrc new file mode 100644 index 0000000..edc75bc --- /dev/null +++ b/apps/api/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 120, + "singleQuote": true, + "trailingComma": "all", + "semi": false +} diff --git a/apps/api/LICENSE b/apps/api/LICENSE new file mode 100644 index 0000000..c0ad70a --- /dev/null +++ b/apps/api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 TinsFox + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/api/README.md b/apps/api/README.md new file mode 100644 index 0000000..a6c483d --- /dev/null +++ b/apps/api/README.md @@ -0,0 +1,28 @@ +# Mock Service + +```bash +pnpm install +pnpm run dev +``` + +```bash +pnpm run deploy +``` + +## Prisma Note + +```bash +npx wrangler d1 migrations create mock-service init + +npx prisma migrate diff \ + --from-empty \ + --to-schema-datamodel ./prisma/schema.prisma \ + --script \ + --output migrations/0001_init.sql + +npx wrangler d1 migrations apply mock-service --local + +npx wrangler d1 migrations apply mock-service --remote + +npx prisma generate +``` diff --git a/apps/api/drizzle.config.ts b/apps/api/drizzle.config.ts new file mode 100644 index 0000000..b42389b --- /dev/null +++ b/apps/api/drizzle.config.ts @@ -0,0 +1,13 @@ +import type { Config } from 'drizzle-kit' +import { config } from 'dotenv' + +config({ path: '.dev.vars' }) + +export default { + schema: './src/db/schema/**/*.ts', + out: './drizzle', + dialect: 'postgresql', + dbCredentials: { + url: process.env.DATABASE_URL || '', + }, +} satisfies Config diff --git a/apps/api/drizzle/0000_greedy_loners.sql b/apps/api/drizzle/0000_greedy_loners.sql new file mode 100644 index 0000000..647cf23 --- /dev/null +++ b/apps/api/drizzle/0000_greedy_loners.sql @@ -0,0 +1,48 @@ +CREATE TYPE "public"."task_label" AS ENUM('BUG', 'FEATURE', 'IMPROVEMENT', 'DOCUMENTATION');--> statement-breakpoint +CREATE TYPE "public"."task_priority" AS ENUM('LOW', 'MEDIUM', 'HIGH', 'URGENT');--> statement-breakpoint +CREATE TYPE "public"."task_status" AS ENUM('TODO', 'IN_PROGRESS', 'DONE', 'CANCELLED');--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "albums" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "title" varchar(255) NOT NULL, + "artist" varchar(255) NOT NULL, + "description" text, + "cover_url" varchar(255), + "release_date" timestamp, + "genre" varchar(100), + "label" varchar(255), + "total_tracks" integer DEFAULT 0, + "play_count" integer DEFAULT 0, + "like_count" integer DEFAULT 0, + "is_published" boolean DEFAULT false, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp NOT NULL +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "tasks" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "title" text NOT NULL, + "status" "task_status" DEFAULT 'TODO' NOT NULL, + "label" "task_label" DEFAULT 'BUG' NOT NULL, + "priority" "task_priority" DEFAULT 'LOW' NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp NOT NULL +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "users" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "email" text NOT NULL, + "username" text, + "name" text, + "avatar" text, + "birthdate" text, + "bio" text, + "password" text NOT NULL, + "registered_at" timestamp DEFAULT now() NOT NULL, + "status" text NOT NULL, + "role" text NOT NULL, + "amount" numeric NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp NOT NULL, + CONSTRAINT "users_email_unique" UNIQUE("email"), + CONSTRAINT "users_username_unique" UNIQUE("username") +); diff --git a/apps/api/drizzle/meta/0000_snapshot.json b/apps/api/drizzle/meta/0000_snapshot.json new file mode 100644 index 0000000..1500898 --- /dev/null +++ b/apps/api/drizzle/meta/0000_snapshot.json @@ -0,0 +1,331 @@ +{ + "id": "6e4fda17-3c0d-4c9d-90c0-a56f44eb1ab9", + "prevId": "00000000-0000-0000-0000-000000000000", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.albums": { + "name": "albums", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "artist": { + "name": "artist", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cover_url": { + "name": "cover_url", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "release_date": { + "name": "release_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "genre": { + "name": "genre", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "total_tracks": { + "name": "total_tracks", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "play_count": { + "name": "play_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "like_count": { + "name": "like_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "is_published": { + "name": "is_published", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tasks": { + "name": "tasks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "task_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'TODO'" + }, + "label": { + "name": "label", + "type": "task_label", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'BUG'" + }, + "priority": { + "name": "priority", + "type": "task_priority", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'LOW'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "avatar": { + "name": "avatar", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "birthdate": { + "name": "birthdate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bio": { + "name": "bio", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "registered_at": { + "name": "registered_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "amount": { + "name": "amount", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "users_email_unique": { + "name": "users_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + }, + "users_username_unique": { + "name": "users_username_unique", + "nullsNotDistinct": false, + "columns": [ + "username" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.task_label": { + "name": "task_label", + "schema": "public", + "values": [ + "BUG", + "FEATURE", + "IMPROVEMENT", + "DOCUMENTATION" + ] + }, + "public.task_priority": { + "name": "task_priority", + "schema": "public", + "values": [ + "LOW", + "MEDIUM", + "HIGH", + "URGENT" + ] + }, + "public.task_status": { + "name": "task_status", + "schema": "public", + "values": [ + "TODO", + "IN_PROGRESS", + "DONE", + "CANCELLED" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/apps/api/drizzle/meta/_journal.json b/apps/api/drizzle/meta/_journal.json new file mode 100644 index 0000000..a4b30e0 --- /dev/null +++ b/apps/api/drizzle/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "7", + "dialect": "postgresql", + "entries": [ + { + "idx": 0, + "version": "7", + "when": 1732861470804, + "tag": "0000_greedy_loners", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/apps/api/package.json b/apps/api/package.json new file mode 100644 index 0000000..1124139 --- /dev/null +++ b/apps/api/package.json @@ -0,0 +1,44 @@ +{ + "name": "api", + "type": "module", + "packageManager": "pnpm@9.12.3", + "scripts": { + "db:generate": "drizzle-kit generate", + "db:migrate": "tsx ./src/db/migrate.ts", + "db:seed": "tsx ./src/db/seed.ts", + "db:studio": "drizzle-kit studio", + "deploy": "wrangler deploy --minify src/index.ts", + "dev": "wrangler dev src/index.ts", + "dev:local": "tsx --watch src/index.ts", + "test": "vitest", + "typecheck": "tsc --noEmit", + "prepare": "test -f .dev.vars || cp .dev.vars.example .dev.vars" + }, + "dependencies": { + "@faker-js/faker": "^9.2.0", + "@hono/swagger-ui": "^0.4.1", + "@hono/zod-openapi": "^0.17.0", + "@neondatabase/serverless": "^0.10.3", + "@scalar/hono-api-reference": "^0.5.159", + "bcryptjs": "^2.4.3", + "drizzle-orm": "^0.36.1", + "drizzle-zod": "^0.5.1", + "hono": "^4.6.9", + "pg": "^8.13.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@cloudflare/vitest-pool-workers": "^0.5.26", + "@cloudflare/workers-types": "^4.20241106.0", + "@types/bcryptjs": "^2.4.6", + "@types/node": "^22.9.0", + "@types/pg": "^8.11.10", + "dotenv": "^16.4.5", + "drizzle-kit": "^0.28.1", + "postgres": "^3.4.5", + "tsx": "^4.19.2", + "typescript": "^5.6.3", + "vitest": "^2.1.4", + "wrangler": "^3.86.0" + } +} \ No newline at end of file diff --git a/apps/api/pnpm-lock.yaml b/apps/api/pnpm-lock.yaml new file mode 100644 index 0000000..03459ba --- /dev/null +++ b/apps/api/pnpm-lock.yaml @@ -0,0 +1,3447 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + dependencies: + '@faker-js/faker': + specifier: ^9.2.0 + version: 9.2.0 + '@hono/swagger-ui': + specifier: ^0.4.1 + version: 0.4.1(hono@4.6.9) + '@hono/zod-openapi': + specifier: ^0.17.0 + version: 0.17.0(hono@4.6.9)(zod@3.23.8) + '@neondatabase/serverless': + specifier: ^0.10.3 + version: 0.10.3 + '@scalar/hono-api-reference': + specifier: ^0.5.159 + version: 0.5.159(hono@4.6.9) + add: + specifier: ^2.0.6 + version: 2.0.6 + bcryptjs: + specifier: ^2.4.3 + version: 2.4.3 + drizzle-orm: + specifier: ^0.36.1 + version: 0.36.1(@cloudflare/workers-types@4.20241106.0)(@neondatabase/serverless@0.10.3)(@prisma/client@5.21.1(prisma@5.21.1))(@types/pg@8.11.10)(pg@8.13.1)(postgres@3.4.5)(prisma@5.21.1)(react@18.3.1) + drizzle-zod: + specifier: ^0.5.1 + version: 0.5.1(drizzle-orm@0.36.1(@cloudflare/workers-types@4.20241106.0)(@neondatabase/serverless@0.10.3)(@prisma/client@5.21.1(prisma@5.21.1))(@types/pg@8.11.10)(pg@8.13.1)(postgres@3.4.5)(prisma@5.21.1)(react@18.3.1))(zod@3.23.8) + hono: + specifier: ^4.6.9 + version: 4.6.9 + pg: + specifier: ^8.13.1 + version: 8.13.1 + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@cloudflare/vitest-pool-workers': + specifier: ^0.5.26 + version: 0.5.26(@cloudflare/workers-types@4.20241106.0)(@vitest/runner@2.1.4)(@vitest/snapshot@2.1.4)(vitest@2.1.4(@types/node@22.9.0)) + '@cloudflare/workers-types': + specifier: ^4.20241106.0 + version: 4.20241106.0 + '@types/bcryptjs': + specifier: ^2.4.6 + version: 2.4.6 + '@types/node': + specifier: ^22.9.0 + version: 22.9.0 + '@types/pg': + specifier: ^8.11.10 + version: 8.11.10 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + drizzle-kit: + specifier: ^0.28.0 + version: 0.28.0 + postgres: + specifier: ^3.4.5 + version: 3.4.5 + prettier: + specifier: 3.3.3 + version: 3.3.3 + tsx: + specifier: ^4.19.2 + version: 4.19.2 + typescript: + specifier: ^5.6.3 + version: 5.6.3 + vitest: + specifier: ^2.1.4 + version: 2.1.4(@types/node@22.9.0) + wrangler: + specifier: ^3.86.0 + version: 3.86.0(@cloudflare/workers-types@4.20241106.0) + +packages: + '@asteasolutions/zod-to-openapi@7.2.0': + resolution: + { integrity: sha512-Va+Fq1QzKkSgmiYINSp3cASFhMsbdRH/kmCk2feijhC+yNjGoC056CRqihrVFhR8MY8HOZHdlYm2Ns2lmszCiw== } + peerDependencies: + zod: ^3.20.2 + + '@cloudflare/kv-asset-handler@0.3.4': + resolution: + { integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q== } + engines: { node: '>=16.13' } + + '@cloudflare/vitest-pool-workers@0.5.26': + resolution: + { integrity: sha512-2rHWWIvGZT5nwB7cBg/RXQKFmHEqHyfWeoctZu/OMxqUs5NCd2/WlqAGewxshibxWYft8Xk5Y9X4XbItXIFt3Q== } + peerDependencies: + '@vitest/runner': 2.0.x - 2.1.x + '@vitest/snapshot': 2.0.x - 2.1.x + vitest: 2.0.x - 2.1.x + + '@cloudflare/workerd-darwin-64@1.20241106.1': + resolution: + { integrity: sha512-zxvaToi1m0qzAScrxFt7UvFVqU8DxrCO2CinM1yQkv5no7pA1HolpIrwZ0xOhR3ny64Is2s/J6BrRjpO5dM9Zw== } + engines: { node: '>=16' } + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + resolution: + { integrity: sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg== } + engines: { node: '>=16' } + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-linux-64@1.20241106.1': + resolution: + { integrity: sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw== } + engines: { node: '>=16' } + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20241106.1': + resolution: + { integrity: sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA== } + engines: { node: '>=16' } + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-windows-64@1.20241106.1': + resolution: + { integrity: sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg== } + engines: { node: '>=16' } + cpu: [x64] + os: [win32] + + '@cloudflare/workers-shared@0.7.1': + resolution: + { integrity: sha512-46cP5FCrl3TrvHeoHLb5SRuiDMKH5kc9Yvo36SAfzt8dqJI/qJRoY1GP3ioHn/gP7v2QIoUOTAzIl7Ml7MnfrA== } + engines: { node: '>=16.7.0' } + + '@cloudflare/workers-types@4.20241106.0': + resolution: + { integrity: sha512-pI4ivacmp+vgNO/siHDsZ6BdITR0LC4Mh/1+yzVLcl9U75pt5DUDCOWOiqIRFXRq6H65DPnJbEPFo3x9UfgofQ== } + + '@cspotcode/source-map-support@0.8.1': + resolution: + { integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== } + engines: { node: '>=12' } + + '@drizzle-team/brocli@0.10.2': + resolution: + { integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w== } + + '@esbuild-kit/core-utils@3.3.2': + resolution: + { integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ== } + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild-kit/esm-loader@2.6.5': + resolution: + { integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA== } + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild-plugins/node-globals-polyfill@0.2.3': + resolution: + { integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw== } + peerDependencies: + esbuild: '*' + + '@esbuild-plugins/node-modules-polyfill@0.2.2': + resolution: + { integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA== } + peerDependencies: + esbuild: '*' + + '@esbuild/aix-ppc64@0.19.12': + resolution: + { integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.21.5': + resolution: + { integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: + { integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== } + engines: { node: '>=18' } + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.17.19': + resolution: + { integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.18.20': + resolution: + { integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.19.12': + resolution: + { integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.21.5': + resolution: + { integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.1': + resolution: + { integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== } + engines: { node: '>=18' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.17.19': + resolution: + { integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.18.20': + resolution: + { integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: + { integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: + { integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: + { integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== } + engines: { node: '>=18' } + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.17.19': + resolution: + { integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.18.20': + resolution: + { integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: + { integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: + { integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: + { integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== } + engines: { node: '>=18' } + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.17.19': + resolution: + { integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.18.20': + resolution: + { integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.19.12': + resolution: + { integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.21.5': + resolution: + { integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: + { integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== } + engines: { node: '>=18' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.17.19': + resolution: + { integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.18.20': + resolution: + { integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: + { integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: + { integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: + { integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== } + engines: { node: '>=18' } + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.17.19': + resolution: + { integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.18.20': + resolution: + { integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: + { integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: + { integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: + { integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== } + engines: { node: '>=18' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.17.19': + resolution: + { integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.18.20': + resolution: + { integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: + { integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: + { integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: + { integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== } + engines: { node: '>=18' } + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.17.19': + resolution: + { integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.18.20': + resolution: + { integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.19.12': + resolution: + { integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.21.5': + resolution: + { integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: + { integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== } + engines: { node: '>=18' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.17.19': + resolution: + { integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.18.20': + resolution: + { integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: + { integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: + { integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: + { integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== } + engines: { node: '>=18' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.17.19': + resolution: + { integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.18.20': + resolution: + { integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: + { integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: + { integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: + { integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== } + engines: { node: '>=18' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.17.19': + resolution: + { integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.18.20': + resolution: + { integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: + { integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: + { integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: + { integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.17.19': + resolution: + { integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.18.20': + resolution: + { integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: + { integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: + { integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: + { integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.17.19': + resolution: + { integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.18.20': + resolution: + { integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: + { integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: + { integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: + { integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== } + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.17.19': + resolution: + { integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.18.20': + resolution: + { integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: + { integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: + { integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: + { integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== } + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.17.19': + resolution: + { integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.18.20': + resolution: + { integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: + { integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: + { integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: + { integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== } + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.17.19': + resolution: + { integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.18.20': + resolution: + { integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: + { integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: + { integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: + { integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== } + engines: { node: '>=18' } + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.17.19': + resolution: + { integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.18.20': + resolution: + { integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.12': + resolution: + { integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: + { integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: + { integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== } + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: + { integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== } + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.17.19': + resolution: + { integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.18.20': + resolution: + { integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: + { integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: + { integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: + { integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== } + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.17.19': + resolution: + { integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.18.20': + resolution: + { integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.12': + resolution: + { integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.21.5': + resolution: + { integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: + { integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== } + engines: { node: '>=18' } + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.17.19': + resolution: + { integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.18.20': + resolution: + { integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.12': + resolution: + { integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.21.5': + resolution: + { integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: + { integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== } + engines: { node: '>=18' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.17.19': + resolution: + { integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.18.20': + resolution: + { integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: + { integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: + { integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: + { integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== } + engines: { node: '>=18' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.17.19': + resolution: + { integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.18.20': + resolution: + { integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: + { integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: + { integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: + { integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== } + engines: { node: '>=18' } + cpu: [x64] + os: [win32] + + '@faker-js/faker@9.2.0': + resolution: + { integrity: sha512-ulqQu4KMr1/sTFIYvqSdegHT8NIkt66tFAkugGnHA+1WAfEn6hMzNR+svjXGFRVLnapxvej67Z/LwchFrnLBUg== } + engines: { node: '>=18.0.0', npm: '>=9.0.0' } + + '@fastify/busboy@2.1.1': + resolution: + { integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== } + engines: { node: '>=14' } + + '@hono/swagger-ui@0.4.1': + resolution: + { integrity: sha512-kPaJatHffeYQ3yVkHo878hCqwfapqx54FczJVJ+eRWt8J4biyVVMIdCAJb6MyA8bcnHUoTmUpPc7OJAV1VTg2g== } + peerDependencies: + hono: '*' + + '@hono/zod-openapi@0.17.0': + resolution: + { integrity: sha512-Ed6U/6cbCOBQYl0N3E94Q9UKAT5eg+x1RtShGU9OERH9ZM/SYMSLk2Biu8Eba2myu7MuzDsne9rVLrUpno1GnA== } + engines: { node: '>=16.0.0' } + peerDependencies: + hono: '>=4.3.6' + zod: 3.* + + '@hono/zod-validator@0.3.0': + resolution: + { integrity: sha512-7XcTk3yYyk6ldrO/VuqsroE7stvDZxHJQcpATRAyha8rUxJNBPV3+6waDrARfgEqxOVlzIadm3/6sE/dPseXgQ== } + peerDependencies: + hono: '>=3.9.0' + zod: ^3.19.1 + + '@jridgewell/resolve-uri@3.1.2': + resolution: + { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } + engines: { node: '>=6.0.0' } + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: + { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== } + + '@jridgewell/trace-mapping@0.3.9': + resolution: + { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } + + '@neondatabase/serverless@0.10.3': + resolution: + { integrity: sha512-F4kqSj++GUwLnO3OzPb95Y/xn3qVLkjJA/36YTqT7c3MRgA/IBOIs/Is1+HBZkGfEwfMG3A9tFkxiEg5eBjxDw== } + + '@prisma/client@5.21.1': + resolution: + { integrity: sha512-3n+GgbAZYjaS/k0M03yQsQfR1APbr411r74foknnsGpmhNKBG49VuUkxIU6jORgvJPChoD4WC4PqoHImN1FP0w== } + engines: { node: '>=16.13' } + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + + '@prisma/debug@5.21.1': + resolution: + { integrity: sha512-uY8SAhcnORhvgtOrNdvWS98Aq/nkQ9QDUxrWAgW8XrCZaI3j2X7zb7Xe6GQSh6xSesKffFbFlkw0c2luHQviZA== } + + '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': + resolution: + { integrity: sha512-qvnEflL0//lh44S/T9NcvTMxfyowNeUxTunPcDfKPjyJNrCNf2F1zQLcUv5UHAruECpX+zz21CzsC7V2xAeM7Q== } + + '@prisma/engines@5.21.1': + resolution: + { integrity: sha512-hGVTldUkIkTwoV8//hmnAAiAchi4oMEKD3aW5H2RrnI50tTdwza7VQbTTAyN3OIHWlK5DVg6xV7X8N/9dtOydA== } + + '@prisma/fetch-engine@5.21.1': + resolution: + { integrity: sha512-70S31vgpCGcp9J+mh/wHtLCkVezLUqe/fGWk3J3JWZIN7prdYSlr1C0niaWUyNK2VflLXYi8kMjAmSxUVq6WGQ== } + + '@prisma/get-platform@5.21.1': + resolution: + { integrity: sha512-sRxjL3Igst3ct+e8ya/x//cDXmpLbZQ5vfps2N4tWl4VGKQAmym77C/IG/psSMsQKszc8uFC/q1dgmKFLUgXZQ== } + + '@rollup/rollup-android-arm-eabi@4.21.3': + resolution: + { integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg== } + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.21.3': + resolution: + { integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g== } + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.21.3': + resolution: + { integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ== } + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.21.3': + resolution: + { integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA== } + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + resolution: + { integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g== } + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.21.3': + resolution: + { integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA== } + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.21.3': + resolution: + { integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw== } + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.21.3': + resolution: + { integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ== } + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + resolution: + { integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw== } + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.21.3': + resolution: + { integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ== } + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.21.3': + resolution: + { integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg== } + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.21.3': + resolution: + { integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g== } + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.21.3': + resolution: + { integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg== } + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.21.3': + resolution: + { integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q== } + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.21.3': + resolution: + { integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA== } + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.21.3': + resolution: + { integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA== } + cpu: [x64] + os: [win32] + + '@scalar/hono-api-reference@0.5.159': + resolution: + { integrity: sha512-nUKaN0CKvytbXPj9b6taF/efKKRqEUwhVxlfLVjrJXN0eHNHDWxG9e/5Tyw1o2MXJo1cQpGZ4qTh48k/8u6ZjA== } + engines: { node: '>=18' } + peerDependencies: + hono: ^4.0.0 + + '@scalar/openapi-types@0.1.5': + resolution: + { integrity: sha512-6geH9ehvQ/sG/xUyy3e0lyOw3BaY5s6nn22wHjEJhcobdmWyFER0O6m7AU0ZN4QTjle/gYvFJOjj552l/rsNSw== } + engines: { node: '>=18' } + + '@scalar/types@0.0.19': + resolution: + { integrity: sha512-wOxtXd35BS0DaVhBopQUB8c8hfLQ+/PKEr99GbOZW+4DWCrEB8JfWJgvpJyxHU6by7LHNVY4fvpFQR7Ezh1IIw== } + engines: { node: '>=18' } + + '@types/bcryptjs@2.4.6': + resolution: + { integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ== } + + '@types/estree@1.0.5': + resolution: + { integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== } + + '@types/node-forge@1.3.11': + resolution: + { integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== } + + '@types/node@22.9.0': + resolution: + { integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ== } + + '@types/pg@8.11.10': + resolution: + { integrity: sha512-LczQUW4dbOQzsH2RQ5qoeJ6qJPdrcM/DcMLoqWQkMLMsq83J5lAX3LXjdkWdpscFy67JSOWDnh7Ny/sPFykmkg== } + + '@types/pg@8.11.6': + resolution: + { integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ== } + + '@unhead/schema@1.11.11': + resolution: + { integrity: sha512-xSGsWHPBYcMV/ckQeImbrVu6ddeRnrdDCgXUKv3xIjGBY+ob/96V80lGX8FKWh8GwdFSwhblISObKlDAt5K9ZQ== } + + '@vitest/expect@2.1.4': + resolution: + { integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA== } + + '@vitest/mocker@2.1.4': + resolution: + { integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ== } + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.4': + resolution: + { integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww== } + + '@vitest/runner@2.1.4': + resolution: + { integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA== } + + '@vitest/snapshot@2.1.4': + resolution: + { integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q== } + + '@vitest/spy@2.1.4': + resolution: + { integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg== } + + '@vitest/utils@2.1.4': + resolution: + { integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg== } + + acorn-walk@8.3.4: + resolution: + { integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== } + engines: { node: '>=0.4.0' } + + acorn@8.12.1: + resolution: + { integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== } + engines: { node: '>=0.4.0' } + hasBin: true + + add@2.0.6: + resolution: + { integrity: sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q== } + + anymatch@3.1.3: + resolution: + { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } + engines: { node: '>= 8' } + + as-table@1.0.55: + resolution: + { integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ== } + + assertion-error@2.0.1: + resolution: + { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== } + engines: { node: '>=12' } + + bcryptjs@2.4.3: + resolution: + { integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== } + + binary-extensions@2.3.0: + resolution: + { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== } + engines: { node: '>=8' } + + birpc@0.2.14: + resolution: + { integrity: sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA== } + + blake3-wasm@2.1.5: + resolution: + { integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== } + + braces@3.0.3: + resolution: + { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } + engines: { node: '>=8' } + + buffer-from@1.1.2: + resolution: + { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } + + cac@6.7.14: + resolution: + { integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== } + engines: { node: '>=8' } + + capnp-ts@0.7.0: + resolution: + { integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g== } + + chai@5.1.2: + resolution: + { integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== } + engines: { node: '>=12' } + + check-error@2.1.1: + resolution: + { integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== } + engines: { node: '>= 16' } + + chokidar@3.6.0: + resolution: + { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== } + engines: { node: '>= 8.10.0' } + + cjs-module-lexer@1.4.1: + resolution: + { integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== } + + cookie@0.5.0: + resolution: + { integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== } + engines: { node: '>= 0.6' } + + data-uri-to-buffer@2.0.2: + resolution: + { integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA== } + + date-fns@4.1.0: + resolution: + { integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== } + + debug@4.3.7: + resolution: + { integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-eql@5.0.2: + resolution: + { integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== } + engines: { node: '>=6' } + + defu@6.1.4: + resolution: + { integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== } + + devalue@4.3.3: + resolution: + { integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg== } + + dotenv@16.4.5: + resolution: + { integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== } + engines: { node: '>=12' } + + drizzle-kit@0.28.0: + resolution: + { integrity: sha512-KqI+CS2Ga9GYIrXpxpCDUJJrH/AT/k4UY0Pb4oRgQEGkgN1EdCnqp664cXgwPWjDr5RBtTsjZipw8+8C//K63A== } + hasBin: true + + drizzle-orm@0.36.1: + resolution: + { integrity: sha512-F4hbimnMEhyWzDowQB4xEuVJJWXLHZYD7FYwvo8RImY+N7pStGqsbfmT95jDbec1s4qKmQbiuxEDZY90LRrfIw== } + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/react': '>=18' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=13.2.0' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + prisma: '*' + react: '>=18' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/react': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + react: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + + drizzle-zod@0.5.1: + resolution: + { integrity: sha512-C/8bvzUH/zSnVfwdSibOgFjLhtDtbKYmkbPbUCq46QZyZCH6kODIMSOgZ8R7rVjoI+tCj3k06MRJMDqsIeoS4A== } + peerDependencies: + drizzle-orm: '>=0.23.13' + zod: '*' + + esbuild-register@3.6.0: + resolution: + { integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== } + peerDependencies: + esbuild: '>=0.12 <1' + + esbuild@0.17.19: + resolution: + { integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== } + engines: { node: '>=12' } + hasBin: true + + esbuild@0.18.20: + resolution: + { integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== } + engines: { node: '>=12' } + hasBin: true + + esbuild@0.19.12: + resolution: + { integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== } + engines: { node: '>=12' } + hasBin: true + + esbuild@0.21.5: + resolution: + { integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== } + engines: { node: '>=12' } + hasBin: true + + esbuild@0.23.1: + resolution: + { integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== } + engines: { node: '>=18' } + hasBin: true + + escape-string-regexp@4.0.0: + resolution: + { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: '>=10' } + + estree-walker@0.6.1: + resolution: + { integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== } + + estree-walker@3.0.3: + resolution: + { integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== } + + exit-hook@2.2.1: + resolution: + { integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== } + engines: { node: '>=6' } + + expect-type@1.1.0: + resolution: + { integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA== } + engines: { node: '>=12.0.0' } + + fill-range@7.1.1: + resolution: + { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } + engines: { node: '>=8' } + + fsevents@2.3.3: + resolution: + { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + + function-bind@1.1.2: + resolution: + { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } + + get-func-name@2.0.2: + resolution: + { integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== } + + get-source@2.0.12: + resolution: + { integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w== } + + get-tsconfig@4.8.1: + resolution: + { integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== } + + glob-parent@5.1.2: + resolution: + { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: '>= 6' } + + glob-to-regexp@0.4.1: + resolution: + { integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== } + + hasown@2.0.2: + resolution: + { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } + engines: { node: '>= 0.4' } + + hono@4.6.9: + resolution: + { integrity: sha512-p/pN5yZLuZaHzyAOT2nw2/Ud6HhJHYmDNGH6Ck1OWBhPMVeM1r74jbCRwNi0gyFRjjbsGgoHbOyj7mT1PDNbTw== } + engines: { node: '>=16.9.0' } + + hookable@5.5.3: + resolution: + { integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== } + + is-binary-path@2.1.0: + resolution: + { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } + engines: { node: '>=8' } + + is-core-module@2.15.1: + resolution: + { integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== } + engines: { node: '>= 0.4' } + + is-extglob@2.1.1: + resolution: + { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } + + is-glob@4.0.3: + resolution: + { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: '>=0.10.0' } + + is-number@7.0.0: + resolution: + { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: '>=0.12.0' } + + itty-time@1.0.6: + resolution: + { integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw== } + + js-tokens@4.0.0: + resolution: + { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + + loose-envify@1.4.0: + resolution: + { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== } + hasBin: true + + loupe@3.1.1: + resolution: + { integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== } + + loupe@3.1.2: + resolution: + { integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== } + + magic-string@0.25.9: + resolution: + { integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== } + + magic-string@0.30.12: + resolution: + { integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== } + + mime@3.0.0: + resolution: + { integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== } + engines: { node: '>=10.0.0' } + hasBin: true + + miniflare@3.20241106.0: + resolution: + { integrity: sha512-PjOoJKjUUofCueQskfhXlGvvHxZj36UAJAp1DnquMK88MFF50zCULblh0KXMSNM+bXeQYA94Gj06a7kfmBGxPw== } + engines: { node: '>=16.13' } + hasBin: true + + ms@2.1.3: + resolution: + { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + + mustache@4.2.0: + resolution: + { integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== } + hasBin: true + + nanoid@3.3.7: + resolution: + { integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + node-forge@1.3.1: + resolution: + { integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== } + engines: { node: '>= 6.13.0' } + + normalize-path@3.0.0: + resolution: + { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + engines: { node: '>=0.10.0' } + + obuf@1.1.2: + resolution: + { integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== } + + ohash@1.1.4: + resolution: + { integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g== } + + openapi3-ts@4.4.0: + resolution: + { integrity: sha512-9asTNB9IkKEzWMcHmVZE7Ts3kC9G7AFHfs8i7caD8HbI76gEjdkId4z/AkP83xdZsH7PLAnnbl47qZkXuxpArw== } + + path-parse@1.0.7: + resolution: + { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + + path-to-regexp@6.3.0: + resolution: + { integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== } + + pathe@1.1.2: + resolution: + { integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== } + + pathval@2.0.0: + resolution: + { integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== } + engines: { node: '>= 14.16' } + + pg-cloudflare@1.1.1: + resolution: + { integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== } + + pg-connection-string@2.7.0: + resolution: + { integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA== } + + pg-int8@1.0.1: + resolution: + { integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== } + engines: { node: '>=4.0.0' } + + pg-numeric@1.0.2: + resolution: + { integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw== } + engines: { node: '>=4' } + + pg-pool@3.7.0: + resolution: + { integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g== } + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.7.0: + resolution: + { integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ== } + + pg-types@2.2.0: + resolution: + { integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== } + engines: { node: '>=4' } + + pg-types@4.0.2: + resolution: + { integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng== } + engines: { node: '>=10' } + + pg@8.13.1: + resolution: + { integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ== } + engines: { node: '>= 8.0.0' } + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: + { integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== } + + picocolors@1.1.0: + resolution: + { integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== } + + picomatch@2.3.1: + resolution: + { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } + engines: { node: '>=8.6' } + + postcss@8.4.47: + resolution: + { integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== } + engines: { node: ^10 || ^12 || >=14 } + + postgres-array@2.0.0: + resolution: + { integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== } + engines: { node: '>=4' } + + postgres-array@3.0.2: + resolution: + { integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog== } + engines: { node: '>=12' } + + postgres-bytea@1.0.0: + resolution: + { integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== } + engines: { node: '>=0.10.0' } + + postgres-bytea@3.0.0: + resolution: + { integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw== } + engines: { node: '>= 6' } + + postgres-date@1.0.7: + resolution: + { integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== } + engines: { node: '>=0.10.0' } + + postgres-date@2.1.0: + resolution: + { integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA== } + engines: { node: '>=12' } + + postgres-interval@1.2.0: + resolution: + { integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== } + engines: { node: '>=0.10.0' } + + postgres-interval@3.0.0: + resolution: + { integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw== } + engines: { node: '>=12' } + + postgres-range@1.1.4: + resolution: + { integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== } + + postgres@3.4.5: + resolution: + { integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg== } + engines: { node: '>=12' } + + prettier@3.3.3: + resolution: + { integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== } + engines: { node: '>=14' } + hasBin: true + + printable-characters@1.0.42: + resolution: + { integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ== } + + prisma@5.21.1: + resolution: + { integrity: sha512-PB+Iqzld/uQBPaaw2UVIk84kb0ITsLajzsxzsadxxl54eaU5Gyl2/L02ysivHxK89t7YrfQJm+Ggk37uvM70oQ== } + engines: { node: '>=16.13' } + hasBin: true + + react@18.3.1: + resolution: + { integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== } + engines: { node: '>=0.10.0' } + + readdirp@3.6.0: + resolution: + { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } + engines: { node: '>=8.10.0' } + + resolve-pkg-maps@1.0.0: + resolution: + { integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== } + + resolve.exports@2.0.2: + resolution: + { integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== } + engines: { node: '>=10' } + + resolve@1.22.8: + resolution: + { integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== } + hasBin: true + + rollup-plugin-inject@3.0.2: + resolution: + { integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== } + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. + + rollup-plugin-node-polyfills@0.2.1: + resolution: + { integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== } + + rollup-pluginutils@2.8.2: + resolution: + { integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== } + + rollup@4.21.3: + resolution: + { integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA== } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + + selfsigned@2.4.1: + resolution: + { integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== } + engines: { node: '>=10' } + + semver@7.6.3: + resolution: + { integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== } + engines: { node: '>=10' } + hasBin: true + + siginfo@2.0.0: + resolution: + { integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== } + + source-map-js@1.2.1: + resolution: + { integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== } + engines: { node: '>=0.10.0' } + + source-map-support@0.5.21: + resolution: + { integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== } + + source-map@0.6.1: + resolution: + { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } + engines: { node: '>=0.10.0' } + + sourcemap-codec@1.4.8: + resolution: + { integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== } + deprecated: Please use @jridgewell/sourcemap-codec instead + + split2@4.2.0: + resolution: + { integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== } + engines: { node: '>= 10.x' } + + stackback@0.0.2: + resolution: + { integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== } + + stacktracey@2.1.8: + resolution: + { integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw== } + + std-env@3.7.0: + resolution: + { integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== } + + stoppable@1.1.0: + resolution: + { integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== } + engines: { node: '>=4', npm: '>=6' } + + supports-preserve-symlinks-flag@1.0.0: + resolution: + { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } + engines: { node: '>= 0.4' } + + tinybench@2.9.0: + resolution: + { integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== } + + tinyexec@0.3.1: + resolution: + { integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== } + + tinypool@1.0.1: + resolution: + { integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA== } + engines: { node: ^18.0.0 || >=20.0.0 } + + tinyrainbow@1.2.0: + resolution: + { integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== } + engines: { node: '>=14.0.0' } + + tinyspy@3.0.2: + resolution: + { integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== } + engines: { node: '>=14.0.0' } + + to-regex-range@5.0.1: + resolution: + { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: '>=8.0' } + + tslib@2.7.0: + resolution: + { integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== } + + tsx@4.19.2: + resolution: + { integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g== } + engines: { node: '>=18.0.0' } + hasBin: true + + typescript@5.6.3: + resolution: + { integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== } + engines: { node: '>=14.17' } + hasBin: true + + ufo@1.5.4: + resolution: + { integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== } + + undici-types@6.19.8: + resolution: + { integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== } + + undici@5.28.4: + resolution: + { integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== } + engines: { node: '>=14.0' } + + unenv-nightly@2.0.0-20241024-111401-d4156ac: + resolution: + { integrity: sha512-xJO1hfY+Te+/XnfCYrCbFbRcgu6XEODND1s5wnVbaBCkuQX7JXF7fHEXPrukFE2j8EOH848P8QN19VO47XN8hw== } + + vite-node@2.1.4: + resolution: + { integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg== } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + + vite@5.4.6: + resolution: + { integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q== } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@2.1.4: + resolution: + { integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ== } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.4 + '@vitest/ui': 2.1.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + why-is-node-running@2.3.0: + resolution: + { integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== } + engines: { node: '>=8' } + hasBin: true + + workerd@1.20241106.1: + resolution: + { integrity: sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw== } + engines: { node: '>=16' } + hasBin: true + + wrangler@3.86.0: + resolution: + { integrity: sha512-jL670AFVPLTILvEjAL165aYM/ZqtZCqT+e6LKiniflRZxSGKu4o/wyHeOmOM6i5kYJHSmF40E4lOZqapDtkF8g== } + engines: { node: '>=16.17.0' } + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20241106.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + ws@8.18.0: + resolution: + { integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== } + engines: { node: '>=10.0.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xtend@4.0.2: + resolution: + { integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== } + engines: { node: '>=0.4' } + + xxhash-wasm@1.0.2: + resolution: + { integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== } + + yaml@2.6.0: + resolution: + { integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ== } + engines: { node: '>= 14' } + hasBin: true + + youch@3.3.3: + resolution: + { integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA== } + + zhead@2.2.4: + resolution: + { integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag== } + + zod@3.23.8: + resolution: + { integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== } + +snapshots: + '@asteasolutions/zod-to-openapi@7.2.0(zod@3.23.8)': + dependencies: + openapi3-ts: 4.4.0 + zod: 3.23.8 + + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 + + '@cloudflare/vitest-pool-workers@0.5.26(@cloudflare/workers-types@4.20241106.0)(@vitest/runner@2.1.4)(@vitest/snapshot@2.1.4)(vitest@2.1.4(@types/node@22.9.0))': + dependencies: + '@vitest/runner': 2.1.4 + '@vitest/snapshot': 2.1.4 + birpc: 0.2.14 + cjs-module-lexer: 1.4.1 + devalue: 4.3.3 + esbuild: 0.17.19 + miniflare: 3.20241106.0 + semver: 7.6.3 + vitest: 2.1.4(@types/node@22.9.0) + wrangler: 3.86.0(@cloudflare/workers-types@4.20241106.0) + zod: 3.23.8 + transitivePeerDependencies: + - '@cloudflare/workers-types' + - bufferutil + - supports-color + - utf-8-validate + + '@cloudflare/workerd-darwin-64@1.20241106.1': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + optional: true + + '@cloudflare/workerd-linux-64@1.20241106.1': + optional: true + + '@cloudflare/workerd-linux-arm64@1.20241106.1': + optional: true + + '@cloudflare/workerd-windows-64@1.20241106.1': + optional: true + + '@cloudflare/workers-shared@0.7.1': + dependencies: + mime: 3.0.0 + zod: 3.23.8 + + '@cloudflare/workers-types@4.20241106.0': {} + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@drizzle-team/brocli@0.10.2': {} + + '@esbuild-kit/core-utils@3.3.2': + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 + + '@esbuild-kit/esm-loader@2.6.5': + dependencies: + '@esbuild-kit/core-utils': 3.3.2 + get-tsconfig: 4.8.1 + + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': + dependencies: + esbuild: 0.17.19 + + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': + dependencies: + esbuild: 0.17.19 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.17.19': + optional: true + + '@esbuild/android-arm64@0.18.20': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.17.19': + optional: true + + '@esbuild/android-arm@0.18.20': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.17.19': + optional: true + + '@esbuild/android-x64@0.18.20': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.17.19': + optional: true + + '@esbuild/darwin-arm64@0.18.20': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.17.19': + optional: true + + '@esbuild/darwin-x64@0.18.20': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.17.19': + optional: true + + '@esbuild/freebsd-arm64@0.18.20': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.17.19': + optional: true + + '@esbuild/freebsd-x64@0.18.20': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.17.19': + optional: true + + '@esbuild/linux-arm64@0.18.20': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.17.19': + optional: true + + '@esbuild/linux-arm@0.18.20': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.17.19': + optional: true + + '@esbuild/linux-ia32@0.18.20': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.17.19': + optional: true + + '@esbuild/linux-loong64@0.18.20': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.17.19': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.17.19': + optional: true + + '@esbuild/linux-ppc64@0.18.20': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.17.19': + optional: true + + '@esbuild/linux-riscv64@0.18.20': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.17.19': + optional: true + + '@esbuild/linux-s390x@0.18.20': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.17.19': + optional: true + + '@esbuild/linux-x64@0.18.20': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.17.19': + optional: true + + '@esbuild/netbsd-x64@0.18.20': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.17.19': + optional: true + + '@esbuild/openbsd-x64@0.18.20': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.17.19': + optional: true + + '@esbuild/sunos-x64@0.18.20': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.17.19': + optional: true + + '@esbuild/win32-arm64@0.18.20': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.17.19': + optional: true + + '@esbuild/win32-ia32@0.18.20': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.17.19': + optional: true + + '@esbuild/win32-x64@0.18.20': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@faker-js/faker@9.2.0': {} + + '@fastify/busboy@2.1.1': {} + + '@hono/swagger-ui@0.4.1(hono@4.6.9)': + dependencies: + hono: 4.6.9 + + '@hono/zod-openapi@0.17.0(hono@4.6.9)(zod@3.23.8)': + dependencies: + '@asteasolutions/zod-to-openapi': 7.2.0(zod@3.23.8) + '@hono/zod-validator': 0.3.0(hono@4.6.9)(zod@3.23.8) + hono: 4.6.9 + zod: 3.23.8 + + '@hono/zod-validator@0.3.0(hono@4.6.9)(zod@3.23.8)': + dependencies: + hono: 4.6.9 + zod: 3.23.8 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@neondatabase/serverless@0.10.3': + dependencies: + '@types/pg': 8.11.6 + + '@prisma/client@5.21.1(prisma@5.21.1)': + optionalDependencies: + prisma: 5.21.1 + optional: true + + '@prisma/debug@5.21.1': + optional: true + + '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': + optional: true + + '@prisma/engines@5.21.1': + dependencies: + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/fetch-engine': 5.21.1 + '@prisma/get-platform': 5.21.1 + optional: true + + '@prisma/fetch-engine@5.21.1': + dependencies: + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/get-platform': 5.21.1 + optional: true + + '@prisma/get-platform@5.21.1': + dependencies: + '@prisma/debug': 5.21.1 + optional: true + + '@rollup/rollup-android-arm-eabi@4.21.3': + optional: true + + '@rollup/rollup-android-arm64@4.21.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.21.3': + optional: true + + '@rollup/rollup-darwin-x64@4.21.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.21.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.21.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.21.3': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.21.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.21.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.21.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.21.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.21.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.21.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.21.3': + optional: true + + '@scalar/hono-api-reference@0.5.159(hono@4.6.9)': + dependencies: + '@scalar/types': 0.0.19 + hono: 4.6.9 + + '@scalar/openapi-types@0.1.5': {} + + '@scalar/types@0.0.19': + dependencies: + '@scalar/openapi-types': 0.1.5 + '@unhead/schema': 1.11.11 + + '@types/bcryptjs@2.4.6': {} + + '@types/estree@1.0.5': {} + + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 22.9.0 + + '@types/node@22.9.0': + dependencies: + undici-types: 6.19.8 + + '@types/pg@8.11.10': + dependencies: + '@types/node': 22.9.0 + pg-protocol: 1.7.0 + pg-types: 4.0.2 + + '@types/pg@8.11.6': + dependencies: + '@types/node': 22.9.0 + pg-protocol: 1.7.0 + pg-types: 4.0.2 + + '@unhead/schema@1.11.11': + dependencies: + hookable: 5.5.3 + zhead: 2.2.4 + + '@vitest/expect@2.1.4': + dependencies: + '@vitest/spy': 2.1.4 + '@vitest/utils': 2.1.4 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.4(vite@5.4.6(@types/node@22.9.0))': + dependencies: + '@vitest/spy': 2.1.4 + estree-walker: 3.0.3 + magic-string: 0.30.12 + optionalDependencies: + vite: 5.4.6(@types/node@22.9.0) + + '@vitest/pretty-format@2.1.4': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.4': + dependencies: + '@vitest/utils': 2.1.4 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.4': + dependencies: + '@vitest/pretty-format': 2.1.4 + magic-string: 0.30.12 + pathe: 1.1.2 + + '@vitest/spy@2.1.4': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@2.1.4': + dependencies: + '@vitest/pretty-format': 2.1.4 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + add@2.0.6: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + as-table@1.0.55: + dependencies: + printable-characters: 1.0.42 + + assertion-error@2.0.1: {} + + bcryptjs@2.4.3: {} + + binary-extensions@2.3.0: {} + + birpc@0.2.14: {} + + blake3-wasm@2.1.5: {} + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-from@1.1.2: {} + + cac@6.7.14: {} + + capnp-ts@0.7.0: + dependencies: + debug: 4.3.7 + tslib: 2.7.0 + transitivePeerDependencies: + - supports-color + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cjs-module-lexer@1.4.1: {} + + cookie@0.5.0: {} + + data-uri-to-buffer@2.0.2: {} + + date-fns@4.1.0: {} + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + deep-eql@5.0.2: {} + + defu@6.1.4: {} + + devalue@4.3.3: {} + + dotenv@16.4.5: {} + + drizzle-kit@0.28.0: + dependencies: + '@drizzle-team/brocli': 0.10.2 + '@esbuild-kit/esm-loader': 2.6.5 + esbuild: 0.19.12 + esbuild-register: 3.6.0(esbuild@0.19.12) + transitivePeerDependencies: + - supports-color + + drizzle-orm@0.36.1(@cloudflare/workers-types@4.20241106.0)(@neondatabase/serverless@0.10.3)(@prisma/client@5.21.1(prisma@5.21.1))(@types/pg@8.11.10)(pg@8.13.1)(postgres@3.4.5)(prisma@5.21.1)(react@18.3.1): + optionalDependencies: + '@cloudflare/workers-types': 4.20241106.0 + '@neondatabase/serverless': 0.10.3 + '@prisma/client': 5.21.1(prisma@5.21.1) + '@types/pg': 8.11.10 + pg: 8.13.1 + postgres: 3.4.5 + prisma: 5.21.1 + react: 18.3.1 + + drizzle-zod@0.5.1(drizzle-orm@0.36.1(@cloudflare/workers-types@4.20241106.0)(@neondatabase/serverless@0.10.3)(@prisma/client@5.21.1(prisma@5.21.1))(@types/pg@8.11.10)(pg@8.13.1)(postgres@3.4.5)(prisma@5.21.1)(react@18.3.1))(zod@3.23.8): + dependencies: + drizzle-orm: 0.36.1(@cloudflare/workers-types@4.20241106.0)(@neondatabase/serverless@0.10.3)(@prisma/client@5.21.1(prisma@5.21.1))(@types/pg@8.11.10)(pg@8.13.1)(postgres@3.4.5)(prisma@5.21.1)(react@18.3.1) + zod: 3.23.8 + + esbuild-register@3.6.0(esbuild@0.19.12): + dependencies: + debug: 4.3.7 + esbuild: 0.19.12 + transitivePeerDependencies: + - supports-color + + esbuild@0.17.19: + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escape-string-regexp@4.0.0: {} + + estree-walker@0.6.1: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + exit-hook@2.2.1: {} + + expect-type@1.1.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-func-name@2.0.2: {} + + get-source@2.0.12: + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hono@4.6.9: {} + + hookable@5.5.3: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + itty-time@1.0.6: {} + + js-tokens@4.0.0: + optional: true + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + optional: true + + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + + loupe@3.1.2: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + mime@3.0.0: {} + + miniflare@3.20241106.0: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.12.1 + acorn-walk: 8.3.4 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.4 + workerd: 1.20241106.1 + ws: 8.18.0 + youch: 3.3.3 + zod: 3.23.8 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + ms@2.1.3: {} + + mustache@4.2.0: {} + + nanoid@3.3.7: {} + + node-forge@1.3.1: {} + + normalize-path@3.0.0: {} + + obuf@1.1.2: {} + + ohash@1.1.4: {} + + openapi3-ts@4.4.0: + dependencies: + yaml: 2.6.0 + + path-parse@1.0.7: {} + + path-to-regexp@6.3.0: {} + + pathe@1.1.2: {} + + pathval@2.0.0: {} + + pg-cloudflare@1.1.1: + optional: true + + pg-connection-string@2.7.0: {} + + pg-int8@1.0.1: {} + + pg-numeric@1.0.2: {} + + pg-pool@3.7.0(pg@8.13.1): + dependencies: + pg: 8.13.1 + + pg-protocol@1.7.0: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg-types@4.0.2: + dependencies: + pg-int8: 1.0.1 + pg-numeric: 1.0.2 + postgres-array: 3.0.2 + postgres-bytea: 3.0.0 + postgres-date: 2.1.0 + postgres-interval: 3.0.0 + postgres-range: 1.1.4 + + pg@8.13.1: + dependencies: + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.1) + pg-protocol: 1.7.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.1.1 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postgres-array@2.0.0: {} + + postgres-array@3.0.2: {} + + postgres-bytea@1.0.0: {} + + postgres-bytea@3.0.0: + dependencies: + obuf: 1.1.2 + + postgres-date@1.0.7: {} + + postgres-date@2.1.0: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + + postgres-interval@3.0.0: {} + + postgres-range@1.1.4: {} + + postgres@3.4.5: {} + + prettier@3.3.3: {} + + printable-characters@1.0.42: {} + + prisma@5.21.1: + dependencies: + '@prisma/engines': 5.21.1 + optionalDependencies: + fsevents: 2.3.3 + optional: true + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + optional: true + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve-pkg-maps@1.0.0: {} + + resolve.exports@2.0.2: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rollup-plugin-inject@3.0.2: + dependencies: + estree-walker: 0.6.1 + magic-string: 0.25.9 + rollup-pluginutils: 2.8.2 + + rollup-plugin-node-polyfills@0.2.1: + dependencies: + rollup-plugin-inject: 3.0.2 + + rollup-pluginutils@2.8.2: + dependencies: + estree-walker: 0.6.1 + + rollup@4.21.3: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.3 + '@rollup/rollup-android-arm64': 4.21.3 + '@rollup/rollup-darwin-arm64': 4.21.3 + '@rollup/rollup-darwin-x64': 4.21.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 + '@rollup/rollup-linux-arm-musleabihf': 4.21.3 + '@rollup/rollup-linux-arm64-gnu': 4.21.3 + '@rollup/rollup-linux-arm64-musl': 4.21.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 + '@rollup/rollup-linux-riscv64-gnu': 4.21.3 + '@rollup/rollup-linux-s390x-gnu': 4.21.3 + '@rollup/rollup-linux-x64-gnu': 4.21.3 + '@rollup/rollup-linux-x64-musl': 4.21.3 + '@rollup/rollup-win32-arm64-msvc': 4.21.3 + '@rollup/rollup-win32-ia32-msvc': 4.21.3 + '@rollup/rollup-win32-x64-msvc': 4.21.3 + fsevents: 2.3.3 + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver@7.6.3: {} + + siginfo@2.0.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sourcemap-codec@1.4.8: {} + + split2@4.2.0: {} + + stackback@0.0.2: {} + + stacktracey@2.1.8: + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 + + std-env@3.7.0: {} + + stoppable@1.1.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + tinybench@2.9.0: {} + + tinyexec@0.3.1: {} + + tinypool@1.0.1: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tslib@2.7.0: {} + + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + undici-types@6.19.8: {} + + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + unenv-nightly@2.0.0-20241024-111401-d4156ac: + dependencies: + defu: 6.1.4 + ohash: 1.1.4 + pathe: 1.1.2 + ufo: 1.5.4 + + vite-node@2.1.4(@types/node@22.9.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + vite: 5.4.6(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite@5.4.6(@types/node@22.9.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.21.3 + optionalDependencies: + '@types/node': 22.9.0 + fsevents: 2.3.3 + + vitest@2.1.4(@types/node@22.9.0): + dependencies: + '@vitest/expect': 2.1.4 + '@vitest/mocker': 2.1.4(vite@5.4.6(@types/node@22.9.0)) + '@vitest/pretty-format': 2.1.4 + '@vitest/runner': 2.1.4 + '@vitest/snapshot': 2.1.4 + '@vitest/spy': 2.1.4 + '@vitest/utils': 2.1.4 + chai: 5.1.2 + debug: 4.3.7 + expect-type: 1.1.0 + magic-string: 0.30.12 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.6(@types/node@22.9.0) + vite-node: 2.1.4(@types/node@22.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.9.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + workerd@1.20241106.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20241106.1 + '@cloudflare/workerd-darwin-arm64': 1.20241106.1 + '@cloudflare/workerd-linux-64': 1.20241106.1 + '@cloudflare/workerd-linux-arm64': 1.20241106.1 + '@cloudflare/workerd-windows-64': 1.20241106.1 + + wrangler@3.86.0(@cloudflare/workers-types@4.20241106.0): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@cloudflare/workers-shared': 0.7.1 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.6.0 + date-fns: 4.1.0 + esbuild: 0.17.19 + itty-time: 1.0.6 + miniflare: 3.20241106.0 + nanoid: 3.3.7 + path-to-regexp: 6.3.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + selfsigned: 2.4.1 + source-map: 0.6.1 + unenv: unenv-nightly@2.0.0-20241024-111401-d4156ac + workerd: 1.20241106.1 + xxhash-wasm: 1.0.2 + optionalDependencies: + '@cloudflare/workers-types': 4.20241106.0 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + ws@8.18.0: {} + + xtend@4.0.2: {} + + xxhash-wasm@1.0.2: {} + + yaml@2.6.0: {} + + youch@3.3.3: + dependencies: + cookie: 0.5.0 + mustache: 4.2.0 + stacktracey: 2.1.8 + + zhead@2.2.4: {} + + zod@3.23.8: {} diff --git a/apps/api/src/db/client.node.ts b/apps/api/src/db/client.node.ts new file mode 100644 index 0000000..d3d7bcc --- /dev/null +++ b/apps/api/src/db/client.node.ts @@ -0,0 +1,7 @@ +import { drizzle } from 'drizzle-orm/node-postgres' + +import { config } from 'dotenv' +import * as schema from './schema' +config({ path: '.dev.vars' }) + +export const dbClient = drizzle(process.env.DATABASE_URL!, { schema }) diff --git a/apps/api/src/db/client.serverless.ts b/apps/api/src/db/client.serverless.ts new file mode 100644 index 0000000..b9113f8 --- /dev/null +++ b/apps/api/src/db/client.serverless.ts @@ -0,0 +1,13 @@ +import { drizzle } from 'drizzle-orm/neon-http' + +import { neon } from '@neondatabase/serverless' +import { config } from 'dotenv' +import * as schema from './schema' +config({ path: '../../.dev.vars' }) + +export const dbClient = drizzle(process.env.DATABASE_URL!, { schema }) + +export const dbClientInWorker = (DATABASE_URL: string) => { + const sql = neon(DATABASE_URL) + return drizzle(sql, { schema, logger: true }) +} diff --git a/apps/api/src/db/migrate.ts b/apps/api/src/db/migrate.ts new file mode 100644 index 0000000..0c61d2f --- /dev/null +++ b/apps/api/src/db/migrate.ts @@ -0,0 +1,20 @@ +// migrate.ts +import { config } from 'dotenv' +import { migrate } from 'drizzle-orm/postgres-js/migrator' +import postgres from 'postgres' +import { drizzle } from 'drizzle-orm/postgres-js' + +config({ path: '.dev.vars' }) + +const databaseUrl = drizzle(postgres(`${process.env.DATABASE_URL}`, { ssl: 'require', max: 1 })) + +const main = async () => { + try { + await migrate(databaseUrl, { migrationsFolder: 'drizzle' }) + console.log('Migration complete') + } catch (error) { + console.log(error) + } + process.exit(0) +} +main() diff --git a/apps/api/src/db/schema/album.schema.ts b/apps/api/src/db/schema/album.schema.ts new file mode 100644 index 0000000..94a1d7f --- /dev/null +++ b/apps/api/src/db/schema/album.schema.ts @@ -0,0 +1,27 @@ +import { createInsertSchema, createSelectSchema } from 'drizzle-zod' +import { integer, pgTable, text, timestamp, uuid, boolean, varchar } from 'drizzle-orm/pg-core' + +// Album table +export const albumsTableSchema = pgTable('albums', { + id: uuid('id').primaryKey().defaultRandom(), + title: varchar('title', { length: 255 }).notNull(), + artist: varchar('artist', { length: 255 }).notNull(), + description: text('description'), + coverUrl: varchar('cover_url', { length: 255 }), + releaseDate: timestamp('release_date'), + genre: varchar('genre', { length: 100 }), + label: varchar('label', { length: 255 }), + totalTracks: integer('total_tracks').default(0), + playCount: integer('play_count').default(0), + likeCount: integer('like_count').default(0), + isPublished: boolean('is_published').default(false), + createdAt: timestamp('created_at').notNull().defaultNow(), + updatedAt: timestamp('updated_at') + .notNull() + .$onUpdate(() => new Date()), +}) + +export type AlbumType = typeof albumsTableSchema.$inferSelect +export type NewAlbumType = typeof albumsTableSchema.$inferInsert +export const createAlbumSchema = createInsertSchema(albumsTableSchema) +export const selectAlbumSchema = createSelectSchema(albumsTableSchema) diff --git a/apps/api/src/db/schema/index.ts b/apps/api/src/db/schema/index.ts new file mode 100644 index 0000000..d9af644 --- /dev/null +++ b/apps/api/src/db/schema/index.ts @@ -0,0 +1,3 @@ +export * from './album.schema' +export * from './tasks.schema' +export * from './users.schema' diff --git a/apps/api/src/db/schema/tasks.schema.ts b/apps/api/src/db/schema/tasks.schema.ts new file mode 100644 index 0000000..dfdc73a --- /dev/null +++ b/apps/api/src/db/schema/tasks.schema.ts @@ -0,0 +1,26 @@ + +import { pgEnum, pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core' +import { TaskLabelEnum, TaskPriorityEnum, TaskStatusEnum } from '@/module/tasks/enums' +import { createInsertSchema, createSelectSchema } from 'drizzle-zod' + +export const taskStatusEnum = pgEnum('task_status', TaskStatusEnum) +export const taskPriorityEnum = pgEnum('task_priority', TaskPriorityEnum) +export const taskLabelEnum = pgEnum('task_label', TaskLabelEnum) + +// Task table +export const tasks = pgTable('tasks', { + id: uuid('id').primaryKey().defaultRandom(), + title: text('title').notNull(), + status: taskStatusEnum().notNull().default(TaskStatusEnum[0]), + label: taskLabelEnum().notNull().default(TaskLabelEnum[0]), + priority: taskPriorityEnum('priority').notNull().default(TaskPriorityEnum[0]), + createdAt: timestamp('created_at').notNull().defaultNow(), + updatedAt: timestamp('updated_at') + .notNull() + .$onUpdate(() => new Date()), +}) + +export type Task = typeof tasks.$inferSelect +export type NewTask = typeof tasks.$inferInsert +export const insertTaskSchema = createInsertSchema(tasks) +export const selectTaskSchema = createSelectSchema(tasks) diff --git a/apps/api/src/db/schema/users.schema.ts b/apps/api/src/db/schema/users.schema.ts new file mode 100644 index 0000000..caa43c7 --- /dev/null +++ b/apps/api/src/db/schema/users.schema.ts @@ -0,0 +1,28 @@ + +import { numeric, pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core' +import { createInsertSchema, createSelectSchema } from 'drizzle-zod' + +// User table +export const users = pgTable('users', { + id: uuid('id').primaryKey().defaultRandom(), + email: text('email').notNull().unique(), + username: text('username').unique(), + name: text('name'), + avatar: text('avatar'), + birthdate: text('birthdate'), + bio: text('bio'), + password: text('password').notNull(), + registeredAt: timestamp('registered_at').notNull().defaultNow(), + status: text('status').notNull(), + role: text('role').notNull(), + amount: numeric('amount').notNull(), + createdAt: timestamp('created_at').notNull().defaultNow(), + updatedAt: timestamp('updated_at') + .notNull() + .$onUpdate(() => new Date()), +}) + +export type User = typeof users.$inferSelect +export type NewUser = typeof users.$inferInsert +export const insertUserSchema = createInsertSchema(users) +export const selectUserSchema = createSelectSchema(users) diff --git a/apps/api/src/db/seed.ts b/apps/api/src/db/seed.ts new file mode 100644 index 0000000..8192b02 --- /dev/null +++ b/apps/api/src/db/seed.ts @@ -0,0 +1,23 @@ +import { seedAdminUser, seedAlbums, seedTasks, seedUsers } from './seeds' + +async function runSeed() { + console.log('⏳ Running seed...') + + const start = Date.now() + + await seedAdminUser() + await seedTasks({ count: 100 }) + await seedUsers({ count: 100 }) + await seedAlbums({ count: 100 }) + const end = Date.now() + + console.log(`✅ Seed completed in ${end - start}ms`) + + process.exit(0) +} + +runSeed().catch((err) => { + console.error('❌ Seed failed') + console.error(err) + process.exit(1) +}) diff --git a/apps/api/src/db/seeds.ts b/apps/api/src/db/seeds.ts new file mode 100644 index 0000000..03191e0 --- /dev/null +++ b/apps/api/src/db/seeds.ts @@ -0,0 +1,112 @@ +import { dbClient } from './client.node' +import { generateRandomTask, generateRandomTeamUser, generateRandomAlbum } from './utils' +import { hashPassword } from '../lib/crypto' +import { faker } from '@faker-js/faker' +import { NewUser, users } from '@/db/schema/users.schema' +import { NewAlbumType, albumsTableSchema } from '@/db/schema/album.schema' +import { NewTask, tasks } from '@/db/schema/tasks.schema' + +export async function seedAdminUser() { + const adminUser: NewUser[] = [ + { + email: 'admin@shadcn.com', + username: 'admin', + name: 'Admin', + avatar: faker.image.avatarGitHub(), + birthdate: faker.date.birthdate().toISOString(), + bio: faker.lorem.paragraph(), + password: hashPassword('admin'), + status: 'active', + role: 'admin', + amount: '1000', + }, + { + email: 'user@shadcn.com', + username: 'user', + name: 'User', + avatar: faker.image.avatarGitHub(), + birthdate: faker.date.birthdate().toISOString(), + bio: faker.lorem.paragraph(), + password: hashPassword('user'), + status: 'active', + role: 'member', + amount: '1000', + }, + { + email: 'guest@shadcn.com', + username: 'guest', + name: 'Guest', + avatar: faker.image.avatarGitHub(), + birthdate: faker.date.birthdate().toISOString(), + bio: faker.lorem.paragraph(), + password: hashPassword('guest'), + status: 'active', + role: 'guest', + amount: '1000', + }, + ] + try { + await dbClient.delete(users) + console.log('📝 Inserting admin user', adminUser.length) + await dbClient.insert(users).values(adminUser) + } catch (err) { + console.error(err) + } +} + +export async function seedUsers(input: { count: number }) { + const count = input.count ?? 100 + + try { + const allUsers: NewUser[] = [] + + for (let i = 0; i < count; i++) { + allUsers.push(generateRandomTeamUser()) + } + + console.log('📝 Inserting users', allUsers.length) + + await dbClient.insert(users).values(allUsers).onConflictDoNothing() + } catch (err) { + console.error(err) + } +} +export async function seedTasks(input: { count: number }) { + const count = input.count ?? 100 + + try { + const allTasks: NewTask[] = [] + + for (let i = 0; i < count; i++) { + allTasks.push(generateRandomTask()) + } + + await dbClient.delete(tasks) + + console.log('📝 Inserting tasks', allTasks.length) + + await dbClient.insert(tasks).values(allTasks).onConflictDoNothing() + } catch (err) { + console.error(err) + } +} + +export async function seedAlbums(input: { count: number }) { + const count = input.count ?? 100 + + try { + const allAlbums: NewAlbumType[] = [] + + for (let i = 0; i < count; i++) { + allAlbums.push(generateRandomAlbum()) + } + + await dbClient.delete(albumsTableSchema) + + console.log('📝 Inserting albums', allAlbums.length) + + await dbClient.insert(albumsTableSchema).values(allAlbums).onConflictDoNothing() + } catch (err) { + console.error(err) + } +} diff --git a/apps/api/src/db/utils.ts b/apps/api/src/db/utils.ts new file mode 100644 index 0000000..9c83292 --- /dev/null +++ b/apps/api/src/db/utils.ts @@ -0,0 +1,52 @@ +import { faker } from '@faker-js/faker' + +import { hashPassword } from '../lib/crypto' +import { TaskLabelEnum, TaskPriorityEnum, TaskStatusEnum } from '@/module/tasks/enums' +import { NewUser } from '@/db/schema/users.schema' +import { NewAlbumType } from '@/db/schema/album.schema' +import { Task } from '@/db/schema/tasks.schema' + +export function generateRandomTask(): Task { + return { + id: faker.string.uuid(), + title: faker.hacker.phrase(), + status: faker.helpers.arrayElement(TaskStatusEnum), + label: faker.helpers.arrayElement(TaskLabelEnum), + priority: faker.helpers.arrayElement(TaskPriorityEnum), + createdAt: new Date(), + updatedAt: new Date(), + } +} + +export function generateRandomAlbum(): NewAlbumType { + return { + title: faker.music.songName(), + artist: faker.person.fullName(), + description: faker.lorem.paragraph(), + coverUrl: faker.image.urlPicsumPhotos(), + releaseDate: faker.date.past(), + genre: faker.music.genre(), + label: faker.company.name(), + totalTracks: faker.number.int({ min: 1, max: 20 }), + playCount: faker.number.int({ min: 0, max: 1000000 }), + likeCount: faker.number.int({ min: 0, max: 100000 }), + isPublished: faker.datatype.boolean(), + } +} + +export function generateRandomTeamUser(): NewUser { + return { + id: faker.string.uuid(), + name: faker.person.fullName(), + username: faker.internet.username(), + email: faker.internet.email(), + avatar: faker.image.avatar(), + status: faker.helpers.arrayElement(['active', 'inactive', 'busy']), + role: faker.helpers.arrayElement(['admin', 'member', 'guest']), + bio: faker.lorem.paragraph(), + amount: faker.number.int({ min: 0, max: 10000 }).toString(), + createdAt: new Date(), + updatedAt: new Date(), + password: hashPassword(faker.internet.password()), + } as NewUser +} diff --git a/apps/api/src/index.test.ts b/apps/api/src/index.test.ts new file mode 100644 index 0000000..731ff36 --- /dev/null +++ b/apps/api/src/index.test.ts @@ -0,0 +1,8 @@ +import app from './index' + +describe('Test the application', () => { + it('Should return 200 response', async () => { + const res = await app.request('http://localhost/') + expect(res.status).toBe(200) + }) +}) diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts new file mode 100644 index 0000000..a81a051 --- /dev/null +++ b/apps/api/src/index.ts @@ -0,0 +1,59 @@ +import { OpenAPIHono } from '@hono/zod-openapi' +import { csrf } from 'hono/csrf' +import { cors } from 'hono/cors' +import { userRouter } from './module/users/users' +import { albumRouter } from './module/albums/albums' +import { authRouter } from './module/auth/auth' + +import { logger } from 'hono/logger' +import { requestId } from 'hono/request-id' +import { authMiddleware } from './middleware/auth-middleware' +import { taskRouter } from './module/tasks/tasks' +import { apiReference } from '@scalar/hono-api-reference' +import { showRoutes } from 'hono/dev' +const app = new OpenAPIHono().basePath('/api') + +app.get('/', (c) => { + return c.text(`Your request id is ${c.get('requestId')}`) +}) + +app.doc('/doc', { + openapi: '3.0.0', + info: { + title: 'API Documentation', + version: '1.0.0', + description: 'Complete API documentation for all routes', + }, + servers: [ + { + url: 'http://localhost:8787', + description: 'Development server', + }, + ], +}) + +app.get( + '/reference', + apiReference({ + spec: { + url: 'http://localhost:8787/api/doc', + }, + }), +) + +app.use('*', logger()) +app.use('*', csrf()) +app.use('*', cors()) +app.use('*', requestId()) +app.use('*', authMiddleware) + +app.route(`/auth`, authRouter) +app.route(`/albums`, albumRouter) +app.route(`/users`, userRouter) +app.route(`/tasks`, taskRouter) + +showRoutes(app) +export default { + ...app, + fetch: app.fetch, +} diff --git a/apps/api/src/lib/crypto.ts b/apps/api/src/lib/crypto.ts new file mode 100644 index 0000000..70c56d7 --- /dev/null +++ b/apps/api/src/lib/crypto.ts @@ -0,0 +1,12 @@ +import bcrypt from 'bcryptjs' + +export function hashPassword(password: string) { + if (!password) { + throw new Error('Password is required') + } + return bcrypt.hashSync(password, 10) +} + +export function comparePassword(password: string, hash: string) { + return bcrypt.compareSync(password, hash) +} diff --git a/apps/api/src/middleware/auth-middleware.ts b/apps/api/src/middleware/auth-middleware.ts new file mode 100644 index 0000000..ebf13b9 --- /dev/null +++ b/apps/api/src/middleware/auth-middleware.ts @@ -0,0 +1,18 @@ +import { jwt } from 'hono/jwt' +import { Context, Next } from 'hono' + +const authWhiteList = ['/api/auth/login', '/api/auth/register', '/api/seed', '/reference', '/doc'] + +export const authMiddleware = (c: Context, next: Next) => { + if (authWhiteList.length === 0) { + return next() + } + if (authWhiteList.includes(c.req.path)) { + return next() + } + const jwtMiddleware = jwt({ + secret: c.env.JWT_SECRET, + cookie: c.env.COOKIE_KEY, + }) + return jwtMiddleware(c, next) +} diff --git a/apps/api/src/module/albums/albums.test.ts b/apps/api/src/module/albums/albums.test.ts new file mode 100644 index 0000000..4357dbd --- /dev/null +++ b/apps/api/src/module/albums/albums.test.ts @@ -0,0 +1,8 @@ +const IncomingRequest = Request + +describe('album', () => { + it('should return 200', async () => { + const response = await fetch('http://localhost:8787/api/album') + expect(response.status).toBe(200) + }) +}) diff --git a/apps/api/src/module/albums/albums.ts b/apps/api/src/module/albums/albums.ts new file mode 100644 index 0000000..df33295 --- /dev/null +++ b/apps/api/src/module/albums/albums.ts @@ -0,0 +1,54 @@ +import { OpenAPIHono, createRoute } from '@hono/zod-openapi' +import { count } from 'drizzle-orm' + +import { dbClientInWorker } from '@/db/client.serverless' +import { queryAlbumSchema } from './schema' +import { BasePaginateQuerySchema, BasePaginationSchema } from '@/schema/base' + +import { albumsTableSchema } from '@/db/schema/album.schema' + +const albumRouter = new OpenAPIHono() + +const listAlbumsRoute = createRoute({ + method: 'get', + path: '', + request: { + query: BasePaginateQuerySchema, + }, + responses: { + 200: { + description: 'Success', + content: { + 'application/json': { + schema: BasePaginationSchema(queryAlbumSchema), + }, + }, + }, + }, +}) + +// 实现获取列表路由 +albumRouter.openapi(listAlbumsRoute, async (c) => { + const { page, pageSize } = c.req.valid('query') + + const data = await dbClientInWorker(c.env.DATABASE_URL) + .select() + .from(albumsTableSchema) + .offset((page) * pageSize) + + // 查询总数 + const totalResult = await dbClientInWorker(c.env.DATABASE_URL).select({ count: count() }).from(albumsTableSchema) + const total = Number(totalResult[0].count) + + return c.json({ + code: 200, + list: data, + total, + page, + pageSize, + totalPages: Math.ceil(total / pageSize), + msg: '获取专辑列表成功', + }) +}) + +export { albumRouter } diff --git a/apps/api/src/module/albums/schema.ts b/apps/api/src/module/albums/schema.ts new file mode 100644 index 0000000..49bfcf2 --- /dev/null +++ b/apps/api/src/module/albums/schema.ts @@ -0,0 +1,111 @@ +import { z } from '@hono/zod-openapi' +import { createAlbumSchema, selectAlbumSchema } from '@/db/schema/album.schema' + +// 更新专辑 Schema +export const updateAlbumSchema = createAlbumSchema + .extend({ + title: z.string().openapi({ + description: 'Album title', + example: 'Greatest Hits', + }), + artist: z.string().openapi({ + description: 'Artist name', + example: 'John Doe', + }), + description: z.string().nullable().openapi({ + description: 'Album description', + example: 'The best album of the year', + }), + coverUrl: z.string().nullable().openapi({ + description: 'Album cover URL', + example: 'https://example.com/cover.jpg', + }), + releaseDate: z.date().nullable().openapi({ + description: 'Release date', + example: '2024-03-20', + }), + genre: z.string().nullable().openapi({ + description: 'Music genre', + example: 'Rock', + }), + label: z.string().nullable().openapi({ + description: 'Record label', + example: 'Universal Music', + }), + totalTracks: z.number().openapi({ + description: 'Total number of tracks', + example: 12, + }), + playCount: z.number().openapi({ + description: 'Total play count', + example: 1000000, + }), + likeCount: z.number().openapi({ + description: 'Total likes', + example: 50000, + }), + isPublished: z.boolean().openapi({ + description: 'Publication status', + example: true, + }), + }) + .openapi('Album') + +export const queryAlbumSchema = selectAlbumSchema.pick({ id: true }).extend({ + id: z + .string() + .uuid() + .openapi({ param: { name: 'id', in: 'path' } }), + title: z.string().optional().openapi({ + description: 'Album title', + example: 'Greatest Hits', + }), + artist: z.string().optional().openapi({ + description: 'Artist name', + example: 'John Doe', + }), + description: z.string().nullable().openapi({ + description: 'Album description', + example: 'The best album of the year', + }), + coverUrl: z.string().optional().nullable().openapi({ + description: 'Album cover URL', + example: 'https://example.com/cover.jpg', + }), + releaseDate: z.date().optional().nullable().openapi({ + description: 'Release date', + example: '2024-03-20', + }), + genre: z.string().optional().nullable().openapi({ + description: 'Music genre', + example: 'Rock', + }), + label: z.string().optional().nullable().openapi({ + description: 'Record label', + example: 'Universal Music', + }), + totalTracks: z.number().optional().nullable().openapi({ + description: 'Total number of tracks', + example: 12, + }), + playCount: z.number().optional().nullable().openapi({ + description: 'Total play count', + example: 1000000, + }), + likeCount: z.number().optional().nullable().openapi({ + description: 'Total likes', + example: 50000, + }), + isPublished: z.boolean().nullable().openapi({ + description: 'Publication status', + example: true, + }), + createdAt: z.date().optional().openapi({ + description: 'Creation date', + example: '2024-03-20', + }), + updatedAt: z.date().optional().openapi({ + description: 'Update date', + example: '2024-03-20', + }), +}) diff --git a/apps/api/src/module/auth/auth.test.ts b/apps/api/src/module/auth/auth.test.ts new file mode 100644 index 0000000..62f011c --- /dev/null +++ b/apps/api/src/module/auth/auth.test.ts @@ -0,0 +1,46 @@ +describe('auth', () => { + it('should register a new user', async () => { + const response = await fetch('http://localhost:8787/api/auth/register', { + method: 'POST', + body: JSON.stringify({ + email: 'test@example.com', + password: 'password', + }), + }) + expect(response.status).toBe(200) + expect(response.json()).resolves.toEqual({ + status: 'ok', + message: 'Register successful', + }) + }) + it('should login a user', async () => { + const response = await fetch('http://localhost:8787/api/auth/login', { + method: 'POST', + body: JSON.stringify({ + email: 'test@example.com', + password: 'password', + }), + }) + expect(response.status).toBe(200) + expect(response.json()).resolves.toEqual({ + status: 'ok', + message: 'Login successful', + }) + }) + it('should logout a user', async () => { + const response = await fetch('http://localhost:8787/api/auth/logout', { + method: 'POST', + }) + expect(response.status).toBe(200) + + const responseBody = await response.json() + console.log('responseBody: ', responseBody) + expect(responseBody).toEqual({ + status: 'ok', + headers: { + 'Set-Cookie': 'token=;Max-Age=0; Path=/; HttpOnly; SameSite=Strict; Secure', + }, + message: 'Logout successful', + }) + }) +}) diff --git a/apps/api/src/module/auth/auth.ts b/apps/api/src/module/auth/auth.ts new file mode 100644 index 0000000..14e2425 --- /dev/null +++ b/apps/api/src/module/auth/auth.ts @@ -0,0 +1,235 @@ +import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi' +import { deleteCookie, getCookie, setCookie } from 'hono/cookie' +import { eq } from 'drizzle-orm' +import { sign } from 'hono/jwt' +import { HTTPException } from 'hono/http-exception' +import { dbClientInWorker } from '../../db/client.serverless' +import { comparePassword, hashPassword } from '../../lib/crypto' +import { AuthResponseSchema, LoginSchema, RegisterSchema } from './schema' +import { users } from '@/db/schema/users.schema' + +const authRouter = new OpenAPIHono() + +const loginRoute = createRoute({ + method: 'post', + path: '/login', + tags: ['Authentication'], + summary: 'User login', + description: 'Authenticate a user with email and password', + request: { + body: { + content: { + 'application/json': { + schema: LoginSchema, + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: AuthResponseSchema.success.extend({ + token: z.string().openapi({ + description: 'JWT token for authentication', + example: 'eyJhbGciOiJIUzI1NiIs...', + }), + }), + }, + }, + description: 'Login successful', + }, + 401: { + content: { + 'application/json': { + schema: AuthResponseSchema.error, + }, + }, + description: 'Invalid credentials', + }, + }, +}) + +const registerRoute = createRoute({ + method: 'post', + path: '/register', + tags: ['Authentication'], + summary: 'User registration', + description: 'Register a new user account', + request: { + body: { + content: { + 'application/json': { + schema: RegisterSchema, + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ + code: z.number().openapi({ + description: 'Response status code', + example: 200, + }), + msg: z.string().openapi({ + description: 'Response message', + example: 'Register success', + }), + user: z + .object({ + id: z.string(), + email: z.string(), + username: z.string().optional(), + name: z.string().optional(), + createdAt: z.string(), + updatedAt: z.string(), + }) + .openapi({ + description: 'Registered user information', + }), + }), + }, + }, + description: 'Registration successful', + }, + 400: { + content: { + 'application/json': { + schema: z.object({ + code: z.number().openapi({ + description: 'Error code', + example: 400, + }), + msg: z.string().openapi({ + description: 'Error message', + example: 'Email already exists', + }), + }), + }, + }, + description: 'Invalid registration data or email already exists', + }, + }, +}) + +const logoutRoute = createRoute({ + method: 'post', + path: '/logout', + tags: ['Authentication'], + summary: 'User logout', + description: 'Logout current user and invalidate session', + security: [{ BearerAuth: [] }], + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ + code: z.number().openapi({ + description: 'Response status code', + example: 200, + }), + msg: z.string().openapi({ + description: 'Response message', + example: 'Logout success', + }), + }), + }, + }, + description: 'Logout successful', + }, + }, +}) + +authRouter.openapi(loginRoute, async (c) => { + const { email, password } = c.req.valid('json') + + const [user] = await dbClientInWorker(c.env.DATABASE_URL).select().from(users).where(eq(users.email, email)) + + if (!user) { + throw new HTTPException(401, { message: 'Invalid email or password' }) + } + + const isValidPassword = comparePassword(password, user.password) + if (!isValidPassword) { + throw new HTTPException(401, { message: 'Invalid email or password' }) + } + + const token = await sign({ sub: user.id }, c.env.JWT_SECRET) + setCookie(c, c.env.COOKIE_KEY, token, { + secure: true, + httpOnly: true, + sameSite: 'Lax', + }) + + return c.json({ + code: 200, + msg: 'Login success', + token, + }) +}) + +authRouter.openapi(registerRoute, async (c) => { + const data = c.req.valid('json') + + const [existingUser] = await dbClientInWorker(c.env.DATABASE_URL) + .select() + .from(users) + .where(eq(users.email, data.email)) + + if (existingUser) { + return c.json( + { + code: 400, + msg: 'Email already exists', + }, + 400, + ) + } + + const hashedPassword = hashPassword(data.password) + const [dbUser] = await dbClientInWorker(c.env.DATABASE_URL) + .insert(users) + .values({ + ...data, + status: 'active', + role: 'user', + amount: '0', + password: hashedPassword, + }) + .returning() + + // 转换用户数据以匹配 schema 定义 + const user = { + id: dbUser.id, + email: dbUser.email, + username: dbUser.username || undefined, + name: dbUser.name || undefined, + createdAt: dbUser.createdAt.toISOString(), + updatedAt: dbUser.updatedAt.toISOString(), + } + + return c.json( + { + code: 200, + msg: 'Register success', + user, + }, + 200, + ) +}) + +authRouter.openapi(logoutRoute, async (c) => { + const token = getCookie(c, c.env.COOKIE_KEY) + if (token) { + deleteCookie(c, c.env.COOKIE_KEY) + } + return c.json({ + code: 200, + msg: 'Logout success', + }) +}) + +export { authRouter } diff --git a/apps/api/src/module/auth/schema.ts b/apps/api/src/module/auth/schema.ts new file mode 100644 index 0000000..1b1ff19 --- /dev/null +++ b/apps/api/src/module/auth/schema.ts @@ -0,0 +1,60 @@ +import { z } from '@hono/zod-openapi' + +// 定义登录请求 Schema +export const LoginSchema = z + .object({ + email: z.string().email().openapi({ + description: "User's email", + example: 'user@example.com', + }), + password: z.string().min(1).openapi({ + description: "User's password", + example: 'password123', + }), + }) + .openapi('Login') + +// 定义注册请求 Schema +export const RegisterSchema = z + .object({ + email: z.string().email().openapi({ + description: "User's email", + example: 'user@example.com', + }), + password: z.string().min(6).openapi({ + description: "User's password", + example: 'password123', + }), + username: z.string().optional().openapi({ + description: "User's username", + example: 'johndoe', + }), + name: z.string().optional().openapi({ + description: "User's full name", + example: 'John Doe', + }), + }) + .openapi('Register') + +export const AuthResponseSchema = { + success: z.object({ + code: z.number().openapi({ + description: 'Response status code', + example: 200, + }), + msg: z.string().openapi({ + description: 'Response message', + example: 'Success', + }), + }), + error: z.object({ + code: z.number().openapi({ + description: 'Error code', + example: 400, + }), + msg: z.string().openapi({ + description: 'Error message', + example: 'Error occurred', + }), + }), +} diff --git a/apps/api/src/module/tasks/enums.ts b/apps/api/src/module/tasks/enums.ts new file mode 100644 index 0000000..82a4d20 --- /dev/null +++ b/apps/api/src/module/tasks/enums.ts @@ -0,0 +1,14 @@ +import { z } from 'zod' + +export const TaskStatusEnum = ['TODO', 'IN_PROGRESS', 'DONE', 'CANCELLED'] as const + +export const TaskStatusEnumSchema = z.enum(TaskStatusEnum) +export type TaskStatusType = z.infer + +export const TaskPriorityEnum = ['LOW', 'MEDIUM', 'HIGH', 'URGENT'] as const +export const TaskPriorityEnumSchema = z.enum(TaskPriorityEnum) +export type TaskPriorityType = z.infer + +export const TaskLabelEnum = ['BUG', 'FEATURE', 'IMPROVEMENT', 'DOCUMENTATION'] as const +export const TaskLabelEnumSchema = z.enum(TaskLabelEnum) +export type TaskLabelType = z.infer diff --git a/apps/api/src/module/tasks/schema.ts b/apps/api/src/module/tasks/schema.ts new file mode 100644 index 0000000..a8f1a41 --- /dev/null +++ b/apps/api/src/module/tasks/schema.ts @@ -0,0 +1,108 @@ +import { z } from '@hono/zod-openapi' +import { TaskStatusEnumSchema, TaskPriorityEnumSchema, TaskLabelEnumSchema } from '@/module/tasks/enums' + +// Query Parameters Schema +export const QuerySchema = z.object({ + page: z + .string() + .optional() + .openapi({ + param: { + name: 'page', + in: 'query', + }, + description: 'Page number', + example: '1', + }), + pageSize: z + .string() + .optional() + .openapi({ + param: { + name: 'pageSize', + in: 'query', + }, + description: 'Items per page', + example: '10', + }), + status: TaskStatusEnumSchema.optional().openapi({ + param: { + name: 'status', + in: 'query', + }, + description: 'Filter by status', + }), + priority: TaskPriorityEnumSchema.optional().openapi({ + param: { + name: 'priority', + in: 'query', + }, + description: 'Filter by priority', + }), +}) + +// Route Parameters Schema +export const ParamsSchema = z.object({ + id: z + .string() + .uuid() + .openapi({ + param: { + name: 'id', + in: 'path', + }, + example: '123e4567-e89b-12d3-a456-426614174000', + }), +}) + +// Add this new schema after the existing schemas +export const createTaskSchema = z.object({ + title: z.string().openapi({ + description: 'Task title', + example: 'Implement new feature', + }), + status: TaskStatusEnumSchema.optional().openapi({ + description: 'Task status', + example: 'TODO', + }), + label: TaskLabelEnumSchema.optional().openapi({ + description: 'Task label', + example: 'FEATURE', + }), + priority: TaskPriorityEnumSchema.optional().openapi({ + description: 'Task priority', + example: 'MEDIUM', + }), +}) + +// You can also add a response schema if needed +export const taskResponseSchema = z.object({ + id: z.string().uuid().openapi({ + description: 'Task ID', + example: '123e4567-e89b-12d3-a456-426614174000', + }), + title: z.string().openapi({ + description: 'Task title', + example: 'Implement new feature', + }), + status: TaskStatusEnumSchema.openapi({ + description: 'Task status', + example: 'TODO', + }), + label: TaskLabelEnumSchema.openapi({ + description: 'Task label', + example: 'FEATURE', + }), + priority: TaskPriorityEnumSchema.openapi({ + description: 'Task priority', + example: 'MEDIUM', + }), + createdAt: z.string().datetime().openapi({ + description: 'Task creation timestamp', + example: '2024-03-15T10:00:00Z', + }), + updatedAt: z.string().datetime().openapi({ + description: 'Task last update timestamp', + example: '2024-03-15T10:00:00Z', + }), +}) diff --git a/apps/api/src/module/tasks/tasks.ts b/apps/api/src/module/tasks/tasks.ts new file mode 100644 index 0000000..04ba81f --- /dev/null +++ b/apps/api/src/module/tasks/tasks.ts @@ -0,0 +1,239 @@ +import { OpenAPIHono, createRoute } from '@hono/zod-openapi' +import { dbClientInWorker } from '@/db/client.serverless' +import { count, eq } from 'drizzle-orm' +import { createTaskSchema, ParamsSchema } from './schema' + +import { + BaseDetailSchema, + BaseErrorSchema, + BasePaginationSchema, + BasePaginateQuerySchema, + BaseSuccessSchema, +} from '@/schema/base' +import { selectTaskSchema, tasks } from '@/db/schema/tasks.schema' + +const taskRouter = new OpenAPIHono() + +// 获取任务列表路由 +const listTasksRoute = createRoute({ + method: 'get', + path: '', + tags: ['Tasks'], + summary: 'Get task list', + description: 'Retrieve a paginated list of tasks with optional status and priority filters', + request: { + query: BasePaginateQuerySchema.merge(selectTaskSchema.partial()), + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BasePaginationSchema(createTaskSchema), + }, + }, + description: 'Successfully retrieved tasks', + }, + }, +}) + +// 创建任务路由 +const createTaskRoute = createRoute({ + method: 'post', + path: '', + tags: ['Tasks'], + summary: 'Create new task', + description: 'Create a new task with the provided information', + request: { + body: { + content: { + 'application/json': { + schema: createTaskSchema, + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BaseDetailSchema(selectTaskSchema), + }, + }, + description: 'Task created successfully', + }, + 400: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'Invalid input', + }, + }, +}) + +// 更新任务路由 +const updateTaskRoute = createRoute({ + method: 'put', + path: '/{id}', + tags: ['Tasks'], + summary: 'Update task', + description: 'Update an existing task by ID', + request: { + params: ParamsSchema, + body: { + content: { + 'application/json': { + schema: createTaskSchema.partial(), + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BaseSuccessSchema, + }, + }, + description: 'Task updated successfully', + }, + 404: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'Task not found', + }, + }, +}) + +// 删除任务路由 +const deleteTaskRoute = createRoute({ + method: 'delete', + path: '/{id}', + tags: ['Tasks'], + summary: 'Delete task', + description: 'Delete an existing task by ID', + request: { + params: ParamsSchema, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BaseSuccessSchema, + }, + }, + description: 'Task deleted successfully', + }, + 404: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'Task not found', + }, + }, +}) + +// 实现获取任务列表 +taskRouter.openapi(listTasksRoute, async (c) => { + const { page, pageSize } = c.req.valid('query') + + const db = dbClientInWorker(c.env.DATABASE_URL) + const data = await db + .select() + .from(tasks) + .offset((page) * pageSize) + const totalResult = await db.select({ count: count() }).from(tasks) + + return c.json({ + code: 200, + msg: 'Get task list success', + list: data, + total: Number(totalResult[0].count), + page, + pageSize, + totalPages: Math.ceil(Number(totalResult[0].count) / pageSize), + }) +}) + +// 实现创建任务 +taskRouter.openapi(createTaskRoute, async (c) => { + const data = c.req.valid('json') + + const [task] = await dbClientInWorker(c.env.DATABASE_URL) + .insert(tasks) + .values({ + ...data, + }) + .returning() + + return c.json( + { + code: 200, + msg: 'Create task success', + data: task, + }, + 200, + ) +}) + +taskRouter.openapi(updateTaskRoute, async (c) => { + const { id } = c.req.valid('param') + const updateData = c.req.valid('json') + + const [existingTask] = await dbClientInWorker(c.env.DATABASE_URL).select().from(tasks).where(eq(tasks.id, id)) + + if (!existingTask) { + return c.json( + { + code: 404, + msg: 'Task not found', + }, + 404, + ) + } + + await dbClientInWorker(c.env.DATABASE_URL) + .update(tasks) + .set({ + ...updateData, + updatedAt: new Date(), + }) + .where(eq(tasks.id, id)) + + return c.json({ + code: 200, + msg: 'Update task success', + }) +}) + +// 实现删除任务 +taskRouter.openapi(deleteTaskRoute, async (c) => { + const { id } = c.req.valid('param') + + const [existingTask] = await dbClientInWorker(c.env.DATABASE_URL).select().from(tasks).where(eq(tasks.id, id)) + + if (!existingTask) { + return c.json( + { + code: 404, + msg: 'Task not found', + }, + 404, + ) + } + + await dbClientInWorker(c.env.DATABASE_URL).delete(tasks).where(eq(tasks.id, id)) + + return c.json({ + code: 200, + msg: 'Delete task success', + }) +}) + +export { taskRouter } diff --git a/apps/api/src/module/users/schema.ts b/apps/api/src/module/users/schema.ts new file mode 100644 index 0000000..18eb6b6 --- /dev/null +++ b/apps/api/src/module/users/schema.ts @@ -0,0 +1,128 @@ +import { z } from '@hono/zod-openapi' + +import { selectUserSchema } from '@/db/schema/users.schema' + +// 定义查询参数 Schema +export const SearchQuerySchema = selectUserSchema.extend({ + id: z + .string() + .uuid() + .optional() + .openapi({ + param: { + name: 'id', + in: 'query', + }, + description: 'User ID', + example: '123e4567-e89b-12d3-a456-426614174000', + }), + email: z + .string() + .optional() + .openapi({ + param: { + name: 'email', + in: 'query', + }, + description: 'User email', + example: 'john@example.com', + }), + username: z + .string() + .optional() + .openapi({ + param: { + name: 'username', + in: 'query', + }, + description: 'Username', + example: 'johndoe', + }), + status: z + .string() + .optional() + .openapi({ + param: { + name: 'status', + in: 'query', + }, + description: 'User status', + example: 'active', + }), + role: z + .string() + .optional() + .openapi({ + param: { + name: 'role', + in: 'query', + }, + description: 'User role', + example: 'user', + }), +}) + +// 定义更新用户 Schema +export const UpdateUserSchema = selectUserSchema + .partial() + .pick({ + name: true, + avatar: true, + birthdate: true, + bio: true, + username: true, + }) + .extend({ + name: z.string().optional().openapi({ + description: "User's name", + example: 'John Doe', + }), + avatar: z.string().optional().openapi({ + description: "User's avatar URL", + example: 'https://example.com/avatar.jpg', + }), + birthdate: z.string().optional().openapi({ + description: "User's birthdate", + example: '1990-01-01', + }), + bio: z.string().optional().openapi({ + description: "User's biography", + example: 'A software developer', + }), + username: z.string().optional().openapi({ + description: "User's username", + example: 'johndoe', + }), + }) + .openapi('UpdateUser') + +// 定义路由参数 Schema +export const ParamsSchema = selectUserSchema.pick({ id: true }).extend({ + id: z + .string() + .uuid() + .openapi({ + param: { + name: 'id', + in: 'path', + }, + example: '123e4567-e89b-12d3-a456-426614174000', + }), +}) + +// 定义用户响应 Schema +export const UserResponseSchema = selectUserSchema + .extend({ + id: z.string(), + email: z.string(), + name: z.string().nullable(), + avatar: z.string().nullable(), + username: z.string().nullable(), + status: z.string(), + role: z.string(), + bio: z.string().nullable(), + amount: z.string(), + createdAt: z.string(), + updatedAt: z.string(), + }) + .openapi('User') diff --git a/apps/api/src/module/users/users.ts b/apps/api/src/module/users/users.ts new file mode 100644 index 0000000..76ee6c8 --- /dev/null +++ b/apps/api/src/module/users/users.ts @@ -0,0 +1,344 @@ +import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi' +import { dbClientInWorker } from '../../db/client.serverless' +import { eq } from 'drizzle-orm' +import { UpdateUserSchema, ParamsSchema, UserResponseSchema, SearchQuerySchema } from './schema' +import { count } from 'drizzle-orm' +import { BaseDetailSchema, BaseErrorSchema, BasePaginationSchema, BasePaginateQuerySchema } from '@/schema/base' +import { users } from '@/db/schema/users.schema' + +const userRouter = new OpenAPIHono() + +const getUsersRoute = createRoute({ + method: 'get', + path: '', + tags: ['Users'], + summary: 'Get users list', + description: 'Retrieve a paginated list of users with optional search query', + request: { + query: BasePaginateQuerySchema.merge(SearchQuerySchema.partial()), + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BasePaginationSchema(UserResponseSchema), + }, + }, + description: 'Successfully retrieved users list', + }, + }, +}) + +// 修改获取用户信息的路由配置 +const getUserInfoRoute = createRoute({ + method: 'get', + path: '/info', + tags: ['Users'], + summary: 'Get user info', + description: "Retrieve the current user's information", + security: [{ Bearer: [] }], + responses: { + 200: { + content: { + 'application/json': { + schema: BaseDetailSchema(UserResponseSchema), + }, + }, + description: 'Successfully retrieved user info', + }, + 404: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'User not found', + }, + }, +}) + +// 修改获取指定用户的路由配置 +const getUserByIdRoute = createRoute({ + method: 'get', + path: '/{id}', + tags: ['Users'], + summary: 'Get user by id', + description: 'Retrieve a user by their ID', + request: { + params: ParamsSchema, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: BaseDetailSchema(UserResponseSchema), + }, + }, + description: 'Successfully retrieved user', + }, + 400: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'Bad request', + }, + 404: { + content: { + 'application/json': { + schema: BaseErrorSchema, + }, + }, + description: 'User not found', + }, + }, +}) + +userRouter.openapi(getUsersRoute, async (c) => { + const { page, pageSize } = c.req.valid('query') + + const allUsers = await dbClientInWorker(c.env.DATABASE_URL) + .select() + .from(users) + .offset(page * pageSize) + .limit(pageSize) + + const totalResult = await dbClientInWorker(c.env.DATABASE_URL).select({ count: count() }).from(users) + const total = Number(totalResult[0].count) + + return c.json({ + code: 200, + list: allUsers, + msg: 'Get user list success', + total, + page: Number(page), + pageSize: Number(pageSize), + totalPages: Math.ceil(total / pageSize), + }) +}) + +userRouter.openapi(getUserInfoRoute, async (c) => { + const payload = c.get('jwtPayload') + + const [user] = await dbClientInWorker(c.env.DATABASE_URL) + .select({ + id: users.id, + email: users.email, + password: users.password, + name: users.name, + username: users.username, + avatar: users.avatar, + birthdate: users.birthdate, + registeredAt: users.registeredAt, + createdAt: users.createdAt, + updatedAt: users.updatedAt, + status: users.status, + role: users.role, + bio: users.bio, + amount: users.amount, + }) + .from(users) + .where(eq(users.id, payload.sub)) + + if (!user) { + return c.json( + { + code: 404, + msg: 'User not found', + data: null, + }, + 404, + ) + } + + return c.json( + { + code: 200, + msg: 'Get user info success', + data: { + ...user, + birthdate: user.birthdate?.toString() ?? null, + registeredAt: user.registeredAt.toISOString(), + createdAt: user.createdAt.toISOString(), + updatedAt: user.updatedAt.toISOString(), + amount: user.amount?.toString() ?? '0', + }, + }, + 200, + ) +}) + +userRouter.openapi(getUserByIdRoute, async (c) => { + const { id } = c.req.valid('param') + + const [user] = await dbClientInWorker(c.env.DATABASE_URL) + .select({ + id: users.id, + email: users.email, + password: users.password, + name: users.name, + username: users.username, + avatar: users.avatar, + birthdate: users.birthdate, + registeredAt: users.registeredAt, + bio: users.bio, + role: users.role, + amount: users.amount, + status: users.status, + createdAt: users.createdAt, + updatedAt: users.updatedAt, + }) + .from(users) + .where(eq(users.id, id)) + + if (!user) { + return c.json( + { + code: 404, + msg: 'User not found', + data: null, + }, + 404, + ) + } + + return c.json( + { + code: 200, + msg: 'Get user success', + data: { + ...user, + birthdate: user.birthdate?.toString() ?? null, + registeredAt: user.registeredAt.toISOString(), + createdAt: user.createdAt.toISOString(), + updatedAt: user.updatedAt.toISOString(), + amount: user.amount?.toString() ?? '0', + }, + }, + 200, + ) +}) + +const updateUserRoute = createRoute({ + method: 'put', + path: '/{id}', + tags: ['Users'], + summary: 'Update user', + description: "Update a user's information", + request: { + params: ParamsSchema, + body: { + content: { + 'application/json': { + schema: UpdateUserSchema, + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ + code: z.number(), + msg: z.string(), + }), + }, + }, + description: 'User updated successfully', + }, + 400: { + content: { + 'application/json': { + schema: z.object({ + code: z.number(), + msg: z.string(), + }), + }, + }, + description: 'Invalid request', + }, + }, +}) + +userRouter.openapi(updateUserRoute, async (c) => { + const { id } = c.req.valid('param') + const updateData = c.req.valid('json') + + await dbClientInWorker(c.env.DATABASE_URL) + .update(users) + .set({ + ...updateData, + updatedAt: new Date(), + }) + .where(eq(users.id, id)) + + return c.json({ + code: 200, + msg: 'Update user success', + }) +}) + +// 添加删除用户的路由配置 +const deleteUserRoute = createRoute({ + method: 'delete', + path: '/{id}', + tags: ['Users'], + summary: 'Delete user', + description: 'Delete a user by their ID', + request: { + params: ParamsSchema, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: z.object({ + code: z.number(), + msg: z.string(), + }), + }, + }, + description: 'User deleted successfully', + }, + 404: { + content: { + 'application/json': { + schema: z.object({ + code: z.number(), + msg: z.string(), + }), + }, + }, + description: 'User not found', + }, + }, +}) + +// 实现删除用户路由 +userRouter.openapi(deleteUserRoute, async (c) => { + const { id } = c.req.valid('param') + + const [existingUser] = await dbClientInWorker(c.env.DATABASE_URL).select().from(users).where(eq(users.id, id)) + + if (!existingUser) { + return c.json( + { + code: 404, + msg: 'User not found', + data: null, + }, + 404, + ) + } + + await dbClientInWorker(c.env.DATABASE_URL).delete(users).where(eq(users.id, id)) + + return c.json({ + code: 200, + msg: 'Delete user success', + }) +}) + +export { userRouter } diff --git a/apps/api/src/schema/base.ts b/apps/api/src/schema/base.ts new file mode 100644 index 0000000..6986cf0 --- /dev/null +++ b/apps/api/src/schema/base.ts @@ -0,0 +1,74 @@ +import { z } from '@hono/zod-openapi' + +// 基础成功响应 Schema +export const BaseSuccessSchema = z.object({ + code: z.number().openapi({ + description: 'Response status code', + example: 200, + }), + msg: z.string().optional().openapi({ + description: 'Response message', + example: 'Success', + }), +}) +export type BaseSuccessSchemaType = z.infer + +// 基础错误响应 Schema +export const BaseErrorSchema = z.object({ + code: z.number().openapi({ + description: 'Error code', + example: 400, + }), + msg: z.string().openapi({ + description: 'Error message', + example: 'Error occurred', + }), + data: z.null().optional(), +}) +export type BaseErrorSchemaType = z.infer + +// 基础详情响应 Schema +export const BaseDetailSchema = (dataSchema: T) => + BaseSuccessSchema.extend({ + data: dataSchema, + }) + +export type BaseDetailSchemaType = z.infer>> + +// 基础分页响应 Schema +export const BasePaginationSchema = (dataSchema: T) => + BaseSuccessSchema.extend({ + list: z.array(dataSchema), + total: z.number(), + page: z.number(), + pageSize: z.number(), + totalPages: z.number(), + }) +export type BasePaginationSchemaType = z.infer>> + +export const BasePaginateQuerySchema = z.object({ + page: z.coerce + .number() + .optional() + .openapi({ + param: { + name: 'page', + in: 'query', + }, + description: 'Page number', + example: 1, + }) + .default(0), + pageSize: z.coerce + .number() + .optional() + .openapi({ + param: { + name: 'pageSize', + in: 'query', + }, + description: 'Items per page', + example: 10, + }) + .default(10), +}) diff --git a/apps/api/src/types/types.d.ts b/apps/api/src/types/types.d.ts new file mode 100644 index 0000000..fba293d --- /dev/null +++ b/apps/api/src/types/types.d.ts @@ -0,0 +1,28 @@ +import type { TimingVariables } from 'hono/timing' +import type { RequestIdVariables } from 'hono/request-id' +import type { JwtVariables } from 'hono/jwt' + +export type Bindings = { + COOKIE_KEY: string + DATABASE_URL: string + JWT_SECRET: string +} + +export interface IPayload { + sub: string + role: string + exp: number +} + +export type JwtPayload = IPayload +declare global { + interface HonoEnvType { + Bindings: Bindings + Variables: RequestIdVariables & TimingVariables & JwtVariables + } + namespace NodeJS { + interface ProcessEnv { + DATABASE_URL: string + } + } +} diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json new file mode 100644 index 0000000..6be6011 --- /dev/null +++ b/apps/api/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "skipLibCheck": true, + "lib": ["ESNext"], + "types": ["vitest/globals", "node", "@cloudflare/vitest-pool-workers", "@cloudflare/workers-types/2023-07-01"], + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx", + "esModuleInterop": true, + "baseUrl": ".", + // "noErrorTruncation": true, + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src"] +} diff --git a/apps/api/vitest.config.ts b/apps/api/vitest.config.ts new file mode 100644 index 0000000..eaf2c72 --- /dev/null +++ b/apps/api/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + globals: true, + poolOptions: { + workers: { + wrangler: { configPath: './wrangler.toml' }, + }, + }, + }, +}) diff --git a/apps/api/wrangler.toml b/apps/api/wrangler.toml new file mode 100644 index 0000000..f295df8 --- /dev/null +++ b/apps/api/wrangler.toml @@ -0,0 +1,25 @@ +name = "mock-service" +compatibility_date = "2024-09-12" +compatibility_flags = ["nodejs_compat_v2"] + + +# [[kv_namespaces]] +# binding = "MY_KV_NAMESPACE" +# id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + +# [[r2_buckets]] +# binding = "MY_BUCKET" +# bucket_name = "my-bucket" + +# [[d1_databases]] +# binding = "DB" +# database_name = "" +# database_id = "" + + +# [ai] +# binding = "AI" + +[observability] +enabled = true +head_sampling_rate = 1 diff --git a/apps/app/.eslintrc.json b/apps/app/.eslintrc.json new file mode 100644 index 0000000..3722418 --- /dev/null +++ b/apps/app/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/apps/app/.gitignore b/apps/app/.gitignore new file mode 100644 index 0000000..d32cc78 --- /dev/null +++ b/apps/app/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/apps/app/README.md b/apps/app/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/apps/app/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/apps/app/app/favicon.ico b/apps/app/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/apps/app/app/fonts/GeistMonoVF.woff b/apps/app/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 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ϣ%UY8`RWp~V-U_7 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 CLkb=M literal 0 HcmV?d00001 diff --git a/apps/app/app/fonts/GeistVF.woff b/apps/app/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/apps/app/app/globals.css b/apps/app/app/globals.css new file mode 100644 index 0000000..6b717ad --- /dev/null +++ b/apps/app/app/globals.css @@ -0,0 +1,21 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; +} diff --git a/apps/app/app/layout.tsx b/apps/app/app/layout.tsx new file mode 100644 index 0000000..3f43e90 --- /dev/null +++ b/apps/app/app/layout.tsx @@ -0,0 +1,36 @@ +import "./globals.css" + +import type { Metadata } from "next" +import localFont from "next/font/local" + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}) +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}) + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +} + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode +}>) { + return ( + + + {children} + + + ) +} diff --git a/apps/app/app/page.tsx b/apps/app/app/page.tsx new file mode 100644 index 0000000..b8ac2a4 --- /dev/null +++ b/apps/app/app/page.tsx @@ -0,0 +1,102 @@ +import Image from "next/image" + +export default function Home() { + return ( + + ) +} diff --git a/apps/app/next.config.ts b/apps/app/next.config.ts new file mode 100644 index 0000000..3b84f68 --- /dev/null +++ b/apps/app/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next" + +const nextConfig: NextConfig = { + /* config options here */ +} + +export default nextConfig diff --git a/apps/app/package.json b/apps/app/package.json new file mode 100644 index 0000000..7b45894 --- /dev/null +++ b/apps/app/package.json @@ -0,0 +1,26 @@ +{ + "name": "app", + "version": "0.1.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "lint": "next lint", + "start": "next start" + }, + "dependencies": { + "next": "15.0.3", + "react": "19.0.0-rc-66855b96-20241106", + "react-dom": "19.0.0-rc-66855b96-20241106" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "15.0.3", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/apps/app/postcss.config.mjs b/apps/app/postcss.config.mjs new file mode 100644 index 0000000..0dc456a --- /dev/null +++ b/apps/app/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +} + +export default config diff --git a/apps/app/public/file.svg b/apps/app/public/file.svg new file mode 100644 index 0000000..004145c --- /dev/null +++ b/apps/app/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app/public/globe.svg b/apps/app/public/globe.svg new file mode 100644 index 0000000..567f17b --- /dev/null +++ b/apps/app/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app/public/next.svg b/apps/app/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/apps/app/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app/public/vercel.svg b/apps/app/public/vercel.svg new file mode 100644 index 0000000..7705396 --- /dev/null +++ b/apps/app/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app/public/window.svg b/apps/app/public/window.svg new file mode 100644 index 0000000..b2b2a44 --- /dev/null +++ b/apps/app/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app/tailwind.config.ts b/apps/app/tailwind.config.ts new file mode 100644 index 0000000..7d2055c --- /dev/null +++ b/apps/app/tailwind.config.ts @@ -0,0 +1,18 @@ +import type { Config } from "tailwindcss" + +export default { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "var(--background)", + foreground: "var(--foreground)", + }, + }, + }, + plugins: [], +} satisfies Config diff --git a/apps/app/tsconfig.json b/apps/app/tsconfig.json new file mode 100644 index 0000000..d8b9323 --- /dev/null +++ b/apps/app/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 0000000..4cbe075 --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,32 @@ +# Mintlify Starter Kit + +Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including + +- Guide pages +- Navigation +- Customizations +- API Reference pages +- Use of popular components + +### Development + +Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command + +``` +npm i -g mintlify +``` + +Run the following command at the root of your documentation (where mint.json is) + +``` +mintlify dev +``` + +### Publishing Changes + +Install our Github App to auto propagate changes from your repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard. + +#### Troubleshooting + +- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies. +- Page loads as a 404 - Make sure you are running in a folder with `mint.json` diff --git a/apps/docs/api-reference/endpoint/create.mdx b/apps/docs/api-reference/endpoint/create.mdx new file mode 100644 index 0000000..5689f1b --- /dev/null +++ b/apps/docs/api-reference/endpoint/create.mdx @@ -0,0 +1,4 @@ +--- +title: 'Create Plant' +openapi: 'POST /plants' +--- diff --git a/apps/docs/api-reference/endpoint/delete.mdx b/apps/docs/api-reference/endpoint/delete.mdx new file mode 100644 index 0000000..657dfc8 --- /dev/null +++ b/apps/docs/api-reference/endpoint/delete.mdx @@ -0,0 +1,4 @@ +--- +title: 'Delete Plant' +openapi: 'DELETE /plants/{id}' +--- diff --git a/apps/docs/api-reference/endpoint/get.mdx b/apps/docs/api-reference/endpoint/get.mdx new file mode 100644 index 0000000..56aa09e --- /dev/null +++ b/apps/docs/api-reference/endpoint/get.mdx @@ -0,0 +1,4 @@ +--- +title: 'Get Plants' +openapi: 'GET /plants' +--- diff --git a/apps/docs/api-reference/introduction.mdx b/apps/docs/api-reference/introduction.mdx new file mode 100644 index 0000000..c835b78 --- /dev/null +++ b/apps/docs/api-reference/introduction.mdx @@ -0,0 +1,33 @@ +--- +title: 'Introduction' +description: 'Example section for showcasing API endpoints' +--- + + + If you're not looking to build API reference documentation, you can delete + this section by removing the api-reference folder. + + +## Welcome + +There are two ways to build API documentation: [OpenAPI](https://mintlify.com/docs/api-playground/openapi/setup) and [MDX components](https://mintlify.com/docs/api-playground/mdx/configuration). For the starter kit, we are using the following OpenAPI specification. + + + View the OpenAPI specification file + + +## Authentication + +All API endpoints are authenticated using Bearer tokens and picked up from the specification file. + +```json +"security": [ + { + "bearerAuth": [] + } +] +``` diff --git a/apps/docs/api-reference/openapi.json b/apps/docs/api-reference/openapi.json new file mode 100644 index 0000000..9c27d79 --- /dev/null +++ b/apps/docs/api-reference/openapi.json @@ -0,0 +1,195 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "OpenAPI Plant Store", + "description": "A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification", + "license": { + "name": "MIT" + }, + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://sandbox.mintlify.com" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/plants": { + "get": { + "description": "Returns all plants from the system that the user has access to", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Plant response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plant" + } + } + } + } + }, + "400": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "post": { + "description": "Creates a new plant in the store", + "requestBody": { + "description": "Plant to add to the store", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewPlant" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "plant response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plant" + } + } + } + }, + "400": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/plants/{id}": { + "delete": { + "description": "Deletes a single plant based on the ID supplied", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of plant to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Plant deleted", + "content": {} + }, + "400": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Plant": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the plant", + "type": "string" + }, + "tag": { + "description": "Tag to specify the type", + "type": "string" + } + } + }, + "NewPlant": { + "allOf": [ + { + "$ref": "#/components/schemas/Plant" + }, + { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Identification number of the plant", + "type": "integer", + "format": "int64" + } + } + } + ] + }, + "Error": { + "required": [ + "error", + "message" + ], + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer" + } + } + } +} diff --git a/apps/docs/deploying/deploy.mdx b/apps/docs/deploying/deploy.mdx new file mode 100644 index 0000000..1a1952f --- /dev/null +++ b/apps/docs/deploying/deploy.mdx @@ -0,0 +1,58 @@ +# Deploy + +## Deploy with Vercel + + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FTinsFox%2Fshadcnui-boilerplate&env=VITE_APP_NAME,VITE_API_URL,VITE_ENABLE_DEVTOOLS,VITE_EDITOR,VITE_ENABLE_MOCK) + +## Deploy with Docker + +The project includes [dockerfile](https://github.com/TinsFox/shadcnui-boilerplate/blob/main/Dockerfile) and [Nginx Conf](https://github.com/TinsFox/shadcnui-boilerplate/blob/main/docker/nginx.conf) + +1. Build image + +```bash +docker build -t shadcnui-boilerplate . +``` + +2. Run container + +```bash +docker run -d -p 80:80 --name shadcnui-boilerplate shadcnui-boilerplate +``` + +::: details Why have your own Nginx Conf? + +If you have multiple applications that need to be connected to different clients, each of them may need to handle cross-domain issues, which can be very slow and may not be updated in time. + +If you have such needs, you can refer to the following configuration file and modify it. After verification, this configuration file is available. + +```nginx{12-20} +server { + listen 80; + server_name localhost; + + client_max_body_size 1G; // Here, a larger value is set to allow file uploads, avoiding upload failures + + location / { + root /app/dist; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + location /api/ { + proxy_pass http://backend:3000; // Modify according to actual conditions + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} +``` + diff --git a/apps/docs/deploying/docker.mdx b/apps/docs/deploying/docker.mdx new file mode 100644 index 0000000..74db303 --- /dev/null +++ b/apps/docs/deploying/docker.mdx @@ -0,0 +1,15 @@ +# Deploy with Docker + +## Docker + +1. Build Docker image, dockerfile is in the root of the project + +```bash +docker build -t shadcnui-boilerplate . +``` + +2. Run Docker container + +```bash +docker run -p 3000:80 shadcnui-boilerplate +``` diff --git a/apps/docs/development/admin/configuring/environment-variables.mdx b/apps/docs/development/admin/configuring/environment-variables.mdx new file mode 100644 index 0000000..1aadc4e --- /dev/null +++ b/apps/docs/development/admin/configuring/environment-variables.mdx @@ -0,0 +1,16 @@ +# Environment Variables + +- `.env.local` is the environment variable for local development +- `.env` is the environment variable for production + +`.env.*` files can configure the following environment variables: + +| Variable Name | Description | Default Value | Remarks | +| --- | --- | --- | --- | +| VITE_APP_NAME | Application Name | Vite Boilerplate | | +| VITE_API_URL | API URL | http://localhost:5173/ | | +| VITE_ENABLE_DEVTOOLS | Enable DevTools | false | | +| VITE_EDITOR | Editor | cursor | [click-to-component](https://github.com/ericclemmons/click-to-component) | +| VITE_ENABLE_MOCK | Enable Mock | true | | +| VITE_API_URL | API URL | http://localhost:5173/ | | +| VITE_ENABLE_MOCK | Enable Mock | true | | diff --git a/apps/docs/development/admin/data-fetching/data-fetching.mdx b/apps/docs/development/admin/data-fetching/data-fetching.mdx new file mode 100644 index 0000000..755f7e4 --- /dev/null +++ b/apps/docs/development/admin/data-fetching/data-fetching.mdx @@ -0,0 +1,115 @@ +--- +title: Data Fetching +description: 'Learn how to fetch data in the Admin Panel' +--- + +- Use [`ofetch`](https://github.com/unjs/ofetch) to fetch data + +- Use [`@tanstack/react-query`](https://tanstack.com/query/latest/docs/framework/react/overview) to manage server data + +## Fetching Data + +### Using `useQuery` to fetch data + +- Directly use + +```tsx +// src/pages/post.tsx +// define fetcher +const fetcher = (url: string) => ofetch(url, { method: 'GET' }); + +// use `useQuery` to fetch data +const { data, isLoading, isError, error } = useQuery({ queryKey: ['posts'], queryFn: fetcher }); + +// usage +// pages/post.tsx +export function Component() { + const { data, isLoading, isError, error } = usePosts(); + + return
{data.title}
; +} +``` + +- Custom hook (Recommended) + +Because react-query will cache data, I don't know when it will be used multiple times, so I like to manage all of them with custom hooks +(Single Source of Truth?) + +```ts +// hooks/query/use-posts.ts +// define fetcher +const fetcher = (url: string) => ofetch(url, { method: 'GET' }); + +// use `useQuery` to fetch data +export function usePosts() { + const { data, isLoading, isError, error } = useQuery({ queryKey: ['posts'], queryFn: fetcher }); + + return { data, isLoading, isError, error }; +} + +// usage +// pages/post.tsx +export function Component() { + const { data, isLoading, isError, error } = usePosts(); + + return
{data.title}
; +} +``` + +### Using react-router's loader to fetch data + +> https://reactrouter.com/en/main/route/loader + +- Basic usage + +```tsx +// src/pages/post.tsx + +const loader = async () => { + const data = await fetcher('/api/posts'); + return data; +}; + +// use it +// pages/post.tsx +export function Component() { + const data = useLoaderData(); + + return
{data.title}
; +} +``` + +### use react-router + react-query to fetch data + +I haven't used it yet, I'll write it when I use it + +> https://github.com/remix-run/react-router/tree/main/examples/query + +## Submitting Data + +### Using `useMutation` to submit data + +```tsx +// src/pages/post.tsx + +const mutation = useMutation({ mutationFn: fetcher }); + +// usage +// pages/post.tsx +export function Component() { + const { mutate, isPending, isError, error } = mutation; + + return ; +} +``` + +### Using react-router's action to submit data + +I haven't used it yet, I'll write it when I use it + +> https://reactrouter.com/en/main/route/action + + + + + diff --git a/apps/docs/development/admin/routing/defining-routes.mdx b/apps/docs/development/admin/routing/defining-routes.mdx new file mode 100644 index 0000000..1d524a2 --- /dev/null +++ b/apps/docs/development/admin/routing/defining-routes.mdx @@ -0,0 +1,8 @@ +--- +title: 'Defining Routes' +description: 'Learn how to define routes in the Admin Panel' +--- + +## Creating Routes + +Admin Panel uses file-system based routing, which means you can create routes by creating files and directories. diff --git a/apps/docs/development/admin/routing/dynamic-routes.mdx b/apps/docs/development/admin/routing/dynamic-routes.mdx new file mode 100644 index 0000000..e7d4cb4 --- /dev/null +++ b/apps/docs/development/admin/routing/dynamic-routes.mdx @@ -0,0 +1,54 @@ +# Dynamic Routes + +## Dynamic Routes + +Dynamic routes are defined by the file name. + +For example, if you have a file named `[id].tsx`, it will be treated as a dynamic route. + +## Dynamic Routes with Params + +If you don't know the exact segment name beforehand and want to create routes from dynamic data, you can use dynamic segments that are filled at request time or pre-rendered at build time. + +You can create dynamic segments by enclosing the folder name in square brackets: `[folderName]`. For example, `[id]` or `[slug]`. + +For example, we have the following directory structure: + +``` +pages + - users + - [id ].tsx +``` + +`pages/users/[id].tsx` corresponds to the route `/users/:id` + +- In `pages/users/[id].tsx`, we can use `useParams` to get the `id` parameter + +```tsx +import { useParams } from "react-router-dom" + +export function Component() { + const { id } = useParams() + return
User: {id}
+} +``` + +| Route | URL Example | `params` | +| --- | --- | --- | +| `/users/1` | `pages/users/[id].tsx` | `{ id: '1' }` | +| `/users/2` | `pages/users/[id].tsx` | `{ id: '2' }` | +| `/users/3` | `pages/users/[id].tsx` | `{ id: '3' }` | + +## Dynamic Routes with Layouts + +If we add a layout to `pages/users/[id].tsx`, this layout will be applied to all user pages. + +``` +pages + - user + - [id] + - index.tsx + - layout.tsx +``` + + diff --git a/apps/docs/development/admin/routing/layout.mdx b/apps/docs/development/admin/routing/layout.mdx new file mode 100644 index 0000000..3f110e7 --- /dev/null +++ b/apps/docs/development/admin/routing/layout.mdx @@ -0,0 +1,35 @@ +# Layout + +In some pages, we need to share some UI, here we agree to use `layout.tsx` to implement it. + +- `layout.tsx` is used to define the layout + +```tsx +// src/dashboard/layout.tsx +import { Outlet } from "react-router-dom"; + +export function Component() { + return ( +
+ {/* Include shared UI here e.g. a header or sidebar */} + + +
+ ) +} +``` + +```tsx +// src/dashboard/settings/page.tsx +export function Component() { + return
Settings
+} +``` + +The above layout file will be rendered as follows: + +- `/dashboard` page will be rendered as `DashboardLayout` component + +- `/dashboard/settings` page will be rendered as `DashboardLayout` component, and `Outlet` will be replaced with `SettingsPage` component + + diff --git a/apps/docs/development/admin/routing/page.mdx b/apps/docs/development/admin/routing/page.mdx new file mode 100644 index 0000000..5280610 --- /dev/null +++ b/apps/docs/development/admin/routing/page.mdx @@ -0,0 +1,24 @@ +# Page + +By default, you can create pages from the `src/pages` directory. + +For example, to create a page named `index`, you can create a `src/pages/index.tsx` file and add the following content: + +```tsx +// src/pages/index.tsx +export function Component() { + return
Home Page
; +} +``` + +Then, to create more pages, just create more files in the `src/pages` directory. For example, to create a page for the `about` route, you can create a `src/pages/about.tsx` file and add the following content: + +```tsx +// src/pages/about.tsx +export function Component() { + return
About Page
; +} +``` + +> [!TIP] +> 1. The page component must be exported as a `Component` function to be rendered as a page diff --git a/apps/docs/development/admin/routing/redirect.mdx b/apps/docs/development/admin/routing/redirect.mdx new file mode 100644 index 0000000..12d832e --- /dev/null +++ b/apps/docs/development/admin/routing/redirect.mdx @@ -0,0 +1,29 @@ +# Redirect + +Suppose we want to redirect to `/dashboard` after login, but we want to go to `/dashboard/overview` page, we can + +## `redirect` + +```tsx +// src/dashboard/index.tsx +import { redirect } from "react-router-dom" + +export function loader() { + return redirect("/dashboard/overview") +} + +export function Component() { + return null +} +``` + +## `` + +```tsx +// src/dashboard/index.tsx +import { Navigate } from "react-router-dom" + +export function Component() { + return +} +``` diff --git a/apps/docs/development/admin/routing/route-group.mdx b/apps/docs/development/admin/routing/route-group.mdx new file mode 100644 index 0000000..192ac76 --- /dev/null +++ b/apps/docs/development/admin/routing/route-group.mdx @@ -0,0 +1,31 @@ +# Route Group + +Reference [Next.js Route Groups](https://nextjs.org/docs/app/building-your-application/routing/route-groups) + +In the `pages` directory, we can use `(folderName)` to implement route groups. + +This is often used for: +- Organizing routes into groups, such as by page purpose, type, etc. +- Sharing layouts + +> [!IMPORTANT] +> In the `pages` directory, the files under `(folderName)` directory will be considered as route groups + +## Layout + +Route group layout can be placed in `(folderName)/layout.tsx` + +```tsx +// src/pages/(admin)/layout.tsx +import { Outlet } from "react-router-dom" + +export function Component() { + return ( +
+ {/* Layout content */} + + +
+ ) +} +``` diff --git a/apps/docs/development/admin/routing/routing.mdx b/apps/docs/development/admin/routing/routing.mdx new file mode 100644 index 0000000..121d93d --- /dev/null +++ b/apps/docs/development/admin/routing/routing.mdx @@ -0,0 +1,41 @@ +# Routing + +shadcnui-boilerplate uses a **file-system based router** where folders are used to define routes. + +> [!IMPORTANT] +> This feature is implemented by [Innei](https://github.com/innei). Source code is [here](https://github.com/innei-template/vite-react-tailwind-template/blob/master/src/utils/route-builder.ts). Thanks for **Innei**! + +`route-builder` is a file-system based router that uses Vite's [Glob Import](https://cn.vitejs.dev/guide/features#glob-import) to read files and implement the routing. + +::: details Why use `React Router` instead of `TanStack Router`? + +> 1. I tried `TanStack Router` but found it difficult to use. +> 2. I'm waiting for `react-router@v7`'s file routing. +> 3. Let the bullets fly. + +::: + +> [!TIP] +> By default, the `pages` directory is used to store pages, and the `components` and `_components` directories are excluded. + +## Creating Routes + +- Each directory represents a route segment that maps to a URL segment. To create a nested route, you can nest folders inside each other. + - `pages/home/index.tsx` corresponds to the route `/home` + - `pages/home/about.tsx` corresponds to the route `/home/about` +- [Nested Routes](./route-group.md) + +## Creating UI + +To create the first page, add an index.tsx file to the application directory and export a React component: + +> [!IMPORTANT] +> Note that the component name must be `Component`, otherwise it will not be recognized as a page. + +```tsx +// src/pages/index.tsx +export const Component = () => { + return
Hello, shadcn/ui boilerplate
+} +``` + diff --git a/apps/docs/development/admin/styling/theme.mdx b/apps/docs/development/admin/styling/theme.mdx new file mode 100644 index 0000000..ba58b9f --- /dev/null +++ b/apps/docs/development/admin/styling/theme.mdx @@ -0,0 +1,3 @@ +# Theme + +Built-in themes from [shadcn/ui](https://ui.shadcn.com/themes) diff --git a/apps/docs/development/command.mdx b/apps/docs/development/command.mdx new file mode 100644 index 0000000..37901cd --- /dev/null +++ b/apps/docs/development/command.mdx @@ -0,0 +1,133 @@ +--- +title: 'Command' +description: 'Learn how to use the development commands' +--- + + + For basic setup instructions, see the [Quickstart Guide](./quickstart). + + +## Development Scripts + +Here are the available development commands: + + + +```bash Start all services +pnpm dev # Start all services using Turborepo +``` + +```bash Start admin panel only +pnpm admin:dev # Start the admin panel at http://localhost:5173 +``` + +```bash Start API only +pnpm api:dev # Start the API server at http://localhost:8787 +``` + + + +## Environment Variables + +### API Variables + +For API environment variables, check `/apps/api/.dev.vars.example`. + + + - `DATABASE_URL`: Database connection string, you can get it from [Neon Console](https://console.neon.tech) + after creating a new database + - `JWT_SECRET`: JWT secret key, use `openssl rand -base64 32` to generate + - `COOKIE_KEY`: Cookie key, it uesed to be cookie name to store JWT token. + You can use any string as the cookie key, but it should be the same as the one in the admin frontend. + default to `token` + + +### Admin Frontend Variables + +For Admin Frontend environment variables, check `/apps/admin/.env.example`. + + + - `VITE_APP_NAME`: Application name, it will be used as the title of the admin panel + - `VITE_API_URL`: API endpoint URL, it will be used to fetch data from the API + - `VITE_ENABLE_DEVTOOLS`: Enable/disable development tools, default to `false` + - `VITE_EDITOR`: Editor configuration, default to `vscode`, you can use `cursor` if you are using Cursor IDE + + +## Testing + +The project includes several testing utilities: + +```bash +# Run tests +pnpm test + +# Run tests in watch mode +pnpm test:watch + +# Run tests with UI +pnpm test:ui + +# Run tests with coverage +pnpm test:coverage +``` + +## Component Development + +We use Storybook for component development and testing: + +```bash +# Start Storybook +pnpm storybook # Available at http://localhost:6006 + +# Build Storybook +pnpm build-storybook +``` + +## Documentation + +To work on the documentation locally: + +```bash +# Start documentation site +pnpm docs:dev # Available at http://localhost:3004 + +# Build documentation +pnpm docs:build + +# Check for broken links +pnpm docs:lint +``` + +## Code Quality + +The project uses several tools to maintain code quality: + +- **ESLint**: For code linting +- **simple-git-hooks**: For pre-commit checks +- **lint-staged**: For running linters on staged files +- **commitlint**: For commit message conventions + +```bash +# Fix linting issues +pnpm lint:fix +``` + +## Troubleshooting + + + + If you're having trouble running the development script: + 1. Make sure you have installed the project dependencies using [pnpm](https://pnpm.io) + 2. Make sure you have set up the environment variables correctly + + Sometimes environment variables will change because the project is still under development and not yet stable. + This requires you to manually compare the variables in the sample file with those actually used. We are very sorry for the inconvenience. + + + + +## Next Steps + +- Learn about our [routing system](./routing) +- Explore [state management](./state-management) +- Read the [deployment guide](./deploy) diff --git a/apps/docs/development/getting-started.mdx b/apps/docs/development/getting-started.mdx new file mode 100644 index 0000000..4cc4bbd --- /dev/null +++ b/apps/docs/development/getting-started.mdx @@ -0,0 +1,112 @@ +# Getting Started + +## Installation + +### Prerequisites + +- Node.js: v20.12.2 or higher +- pnpm: v9.1.0 or higher + +### Clone the repository + +```bash +git clone https://github.com/TinsFox/shadcnui-boilerplate.git +``` + +### Install dependencies + +```bash +cd shadcnui-boilerplate +pnpm install +``` + +### Development + +```bash +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + + +## File Structure + +```bash +. +├── .dockerignore +├── .editorconfig +├── .gitignore +├── Dockerfile +├── LICENSE +├── README.md +├── README-zh_CN.md +├── CONTRIBUTING.md +├── package.json +├── tsconfig.json +├── tsconfig.app.json +├── tsconfig.node.json +├── vite.config.ts +├── src/ +│ ├── assets/ +│ │ ├── logo/ +│ │ │ ├── eslint.svg +│ │ │ └── faker.svg +│ │ └── stories/ +│ │ └── assets/ +│ │ └── tutorials.svg +│ ├── components/ +│ ├── constants/ +│ │ └── index.ts +│ ├── global.d.ts +│ ├── i18n/ +│ │ └── locales/ +│ │ └── zh-CN.json +│ ├── lib/ +│ │ └── route-builder.ts +│ ├── pages/ +│ │ ├── (admin)/ +│ │ │ └── (with-layout)/ +│ │ │ └── list/ +│ │ │ ├── data/ +│ │ │ │ ├── schema.ts +│ │ │ │ └── tasks.json +│ │ │ └── index.tsx +│ │ └── (main)/ +│ │ └── index.tsx +│ ├── styles/ +│ │ ├── dev.css +│ │ └── tailwind.css +│ └── stories/ +│ └── Configure.mdx +└── .storybook/ + └── main.ts +``` + +Root Directory: Contains essential configuration files and documentation. + +- Dockerfile: Instructions for building a Docker image for the project. +- **README.md**: Overview and instructions for the project. +- **package.json**: Lists dependencies and scripts for the project. +- **tsconfig.json**: TypeScript configuration file. +- **vite.config.ts**: Configuration for Vite, the build tool. +- **src/**: Main source code directory. +- **assets/**: Contains images and SVG files used in the project. +- **components/**: Placeholder for reusable UI components. +- **constants/**: Holds constant values and configurations. +- **global.d.ts**: Type definitions for global variables. +- **i18n/**: Internationalization files for localization. +- **lib/**: Utility functions and libraries. +- **pages/**: Contains page components, organized by routes. +- **styles/**: CSS files for styling the application. +- **stories/**: Storybook files for developing and testing UI components. +- **.storybook/**: Configuration for Storybook, a tool for developing UI components in isolation. + + +## What's Next? + +- To learn more about shadcn/ui, please refer to the [official documentation](https://ui.shadcn.com/docs). +- To create a new page, please refer to the [routing guide](./routing.md). +- Once your app is ready for production, please refer to the [deploy guide](./deploy.md). + +> [!IMPORTANT] +> [FAQ](./faq.md) diff --git a/apps/docs/development/project-structure.mdx b/apps/docs/development/project-structure.mdx new file mode 100644 index 0000000..f92b302 --- /dev/null +++ b/apps/docs/development/project-structure.mdx @@ -0,0 +1,48 @@ +--- +title: Project Structure +description: 'Learn about the project structure of the monorepo.' +--- + + + +| Folder/File | Description | +| --- | --- | +| `apps/admin` | The Admin Panel built with shadcn/ui and Radix UI. | +| `apps/api` | The API built with Hono. | +| `apps/docs` | The documentation site built with mintlify. | +| `apps/tauri` | The Tauri App. | +| `packages/ui` | shadcn/ui components. | + +### Admin Panel (`apps/admin`) + +The structure of the Admin Panel. + +| Folder/File | Description | +| --- | --- | +| `.storybook` | Storybook configuration and theme setup. | +| `locales` | i18n source files for multiple languages (en, zh-CN). | +| `public` | Static files and assets. | +| `scripts` | Scripts for the Admin Panel. | +| `src` | Source files. | +| `src/assets` | Assets (images, icons, etc.). | +| `src/atoms` | Jotai atoms for state management. | +| `src/components` | Shared components. | +| `src/constants` | Constants and configuration values. | +| `src/hooks` | Shared custom React hooks. | +| `src/lib` | Shared libraries and utilities. | +| `src/providers` | Application providers (root-providers). | +| `src/utils` | Shared utility functions. | +| `src/types` | TypeScript type definitions. | +| `src/env.ts` | Environment variables configuration. | +| `src/styles` | Global styles and Tailwind CSS configuration. | +| `.env.example` | Example environment variables template. | +| `tailwind.config.ts` | Tailwind CSS configuration. | +| `tsconfig.json` | TypeScript configuration. | +| `vite.config.ts` | Vite build and development configuration. | +| `package.json` | Project dependencies and scripts. | +| `vitest.config.ts` | Vitest testing configuration. | +| `vercel.json` | Vercel deployment configuration. | +| `postcss.config.cjs` | PostCSS configuration for Tailwind. | +| `README.md` | Project documentation in English. | +| `README-zh_CN.md` | Project documentation in Chinese. | +| `components.json` | shadcn/ui components configuration. | diff --git a/apps/docs/development/state-management.mdx b/apps/docs/development/state-management.mdx new file mode 100644 index 0000000..f522810 --- /dev/null +++ b/apps/docs/development/state-management.mdx @@ -0,0 +1,4 @@ +# State Management + +- shadcnui-boilerplate uses [`jotai`](https://github.com/pmndrs/jotai) to manage state. +- atoms are stored in the `src/store/atoms` directory diff --git a/apps/docs/essentials/code.mdx b/apps/docs/essentials/code.mdx new file mode 100644 index 0000000..d2a462a --- /dev/null +++ b/apps/docs/essentials/code.mdx @@ -0,0 +1,37 @@ +--- +title: 'Code Blocks' +description: 'Display inline code and code blocks' +icon: 'code' +--- + +## Basic + +### Inline Code + +To denote a `word` or `phrase` as code, enclose it in backticks (`). + +``` +To denote a `word` or `phrase` as code, enclose it in backticks (`). +``` + +### Code Block + +Use [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) by enclosing code in three backticks and follow the leading ticks with the programming language of your snippet to get syntax highlighting. Optionally, you can also write the name of your code after the programming language. + +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +````md +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` +```` diff --git a/apps/docs/essentials/images.mdx b/apps/docs/essentials/images.mdx new file mode 100644 index 0000000..60ad42d --- /dev/null +++ b/apps/docs/essentials/images.mdx @@ -0,0 +1,59 @@ +--- +title: 'Images and Embeds' +description: 'Add image, video, and other HTML elements' +icon: 'image' +--- + + + +## Image + +### Using Markdown + +The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images using the following code + +```md +![title](/path/image.jpg) +``` + +Note that the image file size must be less than 5MB. Otherwise, we recommend hosting on a service like [Cloudinary](https://cloudinary.com/) or [S3](https://aws.amazon.com/s3/). You can then use that URL and embed. + +### Using Embeds + +To get more customizability with images, you can also use [embeds](/writing-content/embed) to add images + +```html + +``` + +## Embeds and HTML elements + + + +
+ + + +Mintlify supports [HTML tags in Markdown](https://www.markdownguide.org/basic-syntax/#html). This is helpful if you prefer HTML tags to Markdown syntax, and lets you create documentation with infinite flexibility. + + + +### iFrames + +Loads another HTML page within the document. Most commonly used for embedding videos. + +```html + +``` diff --git a/apps/docs/essentials/markdown.mdx b/apps/docs/essentials/markdown.mdx new file mode 100644 index 0000000..c8ad9c1 --- /dev/null +++ b/apps/docs/essentials/markdown.mdx @@ -0,0 +1,88 @@ +--- +title: 'Markdown Syntax' +description: 'Text, title, and styling in standard markdown' +icon: 'text-size' +--- + +## Titles + +Best used for section headers. + +```md +## Titles +``` + +### Subtitles + +Best use to subsection headers. + +```md +### Subtitles +``` + + + +Each **title** and **subtitle** creates an anchor and also shows up on the table of contents on the right. + + + +## Text Formatting + +We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it. + +| Style | How to write it | Result | +| ------------- | ----------------- | --------------- | +| Bold | `**bold**` | **bold** | +| Italic | `_italic_` | _italic_ | +| Strikethrough | `~strikethrough~` | ~strikethrough~ | + +You can combine these. For example, write `**_bold and italic_**` to get **_bold and italic_** text. + +You need to use HTML to write superscript and subscript text. That is, add `` or `` around your text. + +| Text Size | How to write it | Result | +| ----------- | ------------------------ | ---------------------- | +| Superscript | `superscript` | superscript | +| Subscript | `subscript` | subscript | + +## Linking to Pages + +You can add a link by wrapping text in `[]()`. You would write `[link to google](https://google.com)` to [link to google](https://google.com). + +Links to pages in your docs need to be root-relative. Basically, you should include the entire folder path. For example, `[link to text](/writing-content/text)` links to the page "Text" in our components section. + +Relative links like `[link to text](../text)` will open slower because we cannot optimize them as easily. + +## Blockquotes + +### Singleline + +To create a blockquote, add a `>` in front of a paragraph. + +> Dorothy followed her through many of the beautiful rooms in her castle. + +```md +> Dorothy followed her through many of the beautiful rooms in her castle. +``` + +### Multiline + +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. + +```md +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. +``` + +### LaTeX + +Mintlify supports [LaTeX](https://www.latex-project.org) through the Latex component. + +8 x (vk x H1 - H2) = (0,1) + +```md +8 x (vk x H1 - H2) = (0,1) +``` diff --git a/apps/docs/essentials/navigation.mdx b/apps/docs/essentials/navigation.mdx new file mode 100644 index 0000000..ca44bb6 --- /dev/null +++ b/apps/docs/essentials/navigation.mdx @@ -0,0 +1,66 @@ +--- +title: 'Navigation' +description: 'The navigation field in mint.json defines the pages that go in the navigation menu' +icon: 'map' +--- + +The navigation menu is the list of links on every website. + +You will likely update `mint.json` every time you add a new page. Pages do not show up automatically. + +## Navigation syntax + +Our navigation syntax is recursive which means you can make nested navigation groups. You don't need to include `.mdx` in page names. + + + +```json Regular Navigation +"navigation": [ + { + "group": "Getting Started", + "pages": ["quickstart"] + } +] +``` + +```json Nested Navigation +"navigation": [ + { + "group": "Getting Started", + "pages": [ + "quickstart", + { + "group": "Nested Reference Pages", + "pages": ["nested-reference-page"] + } + ] + } +] +``` + + + +## Folders + +Simply put your MDX files in folders and update the paths in `mint.json`. + +For example, to have a page at `https://yoursite.com/your-folder/your-page` you would make a folder called `your-folder` containing an MDX file called `your-page.mdx`. + + + +You cannot use `api` for the name of a folder unless you nest it inside another folder. Mintlify uses Next.js which reserves the top-level `api` folder for internal server calls. A folder name such as `api-reference` would be accepted. + + + +```json Navigation With Folder +"navigation": [ + { + "group": "Group Name", + "pages": ["your-folder/your-page"] + } +] +``` + +## Hidden Pages + +MDX files not included in `mint.json` will not show up in the sidebar but are accessible through the search bar and by linking directly to them. diff --git a/apps/docs/essentials/reusable-snippets.mdx b/apps/docs/essentials/reusable-snippets.mdx new file mode 100644 index 0000000..a0a5529 --- /dev/null +++ b/apps/docs/essentials/reusable-snippets.mdx @@ -0,0 +1,110 @@ +--- +title: Reusable Snippets +description: Reusable, custom snippets to keep content in sync +icon: 'recycle' +--- + +import SnippetIntro from '/snippets/snippet-intro.mdx'; + + + +## Creating a custom snippet + +**Pre-condition**: You must create your snippet file in the `snippets` directory. + + + Any page in the `snippets` directory will be treated as a snippet and will not + be rendered into a standalone page. If you want to create a standalone page + from the snippet, import the snippet into another file and call it as a + component. + + +### Default export + +1. Add content to your snippet file that you want to re-use across multiple + locations. Optionally, you can add variables that can be filled in via props + when you import the snippet. + +```mdx snippets/my-snippet.mdx +Hello world! This is my content I want to reuse across pages. My keyword of the +day is {word}. +``` + + + The content that you want to reuse must be inside the `snippets` directory in + order for the import to work. + + +2. Import the snippet into your destination file. + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import MySnippet from '/snippets/path/to/my-snippet.mdx'; + +## Header + +Lorem impsum dolor sit amet. + + +``` + +### Reusable variables + +1. Export a variable from your snippet file: + +```mdx snippets/path/to/custom-variables.mdx +export const myName = 'my name'; + +export const myObject = { fruit: 'strawberries' }; +``` + +2. Import the snippet from your destination file and use the variable: + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import { myName, myObject } from '/snippets/path/to/custom-variables.mdx'; + +Hello, my name is {myName} and I like {myObject.fruit}. +``` + +### Reusable components + +1. Inside your snippet file, create a component that takes in props by exporting + your component in the form of an arrow function. + +```mdx snippets/custom-component.mdx +export const MyComponent = ({ title }) => ( +
+

{title}

+

... snippet content ...

+
+); +``` + + + MDX does not compile inside the body of an arrow function. Stick to HTML + syntax when you can or use a default export if you need to use MDX. + + +2. Import the snippet into your destination file and pass in the props + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import { MyComponent } from '/snippets/custom-component.mdx'; + +Lorem ipsum dolor sit amet. + + +``` diff --git a/apps/docs/essentials/settings.mdx b/apps/docs/essentials/settings.mdx new file mode 100644 index 0000000..a8c158c --- /dev/null +++ b/apps/docs/essentials/settings.mdx @@ -0,0 +1,318 @@ +--- +title: 'Global Settings' +description: 'Mintlify gives you complete control over the look and feel of your documentation using the mint.json file' +icon: 'gear' +--- + +Every Mintlify site needs a `mint.json` file with the core configuration settings. Learn more about the [properties](#properties) below. + +## Properties + + +Name of your project. Used for the global title. + +Example: `mintlify` + + + + + An array of groups with all the pages within that group + + + The name of the group. + + Example: `Settings` + + + + The relative paths to the markdown files that will serve as pages. + + Example: `["customization", "page"]` + + + + + + + + Path to logo image or object with path to "light" and "dark" mode logo images + + + Path to the logo in light mode + + + Path to the logo in dark mode + + + Where clicking on the logo links you to + + + + + + Path to the favicon image + + + + Hex color codes for your global theme + + + The primary color. Used for most often for highlighted content, section + headers, accents, in light mode + + + The primary color for dark mode. Used for most often for highlighted + content, section headers, accents, in dark mode + + + The primary color for important buttons + + + The color of the background in both light and dark mode + + + The hex color code of the background in light mode + + + The hex color code of the background in dark mode + + + + + + + + Array of `name`s and `url`s of links you want to include in the topbar + + + The name of the button. + + Example: `Contact us` + + + The url once you click on the button. Example: `https://mintlify.com/docs` + + + + + + + + + Link shows a button. GitHub shows the repo information at the url provided including the number of GitHub stars. + + + If `link`: What the button links to. + + If `github`: Link to the repository to load GitHub information from. + + + Text inside the button. Only required if `type` is a `link`. + + + + + + + Array of version names. Only use this if you want to show different versions + of docs with a dropdown in the navigation bar. + + + + An array of the anchors, includes the `icon`, `color`, and `url`. + + + The [Font Awesome](https://fontawesome.com/search?q=heart) icon used to feature the anchor. + + Example: `comments` + + + The name of the anchor label. + + Example: `Community` + + + The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in. + + + The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color. + + + Used if you want to hide an anchor until the correct docs version is selected. + + + Pass `true` if you want to hide the anchor until you directly link someone to docs inside it. + + + One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" + + + + + + + Override the default configurations for the top-most anchor. + + + The name of the top-most anchor + + + Font Awesome icon. + + + One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" + + + + + + An array of navigational tabs. + + + The name of the tab label. + + + The start of the URL that marks what pages go in the tab. Generally, this + is the name of the folder you put your pages in. + + + + + + Configuration for API settings. Learn more about API pages at [API Components](/api-playground/demo). + + + The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url + options that the user can toggle. + + + + + + The authentication strategy used for all API endpoints. + + + The name of the authentication parameter used in the API playground. + + If method is `basic`, the format should be `[usernameName]:[passwordName]` + + + The default value that's designed to be a prefix for the authentication input field. + + E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`. + + + + + + Configurations for the API playground + + + + Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple` + + Learn more at the [playground guides](/api-playground/demo) + + + + + + Enabling this flag ensures that key ordering in OpenAPI pages matches the key ordering defined in the OpenAPI file. + + This behavior will soon be enabled by default, at which point this field will be deprecated. + + + + + + + A string or an array of strings of URL(s) or relative path(s) pointing to your + OpenAPI file. + + Examples: + + ```json Absolute + "openapi": "https://example.com/openapi.json" + ``` + ```json Relative + "openapi": "/openapi.json" + ``` + ```json Multiple + "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"] + ``` + + + + + + An object of social media accounts where the key:property pair represents the social media platform and the account url. + + Example: + ```json + { + "x": "https://x.com/mintlify", + "website": "https://mintlify.com" + } + ``` + + + One of the following values `website`, `facebook`, `x`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news` + + Example: `x` + + + The URL to the social platform. + + Example: `https://x.com/mintlify` + + + + + + Configurations to enable feedback buttons + + + + Enables a button to allow users to suggest edits via pull requests + + + Enables a button to allow users to raise an issue about the documentation + + + + + + Customize the dark mode toggle. + + + Set if you always want to show light or dark mode for new users. When not + set, we default to the same mode as the user's operating system. + + + Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example: + + + ```json Only Dark Mode + "modeToggle": { + "default": "dark", + "isHidden": true + } + ``` + + ```json Only Light Mode + "modeToggle": { + "default": "light", + "isHidden": true + } + ``` + + + + + + + + + A background image to be displayed behind every page. See example with + [Infisical](https://infisical.com/docs) and [FRPC](https://frpc.io). + diff --git a/apps/docs/faq.mdx b/apps/docs/faq.mdx new file mode 100644 index 0000000..d98f61b --- /dev/null +++ b/apps/docs/faq.mdx @@ -0,0 +1,38 @@ +# FAQ + +## Why use `vite` + +Because I'm used to it, but I might try [rsbuild](https://rsbuild.dev/) + +## Why `ofetch` + +Because **Type Friendly** article can get the type directly, `axios` needs to process the interceptor + +```ts +const article = await ofetch
(`/api/article/${id}`); + +``` + +## Why `react-query` + +Because I don't like the conditional fetching syntax of `swr` + +> https://swr.vercel.app/zh-CN/docs/conditional-fetching + +```ts +// Conditional fetching +const { data } = useSWR(shouldFetch ? '/api/data' : null, fetcher) + +// ...or return a falsy value +``` + +## Why `react-router` + +1. Because I saw [Innei](https://github.com/innei) implemented file routing based on `react-router` +2. I tried `TanStack Router` briefly, but I didn't like the API of `TanStack Router`, so I switched back to `react-router` +3. And I'm looking forward to the file routing of `react-router@v7` +4. Let the bullets fly, I'll try `TanStack Router` in the next few versions, or wait for the file routing of `react-router@v7` + +## Will there be a Next.js version + +There may be one, but it will take some time, because I need to do something else, I currently only need the SPA version diff --git a/public/vite-boilerplate.svg b/apps/docs/favicon.svg similarity index 100% rename from public/vite-boilerplate.svg rename to apps/docs/favicon.svg diff --git a/apps/docs/guide/what-is-shadcn-ui-boilerplate.mdx b/apps/docs/guide/what-is-shadcn-ui-boilerplate.mdx new file mode 100644 index 0000000..49564f8 --- /dev/null +++ b/apps/docs/guide/what-is-shadcn-ui-boilerplate.mdx @@ -0,0 +1,26 @@ +# What is shadcn/ui boilerplate? + +
+ +Cover image + +
+ +shadcn/ui boilerplate is a modern, scalable boilerplate for building beautiful, responsive web applications using React, Tailwind CSS, and Radix UI. + +## Use Cases + +- Dashboard +- Admin +- SPA +- etc. + +## Why choose shadcn/ui boilerplate? + +You can use it or not, this is just a template for my personal project, I need a template to quickly develop and deploy my application. + +If you have any questions or suggestions, please submit an issue or pr. + +## Donate + +If you find this project helpful, please consider giving us a star ⭐️ diff --git a/apps/docs/images/checks-passed.png b/apps/docs/images/checks-passed.png new file mode 100644 index 0000000000000000000000000000000000000000..3303c773646ca12fb6852356663540e3ed048115 GIT binary patch literal 160724 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/docs/images/hero-light.svg b/apps/docs/images/hero-light.svg new file mode 100644 index 0000000..297d68f --- /dev/null +++ b/apps/docs/images/hero-light.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/docs/images/index-light.png b/apps/docs/images/index-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f12ee958ad10525a44d5aa32518a64140fc32c GIT binary patch literal 257863 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∾Ts=1_DWHyb&hv+Y3 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 E0FEiM9{>OV literal 0 HcmV?d00001 diff --git a/apps/docs/images/overview.png b/apps/docs/images/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..dad2aa618aa396d9e8475c2bb237df5cd6c06e80 GIT binary patch literal 439259 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 literal 0 HcmV?d00001 diff --git a/apps/docs/introduction.mdx b/apps/docs/introduction.mdx new file mode 100644 index 0000000..aa49572 --- /dev/null +++ b/apps/docs/introduction.mdx @@ -0,0 +1,55 @@ +--- +title: Introduction +description: 'A modern, scalable boilerplate for building beautiful, responsive web applications using React, Tailwind CSS, and Radix UI.' +--- + +Hero Light +Hero Dark + + + This project is still under development. Many features are not yet available. + + + +## Features + + + + Leverages shadcn/ui and Radix UI to provide a set of pre-built, customizable, and accessible UI components. + + + Utilizes Tailwind CSS to enable developers to create responsive designs with utility-first CSS classes. + + + Utilizes Tailwind CSS to enable developers to create responsive designs with utility-first CSS classes. + + + Supports a file-based routing system, allowing for easy creation and management of routes by adding or organizing files. + + + + diff --git a/apps/docs/logo/dark.svg b/apps/docs/logo/dark.svg new file mode 100644 index 0000000..1d2b20a --- /dev/null +++ b/apps/docs/logo/dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/docs/logo/light.svg b/apps/docs/logo/light.svg new file mode 100644 index 0000000..1d2b20a --- /dev/null +++ b/apps/docs/logo/light.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/docs/mint.json b/apps/docs/mint.json new file mode 100644 index 0000000..b915dc7 --- /dev/null +++ b/apps/docs/mint.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://mintlify.com/schema.json", + "name": "Vite Boilerplate", + "logo": { + "dark": "/logo/dark.svg", + "light": "/logo/light.svg" + }, + "favicon": "/favicon.svg", + "colors": { + "primary": "#0D9373", + "light": "#07C983", + "dark": "#0D9373", + "anchors": { + "from": "#0D9373", + "to": "#07C983" + } + }, + "topbarLinks": [ + { + "name": "Support", + "url": "mailto:hi@mintlify.com" + } + ], + "topbarCtaButton": { + "name": "Live Demo", + "url": "https://shadcnui-boilerplate.vercel.app" + }, + "tabs": [ + { + "name": "API Reference", + "url": "api-reference" + } + ], + "anchors": [ + { + "name": "GitHub", + "icon": "github", + "url": "https://github.com/TinsFox/vite-boilerplate" + }, + { + "name": "Frequently Asked Questions", + "icon": "question-mark", + "url": "./faq" + }, + { + "name": "Blog", + "icon": "newspaper", + "url": "https://mintlify.com/blog" + } + ], + "navigation": [ + { + "group": "Get Started", + "pages": [ + "introduction", + "quickstart" + ] + }, + { + "group": "Development", + "pages": [ + "development/project-structure", + "development/command", + { + "group": "Admin", + "pages": [ + { + "group": "Routing", + "pages": [ + "development/admin/routing/defining-routes", + "development/admin/routing/routing", + "development/admin/routing/layout", + "development/admin/routing/router-group", + "development/admin/routing/dynamic-routing" + ] + }, + { + "group": "Data Fetching", + "pages": [ + "development/admin/data-fetching/data-fetching" + ] + }, + { + "group": "Styling", + "pages": [ + "development/admin/styling/theme" + ] + }, + { + "group": "Troubleshooting", + "pages": [ + "development/troubleshooting" + ] + }, + "development/theme", + "development/i18n", + "development/code-quality" + ] + } + ] + }, + { + "group": "Deploy", + "pages": [ + "deploy/deploy", + "deploy/docker" + ] + }, + { + "group": "API Documentation", + "pages": [ + "api-reference/introduction" + ] + }, + { + "group": "Endpoint Examples", + "pages": [ + "api-reference/endpoint/get", + "api-reference/endpoint/create", + "api-reference/endpoint/delete" + ] + } + ], + "footerSocials": { + "x": "https://x.com/TinsFox", + "github": "https://github.com/TinsFox/vite-boilerplate" + } +} diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 0000000..0e35d2a --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,16 @@ +{ + "name": "docs", + "version": "1.0.0", + "description": "", + "author": "", + "license": "ISC", + "keywords": [], + "main": "index.js", + "scripts": { + "dev": "mintlify dev --port 3004", + "lint": "mintlify broken-links" + }, + "dependencies": { + "mintlify": "^4.0.278" + } +} diff --git a/apps/docs/quickstart.mdx b/apps/docs/quickstart.mdx new file mode 100644 index 0000000..5a36900 --- /dev/null +++ b/apps/docs/quickstart.mdx @@ -0,0 +1,58 @@ +--- +title: 'Quickstart' +description: 'Start building an app in under 10 minutes' +--- + +## Setup your development + +Learn how to develop your app locally. + +### Prerequisites + +- Node.js: v20.12.2 or higher +- pnpm: v9.1.0 or higher +- [Cloudflare account](https://dash.cloudflare.com/) for API deployment and deploy +- [Neon account](https://console.neon.tech) for API database + +### Installation and Development + + + + Clone the repository using the following command: + ```bash + git clone https://github.com/TinsFox/shadcnui-boilerplate.git + cd shadcnui-boilerplate + ``` + + + Install the project dependencies using [pnpm](https://pnpm.io): + ```bash + pnpm install + ``` + + + Copy the `.env.example` file to `.env` and set the environment variables. + + To set up your database: + 1. Create a new database in [Neon Console](https://console.neon.tech) + 2. Once created, find your database connection string under "Connection Details" + 3. Copy the connection string to your `.dev.vars` file: + ```bash + DATABASE_URL="postgresql://[user]:[password]@[host]/[database]" + ``` + + Make sure to replace the placeholders with your actual database credentials. + + + + Run the development server: + ```bash + pnpm dev + ``` + + It will start the development server and the admin panel at the same time using [Turborepo](https://turbo.build/repo). + 1. The admin panel is available at [http://localhost:5173](http://localhost:5173). + 2. The API is available at [http://localhost:8787](http://localhost:8787). + + + diff --git a/apps/docs/reference/project-config.md b/apps/docs/reference/project-config.md new file mode 100644 index 0000000..f8c642c --- /dev/null +++ b/apps/docs/reference/project-config.md @@ -0,0 +1 @@ +# Project Config diff --git a/apps/docs/snippets/snippet-intro.mdx b/apps/docs/snippets/snippet-intro.mdx new file mode 100644 index 0000000..c57e7c7 --- /dev/null +++ b/apps/docs/snippets/snippet-intro.mdx @@ -0,0 +1,4 @@ +One of the core principles of software development is DRY (Don't Repeat +Yourself). This is a principle that apply to documentation as +well. If you find yourself repeating the same content in multiple places, you +should consider creating a custom snippet to keep your content in sync. diff --git a/apps/tauri/.gitignore b/apps/tauri/.gitignore new file mode 100644 index 0000000..b21bd68 --- /dev/null +++ b/apps/tauri/.gitignore @@ -0,0 +1,7 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Generated by Tauri +# will have schema files for capabilities auto-completion +/gen/schemas diff --git a/apps/tauri/Cargo.lock b/apps/tauri/Cargo.lock new file mode 100644 index 0000000..3cdf034 --- /dev/null +++ b/apps/tauri/Cargo.lock @@ -0,0 +1,4570 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" + +[[package]] +name = "atk" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.6.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cargo_toml" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" +dependencies = [ + "serde", + "toml 0.8.2", +] + +[[package]] +name = "cc" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +dependencies = [ + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.6", +] + +[[package]] +name = "cocoa" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" +dependencies = [ + "bitflags 2.6.0", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" +dependencies = [ + "bitflags 2.6.0", + "block", + "core-foundation", + "core-graphics-types", + "libc", + "objc", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.89", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.89", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.89", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.89", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "dlopen2" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "embed-resource" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.8.2", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + +[[package]] +name = "fdeflate" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "flate2" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.6.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.13", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "hyper" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "httparse", + "itoa 1.0.13", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +dependencies = [ + "equivalent", + "hashbrown 0.15.1", + "serde", +] + +[[package]] +name = "infer" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.6.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "muda" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 1.0.69", + "windows-sys 0.59.0", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 2.0.2", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "open" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ecd52f0b8d15c40ce4820aa251ed5de032e5d91fab27f7db2f40d42a8bdf69c" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "os_pipe" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pathdiff" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "plist" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +dependencies = [ + "base64 0.22.1", + "indexmap 2.6.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "windows-registry", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.89", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde_derive" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "serde_json" +version = "1.0.133" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +dependencies = [ + "itoa 1.0.13", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.13", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.6.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shared_child" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "softbuffer" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +dependencies = [ + "bytemuck", + "cfg_aliases", + "core-graphics", + "foreign-types", + "js-sys", + "log", + "objc2", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "wasm-bindgen", + "web-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.30.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" +dependencies = [ + "bitflags 2.6.0", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.58.0", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e545de0a2dfe296fa67db208266cd397c5a55ae782da77973ef4c4fac90e9f2c" +dependencies = [ + "anyhow", + "bytes", + "dirs", + "dunce", + "embed_plist", + "futures-util", + "getrandom 0.2.15", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.3", + "tokio", + "tray-icon", + "url", + "urlpattern", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-app" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-shell", +] + +[[package]] +name = "tauri-build" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.8.2", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.89", + "tauri-utils", + "thiserror 2.0.3", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.89", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars", + "serde", + "serde_json", + "tauri-utils", + "toml 0.8.2", + "walkdir", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad7880c5586b6b2104be451e3d7fc0f3800c84bda69e9ba81c828f87cb34267" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "tauri-runtime" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958" +dependencies = [ + "dpi", + "gtk", + "http", + "jni", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.3", + "url", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54" +dependencies = [ + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.2", + "proc-macro2", + "quote", + "regex", + "schemars", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.3", + "toml 0.8.2", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.8", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa 1.0.13", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b" +dependencies = [ + "core-graphics", + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 1.0.69", + "windows-sys 0.59.0", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.89", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.58.0", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "webview2-com-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" +dependencies = [ + "thiserror 1.0.69", + "windows", + "windows-core 0.58.0", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-version" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "wry" +version = "0.47.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61ce51277d65170f6379d8cda935c80e3c2d1f0ff712a123c8bddb11b31a4b73" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 1.0.69", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.58.0", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] diff --git a/apps/tauri/Cargo.toml b/apps/tauri/Cargo.toml new file mode 100644 index 0000000..c7761ff --- /dev/null +++ b/apps/tauri/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "tauri-app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +# The `_lib` suffix may seem redundant but it is necessary +# to make the lib name unique and wouldn't conflict with the bin name. +# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 +name = "tauri_app_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } +tauri-plugin-shell = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" + diff --git a/apps/tauri/build.rs b/apps/tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/apps/tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/apps/tauri/capabilities/default.json b/apps/tauri/capabilities/default.json new file mode 100644 index 0000000..3bb4cc4 --- /dev/null +++ b/apps/tauri/capabilities/default.json @@ -0,0 +1,10 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window", + "windows": ["main"], + "permissions": [ + "core:default", + "shell:allow-open" + ] +} diff --git a/apps/tauri/icons/128x128.png b/apps/tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b GIT binary patch literal 3512 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 literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/128x128@2x.png b/apps/tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e81becee571e96f76aa5667f9324c05e5e7a4479 GIT binary patch literal 7012 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 Sh@|Ye~|0>}wMPLT8jm@Y!H33Sz}5aFI6 zM9Lzqz|;A*0sGs=2A1uU!1nk2dGF7knQwr99SAFen)x(eCO;F8y2C~0FD1YxRTPcy zPWVxkUYmeuz}Tv?7&Fe-!UE{)ZW)Mb;H)^#eHDv$`dkZGguJz@^MA!ZNGAUqt{|0H zpZ7Ch9S`q5!>R%}>}62!+(T^evyO+ImSo2wpu)su4^3nw5(%)KD%gbSev^*HZZ&3( z#&c@Z0gH|}Ck)w6fh0&NBJ62ib%R}(3@$VFl*_#l2W$wQ-~4RmZZAt5O*^2Q5}Xr8Hy@c`#pM?kc?hFWxRXr*mUfUCXf4ka5DD~ zat6d85COB05l#(P9*cQZ3EC8fVdS~?&vN#rce(aF9@xp80O2{{FBvU+{X>Hoh;xI` z{$e^Nw1y*VbO8wv`8|-m?NwNaKGTGaF{P^JLB^DbOYWIbn%eT`*!^C1H36=O8Z-M> zkD~88ry`eSo`tEBN4>w7OWZwUzlh{WM1m8R6zepqGcGMaV7vWY9b?K4b6~|HVG)ec wi>I@ws#sZo7or4_*4M>7;p5{nr2pZ?Uu4>Krr0kU)&Kwi07*qoM6N<$f)&@lf&c&j literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/Square107x107Logo.png b/apps/tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4f27198838968bd60ed7d371bfa23496b7fe5 GIT binary patch literal 2863 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 Y2S8W#vM)6=T>t<807*qoM6N<$f*y@n<^TWy literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/Square284x284Logo.png b/apps/tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c021d2ba76619c08969ab688db3b27f29257aa6f GIT binary patch literal 7737 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 literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/Square30x30Logo.png b/apps/tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa GIT binary patch literal 903 zcmV;219<$2P)2 z+CUKPMqaqGiH;zb!R4$B-WXS^YzQr=@UH>k4?*L)&R=zYjBrZenKdc9|JlS$SO*RJ zKt8FSTDAdk1g_WPAO!p^V!AuL;Lm;uQyV;zKq)J3i(;q*;k+pD%f3eltU`PYdy9(k0&%` zuWAPcV6|-y?|?7O1W!KSK}pbk8#~!|FA@(VJkt^V@0lio{afoAeo*f&$W2s6${5!1eKvAGD2$GZwSB98L2ZVS- zKn8ENRkZ*sb!@QugOrQNK3(sy1v%J#m|rpB+h|Nkqa3FRT>74xSs{#&saU2Lf!_Iq zKmuKAESh`gs!fneGWn+nf}l?7jE$HW!Af&vE5=G!QU)U2v&HLIBGXKk4nQx{hsHjL zLPMAo5=*uInFbq7(aa`Y2VX5wCmaeqvECOFv)a>0t>ZaEb*cJccER=BB?KFZhV$c^ znL*l8x*UYZv4WK|j?~Jt6~~F%{pk~z5A*>^M`?r5m9@RJ_x|uEtX(6Vk@Y()MVto* z93wr)%3m%|#OZ~srm>zF(JvDuTq*@;d&^>_BJm5hOU`3FjG70L#Vzv9I?`<7$T@

5l#v3A#xI3*z~1~fvo9Q(N^(==!|_FZ z*duZ=+M1~)8E|otX8KNZlr?qels#x_1Xq@9IIw~@9uAREJVH)Xw^}UclF6327}E42 zT)E&?U%TK?(+K7%R!`H5oX0i)4Qn5??Iw3p5J~6_u+aWehY{DSn}3V2p$bgjnAu?o)v@iC254fXeMv50$9YrpU`N?u@QIWs)T?SP|fa}(|9 zqAX+!7`cx=4)cCBg5h~pu(?@9`)aCr#oyz$ld=#RFxYCNZCZls@4v2~*e-t6PEVvV z&bbK3b3wt(Coc!ufAbXXC<**#HQ%J9k`New6iG<5RjtO4XVO?dCvwxD{kJ#tfQr(X zg^NTwF-FwAeS_{V4bfel8l`~NbfrTR2s!G>WduFWxH(t~aK4q=6rEE^$+Uox>gJO2 z{L<;6Q6nHa5#ZEM>H58not!)z(6*_=^~8}jWf*IG$AUKVWOZ4?)GfF z+BM#*wKKmLFD7E~W3U!$IVm$k_k1f&Kz6WV8@55P?r~bcg-Za-!rvW?ns&)KOGT2~ zlkAyqhQj=P$Eg3w#K~}zH@J5bo-BfHjInKSz$@?+Z)NPD4pHj^_Qxmi`UqoTy=`sV zLVxrXGuBr=QRm|}wg75yetQQK4fY3#P_~J}zEfPnb2C4Wo!E(d*(cA;b?7$g2in<( zPn)ghX}nzJPmb6(3Dpeg_GW~Hc}Lt=lgsSZz z!5QXyz7KaR;D`3Ee}d`af{H>WWZ|Io1QI3~4Ll_`g1(cRnhLK73Ro)7zPCd={1W2x zRp%Xlvv4>!<2@}$hz|!V{T}_eHx2xkLl^hQoZTCnsjCl|W_@5Fx2(+j0ogy&Y+;L- z<)G$*CiN7hOm^s!{U>1F7U=iNk{+u~dAC!eDz%=|glFW0jEZU1&o(G_c#wTxUjnG} z#cg3>jEpUi#Mlq@t?Msg_#geK^Lx@DyHWf7=AS5vVyM7YOjvUVCfcpVR<(+5!H?9- zySI6s>o3m&*zr||=wcPGyBkQV`EWJl@bH8qobjOp+sXL*)=&yX)8aAbf~tGv?a2SN zu^Ddo-z?DWk9h9Yz#5p^NU#x~wYSd?H@w@!2Gb4G)6-utEMV~~M85Br5ff(v5O1|T z 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 String { + format!("Hello, {}! You've been greeted from Rust!", name) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) + .invoke_handler(tauri::generate_handler![greet]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/apps/tauri/src/main.rs b/apps/tauri/src/main.rs new file mode 100644 index 0000000..2abccd9 --- /dev/null +++ b/apps/tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + tauri_app_lib::run() +} diff --git a/apps/tauri/tauri.conf.json b/apps/tauri/tauri.conf.json new file mode 100644 index 0000000..26b48a4 --- /dev/null +++ b/apps/tauri/tauri.conf.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "tauri-app", + "version": "0.1.0", + "identifier": "com.tauri-app.app", + "build": { + "beforeDevCommand": "pnpm admin:dev", + "devUrl": "http://localhost:5173", + "beforeBuildCommand": "pnpm build", + "frontendDist": "../dist" + }, + "app": { + "windows": [ + { + "title": "tauri-app", + "width": 800, + "height": 600 + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + } +} diff --git a/docs/.vitepress/config/shared.ts b/docs/.vitepress/config/shared.ts index aec21e5..1ce5c3c 100644 --- a/docs/.vitepress/config/shared.ts +++ b/docs/.vitepress/config/shared.ts @@ -21,7 +21,6 @@ export const shared = defineConfig({ }, }, - /* prettier-ignore */ head: [ ["link", { rel: "icon", type: "image/svg+xml", href: "/vite-boilerplate.svg" }], ["link", { rel: "icon", type: "image/png", href: "/vite-boilerplate.png" }], diff --git a/docs/public/wechat-appreciation-code.jpeg b/docs/public/wechat-appreciation-code.jpeg deleted file mode 100644 index 044c6af367d5bdadc8c740b4ec01dc7b15d34e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74119 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

YvyP4+wxsI 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 J4<4!o{u@CL{%ZgL diff --git a/docs/public/wechat-group.png b/docs/public/wechat-group.png deleted file mode 100644 index 2cdd01ce47443ee421037f60491be943f3c0799f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136399 zcmeFZ_di_0+yAczaAKPMm?B1{pCUF%}jUndUQ9BP=W&SIm(? zM1VO{VfcIx6JYxoX*|WMpJ4v?N5&DX`BGOGix2ag2n##b84K@U6wJYhIWV`D;QY@S z9M=-u|MffL-$k&?IXf1X5|*Z_^7BCKUxg2DLkF*h^urx~Mn4M;U&?A0jt(n**`W^9dKO3(iUxnR6|4?8ZOzW?*2C*EV6`obAw0*=f46S8O)u!f%qMP|L56u__o{s$`X@Y z!~>09n$`ym>~xd=Q;>g|m@ama{dYS56^LvSwZo-0X^;rn|D^t(i^TbD|Hl(};&K1G zle;U@67;{H%M;Ii@1YD%MtpDh{b?~^nV7%M;Miy9e~Kw!g0~891-tZAtvZ^`58O)= zzvJ#yyxY?s{9$TSh&s>zd0Tb$qao}?NoJfrQ&D!_4CTuP!6d{!!uTfIQxT9&Qu_VW zDn`@8IAe-{o2C5PUA(B6Q-luB5|U36Od{b%H(%!wcA7s(VtpKG*U){zcYnL1c*$}8 zJN)mLz{@W`tz4T1X$LuCnT=L`XLUu_&1ZIZ4@22tf7igWhmu+wWYVh!(CaaqWUb97 zq?WSR8VvJMYk*Vt{*ZTs-XrcS1*3H`Ybj$n%vYVPu>!J*b|YT`NLe3 z?+448R;wbZy8P;HW6P4(Zl``g4O_;4&5O~+Z9r@`uIzpH@6g`~qx$*3?yo1qX+wTB zX`B@7fOz;!4nDS7H=TTAqOb^-EpY`3o zDII@(yPXX!Ao$B+tA*E?#eG}QV|_gc=P$p85UZxWs(f0-t3HbON$9rtAU>U?!7Y+U zG49r2TTkw=1;O_BN~4cjAijcy{T`k3m3k7>juJ4n=M}mc3fJjNBJdk+pH%om{q_F5 z!9M6>)o0S~4{Fv8)67>rey_sxSDyA^fhky`SZ1>N3$P z>>4$Qc`ftw{%v2@K3??_Du~pwz31C`5>xC6e=xYC`1cyjdXpjDwMmu%s2Y<%{p&p_ z8X3NmJy!;UfBoQ6zyhEIp1HpoQoL{s`LeQBe}#FYCM7MRA|ky?U(V+(hWcO=*9kVa zb|>jMT@@QQx%SC%ptj}LwRKM;9!Jw8Cl~Y;@V-C~u5C-T@ecpS6wf7dtM1bT-#Vr( z&@5O5STX-%U>`1yc%7ju#ancLR!xVAbC9r=qS(`Zcj)m`IxuaLll9~+qA4ZR6)B&r zEcg;Mq&Sk4f*9>o&NS1NoJM9mrNCuN&Cs6&h`ck=wdKXly3RI*_G*ZZ5r zs-o-fPPA=3=O1@66GkVN^^4N9g}Yn8;dkc=PVxt4pWBb?(9n&)$FYh6f!wK%FfysP z=!XjAL!ZLt3^ml23|J4xa3_D8_Mo$_zT4$3oF>)5A+@1aL{$Vqlv7gu(CAFj*dzh;VnvEABw{rs~o9V6b}$a?ta z=ijjBi_gaL6+C``msoE%2sIMuvg>ygE<2`iFa^3T1v^(}AsD5A(m;`j0CJYCH!N+4;5~vQ@*u?{O%5Tj%8LGylm}7luIF=N-vSQ{zL42y&8FE`DbE=J9}8Vp&K*DntUYjjKb_) zbGDl5vhQl)>em1{TCrt?Y^Q8;&{-*kAnWlP!a3Sv-`n@$%VG+LkOKM{edf@!X~XOU zq0aYL13U`TpGu7A9cINFfI~c%VQ!^7fJb?Kg<%9sFN%cJkX#XAG#b_|ZC>*pIgUQo zhYvlYKeFg0#K%t*we`o!|AI7amHJGz(2OoJy3`qhc9kjOa~sK%l5t%g6w)|1y|fD4 zj6Nw6At0}_(8(+E9_954j_P~M8BDLo6EAa0aXoc*r#{M!_m%EDedn>^$`e^XX7+%82WJ5 z<$4k=Lo5hgzxpQq%}KG+)N0HWbje#4-`|iiK11dsFYp^O`#CG^yaW1Ta_q!^#m!V? zJn@s?^b-}v;`O$y!M$%VOqFc)g_ikL;>!H)Iz>DV>+Z9n?CDWGc`6FLJ?<~}9#9(F z7$n34PxV}UZlKW#wY@`(=^zYCJnN$EMM1s?b)WP|O?i^as(DRTu2YlsEW~!L_u6yH zw>AmouMezGNT&6hUR!)?Eo?yvJDNJ5yr3Y~KGomyOYvwJl+#rl?sj-+vnGA=P~O*V zMrl$*kj@6`1*K&@f3I=A>~3s*Y#P=%ff^A5~|B zneD4;$m;2rF{`6TUwf;Q-V#{LthJ3WneS%CoVm>?@3=$%4etuSc%+ z+!rN+8*m$~n?4d~J+g^HE5kK;3ZDy*xlC-pp2nsREhN-IAZdTY{v0kG z0Op)iS#$gu!H7nwM%ow|f>GZ$ri^F~eZMIA&FbSwZv+41t)zD$qeCevLeF2q{R;WH zPoNJYjdThPZH}=#KC+Eg8q?3~hgE#uYbvl+tMM+Y6atsOZE*IP;r$I<67=xIq6mDO zG8!SQaFvrxS?I}P; zBnNW{qG8p$0DdnSM2&~lPy+V-a7x!zZwzqL+A-U)D~<*Ih6@T%+Hj~t#lFISZTT1sPRiPho%M@o?JPfLY6a|6_uk51!>f-;i zbJZlr8&W~TI{lb&hrC;uKl~)YhI*$sJnYx*6^=13GYjznUw!w*vYoTRjKO+#6#ieG z(9!AXsis*<#7YCa#887X_#k6jL-EG2<%)7*13z@%bw`Eq!23)p>`}v#%2E4Pasurb zYAk0c0vBrbW+G-lKM+oZV7K9tgJHFwiW1FE*YT^4V1)=2)G<`BGPHY>e{X!!^et8G z_?Mdo%V{Os>_SEOOhys4B5TuP0v&|(5!4k<2QS7<%v(Jn1E0=GY=};kwXD_>=v)RH z*PDgXYMwD4QXS0C7G1Pl!E%tjPM+H^1_yP9;FXniTEg1N&?BGer{6VrS~jZ{&TB;F zbJsDZi*dHRb@!XUR>w`)!ra4T$w+<;dfJz*wQnvz)YhAKZL$1*o2xCgkKf53Imk%D zco;M;xgfB9yDfc5i=16wnve0z18G2=YtBY%lk^p!T`GAgGKjb9%>?_YX!j0Ob`qO- z;|o%4Qn2DV#zf-adoYaS&g9+>xs9YDHB!TU7tnKBIG7TCyLI*b(~rUWFGtJjzZ4iV zA1$*6%_cW)Zxx|4s|Uo6@ejX$*I`qDzL?0_>;j?7MwWk!34IX|>YHK|S(Xqpq_7?T z^i*C%y!Vqvi2TU_mA%!;_v5o=rf4*I&G^QDAYC#U>sn*8TkmGn7v*ob;w(EUc=!Xi>X z1hG_kpBG#$faEgEn!g)S#W+MGbvaF1gSg+9g)h|MrC3etiDaG+euiGIZLzB|v$5R% za#BpNc=+tWhTsGc$iQppOS;cImu9wn_6|EaB7!`DJduK!K58R^ieinbs;m85-1gT1 z*xjkRes%0*&Kp-!kX9`IoAIz~Mw691k-LcU)jE3!+n1c4v&tscIy+ZX8D|V3jKX-j zD_ZlIUt$qOW3KS=Kt2V@-gq)#$vFD94l^S{UUO(Ht=LyCR^_;g= zW)x_F^1ek!fuJK}C4CzyXtiKub(puGYT-=lqJFZ3OyCr`0b-*sShH%K-naPfmy<>% zDezTlhMS&2Jb<5AgqT^+g}*Ptf1EYUwr@y6*6bM!1Yn=TO;%=hO!dr)XfCrYZw? zlpqi_o2;o~_8a4toX17}YGJ#0k30x#%;?G_j80?Y8SlF6{+)Cv{PC|sOqjSR(U~HI ziZh!;Ob;(Ga8G9!%gdM8mrsTO2qXt$0}1>pv{b5fod$Z|>(@E>lqtrPd#nM3Fg`eEnl#0D<%w~=@XCAM3uE?-m zRv%i8nHI0dAD@YUm4N!#sg{a5>ky8x-ygM8SJ;>gvjj6-<-#J^!hAPKpOHEM+yMvy z@|^PT;7|0ssBD5URue1-+YOazC6hXQQfpEPbK`PvkzqLOrhMJ-!oc>J;Vr{$X@9VFwR7vi>U712 zB|{jD{<<`D`>(pBIz9X~iCG`HVm8j%P|xe_1q!6Prr?qVPO&yUgG8&EZ4XAYMxpzI z?BW5#fwGz za>R%{`90Jv#S$>*s;l~Ca|wwby~DKhszEsXdWKplZgF2nB6>dQVb-7y<9HT`v0O*kI6C-6At?c;26#`rcCg{~{Job_7c z7KwgKV=3e}L;v;H56bNiN6nV@7W35YN+8F*-fw=ShcFY960^***+!Q|KOI^L%!0jK zacfHg_2Tz{kLe$7jIGGUCsGUTr`G_h%2Ejr9*m;bFf&Ik{>i&!Y$^d3fZlQi&Eqr^SfB0q#?vp5616?MV`UR+bpaW0gdt`$8s6G% zoKN#k6IR^yM2_?h`3r&Hy)9q;Wsu^RECFV*KL22P-dfkx?3ol9_ag2#kM^Yq%e>)B z2l`5TTPME2FC}whVk7LypI>1{+N5^7xYAXClQ-xTFbaUq(aj!j=ma$pL^8Qi4&n?l zx#mSy)CXpte^2W`z76~q6(K^@J z2m5dG@&HF8?D~7s0jhwwjcBd}e;+l2<5D%Lx(@Ii%G*zq9z3PDH1jsZ!6}{zMU@~8 z*%+Y~KTHJ$73FFw(H8MnK}K>ioL<4EsD=_)0>RP6&c;RjH@wU|9U`1%J2_}u!-}vz zd>47)0iB;DgjpkZBPttTxid#H#<&}8!-dHFUj zzT9rvoG80^<0*F+2pmmR4pXA+{h%y!q9cu-e`Z-ft3o?wQ5b(~*cT;0s^^` zR5-p-UK(J8NhYBAJS@nOL$6g>*m*|#>{(B9hhcQMSL~dlT(h~P0~>+>M#T9+@7j+fVeaLhGA;u?M#e8W2|6~=Roz5;cJ63 zXJZ|%=9g60&iNo1;OI;jMAsrZAJhcm^lQl2zc-lv5E?X;Zv2yi8)(6B$*4j@#~G@AwjTDtQViOf{Beab856x3LTd`E`p3ji&=}F zm|QsNJI>+-F`3&7;`EtqC>qhx`MC#ruIo(uQd2f$g}m=*GJ?)2b(dQ)c{;GfM4;cmNnJ}{rjD!e%B@Ej|?efjd`<2#*3A4@$*3j7YxtSaD$!;k0zW&@mk&qne0v39zTR{VL#Tj-EKl5^KfaPiBu)s9E2{e~Z*Q_UUM}>Krdy*W~R8pCI1}FQeFvk1wr#|gJr_Ll)CrZK> z4>SyBrGL-xW^cGj;8=~l&~zeg!vAr{M6B=BlrwmlSrJ~M;+!5CQJEqVHt(gsljs;D zd|$#gZ`SdlKI>~zu}c`KfezI_4{rK(ukC0iH;ae`xyZ-iWx6UVLtB6_JtqvAMjG{F zg!_h>#fvl@u6Yb*OKY=gW43*Cg>~JVok>A9&MTv@_7444&SZgO zu`X5CVAaVR!75r_5?p#*I*&1dM=#^?bpp3EoN?%YFK?w-JXpwxAK8RAE4-Bs+b`&J zY_wDAn;F^|ext(NH9&FAAi*HvNlMg0W1$Wyk?3qwK&8$o1=e?)1=nv@Ly-yUL6w`% zpv$SZdZ0Y_*>^&9h2nodwe#IsLec3^pG|Qc^GyBCy3UIGKDJn+Wba5STC~0G)$Ca2 zQLJFX%=Ekg`?CW##+MS>}qny2=YW> z+7lm^VgeijTp$%)XN%VAiwk^;R0v3Iilt0a5v* z@;M-*qSezEtQIuKG2bm@*_=gmqs}9N%0XMT3VMkf{SnS3uEMD~iqMyQtTp#cLYK zMhwL)Hkj8)V`tEWs&2EH{2pMl@4K7pm-MvvMhYl5@7l;6D`^AB17z>nIak8MSK74l z)maL%Jn9#Y+n`x&g;(i~w6D0kqCX|S^)m;&&deEvXJ#D|W(!#{(k<~@?Njiv*(6%| zj7u7ds(3k&q^=IpGHw{(1HO|!0^oL?jCpf*7~Pz)0tqCmwrWfXGFET6Dreapt}Q@n z(se0Wk#`>qv~q7&Fq?!SqbhXQzJ2z&&5#aM9-egFE5Nd)ad>c#;qo=SX~J+4yt&yY zp3(rU(a!l+bB~#Cr~qom%CrK;mb0{;Wgih~F#%pFAe}#m-ef10`VZu388Qkcn~o&V zEBLzx_a^rbpyLRsL-E0{A1O?bgu>YpjaGzX;N^Bcos|l|ch@SI6^iTr;Md-WQjJmw zrysIZo#j|7R2N%g*dqKv~mT3p5u&+Yhygj)f0F& zUZne^WdKR!_{tL-1r8?TD&H{Dr}LsL5o*cOR#j(!$tNhQC+}E6zUn~2J@D!O@Vu7}SV&G4M z{g{PlIzo^2-lbz|wKolV*WL;8TLv#1$x9!?$Ana4d2kh1$fumk4A`a7NFbkIYpc1p zuT+@O!bUtI?mUrKX5#Pc^Ng!>MO0Zop@+Z|Sv3I97gXs%K?*Y?sD)J!HKa7D#8(}N zRAFu1U{6#o>fCg*k~`)N6E_Z5@vU`adl8f_*_T*g#! zG@QW(lbD?b+-ywr1a8=m;n;)`t1Jyh;G+5&IeB_Av9+tJa%dDyZNva<4ur*XCpxF1 z4`?MEhC0Vne1|XKbUh*pwVC({va}K>EnUwhdFcSgEi{>q$Ic0#ku>^ipIG81nVrC z73d`LR^z^w7f^Bd7|JOa=(Sg@DfnLq%9`PEunH;b(k- zih>NS(2V50z}6xvZ!pHv|RtG^NkdVV*TP zOVPXOj%Wq{q?Afw-e7Fj;m7`?d)KM&Ri9g4pyAbrkI4OphgyNl$W}7@*4EPBSRR>x zo=#JNJ~La1HWmWcE!U!(@L(s6)g6xbllJ?Im zC8Y*qxBLOw588-i7(NfjDv^C#pd{z3qT*Urv!=A`L%1LR56N_3)-~*{$i)`|~W;NpA z%5?AnRptuodJjTAk9k|>&6&TbsGA5X_EQX*(~_zeh?jCaaq(_)#V zooc=gA;<_L`GwBvk77x0@r&3F0DFW% z+B5@%ZfjDYNcY~!xxE8AkHJsk<%!2VpcI7BejS%)Bv=%6Ic~^)Q4}ruQ5qo z7gUN`vL|K|=q=cR(HUNFJQ23u*e$=ZeE^cNPW8(HcQ={a)1d4*_NnhP^O_B$0y0wm z?aA6`oC8hZ@3k7SNXiW$(%?}CaR3rd&LbN z+ij$O113r-`<9cL4x1nx>sxXvW?3qI1yAr~_65ZI7MWbD-t%ef443pi$A?Mo2#M{! zCewP+3F*%(Laizi5UzJJ%$YSNKH@8o1eCsqbT=Jz_L}&@@y*&zWIO81VA*|d$TFHf zh{=e)Wyi(EBPNKaWC5K=KE+i$R(@Ig-lO|`-pdnG;y8t^y^i!+6&HbYS0=ujh)>(p zN0%LotZ6b0q{9TjE^#}A6oDM#Hs8w(h7GMDrHw!vkQ(e9XON-T+bc7JxyAe9-R*mo zo>f#JJ2lrbyW1l!n%M6fDWA!;lid=sP5DyLwdfIx$?U5V2hsC*R2)UHXBVEPq2;6b zd=}_&pS(8P9;&gKg+&0BiBCc$tXse|N|HGGfUSskg6vyo6*Ml#IQJ;dn7(J!W7acC ztp7QWhF0mZ@nwrNwY6-wYiV6cSA~m7R?6-Hbd+3bPEyzxWC4$ZzO5Ftz1E);p!xaX zwwFO$WJt9Swi91Tky&`5onP7oun~yuEd`V%J`#@g9`_m4W_GL;+D!rc_3ukpw@@Ll zHreB81froQu6Bl5&^d;nnE;WHzDKk(o%zsz9M>)IUBH7q5e9=@+ufGA8oLptIQuuq z&4rYRA@cdC74lphPYSkM2|fHLEG!Q^E`59bv7VA2NghvAo|LQfFRKzh+kr9bR9El_ zrpAtz-WszpGQ|jNDDh~U1E0e^JH)=dmAy@qPPjGH0#Im)kCM(m8I6yGH4m?dk!pzV)Urk|cvjZdk+=O1}H7#k7Y$BH88;Nns6y&4|r9hZFI|D-)re4VnXZVzHh8I-v8X6f)@iL7n263chjiWg&$(eKETM5?7{8y!o zk8$UG+mE+~atdxoq|-TRwb8 zL{N~?M^*}Kx2P>!F1weu`RSWGd^B2YS}g;e;wa@K)uNr4m##MfOkPNhkkTR}*&y{A zW9D<6B0i>;V0B(;R7rA2mEf^XUq(m~?<>vn8(4}T5}(5QiDs;;tqaSZW^C7SW*LbG z`bpAqzV6OKM$#LLMeZ+Q+)sh5p6fWXdZWY|%%hJAqk#0+Q=;Ih(jO;{XBU{-$R;N$ z4g?C#6N$2X!x~~Akgc@hd*M3+9T{aW(KAISE<2^xFunqWV@6q#LTHA42?75mSgoPW ziy(6@O&YXcfV3Au<^aj0oCANz!$`kMC3ik8eeW|IOKOBc35uNU0egVmOiF${@NkXg z>Wa(Y7*DcuXjn}@ae6-uFf+B_@k}P&i4oK_4E#1w%BMcLy0U>UwoURkX@!{n~>Fv z_6c5ntFet+clF-+q4Cnwa7i6SNM*sKH=vu zJhl+y(`3X!QAm043~bR)NOYSU>FDX$q!3@3#k554d3}>EA+Q`xIIr-_E^nBXIgw5Sl4IK-tlUcRz62EvnP}6j=B2R@(m-ZN{4Fq4qACRqpg2H(Xr-u z4!S=&g%R&Bo$Ep@guYq_617LWZT_gq8U7FBT!N1Str_*_kg0+%1@{Z(cvcEN-3q6Q z#8?+pMwCJ^|ADA`cPV>u;vRE{pULXElPC8f=XLeOiXV-aA|U@wRFg1947$pHn%%bi zl286`qDl_-=4JU05e-zb73F{3%Y&~gGyEIN+)3096M;#zcVhiNWw33gOnoH2WaQ6N zm??3+=H;(fuG+iMnDoeM=kR~nXbfbnM2IQ-N8E>n(f^z5mchY9rD-)RJLvlF%>D}* z-^Ic-C?M9f+5ZJ@YyHcXt8-%I|G>K=$p0~c|1Z)1SEv8GrTxDq_5a5n!_4Sj|I?X>@TZh8d|Gs_}r*d!$dfLRL9mKD?)vGyY~V&ItUM|G4*rf0X|06Mv^>qx&ywhwg(P-Ti72fA1%G zPCK#YXpzeQ_gWf4(L$9K<+Y%SjD{EcdiZD>gXt4;Bg3fx!nR8hG@kg!M>;Q|- z56~F0wrlHbkm?87&pw9E|YfE6Hfe_nS0n8AE?$R)!x3 z%c7~J*C1jdpvR}7z8C#ZRD!H-xjG(-B(B#bH_xZI48Q7Ui~sl1LNyP19CfoPFsL@MYzEL~g;=2lbE0mm@JocVG}hdeMj0=zNFatT+jzZr;^r z)Q?Ql7a&KYkX8u*t}XDv(SB`%&_5hxFz5A+iwHJnSi-cS^or{z-KL*me+FCI=tXzy zzL!#VI(*22cfc1C62_SM%Nf!jKEmN z#py?n&|1>?ncn6ijDW+eNV$eD1%w_J0|3%?8p6(N(SyQaUfCC-DM30xCxdi38*y^y zbH-yOy^hWS>p?qW0PD2+LpHEg@Lna?HL@rxNqW7#3lY!1-0Y(3bg(P;^IDIA`p)&< z!o9j%fzf(61`&{G z31n1Go-j!ziiKk2N`e^O(jTYOpMDEgVM7$4f^Z=Jn&Tl+a)HxG0K~qL8DdgN+xo*N}ZNJ|9@N zc03J?0Q4)Ru~IuHd%-6BPN_MD_v$?!d;Xx!!e!Tv{1`^G06?!g6^Gj8!CP$DtSi*A zG3u5E()q7qV48A)^jY-$Ii&`(A-@w)q@T_)4f-Vie3N9m-1nc1$o|@`=K=_3QqR6~ z%&{`D(C@Re2*Y$FR++za-MeZ{Iv?n=Vnf2_g3Re~os7~p{^@;w2Ymf={+SDvk^=vW z5)SWpe13};D>;Zd`to}{WZtNtt}EgEzkvDQYHne#9U&+LKX!kHI9YOZ?LQdzPt|sn z^3ipwC@9^lb2IdJh>h1ZDu+Vi{2_I;jGqaY)2{CpwN7Ba@RhQD*p&|m9H_s<3a=JYfy)z? zsSh^fuF~eBx|CTEloQuCNkGb#vMVf&(@GyKnS^@7nA7;`BlvIuYJVuyj>;J{)>_ zV%xEI_pCOMjGH$_>hd_Efk5dx$|bcfLwvk{wCrp?Hq4+PQvzI?yT{Mtj z0-4vJU6BcK+iNG#@I;wknyBad3oRfN=~!p8v&FW0sbY;J+4RnxLeW_u^o|NGN_j;d zqZ_afG0y$-iSlY`GRy?;;O{RY3g_rI;atnaRVP%CZri4|FTr^5<% zTl^aWQn(=5B@7s7LM9Qlz$@-{`cxei(QweZw=%^`u?az$FheUEDfQcrR*=)#>g}4e zGkfNaZDOBMa?ZZ3I-N&P)f04+g&`fsLg*qX){S1%KgpV*M%AY8Kljjvo%;v<}vNR7mz31)rqY3HZQs`KRLSO>|IEGaaf00+4~t} z!Ps-Z2A2Z)7kT4Q_M#=zY6R4cuen%K_Rc3h}TQ*X&Gu3s_#IRNWgtm4`!p|lbT%N0RW=|c<1 z#!lwWN_V{_`lHgmeuObo>}y`{AZp=H_`@cg$;^b@>mj;9##PD-4ihh`B;>_RAQ>|^ z-JBw%IItA=ek8&fBN$cR7|{>&ZrcA)`;yCHe7W zNYF{MK{ggI2JIA(c`YDUxweH2?wyLUE!tMihEfjXRzwNz5{73*5R{S{bw!XLxK_J2 z#G)3sSsXW#?x>2d2A(Z|QYV*P8myQx+unl|nECa+L_`kIHrZrT0>94l7Cz5mIIa0r z44EsES<yz07DGD2kOK9+??I$^B2Q5aM|9*+rG|1hGE2-M{dlw7+ITGHt(+{TIt!(Q24#= ze~Dsq*{*xGB^!9*+3Y7SR@$+WJ_&-Y0E4Lff|`oTuZa^FzP>96AYKaVV+A*T-h;~GobE-wxOFW{^;-E??N(!~pB zOt5y02)LWbqH@5gii{O@TqJBRb-Nz$Gc<%Lu5HBBP3gWRyIa>xuKGbqM?MbTQ$ij6 zh5aFG$XJfB@Dd%s_pz}-XV+VZr{JXG-&=2tHT&!EFE#5?&jB@+R4>`Ad{E5kLm*#Q ze+hjh8_i#48@Tu8Dc089OO7t&0*yoIRxSF)HN1+QD_hKqla=Z|F7o#9cDf1}Br&akASfP`|~3tD-$j>Zo!bPq3x z#OW&J|LL>BoG=>#TVNryO&vKivUeLpR;sm#cnQ|M9r`dRAwg)h)rd2#*Go(IQDhK( z{)P}#(ooMijdN2j7;CKj((Ixii>=sMzz=TX_LH`_o!VHyc?UE9*PRD|LN@WDUM01H zmMu9cYyz6A9#sRm!m~+_3;4c&(?D?ieF<;IzDR^(49NANkZ1n(x-peB2YklIe#VH` ze~Da9m}`$`bAw*x9#vsQC=0kU`$hQ)lG08u4@jC+JKq`-gh7ZuPBzoB-UPB0b@WJo zF*ILX@gyE2xhHfQ@po`Lk>m#Q#@>j3EUYuVZoFcUl4?=j%7`FoULLY$g5E8E3E3N|_nZ zj+VS~JkX}qiv6E&0c0ApuAd|a3~Z$}GIyO8{w|2F-jCbLngAZu;p5Xfe%tg>T{SMg znHxp>L@{aPOtX2ZGP+q#emd_D?hw=I8`>%6OoAu8(gfdp&*0V>%7&ygM2OyP5Gv-P zG+BqwF@~k+wtmO+ZRmm36h2)0& zJ~aRF)Th*Ns4d`jiuYTarGRwZVO|xRSnNc*QyzVQd{h1nkK*;ns|VVS*au_%%d7%e zGIb;cI?93jL~=K~cvHXSMSil6lqF=dxvl^g|CaZQ28vUNG*`q!~;1Qi5jMfU#sf{?;=PmFtFTf~8 zwL00MMaIkuJdbu|hiQ_#A32*sdXr_QzWF4#22IHB475((TVa&CA)me=VF5BuExkrg zR`o?QfetmmQtS?e)4a)nTi%?}S3#scf(p85vi=ZeX8@t!p8FZmRp#!lD62O4K6NfJ zDq_Zi9x_0}+Ubs%&8|ayFk%7Pnf*TS-ga*(fP%FOefsI*&d^Q;;@%6>krZqbMFJ@LXPx64RjR==Qxm!f~%PM)vrnpxE4 zPG8L3N5u_Bida7{*)&(w?*BZ~diY6ISRq~cvc?0Yv*kPaDHaw$rC8~VUO}!5*w39< zWe3bP3vu7qHwvaN7r8izFPxF!Z*wzK|MX9FR;iA7)^*SrRYhjSLXq-?0lSgWN5~%xV}f$$lyG;pS7w>&l>;&_8{1=1Td?9|fd!4;>g!O!Gd7 zuv;J6guRd*tmRvesctb!6iBK+K&Zm>nyW%pIN+TV(059uYm~*r09YbD%Yp`NMRFahy}Q zs&JW57HnOH23MjiMn51X(J7zI=|%pz>+N!~Hu&ZR;FZ?H)|GFC*AFOG7^xxov3A9w z7kh`}j*dGC(*8g~+~m~<7LTYQe-fW*2j4B)@VS1W>^Gz>U4z835c|`&(Wm|OhwudZ zH^uV6ESX}{BMOk=ho2WNxFU8=i~rt6TK!q089cyzY2hksw`qu#Da&%7sNiJD^w-r^ z%J0InUN1YSuFf#S*uV8rLk|R*v2O|_QNoY?l=_nI9XUR zV97Bja0YiVV(*_G8G%s-?w3~{oppaAy5A4v9WPP1Zu2X+ft&7^r*dXtcP#$( zqQ{p(p)S`RZxCCw1?sU#OW}}(B+%qo`I}{0v6$7f!+b?L&Z7EY<#CIv0Y=geYTqn} zo-JYqS7QO2p03}+Y*`6<U?vie#8|m(W^yqF7@O$=o-1k4QU*Mc`U9Wh)?7#FFLQc8DEOON;X|78UM0<>M z-$#0wQ^+YlA_N9FP*E&lkdeH^4Vz7tu*ddo_m`n5{`u5o)}vs{uB~$K1G{Pwz5FoF zhpOZkzhH%Trg_eW9zCJb&tBg}<%jrC`)JS4gKQ9~Y=fRfg)D06Uw6~(M#k=ci?))A z`h#sN@804w9&e!@8y)EW%=IN!Oqtei<8#`+>4+f=leuabr4U_$SulaSUCC2QzGVM` zZ>}f9=jT5EyT6JQ(7H^b(SBGVJfz3Qk*;$L8jf+PPmu(IPQwgcg{XEqI;Rpecf*1P zCiq$}tV-RjWdE;wCmu(4gh#ArEh-$No7h^C>f`h|pnR6;jwl^Oz0Gkj zkT{F9p`jKQ;~dH#f2}E_9M3!MP^#uR(GiZ-S7xhTb`$lv?2s!4X#MVKRmPCS_7ib# z0CBH)(faQN8w~)j<3$=F2T}T1D1Ue)>DhJAhmrCTW)>8V=0HTX3xeyU^Qrw$9=Olg zDNE@9aVbh8p>3^VfRi|&BSs__M7}iBdz!b^oi7Vs(6ND}{w+K;G|+b>531@ZFM?0W zz*cp~gE?-#6CY^7xWBG(%B+40nu;;ber_^AbP5rG-ugYBa0EfycH%<=XumjkfO*El21(+k=)j=ZOsIf>; zV)@mG7>lDvF!ra#i11g$($_2XC%jcZEjkJ&m(b^U->vSK?yl{Ramn4RIzOE26{&xt zA$ej^6f~@(sVGt66zR3New*E0F5uiphhrzQi0Uhh6{rH<1CA#)^mEn0Tu#RXM1@{` za*WT2n|mj4nTTR!*1ofRsDiak>ln(1z7QqY*UJGw5*g>@q^tg&p#c<3y$V$-s^k10 za20?fi6+mWS+Ym#A(w8*3842-z06nXHtewl=q4eWuoCFI8?$wDpW|;jqs+6hX*pkU z-0ic6Y9wzu6^WMAypWS?HI1FS@QEUOm7@tq^)d4ZLHJ8kDFjS5S>zhWqsIRDra1U_`U-W~_B$2v^s0?Iq_fLX>O9-^KSJF_9pP zTxVHQ{;m`+wo$-G6;hGwtzwp&SGS@`s^!&ki`R_K%0g z!8Qx4&Eo?eZ;{T@wt%9jOQdyo{6Qn|l>^U9Lduvq=}GHSelnY1fTGE(wm~pcE0lUe zm$3y1>%FK?#icq*O}}aFVr8QuYwFaB1~b;n{!5TfX(XOZuuSCo&MOAyE*UP#1uoJ| zw2`APj?z9aHC&3%0~nHZQUk%Vu2AWsgK@2M=8jt`OL-h0ZGO(vO8RrPyLO4$e1ExF zAF+VE_cg7@$9^AzMTPW}?rn;sw{aSw_=YyBq4NPV&z3votjU+T8+rq9ONc2CDQ2lE zA35qtD%=#)2XJ;n%gSVs54bjJx6pa1r+lTOZ)CsVm=0th2kzo3n*9s;T=^MJo^qs> z^$gy2pH+h#?!?OWHW-3H>05WqKv4e9OzJYVNFuEU^Jg}l{Nv46<=i)ur@G_Jc4Q8k zaEha{u7$Oy#)e3KOLDL(rd5I`m`tGd^<4vJNoPaRe)nhnf5%1ZiaxgKjR{VcYy=$3 zzw>4XbbV-@j(XHu!>ecOKx1{Q4wI2ZjPk7`u6IvVmW%hUUm7|;Q+dlF%&-2M zdN*7qj)id65dPl!sDN;k-ENT+2e(9_(}$#4fjP9aNvR2kZgq-vL2#}eFnNrPxQT0y zi>sG{ncVJ>^>uCzuwVrciU)LYaJKv|CI7-pG1Cr!e9gSh9&sun$t0Wk_OpYP?~(AW ztz=lN!qplxWVMjEjXhadHQ{Qb^ezfJVIX$tb5h%>eHWQHhl4>;_@cY;Cs%FZSbggL z@@#FGp~QG(r>?R7%_N+aL)am0q9*SsB*JzHiu$8XlRDZd+s}qq(0?M8 zkvYGPwC;7VyeFU;nE3NaueDm%;0po}tYtv5o76l+Yo6prV0|&bq_FblA{f1xg~-%t zmq97dVq3y3)P!PRw3gJY9?K@>s2JtcGkDCI$bi#S|X<2HKMf=<|xVHi-uZ6YD?5&cdEJ!^yXhwNQJUena-O$RaAp)%D%>l(<(k zSj$cP!5u1oTW7}kinhLJVvOcYu4Cm%(o|m6%lfaY_>jar*4&*5FTn~#-dYEj@w)bf zB?|%}xJf&oSsMXMMHLEhj!d{3Q>0JiU2)>Z^0*&sJ{T#3`yWf`398$+%O$D94DzW- zA6D>W`jwaZen?!uwL2^BjD@qw4Oo+3#TvR4($}dtoNC<~C9S9>U3X9!_=u|n|GJoB zcT(=UWRC6$Bt~$#6!SsTBnGRCK)K8jLV53hRDf@G)7{oWGbCWUNeC*T8MF8LKYW>H z8-xne@;y<9tFn**s}|J=Dms(RiW=@^a^jOr0ffm3cN2U(d_Zx>@vO7kLq_7Q07ocN z0&1T;49gc1p7xGdHYaq&UwBb?(-`Cj&fzv8o_-q?{J5YWFSO#NjZ@p}Jmv^d7uB9` z95P-XBWzBxW+VR=m$ynhOuZxv?4s>CPp0>>kNPS>tr4WchXj+Q?`Or&@L|%;yy;f} zc^TQ_dTzWOe@n?rr-Dz4!|=DH@~`La_b%E3F0-|c8X{dDD#R>YVgMnBGZ4b|EW@iG zn^4nA&y;*dLBXalBUGSO%wR4y;nX5I#v|K#Tbs(^`d1zec7B49i_+1MVZW@n9?>^T zRZDXw;SsKxmOPXemTCeSB%m~$ETh8nj2E8{s`vGvQd{q_I1RIRdb|G)Y%iC5L9opO zi=EVWQ{&UKJdY#^`OLDeec>D~>)(dLicg?gapdfTtk(qZa2edxL31r-KRI>Z_kQba zzx*HdO)RH|U(fDrJkm#)Q9?~3pS546R)U#Wk?3VhaCFb_S|?Z+UA9Xck-^5W@CNW- z%z#>{FPsJ3&K4nNNzYaFnZAsU#Cv4l-`p5*2=tP;AxXlx&R#!Nnw_67G>_@3_M@DV z_iWRWw*Msg7x!$jkBc8;RLwzqo$bTFr{jDvhs80ttXq=sCViRy&h>_{nbFqswKXkMhfAdBe=$7x_;9w>`<^m3Rd|(_pJ~W6W{fFypHPC8u*Vtn|Pp=hz!~4*8hMaA!g8}A0BcIXQYAcH%#S{Oa z;XmZh1-HkwvdBX7I)Am9%74Fl=K|M&t?x5@ekRekmv#J+O{(a+KslJn-bc;sE?xws6GxorVt z#uAnz|HlqIsmz9eoZ8@hAAQ_QUpnSJM#z_7<5!7t@vGP~Vs#_#DG9V|C zwr5;x6~!5EIGQV{tFLhIcU-H1QoL30-+SR2*ysBv{+n}5E1#vX5~cAl{~M*941Gei z^81`7!tOqk_^H7iblA{m`KTNJciJ}wr7Po z_h$qsr1Se?uZ@-7SDJC6t9m&nH$U@3z@Q%dMs|Zd=rSp_D26nf#35~B#a+u;Q5lID zOIz~kCbbPst~0IMgs(d0pW(t&T^0Ob-Sq5j!e|}n;P?v!j@C_I@_+);NH1bbIKW+> zJv3#PPG;+;%;}-fKO^a!rOp!e!3D@%6i6;p?`s-2qN(D2^aezS6>_V`AfZ}PFj?06t=_L0rH3uan)#%_om zi4Q-jrhb0UD1JcEC&KDkmsXibd}U)*aO7QnRS4LJp(VYt@h*Hd3U!=WM$ zNB@+eXKg0YyEZODvKjboN!1W>j2Pc3GHQAcRwVax9W_inB0i>FMU1t!vF=gwC>u>XGxk6 zo|17lK>bYE0>F3L<78y%bqwIGpDr~JuwZ*B0AV~~#h)mUaSkjy{4Sb;t9QCCKKJ$C z{d%P#m)ha{41#G^xvLOYJEi5+3?rp(mzpOf0V0VJ6M@brw**Q=M@EE22)O$<*#$j{ z=f^3nVEbKCzSths^7EQd2>ZRnbsCzAnDL4S@1iHL$iC*Onh*U>w<#-6`u3{DD6z3a z?etnY)ZR3CMzY3!k(&os(Y2B)g_kv+gDy3DC<-SaO7;vu+PZ5wzY9`BCS{iNcUrHr zpBN;nw@O{k<;(%>J&Uwwj?gzZ)HN!{E8m4gSbk6VW6E@Ds~xAgafGpQNZz=@>6qGb zBRod)hhro6fNqjxopvaj?e_wyg2ZPLn(2#s$ia=*Wr zy>g}!*f2xbHEC3?t*isj$Vc=uvVq+BPsIJdU2;kDrtP_JEbobQXv~r^AE!<}=1^3m zhF{k*v?n>5lP$30j#eyd-@P8s{$5x4q9cayO+_OgYfxO}K&QC9_`C*Fx~=5ct0(a; z*->isEhB$;4&b-Vg3if-18|K1$wip|doamNnN(#ueBoTvGtb2J&UJhi-G z#>bwN-(;h@8qunT4GpUoVe9|6LOYCk3Ycd`-DD81$HyN_SJ6QmScw0hB)}<~5M;A2 z<+Xi?PY7SfLa;=LWq+pRz93*K5kb>}bJ(7I8PNf4{E%AQ^%R^;;Iew$lc@0e) z0N2xlr0-UVsjSo7av{4qS2Nf9lhGc6Xn&e8>iR4KYmdhZN!0>aW??&>Q$7tH zICNSQfv=&c04ft|D4z8}{31{nXNqvv-UW_GsfGU z^w&Y|7P1XRDiIeUa^1M@9I4K4p@5>U!!8M2AfA?Znmyl5TjjPZzA*a+*Gm^Wi>q~X zsZv;dRg2cf#^r-sUnE=ur_tHgcqT5mP;%qj?}3;YxsXU>#XRBY3?UK$Bz?xsQ#p}- z4tbTU)2Ns|iLjF9u^ClmO&>F}NmQBVrEm|gjG|)VMtMj^ptG4YVO3+;ALbRixyG&u zaXx1(YLK3Q<`y+UX4hxk@JEPUP8|i6P%j@&mUTBB z%2-aWF8|^d7RdCHU9>U$7=?@tuk)+E=JehT#c3#lg|e$k5?*zZ=<`Lm#(5{dOtPCV z;A)BF{(n!Y%`WTCb+XNGlkeEvkLK{dO50E;DDOdBP#a3N2U0uEBD}p8(w#q;z42tF z^*c%k+)t795=Ojjb+dghXd3D~Q82f(ul$i^ol}&JYYC^1izS-#@rrBg@pqPhYki>z zE-yZUc9Qy%@9P^%xtPhy8C3zIVOTd_iUfFVPokAHRP^=!>#@(_RB&k3z!1lCJvSFj z!!oJ=Mv5-qB@2VE#C^`R!Tmo5)hq{kv;(G3Si<@282H=<+9HV3MV3xE94F|#Stozj zMKT5qQIeUpUuRNfXlxY17o8%3?*r1J)|Asz>_+OcGVKFCWihc;mk=_u)a2)O|4}8{v}bvDT%mEfeE-bq-1VMaE?Yb* z<<`7LzG{7xRnLsjettewSkkB1e94VqoX?6O=EK}%ICKt540HBbcd7Z>Z*BQQWuMq4 zPG>qeuXZ*zsRcv3Y$_-ol+~4iNB8Q?ufOG9gK1ywr}ymKHqB6`lIPpO{D~AsY;NPJ_b={iy@1jxHoLIN#@bBrQ8l+H0@?){bEB$!od-C&L%?<>t%D*5dxR{?Re~*(rCu_ zVs!~mYBw$uoAs#FRhauRz_HFQr~OGM01F8juuLe2fDGDkX7S-Et@+Tw2wRb5(8C=a z7Fpos7BNByTn9NQ+`^)9T>Mr8 z=^UxAxThFll=y3ke2C%Eawi4TfJYC*Ei=QbKCjK5I6p90GuA=vcL!d+1ZjP#KX!NU zRJld;n)XJj+M+EV{qc2oBwW012Oo0%cD?;&sD|R>z7Pw+KX`1yMRyiQ}I#s1T0vrEosNoYRpfn2DH$xIxtC-3m`N^mg^BF-0C5EC6K$7X{p z^Ski=PnMPEI#zTh?rEpC?}@#W6`Jv=7>{Z4!GPRYWZjv(VHX0xVq8sT=0@`Sp_>AR z-N)w4`cpp16W~uEL)w>{TH?-HQbFExYo29|PN7hWqaN}@$~t+ig$L6Oo|K67{1nHK zrn&-h)BFQk`)byEE@nJQ$ziq-&nU43?!tR| zawm7XN&l|DeL;*;bHVJ_>hSaPnP087y^43o`l8*?|6a4M4D^1_?=dGu&mz6c24(R_tUj8VSqbuJ_ zl?jEaKDvPeive7Tj`DTqp8?tGin20?)2u}|=~y5CH~9uSe6qF{DsWh;T-;wJFfg!8 zW#*XKQOSIWo;*koTjBQEDuSDZ2o)H_VqGg@MBU-GZ5wr z85Uh`PAGt_kv*W%=vVuwU4cP2f8S0Ae|@n%C57k0Z-EH$o5@PStZ=is?`?wZy%sW@ zI@CYRcaGhquzL=Isd)u06F+cw(Z<1y)V3>b;c@ytiO<3nZOy>LhO;J4WxjAZMR`)VPykFq zSXOKfMJF`kATot}O2jXDdU}_FUi;@ETTgAGZ>(kh>Vq6Z?mCdC>k^y}mSQb0s>A`( z_+Z6h^=JFoJi?hwA^J-boMIhRlq4mBya|o20>aqll(L>Y zT?UoBe3no5?gy41E`P;YCWofV>hmHnK=`hqdzTANkhh-!YHs&>zKc7Sw>okFZ52yF zwf<>K-#>+xd;Qt_bhbs!hO~)6u%{Ln3@W3Z3YfK6%>O_v*EH>wHI>!ve~IsCkIbiS zt^3nSY4D?|C-e=>Z7udc1`IvsiEuro0*EnE1WNx|tA~exyPBxUv1<}cx4F$lHtDq? z=}3jsv>zM$agtP5Wno%8zxHPVJCA=4?U#rk3~QA2S*D{u+YEb2rFf&@wt^jjPn=zJ zG54R$)sgSOsG-h~)i$Oj<&v>IEY+D~i*f08AS7&Cy}Y`2EJX?1#?q}M)R zzZ#A?t>EvA=gCW|`O6+qTH0JEo%d*JdR5pA3rE#K!_pz!E_AEHtwx3mp$(b>XF04F zkspcJx(YYX)eK7}EOpWQ@{=A%5;eY?^mGqthZArTJfW>A_Wy+mk5h4_nJR`Ec;cXz zyC>uOH(&M7sv^7$=Tj<_Zod1BN&I&+)GJk07dJVvIYHty=(q#0pHPbFs-uiIZwlO0 zZ#dx{#%oIc$k^$bZi+%(2?dbu6;wM?H_MgD8W^ z%HTaU;_QY{!q5ZS8ft9K6}3uk0+YUuz(-- zMV=klR9f95QuU5MEF^LZU%i(sH)AbY&)OMg7q@RM`p4ZG+fcR`Kl`(sOE+y|sD>PD zSri>~+Fne=LD&1*w!JUV@S!gco>iE_IOrg5<{5sQ>~b8_yip){3P0i8^zo!Lv|%Q_L8lv#8< zwt`J*`rA3Mkize1ITpXnxzj$&O(P;O&|bC|i*Vo;W6K$UPSNx}tA$RnI9gfd&sn87 zRLzkwwcdpq`Z(YJPdUA2%VSfCIN+Q+l>;i>aA~;I!bZ=xwgK*9@>JmtsA@+VR_aUQ>Ha4tSR9~Kw61rdDKFE%3Mc5Kl${E1 z8fRJIUehX*_wPL7PO)Ek%PG*847jXh|Yj0<9 zU}q>4y&O}Gjs(A#!hBK2r#AR?%x*(Ny6Dv*mn7th!EHVOE7}b z&TcL+uXk{u@@mPeR|@&0+Eb6#m`s3{*8*KRS)Yv#>BTJoLf(~n&mtx|Wk(;Z(D7p} z!5?Hv*IDO+^@fVqaPg0tK1PVW$GG$)k?LgW(E(JM71&Bg@`s)H0=#o6;nH%TOz&d^ z6Fnq;;(To~AhM)p+zs-kv%?KdsHLNdp?WWM!20Ki$RMJ}06=wFFesUH7SlsxDT)`Z zfq39r^Vvv>{B16W6xU&o2+s?$M@tTB66!7y|H(1WG&Fru3(5G%wBPSp9xAz91snZ<&rY4=5e}1~$xH&!5umZ^MgADEX>VsGmu^Txwltl%)`HUv$6A zBK=d57COPhbO?304zA;qaFKi;z*Un zDK_`r$+Gyw&*az6nww4P>-X>^DA;bTg?^1tq~)M-sfpI7e&69Mk^nvzH*qD@^l|t6 zp3fyPUI=O&&0_(34mf2G0&n|(aMiN5)3|cZpW{q5PIe!~*!^UCX{`vvSadElgZ?Fk z2v^SED&mqEzIG+EXXdnfo++EhM~jfY%eGGTlS=rYSTK;{a|p|domrZssqCFbkL4`2 zXTo68=$(&A>j4Ns(jmb zF=tA+|Iim&>(|w8DgqX(9kRWV!eV*hqW_v^Uq1lRY=%+=9iL96pn!m!l6KMXAO-&6 z(EDwl^Bkrgw-5v+BVgWqS-e>e1h}s$ku6pSlk!x?!h3naZYm39z)Zz6Yn>!7(p8Kv zgH(2}C_AP!9P>kIKnr5meq=s#u_6z#k#OW4tz8Le!Fm=$cYtcrIv1X;#4X##l&~FL zdLJS+*OHHCAj-YFGFLX9n@-oAFFiN!V4?QYd%1<)r-2A?J*V_V7EL!H@)u#Jm$YpV zgI)4*>Zp*4s!3K9IxvnSzVlpI`b&iTjm58%v8-QZ<72k*W+a@5409k)a# z(K#!&rkWtIEhVJW1Kswre_|ISY~qUS;BVR&3T1L992N972(0x9hx5u({~YKdk}M(E zORs|euZiT*^J^!$OgzpMh%C>a;##t$^OK6G9voycN!-`3OSZaCMH;C;8qAEfL}4M& zQ98@HV!oL+)q?XGj`U`+17;OZMez>7(sDsI!>Z6G_xC9SpKSfGvp$Rjfi{>e#Uciy zMNKC2+ir%P6jWSCMI`T;fOeuc{Ku=S>UXj?0<*vaF2wnzdLw}2p6I}l1lPpOc$3!$ zkbbfV7ca$a(e*cwx1mw?2+#-OH$I9?7<`G)?$Nd8;q?q%uO*peUsml#`6{pG#_T6H{( z5yli5_`T+?8&QhCMbCt#L6JQ{(&t$(INfcv4y2kozpm3Q_f53NTxbL0n2ty*_m5$l zt~X44yyCRH1_+h2@3?!-etvO$GIl@2$b>mTQuv>!-Ey!omnFQ^7|aL@T}-ugt97Y02St;V6^$9NwcyHdq_FqU(6FF)q*AL5KccGHW&r6fYYd#001VB# zojBh!CJjn_Kfcg&TzA^$qKWa2F&eqqcZNMIR7+MQeR;+Ba(KJQO2MW<7iDQ@2LGey zH3K>QOm##qJ0);cM06duZM516XUxud_S%Q#fvDe5C(DFXZFk?d0?G8{M%1Gr6F(B} zgBfW`>7SOLW;uOY7~9tE;UElZ9htA18rPs~6?4~(d<4;$_1-bgKw21^r9_KVj4ROf zI1uK)Tde%vfB6V~+urjfWZtP*AfPuU#_D?1tsAOp7fU^rjFTmN#D3d2tg30^a8yaH z^tcl9i?Okm{@V%A9xS)U;mF}Wv<-eT)>2E)?MS^m6AGI>sT7(SC&iT+l+mSH%M$ye zdouuuXa8f^#_d40YMX>Sw(pF)2v-%}z*I1_uav*zZc}XyjSDRGycX;F; zdfkcRW80J-*Pix&vgn$ylZv90JH^ZTx2rlbfuPOwm&ZI~z!k>;>B^H-8emb8QF|U*aW3->vqZ_sdRDm4`t~T}p+2UaE$!=~e7?HGw7lgxR z|AUA?`jX?}n2p}VKktTXITd0ZhZsF@{M=+zg%l*Wo-nwv$EeHt8B*9?5@>py77X_IbF{9pdAeoXqRU<85Ug~L47dwvE0&rPk9otprb+l z3(vsqk(>U?*rPwHG#F+bE;Ox<++7;tmU_SB%k=^uXA*=cj&2!Tb|PgYKZ zOkL&^NHZ#WCa^=)-ea*>vl$Vs&-i6K3;H*BtaA3WGHNW)cvX2KG~r_YJ@fvg74Sh| zvA(XVNli-P>Y{CEg-~k^R(N^QwBCkZiwM2KGBf2v7o5K{yW^&tk%aq*Epa*8$u2q2 zqlosh2b>Qr`{POKh8l_9TY930(Io2hY`W-ZVN5Q4%$DjnU#dPhek8)r9lXC{GOQ@e~G(XA=X0R^)SyGK6^~ybsM*O?yKjM{&-+0a_dDZjz(a)8r@AU z);XKm^KeV5_$jj4ntNxA-geZM=SO^^6Xkp7FG~F$LaHM(%(JVZe}wkU5>Rvz3L*E8 zE(+bQRb}chJU3XFXgohS?gnjr6Ct_GaGs_lG2+1i2eJ^dCJT0)T;!d)G#BLULwzz7fPv4B{&@J*1&Q486JM&V^w97JFkmLOIli!=^NCdIR2LAlnCDsr- z%JY*&Z2<8|eDIg|3({_~4g22mPJ=%v+OeYJFUd`CZcmx%_oN(_H=Uw&Orqn3uWNL7 z?JFfj{?x^v^n}RiqC5ghd05j%vt=J)Cyj`?yGP#WE!*Do>rEY#n$f{z^3-rsbR9f4( z)=urUTiWh!i@W;{k18C-m~5(vN_UD=hBR_0WK0x}CV>0N%Cx*81$MN}HHF82Z$JHo z+PsLoP3R3)iK!!Pb{WSF6tpq@Kq$<#loZ>k{&lSV=|nr)oiqQ_=x(;f>EjH17uZ)* z6&Ak68Z+^ab@5R|40yI*-^Q-OX(2`XAimG08t%Zgn%rvqD_+KN4|oi4$8D{uWtc?%(%k!zvpVV<{Tp+Re$3`1)Selrn5M5 z<%t3(#NLdH^%4t!n{0R>6t3jMJuPTrS1u8=)h9UnP1DnZW&G8Bl(NJTf*JV?G5POI z=3g}ygPR~lC2$|%%bE|AZi>6E{bnkQf$CozL}odPKK$9Ox`UaHUmWSf%?#No>S> z)y0;!gEHdr0dh!R@>&FQ4uwj9Fs@+9a0$e$W%%sC>e!6!E_$2-2XjoAD01gRZ6m`4T)H*ffjtZGCUg+2rB=?~*v)-z+? z8M0qqf6d1}Y;|$ysSo|Ugglm&S*dmBeol5c_D-`o*EFbE7PES+{j^OoDIgXzTozNx zHgkt}K$xlhfmaKhYCADHPS24cw{<)qSHU-`+87jBSKsZb3!4tL=zr^zg6rit&a|G^ z(?ZD_GZsDcaB;+Xt@TU!ubZz!DC9tx$Z?!{O%~JJ)^yHnPdNrNoud3P_TINPnYJDNBp`xhM!)qZgKyu|yAr1wJ&2ue z=7Fh<-#^qb`J6N7AhD#C_KLdx)MOSHr*Q9O=agMoEKWef6!E9!_3D-KQ+cCHhhbFv zB*e6dbvS|83pKAnD-aD@n=`?Qu1u$n1>U)Q`6efQ zwu5n$x&O)zbP9sV%ciL5KR@1I;6AkDLb^8-St4-qOMO@4w*U8gFKK~?XZF=eH~-_| zy?27sD@+*Ndn|zuXqd-_od&E^MS)I}#`_qEIFNBryAJQX$I;*O5QH1Mg?M7S?Vt7F zdQyv{C@95Vf|XT#2u5$j$93O;$?Pyn;>f#Cr%r&TB5IjX@YpQQ+I*d>CRkA)9Gy z`>j86Rx(RPXX=JA? zaU-vRtpF3J1=WvY9`F9ulj%I)NIBi)A_1dq;dngi+ccu>NM*U2UGv{2++*n{cFrfM ze!7f;i5HnI=B?{K81@7#pitWKcS)4Be8^)d-Z`X=Es^P6duJ=frSG}36$TsM^4F7Y z?cUbofh(qZSl=_)^-J3m?sw&MyUwaj1SSm?Y5srmV5i+OEae1jWDqxV2IGv)P??Y2 z$om=(y>|r;1Z{H%oyf+IABODY|8a-((6+vdQW6}KWd}V09oVYjpT=-N(sR8tRXy4I z$J^Dm4`6pz?FJ^YZo=D|ic1FMBVtM#qo7;o?4+4|9H! z&j9)La)6|9h>~FKIdmN{#L~whM8tcFOy0uhUZ?d>rdH!<*56-9g*Vn*4|P0Yat_-9 z&bdN0T#e>;6C=EDveZhxc}sc(z~4xF@Y#OF5bF@2WsG-A9d%?qUxznSR?sOu;&8L! zxDGe-r1%Gn&^2YN8cwLSFm_W3ofssOtm7p~-HjdAv>`umj`N+5yJ{v_nznl{8Qs4qb3+YoRqI5K%oxhbf#VCp^Y+Oc;rpTh}Ovu0ZWia%ny`e-aE` z(R4>mDr6mZZTv142>bZSFN+^uRo`&jiI3Q0dUy>1wBVkGt@NgkosWrbfUZ>2io|!^ zKQ6eba&16VgdkKzfDC?O`gh1$TC@2MB|t3X14zhRBVy}er14QZXfxU@e!i<%!K5E8 zB=Vx`Q@l|bA=|)6pjwFuGhp>D^AO409p^sQp!C@O@k-y=Pd}fyEack4S7l7gH0!%p zDLTu3zL4V7+K{>Yr7fkMWpdEuvI@PKjkh(awY>fzJ+csh3|vtFzxB81&wp`yStkJV zLMSzOO*R;QPVt*m_Bt5q>4r|6+!hftzC-kk0@f8d0Ui&Ncja>qkt2+(wra17F*#!F zwBJoC$HN&Ex4|ZO%1cHBd>Ci_QHqTEz#6g4PuK?rn+ZTfs#4Z_=kxFHGI4p;4GZgo zFE-VAlAO*$h9u)u{f|aqk~lt0!_=0}ha3qVCsZrXm_Abu_;PSmb}&G&9$jbSBy;@j&f63Ta&GpmD< zfWS9Ylc&1bAs@{*^cIO@fU4^m(XWkvl3ItajcnT~lCF36T_#$J2QoQ|cBzwCi@+fS zaku@vb?otBuzgU)JKVYjo&F6o-)iHS(_+Z|uCTsCxED~sq>Jh~v%^oBpq$Q=GEzR1 zONtAYfZVN7VgBJMZ?2-;(lK<173%pOYnq?REjCYz2 z8;j!|i`1KQ&AonVJ7yjNDl@C9O;_ZBbKK_gA+OB;X9396)yRLaeNar;{=FAmb03B0 z7~6hin+tm$={&$yfR$RgB;~lkMtFy0`c(p6rTT1Icg*Qvri&~yeMTv93H|Q|ZHY|y z!jyKPsm;8Pz9?OPnVYh$oUq$A6^to%%c%A;JPt0yJ4adKzH|Iky0n?U5{DY|za1@a_O(XY z#G+~=PnBHBtibhn1tEG8i#U@A3Iyi5Tu{nB=H;T-wiCw7psk0oZnti`)a9*~^EK$i7IH$z zyN7Y~$Dtx-mtQH96qq6u=gp+QI1$;3{aK_UC``^G-o0@jhc86M_?&8RYRdZCY*+n` z*|Zkp86F6qsEv~}%vm<02Bz*gtLK6rdFTpz2SKgLT|w!)dQm6dWN>5gX4u1?sg&_b zeJ&2sns>}-?`pi51PKQ)M}mdh zGsj+&z9=5b%{pWEslbyV4ijl|jyWAy^p;Zj?iz}{@pj2GN(r>JF)L1W?dXTPppiY` zgw^JmcQ}`0`S==e zGIFsPo(!r%L7cE$ngxS`Aw3RI(GE}J?h0`q^ZKb44?<1Ljp-KT=rqmgKQ-Ww?;!id z4`+->a-T%{%Ia9?Hp`#vipcXxal*x`;0@WJ5q#$m|g zw{KS}IJf-xzGJ+1g)A|3h|8pLqXm$0_(hiCXCcyVcLDvxLpPb4lnFHf$Q=AMC9{{a z(A~lU9LcX-#-+Bt4 zsY{<@v&f##9c1;rTO*^>>|f3=~iplC2w!lm|A8zltpi4 z=i6w$O`*v z%7aphkiZSJ=wv97z1v0Q?c{7vI@|A_8&j+nt}&|XS6xiLWi>k-)FVAGq0=l^=jUXB zuKJ6gd$?L>u3&l$^Ne6q zdv7h?S~!`opG{oa>YRTa@mESPTFx7C6=DH$Z!U^3&F4}cntk8ML}`ydmAt!8EOY1V z>^B4sU=-Ttheo=4Jsd>PWoC6?M|d*mO$2Odz>C9-F-yt^TT|Wq+;0#>55}d)=@7}$ z4N4=eqZ>!V2%nq(=kvVb9WU6%?&~_&Ip1T&D6Z>1`;u7Wj%$rCKqs&BEe9lV3%h1~ z00Z_mbq(8JPuP6SQ@zo`3(xJ7wMV)FUV%S^)zkGs512iM?EwlCA$mS!_Q4Vw=MV1P z#@aJRL|mxaHg5Vp{Q;1Fni+kIGh9Xsv65?P!t9p!@UWm=<&^r2Tv%{yT<#{%@Zge+@%S*trMt_O zLkl7SY*yNHmM6DZ?Jztd#Hl=Nzjok->|=o^Q@;LvQ&_D5z_y7A%ku+zp>gR~iI6|y zqNF|bi1rUxrPl#ur9mBSQ3qPm1%RrQy3~-6Ye2YQS37(42}reZvD1f0<*%^{k*@tQ zI}6|Kc`)1GH9+V*w?5P^&v=T=zpJrOna^t5#F9VKtO_AWejOwI^ivgxXiaNX%V0p& zrv=**Gr)aNiBZwd#97j!uOS!tj5q1uY{l(phAK@&)}%XAUSg|=GJUA^{1@{H$yUnd zVV&R_&hPk?t5(dpn)zFeu1jO6Hm8!`S-El2=0}dmDFbsn0UXvgKwbn&Jd=W-rRyfh-0+gx{d;mS z4(D&Xh2bS?Cr0i09OUu+DLGjOQ`ClC-EYG{|ATY$oIi5v4xV_i-}@kIyUNU%AJEI^@OOav}hIMBDgLKWy=sd3H+rAKDp^P;+rQTJzoRuKobIn-)i= zjMnO!)}->zs=ym~!wgNU*l9=Nk9r}E9f?@>w0HHTBUK=&bjO`ywCKh}<8C*AdZmq! zptP3k(Kcd-7(-S^<($6FjCNn2(v zV(Km*)#M7ulkw;U>!qMDyaWzCtV{01kDeO$Eo}}8_A%z?=eSBi>sAElsRtJ zMLMDFF(z;$Zl;kku~%L3Dc8dMA))OqksVZ;+p#jk!R^zauO!IbXVjyqM#dN2)pKjX z1ZQjuRJU80Qj6oWYqbJSkCZjakK8A&JMPz8luT(bVL)&`siJAlvR7 zDNr@LDHED;L*-YB6!R!1N{D}wl(J@c6;U!&K0ww+mBVcHaYy&prHr!pK=tu=`^<9L zb$|(H8tMpN=2QLI5M-y9nxT;Icsc`3DTq#W+-?X6pr*_>lnnn{5K*@1094u1D0=Cnc}$0j5eGVx9*3*{;mcu z$f*?yrm>8mFYqo3T7)03M%X26zxwdU-G5v8(p}KCU2UXrSDsQPP6gCRWf1jk#|RuY z(dO)T+?1`9xTuOPmvluC!h&2$$onf&FunsL*( z?o^I-h{M;aSzE*G;o`^F?nqakaODLq{*faECXawStu;CDjHVkbyO+;63 zBkE4OVpK;+p5}5D7+t_0(6 zlKg}wVZFfl>h|>!3u(J&u`|lHd(Eax!=9qQ6Id*CQqvORd`Dhndzu}Q{o%~=cz0Px z6U*uf1M;6A-~f%35L`1prqc<)pw9_4`m^_I0?YxKjm+2|__@p`EFAMQN`qDLIzPyE z=SebWyE4H&EC)wc2sBv#YrikeHor`^Pf$qaa6-V_`bH?{m5j&F;H*L5CN8TD9kkB_ zlzb-=_Meo5S=n-#^m3(0uT{Tfq~H^8X_ZgtPHbF5u2`aodTNfcl55vf?j?yd>CuK7 zsLNny(DK^PiSsKcIAAYAvnc~j>|}6LmJ>NsjM9oY1Vmfn^ACh>C3uwi4rZd1F*ZR@H*I^xiU>CElO-J;+u@E89Xd7 zzbDQ+Eb#4hXo=)iVF6Wk3uL>%&&-8_2NsLJ{=Mko+C!ODS8DrddsPPAg@ikJu$YdH=O-u9*>L#cGV1HpYE zIORP3dnYQNh|)DzC0%9ZOMGQc(1U+>UR%qI_3)@?i2dYbCa~Sn1&0;sPn=nn*1Pn& z*PG-~cGLxHqKH!xt8Bo#Q2xP;_PE<)75fzE@(bK)}kF{{jm`q`ZT8O#Kp>^+w6 zd3K(2HE87CZL8`5%4}=rKBAY)ct|^D|Eq$oizsJPrt)TumenCKJkC-ZDQS z=;W$%b?C)Oc8PO!t}4=n;!ALQ+pLif9`LEuHRH#`(vekJ6#GqtjUvg$2ly5w#cte)z-1AUe>3l52G22B5 zmb&gj*<(_-9QWX_slR3J$(w^mKSIrIeNSFr19?$OLo+G!4|i*_cjh#SSjoZJ0|lZG z_m!4#qRozf*BwD5)w4OXxhC!u4`o>qoqgPyGsR<~K0 z@0XyUUju*u;;(hUbTW4)({Ju;m@>F}_7XFdbLYWoy0!9p@o4bemipPvQ5{plB;4fJ zD&&05yeEhj#=JUdtd@b7%#7atMIO#+O2@|FP$O@f{iGWkH!DyCDvvX(-Jm~polmx0 zM_8JnsY^H#On*XrqQ@(KaZ2Q&AZwaEZWgWUxNUwGG{EAA{7`b9CqI;`^FTSLYqTdA z@6BtDg&^60bj|%Jqq=B+1>chm`h{@W2cEyg=FjuZnH2(Qx69N`CY*dNdtlV$ed7bc z=~>PWL3aKsHo3PdW>XjnYE>LYOud+KcYQ~rp?}TupUGhTIWb#27)ZhL(2sEqO@{jSH8^L<2)Z3>r(;0Chd~?`AAl+2b|S z#H%N<0|rdIEi<$hQGEd|r&2JcZWul7XiaoU<72JzpSUA(BkGB3&+_*yIOw4Xc!KGP zxW+UWd|GNe$wHfLB-KKPUL7UX^#?k<_~X%4i4NUGGPHZb+Sb2MR`250X!O=XS)fHh zl5HCdva96Tn%fOgX zjxtt0>Cgkr2m0S)@WZm7cUr{x&`!qw zO?RHID59dyYey=(F)5zebMC`yRsK{)`lTteR@~!huEWxRT z{Bs;L8QVde{e5l2(py5A0((+qx31e)-bNv=E@ymGulqQq2c)`rw101Wv7a;5C$Ag} zvvTTw>~%|tt+8eCe$yP)LjJ<#SJvCL9DSWk^t9-TcP6@0rFTSu9-Q?vd<4_96%}=t z)qjZ!SH;ARY@Pky6YFC;_5@B-^|l&1D^7Svj7WC+` zykJNh=em5)*_T=}GmXDL9L{f@IE^o4$6n&WsavIXk?Dynq^@k6|{Pv}Tu+%iA@3VMxX* zEVAs{bu+B&_{%fE#6f(Bdp@)DXz`WNd)~UmlFKI~vkK>Qo^B{%!dlV}Kt8_OjkaA% zsCceAKi40Dlkgew;x`>9`=|5sofng?%(F>N`4K^_12YcPlJ+Pp)ge z3DA?EABp{jt#!ADsIC@f%0z^cIJiw{BFTh?iN<@O0D?%~Ps#;+(VvlmP-6E)NT;&WF;*z)D^M_H)p+hk$j7!a^v$!CYjf@?C6t|k? z_yd|q;_VX?!}`wIPfgDvaPY-`s;TLQ4YZtM3Zh8bC@%@dXp))+*1 zc@qG4kKm~SikB<7PfBr}=5?bcvg?o7Qw-igfFLECa4!R>neC_25OG<7WfxS!wIK*a|X{{1_^4Jb_kM>r7Xr z%ctXOI3@EYq>)mSiD|bj_x$0H-JF)Z9C|gjalJ7T!aF4TCRDorrSgH7Ke(#3a&M=~ zDJ@XVI#@MWs5lP)KCAkKC;pns#o2Q^P{SN!MOgs`P~?F}x*h_TUtZmOl>uL29*IMT zDZ!RjFG@`&HWf&>M*3Cm4HG1o*rU4CzU35nTHO>3D0ZQ-im?5xbJv@})XgoMU4SC- zB5b0c>P|tXIz5Q+^jlx!XKQ&M2-a3w2P?hRkugD9OXl_;Qu)%DG2kjH}mNA~Nv8 zMcsCoXm^qKRiXKcR)y;e3GX+{4M@URvzZIXyAPq7(Ca8gs&T}vyV0X%pp=bzHH!z>=x)_+YpQ;~`K57xgUrg_B#sclwo-4Q z*ENe_!ZD(ID6*Z}R69_30`VQMrR+LC1qb-0*R8GZoltD#`0kqSu5hSdt8}fsYd7WStR)FnE8_&O=Sq9ERr(uNO?y2;qu}~doPo{}dEpvyve{u>w!eOq`&~hs zzLG#_u#heA_5pbb%egORp~^1I1PIM)Gk@z@S_F~OrN4Yhch}{YXn}te1lde<3*Q|n za`xQ@L(&FRBpiG9p5Zw-nEv74q?E25>9gmZM42|G`#zOK`TKe5*l1x}c2YtPz8p=* zmh@HGIy6Q#4qxc3R~7kr0qen3hcD}>r1 z3Fhp74j=rymmeX-x{W6NdT#SxIitTx9Q;$xx$Ek`kv-;T_|oOwK(;`!c5K@mq)uBT zJw03yD3sHz%cDWK z28J7rvv570&GSxvXMl)1%-z}+!?>aeUnLK@lV@#k7tqu7!P9Hzv>U0G77Wy9uU4Mm z0AR{NL80Ls@On^6;9>ZV`Q7i5T9k9O$T#6U1|MC#W+$K%+vGN@A=KEfQY@DAUa`hu zx?X#m?J=p6w=|M}>U({lv+(q71&28-3a2XWGh57#{i%dLEV1DY_W{zd&zLllfyZF* z2@Pa1$Q4(h&U7cocl9i3m1lE`n&@9r1+e>piml2cK=5;5$M0|f>``9Aui1NiZD6+bn2d6 zD3Q|za{sRh^GhpYD=Bqg_Y)yWE*9AmbnlloPIAC7wgSl`{Fs9(JaPWcMY`{CLrk=W zfLZ1fE!eTo+SMJnO=zD54-9zbiUL>j)lBM4Jwp&k{M7tk8IN?h4t&GV@Ak|zekHH) z=KT+xq)-l!j?|?QN#wt_sxI=KU#kY@cMJz3jk!7oLxr&S*;$Ij>wDCsolf6pK4jh6 zu6l>IloAAN%L4mw7KZAF-SK%XGlxv9ENi|(#a*?K35&qzVD3n$)HSt9K;G>w-ak(< zo^ix>UMP2FQ&^p0pudiX{~3SiLPKTNOevZ;B^G#N4)z)cz2hQl5uj;YEKw2Xt0u7AB=rnveh93rc< z>co;tc11UK1ZA4qcuT$WtHF2*MhTgv-rZbTMJ9tdqa52n=W18{pU;|5>9Mi`G4{=0Prkj@u<$t|KcSLnQC11tk`Cg;Gff#FVR->EvHuM?Q0o=7e5n@`97Vpig#8h3=dUN2>znoW z`+6lB-*;iO@V)~lyN|@Ow53#%c?-P5$hY$PD6bBDh^@Mu2>FQYYnt2nN+JYj+RslZ zIu+wd+teO2^oZX(8T|FRq!j+)peBBMI(9$lza8Q@c5(myhnkdkV5mFv!z$~U@bjG? zJ)0iW&;2sP{pbP3e%b1gbN5689iNt#lB8XdFvAvuBN395qXH;uve-6BrS+my3IQ+ORN4W$VMdZ7hQF}OJhpcLoy zLBgazmoFhnA(on|iA>jm+q&=tSCL*5xpBmNF4vVE;Wr8{T{ZVq>1vJmpp&Bk7J(}_ zzTl~S|D-=xqn{*KGN}cPXMi+i4zaOH5$yTM_DZ>`k4chM5FgwrJ5a<2%5Kd0RH_D0 zZ5+chxpdoyH%_jr0t9~jI8c97GOxq^^O0}vn2zD*M&9~J8`bSW<){$PuNnE1;=nyz$e6S z(i_9d{$?nDX19ufIDPBTH9N#PvH1$^dau0k|Ku=_Z};jUG>#vAVa*fQZvviG+Rn#g6kE(C zQ36T-rRDGalW!D0XF}SqAk_2~f*Km&d!!^U@qUqgj+K!Aql5gLw)l4l(uq|+@{i4a zR)JZHKWLn27wT31+wbp`qPe)tO6-t^b zG$+u4v_o2~yq~r{QOJfq0>>9LFw!j_B+z>nNH}WbklhDN~y{0-JG7!P7GT6@#e8?vfOewCxhw8tn(_=!XJ&39g>DCQ#aK5lImW_21$X=!6(k`vP4TVo^nHJU`o72YXoSGT< z3g@bM;0ZAHW;2T--lQF``fQYEn{7~PaaIjrb3X2$@FCV*gd8!Pl-x)z4?zD*IDV{p zfqHKQ=*C39N=hkbWB+Qwf>kZ=x*n}X9jW-vXjjNoUK=n@Q8QkxDtPrW8zEo$F*{|} zqrX>@2pGt0w^!b@S4~P}_4_^2I_(NzG_=41p(FZ~`KcLQ`91Rfx~^Lga3ts4VIkKa zt9uAAmnx^%rr1#mG)_)Gfiaf)9KTHP;P)qx(R#8;q#I~f6u?%WNAn;whyDKhSan*c zjp2`LhGe-(2C8_#kzNG8(!Fudueu}{K+Ob331?DdO!No(x$?epxj3C4^A)>cvl_tC z#pg|kp>yK%T!zlt9d~1Wr)wv5`u>%N30>`Yu<$*}hr{!yi$l~R%iVkciFDTp_qDh~ z@=g!G=EuMx_xb3~Qt&@iADiw<4}^ruDyk`-h~R9SSOy^{<3lF4%Dd3>L)fvOpTtM; z<1L#`N5Rjz=L#j>gQ)imXG`A;x_nIGxmP|1Xq`F^o{b2o42sBK5xncL`gSLeFo_oVk_ zUPhv?H`}!THoyUUcJE#rE@DEV`^oFu_{mz2$etxrX{8wIdeC1WHbEjv`Uh^cIJUpv zc2~8{VjcAAKfo}b42fdj#$J8)4IE)Vvj!j(c8kH5heuMGj+b&u7S^21;sM0t<^y+t zZ=B4X{c8WCe9jfF?wPhrh2FQ~IpDy?(|!nKR968z1JO;Gjz@p05KiX|`~`D89Nlte zDf6diz;+Y+g!t_eFyH2>cjb{V4)%@;1&B-17{dYU6UY!dQtkZXcfo>RNoqn_EA8?) z#e+|N$l?65?eW4|EoPnLXwpkr{O{w!=eOz3idI4E(B6m2pWUf4^SW;n)H&E(#5z?+ z@N-_w|W@I5q*9iSgC2PKdkJxa@p|g}V{A;-4F?WKKX8pB`O89X#M!J;3{LhG?b1d+}Z3;P!x#C$x`0A#u*%^DDZWkp6tp)BQqbUvDr!v z`g1dS6&YJ{VES{*27EG=e4gKB2yivKDz#tx>L;c&n2=R9)A}@fMp-JAWX7F&zo(bX ztb{L(b}!^)qIUT{aZpzC0b)2@?oYDk57jB@6Ggk2Kx1T{$qLK-BK{?iE#(O!;j@Sq zK)bb*XEu4SE!o>GVGS^b@9}m67*_pB8ibVBQf5FOJB?&;=%w9=ANe6bO(V7zmRA4H zCA7tw_ml49D8YdB3+-6xMFBZ2YU(zf+f{=puVh zpfg3<^|7o2Dqj;H2tOaz7is#{~vVPwO=0-g!F=Ox}5+Udjw9`2Fe|6?Mmz`tT#}&&{TIkCPEG z$a@;z4bH9XR2ipDFq)gNX#C=HTISXj@|yByocxFL`0Qbe4TVUkh^(-9dh7Qu)Dpv` z%27scC;6yQaCN{TLF#c+Nc@=`&c}+vmuDa)e9pyx(8xz7gz2B(fs;6O`-WrJ#F|zm z4G;IWMcxXh6*2pA(WA+6cCDXQS!mV62m;A=kje+6$5-CN z)sbFu4Mf?EjBtijgJrL=vG0|a$@>vW#xyuQNLT6Qa%sGQw&BnEf-QeVVs^qC%xtiF zV2AY6DW!jRzQia{`tF2!PtRUbIK_^gRNcJK9&YJfWqYm+qsuEP!0*;RtBZ;?iZ!dJ z=-AcfM@vk~(A4PArfG=BzyFzTW_SFLxX5g3c$ld~Y*+mAYY`;yFdTDE$xYE} zd$B~4t)xe--Pzke%!fT9hJv3>CHa^O5gq8wst=_PXFNCNiThpC)9^?i`Wgr)FVN(x ze50e!6^R(~{D+v-EGdn7cV;q5iW33t`#oZzJe zO80CRt%a{KROq|2m-`9EKAt_85?H|Km0^MH^!7!CLex())?cyeMR7yzxrS~rJXJaI z47X+xYy^=q6H*&LIH6lj7Tix2OJb26H&HucT^B4C#}}>$j8q-l#XZWesi~#JP*hns zXD;PbTQ9Rl;8lrajtxX!=Tr)<@9Pik)*G8Zr1Jl&Tsir7II&NrOhI-FF8Bsr91qa}2hr%h7YZYfoMZ z&YCCv6h369j4T8Iqvdl>tp{Zg;6OmJ^l#(lkH8h2Z$JlH&vl@|3fxKfQ9aZt)cbk4 zeIVnREC7Yj)t-!bG;_K7MRD*x<9(KJeb`zJ2DGvucsVUh%;1?NAe*&fq%TQnUfpfvW`XbKBeu5@>xjgoE?hdY+pD-;4<>Qxi{(z zTj^0QH*D-0kFSj=Z_8e-C(MLCLSco-hFX0nG^w3tXI%qW&P)}zQ#n*$!uv>1=tvZ8 z1eMc?(sxJPcj$E8^FE{!QD}pV_s#zB8KK<#0J%K0mRLg*=-n_46!<6$A9I>z2yWday z)aoFYNHz3W=Q_)iW1*Edqw9}*T*qV`4wSIQOg2w^149WoDFZ$5jV1_^;Ymkta{8PI z;oYI2_#w@gMjRlL4hU{6Kp5spg?={#?MC}AeG5cLADC+kig*R!F_o>5E-pPEx)E9Dtfgv9e-(Ds*q3W5DB?o2e)2jIj~XY%hnapKEjV~K zUJ_ML?a&#ZkO00gAnvZd<`?=`Ups_X&CHoVQr-8NA-g6Px1-Z`HShN~pkFqQh4QSa0ljk3t%v_+B1Qd_jVK2Ei%haeQ)`R>l`7j=DH$b2&4;`3HdgleX`3znb`d7Lgo~~> zLtvyRuGTjDz2Ulbz}C@J$9(h&i5R9NhTvC3{ zwoo6$7>nne)f|rK*PG7FCs%24FEp6pw4)nPoE=>&BbMXg2%<1Q$4)F3kPAoYeZzO( zVe4OJ4lfrU1EUgGJ%)hNo}OWd==*A~;Dpqn;901?Q?n)P(j@gF)jWnMA#MQl$KfK! zYcs9up?G8t(7jh697V*xVu`Ka>gfo3-kbkeAs@+cjBn9J1_31i0x2Hnl97|9PrN8R zpAGb73o01T5>yQCW#2Qt7W&~8^AYC($Z)n8F5 zEx4FuYAt+kMzVn!jkIYld3_VK{nYTOSX5SX2pjc} zINqfY!4Q14JcZOa{ED6i&%eTK$;B`5B^;09pyHOxi6xF+XEQnknDZLai($<^&D7Qm zTU=P5c7)AB?<0f0x&O49qr8^)jA)hyQBHf70zP_p<&rY}Nn~B4xY{nLx?pRlt0t3y z^uztA4|sd7T+#OY`f7M{?S2jq-#^WE322ESF-(IRn1`2sUXNfG)fyYtS8R;A%nD$%vR~hb6H%XOX3_Q^-vq zaQ|E>?>;53&@ll%J5X5|UHti$hnJei&-!m>bv}M`-NW8;KngdLvS&t|3F@u?G9F$bVFR3lBAu$h^+( z_vJIp&i851pwUACa9vB6wCY4}=qlAgai4nGD01uh*+}uR%DTcV^pb0~Xf~;{Jo?o& z!Aqtpz!hv{>tbJXPSPT;Sm~_@UMr9?xYGrfhz%f}cxkeDs5= zcgw>}keR!aV&sKS42yJy8RL=knLF5Q&Q^9hof_hJ6?JuZ!pvmTmE1#;V+h??LCCTi zyYY-p7#7~>QlIHm6AV%I006NH5j!r%d?M!R6ET<$J*i*6+Zt%u%aAW(e=uQJbG2hn zLTiS>?Ap!e&HbnAd8bLAuuRV1E$l-TqswlZ5VIeqb2PpZ<0jZRDI8P80C-Gg!GKtuDWS8E zQv9w`Ts;q@kLOduutGu$`1wR_#yBn%zvFIJylHul1lmRMKRHQ=2^GBPP-dA_A^&hS z*Ru$egMLGwQktLwYT0Q#%c@h|OmyrzM;SRH>jky`X#Idq!Sm14tqnWb5F3Vny>)6r zQ+EZT*fISS{ZpMLp^lI?vhVbwz>Cp8g#&_6@P@lLrTR^!X9_CubmWqHT=%xY0D51U zfbbC88v>mdzf%lxc1HWuzF3*D%>@R^s*Coj$<2|+KU8x_LfpsLjhk!N*kro8p1v3E z!o~Oe376M(u>C{`1v%2k4_#`bIAj@p>5m($^ z%h8dfM~f|dm7ERctIxSv=S+&h1sUI)+iGTuk?rP}UBMI$t#e)Soa2^4BORU?m03In zaNPAuD2s-#X+*WMLH1eYMLSf4T*gAV%J}X$rEe`(*66#CSK`FhM5(w@##E3?7lEw< zgK)MvYYS~jUmMsmgR~%S^vn*Pn2{u@>hU1 z6Fm2~_z5KmbThok_=k_wPZB>Mz-jc+O#aeDu7S=W9ZsQ2>7vmqcIgIPyJ@(&@>Yi; zd8dPnr5$>u1bwkeBqin%(nWn*KQ!S2O)6%wQzhn^P)i|)lPQRP*>q*Bq>dOLpf$T9j7k0M%(-Ry?b zfZm?j$I}pzd(;Qj(XsPoek6ZcrjE$7ra9X$=7!8xH&e|={R};aWUUW7YsOh`S7|z$ z=75>G`}2ITwhR1r&scyNaSBv{_`UHq9O$sBSl(liXnhMzKGr=N3^*Txl2z!p#@4{H z*4BV+#HrMC?J|@bv+r~?{74c#)NykUxIWen(;#dTUxo7hJN0L~w`!V-Q@}gB*g#aC zsb9jg#L)R#7TxJmf@Nd;Np!hoQ$nWoGvH05Ehqqo6W%h}x_u*c>u=&yK~zoD%F1fjzrmj``;%voW4#DM?wn zyFff>d{Vhc>j;nhd-E|zxNCv?eZ-6k&E;jofEhZ;zCey{A2r&AA2HdH2gmC=tIx_cs!^mrT?TilD?`v!hFZIbBTCG!CAhoBM`bphyb#bSHYZ(DPKcuN^2U(~FKW=uB{?)aKlq7o$-1Axya!+?8Dd$2bO#0c#VN z;|mf95@=>BMfDcgEb??6=lr|Mk+Q!7+JcpGgZ8=R9bS+mPaMc=R~fd7bSe4Di{Y9rp}P2i*cCW-eK@MiYq zYMlj$;qE^+zR$t&R&Vxm!8Er6zmXYsnH>D4mJDe3D5Xt96Pl7Fx=dKxYWkRj_>wX@ zDmj1-CXMKb9RCVsGw&N1z0*Y3Tm4L*G;;h@Y=8JE9vrt!ZB~TjM0NFy+G@M8i3qkh zxN4{ zuuL)hWg8QyiL6M~FZoZy!z41pE~a-R;x?f2R5Rn+*ZV$zC$od&`AZ~nY7`s4C5m(N zl}}bia2rsYn+$WdDbNRk1lX~6FF2$q^(PO4eUA~Id1T$B z!Lg<5LVkm|^RvejXV1EZ|99>?X{KYgO4k)7qO`C32Mn@I|JC`uG8JBxAH*5&vHQ}< zw8XlOSm4|Jp$E47>K8_?ZvAkC{hULYVADMOOyc?Sg8?>gF}zws$5y;QI$s&PGy$N!Nm9%nJ^KpQX~~m=^0iwVLIshs<~i zKNyEu-Wa6b&KTcn(_Xh5*izeU(unf*o|cf`t&z0rss(*ht!bp6K?-DU>)2j?DQ|6n zO#~b~4e>N{-G>%8Tmz+rzo-rU&9e>KyrDD2%$$(!zX0K7o@ndA4JR3C^~*{czIUB^ zlKP`!6y0JiTg&Osmlkpfg#eXaZqwi_yJ(i!T&g^YiDu(l^&)FqJCS>4W+IsG?62N|f))EA2O zJm8$3n$y^M(B68?l^xRbtXSNR;9xWupH_|@E~H?HuVIJoyY%>Ln)kEKtc&+!RMnR! z&);frtEPCSCjP3}6F-wq+QS+R!a-aT5Q3s@FIbLNt`94q8#`WJ8L-LAV`!(MjE+;> z%1&jh?RT#~b>CQ%56$V15IPI(m94)jgF>rSyl`Z}U;GHCCOUy3G{%SqdykjHje|CD z)$6?)&2LQVv>B5}9?R^{WzC>5#!A=YxHMJ7xWG7^ekoq@2z>gUfN@-V|0Ibc#tUsZ z^(vBcWwTxNRTrB%i{xH6K@9*aSbf!{n#|}6_(L#A0|Y2RwcIHpd3bxOu=$;fkdw)K zasIV-vY7X62HD$Q>BEtGQ40Fz^aj~VQ9ez7s{&*Z-IHyHZ_MeQk6W=m?-ETKSjGC& zpg}X2I{Nfax!ar7I-b}tIM1H zr?32{?M08#gt@}2EnP=Z){ue(HBv~FUO&z_+sauIznW5$y(Rl+z6O)yu*GvG zX15x2?-l(e+cR?Ua2BK4fLL1Hwsuv2exZ>#Zq1Ew%|2#)BO$ym+$S!sEh-%7r&IOV z)_g>z=bW+aK>S=7Pr-0#X@-^`>K-7oJ^)muqO|K*y%XI>xvOY;`Yt5k!zo+jXv)OD zM{<Z|So8INN~OB-{8+m-Y;rnvOhhQ9ry zxkL5wv;;<)077;Qnzyr!6YP2#a!q+b&JeqO5SWb0wGR+RX)=d*CMf&aNo5D)T)Ca% z75L^~Ga@e^@Mp7WD}z1w1v&SCXi4X()js5Bo&`3U3C&>p2i~gY&2)B3rl0_YyYt7k zHMt-n5#@&tdRUsx_~b%|xiNs6ala+%z}`Fn0dC>Pu-qEeiB4!V3%? zFj~GZN?Q2XaKIZ&f}xiejSKgUMTk$%HDds>7bQj;8J2rkT9UmmPtN#joz5r9 z*#?Fg^k))0yL~fv0{V3|TdA)D2aG55dbC|2NA-?kbr2Zkk9}E5I93hE))eUjkf zHde%nY{^mL#c(aT`r(Tu2Y5%h-{E>+1)S6sq7yjhwKkYpHpYimf_3<@;dNou)st)& zsP(6@*O_WSl?-RK`U6fK?l9l73VslL@c(E!%djTj$L-T0F%jtjA_CH#!VnQqDG`t! zUDEj--CfchN{Jxd5*uC84dUpA(J<<{`5ph~6)!!8?7pw-jL)h1_z6<pHc#q!zxA-ozu2;3`+1u z)HJH4AHTE=9P8?qA`f$C&MSVc6P?(i@z}Q;zHX#x*s=|wA{y=u)MU6&KGm?K-uYiQ_1M^q@Ef@N(78DG&L_ zpASo=ou&NB7I4gV_x<@5fbUbzS^?1N#9KHb*vN-hkQ+D+yem>0?Eithd0exDonafo zxq@%E{Z6WV-DsLoP<7sy4k2a^P^pjZ_CNRcCK~4LiJ*80ZT_9m!wTS^OkARLsA)1eLkjF zy<~9qmMub2(}y(0S;lok`>ov(khc15RDO!-*+|p1p0uH32uf?P@_H_ zIid+XWoFn##j3O3IQ_LAi`p)0^itn?{P_o-?I`Q77(F%%7WMgp@&3q0<>!Uj4TNqX z%&`xl&nHwWjm}lLh$p*q4AYb*h=Er>+gD>>eJIOac*cORBUiDu3=h=w%|uBYabAi+ zfpf!KF8w>0Pp|c>1}gnIt`ea|V%i^L@NZ!Z8Q}aKy@%;$>fA=b>Jzp8yIxqmwEOzQ z1qV+&l}<)l;MgLDaW^<$P>94^Cl6)Ks(aXUWXqYV#&6(oZwE zCtlRh%u4dG6Sq6HVyxeO9o_9pF2%`MME6Thv43LYfp$uozJ=B$I7e=1)6m@j-Y+FF zrRC^WDLaQQ!Q3E~4!wkx*h9vcTv{?wJCifXcqJnTWGdSfpByk6!J|@v@2wDpjO+)fCNj6p6veQab%QT`15a2=-xERqu3| zFr{G^Zv(i_Z>R{RzlI(sq-yYJuMDKE!Ef-&tx-aiK+MpL4aOBypnZND(TvG{B8$Gyqh=`G^p@xVx`RjEVndf z{wc%(EtGA`s{})Nqo>>$z$y;M+F9)bXvA#g5Z85M|J+zSyjQjpW4roB06XjUACjR5 zQd4n9^Tio1Jh|j`_}2p|U~Ieq=s^dx@nl+TjhzX+(s$;ofdn&x=!=qUAy$$-O0u-B zyLH36LICe6D9_5fS81$x0Klcu@8$@wW#tPo=eL0k1@5-9Uk;ickRxEBMzWDl-S6S( z-3huq0s$`ItR@Qd+j?|2(&e+~)<9}l?;$J5gQsVV3s#h!C#!Uw4NNiN8ZspmR}sen zv{AdG^M-b*HO#0?Vg1f-$xop%l~Wr#?*+bYI(ejTvi!N});jwipFj~6N5o0_p-<7U zS2!)5lQzISwo918?wyqTD*WnUJ%EtQ8~{h!Q~~Tvw`r2!?v1#LI+*b8Dc=ow&S}xp zm3rNdQAa_l2T#Cdj5w-;qq3Is)s5WiU8lTn05>au}fdfy$BmXJRHkvFv(dA{aws%? zJ$H0-#2j?O!qfGskJ@K_l%OmQuSq znv@dBc0V~Lo*=tc#D~|4$tD?QgF1K^FtguX6nJp28!l85ap?UQn9s0JT48{_-z9hN z1)x{;76Aw=E@{2b$A#+_o#NKA9Cx07okJ4bIkSZxSA&L7eea`gGd{l`sLR}jqPfoT+xyeh(EMhhsQosN!(m<|)p< zAE5{Ck-ImJRo1N0q9!baKcDOl^ud~b}RlE)V%sy@&)Rr2@(N@LRb&U0kvycA`l zdS$(jVaDK3qa#|Fi)eD4$sMpx+Fncek*hY+?)ghz00R5^AD#nJriuhL?oRkY?*&fO zKRffV$|gN_yN>q*!ImM6w_6H@t&w)WRIL_vXN{cnZ@SR{+Nn)r{(DU=uCfOZwA6&s z_-oOxXtfBrhR3*e5f2LVa{ zWodb6tP!$heeEKwfbm{d+@mYt ztGs?!g9%QFySzh86U0OD52IG4B4@V?!z0N6?En;XFow{v%&rSoMRdH9sFiatnu@MW z<@MQClzlb#-Q_*KQTi^$e0?G^tg#jEa#JXn-6pRD+vbT)XXw>8y<`8QM694c?r%S^ zas|?(8ELc`axnYf_8FN~^#*SbCR+rUwaG42Y9Ub1;I~hM^b#?u924$#wAyJ|8(D8P z-f_oghKKwIoK`^OEfwmi8wg{FXwY7c^fI%EbVT8PTk?5D)1q0TG8R{JB=62@Gm%Fd z06NBLlFAYL)onoUx0+($v7Rh5b0qswa+ap&8Hh-69A3z3g4`ccW)u0!_@C)Wjoh=d zF-4Vz70Ymidw=0=oa~kHKQ}1%FN~n*SL~=ur=5i%=(l zQJ$X4^b@NtE;KdnfT-Q(gMms?b4Q52J}o}7F1vEvJ$XLwr;%e};T;!4M99JtWiVvK z+Zo6M;fve$vdo?BPJE>(&t~=ZDoxtjN1&m8GdXKlI5g3ju{8|cET`lr2KIinRGE~bLiurhC z9dNX76F!C+ru_>n*G zis)Pxlbzvz#O5TesaMhtqxu9d%>rtS5G3!>P)m^qLCfej!w&oke$8SMPYU+%YUomEd!UVexDJ81j?`=e1jE=)+b$p&BZ(yeLsk(|ENt)`FvnC z#BY46^qTKRsUV=R=JM^2(1Dss3~aM;8N{<_d=Ex}aNcg@={Ce_a`~&0-Igc7H0o5< zdGy&M<8d!SO$+~~c?bD&qDc--=yr->|5MajJn_CT6{;(FgX+Xgp3iRNJ_Lp}+a^=( z$Al#;B{?ffNmn45opN;3xLenpxS1>QzCR(4NG``rm_qWEb1wT3D*4hP+ibmql52{F zk<08;pV^`Ddi%u^k?JVfB>*fyX}h{@CpW!g<8M9wDNFscx<@(G07BmW#_*WH@ZXWp z8kLGyw+1)I7$HbH`HVZPx7Tj@JLjLngU*OULy(KbN!X5<%Re|dz!KzVES z#u_=fy&#PT&F7s0CaHH9k*#e7_}xh*IbplZ``gm?hPWpo3?5Ae84xQ{v6L_V6#=Gt zP(`MlLo41GD)$eK-v8A0iy$w+KTF$|O$UM%s!-}hA+09KZV@4=5Q3cdj&9!;C_kgE ziT(j#_DqyWa>KX8ATs-I@kS;;ZxUjn`XjdnF5&&boF18Nno>GRPrIJi6<)V_gd?k( zv^P0;jjr9BhTilH1WH9dVdX%7XuLu%I1hij>b;23*n}8jCb`^H@-z|bJEdg+HQfj_ za#>%)?v%S6&}#d1)9ZJm@a{zRA5F)pusnaYtJ@Y1zUs+J?i?+_^all`)My4-KfgQnrMzkOJ0>(0Qg+j9yM6m3NX8B6s5l zYx)nibRbdy|$iB9{wp>-c60sXIlIV_HcVx^#fJWtzcZ4K8H8_J@f z7TxkH^!|7I^>3h>3#x0VDhIeXNejV$b#q61%J2;pJ?@g^i_e?ck+Q7gX|Fyu#r*>u?oeJ= zL_d|IJGCUC<@x-F8vCU=u&l}v`)#^%tC2<5NpY>zP{&MJEk!C#?VpSfbIya@oa!v% zXvlqD5b1{ju6bEW3H$5ueqF(f#2unGpA{j~dpid&z3M+(n}&c@uj@BPV8`yC*TGF9n=D)w6jYe3Qm&(F z#t&`wzKywxewsCxOI-A!AjrB4Bz5{RR?h?Acb5_|A~v2=Mwm+%W$pu#3>D z+t}eF9P|#=0i6m5Z+|i3%d(LIRsb{jt{p)0N#r|sOt}8VzOeORrcZv5@aNtz`{wPU zWK7vi$w${K! zb~E3j-kTCrF&EzKZZbfsrsK$z{{|5l2;T)e%m*MFHnj!n+tCZLo71cspoLx-1SH6lu@|83JZ98l@wG4u4$@jVSY9mwYR$V9)R(J#GBc{et+0TBX$OO;RnfbD!NNJ=qRD&7C z9F4*=#52U<_ydwx7!TU4GT=zjh;qx4$9J`=!BPyj{ciU|cK50Fb> z%xYJUtFr2e?u<=JC0X2~%-{#=H(1*4STtS|Uc0@8^m^=ocAJ^!g|gz`atbuf%Da2A z`UxVoS}h^b2Bly8DDn+YX-qb)8W>kvpu-(@P4jCnsI#WqTL;i5qjNEnFNT=tQn@{K za}Cmip#}y=<8uGtD|dKQA4HN8W**jE$V5LuE&5fs7p5Nr>2}u-c&>-! zZl%ev$E%T4)ly=pcxK-m*h^ER-=5qpd4qTb7*<-!SjQ$6dxo+Er9M(nsgU(;Zg-oC znzsR(L^gj_u(}kna+HEQCoCWcyJT(-tj1x-LZfXqEqy0BVf;&oymaP_BcSf%D&F_S z=tD(@e=j!$R|PeM0r5tWx#E%_P7cYQXPi89KX#owS{VSs;4(42r_V!JVzK_pxzI^U z{@Rf>^~55>a6>Z{+i+qAj!OO!6D#+Kx_@nm5WyPElB!I(oJ)UyX+hsbbpQB0ufk)H z!S=~Wx}ebAzh9gGNaeNe{gV%^uWAR1$xh}&PP|H9FGw3(Ds3@-!G8GEV9A@B%`B!@ zBsj)^AKq9Ga^Ev_efLZ&e<^`Kl zj?;>p4U-pB_gBX$E{@T!Ht>fF3$Z*q0??}#8E)a)zyybY4OYh*4-$mlCs}2>~hA!~WD1futrB6n+2Wj6AMepNB zg2U=MJSn~{!zS9v-~70#O{otM>kCY{f@{A3TId5AdYbrHE(3!~u1+cPE?^?WLAk|X zCz`0VKNEc#^wiD>CzV4Lm`jnlEwwY4qFd>ne*LqRhP;ip#No1PWtUxfiQ2KgYJ4NLe8D>I_zr&fqb~_lQ$cO)BpT&^S3awO1Ugg?d$5R6l zc2%F<_swct9;Oli*8*1>_*YCw)+kR6dS5S6nMx!s&MXfnNBF5W*yU7Auw+lLi0xR7 ztZGxVuf$vzxl$RBRGvqAf9x=^#$XPy@M)K5FOvC2-C5RINXDuFu!=d1>DdI(}IUlgG#%2){NVwa>bd zSZv#)8G*@jd&Y<=y{w{3$-svzK-T+WF@YP6j1kt!sY~wlVmv?a)yJS3Sx@q~+ua&! z=GyoJu<=GRdgY2m_bR!yi8Azlu3WU=`oEIuRn=EVnH>~~d@$mPD1 z3x2K(xAl%~Q$%m0q>{Qs4--V&v5Q=voM*?xl7!9{=J`6cLv?7)3+N^|DMVTF*Hi)SyT|>Ytqo;?BSH8p`=*%n+n>Iozie zxfQFGMzJ!}azuT02R(r0^{Ic=9LWi3`=P0KU7egI4|UB?y9#b|dB~s88GF~h`8|QJ zT>u1k#Btqc33|aUN&y$Kmr-AO{sJY>j+M*RIEOt4Xu}F(Q@C(p+M1}?cO-R%RuScY zbE5`ib0AN&b?wdx#vVp}^llMk6BPX{u1$e}9G) zM#VjGLL~|s=D(DhJZ$Ww$2b0pW~Q)A!t}%W_s`<3XLkaPBt6&1i7)=gA8&!dl#j}> z!~|H0xc4b;hjRHmi2;rTp%Ra1jTW&7>rDqc(ksaG9iC0yelj90Fy==E$U(Q`PxJz#+di#lG(5_QVMJhB2Oi`-~={7NEfi`3R$u7*vJW} zJeq~#tx!))86$8R_|W)aeYR(-j2a+8BO&V=f(e{A(f8u@*Mvy3@eRYmK+6B%sAkG6 z{n0K9uoKuH8=^_siT2tOM94^&4|3A%<6TO)SuYzoPwvJ^zy^lGEk=Eadkdt7WfdjX zji31jXA;sGu=6c5=ew#H;BIG0@-Vz@%f?ZlS>l7s`Ljl8PGO4%cp<*VdJw%Hya~FW zevogpgCFqcQpbFMs=}hTFtUx6?|>~P!%F4{au$Ua)WiG;5Tn+9mN$COi!CJ=w-QEL zdyNl~v;Q_ezF>##6rrOAd}yZc)Nhmc`vcW#5&Z|y0b)GU;Hu{>sH@-qZp&A4n{hVY zxf=wKLpQ|C0!63rQ-n}MHK*iQQQXHGGo9)@V5HfN+JW(>3#0-o`o&oxbAP@UGHnF$ zr_kwx$VIgyb35J(|v z+5XjvY9F8J^+Nfl@20a zuA!QD<{FLM2Xdk6j34^_F|AL~WbUyAg2*48lFmRUgIoOYU0WFT^gs1jgw6&zlnMQs z#xHLeh(1)he8{~4mPjb9_}H#6xT5SgAREspZNT)6x91B|+V2D{Vu5`zq(- zdIHn55ITYUe?aAgWfV(Ah~_X1?EFq_{@a!8X}BdBQjQ8QNxWX>)#YpP@)N5}9eVzw zQ?0l2Nn#JA|7=kci@s*5Z$qrn&&GhfHknbsqCx#*qH+z}aSprq`0j{ZT0L*vR0WZ_ zBoTIvRAqv13?2m!17YJ(+@$m75+OqvphIs2`ft$+30kpN~Z>#&^!BT0H zyy*GY(|qLjgA`#q#qTD5McU2b`~)EJwXanoPtRU^EpKtqX-D6})gFnwJCZof59cg; zSj~`5*am#qpSFA=(>$h(-(vR&70l$oO{bk8={;Mg)6eDl9_PGvIOtnC=Z}gajvCxF0k(1 zQF@sSiLf)00y$?s>CLB0Q%aQ8wkOdh`ei9SFIG3K9;Cf_UdX*G>Bc~4Q9_V(g6+ri zb!6cQ-(-a2PrBU*)fDXsj2j^t*XR3S1}has<}lukZxfBS{dFm9;l(5g@4d-6c3weeRwr?WC3>_BNwY;8~dD$N*v*O>gtT? z`K1D>XlGECFM!OCCX=_WH+&qdch#gV5T$B>UFsT*C^5xjRw8Y1EzrJs%=s0s-Rh;^ z7{4pCA(w;8AKqg&$auQwI>_laUQaG^ABEjTYyFx;+C7@}vq>=vH#5cVRsg-RY124| zR@n`8XRfcn!HRfD)XXmTA2@!KS@a7RmFe>8Z!=l;mWYyO6rnwL)7RYNa!kEge6yG9 z|0O$o7CUdPtQ~%G2iSZWc7rveU(25==r0}?L(WQ=GsVv;uBf}#(Vxm{)F#G3`%JfL zMX7=1XiR*Om)(WCSq$IQ(S$i@Wf^CJq6h}Qz{5zY^rz45r?iNp$Gd=g_e9T0$3!xu z#btygYR4&iLoH=cJ)6mX8eSRpOGjE!^Mk^q|F4*;S@s{PyIt_4floJNjOHDwgS^Rw zVlxZE@+G^SKjLi1nHq&>HFI3&@EI%PRUHFW#n@+jv>2Rb>g8^y2v9E?I35cBx431n z94Zit_rNCR&1^5k-4(cPU2S-uOLor{cpO#j!3yF&Wk!1qe$qBjpy{7L76l7-@OsgD zd(G$t6E|b_BnBnW3)>K!-qI%WSqP-I+ z7!o1Rw$2=)Jg7MHvzWRujb|$AYS3)9>-S2ZrIJEU<|*y2>wAS3N$O?UcJ16S`2o{1 z&e^B(S5e^}{`@sPy=2~~@A$g074Q5g85SICzGd@%I{MokdMR?*H)HWmuv31Nm%F__LnnsBG-J)Kfm~%#8!#85%s> zKWLqqLTX~S=dEXJI9Q?1G;vSmL&Ln6qdeHXsnTjy$lIRQZ#QozI*mR1+)SudZaeQO zu5WPi;i9kva`6mE3QVr*dPFj}rOiybn`C#m?P95|-f67qa`^y2DiD$)cZ zVV?I;z%w_?T(-HDOZ)Rx9<&W=YO)Ye z1bD?#>&&5o*(8l?yIaCI`|_OWW4=dcAyIb*&dYf*+jgMycZ#szUBuvX!0UegvYbSW zR!PSB^ZzSYE}tx>vuB@g&Rsp?E}nf}>D|4ph(T=-L(fqln34y+xJD?zn?1 zBN5HtM%!TjcV~UakKg7wi~%+$>;C!M3fU}ZwgRD_pNt|r5Be*H@@}zAfyd> zfC@8pQ!+f6$b%hH?lcmlR6rQ%0yAY0dFJAxJIO zyK$Bs7j5P0%q2E9btbvOnl=0M`qMv;;js?Q4~Zmyfb}wlDY)Y}BEMOCCrN^ko_=Hx zX2zxrap3Bbbftk=r$n@pT|Vy!FeRqO$1@;qqbB$`1L0?U&^GHFL=o6g0XkKfbeOsi zCf;9}Ktec*wB=#7%=YMYyn}m+IqXP#|c_>X{r3UP{16s>KydPvWA7iO|M;RUhy($S8Xd zRmv(FHF%5MVrjWb+`w1HYJ~kj<-GvK?OmQJw(k^@V%yL+O@!P@sz@LqD^!pD0>{Z~ zm&3$J2^u#PA>OZ?%;-R?5A_2cODbPP1fv9m1Bv-Z>)R>GnB&`Y>C3?0hp;*`xSdBf z?YtmJWNFHNw&6cumJQafvWu#&257a>bv~!LOW4bA4rg&}ff=vH|M)Q!UghogBSbD} z(A!#}@P`G;JFItxfvk6b#lG+qs^+f0AVyQ1T_QK|r7sb)+e~ZfahQ)!w^!$Fs64m| zmoXtzJYOlY)=cw{Xu@JxK?~6_8)i7jr|(XxqVUR4CqU4o=N9`pwj0IP$SlFU14o6? zb8kZV%0g=JBt`ktxa0T;uSg~SXXGOH4;SM25d!G~Heo*ESys2|Q}G>YKH3TWQgZgs zO(sT9{kO63Tadu)wGurI=W;mAg!XR5jkMh;oOub%1zHsGwp$l(S=;{hm6J-PTRcsl z;rOxhnX`vDm|yimPeMJtoO$?3+0I+-_2d-~;#tS@p{t@53f)E3@~dvd(;%f36^E9i z9(0@IP|{Vo3#IxJvx;l1=^`MV!FP{8LaV3}D}2vNAvN*S%H|fMZHH~w60x*(*g*iO5=l+=g)AH4jG6Vm%r{1nb~C*vy?5;b`=$%TTT$Yd+v$}9Z4zq{~p zm#rygCpAzXwtfP(luO%y5YANh_Vw64tr>(JYk7q@9AN8Vrmd^N+o|t%oe^N+>x6Fy zxK-oguz|dh+h*X{%4T8T=%8n}oxq}og#x^nypxP2*_6G?_%0laT8A2P9oNfO9^ZSb zITmoAYKOdLU5g2z*-35PGtcLavpvd#2u|0s7+sYxR%=A=llcJq=ceOL^)JNmeb;#L z!*aAk8iB>DYL7yy--2%VzR<9@c08elsuX5!S zLq(OZbApH$ZlTocD~^M#m!eK~yX2oAZD0u=NGajagSttgMtktr>s@u`7=8@kDa1}h ze<)-W`xeHt;JALdpI{l(JrLbG5sePUceNE%OBN@g&*z=npomgE2%tHt`uBY;=d1vG zp6Np6M$X_JgUPX7o~8kiV~L*qt0%diTf1-k(^kB!hitdImgF^u3Vxo-jZ;RLRG-bq zqfeH>!P)!TbJ&$*dOlsPeWxud5(Fz#@8?I8wV>Pk;&o*D3s+gm+(AvlN5~O&&e_=6 zb8}TFP*C}N3Ud6e*L?&nwm#d;it%qFp}cjam=`ZDb4bS}*pOEyzHP)vM&!S2`Wr%8g>vxB4GC!&=iM^nWdiv)O($ zn1hd+zjyQBuSuO?EumY-h#+NtBL-o*+nj0BCFE>uv8N&B%dk8ZU92ly;5~Y?$^y|G% zbAwx4ckJZ*KhI@vPv~Dlb7m4AxtCsh0|h^HUWGCQ&z$iRj^8sc$@}I3W##R-@HyAn z(eWwSh5G5L6!g#Ob9~#aOe)dLD%uIHq&P27)_%wt)vqi_pQ)o|O`03sWb07(R@#l- zLcQ=#Dpk#c=i`5UIXb0OpM55BgW`N0s#OE@H875S;jEvBp`OTcIq%5SBNzwBd0QfW>? ztoVI;XIi#WZ%Yx2i$ytUD`@AG7)$GY|V{KjwMBt~2URG!NpiO7ZmUBv!wrAXh zt~UoIs8$b4F&B*fLy4JErcG)3K1pPXQk%zggnj{I_Qh}lsUcI%eGE$(4g= z2Ij(7_+hgX-CD67G~2dar@8}#`%?wHnWZ8nn7drw{)%=Qu+1?QcpYtXKqxdV;}Xj4 zn*p1(GVk=a%l|vZzNQnSl4DBLd?KVBA8PgqJQ#ZF`~{=kiFg)`H~+YXgSfsqboKxS zyX()r>3^$es zK}ln;{#~iuKT5tsD1q6)k^rpcbp3OiuEp0MG+%a>|NE*V)+W(iv7{i4R=cq4of$y& zI53Y~erNmpJIkIbd*tm~$9hUN0$&(_8d-mF)xAoH@N^Q_Snrzb zeqVN8C46?P&6|4gJ*wW5MdwEt_`Gl@_@+bWXXY>zn`(g{mT6m#0v*}XUgpZy%uvtYpbnpIcj8M}e1w+}OPV#0C)%R&BqICsC83E8^8tVEhj->*L|_cL=`Sj^fbD-urRQvezPcjNllevEBH+v@h*niZw#n5~V1vXZg^qa>dm z$oohC3TH0r^$(4L(o(BPY!#N*VHYu%2p$#n>RFVNS2Bi$$(5HycsU+3hsT-_b4sIB z=$_wqFfl}=J5%|rtA_~*6b1<|zwDmuHsVi|N9uZF7Ml%Bse0f-CD)OP9%{wxL$w#| z-8Hr|HCe7kJWu6;5!I=mk#Fgimpzw5sA7jwlNk5U(?`55YP+-Y#^uMa%SCid1X7Bv z(OkT`8+Rs5#ms4XAU|WyBM}=&b3)?s(^R}48Mj!UML2dIXBXUx@3425Hp5Xi-{WGw z#(Y1FNPTKq0Lqy)~Oee#Qy=xy=H=IxKS?aFLN5|r9849p#>*(?qM#AAY72w0O*U!bF)B%g7H|D!_XhZBqP*HXl>14*h%zH4kLa!?arJ=*N& zsaTiA-4srJ0Oy*&TH!`nps=!|Duv(BFymg*P*G71u`RG@cD0?ns+hy$S-g$*{_ zXzvyWwRY3j+*FhK+Ab4{H@E=KQl2K#b9Mop^+xhwKCk9 zSQEuvQ+0cmU7Gz!A;Px{#8q38NyKkhDK0ivko~c^Uw*^!L+H~66i0i%ybosL;s0j= z$hQPKL?QlJ>eTn=gr}S)Efs4+Imm||kCX=}Q_D7H}3q$IJ~%epP! z@l(tmF4))3lxNpCj_-L3uKqlMch5xjB^{8xVRije^$ImY2f=>qg7r$C3M_f5ZIPm4 zxon-|rqg3Q8ak}SoOYryLo+xHq=4cZdKdj)Uy%G|r@xB2s*)^XmQ?)W{wRz$s!Hfy z?;38bgI&#D+0}PWaG;(Z3#B07H&Eyz6g8JG?0 z6AtrwmQ_OPOBjp9incx{OH8#BoK5A*!mY1w4Vy_u*hTvMNykfP6X+yrp~X zd#>VKZeQ!dzF$5w8r$-NftQQRoLQDw-=)GWn&KSi6%2?^#~fipQ{GnPD)&;!FUor2 zk)(BmRrU+R$3C8K724;MN`DFdRszUjR1Qp3mY;n#qPM;z$zqR1_P!M&+=J6FW(E-!wZc2!4h2MTP4# z@Ko^EKYxvK7vc5&027NP;l0@E87@9`HwuErDZ2HkE_kz75Gru3TD_oqEVNX*cssbx zy;FeQe^cMk`m1W+2Ur+8_hOS8piDABy4Gr|FdPp{o+! zRq~2w)mB-l?yXm-6#=H!$bP>pNJ?YQqeR&Di@I1V;@rOZ2E3e{|4WiiAH7XjE3@#Q zc2Ymyo8;EFJsScuLK5p~vPa21=PP70iiFr+LQ3+?$+vaD--o zp1NaW%s)GE(;;J;rsj>HS7&A(pzN@Ho=3;F`#j+I} zvqV^&XbaQRNP5{a84u;e_KSx`tea2iC~I7HwzB?3CLt;hYRiw`qO zVP^XcGo23ix2O0HP2RZUQ|vvf#yRM>bAQ}$PR|p`d)nvxBCJQSvs>V0ZDA&Bv$)Ut zafV};04bK=uHHWh5gW3>R3`4LOQXPgt?@*Qk}XREED2y|+7B8Osgi9>XmLVtUcJJ| zpEM8gq0W2*Kj2eWd|VOvjWBnX97`Zxp>M1>%UfijGia;0a%g-3W9SHVl!PLT)wbRv z6-mD9-79zfIcIPh_IG8C^vqI0Y*X6RUukpz*DMepi_zloXtFDkChq3_h5k?dWBEoV zsZ6})v$8oW;<{9AY*!v`rW6U&J(z&xPSTSYn|1cs+ykOmYKfcY&>g-;W@##aP5Nck z<(HerpfaOAML&*-W1C2}*3Y*>esvX!%_B!lH2JZn84`j0Q--CIuR!C543zzJJg;mi z&1wNp>uS6p74L}gUTyLo55!+3Mw?sh|{iA z1=D)PRmX-%hG~hP6}l9vXEhhajss0bK;d_cf|eBv90#XrTO)Qt;;wlX*`tlloCl1e zMQ}-Oe=ujntL*S#>yMI+u;_jlSLA{q8=k(+b^qx~nBu)0UCIAf$dK+v zH#KVHrHfLhp=ax~qyn1Q@zSJbo9W5&by2!b3$W_wV-esZ+9>tfvi4sV)E7@?O4!=U|F<-sf!&gXsEiqeWhS{_8S>>COoQsD-_F{=1Jo(uh;r?^-+#}7 zvP)+|EXtR@inijFH?BmENnI=oN(F{ya5?z^8X)+Av7Ar;-=Y(7f*1Y5cZfXVVwTtU zi0DG52Vd;cmJ@gQX?I;eP`un1w5`Xta{VJbqvZV}VcKtgB1gm%@b|MVc>mU+WqEk) zH2Vl;d;(Vpm>2mgR3(-=dCr_AT}x(g$UUBM>%Gs`miPVO_xURGl6GLa0l0cBNHqIZ z<^N~?Taljl?S!qikjQAVOa%Yc5eY>zctZWrfxLx}x#M;0vlic@K1QL-J`+-($_r-kP) z(jd{r=px=gg+>#wu{tfP&`YjtpVT@VT=AXhRi2GiUuZ;yzRxjm^C-tnJ*KJnmfz|+ zP|Q&M^78_w$T7=hz1Vbw^^V&z|4wbhbnT7sGI)UX|Mb&Zao0+Hs~s)_36|@Zz;V48 z{AHxmMLgFwNKu-G!oX$(Zw6-=3e5UQ(Ju)mNK3}<<~dxWOYeptm?w&ou{IU>-UEC^ zm7_iC5dPd1BELty!U9t3?5ao4TVhkOYT*;T6>5Z9sovXy_=81eEfK|`T9sP_6*oAN zjW!_Tc}QbV-P=<&Ht^t+Rg>;Ei7d`n-nOXn|5^uI|CY9v(r*&*Z*~8|l-Wn4IzbMu zuL9|4^?SN71rOBcQ(kRLqiSu-Kfe%_$WuPTP+cH5Ut7k*hK(0K9vp485bsxY3W{n| zpgG5xc@v-e4twUwajhyNT$s4B>EHA(JsYp;?wb|sk5BLoI)1f=AXjm4jgVovj)^@d zKxe40z-?PBSv4dD~gDejDBQ9p`Enc9J#*%PR&Ksq~FctOOpg@))Zt0^4)l;sy zWNn6tzNP6N=9{lMz+BaP{E2P5DVwnXLhE81(}EHPbM$h}9y0(8!jT|;>KnP2c#i%h zjHPBMNk}y_xr!MvBGiVVj17qrQwhbVz)Li>MP}gqBa>Rc(n6^OyMuaU>U)n<3pgn*9g%si`#0{Lcq>5VtW~dw#L}i zz~MJ3m>uU5S#NCm8$&9vYUdv4-Q3T8LTEH7t4V5*QkS@4JH7cRmS4lynkima{DiPFa&&nSmvK)v?YFW5;n*yGTfwA$SMD8s#r#5-lf2fUMwZpR>;$neYj?>^#; zrUMjjPd8O1vfvjOcxvRx^LRg7F;sR;2x$xDtub()>mJM-QQ)qnF*3<(AG^p?T`=vT zM5AdxS5B^)2ec-_$=+)5HEEyvQ~1HVYj+S0d+#GN1?IUW{2?O8C%N}63yB0oP_t$L zd9;|5WEHXTc%(y}Su>4;w8f+W9frsJkiV_2469zl(A?cg`B-seIpwgN4yR%k&JN6Ocya)6i zx-&bBbwAy3qP2fJLNY}EZ>@^wujZyS1bbMwDmkT;(JnLoje=C+@z&DDX==xg#LBL^ z>REBbxBl0<*ki2C)roK+L_nepz1VwEM3Ll0K%qUMAG>s6@vg|FcDWG$H{Ox&;$4Zf zeXoqtgXx^7wXuaf-7qZDzZ(iw^<+2t%uR9DTOrJ-4K? zWAeb>TN=Kp$bgtV@ph}dnsHkUw~$0v;zhO;aUF~8Cq>C6L)_#{ zWqSP~6BMd2*FT>q2TbgtywCb85jvtMT^dsy2ObI?E1HnliV5n?mwIoUv6dhe;RcW3 zo>0>wUOyX-Ku=QR8%W1H)7wC2VGZ2Ix= zpuKp;rqF-=Y(EyG<;)FNHS3eoyS)H?@AGs?D{14tRVr5&$r}#6dAgJD`^gO7k`)u# zd^I4-TslQ1Ha*P`aFA+&^s%3|G(W0kfVn0=gQ=RFvobC&=p1`$o1M;cqF$eBmj6f9 zSw=Y#5kOc;u7ZLoN9$vwGcw zDbQxfthD2l+w^RKK-qNErZ^Or9;Tb&L3&`zDxnH zTwn6R-r(+5FsX9dAKNr=>)^$JsRN7^Xg%tS+M;Sr+c;=>9gNUffruw#(iB3~o z#?51rH(wU&Y%>BnH_HcqyW#GAz;OO3b~?^r;2GXCYG7xV+#)fJ!FY=CRcfCp6V^BD zzyx13qw8OOSxrZv>BU@XBPDBVU`i=(mA82D19i+TBH8ijKDF)ERL<}_@tcfKgD{-Y zW#AS=__I*|*I&h}`bEbmVxs&#N@mi~3^cxgcgh?PO9R`s9OA?I*s7oOO*%sr;b<9W z9YZ*twpM;hrUX+q4_XoilP}yk&y!(#M;L+|tKqLQNI2^(W8-0!_DYxRyP@x%1qoaS z%}YlQXe=B>lHR)NnUm+(FFbD|F1L}g!CDyv8)pcdy%Lwn%IrcM3;?~T$ z`Tev_81TlH6>yecX#LCNV{xowP|*->pzo>y_Jk!;ACY2QFe(C(a(0!ycYBPp2j^_2 zDcwoRSAx=rq4XqD&B!mJA&7LPZp;+s40u|v`9Ln%zm6)5NpIlou4 za@(4e#!QflgNr}WFJF(}mFD3T_!qa`9q)tJql7NTE9xV0@b$e48~y>*v5kTdv`$ZA zr8|*9@*|~T@Z^rf;I#D~1>30P%=liF+jC*x$~(k1?yF>W9GcVLLPy--%mnlJOQYoz zsE{`>HK$wR5v3q5sCyfxvSk@`ptfA(WsVMeKd&UpbRc#Cx#8FxTzJ*A3lX>ItYVZmvmH)1 z$a38^jqjmr!@d$dcuq3(30XFVnEvN|nFX-0^8kdvP->d64lJ<@VoZ?$D{2Z0H;?g5w#K-bpA-hO>|yO@6YHQfE$jBV7dN z8(BdUjvXb(clzF+Vv|@87?NUtYX?qCC^>95#iYPfcpiINx`zO8gi> zzfBd@%__;`d4HO7RQ^I$SH8^(%tCuQYz}4)gV_bQ11k*Dof_LY?joE+HBTrejwHZ1 za7Zqwbhqd%68-k8kYTb&;ec~~z0MXdAwW~`^O;e!;za15Y!sxz2R2VC&YqoAh)lj< z#(>UZCpQ!y+wUKh@5g-Zt?s;I zOI(dqSZ;WRO2+7{9^QJf8Ih75(dOp>aH1J?UYwPod7Mnr(D7kiAn{^!VJo4 z%t*K5X?+s2mwM;oA6xg<(8cESJ7k#DS>Df@j`aG^_La>hlC4&m!fRMXF3qA4Oynb2 zGOt=1xpQDuTBYl~PP3ARLMNl9JY?!Jzypo^n+n4QTN27*O~vJ= zTNio!%Gx*O*7rke8sk!vONm%7VBbao)~QW7%Yu`2lf>#TG7#us1K4|x#=$WsjmL|fxscg2a~gt}T27O^GABva8@xQCd3y!WW*3Jwc;B=@(yeB!#kj7|yYebq zcDI=8Oq16fl#hPHvg5TTb9E*`6W+jQvw_hEj6%hXz)XDdfvmlj92MVK&{CY7CZT^T zm(Fg002(WE>xXJG=^zHz6>M4KizM$@)OrIy>bdd>@MM3GKunL`Fnl-KjllNcB@?mkpW6;>?Pz>}yj1DUI)Bw? z^LUIpkNSF#^(ay8mxmu&m83OlA{5>oM4}PcDz}m83Bz2epiVBY&0jpFTO|ipM6_#K zrqa#LkM|hPqn00V4%e!PPDSjSAArq6@bXGVmjE*>k)baUS!kNQa(4~HfvM-dG`iW3 zETYNvZE+^nE1?VTV`51;M$|07X6rIVw}W`1cxW(vE}RX-(x4_?LTjdm6Dnf@0 ze?O>O_+HCF8`7QO`i7?Ii89W-novjp@c^9%I#(x<7=kp{W%4=vuC+e^8ZGAm7lR8n zJeLVh@>eHGcMf$0x&J)=jLB?=wn)|u3mHi*S&e7NV55Roj=Z>4n!S+71t^HwP^CdOc7Y#}~HA0`!X0)qAr%VpQ$6zqX$#6gjwN-G)Q<_&>)k zZAlJHD+T|I;p<|{a&)F=r`Z<8HZc$!&V<*&qR-(OzAQf~q!*2i2FFR*(QF+*WJ-%# zv;(H`uw!>zSQJ~h@OJrJQ>2SEo>ag(F3wt-{?Z4wc09{znYcbj7E!1vH z@|s6=zjpoi%iS$^1HbSK)ij6SNB%DRqDq0*cMWDz86(jq4or!S?#LFheUVjE39T&+ z_t!D+O+Ftep73Ani{lo6;=}3bV7}51JQi7n{rkp!J z>R*w!gp~~hNqKR$Awxh7%fiXs*xYkIb=w(5>ER%-`oE4>BiQWz5xPHUtH$) z+@Rx49#wL5s7gC7x~92&r{t%3L4H^B?5degauHy*lG-V7(dB_jhu!>54gAB0li@n$PvU#)7DGWrz8UK0g3$gjA z^kw`5`o!Fx$PS!4PCPeUT6GQ`Sek&;*bTr(+OsKJ7@2ukhU@%?k>Knu*kN6tw9BkaZ@{NzOcsjXnMPIB%ZHX!^ffk z@rz3&cJuEi48yod=w6!*aw7NgE`mmqwgG~k_g7mtRWEOnaJO0RUwTbxD3&xU5D<#x zxSe$n`&LNW<}0++hW?aDMHhT080_nx)xU$|!*?UI@Zo6qt(@1ddm=iTaSw(!b8-C& zH8c%gb9J`b@%NA6$%wnJBpO^w`aN}qVtDcNyoSv25&ZTEpDIY`@8j^i904=?%*BT) zcC(b{x-Nvj0zgt`hmHY16m5tdp9InMV;$0&B6H*Z=DblG-o?9dt>m=Kl?>}#0Z8MP z6ZT6gz|pKM@7F&X$}Eh$+)=3TprKu;@265{4vqAtBvRuKc%2l+2x9_&b}B+S1Hbm- z){}W7cm@HES70}Lh0?n!{*G?mvxs-!pK>&Ik9U_u`vvD{P|u}XFymwtgduSV?LqtY zR}+ua&WT3?o*(eo*6aF3K8R)7&6AMevd7Fo_M#S)O7rHo#Kc3K#Klo27u(p*>#y?K z+RCdLHdGZzrg`0MwJ=l3YsLMC1Uy=KYx@BgqWTl888c8ftN1Yc3k+{(Jl$0$F8A+G zZ7++856wW<|MtyhMnzL{VpH~ncl{&(M!uF#UgMxDAS-9j@@Qw&&hSQNt+zz@(kM@3 zedk1k5ify`zeL{b<_4R$Y~=w!hGhorSJYWRm#|g8crQ1*$?|60WvX&sc3AtUiS(gA zRL9B-#^!O%>ONS&j40qi?Bu=*`Ek({?*$(I={U!quf zvarU*i&wNJm}#vwdN;82w|2vl%A$J12a&81YXhC$2I@*kQ~Q)q%}%2MR-y6nyFvm= z`_Ex4xx&)j7<3w(f%@1UTRlONPj;EKDJW6sv99y~wL&>`k9)Nkrz3pA#C<1vRp|{K zn`LO&G>sXPgX$L~IOvdl$LjDRD;Oh<)qD)JsrJonmK zT2u!>SL)uBQ(q~gdh$91bE%lK(l4qdaUZ{@jodu76_80%|ES)(E`b+G-R;~X1oXM> zlKhD@pUV(iuCNc_>d?YB;O&3I>x#YpQMd(bd~0|q=0M#~s>4A_geWdILbye!>FDkb zlbV(7jH#uV_6Pt`_w&)=0FdNrA!#u)8@2%UyPP^>;j6{Wlc~>feG3J&Gbc}&xRV)H zze2`(2F$52glOiw50X0>xZa*wdh~x+irjjh>r=KVBaT}m{!Ww-i2`sXeU`540w~zn ziZRw;jdzfw$M1(3zdH@g;>m`uBsN)d%mJNYMuD)TK|A6KF!HCsO zk>wcJU<+RZSlw@78^4B;V{=u6_4U<7sXCm028a0?NY61DI&f+0>*| zX$_62#U_N>S+7mov+!qeYwvVCxWIx5ye0?=3`a(M`)x+-jyJsz3}~8W+G<6OfAF(g zy;Ui;nw8$UYVaZs**s?D=6qJAu?OYRG93hYL)LueO2sP*&9LSrosRGMpMP z+EV#JDG3aEytP8>eW>sUKdyW2wjB9D-6XwVuQr@Y9C?86R08bbb_9LdAomXZMR!`K zVV-*gIgTw5PRb(7+*CI{i*;-6!ZD(hxiRrGIb>c0#R1d`f8JCY-@y07b_&ewsE2d? z2N%pc3(8z#B|)deF@tz0a=7-B?Xv=QlR(fdqY9{Kh!#Zo{_L!2rsaF5-E$00F?q8y z04Fu?um(AN484SjWAII21F!7^(keO3>mEp%@N@C5`|j%U2rO{AXr{YEFO@mUaGM0j zo^t;Zcn^nBpnrLX&jzXALOlI{3ANznUym4aUlK6;?#GA$fe6-laQSEz;#dWnFT6Rp zfOlcSidigjL~E1mKQSgd=MF52=vsxR6I2I|Ku+D6mNmz_%Fl2>V}vJHe?Os7@>o>m zs9ol|lHSq=Uq3?6bLz6RgZ2F6>{4A2@=9mIIw}$y#W$H9E zScciRf6jzb-ab$7e&d{Yc&(Qud0SL{2=XF^^Z(^)ZP16f}*C zW1ESMA@?M-!!a_|n!sGN>(wnuk$o{oPjV0zw!3ritz~XzSP1;J97w4_jkaJjJT@7;?g8ARZ zNqj<}rL=~X#YtM^6_?P%w{t{0

    &qRyQ7b0PRqWJKbwqo&^qj;ZxL_C&2bRh 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 E2aVw{N&o-= diff --git a/eslint.config.mjs b/eslint.config.mjs index de0e908..5e4626e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -14,6 +14,13 @@ export default defineConfig( ignores: [ "src/components/ui", "pnpm-lock.yaml", + "pnpm-workspace.yaml", + "apps/api/**/*", + "**/*.png", + "**/*.svg", + "**/*.avif", + "packages/ui/**/*", + "scripts/generate-exports.ts", ], }, { @@ -24,15 +31,7 @@ export default defineConfig( }, rules: { "react-refresh/only-export-components": "off", - }, - }, - { - files: ["**/pages/**/*.tsx"], - rules: { - "react-refresh/only-export-components": [ - "warn", - { allowExportNames: ["loader", "Component", "action"] }, - ], + "tailwindcss/no-custom-classname": "off", }, }, ) diff --git a/package.json b/package.json index b36f72a..0cc34d2 100644 --- a/package.json +++ b/package.json @@ -10,148 +10,56 @@ "type": "git" }, "scripts": { + "admin:dev": "pnpm --filter admin dev", + "api:dev": "turbo dev --filter api", "build": "tsc && vite build", "build-storybook": "storybook build", - "commit": "commit", - "commitlint": "commitlint --edit", "coverage": "vitest run --coverage", - "dev": "vite", + "dev": "turbo dev", "docs:build": "vitepress build docs", "docs:dev": "vitepress dev docs", "docs:preview": "vitepress preview docs", + "generate": "tsx scripts/generate-exports.ts", "lint": "eslint", - "lint:fix": "eslint --fix", - "prepare": "pnpm exec simple-git-hooks && test -f .env || cp .env.example .env", + "lint:fix": "eslint --fix --quiet --no-warn-ignored", + "prepare": "pnpm exec simple-git-hooks", "preview": "vite preview", "release": "release-it", "start": "tsc && vite build && vite preview", "storybook": "storybook dev -p 6006", + "tauri:build": "turbo build --filter tauri", + "tauri:dev": "turbo dev --filter tauri", "test": "vitest", "test:coverage": "vitest run --coverage", "test:ui": "vitest --ui", "test:watch": "vitest watch" }, "dependencies": { - "@hookform/resolvers": "^3.9.1", - "@radix-ui/react-accordion": "^1.2.1", - "@radix-ui/react-alert-dialog": "^1.1.2", - "@radix-ui/react-aspect-ratio": "^1.1.0", - "@radix-ui/react-avatar": "^1.1.1", - "@radix-ui/react-checkbox": "^1.1.2", - "@radix-ui/react-collapsible": "^1.1.1", - "@radix-ui/react-context-menu": "^2.2.2", - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-dropdown-menu": "^2.1.2", - "@radix-ui/react-hover-card": "^1.1.2", - "@radix-ui/react-icons": "^1.3.1", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-menubar": "^1.1.2", - "@radix-ui/react-navigation-menu": "^1.2.1", - "@radix-ui/react-popover": "^1.1.2", - "@radix-ui/react-progress": "^1.1.0", - "@radix-ui/react-radio-group": "^1.2.1", - "@radix-ui/react-scroll-area": "^1.2.0", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slider": "^1.2.1", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.1", - "@radix-ui/react-tabs": "^1.1.1", - "@radix-ui/react-toast": "^1.2.2", - "@radix-ui/react-toggle": "^1.1.0", - "@radix-ui/react-toggle-group": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.3", - "@tanstack/react-query": "^5.59.17", - "@tanstack/react-table": "^8.20.5", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.1", - "cmdk": "^1.0.3", - "date-fns": "^2.30.0", - "dotenv": "^16.4.5", - "embla-carousel-react": "^8.3.1", - "framer-motion": "^11.11.11", - "i18next": "^23.16.4", - "i18next-browser-languagedetector": "^8.0.0", - "input-otp": "^1.4.0", - "jotai": "^2.10.1", - "lodash-es": "^4.17.21", - "lucide-react": "^0.429.0", - "ofetch": "^1.4.1", - "qrcode.react": "^4.1.0", - "react": "^18.3.1", - "react-day-picker": "^8.10.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.53.1", - "react-hotkeys-hook": "^4.6.1", - "react-i18next": "^15.1.0", - "react-markdown": "^9.0.1", - "react-resizable-panels": "^2.1.6", - "react-router-dom": "^6.27.0", - "recharts": "2.13.0-alpha.4", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.0", - "sonner": "^1.6.1", - "storybook-dark-mode": "^4.0.2", - "tailwind-merge": "^2.5.4", - "tailwindcss-animate": "^1.0.7", - "vaul": "^0.9.9", - "zod": "^3.23.8" + "dotenv": "^16.4.5" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.2", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", - "@faker-js/faker": "^8.4.1", - "@storybook/addon-essentials": "^8.4.2", - "@storybook/addon-interactions": "^8.4.2", - "@storybook/addon-links": "^8.4.2", - "@storybook/addon-onboarding": "^8.4.2", - "@storybook/blocks": "^8.4.2", - "@storybook/manager-api": "^8.4.2", - "@storybook/react": "^8.4.2", - "@storybook/react-vite": "^8.4.2", - "@storybook/test": "^8.4.2", - "@storybook/theming": "^8.4.2", - "@t3-oss/env-core": "^0.11.1", - "@tailwindcss/typography": "^0.5.15", - "@tanstack/react-query-devtools": "^5.59.17", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.0.1", - "@testing-library/user-event": "^14.5.2", - "@types/lodash-es": "^4.17.12", - "@types/node": "^20.17.5", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", - "@vitejs/plugin-react-swc": "^3.7.1", - "@vitest/coverage-v8": "^1.6.0", - "@vitest/ui": "^1.6.0", - "autoprefixer": "^10.4.20", - "click-to-react-component": "^1.1.0", + "@faker-js/faker": "^9.2.0", + "@types/node": "^22.9.3", "eslint": "^9.14.0", "eslint-config-hyoban": "^3.1.12", "eslint-plugin-storybook": "^0.11.0", - "jsdom": "^25.0.1", "lint-staged": "^15.2.10", - "postcss": "^8.4.47", "release-it": "^17.10.0", "release-it-pnpm": "^4.6.3", "simple-git-hooks": "^2.11.1", - "storybook": "^8.4.2", - "tailwindcss": "^3.4.14", - "turbo": "^2.2.3", - "typescript": "^5.6.3", - "vite": "^5.4.10", - "vite-plugin-html": "^3.2.2", - "vite-tsconfig-paths": "^5.0.1", - "vitepress": "^1.4.3", - "vitest": "^2.1.4" + "tsx": "^4.19.2", + "turbo": "^2.3.0", + "typescript": "^5.6.3" }, "simple-git-hooks": { "pre-commit": "npx lint-staged", "commit-msg": "npx --no -- commitlint --edit" }, "lint-staged": { - "*": "eslint --fix" + "*": "eslint --fix --quiet --no-warn-ignored" }, "eslintConfig": { "extends": [ diff --git a/packages/pro-components/.gitignore b/packages/pro-components/.gitignore new file mode 100644 index 0000000..f940a99 --- /dev/null +++ b/packages/pro-components/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/packages/pro-components/.storybook/main.ts b/packages/pro-components/.storybook/main.ts new file mode 100644 index 0000000..da4be60 --- /dev/null +++ b/packages/pro-components/.storybook/main.ts @@ -0,0 +1,25 @@ +import { dirname, join } from "node:path" + +import type { StorybookConfig } from "@storybook/react-vite" + +/** + * This function is used to resolve the absolute path of a package. + * It is needed in projects that use Yarn PnP or are set up within a monorepo. + */ +function getAbsolutePath(value: string): any { + return dirname(require.resolve(join(value, "package.json"))) +} +const config: StorybookConfig = { + stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], + addons: [ + + getAbsolutePath("@storybook/addon-essentials"), + getAbsolutePath("@chromatic-com/storybook"), + getAbsolutePath("@storybook/addon-interactions"), + ], + framework: { + name: getAbsolutePath("@storybook/react-vite"), + options: {}, + }, +} +export default config diff --git a/packages/pro-components/.storybook/preview.ts b/packages/pro-components/.storybook/preview.ts new file mode 100644 index 0000000..62a4ea3 --- /dev/null +++ b/packages/pro-components/.storybook/preview.ts @@ -0,0 +1,14 @@ +import type { Preview } from "@storybook/react" + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + }, +} + +export default preview diff --git a/packages/pro-components/README.md b/packages/pro-components/README.md new file mode 100644 index 0000000..74872fd --- /dev/null +++ b/packages/pro-components/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/packages/pro-components/eslint.config.js b/packages/pro-components/eslint.config.js new file mode 100644 index 0000000..c8aa3db --- /dev/null +++ b/packages/pro-components/eslint.config.js @@ -0,0 +1,25 @@ +import js from "@eslint/js" +import reactHooks from "eslint-plugin-react-hooks" +import reactRefresh from "eslint-plugin-react-refresh" +import globals from "globals" +import tseslint from "typescript-eslint" + +export default tseslint.config( + { ignores: ["dist"] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ["**/*.{ts,tsx}"], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + "react-hooks": reactHooks, + "react-refresh": reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + "react-refresh/only-export-components": "off", + }, + }, +) diff --git a/packages/pro-components/index.html b/packages/pro-components/index.html new file mode 100644 index 0000000..e4b78ea --- /dev/null +++ b/packages/pro-components/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
    + + + diff --git a/packages/pro-components/package.json b/packages/pro-components/package.json new file mode 100644 index 0000000..d00d958 --- /dev/null +++ b/packages/pro-components/package.json @@ -0,0 +1,56 @@ +{ + "name": "@repo/pro-components", + "type": "module", + "version": "0.0.0", + "private": true, + "exports": { + "./data-table": "./src/components/data-table/index.tsx", + "./pro-table": "./src/components/pro-table/index.tsx" + }, + "scripts": { + "build": "tsc -b && vite build", + "build-storybook": "storybook build", + "dev": "vite", + "lint": "eslint .", + "preview": "vite preview", + "storybook": "storybook dev -p 6006" + }, + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "@radix-ui/react-icons": "^1.3.2", + "@repo/ui": "workspace:^", + "@tanstack/react-table": "^8.20.5", + "lucide-react": "^0.429.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@chromatic-com/storybook": "^3.2.2", + "@eslint/js": "^9.13.0", + "@storybook/addon-essentials": "^8.4.5", + "@storybook/addon-interactions": "^8.4.5", + "@storybook/blocks": "^8.4.5", + "@storybook/react": "^8.4.5", + "@storybook/react-vite": "^8.4.5", + "@storybook/test": "^8.4.5", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react-swc": "^3.5.0", + "eslint": "^9.13.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.14", + "eslint-plugin-storybook": "^0.11.0", + "globals": "^15.11.0", + "storybook": "^8.4.5", + "typescript": "~5.6.2", + "typescript-eslint": "^8.11.0", + "vite": "^5.4.10" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + } +} diff --git a/packages/pro-components/public/vite.svg b/packages/pro-components/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/packages/pro-components/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/pro-components/src/App.css b/packages/pro-components/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/packages/pro-components/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/packages/pro-components/src/App.tsx b/packages/pro-components/src/App.tsx new file mode 100644 index 0000000..5b0d3ab --- /dev/null +++ b/packages/pro-components/src/App.tsx @@ -0,0 +1,38 @@ +import "./App.css" + +import { useState } from "react" + +import viteLogo from "/vite.svg" + +import reactLogo from "./assets/react.svg" + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
    +

    Vite + React

    +
    + +

    + Edit src/App.tsx and save to test HMR +

    +
    +

    + Click on the Vite and React logos to learn more +

    + + ) +} + +export default App diff --git a/packages/pro-components/src/assets/react.svg b/packages/pro-components/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/packages/pro-components/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/data-table/context.tsx b/packages/pro-components/src/components/data-table/context.tsx similarity index 100% rename from src/components/data-table/context.tsx rename to packages/pro-components/src/components/data-table/context.tsx diff --git a/src/components/data-table/data-table-column-header.tsx b/packages/pro-components/src/components/data-table/data-table-column-header.tsx similarity index 92% rename from src/components/data-table/data-table-column-header.tsx rename to packages/pro-components/src/components/data-table/data-table-column-header.tsx index 153defd..cfc98fd 100644 --- a/src/components/data-table/data-table-column-header.tsx +++ b/packages/pro-components/src/components/data-table/data-table-column-header.tsx @@ -4,19 +4,18 @@ import { CaretSortIcon, EyeNoneIcon, } from "@radix-ui/react-icons" -import type { Column } from "@tanstack/react-table" - -import { Button } from "@/components/ui/button" +import { Button } from "@repo/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { cn } from "@/lib/utils" +} from "@repo/ui/dropdown-menu" +import { cn } from "@repo/ui/utils" +import type { Column } from "@tanstack/react-table" -interface DataTableColumnHeaderProps +export interface DataTableColumnHeaderProps extends React.HTMLAttributes { column: Column title: string diff --git a/src/components/data-table/data-table-faceted-filter.tsx b/packages/pro-components/src/components/data-table/data-table-faceted-filter.tsx similarity index 95% rename from src/components/data-table/data-table-faceted-filter.tsx rename to packages/pro-components/src/components/data-table/data-table-faceted-filter.tsx index 34627cd..e3cee47 100644 --- a/src/components/data-table/data-table-faceted-filter.tsx +++ b/packages/pro-components/src/components/data-table/data-table-faceted-filter.tsx @@ -1,9 +1,6 @@ import { CheckIcon, PlusCircledIcon } from "@radix-ui/react-icons" -import type { Column } from "@tanstack/react-table" -import * as React from "react" - -import { Badge } from "@/components/ui/badge" -import { Button } from "@/components/ui/button" +import { Badge } from "@repo/ui/badge" +import { Button } from "@repo/ui/button" import { Command, CommandEmpty, @@ -12,14 +9,16 @@ import { CommandItem, CommandList, CommandSeparator, -} from "@/components/ui/command" +} from "@repo/ui/command" import { Popover, PopoverContent, PopoverTrigger, -} from "@/components/ui/popover" -import { Separator } from "@/components/ui/separator" -import { cn } from "@/lib/utils" +} from "@repo/ui/popover" +import { Separator } from "@repo/ui/separator" +import { cn } from "@repo/ui/utils" +import type { Column } from "@tanstack/react-table" +import * as React from "react" interface DataTableFacetedFilterProps { column?: Column diff --git a/src/components/data-table/data-table-pagination.stories.tsx b/packages/pro-components/src/components/data-table/data-table-pagination.stories.tsx similarity index 100% rename from src/components/data-table/data-table-pagination.stories.tsx rename to packages/pro-components/src/components/data-table/data-table-pagination.stories.tsx diff --git a/src/components/data-table/data-table-pagination.tsx b/packages/pro-components/src/components/data-table/data-table-pagination.tsx similarity index 96% rename from src/components/data-table/data-table-pagination.tsx rename to packages/pro-components/src/components/data-table/data-table-pagination.tsx index 06c4e04..75c582c 100644 --- a/src/components/data-table/data-table-pagination.tsx +++ b/packages/pro-components/src/components/data-table/data-table-pagination.tsx @@ -1,11 +1,16 @@ import { ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons" +import { Button } from "@repo/ui/button" +import { + Pagination, + PaginationContent, + PaginationEllipsis, + PaginationItem, + PaginationLink, +} from "@repo/ui/pagination" +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@repo/ui/select" import type { PaginationState, Table } from "@tanstack/react-table" import * as React from "react" -import { Button } from "@/ui/button" -import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink } from "@/ui/pagination" -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/ui/select" - import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE, DEFAULT_PAGINATION_STEP } from "./data-table-util" export interface PaginationProps { @@ -87,6 +92,7 @@ export function DataTablePagination({ table, pagination }: DataTablePagin visiblePages.push( { handlePageIndexChange(index) }} diff --git a/src/components/data-table/data-table-search.tsx b/packages/pro-components/src/components/data-table/data-table-search.tsx similarity index 84% rename from src/components/data-table/data-table-search.tsx rename to packages/pro-components/src/components/data-table/data-table-search.tsx index 9091808..e16475d 100644 --- a/src/components/data-table/data-table-search.tsx +++ b/packages/pro-components/src/components/data-table/data-table-search.tsx @@ -1,14 +1,13 @@ import { zodResolver } from "@hookform/resolvers/zod" +import { Button } from "@repo/ui/button" +import { Form, FormControl, FormField, FormItem } from "@repo/ui/form" +import { Input } from "@repo/ui/input" import type { Table } from "@tanstack/react-table" import { ChevronDown, ChevronUp } from "lucide-react" import * as React from "react" import { useForm } from "react-hook-form" import * as z from "zod" -import { Button } from "@/components/ui/button" -import { Form, FormControl, FormField, FormItem } from "@/components/ui/form" -import { Input } from "@/components/ui/input" - import type { ColumnDef, SearchConfig, SearchType } from "./data-table-types" interface DataTableSearchProps { @@ -101,19 +100,19 @@ export function DataTableSearch({ {typeof columnDef.search === "object" && (columnDef?.search as SearchConfig)?.render ? ( - (columnDef?.search as SearchConfig).render?.({ - value: field.value || "", - onChange: field.onChange, - placeholder: getSearchPlaceholder(columnDef.search, columnName), - }) - ) : ( - - )} + (columnDef?.search as SearchConfig).render?.({ + value: field.value || "", + onChange: field.onChange, + placeholder: getSearchPlaceholder(columnDef.search, columnName), + }) + ) : ( + + )} )} diff --git a/src/components/data-table/data-table-skeleton.stories.tsx b/packages/pro-components/src/components/data-table/data-table-skeleton.stories.tsx similarity index 94% rename from src/components/data-table/data-table-skeleton.stories.tsx rename to packages/pro-components/src/components/data-table/data-table-skeleton.stories.tsx index eae6bf7..2427fd5 100644 --- a/src/components/data-table/data-table-skeleton.stories.tsx +++ b/packages/pro-components/src/components/data-table/data-table-skeleton.stories.tsx @@ -1,7 +1,6 @@ +import { Table, TableBody } from "@repo/ui/table" import type { Meta, StoryObj } from "@storybook/react" -import { Table, TableBody } from "@/components/ui/table" - import { DataTableSkeleton } from "./data-table-skeleton" const meta = { diff --git a/src/components/data-table/data-table-skeleton.tsx b/packages/pro-components/src/components/data-table/data-table-skeleton.tsx similarity index 80% rename from src/components/data-table/data-table-skeleton.tsx rename to packages/pro-components/src/components/data-table/data-table-skeleton.tsx index 8039c60..1832ae8 100644 --- a/src/components/data-table/data-table-skeleton.tsx +++ b/packages/pro-components/src/components/data-table/data-table-skeleton.tsx @@ -1,4 +1,4 @@ -import { TableCell, TableRow } from "@/components/ui/table" +import { TableCell, TableRow } from "@repo/ui/table" import type { PaginationProps } from "./data-table-pagination" @@ -20,10 +20,8 @@ export function DataTableSkeleton({ return ( <> {Array.from({ length: pagination?.pageSize ?? 10 }).map((_, rowIndex) => ( - // eslint-disable-next-line @eslint-react/no-array-index-key {Array.from({ length: columns }).map((_, colIndex) => ( - // eslint-disable-next-line @eslint-react/no-array-index-key
    diff --git a/src/components/data-table/data-table-toolbar.stories.tsx b/packages/pro-components/src/components/data-table/data-table-toolbar.stories.tsx similarity index 96% rename from src/components/data-table/data-table-toolbar.stories.tsx rename to packages/pro-components/src/components/data-table/data-table-toolbar.stories.tsx index 45a6b5a..8c234cf 100644 --- a/src/components/data-table/data-table-toolbar.stories.tsx +++ b/packages/pro-components/src/components/data-table/data-table-toolbar.stories.tsx @@ -1,8 +1,7 @@ +import { Button } from "@repo/ui/button" import type { Meta, StoryObj } from "@storybook/react" import { getCoreRowModel, useReactTable } from "@tanstack/react-table" -import { Button } from "@/ui/button" - import { DataTableToolbar } from "./data-table-toolbar" // 创建一个包装组件来使用 Hook diff --git a/src/components/data-table/data-table-toolbar.tsx b/packages/pro-components/src/components/data-table/data-table-toolbar.tsx similarity index 93% rename from src/components/data-table/data-table-toolbar.tsx rename to packages/pro-components/src/components/data-table/data-table-toolbar.tsx index a59111d..6ceb7c8 100644 --- a/src/components/data-table/data-table-toolbar.tsx +++ b/packages/pro-components/src/components/data-table/data-table-toolbar.tsx @@ -1,10 +1,9 @@ +import { Button } from "@repo/ui/button" +import { cn } from "@repo/ui/utils" import type { Table } from "@tanstack/react-table" import { RefreshCcw } from "lucide-react" import * as React from "react" -import { cn } from "@/lib/utils" -import { Button } from "@/ui/button" - import { DataTableViewOptions } from "./data-table-view-options" interface DataTableToolbarProps { diff --git a/src/components/data-table/data-table-types.ts b/packages/pro-components/src/components/data-table/data-table-types.ts similarity index 100% rename from src/components/data-table/data-table-types.ts rename to packages/pro-components/src/components/data-table/data-table-types.ts diff --git a/src/components/data-table/data-table-util.ts b/packages/pro-components/src/components/data-table/data-table-util.ts similarity index 100% rename from src/components/data-table/data-table-util.ts rename to packages/pro-components/src/components/data-table/data-table-util.ts diff --git a/src/components/data-table/data-table-view-options.stories.tsx b/packages/pro-components/src/components/data-table/data-table-view-options.stories.tsx similarity index 100% rename from src/components/data-table/data-table-view-options.stories.tsx rename to packages/pro-components/src/components/data-table/data-table-view-options.stories.tsx diff --git a/src/components/data-table/data-table-view-options.tsx b/packages/pro-components/src/components/data-table/data-table-view-options.tsx similarity index 91% rename from src/components/data-table/data-table-view-options.tsx rename to packages/pro-components/src/components/data-table/data-table-view-options.tsx index 2ad0f35..f35e1e4 100644 --- a/src/components/data-table/data-table-view-options.tsx +++ b/packages/pro-components/src/components/data-table/data-table-view-options.tsx @@ -1,15 +1,14 @@ -import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu" import { MixerHorizontalIcon } from "@radix-ui/react-icons" -import type { Table } from "@tanstack/react-table" - -import { Button } from "@/ui/button" +import { Button } from "@repo/ui/button" import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, -} from "@/ui/dropdown-menu" + DropdownMenuTrigger, +} from "@repo/ui/dropdown-menu" +import type { Table } from "@tanstack/react-table" interface DataTableViewOptionsProps { table: Table diff --git a/src/components/data-table/data-table.tsx b/packages/pro-components/src/components/data-table/data-table.tsx similarity index 98% rename from src/components/data-table/data-table.tsx rename to packages/pro-components/src/components/data-table/data-table.tsx index 7d98603..f4f64ff 100644 --- a/src/components/data-table/data-table.tsx +++ b/packages/pro-components/src/components/data-table/data-table.tsx @@ -1,10 +1,9 @@ +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@repo/ui/table" import { flexRender, } from "@tanstack/react-table" import { useMemo } from "react" -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" - import { Empty } from "../empty" import { DataTableSkeleton } from "./data-table-skeleton" import type { DataTableProps } from "./data-table-types" diff --git a/packages/pro-components/src/components/data-table/index.tsx b/packages/pro-components/src/components/data-table/index.tsx new file mode 100644 index 0000000..843076a --- /dev/null +++ b/packages/pro-components/src/components/data-table/index.tsx @@ -0,0 +1,28 @@ +export const DEFAULT_PAGINATION_STEP = 3 +export const DEFAULT_PAGE_INDEX = 0 +export const DEFAULT_PAGE_SIZE = 10 + +// export const DataTable = { +// Search: DataTableSearch, +// Toolbar: DataTableToolbar, +// Table: DataTablePrimitive, +// Pagination: DataTablePagination, +// ViewOptions: DataTableViewOptions, +// Skeleton: DataTableSkeleton, +// } + +export * from "./data-table" +export * from "./data-table-column-header" +export * from "./data-table-faceted-filter" +export * from "./data-table-pagination" +export * from "./data-table-search" +export * from "./data-table-skeleton" +export * from "./data-table-toolbar" +export type { + ColumnDef, + DataTableProps as ProTableProps, + SearchConfig, + SearchParams, + SearchType, +} from "./data-table-types" +export * from "./data-table-view-options" diff --git a/packages/pro-components/src/components/empty.tsx b/packages/pro-components/src/components/empty.tsx new file mode 100644 index 0000000..252abcb --- /dev/null +++ b/packages/pro-components/src/components/empty.tsx @@ -0,0 +1,10 @@ +import * as React from "react" + +interface EmptyProps { + description?: React.ReactNode + icon?: React.ReactNode +} + +export function Empty(props: EmptyProps) { + return
    {props.description || "No results"}
    +} diff --git a/src/components/pro-table/index.tsx b/packages/pro-components/src/components/pro-table/index.tsx similarity index 99% rename from src/components/pro-table/index.tsx rename to packages/pro-components/src/components/pro-table/index.tsx index f9a7ed6..fe31995 100644 --- a/src/components/pro-table/index.tsx +++ b/packages/pro-components/src/components/pro-table/index.tsx @@ -127,3 +127,4 @@ export function ProTable({
    ) } +export * from "./types" diff --git a/src/components/pro-table/types.ts b/packages/pro-components/src/components/pro-table/types.ts similarity index 100% rename from src/components/pro-table/types.ts rename to packages/pro-components/src/components/pro-table/types.ts diff --git a/packages/pro-components/src/index.css b/packages/pro-components/src/index.css new file mode 100644 index 0000000..6119ad9 --- /dev/null +++ b/packages/pro-components/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/pro-components/src/main.tsx b/packages/pro-components/src/main.tsx new file mode 100644 index 0000000..2e84161 --- /dev/null +++ b/packages/pro-components/src/main.tsx @@ -0,0 +1,12 @@ +import "./index.css" + +import { StrictMode } from "react" +import { createRoot } from "react-dom/client" + +import App from "./App.tsx" + +createRoot(document.querySelector("#root")!).render( + + + , +) diff --git a/src/stories/Button.stories.ts b/packages/pro-components/src/stories/Button.stories.ts similarity index 94% rename from src/stories/Button.stories.ts rename to packages/pro-components/src/stories/Button.stories.ts index 66c6ad8..32f6706 100644 --- a/src/stories/Button.stories.ts +++ b/packages/pro-components/src/stories/Button.stories.ts @@ -1,6 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react" import { fn } from "@storybook/test" -import { toast } from "sonner" import { Button } from "./Button" @@ -50,8 +49,5 @@ export const Small: Story = { args: { size: "small", label: "Button", - onClick: () => { - toast("Hello world") - }, }, } diff --git a/src/stories/Button.tsx b/packages/pro-components/src/stories/Button.tsx similarity index 65% rename from src/stories/Button.tsx rename to packages/pro-components/src/stories/Button.tsx index 01703d7..f537876 100644 --- a/src/stories/Button.tsx +++ b/packages/pro-components/src/stories/Button.tsx @@ -1,33 +1,21 @@ import "./button.css" -import * as React from "react" +import React from "react" export interface ButtonProps { - /** - * Is this the principal call to action on the page? - */ + /** Is this the principal call to action on the page? */ primary?: boolean - /** - * What background color to use - */ + /** What background color to use */ backgroundColor?: string - /** - * How large should the button be? - */ + /** How large should the button be? */ size?: "small" | "medium" | "large" - /** - * Button contents - */ + /** Button contents */ label: string - /** - * Optional click handler - */ + /** Optional click handler */ onClick?: () => void } -/** - * Primary UI component for user interaction - */ +/** Primary UI component for user interaction */ export const Button = ({ primary = false, size = "medium", diff --git a/src/stories/Configure.mdx b/packages/pro-components/src/stories/Configure.mdx similarity index 100% rename from src/stories/Configure.mdx rename to packages/pro-components/src/stories/Configure.mdx diff --git a/src/stories/Header.stories.ts b/packages/pro-components/src/stories/Header.stories.ts similarity index 100% rename from src/stories/Header.stories.ts rename to packages/pro-components/src/stories/Header.stories.ts diff --git a/src/stories/Header.tsx b/packages/pro-components/src/stories/Header.tsx similarity index 97% rename from src/stories/Header.tsx rename to packages/pro-components/src/stories/Header.tsx index 2f978da..cc9a30e 100644 --- a/src/stories/Header.tsx +++ b/packages/pro-components/src/stories/Header.tsx @@ -1,6 +1,6 @@ import "./header.css" -import * as React from "react" +import React from "react" import { Button } from "./Button" diff --git a/src/stories/Page.stories.ts b/packages/pro-components/src/stories/Page.stories.ts similarity index 100% rename from src/stories/Page.stories.ts rename to packages/pro-components/src/stories/Page.stories.ts diff --git a/src/stories/Page.tsx b/packages/pro-components/src/stories/Page.tsx similarity index 98% rename from src/stories/Page.tsx rename to packages/pro-components/src/stories/Page.tsx index 9773d4a..e6fcc76 100644 --- a/src/stories/Page.tsx +++ b/packages/pro-components/src/stories/Page.tsx @@ -1,6 +1,6 @@ import "./page.css" -import * as React from "react" +import React from "react" import { Header } from "./Header" diff --git a/src/stories/assets/accessibility.png b/packages/pro-components/src/stories/assets/accessibility.png similarity index 100% rename from src/stories/assets/accessibility.png rename to packages/pro-components/src/stories/assets/accessibility.png diff --git a/src/stories/assets/accessibility.svg b/packages/pro-components/src/stories/assets/accessibility.svg similarity index 100% rename from src/stories/assets/accessibility.svg rename to packages/pro-components/src/stories/assets/accessibility.svg diff --git a/src/stories/assets/addon-library.png b/packages/pro-components/src/stories/assets/addon-library.png similarity index 100% rename from src/stories/assets/addon-library.png rename to packages/pro-components/src/stories/assets/addon-library.png diff --git a/src/stories/assets/assets.png b/packages/pro-components/src/stories/assets/assets.png similarity index 100% rename from src/stories/assets/assets.png rename to packages/pro-components/src/stories/assets/assets.png diff --git a/src/stories/assets/avif-test-image.avif b/packages/pro-components/src/stories/assets/avif-test-image.avif similarity index 100% rename from src/stories/assets/avif-test-image.avif rename to packages/pro-components/src/stories/assets/avif-test-image.avif diff --git a/src/stories/assets/context.png b/packages/pro-components/src/stories/assets/context.png similarity index 100% rename from src/stories/assets/context.png rename to packages/pro-components/src/stories/assets/context.png diff --git a/src/stories/assets/discord.svg b/packages/pro-components/src/stories/assets/discord.svg similarity index 100% rename from src/stories/assets/discord.svg rename to packages/pro-components/src/stories/assets/discord.svg diff --git a/src/stories/assets/docs.png b/packages/pro-components/src/stories/assets/docs.png similarity index 100% rename from src/stories/assets/docs.png rename to packages/pro-components/src/stories/assets/docs.png diff --git a/src/stories/assets/figma-plugin.png b/packages/pro-components/src/stories/assets/figma-plugin.png similarity index 100% rename from src/stories/assets/figma-plugin.png rename to packages/pro-components/src/stories/assets/figma-plugin.png diff --git a/src/stories/assets/github.svg b/packages/pro-components/src/stories/assets/github.svg similarity index 100% rename from src/stories/assets/github.svg rename to packages/pro-components/src/stories/assets/github.svg diff --git a/src/stories/assets/share.png b/packages/pro-components/src/stories/assets/share.png similarity index 100% rename from src/stories/assets/share.png rename to packages/pro-components/src/stories/assets/share.png diff --git a/src/stories/assets/styling.png b/packages/pro-components/src/stories/assets/styling.png similarity index 100% rename from src/stories/assets/styling.png rename to packages/pro-components/src/stories/assets/styling.png diff --git a/src/stories/assets/testing.png b/packages/pro-components/src/stories/assets/testing.png similarity index 100% rename from src/stories/assets/testing.png rename to packages/pro-components/src/stories/assets/testing.png diff --git a/src/stories/assets/theming.png b/packages/pro-components/src/stories/assets/theming.png similarity index 100% rename from src/stories/assets/theming.png rename to packages/pro-components/src/stories/assets/theming.png diff --git a/src/stories/assets/tutorials.svg b/packages/pro-components/src/stories/assets/tutorials.svg similarity index 100% rename from src/stories/assets/tutorials.svg rename to packages/pro-components/src/stories/assets/tutorials.svg diff --git a/src/stories/assets/youtube.svg b/packages/pro-components/src/stories/assets/youtube.svg similarity index 100% rename from src/stories/assets/youtube.svg rename to packages/pro-components/src/stories/assets/youtube.svg diff --git a/src/stories/button.css b/packages/pro-components/src/stories/button.css similarity index 100% rename from src/stories/button.css rename to packages/pro-components/src/stories/button.css index dc91dc7..94d674b 100644 --- a/src/stories/button.css +++ b/packages/pro-components/src/stories/button.css @@ -1,30 +1,30 @@ .storybook-button { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 700; + display: inline-block; + cursor: pointer; border: 0; border-radius: 3em; - cursor: pointer; - display: inline-block; + font-weight: 700; line-height: 1; + font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; } .storybook-button--primary { - color: white; background-color: #1ea7fd; + color: white; } .storybook-button--secondary { - color: #333; - background-color: transparent; box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset; + background-color: transparent; + color: #333; } .storybook-button--small { - font-size: 12px; padding: 10px 16px; + font-size: 12px; } .storybook-button--medium { - font-size: 14px; padding: 11px 20px; + font-size: 14px; } .storybook-button--large { - font-size: 16px; padding: 12px 24px; + font-size: 16px; } diff --git a/src/stories/header.css b/packages/pro-components/src/stories/header.css similarity index 100% rename from src/stories/header.css rename to packages/pro-components/src/stories/header.css index d9a7052..5efd46c 100644 --- a/src/stories/header.css +++ b/packages/pro-components/src/stories/header.css @@ -1,10 +1,10 @@ .storybook-header { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - padding: 15px 20px; display: flex; - align-items: center; justify-content: space-between; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 15px 20px; + font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; } .storybook-header svg { @@ -13,12 +13,12 @@ } .storybook-header h1 { + display: inline-block; + vertical-align: top; + margin: 6px 0 6px 10px; font-weight: 700; font-size: 20px; line-height: 1; - margin: 6px 0 6px 10px; - display: inline-block; - vertical-align: top; } .storybook-header button + button { @@ -26,7 +26,7 @@ } .storybook-header .welcome { + margin-right: 10px; color: #333; font-size: 14px; - margin-right: 10px; } diff --git a/src/stories/page.css b/packages/pro-components/src/stories/page.css similarity index 100% rename from src/stories/page.css rename to packages/pro-components/src/stories/page.css index 098dad1..87f7ecb 100644 --- a/src/stories/page.css +++ b/packages/pro-components/src/stories/page.css @@ -1,20 +1,20 @@ .storybook-page { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 48px 20px; margin: 0 auto; + padding: 48px 20px; max-width: 600px; color: #333; + font-size: 14px; + line-height: 24px; + font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; } .storybook-page h2 { + display: inline-block; + vertical-align: top; + margin: 0 0 4px; font-weight: 700; font-size: 32px; line-height: 1; - margin: 0 0 4px; - display: inline-block; - vertical-align: top; } .storybook-page p { @@ -22,13 +22,13 @@ } .storybook-page a { - text-decoration: none; color: #1ea7fd; + text-decoration: none; } .storybook-page ul { - padding-left: 30px; margin: 1em 0; + padding-left: 30px; } .storybook-page li { @@ -37,31 +37,31 @@ .storybook-page .tip { display: inline-block; + vertical-align: top; + margin-right: 10px; border-radius: 1em; - font-size: 11px; - line-height: 12px; - font-weight: 700; background: #e7fdd8; - color: #66bf3c; padding: 4px 12px; - margin-right: 10px; - vertical-align: top; + color: #66bf3c; + font-weight: 700; + font-size: 11px; + line-height: 12px; } .storybook-page .tip-wrapper { - font-size: 13px; - line-height: 20px; margin-top: 40px; margin-bottom: 40px; + font-size: 13px; + line-height: 20px; } .storybook-page .tip-wrapper svg { display: inline-block; - height: 12px; - width: 12px; - margin-right: 4px; vertical-align: top; margin-top: 3px; + margin-right: 4px; + width: 12px; + height: 12px; } .storybook-page .tip-wrapper svg path { diff --git a/packages/pro-components/src/vite-env.d.ts b/packages/pro-components/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/pro-components/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/pro-components/tsconfig.app.json b/packages/pro-components/tsconfig.app.json new file mode 100644 index 0000000..c389006 --- /dev/null +++ b/packages/pro-components/tsconfig.app.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/packages/pro-components/tsconfig.json b/packages/pro-components/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/packages/pro-components/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/pro-components/tsconfig.node.json b/packages/pro-components/tsconfig.node.json new file mode 100644 index 0000000..abcd7f0 --- /dev/null +++ b/packages/pro-components/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/pro-components/vite.config.ts b/packages/pro-components/vite.config.ts new file mode 100644 index 0000000..175c964 --- /dev/null +++ b/packages/pro-components/vite.config.ts @@ -0,0 +1,7 @@ +import react from "@vitejs/plugin-react-swc" +import { defineConfig } from "vite" + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/packages/ui/components.json b/packages/ui/components.json new file mode 100644 index 0000000..14fd842 --- /dev/null +++ b/packages/ui/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/globals.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 0000000..8b6e78c --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,126 @@ +{ + "name": "@repo/ui", + "version": "1.0.0", + "description": "", + "author": "", + "license": "MIT", + "keywords": [], + "exports": { + "./globals.css": "./src/globals.css", + "./tailwind.config.ts": "./tailwind.config.ts", + "./components.json": "./components.json", + "./accordion": "./src/components/ui/accordion.tsx", + "./alert-dialog": "./src/components/ui/alert-dialog.tsx", + "./alert": "./src/components/ui/alert.tsx", + "./aspect-ratio": "./src/components/ui/aspect-ratio.tsx", + "./avatar": "./src/components/ui/avatar.tsx", + "./badge": "./src/components/ui/badge.tsx", + "./breadcrumb": "./src/components/ui/breadcrumb.tsx", + "./button": "./src/components/ui/button.tsx", + "./calendar": "./src/components/ui/calendar.tsx", + "./card": "./src/components/ui/card.tsx", + "./carousel": "./src/components/ui/carousel.tsx", + "./chart": "./src/components/ui/chart.tsx", + "./checkbox": "./src/components/ui/checkbox.tsx", + "./collapsible": "./src/components/ui/collapsible.tsx", + "./command": "./src/components/ui/command.tsx", + "./context-menu": "./src/components/ui/context-menu.tsx", + "./dialog": "./src/components/ui/dialog.tsx", + "./drawer": "./src/components/ui/drawer.tsx", + "./dropdown-menu": "./src/components/ui/dropdown-menu.tsx", + "./form": "./src/components/ui/form.tsx", + "./hover-card": "./src/components/ui/hover-card.tsx", + "./input-otp": "./src/components/ui/input-otp.tsx", + "./input": "./src/components/ui/input.tsx", + "./label": "./src/components/ui/label.tsx", + "./menubar": "./src/components/ui/menubar.tsx", + "./navigation-menu": "./src/components/ui/navigation-menu.tsx", + "./pagination": "./src/components/ui/pagination.tsx", + "./popover": "./src/components/ui/popover.tsx", + "./progress": "./src/components/ui/progress.tsx", + "./radio-group": "./src/components/ui/radio-group.tsx", + "./resizable": "./src/components/ui/resizable.tsx", + "./scroll-area": "./src/components/ui/scroll-area.tsx", + "./select": "./src/components/ui/select.tsx", + "./separator": "./src/components/ui/separator.tsx", + "./sheet": "./src/components/ui/sheet.tsx", + "./sidebar": "./src/components/ui/sidebar.tsx", + "./skeleton": "./src/components/ui/skeleton.tsx", + "./slider": "./src/components/ui/slider.tsx", + "./sonner": "./src/components/ui/sonner.tsx", + "./switch": "./src/components/ui/switch.tsx", + "./table": "./src/components/ui/table.tsx", + "./tabs": "./src/components/ui/tabs.tsx", + "./textarea": "./src/components/ui/textarea.tsx", + "./toast": "./src/components/ui/toast.tsx", + "./toaster": "./src/components/ui/toaster.tsx", + "./toggle-group": "./src/components/ui/toggle-group.tsx", + "./toggle": "./src/components/ui/toggle.tsx", + "./tooltip": "./src/components/ui/tooltip.tsx", + "./hooks/use-mobile": "./src/hooks/use-mobile.tsx", + "./hooks/use-toast": "./src/hooks/use-toast.ts", + "./utils": "./src/lib/utils.ts" + }, + "scripts": { + "generate": "tsx scripts/generate-exports.ts", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "@radix-ui/react-accordion": "^1.2.1", + "@radix-ui/react-alert-dialog": "^1.1.2", + "@radix-ui/react-aspect-ratio": "^1.1.0", + "@radix-ui/react-avatar": "^1.1.1", + "@radix-ui/react-checkbox": "^1.1.2", + "@radix-ui/react-collapsible": "^1.1.1", + "@radix-ui/react-context-menu": "^2.2.2", + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-hover-card": "^1.1.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-menubar": "^1.1.2", + "@radix-ui/react-navigation-menu": "^1.2.1", + "@radix-ui/react-popover": "^1.1.2", + "@radix-ui/react-progress": "^1.1.0", + "@radix-ui/react-radio-group": "^1.2.1", + "@radix-ui/react-scroll-area": "^1.2.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-slider": "^1.2.1", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-switch": "^1.1.1", + "@radix-ui/react-tabs": "^1.1.1", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-toggle": "^1.1.0", + "@radix-ui/react-toggle-group": "^1.1.0", + "@radix-ui/react-tooltip": "^1.1.3", + "@tailwindcss/typography": "^0.5.15", + "@types/node": "^22.9.3", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "cmdk": "1.0.0", + "date-fns": "^2.30.0", + "embla-carousel-react": "^8.3.1", + "input-otp": "^1.4.0", + "lucide-react": "^0.429.0", + "next-themes": "^0.4.3", + "react": "^18.3.1", + "react-day-picker": "8.10.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-resizable-panels": "^2.1.6", + "recharts": "2.13.0-alpha.4", + "sonner": "^1.6.1", + "tailwind-merge": "^2.5.4", + "tailwindcss": "^3.4.14", + "tailwindcss-animate": "^1.0.7", + "tsx": "^4.19.2", + "typescript": "^5.6.3", + "vaul": "^0.9.9", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/node": "^20.11.0", + "@types/react": "^18.3.12" + } +} \ No newline at end of file diff --git a/packages/ui/scripts/generate-exports.ts b/packages/ui/scripts/generate-exports.ts new file mode 100644 index 0000000..815478f --- /dev/null +++ b/packages/ui/scripts/generate-exports.ts @@ -0,0 +1,84 @@ +import fs from "node:fs" +import path from "node:path" +import { fileURLToPath } from "node:url" + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +const COMPONENTS_DIR = path.join(__dirname, "../src/components/ui") +const HOOKS_DIR = path.join(__dirname, "../src/hooks") +const INDEX_FILE = path.join(__dirname, "../src/index.ts") +const PACKAGE_JSON = path.join(__dirname, "../package.json") + +function getExportStatements(dir: string, prefix = "./") { + const files = fs.readdirSync(dir) + return files + .filter((file) => file.endsWith(".tsx") || file.endsWith(".ts")) + .map((file) => { + const basename = path.basename(file, path.extname(file)) + const relativePath = path + .relative(path.dirname(INDEX_FILE), path.join(dir, basename)) + .replaceAll("\\", "/") + return `export * from "${prefix}${relativePath}"` + }) + .join("\n") +} + +function generatePackageExports() { + const pkg = JSON.parse(fs.readFileSync(PACKAGE_JSON, "utf-8")) + const files = fs.readdirSync(COMPONENTS_DIR) + + // 保持现有的导出 + const exports = { + ".": "./src/index.ts", + "./globals.css": "./src/globals.css", + "./tailwind.config.ts": "./tailwind.config.ts", + "./components.json": "./components.json", + } + + // 添加组件导出 + files + .filter((file) => file.endsWith(".tsx") || file.endsWith(".ts")) + .forEach((file) => { + const basename = path.basename(file, path.extname(file)) + exports[`./${basename}`] = `./src/components/ui/${basename}${path.extname(file)}` + }) + + // 添加 hooks 导出 + const hookFiles = fs.readdirSync(HOOKS_DIR) + hookFiles + .filter((file) => file.endsWith(".tsx") || file.endsWith(".ts")) + .forEach((file) => { + const basename = path.basename(file, path.extname(file)) + exports[`./hooks/${basename}`] = `./src/hooks/${basename}` + }) + + // 添加 utils 导出 + exports["./utils"] = "./src/lib/utils" + + pkg.exports = exports + + fs.writeFileSync(PACKAGE_JSON, JSON.stringify(pkg, null, 2), "utf-8") + console.log("✅ Successfully updated package.json exports") +} + +function generateIndex() { + const componentsExports = getExportStatements(COMPONENTS_DIR) + const hooksExports = getExportStatements(HOOKS_DIR) + + const content = `// Components exports +${componentsExports} + +// Hooks exports +${hooksExports} + +// Utils exports +export * from "./lib/utils" +` + + fs.writeFileSync(INDEX_FILE, content, "utf-8") + console.log("✅ Successfully generated index.ts") +} + +generateIndex() +generatePackageExports() diff --git a/src/components/ui/accordion.tsx b/packages/ui/src/components/ui/accordion.tsx similarity index 83% rename from src/components/ui/accordion.tsx rename to packages/ui/src/components/ui/accordion.tsx index df96aef..e1797c9 100644 --- a/src/components/ui/accordion.tsx +++ b/packages/ui/src/components/ui/accordion.tsx @@ -1,6 +1,6 @@ -import * as AccordionPrimitive from "@radix-ui/react-accordion" -import { ChevronDownIcon } from "@radix-ui/react-icons" import * as React from "react" +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import { ChevronDown } from "lucide-react" import { cn } from "@/lib/utils" @@ -26,13 +26,13 @@ const AccordionTrigger = React.forwardRef< svg]:rotate-180", - className, + "flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180", + className )} {...props} > {children} - + )) @@ -52,4 +52,4 @@ const AccordionContent = React.forwardRef< )) AccordionContent.displayName = AccordionPrimitive.Content.displayName -export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/src/components/ui/alert-dialog.tsx b/packages/ui/src/components/ui/alert-dialog.tsx similarity index 98% rename from src/components/ui/alert-dialog.tsx rename to packages/ui/src/components/ui/alert-dialog.tsx index 8db4aec..fa2b442 100644 --- a/src/components/ui/alert-dialog.tsx +++ b/packages/ui/src/components/ui/alert-dialog.tsx @@ -1,8 +1,8 @@ -import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" import * as React from "react" +import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" -import { buttonVariants } from "@/components/ui/button" import { cn } from "@/lib/utils" +import { buttonVariants } from "@/components/ui/button" const AlertDialog = AlertDialogPrimitive.Root @@ -17,7 +17,7 @@ const AlertDialogOverlay = React.forwardRef< @@ -50,7 +50,7 @@ const AlertDialogHeader = ({
    @@ -64,7 +64,7 @@ const AlertDialogFooter = ({
    @@ -117,7 +117,7 @@ const AlertDialogCancel = React.forwardRef< className={cn( buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", - className, + className )} {...props} /> @@ -126,14 +126,14 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName export { AlertDialog, - AlertDialogAction, - AlertDialogCancel, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, AlertDialogContent, - AlertDialogDescription, - AlertDialogFooter, AlertDialogHeader, - AlertDialogOverlay, - AlertDialogPortal, + AlertDialogFooter, AlertDialogTitle, - AlertDialogTrigger, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, } diff --git a/src/components/ui/alert.tsx b/packages/ui/src/components/ui/alert.tsx similarity index 90% rename from src/components/ui/alert.tsx rename to packages/ui/src/components/ui/alert.tsx index 7dffd37..5afd41d 100644 --- a/src/components/ui/alert.tsx +++ b/packages/ui/src/components/ui/alert.tsx @@ -1,6 +1,5 @@ -import type { VariantProps } from "class-variance-authority" -import { cva } from "class-variance-authority" import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" @@ -17,7 +16,7 @@ const alertVariants = cva( defaultVariants: { variant: "default", }, - }, + } ) const Alert = React.forwardRef< @@ -57,4 +56,4 @@ const AlertDescription = React.forwardRef< )) AlertDescription.displayName = "AlertDescription" -export { Alert, AlertDescription, AlertTitle } +export { Alert, AlertTitle, AlertDescription } diff --git a/src/components/ui/aspect-ratio.tsx b/packages/ui/src/components/ui/aspect-ratio.tsx similarity index 100% rename from src/components/ui/aspect-ratio.tsx rename to packages/ui/src/components/ui/aspect-ratio.tsx diff --git a/src/components/ui/avatar.tsx b/packages/ui/src/components/ui/avatar.tsx similarity index 78% rename from src/components/ui/avatar.tsx rename to packages/ui/src/components/ui/avatar.tsx index f4b2da2..51e507b 100644 --- a/src/components/ui/avatar.tsx +++ b/packages/ui/src/components/ui/avatar.tsx @@ -1,5 +1,7 @@ -import * as AvatarPrimitive from "@radix-ui/react-avatar" +"use client" + import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" import { cn } from "@/lib/utils" @@ -10,8 +12,8 @@ const Avatar = React.forwardRef< @@ -24,7 +26,7 @@ const AvatarImage = React.forwardRef< >(({ className, ...props }, ref) => ( )) @@ -37,12 +39,12 @@ const AvatarFallback = React.forwardRef< )) AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName -export { Avatar, AvatarFallback, AvatarImage } +export { Avatar, AvatarImage, AvatarFallback } diff --git a/src/components/ui/badge.tsx b/packages/ui/src/components/ui/badge.tsx similarity index 87% rename from src/components/ui/badge.tsx rename to packages/ui/src/components/ui/badge.tsx index bd7408c..e87d62b 100644 --- a/src/components/ui/badge.tsx +++ b/packages/ui/src/components/ui/badge.tsx @@ -1,6 +1,5 @@ -import type { VariantProps } from "class-variance-authority" -import { cva } from "class-variance-authority" import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" @@ -21,12 +20,12 @@ const badgeVariants = cva( defaultVariants: { variant: "default", }, - }, + } ) export interface BadgeProps extends React.HTMLAttributes, - VariantProps {} + VariantProps {} function Badge({ className, variant, ...props }: BadgeProps) { return ( diff --git a/src/components/ui/breadcrumb.tsx b/packages/ui/src/components/ui/breadcrumb.tsx similarity index 94% rename from src/components/ui/breadcrumb.tsx rename to packages/ui/src/components/ui/breadcrumb.tsx index cfdc9ac..60e6c96 100644 --- a/src/components/ui/breadcrumb.tsx +++ b/packages/ui/src/components/ui/breadcrumb.tsx @@ -1,6 +1,6 @@ import * as React from "react" -import { ChevronRightIcon, DotsHorizontalIcon } from "@radix-ui/react-icons" import { Slot } from "@radix-ui/react-slot" +import { ChevronRight, MoreHorizontal } from "lucide-react" import { cn } from "@/lib/utils" @@ -83,7 +83,7 @@ const BreadcrumbSeparator = ({ className={cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)} {...props} > - {children ?? } + {children ?? } ) BreadcrumbSeparator.displayName = "BreadcrumbSeparator" @@ -98,7 +98,7 @@ const BreadcrumbEllipsis = ({ className={cn("flex h-9 w-9 items-center justify-center", className)} {...props} > - + More ) diff --git a/src/components/ui/button.tsx b/packages/ui/src/components/ui/button.tsx similarity index 77% rename from src/components/ui/button.tsx rename to packages/ui/src/components/ui/button.tsx index db9d625..96a4a21 100644 --- a/src/components/ui/button.tsx +++ b/packages/ui/src/components/ui/button.tsx @@ -1,12 +1,11 @@ -import { Slot } from "@radix-ui/react-slot" -import type { VariantProps } from "class-variance-authority" -import { cva } from "class-variance-authority" import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", { variants: { variant: { @@ -32,13 +31,12 @@ const buttonVariants = cva( variant: "default", size: "default", }, - }, + } ) -export type ButtonVariants = typeof buttonVariants export interface ButtonProps extends React.ButtonHTMLAttributes, - VariantProps { + VariantProps { asChild?: boolean } @@ -52,8 +50,9 @@ const Button = React.forwardRef( {...props} /> ) - }, + } ) Button.displayName = "Button" export { Button, buttonVariants } + diff --git a/src/components/ui/calendar.tsx b/packages/ui/src/components/ui/calendar.tsx similarity index 73% rename from src/components/ui/calendar.tsx rename to packages/ui/src/components/ui/calendar.tsx index 9bbccac..4d6579c 100644 --- a/src/components/ui/calendar.tsx +++ b/packages/ui/src/components/ui/calendar.tsx @@ -1,9 +1,9 @@ -import { ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons" import * as React from "react" +import { ChevronLeft, ChevronRight } from "lucide-react" import { DayPicker } from "react-day-picker" -import { buttonVariants } from "@/components/ui/button" import { cn } from "@/lib/utils" +import { buttonVariants } from "@/components/ui/button" export type CalendarProps = React.ComponentProps @@ -25,7 +25,7 @@ function Calendar({ nav: "space-x-1 flex items-center", nav_button: cn( buttonVariants({ variant: "outline" }), - "size-7 bg-transparent p-0 opacity-50 hover:opacity-100", + "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100" ), nav_button_previous: "absolute left-1", nav_button_next: "absolute right-1", @@ -36,13 +36,13 @@ function Calendar({ row: "flex w-full mt-2", cell: cn( "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md", - props.mode === "range" ? - "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : - "[&:has([aria-selected])]:rounded-md", + props.mode === "range" + ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" + : "[&:has([aria-selected])]:rounded-md" ), day: cn( buttonVariants({ variant: "ghost" }), - "size-8 p-0 font-normal aria-selected:opacity-100", + "h-8 w-8 p-0 font-normal aria-selected:opacity-100" ), day_range_start: "day-range-start", day_range_end: "day-range-end", @@ -50,7 +50,7 @@ function Calendar({ "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground", day_today: "bg-accent text-accent-foreground", day_outside: - "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30", + "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground", day_disabled: "text-muted-foreground opacity-50", day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground", @@ -58,8 +58,8 @@ function Calendar({ ...classNames, }} components={{ - IconLeft: () => , - IconRight: () => , + IconLeft: ({ ...props }) => , + IconRight: ({ ...props }) => , }} {...props} /> diff --git a/src/components/ui/card.tsx b/packages/ui/src/components/ui/card.tsx similarity index 86% rename from src/components/ui/card.tsx rename to packages/ui/src/components/ui/card.tsx index aa1b11f..cabfbfc 100644 --- a/src/components/ui/card.tsx +++ b/packages/ui/src/components/ui/card.tsx @@ -10,7 +10,7 @@ const Card = React.forwardRef< ref={ref} className={cn( "rounded-xl border bg-card text-card-foreground shadow", - className, + className )} {...props} /> @@ -30,10 +30,10 @@ const CardHeader = React.forwardRef< CardHeader.displayName = "CardHeader" const CardTitle = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes + HTMLDivElement, + React.HTMLAttributes >(({ className, ...props }, ref) => ( -

    + HTMLDivElement, + React.HTMLAttributes >(({ className, ...props }, ref) => ( -

    @@ -53,14 +54,14 @@ const Carousel = React.forwardRef< children, ...props }, - ref, + ref ) => { const [carouselRef, api] = useEmblaCarousel( { ...opts, axis: orientation === "horizontal" ? "x" : "y", }, - plugins, + plugins ) const [canScrollPrev, setCanScrollPrev] = React.useState(false) const [canScrollNext, setCanScrollNext] = React.useState(false) @@ -92,7 +93,7 @@ const Carousel = React.forwardRef< scrollNext() } }, - [scrollPrev, scrollNext], + [scrollPrev, scrollNext] ) React.useEffect(() => { @@ -121,7 +122,7 @@ const Carousel = React.forwardRef< ) - }, + } ) Carousel.displayName = "Carousel" @@ -160,7 +161,7 @@ const CarouselContent = React.forwardRef< className={cn( "flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", - className, + className )} {...props} /> @@ -183,7 +184,7 @@ const CarouselItem = React.forwardRef< className={cn( "min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", - className, + className )} {...props} /> @@ -203,17 +204,17 @@ const CarouselPrevious = React.forwardRef< variant={variant} size={size} className={cn( - "absolute size-8 rounded-full", - orientation === "horizontal" ? - "-left-12 top-1/2 -translate-y-1/2" : - "-top-12 left-1/2 -translate-x-1/2 rotate-90", - className, + "absolute h-8 w-8 rounded-full", + orientation === "horizontal" + ? "-left-12 top-1/2 -translate-y-1/2" + : "-top-12 left-1/2 -translate-x-1/2 rotate-90", + className )} disabled={!canScrollPrev} onClick={scrollPrev} {...props} > - + Previous slide ) @@ -232,17 +233,17 @@ const CarouselNext = React.forwardRef< variant={variant} size={size} className={cn( - "absolute size-8 rounded-full", - orientation === "horizontal" ? - "-right-12 top-1/2 -translate-y-1/2" : - "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", - className, + "absolute h-8 w-8 rounded-full", + orientation === "horizontal" + ? "-right-12 top-1/2 -translate-y-1/2" + : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", + className )} disabled={!canScrollNext} onClick={scrollNext} {...props} > - + Next slide ) @@ -250,10 +251,10 @@ const CarouselNext = React.forwardRef< CarouselNext.displayName = "CarouselNext" export { - Carousel, type CarouselApi, + Carousel, CarouselContent, CarouselItem, - CarouselNext, CarouselPrevious, + CarouselNext, } diff --git a/src/components/ui/chart.tsx b/packages/ui/src/components/ui/chart.tsx similarity index 85% rename from src/components/ui/chart.tsx rename to packages/ui/src/components/ui/chart.tsx index d44b572..b482465 100644 --- a/src/components/ui/chart.tsx +++ b/packages/ui/src/components/ui/chart.tsx @@ -1,6 +1,9 @@ +"use client" + import * as React from "react" import * as RechartsPrimitive from "recharts" + import { cn } from "@/lib/utils" // Format: { THEME_NAME: CSS_SELECTOR } @@ -11,8 +14,8 @@ export type ChartConfig = { label?: React.ReactNode icon?: React.ComponentType } & ( - | { color?: string, theme?: never } - | { color?: never, theme: Record } + | { color?: string; theme?: never } + | { color?: never; theme: Record } ) } @@ -42,7 +45,7 @@ const ChartContainer = React.forwardRef< } >(({ id, className, children, config, ...props }, ref) => { const uniqueId = React.useId() - const chartId = `chart-${id || uniqueId.replaceAll(":", "")}` + const chartId = `chart-${id || uniqueId.replace(/:/g, "")}` return ( @@ -51,7 +54,7 @@ const ChartContainer = React.forwardRef< ref={ref} className={cn( "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none", - className, + className )} {...props} > @@ -65,12 +68,12 @@ const ChartContainer = React.forwardRef< }) ChartContainer.displayName = "Chart" -const ChartStyle = ({ id, config }: { id: string, config: ChartConfig }) => { +const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => { const colorConfig = Object.entries(config).filter( - ([_, config]) => config.theme || config.color, + ([_, config]) => config.theme || config.color ) - if (colorConfig.length === 0) { + if (!colorConfig.length) { return null } @@ -82,15 +85,15 @@ const ChartStyle = ({ id, config }: { id: string, config: ChartConfig }) => { ([theme, prefix]) => ` ${prefix} [data-chart=${id}] { ${colorConfig - .map(([key, itemConfig]) => { - const color = - itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || - itemConfig.color - return color ? ` --color-${key}: ${color};` : null - }) - .join("\n")} + .map(([key, itemConfig]) => { + const color = + itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || + itemConfig.color + return color ? ` --color-${key}: ${color};` : null + }) + .join("\n")} } -`, +` ) .join("\n"), }} @@ -127,7 +130,7 @@ const ChartTooltipContent = React.forwardRef< nameKey, labelKey, }, - ref, + ref ) => { const { config } = useChart() @@ -140,9 +143,9 @@ const ChartTooltipContent = React.forwardRef< const key = `${labelKey || item.dataKey || item.name || "value"}` const itemConfig = getPayloadConfigFromPayload(config, item, key) const value = - !labelKey && typeof label === "string" ? - config[label as keyof typeof config]?.label || label : - itemConfig?.label + !labelKey && typeof label === "string" + ? config[label as keyof typeof config]?.label || label + : itemConfig?.label if (labelFormatter) { return ( @@ -177,8 +180,8 @@ const ChartTooltipContent = React.forwardRef<

    {!nestLabel ? tooltipLabel : null} @@ -192,8 +195,8 @@ const ChartTooltipContent = React.forwardRef<
    svg]:size-2.5 [&>svg]:text-muted-foreground", - indicator === "dot" && "items-center", + "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground", + indicator === "dot" && "items-center" )} > {formatter && item?.value !== undefined && item.name ? ( @@ -213,7 +216,7 @@ const ChartTooltipContent = React.forwardRef< "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed", "my-0.5": nestLabel && indicator === "dashed", - }, + } )} style={ { @@ -227,7 +230,7 @@ const ChartTooltipContent = React.forwardRef<
    @@ -250,7 +253,7 @@ const ChartTooltipContent = React.forwardRef<
    ) - }, + } ) ChartTooltipContent.displayName = "ChartTooltip" @@ -266,7 +269,7 @@ const ChartLegendContent = React.forwardRef< >( ( { className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, - ref, + ref ) => { const { config } = useChart() @@ -280,7 +283,7 @@ const ChartLegendContent = React.forwardRef< className={cn( "flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", - className, + className )} > {payload.map((item) => { @@ -291,14 +294,14 @@ const ChartLegendContent = React.forwardRef<
    svg]:size-3 [&>svg]:text-muted-foreground", + "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground" )} > {itemConfig?.icon && !hideIcon ? ( ) : (
    ) - }, + } ) ChartLegendContent.displayName = "ChartLegend" @@ -318,18 +321,18 @@ ChartLegendContent.displayName = "ChartLegend" function getPayloadConfigFromPayload( config: ChartConfig, payload: unknown, - key: string, + key: string ) { if (typeof payload !== "object" || payload === null) { - return + return undefined } const payloadPayload = "payload" in payload && - typeof payload.payload === "object" && - payload.payload !== null ? - payload.payload : - undefined + typeof payload.payload === "object" && + payload.payload !== null + ? payload.payload + : undefined let configLabelKey: string = key @@ -348,16 +351,16 @@ function getPayloadConfigFromPayload( ] as string } - return configLabelKey in config ? - config[configLabelKey] : - config[key as keyof typeof config] + return configLabelKey in config + ? config[configLabelKey] + : config[key as keyof typeof config] } export { ChartContainer, + ChartTooltip, + ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, - ChartTooltip, - ChartTooltipContent, } diff --git a/src/components/ui/checkbox.tsx b/packages/ui/src/components/ui/checkbox.tsx similarity index 63% rename from src/components/ui/checkbox.tsx rename to packages/ui/src/components/ui/checkbox.tsx index 23f85f2..0a6a9a5 100644 --- a/src/components/ui/checkbox.tsx +++ b/packages/ui/src/components/ui/checkbox.tsx @@ -1,6 +1,6 @@ -import * as CheckboxPrimitive from "@radix-ui/react-checkbox" -import { CheckIcon } from "@radix-ui/react-icons" import * as React from "react" +import * as CheckboxPrimitive from "@radix-ui/react-checkbox" +import { Check } from "lucide-react" import { cn } from "@/lib/utils" @@ -11,15 +11,15 @@ const Checkbox = React.forwardRef< - + )) diff --git a/packages/ui/src/components/ui/collapsible.tsx b/packages/ui/src/components/ui/collapsible.tsx new file mode 100644 index 0000000..9fa4894 --- /dev/null +++ b/packages/ui/src/components/ui/collapsible.tsx @@ -0,0 +1,11 @@ +"use client" + +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible" + +const Collapsible = CollapsiblePrimitive.Root + +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger + +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent + +export { Collapsible, CollapsibleTrigger, CollapsibleContent } diff --git a/src/components/ui/command.tsx b/packages/ui/src/components/ui/command.tsx similarity index 65% rename from src/components/ui/command.tsx rename to packages/ui/src/components/ui/command.tsx index fbb5c1b..0db642a 100644 --- a/src/components/ui/command.tsx +++ b/packages/ui/src/components/ui/command.tsx @@ -1,15 +1,10 @@ -import type { DialogProps } from "@radix-ui/react-dialog" -import { MagnifyingGlassIcon } from "@radix-ui/react-icons" -import { Command as CommandPrimitive } from "cmdk" import * as React from "react" +import { type DialogProps } from "@radix-ui/react-dialog" +import { Command as CommandPrimitive } from "cmdk" +import { Search } from "lucide-react" -import { - Dialog, - DialogContent, - DialogDescription, - DialogTitle, -} from "@/components/ui/dialog" import { cn } from "@/lib/utils" +import { Dialog, DialogContent } from "@/components/ui/dialog" const Command = React.forwardRef< React.ElementRef, @@ -18,7 +13,7 @@ const Command = React.forwardRef< ( - - - Search - - Search for documentation - - - {children} - - - -) +const CommandDialog = ({ children, ...props }: DialogProps) => { + return ( + + + + {children} + + + + ) +} const CommandInput = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( -
    - +
    + ((props, ref) => ( )) @@ -122,7 +113,7 @@ const CommandItem = React.forwardRef< ) => ( - -) +}: React.HTMLAttributes) => { + return ( + + ) +} CommandShortcut.displayName = "CommandShortcut" export { Command, CommandDialog, + CommandInput, + CommandList, CommandEmpty, CommandGroup, - CommandInput, CommandItem, - CommandList, - CommandSeparator, CommandShortcut, + CommandSeparator, } diff --git a/src/components/ui/context-menu.tsx b/packages/ui/src/components/ui/context-menu.tsx similarity index 77% rename from src/components/ui/context-menu.tsx rename to packages/ui/src/components/ui/context-menu.tsx index e02311a..67bbd28 100644 --- a/src/components/ui/context-menu.tsx +++ b/packages/ui/src/components/ui/context-menu.tsx @@ -1,10 +1,6 @@ -import * as ContextMenuPrimitive from "@radix-ui/react-context-menu" -import { - CheckIcon, - ChevronRightIcon, - DotFilledIcon, -} from "@radix-ui/react-icons" import * as React from "react" +import * as ContextMenuPrimitive from "@radix-ui/react-context-menu" +import { Check, ChevronRight, Circle } from "lucide-react" import { cn } from "@/lib/utils" @@ -31,12 +27,12 @@ const ContextMenuSubTrigger = React.forwardRef< className={cn( "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", inset && "pl-8", - className, + className )} {...props} > {children} - + )) ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName @@ -48,8 +44,8 @@ const ContextMenuSubContent = React.forwardRef< @@ -64,8 +60,8 @@ const ContextMenuContent = React.forwardRef< @@ -84,7 +80,7 @@ const ContextMenuItem = React.forwardRef< className={cn( "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", inset && "pl-8", - className, + className )} {...props} /> @@ -99,14 +95,14 @@ const ContextMenuCheckboxItem = React.forwardRef< ref={ref} className={cn( "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", - className, + className )} checked={checked} {...props} > - + - + {children} @@ -123,13 +119,13 @@ const ContextMenuRadioItem = React.forwardRef< ref={ref} className={cn( "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", - className, + className )} {...props} > - + - + {children} @@ -148,7 +144,7 @@ const ContextMenuLabel = React.forwardRef< className={cn( "px-2 py-1.5 text-sm font-semibold text-foreground", inset && "pl-8", - className, + className )} {...props} /> @@ -170,31 +166,33 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName const ContextMenuShortcut = ({ className, ...props -}: React.HTMLAttributes) => ( - -) +}: React.HTMLAttributes) => { + return ( + + ) +} ContextMenuShortcut.displayName = "ContextMenuShortcut" export { ContextMenu, - ContextMenuCheckboxItem, + ContextMenuTrigger, ContextMenuContent, - ContextMenuGroup, ContextMenuItem, - ContextMenuLabel, - ContextMenuPortal, - ContextMenuRadioGroup, + ContextMenuCheckboxItem, ContextMenuRadioItem, + ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, + ContextMenuGroup, + ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, - ContextMenuTrigger, + ContextMenuRadioGroup, } diff --git a/src/components/ui/dialog.tsx b/packages/ui/src/components/ui/dialog.tsx similarity index 93% rename from src/components/ui/dialog.tsx rename to packages/ui/src/components/ui/dialog.tsx index dc5ec50..4f594a4 100644 --- a/src/components/ui/dialog.tsx +++ b/packages/ui/src/components/ui/dialog.tsx @@ -1,8 +1,11 @@ -import * as DialogPrimitive from "@radix-ui/react-dialog" -import { Cross2Icon } from "@radix-ui/react-icons" +"use client" + import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" import { cn } from "@/lib/utils" +import { DialogProps } from "@radix-ui/react-dialog" const Dialog = DialogPrimitive.Root @@ -20,7 +23,7 @@ const DialogOverlay = React.forwardRef< ref={ref} className={cn( "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", - className, + className )} {...props} /> @@ -37,13 +40,13 @@ const DialogContent = React.forwardRef< ref={ref} className={cn( "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", - className, + className )} {...props} > {children} - + Close @@ -58,7 +61,7 @@ const DialogHeader = ({
    @@ -72,7 +75,7 @@ const DialogFooter = ({
    @@ -87,7 +90,7 @@ const DialogTitle = React.forwardRef< ref={ref} className={cn( "text-lg font-semibold leading-none tracking-tight", - className, + className )} {...props} /> @@ -108,13 +111,15 @@ DialogDescription.displayName = DialogPrimitive.Description.displayName export { Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, DialogClose, DialogContent, - DialogDescription, - DialogFooter, DialogHeader, - DialogOverlay, - DialogPortal, + DialogFooter, DialogTitle, - DialogTrigger, + DialogDescription } +export type { DialogProps } + diff --git a/src/components/ui/drawer.tsx b/packages/ui/src/components/ui/drawer.tsx similarity index 98% rename from src/components/ui/drawer.tsx rename to packages/ui/src/components/ui/drawer.tsx index a454049..6a0ef53 100644 --- a/src/components/ui/drawer.tsx +++ b/packages/ui/src/components/ui/drawer.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import { Drawer as DrawerPrimitive } from "vaul" @@ -42,7 +44,7 @@ const DrawerContent = React.forwardRef< ref={ref} className={cn( "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background", - className, + className )} {...props} > @@ -83,7 +85,7 @@ const DrawerTitle = React.forwardRef< ref={ref} className={cn( "text-lg font-semibold leading-none tracking-tight", - className, + className )} {...props} /> @@ -104,13 +106,13 @@ DrawerDescription.displayName = DrawerPrimitive.Description.displayName export { Drawer, + DrawerPortal, + DrawerOverlay, + DrawerTrigger, DrawerClose, DrawerContent, - DrawerDescription, - DrawerFooter, DrawerHeader, - DrawerOverlay, - DrawerPortal, + DrawerFooter, DrawerTitle, - DrawerTrigger, + DrawerDescription, } diff --git a/src/components/ui/dropdown-menu.tsx b/packages/ui/src/components/ui/dropdown-menu.tsx similarity index 96% rename from src/components/ui/dropdown-menu.tsx rename to packages/ui/src/components/ui/dropdown-menu.tsx index 61eadd5..9ff6568 100644 --- a/src/components/ui/dropdown-menu.tsx +++ b/packages/ui/src/components/ui/dropdown-menu.tsx @@ -1,10 +1,6 @@ import * as React from "react" import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" -import { - CheckIcon, - ChevronRightIcon, - DotFilledIcon, -} from "@radix-ui/react-icons" +import { Check, ChevronRight, Circle } from "lucide-react" import { cn } from "@/lib/utils" @@ -36,7 +32,7 @@ const DropdownMenuSubTrigger = React.forwardRef< {...props} > {children} - + )) DropdownMenuSubTrigger.displayName = @@ -110,7 +106,7 @@ const DropdownMenuCheckboxItem = React.forwardRef< > - + {children} @@ -133,7 +129,7 @@ const DropdownMenuRadioItem = React.forwardRef< > - + {children} diff --git a/src/components/ui/form.tsx b/packages/ui/src/components/ui/form.tsx similarity index 89% rename from src/components/ui/form.tsx rename to packages/ui/src/components/ui/form.tsx index db36815..b6daa65 100644 --- a/src/components/ui/form.tsx +++ b/packages/ui/src/components/ui/form.tsx @@ -1,43 +1,45 @@ -import type * as LabelPrimitive from "@radix-ui/react-label" -import { Slot } from "@radix-ui/react-slot" +"use client" + import * as React from "react" -import type { +import * as LabelPrimitive from "@radix-ui/react-label" +import { Slot } from "@radix-ui/react-slot" +import { + Controller, ControllerProps, FieldPath, FieldValues, -} from "react-hook-form" -import { - Controller, FormProvider, useFormContext, } from "react-hook-form" -import { Label } from "@/components/ui/label" import { cn } from "@/lib/utils" +import { Label } from "@/components/ui/label" const Form = FormProvider type FormFieldContextValue< TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath, + TName extends FieldPath = FieldPath > = { name: TName } const FormFieldContext = React.createContext( - {} as FormFieldContextValue, + {} as FormFieldContextValue ) const FormField = < TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath, + TName extends FieldPath = FieldPath >({ ...props -}: ControllerProps) => ( - - - -) +}: ControllerProps) => { + return ( + + + + ) +} const useFormField = () => { const fieldContext = React.useContext(FormFieldContext) @@ -67,7 +69,7 @@ type FormItemContextValue = { } const FormItemContext = React.createContext( - {} as FormItemContextValue, + {} as FormItemContextValue ) const FormItem = React.forwardRef< @@ -112,9 +114,9 @@ const FormControl = React.forwardRef< ref={ref} id={formItemId} aria-describedby={ - !error ? - `${formDescriptionId}` : - `${formDescriptionId} ${formMessageId}` + !error + ? `${formDescriptionId}` + : `${formDescriptionId} ${formMessageId}` } aria-invalid={!!error} {...props} @@ -165,12 +167,12 @@ const FormMessage = React.forwardRef< FormMessage.displayName = "FormMessage" export { + useFormField, Form, - FormControl, - FormDescription, - FormField, FormItem, FormLabel, + FormControl, + FormDescription, FormMessage, - useFormField, + FormField, } diff --git a/src/components/ui/hover-card.tsx b/packages/ui/src/components/ui/hover-card.tsx similarity index 92% rename from src/components/ui/hover-card.tsx rename to packages/ui/src/components/ui/hover-card.tsx index 5a6f5d9..e54d91c 100644 --- a/src/components/ui/hover-card.tsx +++ b/packages/ui/src/components/ui/hover-card.tsx @@ -1,5 +1,7 @@ -import * as HoverCardPrimitive from "@radix-ui/react-hover-card" +"use client" + import * as React from "react" +import * as HoverCardPrimitive from "@radix-ui/react-hover-card" import { cn } from "@/lib/utils" @@ -17,11 +19,11 @@ const HoverCardContent = React.forwardRef< sideOffset={sideOffset} className={cn( "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", - className, + className )} {...props} /> )) HoverCardContent.displayName = HoverCardPrimitive.Content.displayName -export { HoverCard, HoverCardContent, HoverCardTrigger } +export { HoverCard, HoverCardTrigger, HoverCardContent } diff --git a/src/components/ui/input-otp.tsx b/packages/ui/src/components/ui/input-otp.tsx similarity index 80% rename from src/components/ui/input-otp.tsx rename to packages/ui/src/components/ui/input-otp.tsx index addb336..f7891c9 100644 --- a/src/components/ui/input-otp.tsx +++ b/packages/ui/src/components/ui/input-otp.tsx @@ -1,6 +1,6 @@ -import { DashIcon } from "@radix-ui/react-icons" -import { OTPInput, OTPInputContext } from "input-otp" import * as React from "react" +import { OTPInput, OTPInputContext } from "input-otp" +import { Minus } from "lucide-react" import { cn } from "@/lib/utils" @@ -12,7 +12,7 @@ const InputOTP = React.forwardRef< ref={ref} containerClassName={cn( "flex items-center gap-2 has-[:disabled]:opacity-50", - containerClassName, + containerClassName )} className={cn("disabled:cursor-not-allowed", className)} {...props} @@ -39,16 +39,16 @@ const InputOTPSlot = React.forwardRef<
    {char} {hasFakeCaret && (
    -
    +
    )}
    @@ -61,9 +61,9 @@ const InputOTPSeparator = React.forwardRef< React.ComponentPropsWithoutRef<"div"> >(({ ...props }, ref) => (
    - +
    )) InputOTPSeparator.displayName = "InputOTPSeparator" -export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } +export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } diff --git a/packages/ui/src/components/ui/input.tsx b/packages/ui/src/components/ui/input.tsx new file mode 100644 index 0000000..69b64fb --- /dev/null +++ b/packages/ui/src/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/src/components/ui/label.tsx b/packages/ui/src/components/ui/label.tsx similarity index 76% rename from src/components/ui/label.tsx rename to packages/ui/src/components/ui/label.tsx index 0ea7634..683faa7 100644 --- a/src/components/ui/label.tsx +++ b/packages/ui/src/components/ui/label.tsx @@ -1,18 +1,17 @@ -import * as LabelPrimitive from "@radix-ui/react-label" -import type { VariantProps } from "class-variance-authority" -import { cva } from "class-variance-authority" import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const labelVariants = cva( - "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" ) const Label = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef & - VariantProps + VariantProps >(({ className, ...props }, ref) => ( @@ -41,7 +39,7 @@ const MenubarTrigger = React.forwardRef< ref={ref} className={cn( "flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", - className, + className )} {...props} /> @@ -59,12 +57,12 @@ const MenubarSubTrigger = React.forwardRef< className={cn( "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", inset && "pl-8", - className, + className )} {...props} > {children} - + )) MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName @@ -76,8 +74,8 @@ const MenubarSubContent = React.forwardRef< @@ -90,7 +88,7 @@ const MenubarContent = React.forwardRef< >( ( { className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, - ref, + ref ) => ( - ), + ) ) MenubarContent.displayName = MenubarPrimitive.Content.displayName @@ -120,7 +118,7 @@ const MenubarItem = React.forwardRef< className={cn( "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", inset && "pl-8", - className, + className )} {...props} /> @@ -135,14 +133,14 @@ const MenubarCheckboxItem = React.forwardRef< ref={ref} className={cn( "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", - className, + className )} checked={checked} {...props} > - + - + {children} @@ -158,13 +156,13 @@ const MenubarRadioItem = React.forwardRef< ref={ref} className={cn( "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", - className, + className )} {...props} > - + - + {children} @@ -183,7 +181,7 @@ const MenubarLabel = React.forwardRef< className={cn( "px-2 py-1.5 text-sm font-semibold", inset && "pl-8", - className, + className )} {...props} /> @@ -205,32 +203,34 @@ MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName const MenubarShortcut = ({ className, ...props -}: React.HTMLAttributes) => ( - -) +}: React.HTMLAttributes) => { + return ( + + ) +} MenubarShortcut.displayname = "MenubarShortcut" export { Menubar, - MenubarCheckboxItem, + MenubarMenu, + MenubarTrigger, MenubarContent, - MenubarGroup, MenubarItem, + MenubarSeparator, MenubarLabel, - MenubarMenu, - MenubarPortal, + MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, - MenubarSeparator, - MenubarShortcut, - MenubarSub, + MenubarPortal, MenubarSubContent, MenubarSubTrigger, - MenubarTrigger, + MenubarGroup, + MenubarSub, + MenubarShortcut, } diff --git a/src/components/ui/navigation-menu.tsx b/packages/ui/src/components/ui/navigation-menu.tsx similarity index 91% rename from src/components/ui/navigation-menu.tsx rename to packages/ui/src/components/ui/navigation-menu.tsx index 77e7732..a5d4d27 100644 --- a/src/components/ui/navigation-menu.tsx +++ b/packages/ui/src/components/ui/navigation-menu.tsx @@ -1,7 +1,7 @@ -import { ChevronDownIcon } from "@radix-ui/react-icons" +import * as React from "react" import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu" import { cva } from "class-variance-authority" -import * as React from "react" +import { ChevronDown } from "lucide-react" import { cn } from "@/lib/utils" @@ -13,7 +13,7 @@ const NavigationMenu = React.forwardRef< ref={ref} className={cn( "relative z-10 flex max-w-max flex-1 items-center justify-center", - className, + className )} {...props} > @@ -31,7 +31,7 @@ const NavigationMenuList = React.forwardRef< ref={ref} className={cn( "group flex flex-1 list-none items-center justify-center space-x-1", - className, + className )} {...props} /> @@ -41,7 +41,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName const NavigationMenuItem = NavigationMenuPrimitive.Item const navigationMenuTriggerStyle = cva( - "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50", + "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50" ) const NavigationMenuTrigger = React.forwardRef< @@ -53,10 +53,9 @@ const NavigationMenuTrigger = React.forwardRef< className={cn(navigationMenuTriggerStyle(), "group", className)} {...props} > - {children} - {" "} -

jU?lMi@tgxr7CqX_r3uw^y4tVU3Pm0sw;|1WSUO%?=bG`*Kmz6u4{#ti;T7AWIBAEh!(Y zz>O01&#X?Ds@L)Sb{CkG#Yz4$3o d@96)?#cz^xWoA}>B$xmI002ovPDHLkV1l3&k#zt7 literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/Square310x310Logo.png b/apps/tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bc04839491e66c07b16ab03743c0c53b4109cc GIT binary patch literal 8591 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 JPDHLkV1lm|RXG3v literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/Square71x71Logo.png b/apps/tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63440d7984936a9caa89275928d8dce97e4d033b GIT binary patch literal 2011 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∓t$dRJGIadE?vc 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 Kx8Vjl{{H|h@<;Lj literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/icon.ico b/apps/tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b3636e4b22ba65db9061cd60a77b02c92022dfd6 GIT binary patch literal 86642 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 AKmY&$ literal 0 HcmV?d00001 diff --git a/apps/tauri/icons/icon.png b/apps/tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6 GIT binary patch literal 14183 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