diff --git a/package-lock.json b/package-lock.json index 9c911154..b794446a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2500,9 +2500,9 @@ } }, "node_modules/@tanstack/history": { - "version": "1.95.0", - "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.95.0.tgz", - "integrity": "sha512-w1/yWuIBqmG0Z0MPMf1OuOCce7FXyVH4L4dIA4rvpnjIUCH8qRUgloFAVg37nTMUbOmhMsY2NZDxCpKBv+CLJg==", + "version": "1.99.13", + "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.99.13.tgz", + "integrity": "sha512-JMd7USmnp8zV8BRGIjALqzPxazvKtQ7PGXQC7n39HpbqdsmfV2ePCzieO84IvN+mwsTrXErpbjI4BfKCa+ZNCg==", "license": "MIT", "engines": { "node": ">=12" @@ -2513,9 +2513,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.62.16", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.16.tgz", - "integrity": "sha512-9Sgft7Qavcd+sN0V25xVyo0nfmcZXBuODy3FVG7BMWTg1HMLm8wwG5tNlLlmSic1u7l1v786oavn+STiFaPH2g==", + "version": "5.66.4", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.4.tgz", + "integrity": "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==", "license": "MIT", "funding": { "type": "github", @@ -2534,12 +2534,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.62.16", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.16.tgz", - "integrity": "sha512-XJIZNj65d2IdvU8VBESmrPakfIm6FSdHDzrS1dPrAwmq3ZX+9riMh/ZfbNQHAWnhrgmq7KoXpgZSRyXnqMYT9A==", + "version": "5.66.9", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.9.tgz", + "integrity": "sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.62.16" + "@tanstack/query-core": "5.66.4" }, "funding": { "type": "github", @@ -2568,14 +2568,15 @@ } }, "node_modules/@tanstack/react-router": { - "version": "1.95.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.95.1.tgz", - "integrity": "sha512-P5x4yNhcdkYsCEoYeGZP8Q9Jlxf0WXJa4G/xvbmM905seZc9FqJqvCSRvX3dWTPOXRABhl4g+8DHqfft0c/AvQ==", + "version": "1.111.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.111.3.tgz", + "integrity": "sha512-OsqAuExa4WF7+BbjENWlb4dHRousxU5jahJHUPyO0gaUcWwzaVloJKi8lTFTd1PWQ8waz5V7BedkV67hd8syUw==", "license": "MIT", "dependencies": { - "@tanstack/history": "1.95.0", + "@tanstack/history": "1.99.13", "@tanstack/react-store": "^0.7.0", - "jsesc": "^3.0.2", + "@tanstack/router-core": "^1.111.3", + "jsesc": "^3.1.0", "tiny-invariant": "^1.3.3", "tiny-warning": "^1.0.3" }, @@ -2587,8 +2588,8 @@ "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" + "react": ">=18.0.0 || >=19.0.0", + "react-dom": ">=18.0.0 || >=19.0.0" } }, "node_modules/@tanstack/react-store": { @@ -2610,12 +2611,12 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", - "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.0.tgz", + "integrity": "sha512-CchF0NlLIowiM2GxtsoKBkXA4uqSnY2KvnXo+kyUFD4a4ll6+J0qzoRsUPMwXV/H26lRsxgJIr/YmjYum2oEjg==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.11.2" + "@tanstack/virtual-core": "3.13.0" }, "funding": { "type": "github", @@ -2626,6 +2627,23 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/@tanstack/router-core": { + "version": "1.111.3", + "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.111.3.tgz", + "integrity": "sha512-q+CHuOhTgqHudVKijL89jIdLe5A00RzV8ZMMSi4qiHGnggm4nisF8eSE3dFQaic1+YFk1wR7dfFA2hvkr1hFIA==", + "license": "MIT", + "dependencies": { + "@tanstack/history": "1.99.13", + "@tanstack/store": "^0.7.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@tanstack/router-devtools": { "version": "1.91.3", "resolved": "https://registry.npmjs.org/@tanstack/router-devtools/-/router-devtools-1.91.3.tgz", @@ -2730,9 +2748,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", - "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.0.tgz", + "integrity": "sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==", "license": "MIT", "funding": { "type": "github", @@ -2754,9 +2772,9 @@ } }, "node_modules/@tauri-apps/api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.0.2.tgz", - "integrity": "sha512-3wSwmG+1kr6WrgAFKK5ijkNFPp8TT3FLj3YHUb5EwMO+3FxX4uWlfSWkeeBy+Kc1RsKzugtYLuuya+98Flj+3w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.2.0.tgz", + "integrity": "sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg==", "license": "Apache-2.0 OR MIT", "funding": { "type": "opencollective", @@ -6963,17 +6981,19 @@ } }, "node_modules/framer-motion": { - "version": "11.11.7", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.7.tgz", - "integrity": "sha512-89CgILOXPeG3L7ymOTGrLmf8IiKubYLUN/QkYgQuLvehAHfqgwJbLfCnhuyRI4WTds1TXkUp67A7IJrgRY/j1w==", + "version": "12.4.7", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.7.tgz", + "integrity": "sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==", "license": "MIT", "dependencies": { + "motion-dom": "^12.4.5", + "motion-utils": "^12.0.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/is-prop-valid": { @@ -8577,9 +8597,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -10008,6 +10028,47 @@ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", "license": "BSD-3-Clause" }, + "node_modules/motion": { + "version": "12.4.7", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.4.7.tgz", + "integrity": "sha512-mhegHAbf1r80fr+ytC6OkjKvIUegRNXKLWNPrCN2+GnixlNSPwT03FtKqp9oDny1kNcLWZvwbmEr+JqVryFrcg==", + "license": "MIT", + "dependencies": { + "framer-motion": "^12.4.7", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "12.4.5", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz", + "integrity": "sha512-Q2xmhuyYug1CGTo0jdsL05EQ4RhIYXlggFS/yPhQQRNzbrhjKQ1tbjThx5Plv68aX31LsUQRq4uIkuDxdO5vRQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.0.0" + } + }, + "node_modules/motion-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", + "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -15635,10 +15696,10 @@ "@replit/codemirror-vim": "^6.2.1", "@replit/codemirror-vscode-keymap": "^6.0.2", "@tailwindcss/container-queries": "^0.1.1", - "@tanstack/react-query": "^5.62.16", - "@tanstack/react-router": "^1.95.1", - "@tanstack/react-virtual": "^3.11.2", - "@tauri-apps/api": "^2.0.1", + "@tanstack/react-query": "^5.66.9", + "@tanstack/react-router": "^1.111.3", + "@tanstack/react-virtual": "^3.13.0", + "@tauri-apps/api": "^2.2.0", "@tauri-apps/plugin-clipboard-manager": "^2.0.0", "@tauri-apps/plugin-dialog": "^2.0.0", "@tauri-apps/plugin-fs": "^2.0.0", @@ -15655,7 +15716,6 @@ "eventemitter3": "^5.0.1", "focus-trap-react": "^10.2.3", "format-graphql": "^1.5.0", - "framer-motion": "^11.5.4", "fuzzbunny": "^1.0.1", "hexy": "^0.3.5", "history": "^5.3.0", @@ -15663,6 +15723,7 @@ "js-md5": "^0.8.3", "lucide-react": "^0.474.0", "mime": "^4.0.4", + "motion": "^12.4.7", "nanoid": "^5.0.9", "papaparse": "^5.4.1", "parse-color": "^1.0.0", diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index dd07f706..f0998b43 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -11,7 +11,6 @@ use eventsource_client::{EventParser, SSE}; use log::{debug, error, warn}; use rand::random; use regex::Regex; -use serde_json::{json, Value}; use std::collections::{BTreeMap, HashMap}; use std::fs::{create_dir_all, File}; use std::path::PathBuf; diff --git a/src-web/components/ImportCurlButton.tsx b/src-web/components/ImportCurlButton.tsx index 8fde74e7..0dc45120 100644 --- a/src-web/components/ImportCurlButton.tsx +++ b/src-web/components/ImportCurlButton.tsx @@ -1,5 +1,5 @@ import { clear, readText } from '@tauri-apps/plugin-clipboard-manager'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import React, { useEffect, useState } from 'react'; import { useImportCurl } from '../hooks/useImportCurl'; import { useWindowFocus } from '../hooks/useWindowFocus'; @@ -22,7 +22,7 @@ export function ImportCurlButton() { } return ( - Import Curl - + ); } diff --git a/src-web/components/Overlay.tsx b/src-web/components/Overlay.tsx index c1e9390c..3c81cb2d 100644 --- a/src-web/components/Overlay.tsx +++ b/src-web/components/Overlay.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import FocusTrap from 'focus-trap-react'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import type { ReactNode } from 'react'; import React from 'react'; import { Portal } from './Portal'; @@ -48,7 +48,7 @@ export function Overlay({ {open && ( - )} {children} - + )} diff --git a/src-web/components/Settings/SettingsGeneral.tsx b/src-web/components/Settings/SettingsGeneral.tsx index 18a5e17f..811ed403 100644 --- a/src-web/components/Settings/SettingsGeneral.tsx +++ b/src-web/components/Settings/SettingsGeneral.tsx @@ -82,7 +82,7 @@ export function SettingsGeneral() { checked={false} title="Send Usage Statistics (all tracking was removed in 2025.1.2)" disabled - onChange={(telemetry) => updateSettings.mutate({ telemetry })} + onChange={() => {}} /> diff --git a/src-web/components/Toasts.tsx b/src-web/components/Toasts.tsx index 292c783a..ce0f34a9 100644 --- a/src-web/components/Toasts.tsx +++ b/src-web/components/Toasts.tsx @@ -1,4 +1,4 @@ -import { AnimatePresence } from 'framer-motion'; +import { AnimatePresence } from 'motion/react'; import { useAtomValue } from 'jotai'; import React, { type ReactNode } from 'react'; import { hideToast, toastsAtom } from '../lib/toast'; diff --git a/src-web/components/Workspace.tsx b/src-web/components/Workspace.tsx index 638492e6..9a2d2254 100644 --- a/src-web/components/Workspace.tsx +++ b/src-web/components/Workspace.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import type { CSSProperties, MouseEvent as ReactMouseEvent } from 'react'; import { useCallback, useMemo, useRef, useState } from 'react'; import {duplicateWebsocketRequest} from "../commands/duplicateWebsocketRequest"; @@ -137,7 +137,7 @@ export function Workspace() { portalName="sidebar" onClose={() => setFloatingSidebarHidden(true)} > - - + ) : ( <> diff --git a/src-web/components/core/Dialog.tsx b/src-web/components/core/Dialog.tsx index a0a493f2..ae71e2d2 100644 --- a/src-web/components/core/Dialog.tsx +++ b/src-web/components/core/Dialog.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import type { ReactNode } from 'react'; import { useMemo } from 'react'; import { useKey } from 'react-use'; @@ -65,7 +65,7 @@ export function Dialog({ aria-labelledby={titleId} aria-describedby={descriptionId} > - )} - + ); diff --git a/src-web/components/core/Dropdown.tsx b/src-web/components/core/Dropdown.tsx index f3e6982c..31bbb117 100644 --- a/src-web/components/core/Dropdown.tsx +++ b/src-web/components/core/Dropdown.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import { atom } from 'jotai'; import type { CSSProperties, @@ -497,7 +497,7 @@ const Menu = forwardRef - - + )} diff --git a/src-web/components/core/Toast.tsx b/src-web/components/core/Toast.tsx index f73d753e..a9cde8f1 100644 --- a/src-web/components/core/Toast.tsx +++ b/src-web/components/core/Toast.tsx @@ -1,6 +1,6 @@ import type { ShowToastRequest } from '@yaakapp-internal/plugins'; import classNames from 'classnames'; -import { motion } from 'framer-motion'; +import * as m from 'motion/react-m'; import type { ReactNode } from 'react'; import React from 'react'; import { useKey } from 'react-use'; @@ -45,7 +45,7 @@ export function Toast({ children, open, onClose, timeout, action, icon, color }: const toastIcon = icon ?? (color && color in ICONS && ICONS[color]); return ( - - )} - + ); } diff --git a/src-web/package.json b/src-web/package.json index c54ff187..293f2434 100644 --- a/src-web/package.json +++ b/src-web/package.json @@ -23,10 +23,10 @@ "@replit/codemirror-vim": "^6.2.1", "@replit/codemirror-vscode-keymap": "^6.0.2", "@tailwindcss/container-queries": "^0.1.1", - "@tanstack/react-query": "^5.62.16", - "@tanstack/react-router": "^1.95.1", - "@tanstack/react-virtual": "^3.11.2", - "@tauri-apps/api": "^2.0.1", + "@tanstack/react-query": "^5.66.9", + "@tanstack/react-router": "^1.111.3", + "@tanstack/react-virtual": "^3.13.0", + "@tauri-apps/api": "^2.2.0", "@tauri-apps/plugin-clipboard-manager": "^2.0.0", "@tauri-apps/plugin-dialog": "^2.0.0", "@tauri-apps/plugin-fs": "^2.0.0", @@ -43,7 +43,7 @@ "eventemitter3": "^5.0.1", "focus-trap-react": "^10.2.3", "format-graphql": "^1.5.0", - "framer-motion": "^11.5.4", + "motion": "^12.4.7", "fuzzbunny": "^1.0.1", "hexy": "^0.3.5", "history": "^5.3.0", diff --git a/src-web/routes/__root.tsx b/src-web/routes/__root.tsx index b0ed89aa..d0b4150b 100644 --- a/src-web/routes/__root.tsx +++ b/src-web/routes/__root.tsx @@ -1,7 +1,7 @@ import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { createRootRoute, Outlet } from '@tanstack/react-router'; import classNames from 'classnames'; -import { MotionConfig } from 'framer-motion'; +import { domAnimation, LazyMotion, MotionConfig } from 'motion/react'; import { Provider as JotaiProvider } from 'jotai'; import React, { Suspense } from 'react'; import { DndProvider } from 'react-dnd'; @@ -61,25 +61,27 @@ function RouteComponent() { return ( - - - - - - - -
- -
-
-
-
-
+ + + + + + + + +
+ +
+
+
+
+
+
{/**/} {/**/}
diff --git a/src-web/vite.config.ts b/src-web/vite.config.ts index f9ed0513..ea388ba4 100644 --- a/src-web/vite.config.ts +++ b/src-web/vite.config.ts @@ -27,6 +27,7 @@ export default defineConfig(async () => ({ TanStackRouterVite({ routesDirectory: './routes', generatedRouteTree: './routeTree.gen.ts', + autoCodeSplitting: true, }), svgr(), react(),