diff --git a/frontend/console/package.json b/frontend/console/package.json index 38c84bd60d..b2c6f829da 100644 --- a/frontend/console/package.json +++ b/frontend/console/package.json @@ -22,9 +22,13 @@ "build-storybook": "storybook build" }, "lint-staged": { - "*.(js|cjs|tsx|ts)": ["pnpm run lint:fix"] + "*.(js|cjs|tsx|ts)": [ + "pnpm run lint:fix" + ] }, - "browserslist": ["> 2%"], + "browserslist": [ + "> 2%" + ], "source": "index.html", "dependencies": { "@bufbuild/protobuf": "^1.1.0", @@ -39,7 +43,6 @@ "@connectrpc/connect-web": "^1.1.2", "@connectrpc/protoc-gen-connect-es": "^1.4.0", "@headlessui/react": "2.1.3", - "@heroicons/react": "2.1.5", "@tailwindcss/forms": "^0.5.6", "@tanstack/react-query": "^5.51.23", "@tanstack/react-query-devtools": "^5.51.23", @@ -50,6 +53,7 @@ "codemirror-json5": "^1.0.3", "fnv1a": "^1.1.1", "highlight.js": "^11.8.0", + "hugeicons-react": "^0.3.0", "json-schema-faker": "0.5.6", "react": "18.3.1", "react-dom": "18.3.1", diff --git a/frontend/console/src/components/CloseButton.tsx b/frontend/console/src/components/CloseButton.tsx index d74ca89d35..e458a9ae38 100644 --- a/frontend/console/src/components/CloseButton.tsx +++ b/frontend/console/src/components/CloseButton.tsx @@ -1,4 +1,4 @@ -import { XMarkIcon } from '@heroicons/react/24/outline' +import { Cancel01Icon } from 'hugeicons-react' interface Props { onClick: () => void @@ -7,7 +7,7 @@ interface Props { export const CloseButton = ({ onClick }: Props) => { return ( ) } diff --git a/frontend/console/src/components/DarkModeSwitch.tsx b/frontend/console/src/components/DarkModeSwitch.tsx index ca6489f763..b16930cc42 100644 --- a/frontend/console/src/components/DarkModeSwitch.tsx +++ b/frontend/console/src/components/DarkModeSwitch.tsx @@ -1,5 +1,6 @@ import { Switch } from '@headlessui/react' -import { MoonIcon, SunIcon } from '@heroicons/react/20/solid' + +import { Moon02Icon, Sun03Icon } from 'hugeicons-react' import { useUserPreferences } from '../providers/user-preferences-provider' import { classNames } from '../utils/react.utils' @@ -19,10 +20,10 @@ export const DarkModeSwitch = () => { aria-hidden='true' className={classNames( isDarkMode ? 'translate-x-5' : 'translate-x-0', - 'pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-indigo-600 shadow ring-0 transition duration-200 ease-in-out', + 'pointer-events-none inline-block h-5 w-5 transform rounded-full bg-gray-50 dark:bg-indigo-600 shadow ring-0 transition duration-200 ease-in-out', )} > - {isDarkMode ? : } + {isDarkMode ? : } ) diff --git a/frontend/console/src/features/console/ConsolePage.tsx b/frontend/console/src/features/console/ConsolePage.tsx index 17b4bce26f..b547c8746d 100644 --- a/frontend/console/src/features/console/ConsolePage.tsx +++ b/frontend/console/src/features/console/ConsolePage.tsx @@ -1,4 +1,4 @@ -import { CubeTransparentIcon } from '@heroicons/react/24/outline' +import { CubeIcon } from 'hugeicons-react' import { useState } from 'react' import { type NavigateFunction, useNavigate } from 'react-router-dom' import { useModules } from '../../api/modules/use-modules' @@ -25,7 +25,7 @@ export const ConsolePage = () => { return ( - } title='Console' /> + } title='Console' /> } diff --git a/frontend/console/src/features/console/ExpandablePanel.tsx b/frontend/console/src/features/console/ExpandablePanel.tsx index 8b9d5fb99f..0801fcad7a 100644 --- a/frontend/console/src/features/console/ExpandablePanel.tsx +++ b/frontend/console/src/features/console/ExpandablePanel.tsx @@ -1,4 +1,4 @@ -import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/24/outline' +import { ArrowDown01Icon, ArrowRight01Icon } from 'hugeicons-react' import type React from 'react' import { useEffect, useState } from 'react' @@ -24,7 +24,7 @@ export const ExpandablePanel: React.FC = ({ icon: Icon, ti return (
- {isExpanded ? : } + {isExpanded ? : } {Icon ? : null} {title}
diff --git a/frontend/console/src/features/console/right-panel/ModulePanels.tsx b/frontend/console/src/features/console/right-panel/ModulePanels.tsx index 8a5920b53a..8d3b52bfee 100644 --- a/frontend/console/src/features/console/right-panel/ModulePanels.tsx +++ b/frontend/console/src/features/console/right-panel/ModulePanels.tsx @@ -1,13 +1,13 @@ import { - ArrowRightEndOnRectangleIcon, - ArrowRightStartOnRectangleIcon, - ArrowTopRightOnSquareIcon, - ArrowsRightLeftIcon, - BoltIcon, - CodeBracketIcon, - Cog6ToothIcon, - LockClosedIcon, -} from '@heroicons/react/24/outline' + ArrowLeftRightIcon, + CodeSquareIcon, + FunctionIcon, + InboxDownloadIcon, + InboxUploadIcon, + LinkSquare02Icon, + Settings02Icon, + SquareLock02Icon, +} from 'hugeicons-react' import type { NavigateFunction } from 'react-router-dom' import { CodeBlock } from '../../../components' import { RightPanelAttribute } from '../../../components/RightPanelAttribute' @@ -20,7 +20,7 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav if (module.verbs && module.verbs.length > 0) { panels.push({ - icon: BoltIcon, + icon: FunctionIcon, title: 'Verbs', expanded: true, children: module.verbs?.map((v) => ( @@ -31,7 +31,7 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav className='flex items-center space-x-2 hover:text-indigo-400 py-1 px-2 rounded' onClick={() => navigate(`/deployments/${module.deploymentKey}/verbs/${v.verb?.name}`)} > - +
)), @@ -40,7 +40,7 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav if (module.secrets && module.secrets.length > 0) { panels.push({ - icon: LockClosedIcon, + icon: SquareLock02Icon, title: 'Secrets', expanded: false, children: module.secrets.map((s, index) => ( @@ -51,7 +51,7 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav if (module.configs && module.configs.length > 0) { panels.push({ - icon: Cog6ToothIcon, + icon: Settings02Icon, title: 'Configs', expanded: false, children: module.configs.map((c) => ), @@ -59,21 +59,21 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav } panels.push({ - icon: ArrowsRightLeftIcon, + icon: ArrowLeftRightIcon, title: 'Relationships', expanded: false, children: (
{callsIn(allModules, module)?.flatMap((inCall) => (
- +
{`${inCall?.module}.${inCall?.verb}`}
))} {callsOut(module)?.map((out, outIndex) => out?.calls.map((call, callIndex) => (
- +
{`${call?.module}.${call?.name}`}
)), @@ -83,7 +83,7 @@ export const modulePanels = (allModules: Module[], module: Module, navigate: Nav }) panels.push({ - icon: CodeBracketIcon, + icon: CodeSquareIcon, title: 'Schema', expanded: false, children: ( diff --git a/frontend/console/src/features/console/right-panel/RightPanelHeader.tsx b/frontend/console/src/features/console/right-panel/RightPanelHeader.tsx index 5ce5263952..f842e25dd2 100644 --- a/frontend/console/src/features/console/right-panel/RightPanelHeader.tsx +++ b/frontend/console/src/features/console/right-panel/RightPanelHeader.tsx @@ -1,11 +1,11 @@ -import { BoltIcon, Cog6ToothIcon, CubeIcon, LockClosedIcon, RectangleGroupIcon } from '@heroicons/react/24/outline' +import { CellsIcon, FunctionIcon, PackageIcon, Settings02Icon, SquareLock02Icon } from 'hugeicons-react' import { Config, Module, Secret, Verb } from '../../../protos/xyz/block/ftl/v1/console/console_pb' import type { FTLNode } from '../../graph/GraphPane' export const headerForNode = (node: FTLNode | null) => { if (!node) { return header({ - IconComponent: CubeIcon, + IconComponent: CellsIcon, content:
Root
, }) } @@ -34,7 +34,7 @@ const header = ({ IconComponent, content }: { IconComponent: React.ElementType; const moduleHeader = (module: Module) => { return header({ - IconComponent: RectangleGroupIcon, + IconComponent: PackageIcon, content: ( <>
{module.name}
@@ -50,7 +50,7 @@ const moduleHeader = (module: Module) => { const verbHeader = (verb: Verb) => { return header({ - IconComponent: BoltIcon, + IconComponent: FunctionIcon, content: ( <>
{verb.verb?.name}
@@ -66,7 +66,7 @@ const verbHeader = (verb: Verb) => { const secretHeader = (secret: Secret) => { return header({ - IconComponent: LockClosedIcon, + IconComponent: SquareLock02Icon, content: ( <>
Secret
@@ -82,7 +82,7 @@ const secretHeader = (secret: Secret) => { const configHeader = (config: Config) => { return header({ - IconComponent: Cog6ToothIcon, + IconComponent: Settings02Icon, content: ( <>
{config.config?.name}
diff --git a/frontend/console/src/features/modules/ModulesTree.tsx b/frontend/console/src/features/modules/ModulesTree.tsx index be7067f7f6..6ad959b447 100644 --- a/frontend/console/src/features/modules/ModulesTree.tsx +++ b/frontend/console/src/features/modules/ModulesTree.tsx @@ -1,21 +1,20 @@ import { Disclosure, DisclosureButton, DisclosurePanel } from '@headlessui/react' import { - ArrowRightCircleIcon, - BellAlertIcon, - BellIcon, - BoltIcon, - BookOpenIcon, - ChevronRightIcon, - CircleStackIcon, - CodeBracketSquareIcon, - Cog6ToothIcon, - DocumentDuplicateIcon, - LockClosedIcon, - NumberedListIcon, - SquaresPlusIcon, - TableCellsIcon, -} from '@heroicons/react/24/outline' -import type { ForwardRefExoticComponent, SVGProps } from 'react' + AnonymousIcon, + ArrowRight01Icon, + BubbleChatIcon, + CircleArrowRight02Icon, + CodeIcon, + DatabaseIcon, + FlowIcon, + FunctionIcon, + type HugeiconsProps, + LeftToRightListNumberIcon, + MessageIncoming02Icon, + PackageIcon, + Settings02Icon, + SquareLock02Icon, +} from 'hugeicons-react' import { useEffect, useMemo, useRef } from 'react' import { useNavigate, useParams } from 'react-router-dom' import type { Decl } from '../../protos/xyz/block/ftl/v1/schema/schema_pb' @@ -26,18 +25,18 @@ import { addModuleToLocalStorageIfMissing, listExpandedModulesFromLocalStorage, // This could alternatively be an icon, but we'd need to pick a good one. const ExportBadge = () => Exported -type IconMap = Record & { title?: string; titleId?: string }>> +type IconMap = Record & React.RefAttributes>> const icons: IconMap = { - config: Cog6ToothIcon, - data: TableCellsIcon, - database: CircleStackIcon, - enum: NumberedListIcon, - fsm: SquaresPlusIcon, - topic: BellIcon, - typeAlias: DocumentDuplicateIcon, - secret: LockClosedIcon, - subscription: BellAlertIcon, - verb: BoltIcon, + config: Settings02Icon, + data: CodeIcon, + database: DatabaseIcon, + enum: LeftToRightListNumberIcon, + fsm: FlowIcon, + topic: BubbleChatIcon, + typeAlias: AnonymousIcon, + secret: SquareLock02Icon, + subscription: MessageIncoming02Icon, + verb: FunctionIcon, } type WithExport = { export?: boolean } @@ -47,7 +46,7 @@ const DeclNode = ({ decl, href, isSelected }: { decl: Decl; href: string; isSele return [] } const navigate = useNavigate() - const Icon = useMemo(() => icons[decl.value.case || ''] || CodeBracketSquareIcon, [decl.value.case]) + const Icon = useMemo(() => icons[decl.value.case || ''] || CodeIcon, [decl.value.case]) return (
  • toggleExpansion(module.name)} > -
    diff --git a/frontend/console/src/layout/Page.tsx b/frontend/console/src/layout/Page.tsx index 03a1a9dd0c..7e07c9fb98 100644 --- a/frontend/console/src/layout/Page.tsx +++ b/frontend/console/src/layout/Page.tsx @@ -1,4 +1,4 @@ -import { ChevronRightIcon } from '@heroicons/react/20/solid' +import { ArrowRight02Icon } from 'hugeicons-react' import type React from 'react' import { classNames } from '../utils' @@ -33,7 +33,7 @@ const Header = ({ {crumb.label} - +
  • ))} diff --git a/frontend/console/src/layout/navigation/Navigation.tsx b/frontend/console/src/layout/navigation/Navigation.tsx index 1d2df860f8..75791da21a 100644 --- a/frontend/console/src/layout/navigation/Navigation.tsx +++ b/frontend/console/src/layout/navigation/Navigation.tsx @@ -1,14 +1,14 @@ -import { CubeTransparentIcon, ListBulletIcon, ServerStackIcon, Square3Stack3DIcon } from '@heroicons/react/24/outline' +import { CellsIcon, Database01Icon, ListViewIcon, WorkflowSquare06Icon } from 'hugeicons-react' import { NavLink } from 'react-router-dom' import { DarkModeSwitch } from '../../components' import { classNames } from '../../utils' import { Version } from './Version' const navigation = [ - { name: 'Events', href: '/events', icon: ListBulletIcon }, - { name: 'Modules', href: '/modules', icon: Square3Stack3DIcon }, - { name: 'Graph', href: '/graph', icon: CubeTransparentIcon }, - { name: 'Infrastructure', href: '/infrastructure', icon: ServerStackIcon }, + { name: 'Events', href: '/events', icon: ListViewIcon }, + { name: 'Modules', href: '/modules', icon: CellsIcon }, + { name: 'Graph', href: '/graph', icon: WorkflowSquare06Icon }, + { name: 'Infrastructure', href: '/infrastructure', icon: Database01Icon }, ] export const Navigation = ({ version }: { version?: string }) => { @@ -30,7 +30,7 @@ export const Navigation = ({ version }: { version?: string }) => { ) } > - + {item.name} ))} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b380f029a2..cb106f66a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,55 +6,6 @@ settings: importers: - frontend/vscode: - dependencies: - lookpath: - specifier: ^1.2.2 - version: 1.2.2 - semver: - specifier: ^7.6.0 - version: 7.6.3 - vscode-languageclient: - specifier: ^10.0.0-next.8 - version: 10.0.0-next.13 - devDependencies: - '@biomejs/biome': - specifier: 1.8.3 - version: 1.8.3 - '@types/mocha': - specifier: ^10.0.6 - version: 10.0.7 - '@types/node': - specifier: 20.x - version: 20.16.2 - '@types/semver': - specifier: ^7.5.8 - version: 7.5.8 - '@types/vscode': - specifier: ^1.87.0 - version: 1.92.0 - '@vscode/test-cli': - specifier: ^0.0.10 - version: 0.0.10 - '@vscode/test-electron': - specifier: ^2.3.9 - version: 2.4.1 - '@vscode/vsce': - specifier: ^3.0.0 - version: 3.0.0 - ts-loader: - specifier: ^9.5.1 - version: 9.5.1(typescript@5.5.4)(webpack@5.94.0(webpack-cli@5.1.4)) - typescript: - specifier: ^5.3.3 - version: 5.5.4 - webpack: - specifier: ^5.90.3 - version: 5.94.0(webpack-cli@5.1.4) - webpack-cli: - specifier: ^5.1.4 - version: 5.1.4(webpack@5.94.0) - frontend/console: dependencies: '@bufbuild/protobuf': @@ -93,9 +44,6 @@ importers: '@headlessui/react': specifier: 2.1.3 version: 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@heroicons/react': - specifier: 2.1.5 - version: 2.1.5(react@18.3.1) '@tailwindcss/forms': specifier: ^0.5.6 version: 0.5.8(tailwindcss@3.4.10) @@ -126,6 +74,9 @@ importers: highlight.js: specifier: ^11.8.0 version: 11.10.0 + hugeicons-react: + specifier: ^0.3.0 + version: 0.3.0(react@18.3.1) json-schema-faker: specifier: 0.5.6 version: 0.5.6 @@ -251,6 +202,55 @@ importers: specifier: ^2.0.5 version: 2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5)(jsdom@25.0.0)(less@4.2.0)(terser@5.31.6) + frontend/vscode: + dependencies: + lookpath: + specifier: ^1.2.2 + version: 1.2.2 + semver: + specifier: ^7.6.0 + version: 7.6.3 + vscode-languageclient: + specifier: ^10.0.0-next.8 + version: 10.0.0-next.13 + devDependencies: + '@biomejs/biome': + specifier: 1.8.3 + version: 1.8.3 + '@types/mocha': + specifier: ^10.0.6 + version: 10.0.7 + '@types/node': + specifier: 20.x + version: 20.16.2 + '@types/semver': + specifier: ^7.5.8 + version: 7.5.8 + '@types/vscode': + specifier: ^1.87.0 + version: 1.92.0 + '@vscode/test-cli': + specifier: ^0.0.10 + version: 0.0.10 + '@vscode/test-electron': + specifier: ^2.3.9 + version: 2.4.1 + '@vscode/vsce': + specifier: ^3.0.0 + version: 3.0.0 + ts-loader: + specifier: ^9.5.1 + version: 9.5.1(typescript@5.5.4)(webpack@5.94.0(webpack-cli@5.1.4)) + typescript: + specifier: ^5.3.3 + version: 5.5.4 + webpack: + specifier: ^5.90.3 + version: 5.94.0(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack@5.94.0) + packages: '@adobe/css-tools@4.4.0': @@ -1430,11 +1430,6 @@ packages: react: ^18 react-dom: ^18 - '@heroicons/react@2.1.5': - resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==} - peerDependencies: - react: '>= 16' - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -4180,6 +4175,11 @@ packages: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + hugeicons-react@0.3.0: + resolution: {integrity: sha512-znmC+uX7xVqcIs0q09LvwEvJkjX0U3xgT05BSiRV19farS4lPONOKjYT0JkcQG5cvfV0rXHSEAEVNjbHAu81rg==} + peerDependencies: + react: '>=16.0.0' + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -6680,7 +6680,7 @@ snapshots: '@babel/traverse': 7.25.4 '@babel/types': 7.25.4 convert-source-map: 2.0.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -6738,7 +6738,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -7479,7 +7479,7 @@ snapshots: '@babel/parser': 7.25.4 '@babel/template': 7.25.0 '@babel/types': 7.25.4 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7808,7 +7808,7 @@ snapshots: '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7816,7 +7816,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.2 @@ -7865,10 +7865,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@heroicons/react@2.1.5(react@18.3.1)': - dependencies: - react: 18.3.1 - '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.0': {} @@ -9444,7 +9440,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.30 '@typescript-eslint/visitor-keys': 8.0.0-alpha.30 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -9473,7 +9469,7 @@ snapshots: '@typescript/vfs@1.6.0(typescript@4.5.2)': dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 typescript: 4.5.2 transitivePeerDependencies: - supports-color @@ -9803,7 +9799,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -10373,6 +10369,10 @@ snapshots: dependencies: ms: 2.0.0 + debug@4.3.6: + dependencies: + ms: 2.1.2 + debug@4.3.6(supports-color@8.1.1): dependencies: ms: 2.1.2 @@ -10544,14 +10544,14 @@ snapshots: esbuild-register@3.6.0(esbuild@0.18.20): dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 esbuild: 0.18.20 transitivePeerDependencies: - supports-color esbuild-register@3.6.0(esbuild@0.21.5): dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 esbuild: 0.21.5 transitivePeerDependencies: - supports-color @@ -10650,7 +10650,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -11118,17 +11118,21 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 transitivePeerDependencies: - supports-color + hugeicons-react@0.3.0(react@18.3.1): + dependencies: + react: 18.3.1 + human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -11539,7 +11543,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.4 @@ -13323,7 +13327,7 @@ snapshots: vite-node@2.0.5(@types/node@22.5.1)(less@4.2.0)(terser@5.31.6): dependencies: cac: 6.7.14 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 vite: 5.4.2(@types/node@22.5.1)(less@4.2.0)(terser@5.31.6) @@ -13359,7 +13363,7 @@ snapshots: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 chai: 5.1.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.6 execa: 8.0.1 magic-string: 0.30.11 pathe: 1.1.2