From 92fcd0ae06a128d716f84be1847b1a91064c841f Mon Sep 17 00:00:00 2001 From: liuyangjuncong20202570 Date: Sun, 20 Jul 2025 16:01:18 +0800 Subject: [PATCH 1/2] chore: remove antd dependencies --- moon/apps/web/package.json | 4 +- moon/pnpm-lock.yaml | 1182 +----------------------------------- moon/pnpm-workspace.yaml | 9 +- 3 files changed, 18 insertions(+), 1177 deletions(-) diff --git a/moon/apps/web/package.json b/moon/apps/web/package.json index c6ff39d21..e65e38edd 100644 --- a/moon/apps/web/package.json +++ b/moon/apps/web/package.json @@ -18,7 +18,6 @@ "@100mslive/hms-noise-cancellation": "catalog:", "@100mslive/hms-video-store": "catalog:", "@100mslive/react-sdk": "catalog:", - "@ant-design/icons": "catalog:", "@emoji-mart/data": "catalog:", "@emotion/styled": "catalog:", "@git-diff-view/react": "catalog:", @@ -61,7 +60,6 @@ "@todesktop/client-core": "catalog:", "@vercel/og": "catalog:", "@vercel/speed-insights": "catalog:", - "antd": "catalog:", "clsx": "catalog:", "cookies-next": "catalog:", "copy-to-clipboard": "catalog:", @@ -178,4 +176,4 @@ "peerDependencies": { "y-prosemirror": "^1.2.12" } -} +} \ No newline at end of file diff --git a/moon/pnpm-lock.yaml b/moon/pnpm-lock.yaml index 44f8419a6..b80abd68f 100644 --- a/moon/pnpm-lock.yaml +++ b/moon/pnpm-lock.yaml @@ -15,45 +15,24 @@ catalogs: '@100mslive/react-sdk': specifier: ^0.10.21 version: 0.10.21 - '@ant-design/icons': - specifier: ^6.0.0 - version: 6.0.0 '@emoji-mart/data': specifier: ^1.1.2 version: 1.1.2 '@emotion/styled': specifier: ^11.14.0 version: 11.14.0 - '@flydotio/dockerfile': - specifier: ^0.4.11 - version: 0.4.11 '@git-diff-view/react': specifier: 0.0.26 version: 0.0.26 '@heroicons/react': specifier: ^2.2.0 version: 2.2.0 - '@hocuspocus/extension-database': - specifier: ^2.13.5 - version: 2.15.2 - '@hocuspocus/extension-logger': - specifier: ^2.13.5 - version: 2.15.2 '@hocuspocus/provider': specifier: ^2.13.5 version: 2.13.5 - '@hocuspocus/server': - specifier: ^2.13.5 - version: 2.15.2 - '@hocuspocus/transformer': - specifier: ^2.13.5 - version: 2.15.2 '@hookform/resolvers': specifier: ^3.3.1 version: 3.3.1 - '@ianvs/prettier-plugin-sort-imports': - specifier: ^4.2.1 - version: 4.2.1 '@mui/icons-material': specifier: ^7.1.0 version: 7.1.0 @@ -87,24 +66,15 @@ catalogs: '@radix-ui/react-accordion': specifier: ^1.2.0 version: 1.2.11 - '@radix-ui/react-context-menu': - specifier: ^2.2.1 - version: 2.2.15 '@radix-ui/react-dialog': specifier: ^1.1.1 version: 1.1.14 - '@radix-ui/react-dropdown-menu': - specifier: ^2.1.1 - version: 2.1.15 '@radix-ui/react-hover-card': specifier: ^1.1.1 version: 1.1.14 '@radix-ui/react-popover': specifier: ^1.1.1 version: 1.1.14 - '@radix-ui/react-popper': - specifier: ^1.2.0 - version: 1.2.7 '@radix-ui/react-portal': specifier: ^1.1.1 version: 1.1.9 @@ -114,36 +84,15 @@ catalogs: '@radix-ui/react-slider': specifier: ^1.2.0 version: 1.3.5 - '@radix-ui/react-slot': - specifier: ^1.1.0 - version: 1.2.3 - '@radix-ui/react-switch': - specifier: ^1.1.0 - version: 1.2.5 '@radix-ui/react-tabs': specifier: ^1.1.0 version: 1.1.12 - '@radix-ui/react-toggle-group': - specifier: ^1.1.0 - version: 1.1.10 - '@radix-ui/react-tooltip': - specifier: ^1.1.2 - version: 1.2.7 - '@radix-ui/react-visually-hidden': - specifier: ^1.1.0 - version: 1.2.3 '@radix-ui/themes': specifier: ^3.2.1 version: 3.2.1 - '@sentry/cli': - specifier: ^2.30.1 - version: 2.30.1 '@sentry/nextjs': specifier: ^8.17.0 version: 8.17.0 - '@sentry/node': - specifier: ^7.106.1 - version: 7.120.3 '@shopify/react-shortcuts': specifier: ^5.2.0 version: 5.2.0 @@ -177,18 +126,6 @@ catalogs: '@swc-jotai/react-refresh': specifier: ^0.0.7 version: 0.0.7 - '@tailwindcss/container-queries': - specifier: ^0.1.1 - version: 0.1.1 - '@tailwindcss/forms': - specifier: ^0.5.2 - version: 0.5.3 - '@tailwindcss/typography': - specifier: ^0.5.9 - version: 0.5.9 - '@tanstack/eslint-plugin-query': - specifier: ^4.34.1 - version: 4.38.0 '@tanstack/react-query': specifier: ^5.56.2 version: 5.59.0 @@ -201,99 +138,15 @@ catalogs: '@testing-library/react': specifier: ^15.0.7 version: 15.0.7 - '@tiptap-pro/extension-details': - specifier: ^2.10.11 - version: 2.10.11 - '@tiptap-pro/extension-details-content': - specifier: ^2.10.11 - version: 2.10.11 - '@tiptap-pro/extension-details-summary': - specifier: ^2.10.11 - version: 2.10.11 '@tiptap/core': specifier: ^2.6.4 version: 2.13.0 - '@tiptap/extension-blockquote': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-bold': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-bullet-list': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-code': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-code-block': - specifier: ^2.6.4 - version: 2.13.0 '@tiptap/extension-collaboration': specifier: ^2.6.4 version: 2.6.4 '@tiptap/extension-collaboration-cursor': specifier: ^2.6.4 version: 2.6.4 - '@tiptap/extension-document': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-dropcursor': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-hard-break': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-heading': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-history': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-horizontal-rule': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-italic': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-link': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-list-item': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-list-keymap': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-ordered-list': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-paragraph': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-placeholder': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-strike': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-task-item': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-task-list': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-text': - specifier: ^2.6.4 - version: 2.13.0 - '@tiptap/extension-typography': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/extension-underline': - specifier: ^2.6.4 - version: 2.6.4 - '@tiptap/html': - specifier: ^2.6.4 - version: 2.13.0 '@tiptap/pm': specifier: ^2.6.4 version: 2.13.0 @@ -312,12 +165,6 @@ catalogs: '@types/d3-zoom': specifier: ^3.0.3 version: 3.0.3 - '@types/diff': - specifier: ^5.0.5 - version: 5.0.5 - '@types/markdown-it': - specifier: ^13.0.7 - version: 13.0.7 '@types/node': specifier: ^20.12.4 version: 20.12.4 @@ -333,12 +180,6 @@ catalogs: '@types/uuid': specifier: ^9.0.4 version: 9.0.4 - '@typescript-eslint/eslint-plugin': - specifier: ^7.11.0 - version: 7.11.0 - '@typescript-eslint/parser': - specifier: ^7.11.0 - version: 7.11.0 '@vercel/og': specifier: ^0.6.2 version: 0.6.2 @@ -351,15 +192,9 @@ catalogs: '@welldone-software/why-did-you-render': specifier: ^7.0.1 version: 7.0.1 - antd: - specifier: ^5.25.0 - version: 5.25.1 autoprefixer: specifier: ^10.4.8 version: 10.4.14 - class-variance-authority: - specifier: ^0.7.0 - version: 0.7.0 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -381,33 +216,9 @@ catalogs: deepmerge: specifier: ^4.3.1 version: 4.3.1 - diff: - specifier: ^5.1.0 - version: 5.1.0 - dotenv: - specifier: ^16.3.1 - version: 16.4.5 - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-config-next: - specifier: ^14.2.3 - version: 14.2.3 - eslint-config-turbo: - specifier: ^2.0.9 - version: 2.0.9 - eslint-plugin-react: - specifier: ^7.34.1 - version: 7.34.1 - eslint-plugin-react-hooks: - specifier: ^4.6.2 - version: 4.6.2 eslint-plugin-storybook: specifier: ^0.8.0 version: 0.8.0 - eslint-plugin-unused-imports: - specifier: ^3.2.0 - version: 3.2.0 fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -432,9 +243,6 @@ catalogs: js-base64: specifier: ^3.7.5 version: 3.7.5 - jsdom: - specifier: ^24.0.0 - version: 24.0.0 jszip: specifier: ^3.10.1 version: 3.10.1 @@ -447,9 +255,6 @@ catalogs: lottie-web: specifier: ^5.11.0 version: 5.11.0 - markdown-it: - specifier: ^14.1.0 - version: 14.1.0 material-file-icons: specifier: ^2.4.0 version: 2.4.0 @@ -525,18 +330,6 @@ catalogs: postcss: specifier: ^8.4.29 version: 8.5.4 - postcss-import: - specifier: ^15.1.0 - version: 15.1.0 - prettier: - specifier: ^3.2.5 - version: 3.3.3 - prettier-plugin-packagejson: - specifier: ^2.4.14 - version: 2.4.14 - prettier-plugin-tailwindcss: - specifier: ^0.6.8 - version: 0.6.8 prism-react-renderer: specifier: ^2.4.1 version: 2.4.1 @@ -549,9 +342,6 @@ catalogs: react-aria: specifier: ^3.27.0 version: 3.27.0 - react-day-picker: - specifier: ^8.10.1 - version: 8.10.1 react-device-detect: specifier: ^2.2.2 version: 2.2.3 @@ -561,9 +351,6 @@ catalogs: react-dropzone: specifier: ^14.2.2 version: 14.2.3 - react-error-boundary: - specifier: ^4.0.13 - version: 4.0.13 react-hook-form: specifier: ^7.46.1 version: 7.46.1 @@ -597,9 +384,6 @@ catalogs: react-select: specifier: ^5.7.0 version: 5.7.0 - react-textarea-autosize: - specifier: ^8.5.3 - version: 8.5.3 react-timeago: specifier: ^7.2.0 version: 7.2.0 @@ -612,15 +396,9 @@ catalogs: react-wrap-balancer: specifier: ^0.5.0 version: 0.5.0 - refractor: - specifier: ^4.8.1 - version: 4.8.1 remeda: specifier: ^1.23.0 version: 1.23.0 - rfc6902: - specifier: ^5.0.1 - version: 5.0.1 slugify: specifier: ^1.6.6 version: 1.6.6 @@ -630,33 +408,12 @@ catalogs: styled-components: specifier: ^6.1.19 version: 6.1.19 - swagger-typescript-api: - specifier: ^12.0.4 - version: 12.0.4 - tailwind-merge: - specifier: ^2.3.0 - version: 2.3.0 - tailwind-scrollbar-hide: - specifier: ^1.1.7 - version: 1.1.7 tailwindcss: specifier: ^3.4.3 version: 3.4.3 - tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7 - tailwindcss-safe-area: - specifier: ^0.4.1 - version: 0.4.1 tippy.js: specifier: ^6.3.7 version: 6.3.7 - tsup: - specifier: ^8.0.2 - version: 8.0.2 - turbo: - specifier: ^2.1.2 - version: 2.1.2 typescript: specifier: ^5.4.3 version: 5.4.3 @@ -785,9 +542,6 @@ importers: '@100mslive/react-sdk': specifier: 'catalog:' version: 0.10.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/icons': - specifier: 'catalog:' - version: 6.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@emoji-mart/data': specifier: 'catalog:' version: 1.1.2 @@ -914,9 +668,6 @@ importers: '@vercel/speed-insights': specifier: 'catalog:' version: 1.0.10(next@14.2.5(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(svelte@4.2.19)(vue@3.5.12(typescript@5.4.3)) - antd: - specifier: 'catalog:' - version: 5.25.1(date-fns@3.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) clsx: specifier: 'catalog:' version: 2.1.1 @@ -1664,54 +1415,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@ant-design/colors@7.2.0': - resolution: {integrity: sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==} - - '@ant-design/colors@8.0.0': - resolution: {integrity: sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==} - - '@ant-design/cssinjs-utils@1.1.3': - resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@ant-design/cssinjs@1.23.0': - resolution: {integrity: sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/fast-color@2.0.6': - resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} - engines: {node: '>=8.x'} - - '@ant-design/fast-color@3.0.0': - resolution: {integrity: sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==} - engines: {node: '>=8.x'} - - '@ant-design/icons-svg@4.4.2': - resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - - '@ant-design/icons@5.6.1': - resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/icons@6.0.0': - resolution: {integrity: sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/react-slick@1.1.2': - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} - peerDependencies: - react: '>=16.9.0' - '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -2456,9 +2159,6 @@ packages: '@emotion/cache@11.14.0': resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} @@ -2502,9 +2202,6 @@ packages: '@emotion/unitless@0.10.0': resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - '@emotion/unitless@0.7.5': - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} @@ -2910,6 +2607,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -2917,6 +2615,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@ianvs/prettier-plugin-sort-imports@4.2.1': resolution: {integrity: sha512-NKN1LVFWUDGDGr3vt+6Ey3qPeN/163uR1pOPAlkWpgvAqgxQ6kSdUf1F0it8aHUtKRUzEGcK38Wxd07O61d7+Q==} @@ -4224,67 +3923,6 @@ packages: '@types/react-dom': optional: true - '@rc-component/async-validator@5.0.4': - resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} - engines: {node: '>=14.x'} - - '@rc-component/color-picker@2.0.1': - resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/context@1.4.0': - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/mini-decimal@1.1.0': - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - - '@rc-component/mutate-observer@1.1.0': - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/portal@1.1.2': - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/qrcode@1.0.0': - resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/tour@1.15.1': - resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/trigger@2.2.6': - resolution: {integrity: sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/util@1.2.1': - resolution: {integrity: sha512-AUVu6jO+lWjQnUOOECwu8iR0EdElQgWW5NBv5vP/Uf9dWbAX3udhMutRlkVXjuac2E40ghkFy+ve00mc/3Fymg==} - peerDependencies: - react: '>=18.0.0' - react-dom: '>=18.0.0' - '@react-aria/breadcrumbs@3.5.4': resolution: {integrity: sha512-CtBAL7xDDHXpZvmglhEYbNAXeoXNl4Ke+Rwn2WTHVr9blry3P17IL4Elou5QAkyzI2GNHnXUs9K6lzX/uLv+kQ==} peerDependencies: @@ -6285,12 +5923,6 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - antd@5.25.1: - resolution: {integrity: sha512-4KC7KuPCjr0z3Vuw9DsF+ceqJaPLbuUI3lOX1sY8ix25ceamp+P8yxOmk3Y2JHCD2ZAhq+5IQ/DTJRN2adWYKQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -6852,9 +6484,6 @@ packages: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} - compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -7604,6 +7233,7 @@ packages: eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -8714,9 +8344,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -10209,234 +9836,6 @@ packages: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} - rc-cascader@3.34.0: - resolution: {integrity: sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-checkbox@3.5.0: - resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-collapse@3.9.0: - resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dialog@9.6.0: - resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-drawer@7.2.0: - resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dropdown@4.2.1: - resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - - rc-field-form@2.7.0: - resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-image@7.12.0: - resolution: {integrity: sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input-number@9.5.0: - resolution: {integrity: sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input@1.8.0: - resolution: {integrity: sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-mentions@2.20.0: - resolution: {integrity: sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-menu@9.16.1: - resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-motion@2.9.5: - resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-notification@5.6.4: - resolution: {integrity: sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-overflow@1.4.1: - resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-pagination@5.1.0: - resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-picker@4.11.3: - resolution: {integrity: sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - - rc-progress@4.0.0: - resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-rate@2.13.1: - resolution: {integrity: sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-resize-observer@1.4.3: - resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-segmented@2.7.0: - resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-select@14.16.8: - resolution: {integrity: sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-slider@11.1.8: - resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-steps@6.0.1: - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-switch@4.1.0: - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-table@7.50.5: - resolution: {integrity: sha512-FDZu8aolhSYd3v9KOc3lZOVAU77wmRRu44R0Wfb8Oj1dXRUsloFaXMSl6f7yuWZUxArJTli7k8TEOX2mvhDl4A==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tabs@15.6.1: - resolution: {integrity: sha512-/HzDV1VqOsUWyuC0c6AkxVYFjvx9+rFPKZ32ejxX0Uc7QCzcEjTA9/xMgv4HemPKwzBNX8KhGVbbumDjnj92aA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-textarea@1.10.0: - resolution: {integrity: sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tooltip@6.4.0: - resolution: {integrity: sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tree-select@5.27.0: - resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} - peerDependencies: - react: '*' - react-dom: '*' - - rc-tree@5.13.1: - resolution: {integrity: sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-upload@4.9.0: - resolution: {integrity: sha512-pAzlPnyiFn1GCtEybEG2m9nXNzQyWXqWV2xFYCmDxjN9HzyjS5Pz2F+pbNdYw8mMJsixLEKLG0wVy9vOGxJMJA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-util@5.44.4: - resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-virtual-list@3.18.6: - resolution: {integrity: sha512-TQ5SsutL3McvWmmxqQtMIbfeoE3dGjJrRSfKekgby7WQMpPIFvv4ghytp5Z0s3D8Nik9i9YNOCqHBfk86AwgAA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -10791,9 +10190,6 @@ packages: reselect@5.1.1: resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -10933,9 +10329,6 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} - scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - sdp-transform@2.14.1: resolution: {integrity: sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw==} hasBin: true @@ -11198,9 +10591,6 @@ packages: streamx@2.16.1: resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} - string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -11317,9 +10707,6 @@ packages: stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - sucrase@3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} @@ -11459,10 +10846,6 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - throttle-debounce@5.0.2: - resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} - engines: {node: '>=12.22'} - through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -12385,70 +11768,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@ant-design/colors@7.2.0': - dependencies: - '@ant-design/fast-color': 2.0.6 - - '@ant-design/colors@8.0.0': - dependencies: - '@ant-design/fast-color': 3.0.0 - - '@ant-design/cssinjs-utils@1.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@ant-design/cssinjs': 1.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@babel/runtime': 7.27.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@ant-design/cssinjs@1.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.5.1 - csstype: 3.1.3 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - stylis: 4.3.6 - - '@ant-design/fast-color@2.0.6': - dependencies: - '@babel/runtime': 7.27.1 - - '@ant-design/fast-color@3.0.0': {} - - '@ant-design/icons-svg@4.4.2': {} - - '@ant-design/icons@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@ant-design/icons@6.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@ant-design/colors': 8.0.0 - '@ant-design/icons-svg': 4.4.2 - '@rc-component/util': 1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@ant-design/react-slick@1.1.2(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - json2mq: 0.2.0 - react: 18.2.0 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.2 - '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -13344,8 +12663,6 @@ snapshots: '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 - '@emotion/hash@0.8.0': {} - '@emotion/hash@0.9.2': {} '@emotion/is-prop-valid@1.2.2': @@ -13399,8 +12716,6 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/unitless@0.7.5': {} - '@emotion/unitless@0.8.1': {} '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.2.0)': @@ -15198,91 +14513,16 @@ snapshots: '@types/react': 18.2.74 '@types/react-dom': 18.2.24 - '@rc-component/async-validator@5.0.4': + '@react-aria/breadcrumbs@3.5.4(react@18.2.0)': dependencies: - '@babel/runtime': 7.27.1 - - '@rc-component/color-picker@2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/context@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/mini-decimal@1.1.0': - dependencies: - '@babel/runtime': 7.27.1 - - '@rc-component/mutate-observer@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/portal@1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/qrcode@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/tour@1.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/trigger@2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@rc-component/util@1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - - '@react-aria/breadcrumbs@3.5.4(react@18.2.0)': - dependencies: - '@react-aria/i18n': 3.8.1(react@18.2.0) - '@react-aria/interactions': 3.17.0(react@18.2.0) - '@react-aria/link': 3.5.3(react@18.2.0) - '@react-aria/utils': 3.19.0(react@18.2.0) - '@react-types/breadcrumbs': 3.6.1(react@18.2.0) - '@react-types/shared': 3.19.0(react@18.2.0) - '@swc/helpers': 0.5.5 - react: 18.2.0 + '@react-aria/i18n': 3.8.1(react@18.2.0) + '@react-aria/interactions': 3.17.0(react@18.2.0) + '@react-aria/link': 3.5.3(react@18.2.0) + '@react-aria/utils': 3.19.0(react@18.2.0) + '@react-types/breadcrumbs': 3.6.1(react@18.2.0) + '@react-types/shared': 3.19.0(react@18.2.0) + '@swc/helpers': 0.5.5 + react: 18.2.0 '@react-aria/button@3.8.1(react@18.2.0)': dependencies: @@ -18422,64 +17662,6 @@ snapshots: ansi-styles@6.2.1: {} - antd@5.25.1(date-fns@3.6.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/cssinjs': 1.23.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/fast-color': 2.0.6 - '@ant-design/icons': 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/react-slick': 1.1.2(react@18.2.0) - '@babel/runtime': 7.27.1 - '@rc-component/color-picker': 2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/qrcode': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/tour': 1.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.13 - rc-cascader: 3.34.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-checkbox: 3.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-collapse: 3.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-dialog: 9.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-drawer: 7.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-dropdown: 4.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-field-form: 2.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-image: 7.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-input: 1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-input-number: 9.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-mentions: 2.20.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-notification: 5.6.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-pagination: 5.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-picker: 4.11.3(date-fns@3.6.0)(dayjs@1.11.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-progress: 4.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-rate: 2.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-segmented: 2.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-select: 14.16.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-slider: 11.1.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-steps: 6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-switch: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-table: 7.50.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tabs: 15.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-textarea: 1.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tooltip: 6.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree-select: 5.27.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-upload: 4.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - date-fns - - luxon - - moment - any-promise@1.3.0: {} anymatch@3.1.3: @@ -19142,8 +18324,6 @@ snapshots: transitivePeerDependencies: - supports-color - compute-scroll-into-view@3.1.1: {} - concat-map@0.0.1: {} condense-whitespace@2.0.0: {} @@ -21363,10 +20543,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json2mq@0.2.0: - dependencies: - string-convert: 0.2.1 - json5@1.0.2: dependencies: minimist: 1.2.8 @@ -23134,326 +22310,6 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - rc-cascader@3.34.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-select: 14.16.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-checkbox@3.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-collapse@3.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-dialog@9.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-drawer@7.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-dropdown@4.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-field-form@2.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-image@7.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-input-number@9.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-input@1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-mentions@2.20.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-textarea: 1.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-menu@9.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-overflow: 1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-motion@2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-notification@5.6.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-overflow@1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-pagination@5.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-picker@4.11.3(date-fns@3.6.0)(dayjs@1.11.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-overflow: 1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - optionalDependencies: - date-fns: 3.6.0 - dayjs: 1.11.13 - - rc-progress@4.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-rate@2.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-resize-observer@1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - resize-observer-polyfill: 1.5.1 - - rc-segmented@2.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-select@14.16.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-overflow: 1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-virtual-list: 3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-slider@11.1.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-steps@6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-switch@4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-table@7.50.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/context': 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-virtual-list: 3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-tabs@15.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-textarea@1.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-input: 1.8.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-tooltip@6.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - '@rc-component/trigger': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-tree-select@5.27.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-select: 14.16.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-tree@5.13.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-virtual-list: 3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-upload@4.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - rc-util@5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - - rc-virtual-list@3.18.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.27.1 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.44.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -23940,8 +22796,6 @@ snapshots: reselect@5.1.1: {} - resize-observer-polyfill@1.5.1: {} - resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} @@ -24100,10 +22954,6 @@ snapshots: ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - scroll-into-view-if-needed@3.1.0: - dependencies: - compute-scroll-into-view: 3.1.1 - sdp-transform@2.14.1: {} sdp@3.2.0: {} @@ -24400,8 +23250,6 @@ snapshots: optionalDependencies: bare-events: 2.2.2 - string-convert@0.2.1: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -24544,8 +23392,6 @@ snapshots: stylis@4.3.2: {} - stylis@4.3.6: {} - sucrase@3.32.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -24777,8 +23623,6 @@ snapshots: dependencies: any-promise: 1.3.0 - throttle-debounce@5.0.2: {} - through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -25733,4 +24577,4 @@ snapshots: zustand@3.7.2(react@18.2.0): optionalDependencies: - react: 18.2.0 + react: 18.2.0 \ No newline at end of file diff --git a/moon/pnpm-workspace.yaml b/moon/pnpm-workspace.yaml index eaafe26b0..01cd4cc5b 100644 --- a/moon/pnpm-workspace.yaml +++ b/moon/pnpm-workspace.yaml @@ -1,6 +1,6 @@ packages: -- apps/* -- packages/* + - apps/* + - packages/* catalog: '@100mslive/hms-noise-cancellation': ^0.0.1 '@100mslive/hms-video-store': ^0.12.21 @@ -48,7 +48,7 @@ catalog: '@radix-ui/react-toggle-group': ^1.1.0 '@radix-ui/react-tooltip': ^1.1.2 '@radix-ui/react-visually-hidden': ^1.1.0 - '@radix-ui/themes': "^3.2.1" + '@radix-ui/themes': '^3.2.1' '@sanity/eslint-config-studio': ^4.0.0 '@sanity/vision': ^3.59.0 '@sentry/cli': ^2.30.1 @@ -259,7 +259,6 @@ catalog: yjs: ^13.6.8 zod: ^3.22.3 zustand: ^4.4.1 - antd: ^5.25.0 github-markdown-css: ^5.8.1 '@heroicons/react': ^2.2.0 clsx: ^2.1.1 @@ -270,4 +269,4 @@ catalog: '@mui/x-tree-view': ^8.5.0 '@emotion/styled': ^11.14.0 prism-react-renderer: ^2.4.1 - material-file-icons: ^2.4.0 + material-file-icons: ^2.4.0 \ No newline at end of file From 8a2bb6549d7314861b6d8a9ce8a9bd0c6633a3f8 Mon Sep 17 00:00:00 2001 From: liuyangjuncong20202570 Date: Sun, 20 Jul 2025 16:01:43 +0800 Subject: [PATCH 2/2] feat(UI): some updates --- .../CodeView/BlobView/CodeContent.tsx | 179 +++++++-------- .../CodeView/TreeView/CloneTabs.tsx | 119 +++++----- .../web/components/Issues/IssueDetailPage.tsx | 21 +- .../apps/web/components/Issues/IssueIndex.tsx | 7 +- moon/apps/web/components/Issues/IssueList.tsx | 2 +- .../web/components/Issues/IssueNewPage.tsx | 2 +- moon/apps/web/components/Issues/IssuePage.tsx | 152 ------------- .../web/components/Issues/IssuesContent.tsx | 100 ++++++--- .../components/Issues/MemberHoverCardNE.tsx | 40 +++- .../apps/web/components/Issues/Pagenation.tsx | 13 +- .../web/components/Issues/utils/store.tsx | 18 +- moon/apps/web/components/MrView/index.tsx | 58 +++-- .../web/pages/[org]/code/blob/[...path].tsx | 57 ++--- .../pages/[org]/code/tree/[...path]/index.tsx | 73 +++---- moon/apps/web/pages/[org]/mr/[id].tsx | 204 ++++++++++-------- 15 files changed, 521 insertions(+), 524 deletions(-) delete mode 100644 moon/apps/web/components/Issues/IssuePage.tsx diff --git a/moon/apps/web/components/CodeView/BlobView/CodeContent.tsx b/moon/apps/web/components/CodeView/BlobView/CodeContent.tsx index b6ad8fd4a..7467270a9 100644 --- a/moon/apps/web/components/CodeView/BlobView/CodeContent.tsx +++ b/moon/apps/web/components/CodeView/BlobView/CodeContent.tsx @@ -1,12 +1,13 @@ -'use client'; +'use client' -import { useEffect, useRef, useState } from 'react'; -import { Button, Dropdown, MenuProps, message } from 'antd'; -import { Highlight, themes } from 'prism-react-renderer'; -import { DotsHorizontal } from '@gitmono/ui'; +import { useEffect, useRef, useState } from 'react' +import { Highlight, themes } from 'prism-react-renderer' -import 'github-markdown-css/github-markdown-light.css'; -import styles from './CodeContent.module.css'; +import 'github-markdown-css/github-markdown-light.css' + +import toast from 'react-hot-toast' + +import styles from './CodeContent.module.css' const suffixToLangMap: Record = { '.js': 'jsx', @@ -21,42 +22,42 @@ const suffixToLangMap: Record = { '.h': 'cpp', '.go': 'go', '.yml': 'yaml', - '.yaml': 'yaml', + '.yaml': 'yaml' } function getLangFromFileName(fileName: string): string { - const lastPart = fileName.toLowerCase().match(/\.[^./\\]+$/); + const lastPart = fileName.toLowerCase().match(/\.[^./\\]+$/) - if(lastPart) { - return suffixToLangMap[lastPart[0].toLowerCase()] ?? "markdown"; + if (lastPart) { + return suffixToLangMap[lastPart[0].toLowerCase()] ?? 'markdown' } - return "markdown"; + return 'markdown' } -const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string[] }) => { +const CodeContent = ({ fileContent, path }: { fileContent: string; path?: string[] }) => { const [lfs, setLfs] = useState(false) const [selectedLine, setSelectedLine] = useState(null) - const menuItems: MenuProps = { - items: [ - { - label: 'Copy line', - key: '1' - }, - { - label: 'Copy permalink', - key: '2' - }, - { - label: 'View file in GitHub.dev', - key: '3' - }, - { - label: 'View file in different branch/tag', - key: '4' - } - ] - } + // const menuItems: MenuProps = { + // items: [ + // { + // label: 'Copy line', + // key: '1' + // }, + // { + // label: 'Copy permalink', + // key: '2' + // }, + // { + // label: 'View file in GitHub.dev', + // key: '3' + // }, + // { + // label: 'View file in different branch/tag', + // key: '4' + // } + // ] + // } useEffect(() => { if (isLfsContent(fileContent)) { @@ -72,20 +73,21 @@ const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string const handleCopyLine = (line: string) => { if (navigator.clipboard) { - navigator.clipboard.writeText(line) - .then(() => message.success('Copied to clipboard')) - .catch(() => message.error('Copied failed')) + navigator.clipboard + .writeText(line) + .then(() => toast.success('Copied to clipboard')) + .catch(() => toast.error('Copied failed')) } else { - const textarea = document.createElement('textarea'); + const textarea = document.createElement('textarea') - textarea.value = line; - document.body.appendChild(textarea); - textarea.select(); + textarea.value = line + document.body.appendChild(textarea) + textarea.select() try { - document.execCommand('copy'); - message.success('Copied to clipboard'); + document.execCommand('copy') + toast.success('Copied to clipboard') } catch { - message.error('Copied failed'); + toast.error('Copied failed') } } } @@ -94,18 +96,17 @@ const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string handleCopyLine(fileContent) } - let filename; + let filename if (!path || path.length === 0) { - message.error('Path information is missing'); - filename = ""; - } - else { + toast.error('Path information is missing') + filename = '' + } else { filename = path[path.length - 1] } const handleRawView = () => { // Create a new window/tab with the raw content - const newWindow = window.open(); + const newWindow = window.open() if (newWindow) { newWindow.document.write(` @@ -123,27 +124,27 @@ const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string ${fileContent.replace(//g, '>')} - `); - newWindow.document.close(); + `) + newWindow.document.close() } else { - message.error('Unable to open new window. Please check your browser settings.'); + toast.error('Unable to open new window. Please check your browser settings.') } } const handleDownload = () => { - const blob = new Blob([fileContent], { type: 'text/plain' }); - const url = URL.createObjectURL(blob); - const a = document.createElement('a'); + const blob = new Blob([fileContent], { type: 'text/plain' }) + const url = URL.createObjectURL(blob) + const a = document.createElement('a') - a.href = url; - a.download = filename; + a.href = url + a.download = filename // Append to the document, click it, and remove it - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); + document.body.appendChild(a) + a.click() + document.body.removeChild(a) // Release the URL object - URL.revokeObjectURL(url); + URL.revokeObjectURL(url) } function isLfsContent(content: string): boolean { @@ -179,9 +180,15 @@ const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string {`${fileContent.split('\n').length} lines . 2.79 KB`}
- - - + + +
@@ -199,6 +206,7 @@ const CodeContent = ({ fileContent, path }: { fileContent: string, path?: string }} className='overflow-x-auto whitespace-pre rounded-lg p-4 text-sm' > + {/* - - - {open && ( - e.preventDefault()} - asChild - addDismissibleLayer - > - - - - - - - - - - - { - tabContent?.map((_item)=>{ + + + + + + {open && ( + e.preventDefault()} + asChild + addDismissibleLayer + > + + + + + + + + + + + {tabContent?.map((_item) => { return ( - + - - + + -
{_item.info}
+
{_item.info}
) - }) - } -
- -
-
- )} -
-
- - + })} +
+
+
+ )} +
+ + ) } diff --git a/moon/apps/web/components/Issues/IssueDetailPage.tsx b/moon/apps/web/components/Issues/IssueDetailPage.tsx index e77a101d8..93ed4dbfa 100644 --- a/moon/apps/web/components/Issues/IssueDetailPage.tsx +++ b/moon/apps/web/components/Issues/IssueDetailPage.tsx @@ -51,6 +51,8 @@ interface detailRes { req_result: boolean } +let needComment = false + export default function IssueDetailPage({ id }: { id: string }) { const [login, setLogin] = useState(false) const [info, setInfo] = useState({ @@ -169,6 +171,10 @@ export default function IssueDetailPage({ id }: { id: string }) { const reopen_issue = useCallback(() => { setLoading('reopen', true) set_to_loading(3) + if (needComment) { + save_comment() + needComment = false + } reopenIssue( { link: id }, { @@ -179,7 +185,7 @@ export default function IssueDetailPage({ id }: { id: string }) { onSettled: () => setLoading('reopen', false) } ) - }, [id, router, reopenIssue]) + }, [id, router, reopenIssue, save_comment]) const editorRef = useRef(null) const onKeyDownScrollHandler = useHandleBottomScrollOffset({ @@ -267,6 +273,14 @@ export default function IssueDetailPage({ id }: { id: string }) { } } + const handleCloseChange = (html: string) => { + if (html && html === '

') { + needComment = false + } else { + needComment = true + } + } + return ( <>
@@ -301,7 +315,7 @@ export default function IssueDetailPage({ id }: { id: string }) {
) : ( - + )} {info && info.status === 'open' && ( @@ -371,6 +385,7 @@ export default function IssueDetailPage({ id }: { id: string }) { content={EMPTY_HTML} autofocus={true} onKeyDown={onKeyDownScrollHandler} + onChange={(html) => handleCloseChange(html)} />
) -} +} \ No newline at end of file diff --git a/moon/apps/web/components/Issues/IssueList.tsx b/moon/apps/web/components/Issues/IssueList.tsx index 1876f4ee6..cd6001b8a 100644 --- a/moon/apps/web/components/Issues/IssueList.tsx +++ b/moon/apps/web/components/Issues/IssueList.tsx @@ -414,4 +414,4 @@ export const ListItem = memo( ) } ) -ListItem.displayName = 'ListItem' +ListItem.displayName = 'ListItem' \ No newline at end of file diff --git a/moon/apps/web/components/Issues/IssueNewPage.tsx b/moon/apps/web/components/Issues/IssueNewPage.tsx index fb66475e3..05a04b5f5 100644 --- a/moon/apps/web/components/Issues/IssueNewPage.tsx +++ b/moon/apps/web/components/Issues/IssueNewPage.tsx @@ -385,4 +385,4 @@ export const SideBarItem = ({ emptyState }: { emptyState: string }) => {
) -} +} \ No newline at end of file diff --git a/moon/apps/web/components/Issues/IssuePage.tsx b/moon/apps/web/components/Issues/IssuePage.tsx deleted file mode 100644 index 58247d845..000000000 --- a/moon/apps/web/components/Issues/IssuePage.tsx +++ /dev/null @@ -1,152 +0,0 @@ -'use client' - -import React, { useCallback, useEffect, useState } from 'react' -import { Flex, List, PaginationProps, Tabs, TabsProps, Tag } from 'antd' -import { formatDistance, fromUnixTime } from 'date-fns' -import { useRouter } from 'next/router' - -// import { CheckCircleOutlined, ExclamationCircleOutlined } from '@ant-design/icons' -import { Button, Link } from '@gitmono/ui' - -import { Heading } from '@/components/Catalyst/Heading' -import { useGetIssueLists } from '@/hooks/issues/useGetIssueLists' -import { apiErrorToast } from '@/utils/apiErrorToast' - -interface Item { - closed_at?: number | null - link: string - author: string - title: string - status: string - open_timestamp: number - updated_at: number -} - -export default function IssuePage() { - const router = useRouter() - const [itemList, setItemList] = useState([]) - const [numTotal, setNumTotal] = useState(0) - const [pageSize, _setPageSize] = useState(10) - const [loading, setLoading] = useState(false) - const [status, setStatus] = useState('open') - const { mutate: issueLists } = useGetIssueLists() - - const fetchData = useCallback( - (page: number, per_page: number) => { - setLoading(true) - - issueLists( - { - data: { pagination: { page, per_page }, additional: { - status, - asc: false - } } - }, - { - onSuccess: (response) => { - const data = response.data - - setItemList(data?.items ?? []) - setNumTotal(data?.total ?? 0) - }, - onError: apiErrorToast, - onSettled: () => setLoading(false) - } - ) - }, - - [status, issueLists] - ) - - useEffect(() => { - fetchData(1, pageSize) - }, [pageSize, fetchData]) - - const getStatusTag = (status: string) => { - switch (status) { - case 'open': - return open - case 'closed': - return closed - } - } - - // const getStatusIcon = (status: string) => { - // switch (status) { - // case 'open': - // // return - // case 'closed': - // // return - // } - // } - - const getDescription = (item: Item) => { - switch (item.status) { - case 'open': - return `Issue opened by Admin ${formatDistance(fromUnixTime(item.open_timestamp), new Date(), { addSuffix: true })} ` - case 'closed': - return `Issue ${item.link} closed by Admin ${formatDistance(fromUnixTime(item.updated_at), new Date(), { addSuffix: true })}` - } - } - - const onChange: PaginationProps['onChange'] = (current, pageSize) => { - fetchData(current, pageSize) - } - - const tabsChange = (activeKey: string) => { - if (activeKey === '1') { - setStatus('open') - } else { - setStatus('closed') - } - } - - const tab_items: TabsProps['items'] = [ - { - key: '1', - label: 'Open' - }, - { - key: '2', - label: 'Closed' - } - ] - - return ( - <> -
- Issues - - - - - - - ( - - - // getStatusIcon(item.status) - // } - title={ - - {item.title} {getStatusTag(item.status)} - - } - description={getDescription(item)} - /> - - )} - /> -
- - ) -} diff --git a/moon/apps/web/components/Issues/IssuesContent.tsx b/moon/apps/web/components/Issues/IssuesContent.tsx index 51ad6d0d7..2c6f5f24a 100644 --- a/moon/apps/web/components/Issues/IssuesContent.tsx +++ b/moon/apps/web/components/Issues/IssuesContent.tsx @@ -3,6 +3,7 @@ import { CheckIcon, IssueClosedIcon, IssueOpenedIcon, SkipIcon } from '@primer/o import { useInfiniteQuery } from '@tanstack/react-query' import { formatDistance, fromUnixTime } from 'date-fns' import { useAtom } from 'jotai' +import { useRouter } from 'next/router' import { LabelItem, @@ -11,7 +12,6 @@ import { PostApiIssueListData } from '@gitmono/types/generated' import { Button, ChatBubbleIcon, ChevronDownIcon, OrderedListIcon } from '@gitmono/ui' -import { Link } from '@gitmono/ui/Link' // import { MenuItem } from '@gitmono/ui/Menu' @@ -25,9 +25,10 @@ import { ListBanner, ListItem } from '@/components/Issues/IssueList' -import { filterAtom, sortAtom } from '@/components/Issues/utils/store' +import { filterAtom, issueCloseCurrentPage, issueOpenCurrentPage, sortAtom } from '@/components/Issues/utils/store' import { useScope } from '@/contexts/scope' import { useGetIssueLists } from '@/hooks/issues/useGetIssueLists' +import { useGetOrganizationMember } from '@/hooks/useGetOrganizationMember' import { useSyncedMembers } from '@/hooks/useSyncedMembers' import { apiErrorToast } from '@/utils/apiErrorToast' import { atomWithWebStorage } from '@/utils/atomWithWebStorage' @@ -74,7 +75,7 @@ export function IssuesContent({ searching }: Props) { const [pageSize, _setPageSize] = useState(10) - const [status, _setStatus] = useAtom(filterAtom({ scope, part: 'issue' })) + const [status, _setStatus] = useAtom(filterAtom({ part: 'issue' })) const [issueList, setIssueList] = useState([]) @@ -96,6 +97,13 @@ export function IssuesContent({ searching }: Props) { const { members } = useSyncedMembers() + const router = useRouter() + + + + const [openCurrent, setopenCurrent] = useAtom(issueOpenCurrentPage) + const [closeCurrent, setcloseCurrent] = useAtom(issueCloseCurrentPage) + const MemberConfig: MenuConfig[] = [ { key: 'Author', @@ -103,6 +111,7 @@ export function IssuesContent({ searching }: Props) { onSelectFactory: (item: Member) => (e: Event) => { e.preventDefault() if (item.user.username === sort['Author']) { + status === 'open' ? setopenCurrent(1) : setcloseCurrent(1) fetchData(1, pageSize) setSort({ ...sort, @@ -124,6 +133,7 @@ export function IssuesContent({ searching }: Props) { onSelectFactory: (item: Member) => (e: Event) => { e.preventDefault() if (item.user.username === sort['Assignees']) { + status === 'open' ? setopenCurrent(1) : setcloseCurrent(1) fetchData(1, pageSize) setSort({ ...sort, @@ -228,6 +238,7 @@ export function IssuesContent({ searching }: Props) { const news = label.map((i) => Number(i)) const addtion = additions(news) + status === 'open' ? setopenCurrent(1) : setcloseCurrent(1) fetchData(1, pageSize, addtion) } } @@ -339,8 +350,12 @@ export function IssuesContent({ searching }: Props) { ) useEffect(() => { - fetchData(1, pageSize) - }, [pageSize, fetchData]) + if (status === 'open') { + fetchData(openCurrent, pageSize) + } else if (status === 'closed') { + fetchData(closeCurrent, pageSize) + } + }, [pageSize, fetchData, openCurrent, closeCurrent, status]) // if (loading) { // return @@ -353,6 +368,10 @@ export function IssuesContent({ searching }: Props) { return } + const handlePageChange = (page: number) => { + status === 'open' ? setopenCurrent(page) : setcloseCurrent(page) + } + const getStatusIcon = (status: string) => { const normalizedStatus = status.toLowerCase() @@ -372,7 +391,7 @@ export function IssuesContent({ searching }: Props) { {searching ? ( <> - + ) : ( <> @@ -392,23 +411,37 @@ export function IssuesContent({ searching }: Props) { > {(issueList) => { return issueList.map((i) => ( - - } - > -
- {i.link} · {i.author} {i.status}{' '} - {formatDistance(fromUnixTime(i.open_timestamp), new Date(), { addSuffix: true })} -
-
- + } + onClick={() => router.push(`/${scope}/issue/${i.link}`)} + > +
+ {i.link} · {i.author} {i.status}{' '} + {formatDistance(fromUnixTime(i.open_timestamp), new Date(), { addSuffix: true })} +
+
)) }} - + {numTotal > 10 && status === 'open' && ( + handlePageChange(page)} + /> + )} + {numTotal > 10 && status === 'closed' && ( + handlePageChange(page)} + /> + )} )} @@ -424,20 +457,27 @@ function IssueSearchList(_props: { searchIssueList?: Item[]; hideProject?: boole ) } -export const RightAvatar = ({ member, commentNum }: { member?: Member; commentNum?: number }) => { +export const RightAvatar = ({ item }: { item: ItemsType[number] }) => { + const shouldFetch = item.assignees.length > 0 + + const { data } = useGetOrganizationMember({ username: item.assignees[0], org: 'mega', enabled: shouldFetch }) + return ( <> -
-
- - {commentNum !== 0 && {commentNum}} -
- {member && ( - - +
+ {item.comment_num !== 0 && ( +
+ + {item.comment_num} +
+ )} + {data && ( + //
展示头像
+ + )}
) -} +} \ No newline at end of file diff --git a/moon/apps/web/components/Issues/MemberHoverCardNE.tsx b/moon/apps/web/components/Issues/MemberHoverCardNE.tsx index 07d60a741..8a9661dd0 100644 --- a/moon/apps/web/components/Issues/MemberHoverCardNE.tsx +++ b/moon/apps/web/components/Issues/MemberHoverCardNE.tsx @@ -2,13 +2,49 @@ import React, { useState } from 'react' import * as HoverCard from '@radix-ui/react-hover-card' import { AnimatePresence, m } from 'framer-motion' -import { SyncOrganizationMember as Member } from '@gitmono/types/generated' +import { OrganizationMember as Member } from '@gitmono/types/generated' import { ANIMATION_CONSTANTS, Button, ChatBubbleIcon } from '@gitmono/ui' import { MemberAvatar } from '@/components/MemberAvatar' // import { useScope } from '@/contexts/scope' +export interface OutPut { + id: string + role: string + created_at: Date + deactivated: boolean + is_organization_member: boolean + user: User + status: null +} + +export interface User { + id: string + avatar_url: string + avatar_urls: AvatarUrls + cover_photo_url: null + email: string + username: string + display_name: string + system: boolean + integration: boolean + notifications_paused: boolean + notification_pause_expires_at: null + timezone: null + logged_in: boolean + type_name: string +} + +export interface AvatarUrls { + xs: string + sm: string + base: string + lg: string + xl: string + xxl: string +} + export function MemberHovercard({ member, username, @@ -100,4 +136,4 @@ export function MemberHovercard({ ) -} +} \ No newline at end of file diff --git a/moon/apps/web/components/Issues/Pagenation.tsx b/moon/apps/web/components/Issues/Pagenation.tsx index 0ed3fab89..021503a91 100644 --- a/moon/apps/web/components/Issues/Pagenation.tsx +++ b/moon/apps/web/components/Issues/Pagenation.tsx @@ -5,24 +5,27 @@ import { Button, ButtonProps, ChevronLeftIcon, ChevronRightIcon } from '@gitmono import { cn } from '@gitmono/ui/src/utils' import { BreadcrumbTitlebar } from '@/components/Titlebar/BreadcrumbTitlebar' +import { atomWithWebStorage } from '@/utils/atomWithWebStorage' import { getPages } from './utils/getPages' -import { currentPage } from './utils/store' -interface PaginationType { +// import { currentPage } from './utils/store' + +interface PaginationType { totalNum: number pageSize: number onChange?: (page: number) => void + currentPage: ReturnType> } -export const Pagination = ({ totalNum, pageSize, onChange }: PaginationType) => { +export const Pagination = ({ totalNum, pageSize, onChange, currentPage }: PaginationType) => { if (totalNum < 0 || pageSize < 0) throw new Error('invalid props') const totalPages = Math.ceil(totalNum / pageSize) const [pages, setPages] = useState<(number | '...')[]>([]) const [current, setCurrent] = useAtom(currentPage) const handleChange = (page: number) => { if (page < 1 || page > totalPages) return - setCurrent(page) + setCurrent(page as T) onChange?.(page) } @@ -106,4 +109,4 @@ const PreviousOrNext = ({ isNext, color, ...rest }: PreviousOrNext) => { )} ) -} +} \ No newline at end of file diff --git a/moon/apps/web/components/Issues/utils/store.tsx b/moon/apps/web/components/Issues/utils/store.tsx index fa6ca7986..f5c3edb8c 100644 --- a/moon/apps/web/components/Issues/utils/store.tsx +++ b/moon/apps/web/components/Issues/utils/store.tsx @@ -1,14 +1,20 @@ import { CookieValueTypes } from 'cookies-next' +import { atom } from 'jotai' import { atomFamily } from 'jotai/utils' import { atomWithWebStorage } from '@/utils/atomWithWebStorage' export type IssueIndexFilterType = 'open' | 'closed' | 'Merged' | 'draft' +// export const filterAtom = atomFamily( +// ({ scope, part }: { scope: CookieValueTypes; part: string }) => +// atomWithWebStorage(`${scope}:${part}-index-filter`, 'open'), +// (a, b) => a.scope === b.scope && a.part === b.part +// ) + export const filterAtom = atomFamily( - ({ scope, part }: { scope: CookieValueTypes; part: string }) => - atomWithWebStorage(`${scope}:${part}-index-filter`, 'open'), - (a, b) => a.scope === b.scope && a.part === b.part + ({ part: _part }: { part: string }) => atom<'open' | 'closed'>('open'), + (a, b) => a.part === b.part ) export interface IssueSortType { @@ -24,3 +30,9 @@ export const sortAtom = atomFamily( export const darkModeAtom = atomWithWebStorage('darkMode', false) export const currentPage = atomWithWebStorage('currentPage', 1) + +export const issueOpenCurrentPage = atomWithWebStorage('IssueOpencurrentPage', 1) +export const issueCloseCurrentPage = atomWithWebStorage('IssueClosecurrentPage', 1) + +export const mrOpenCurrentPage = atomWithWebStorage('MROpencurrentPage', 1) +export const mrCloseCurrentPage = atomWithWebStorage('MRClosecurrentPage', 1) \ No newline at end of file diff --git a/moon/apps/web/components/MrView/index.tsx b/moon/apps/web/components/MrView/index.tsx index e3455dfa7..e6ba036bd 100644 --- a/moon/apps/web/components/MrView/index.tsx +++ b/moon/apps/web/components/MrView/index.tsx @@ -4,10 +4,10 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react' import { GitMergeIcon, GitPullRequestClosedIcon, GitPullRequestIcon } from '@primer/octicons-react' import { formatDistance, fromUnixTime } from 'date-fns' import { useAtom } from 'jotai' +import { useRouter } from 'next/router' import { LabelItem, SyncOrganizationMember as Member, PostApiMrListData } from '@gitmono/types/generated' import { Button, CheckIcon, ChevronDownIcon, OrderedListIcon } from '@gitmono/ui' -import { Link } from '@gitmono/ui/Link' import { cn } from '@gitmono/ui/src/utils' import { IssueIndexTabFilter as MRIndexTabFilter } from '@/components/Issues/IssueIndex' @@ -32,7 +32,7 @@ import { AdditionType, RightAvatar } from '../Issues/IssuesContent' import { Pagination } from '../Issues/Pagenation' import { orderTags, reviewTags, tags } from '../Issues/utils/consts' import { generateAllMenuItems, MenuConfig } from '../Issues/utils/generateAllMenuItems' -import { filterAtom, sortAtom } from '../Issues/utils/store' +import { filterAtom, mrCloseCurrentPage, mrOpenCurrentPage, sortAtom } from '../Issues/utils/store' import { Heading } from './catalyst/heading' // interface MrInfoItem { @@ -51,9 +51,9 @@ export default function MrView() { const [mrList, setMrList] = useState([]) const [numTotal, setNumTotal] = useState(0) const [pageSize] = useState(10) - const [status, _setStatus] = useAtom(filterAtom({ scope, part: 'mr' })) + const [status, _setStatus] = useAtom(filterAtom({ part: 'mr' })) // const [status, _setStatus] = useState('open') - const [page, _setPage] = useState(1) + const [page, setPage] = useState(1) const [isLoading, setIsLoading] = useState(false) const { mutate: fetchMrList } = usePostMrList() const [sort, setSort] = useAtom(sortAtom({ scope, filter: 'sortPickerMR' })) @@ -64,6 +64,9 @@ export default function MrView() { [scope] ) + // const [openCurrent, setopenCurrent] = useAtom(mrOpenCurrentPage) + // const [closeCurrent, setcloseCurrent] = useAtom(mrCloseCurrentPage) + const reviewAtom = useMemo(() => atomWithWebStorage(`${scope}:mr-review`, ''), [scope]) const labelAtom = useMemo(() => atomWithWebStorage(`${scope}:mr-label`, []), [scope]) @@ -395,6 +398,12 @@ export default function MrView() { } } + const handlePageChange = (page: number) => { + setPage(page) + } + + const router = useRouter() + return (
Merge Request @@ -424,23 +433,38 @@ export default function MrView() { > {(issueList) => { return issueList.map((i) => ( - - } - > -
- {i.link} {i.status} {getDescription(i)} -
-
- + router.push(`/${scope}/mr/${i.link}`)} + title={i.title} + leftIcon={getStatusIcon(i.status)} + rightIcon={} + > +
+ {i.link} {i.status} {getDescription(i)} +
+
)) }} - + {numTotal > 10 && status === 'open' && ( + handlePageChange(page)} + /> + )} + {numTotal > 10 && status === 'closed' && ( + handlePageChange(page)} + /> + )}
) -} +} \ No newline at end of file diff --git a/moon/apps/web/pages/[org]/code/blob/[...path].tsx b/moon/apps/web/pages/[org]/code/blob/[...path].tsx index 084c9d637..5ab838272 100644 --- a/moon/apps/web/pages/[org]/code/blob/[...path].tsx +++ b/moon/apps/web/pages/[org]/code/blob/[...path].tsx @@ -1,20 +1,21 @@ import React from 'react' -import { Flex, Layout } from 'antd' -import BreadCrumb from '@/components/CodeView/TreeView/BreadCrumb' +import { useRouter } from 'next/router' + import CodeContent from '@/components/CodeView/BlobView/CodeContent' +import CommitHistory, { CommitInfo } from '@/components/CodeView/CommitHistory' +import BreadCrumb from '@/components/CodeView/TreeView/BreadCrumb' +import RepoTree from '@/components/CodeView/TreeView/RepoTree' import { AppLayout } from '@/components/Layout/AppLayout' import AuthAppProviders from '@/components/Providers/AuthAppProviders' import { useGetBlob } from '@/hooks/useGetBlob' -import { useRouter } from 'next/router' -import CommitHistory, { CommitInfo } from '@/components/CodeView/CommitHistory' -import RepoTree from '@/components/CodeView/TreeView/RepoTree' const codeStyle = { borderRadius: 8, background: '#fff', border: '1px solid #d1d9e0', margin: '0 8px', - width: 'calc(80% - 8px)', + // width: 'calc(80% - 8px)' + width: '100%' } const treeStyle = { @@ -27,7 +28,7 @@ const treeStyle = { function BlobPage() { const { path = [] } = useRouter().query as { path?: string[] } const new_path = '/' + path.join('/') - const fileContent = useGetBlob({ path: new_path }).data?.data?? "" + const fileContent = useGetBlob({ path: new_path }).data?.data ?? '' const commitInfo: CommitInfo = { user: { avatar_url: 'https://avatars.githubusercontent.com/u/112836202?v=4&size=40', @@ -39,29 +40,29 @@ function BlobPage() { } return ( -
- - +
+
+
- +
{/* tree */} - - - - +
+
+ +
- - - - - - - - - - - - +
+
+ +
+
+
+ +
+
+
+
+
) } @@ -86,4 +87,4 @@ BlobPage.getProviders = ( ) } -export default BlobPage +export default BlobPage \ No newline at end of file diff --git a/moon/apps/web/pages/[org]/code/tree/[...path]/index.tsx b/moon/apps/web/pages/[org]/code/tree/[...path]/index.tsx index 3cd57c12a..de749500f 100644 --- a/moon/apps/web/pages/[org]/code/tree/[...path]/index.tsx +++ b/moon/apps/web/pages/[org]/code/tree/[...path]/index.tsx @@ -2,19 +2,20 @@ import React, { useMemo, useState } from 'react' import { Theme } from '@radix-ui/themes' -import { Flex, Layout } from 'antd' import { useParams } from 'next/navigation' + import { CommonResultVecTreeCommitItem } from '@gitmono/types/generated' + import CodeTable from '@/components/CodeView/CodeTable' +import CommitHistory from '@/components/CodeView/CommitHistory' import BreadCrumb from '@/components/CodeView/TreeView/BreadCrumb' import CloneTabs from '@/components/CodeView/TreeView/CloneTabs' import RepoTree from '@/components/CodeView/TreeView/RepoTree' import { AppLayout } from '@/components/Layout/AppLayout' import AuthAppProviders from '@/components/Providers/AuthAppProviders' +import { useGetBlob } from '@/hooks/useGetBlob' import { useGetTreeCommitInfo } from '@/hooks/useGetTreeCommitInfo' import { useGetTreePathCanClone } from '@/hooks/useGetTreePathCanClone' -import CommitHistory from '@/components/CodeView/CommitHistory' -import { useGetBlob } from '@/hooks/useGetBlob' function TreeDetailPage() { const params = useParams() @@ -30,8 +31,7 @@ function TreeDetailPage() { const { data: canClone } = useGetTreePathCanClone({ path: newPath }) const reqPath = `${new_path}/README.md` - const {data: readmeContent}=useGetBlob({path:reqPath}) - + const { data: readmeContent } = useGetBlob({ path: reqPath }) const commitInfo = { user: { @@ -55,7 +55,7 @@ function TreeDetailPage() { borderRadius: 8, overflow: 'hidden', width: 'calc(80% - 8px)', - height:'100%', + height: '100%', background: '#fff' } @@ -69,39 +69,34 @@ function TreeDetailPage() { return (
- - - - - {canClone?.data && ( - - - - )} - - {/* tree */} - - setNewPath(path)} /> - - - - { - commitInfo && - - - } - setNewPath(path)} - readmeContent={readmeContent?.data} +
+
+ + {canClone?.data && ( +
+ +
+ )} +
+ {/* tree */} +
+ setNewPath(path)} /> +
+ +
+ {commitInfo && ( +
+ +
+ )} + setNewPath(path)} + readmeContent={readmeContent?.data} /> - - - - +
+
) } @@ -128,4 +123,4 @@ TreeDetailPage.getProviders = ( ) } -export default TreeDetailPage +export default TreeDetailPage \ No newline at end of file diff --git a/moon/apps/web/pages/[org]/mr/[id].tsx b/moon/apps/web/pages/[org]/mr/[id].tsx index 54132c883..9a0180172 100644 --- a/moon/apps/web/pages/[org]/mr/[id].tsx +++ b/moon/apps/web/pages/[org]/mr/[id].tsx @@ -1,84 +1,96 @@ 'use client' -import React, { useRef, useState } from 'react'; -import { PicturePlusIcon} from '@gitmono/ui/Icons' -import { useRouter } from 'next/router'; -import FileDiff from '@/components/DiffView/FileDiff'; -import { Button, LoadingSpinner, UIText } from '@gitmono/ui'; -import { cn } from '@gitmono/ui/utils'; -import AuthAppProviders from '@/components/Providers/AuthAppProviders'; -import { AppLayout } from '@/components/Layout/AppLayout'; -import { PageWithLayout } from '@/utils/types'; +import React, { useRef, useState } from 'react' +import { ChecklistIcon, CommentDiscussionIcon, FileDiffIcon } from '@primer/octicons-react' +import { useRouter } from 'next/router' +import { toast } from 'react-hot-toast' + +import { ConversationItem } from '@gitmono/types/generated' +import { Button, LoadingSpinner, UIText } from '@gitmono/ui' +import { PicturePlusIcon } from '@gitmono/ui/Icons' +import { cn } from '@gitmono/ui/utils' + +import { EMPTY_HTML } from '@/atoms/markdown' +import FileDiff from '@/components/DiffView/FileDiff' +import { AppLayout } from '@/components/Layout/AppLayout' +import TimelineItems from '@/components/MrView/TimelineItems' +import { useHandleBottomScrollOffset } from '@/components/NoteEditor/useHandleBottomScrollOffset' +import AuthAppProviders from '@/components/Providers/AuthAppProviders' +import { ComposerReactionPicker } from '@/components/Reactions/ComposerReactionPicker' +import { SimpleNoteContent, SimpleNoteContentRef } from '@/components/SimpleNoteEditor/SimpleNoteContent' +import { useScope } from '@/contexts/scope' import { useGetMrDetail } from '@/hooks/useGetMrDetail' -import { useGetMrFilesChanged } from '@/hooks/useGetMrFilesChanged'; +import { useGetMrFilesChanged } from '@/hooks/useGetMrFilesChanged' +import { usePostMrClose } from '@/hooks/usePostMrClose' import { usePostMrComment } from '@/hooks/usePostMrComment' import { usePostMrMerge } from '@/hooks/usePostMrMerge' -import { usePostMrReopen } from '@/hooks/usePostMrReopen'; -import { usePostMrClose } from '@/hooks/usePostMrClose'; -import { useScope } from '@/contexts/scope' -import { SimpleNoteContent, SimpleNoteContentRef } from '@/components/SimpleNoteEditor/SimpleNoteContent'; -import { EMPTY_HTML } from '@/atoms/markdown' -import { useHandleBottomScrollOffset } from '@/components/NoteEditor/useHandleBottomScrollOffset' +import { usePostMrReopen } from '@/hooks/usePostMrReopen' +import { useUploadHelpers } from '@/hooks/useUploadHelpers' import { trimHtml } from '@/utils/trimHtml' -import { toast } from 'react-hot-toast' -import { ComposerReactionPicker } from '@/components/Reactions/ComposerReactionPicker'; -import { useUploadHelpers } from '@/hooks/useUploadHelpers'; -import { CommentDiscussionIcon, FileDiffIcon, ChecklistIcon } from '@primer/octicons-react' -import TimelineItems from '@/components/MrView/TimelineItems'; -import { ConversationItem } from '@gitmono/types/generated'; +import { PageWithLayout } from '@/utils/types' const { UnderlinePanels } = require('@primer/react/experimental') export interface MRDetail { - status: string, - conversations: ConversationItem[], - title: string, + status: string + conversations: ConversationItem[] + title: string } -const MRDetailPage:PageWithLayout = () =>{ - const router = useRouter(); - const { id : tempId } = router.query; - const { scope } = useScope() - const [login, _setLogin] = useState(true); - const [isReactionPickerOpen, setIsReactionPickerOpen] = useState(false) - const id = typeof tempId === 'string' ? tempId : ''; - const { data: MrDetailData, isLoading: detailIsLoading } = useGetMrDetail(id) - const mrDetail = MrDetailData?.data as MRDetail | undefined - - if (mrDetail && typeof mrDetail.status === 'string') { - mrDetail.status = mrDetail.status.toLowerCase(); - } +let needComment = false - const { data: MrFilesChangedData, isLoading: fileChgIsLoading} = useGetMrFilesChanged(id) +const MRDetailPage: PageWithLayout = () => { + const router = useRouter() + const { id: tempId } = router.query + const { scope } = useScope() + const [login, _setLogin] = useState(true) + const [isReactionPickerOpen, setIsReactionPickerOpen] = useState(false) + const id = typeof tempId === 'string' ? tempId : '' + const { data: MrDetailData, isLoading: detailIsLoading } = useGetMrDetail(id) + const mrDetail = MrDetailData?.data as MRDetail | undefined + const [closeHint, setCloseHint] = useState('Close Merge Request') - const { mutate: approveMr, isPending : mrMergeIsPending } = usePostMrMerge(id) - const handleMrApprove = () => { - approveMr(undefined, { - onSuccess: () => { - router.push(`/${scope}/mr`) - }, - }) - } + if (mrDetail && typeof mrDetail.status === 'string') { + mrDetail.status = mrDetail.status.toLowerCase() + } + + const { data: MrFilesChangedData, isLoading: fileChgIsLoading } = useGetMrFilesChanged(id) - const { mutate: closeMr, isPending: mrCloseIsPending } = usePostMrClose(id) - const handleMrClose = () => { - closeMr(undefined, { - onSuccess: () => { - router.push(`/${scope}/mr`) - }, - }) + const { mutate: approveMr, isPending: mrMergeIsPending } = usePostMrMerge(id) + const handleMrApprove = () => { + approveMr(undefined, { + onSuccess: () => { + router.push(`/${scope}/mr`) + } + }) + } + + const { mutate: closeMr, isPending: mrCloseIsPending } = usePostMrClose(id) + const handleMrClose = () => { + if (closeHint === 'Close with comment') { + send_comment() } + closeMr(undefined, { + onSuccess: () => { + router.push(`/${scope}/mr`) + } + }) + } - const { mutate: reopenMr, isPending: mrReopenIsPending } = usePostMrReopen(id) - const handleMrReopen = () => { - reopenMr(undefined,{ - onSuccess: () => { - router.push(`/${scope}/mr`) - }, - }) + const { mutate: reopenMr, isPending: mrReopenIsPending } = usePostMrReopen(id) + const handleMrReopen = () => { + if (needComment) { + send_comment() + needComment = false } + reopenMr(undefined, { + onSuccess: () => { + router.push(`/${scope}/mr`) + } + }) + } - const { mutate: postMrComment, isPending : mrCommentIsPending } = usePostMrComment(id) + const { mutate: postMrComment, isPending: mrCommentIsPending } = usePostMrComment(id) const send_comment = () => { const currentContentHTML = editorRef.current?.editor?.getHTML() ?? '

'; @@ -101,14 +113,24 @@ const MRDetailPage:PageWithLayout = () =>{ } } - const buttonClasses= 'cursor-pointer'; - const editorRef = useRef(null); - const onKeyDownScrollHandler = useHandleBottomScrollOffset({ - editor: editorRef.current?.editor - }) - const { dropzone } = useUploadHelpers({ - upload: editorRef.current?.uploadAndAppendAttachments - }) + const buttonClasses = 'cursor-pointer' + const editorRef = useRef(null) + const onKeyDownScrollHandler = useHandleBottomScrollOffset({ + editor: editorRef.current?.editor + }) + const { dropzone } = useUploadHelpers({ + upload: editorRef.current?.uploadAndAppendAttachments + }) + + const handleChange = (html: string) => { + if (html && html === '

') { + setCloseHint('Close Merge Request') + needComment = false + } else { + setCloseHint('Close with comment') + needComment = true + } + } return (
@@ -123,38 +145,39 @@ const MRDetailPage:PageWithLayout = () =>{ Checks Files Changed -
+
{detailIsLoading ? (
- ) : ( - mrDetail && + ) : ( + mrDetail && )}
-
- {mrDetail && mrDetail.status === "open" && +
+ {mrDetail && mrDetail.status === 'open' && ( - } + )}

Add a comment

-
+
handleChange(html)} />
-
- {mrDetail && mrDetail.status === "open" && +
+ {mrDetail && mrDetail.status === 'open' && ( - } - {mrDetail && mrDetail.status === "closed" && + )} + {mrDetail && mrDetail.status === 'closed' && ( - } + )}