refactor: upgrade react and add compiler

This commit is contained in:
Carlos Valente
2025-07-12 17:34:29 +02:00
parent d24d5c1365
commit 1c6adbd2fd
11 changed files with 176 additions and 250 deletions
+7 -6
View File
@@ -18,11 +18,12 @@
"@tanstack/react-table": "^8.21.3",
"autosize": "^6.0.1",
"axios": "^1.9.0",
"babel-plugin-react-compiler": "19.1.0-rc.2",
"csv-stringify": "^6.4.5",
"prismjs": "^1.29.0",
"react": "^18.3.1",
"react": "^19.1.0",
"react-colorful": "^5.6.1",
"react-dom": "^18.3.1",
"react-dom": "^19.1.0",
"react-fast-compare": "^3.2.2",
"react-hook-form": "^7.53.1",
"react-icons": "5.4.0",
@@ -63,8 +64,8 @@
"@sentry/vite-plugin": "^2.16.1",
"@tanstack/eslint-plugin-query": "^5.8.4",
"@types/prismjs": "^1.26.5",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@typescript-eslint/eslint-plugin": "catalog:",
"@typescript-eslint/parser": "catalog:",
"@vitejs/plugin-react": "4.5.1",
@@ -74,7 +75,7 @@
"eslint-plugin-prettier": "catalog:",
"eslint-plugin-react": "^7.32.0",
"eslint-plugin-react-compiler": "19.1.0-rc.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-simple-import-sort": "^8.0.0",
"ontime-types": "workspace:*",
"ontime-utils": "workspace:*",
@@ -82,7 +83,7 @@
"sass": "^1.57.1",
"typescript": "catalog:",
"vite": "6.3.1",
"vite-plugin-compression2": "1.4.0",
"vite-plugin-compression2": "2.2.0",
"vite-plugin-svgr": "4.3.0",
"vite-tsconfig-paths": "5.1.4",
"vitest": "catalog:"
@@ -5,7 +5,7 @@ import autosize from 'autosize/dist/autosize';
import Textarea, { type TextareaProps } from '../textarea/Textarea';
interface AutoTextAreaProps extends TextareaProps {
inputref: RefObject<HTMLTextAreaElement>;
inputref: RefObject<HTMLTextAreaElement | null>;
}
/**
@@ -11,7 +11,7 @@ interface UseReactiveTextInputReturn {
export default function useReactiveTextInput(
initialText: string,
submitCallback: (newValue: string) => void,
ref: RefObject<HTMLInputElement | HTMLTextAreaElement>,
ref: RefObject<HTMLInputElement | HTMLTextAreaElement | null>,
options?: {
submitOnEnter?: boolean;
submitOnCtrlEnter?: boolean;
@@ -1,64 +0,0 @@
import { MouseEvent, SyntheticEvent, TouchEvent, useMemo, useRef } from 'react';
type LongPressOptions = {
threshold?: number;
onStart?: (e: SyntheticEvent) => void;
onFinish?: (e: SyntheticEvent) => void;
onCancel?: (e: SyntheticEvent) => void;
};
type LongPressFns = {
onMouseDown: (e: MouseEvent) => void;
onMouseUp: (e: MouseEvent) => void;
onMouseLeave: (e: MouseEvent) => void;
onTouchStart: (e: TouchEvent) => void;
onTouchEnd: (e: TouchEvent) => void;
};
export default function useLongPress(callback: () => void, options: LongPressOptions = {}): LongPressFns {
const { threshold = 400, onStart, onFinish, onCancel } = options;
const isLongPressActive = useRef(false);
const isPressed = useRef(false);
const timerId = useRef<NodeJS.Timeout>();
return useMemo(() => {
const start = (event: SyntheticEvent) => {
if (onStart) {
onStart(event);
}
isPressed.current = true;
timerId.current = setTimeout(() => {
callback();
isLongPressActive.current = true;
}, threshold);
};
const cancel = (event: SyntheticEvent) => {
if (isLongPressActive.current) {
if (onFinish) {
onFinish(event);
}
} else if (isPressed.current) {
if (onCancel) {
onCancel(event);
}
}
isLongPressActive.current = false;
isPressed.current = false;
if (timerId.current) {
clearTimeout(timerId.current);
}
};
return {
onMouseDown: start,
onMouseUp: cancel,
onMouseLeave: cancel,
onTouchStart: start,
onTouchEnd: cancel,
};
}, [callback, threshold, onCancel, onFinish, onStart]);
}
@@ -27,7 +27,7 @@ export default function useMemoisedFn<T extends noop>(fn: T) {
// https://github.com/alibaba/hooks/issues/728
fnRef.current = useMemo(() => fn, [fn]);
const memoizedFn = useRef<PickFunction<T>>();
const memoizedFn = useRef<PickFunction<T>>(undefined);
if (!memoizedFn.current) {
memoizedFn.current = function (this, ...args) {
return fnRef.current.apply(this, args);
@@ -22,7 +22,7 @@ type AllowedTags = 'div' | 'form';
type SectionProps<C extends AllowedTags> = {
as?: C;
children: ReactNode;
} & JSX.IntrinsicElements[C];
} & React.JSX.IntrinsicElements[C];
export function Section<C extends AllowedTags = 'div'>({ as, className, children, ...props }: SectionProps<C>) {
const Element = as ?? 'div';
@@ -46,7 +46,7 @@ export function Paragraph({ children }: { children: ReactNode }) {
return <p className={style.paragraph}>{children}</p>;
}
export function Card({ children, className, ...props }: { children: ReactNode } & JSX.IntrinsicElements['div']) {
export function Card({ children, className, ...props }: { children: ReactNode } & React.JSX.IntrinsicElements['div']) {
return (
<div className={cx([style.card, className])} {...props}>
{children}
@@ -107,7 +107,7 @@ export function BlockQuote({ children }: { children: ReactNode }) {
return <blockquote className={style.blockquote}>{children}</blockquote>;
}
export function Error({ children, className }: { children: ReactNode } & JSX.IntrinsicElements['div']) {
export function Error({ children, className }: { children: ReactNode } & React.JSX.IntrinsicElements['div']) {
return <div className={cx([style.fieldError, className])}>{children}</div>;
}
@@ -1,8 +1,8 @@
import { memo, RefObject, SyntheticEvent } from 'react';
import { useLongPress } from '@mantine/hooks';
import { MILLIS_PER_MINUTE, MILLIS_PER_SECOND } from 'ontime-utils';
import DelayIndicator from '../../../common/components/delay-indicator/DelayIndicator';
import useLongPress from '../../../common/hooks/useLongPress';
import { cx, getAccessibleColour } from '../../../common/utils/styleUtils';
import { formatDuration, useTimeUntilStart } from '../../../common/utils/time';
import RunningTime from '../../viewers/common/running-time/RunningTime';
@@ -23,7 +23,7 @@ interface OperatorEventProps {
isLinkedToLoaded: boolean;
isSelected: boolean;
isPast: boolean;
selectedRef?: RefObject<HTMLDivElement>;
selectedRef?: RefObject<HTMLDivElement | null>;
subscribed: Subscribed;
totalGap: number;
onLongPress: (event: EditEvent) => void;
@@ -48,6 +48,9 @@ function OperatorEvent({
totalGap,
onLongPress,
}: OperatorEventProps) {
/**
* gather behaviour for long press and context menu
*/
const handleLongPress = (event?: SyntheticEvent) => {
// we dont have an event out of useLongPress
event?.preventDefault();
@@ -56,7 +59,7 @@ function OperatorEvent({
}
};
const mouseHandlers = useLongPress(handleLongPress, { threshold: 800 });
const mouseHandlers = useLongPress(handleLongPress);
const cueColours = colour && getAccessibleColour(colour);
const operatorClasses = cx([
@@ -19,7 +19,7 @@ interface ScheduleContextState {
selectedEventId: string | null;
numPages: number;
visiblePage: number;
containerRef: RefObject<HTMLUListElement>;
containerRef: RefObject<HTMLUListElement | null>;
}
const ScheduleContext = createContext<ScheduleContextState | undefined>(undefined);
@@ -39,7 +39,7 @@ export const ScheduleProvider = ({ children, selectedEventId }: PropsWithChildre
const [visiblePage, setVisiblePage] = useState(0);
const lastIndex = useRef(-1);
const paginator = useRef<NodeJS.Timeout>();
const paginator = useRef<NodeJS.Timeout>(undefined);
const containerRef = useRef<HTMLUListElement>(null);
@@ -26,7 +26,7 @@ import { cleanup } from './rowObserver';
interface CuesheetBodyProps {
rowModel: RowModel<OntimeEntry>;
selectedRef: RefObject<HTMLTableRowElement>;
selectedRef: RefObject<HTMLTableRowElement | null>;
table: Table<OntimeEntry>;
}
+8 -1
View File
@@ -9,11 +9,18 @@ import { ONTIME_VERSION } from './src/ONTIME_VERSION';
const sentryAuthToken = process.env.SENTRY_AUTH_TOKEN;
const isDev = process.env.NODE_ENV === 'local' || process.env.NODE_ENV === 'development';
const ReactCompilerConfig = {
runtimeModule: '@/mycache',
};
export default defineConfig({
base: './', // Ontime cloud: we use relative paths to allow them to reference a dynamic base set at runtime
plugins: [
react(),
react({
babel: {
plugins: [['babel-plugin-react-compiler', ReactCompilerConfig]],
},
}),
svgrPlugin(),
!isDev &&
sentryVitePlugin({
+146 -167
View File
@@ -88,16 +88,16 @@ importers:
dependencies:
'@base-ui-components/react':
specifier: 1.0.0-beta.1
version: 1.0.0-beta.1(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 1.0.0-beta.1(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@dnd-kit/core':
specifier: ^6.3.1
version: 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@dnd-kit/sortable':
specifier: ^10.0.0
version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)
'@dnd-kit/utilities':
specifier: ^3.2.2
version: 3.2.2(react@18.3.1)
version: 3.2.2(react@19.1.0)
'@emotion/is-prop-valid':
specifier: ^1.3.1
version: 1.3.1
@@ -106,28 +106,31 @@ importers:
version: 5.2.6
'@mantine/hooks':
specifier: ^8.1.2
version: 8.1.2(react@18.3.1)
version: 8.1.2(react@19.1.0)
'@sentry/react':
specifier: ^8.43.0
version: 8.55.0(react@18.3.1)
version: 8.55.0(react@19.1.0)
'@table-nav/react':
specifier: ^0.0.7
version: 0.0.7(@table-nav/core@0.0.7)
'@tanstack/react-query':
specifier: ^5.62.7
version: 5.81.5(react@18.3.1)
version: 5.81.5(react@19.1.0)
'@tanstack/react-query-devtools':
specifier: ^5.62.7
version: 5.81.5(@tanstack/react-query@5.81.5(react@18.3.1))(react@18.3.1)
version: 5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0)
'@tanstack/react-table':
specifier: ^8.21.3
version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
autosize:
specifier: ^6.0.1
version: 6.0.1
axios:
specifier: ^1.9.0
version: 1.10.0
babel-plugin-react-compiler:
specifier: 19.1.0-rc.2
version: 19.1.0-rc.2
csv-stringify:
specifier: ^6.4.5
version: 6.5.2
@@ -135,38 +138,38 @@ importers:
specifier: ^1.29.0
version: 1.30.0
react:
specifier: ^18.3.1
version: 18.3.1
specifier: ^19.1.0
version: 19.1.0
react-colorful:
specifier: ^5.6.1
version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-dom:
specifier: ^18.3.1
version: 18.3.1(react@18.3.1)
specifier: ^19.1.0
version: 19.1.0(react@19.1.0)
react-fast-compare:
specifier: ^3.2.2
version: 3.2.2
react-hook-form:
specifier: ^7.53.1
version: 7.59.0(react@18.3.1)
version: 7.59.0(react@19.1.0)
react-icons:
specifier: 5.4.0
version: 5.4.0(react@18.3.1)
version: 5.4.0(react@19.1.0)
react-qr-code:
specifier: ^2.0.12
version: 2.0.16(react@18.3.1)
version: 2.0.16(react@19.1.0)
react-router-dom:
specifier: ^6.3.0
version: 6.30.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-simple-code-editor:
specifier: ^0.14.1
version: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
version: 0.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
web-vitals:
specifier: ^3.1.1
version: 3.5.2
zustand:
specifier: ^5.0.3
version: 5.0.6(@types/react@18.3.23)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))
version: 5.0.6(@types/react@19.1.8)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0))
devDependencies:
'@sentry/vite-plugin':
specifier: ^2.16.1
@@ -178,11 +181,11 @@ importers:
specifier: ^1.26.5
version: 1.26.5
'@types/react':
specifier: ^18.0.26
version: 18.3.23
specifier: ^19.1.8
version: 19.1.8
'@types/react-dom':
specifier: ^18.0.10
version: 18.3.7(@types/react@18.3.23)
specifier: ^19.1.6
version: 19.1.6(@types/react@19.1.8)
'@typescript-eslint/eslint-plugin':
specifier: 'catalog:'
version: 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.56.0)(typescript@5.5.3))(eslint@8.56.0)(typescript@5.5.3)
@@ -211,8 +214,8 @@ importers:
specifier: 19.1.0-rc.2
version: 19.1.0-rc.2(eslint@8.56.0)
eslint-plugin-react-hooks:
specifier: ^4.6.0
version: 4.6.2(eslint@8.56.0)
specifier: ^5.2.0
version: 5.2.0(eslint@8.56.0)
eslint-plugin-simple-import-sort:
specifier: ^8.0.0
version: 8.0.0(eslint@8.56.0)
@@ -235,8 +238,8 @@ importers:
specifier: 6.3.1
version: 6.3.1(@types/node@22.15.26)(jiti@2.4.2)(sass@1.89.2)(tsx@4.20.3)
vite-plugin-compression2:
specifier: 1.4.0
version: 1.4.0(rollup@4.41.1)(vite@6.3.1(@types/node@22.15.26)(jiti@2.4.2)(sass@1.89.2)(tsx@4.20.3))
specifier: 2.2.0
version: 2.2.0(rollup@4.41.1)
vite-plugin-svgr:
specifier: 4.3.0
version: 4.3.0(rollup@4.41.1)(typescript@5.5.3)(vite@6.3.1(@types/node@22.15.26)(jiti@2.4.2)(sass@1.89.2)(tsx@4.20.3))
@@ -1335,15 +1338,6 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.9':
resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==}
'@rollup/pluginutils@5.1.0':
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
'@rollup/pluginutils@5.1.4':
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
engines: {node: '>=14.0.0'}
@@ -1751,22 +1745,19 @@ packages:
'@types/prismjs@1.26.5':
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
'@types/prop-types@15.7.5':
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
'@types/qs@6.9.7':
resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
'@types/range-parser@1.2.4':
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
'@types/react-dom@18.3.7':
resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
'@types/react-dom@19.1.6':
resolution: {integrity: sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==}
peerDependencies:
'@types/react': ^18.0.0
'@types/react': ^19.0.0
'@types/react@18.3.23':
resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==}
'@types/react@19.1.8':
resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==}
'@types/responselike@1.0.3':
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
@@ -2122,6 +2113,9 @@ packages:
axios@1.10.0:
resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==}
babel-plugin-react-compiler@19.1.0-rc.2:
resolution: {integrity: sha512-kSNA//p5fMO6ypG8EkEVPIqAjwIXm5tMjfD1XRPL/sRjYSbJ6UsvORfaeolNWnZ9n310aM0xJP7peW26BuCVzA==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -2800,11 +2794,11 @@ packages:
peerDependencies:
eslint: '>=7'
eslint-plugin-react-hooks@4.6.2:
resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
eslint-plugin-react-hooks@5.2.0:
resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
eslint-plugin-react@7.37.5:
resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
@@ -4123,10 +4117,10 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
react-dom@18.3.1:
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
react-dom@19.1.0:
resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
peerDependencies:
react: ^18.3.1
react: ^19.1.0
react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
@@ -4173,8 +4167,8 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
react@19.1.0:
resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines: {node: '>=0.10.0'}
read-binary-file-arch@1.0.6:
@@ -4323,8 +4317,8 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
scheduler@0.26.0:
resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
semver-compare@1.0.0:
resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
@@ -4857,10 +4851,8 @@ packages:
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
vite-plugin-compression2@1.4.0:
resolution: {integrity: sha512-UEk0Bq1IkkwqbDLoLOHZ8WTmN1QbvR28fvNl2liB88/6SG1oLrTVkxfjqW3pdla/rKQ6QXn+pJpv3GBbl+k56g==}
peerDependencies:
vite: ^2.0.0||^3.0.0||^4.0.0||^5.0.0 ||^6.0.0
vite-plugin-compression2@2.2.0:
resolution: {integrity: sha512-7BZlU2mBHbqoBGy0ARkn3tv/7LC/2h8ewVDpG/cyH8iSzLw6E/yH6P4oBOEvchkQxNpl+B5W6rFR5fdSwfDhMA==}
vite-plugin-svgr@4.3.0:
resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==}
@@ -5167,7 +5159,7 @@ snapshots:
'@babel/parser': 7.23.6
'@babel/template': 7.22.15
'@babel/traverse': 7.23.6
'@babel/types': 7.27.3
'@babel/types': 7.27.7
convert-source-map: 2.0.0
debug: 4.4.1
gensync: 1.0.0-beta.2
@@ -5218,7 +5210,7 @@ snapshots:
'@babel/generator@7.23.6':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2
@@ -5226,14 +5218,14 @@ snapshots:
'@babel/generator@7.27.5':
dependencies:
'@babel/parser': 7.27.5
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-compilation-targets@7.23.6':
dependencies:
@@ -5269,16 +5261,16 @@ snapshots:
'@babel/helper-function-name@7.23.0':
dependencies:
'@babel/template': 7.22.15
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-hoist-variables@7.22.5':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-member-expression-to-functions@7.27.1':
dependencies:
'@babel/traverse': 7.27.4
'@babel/types': 7.27.3
'@babel/types': 7.27.7
transitivePeerDependencies:
- supports-color
@@ -5320,7 +5312,7 @@ snapshots:
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-plugin-utils@7.27.1': {}
@@ -5335,18 +5327,18 @@ snapshots:
'@babel/helper-simple-access@7.22.5':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
'@babel/traverse': 7.27.4
'@babel/types': 7.27.3
'@babel/types': 7.27.7
transitivePeerDependencies:
- supports-color
'@babel/helper-split-export-declaration@7.22.6':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helper-string-parser@7.23.4': {}
@@ -5364,14 +5356,14 @@ snapshots:
dependencies:
'@babel/template': 7.22.15
'@babel/traverse': 7.23.6
'@babel/types': 7.27.3
'@babel/types': 7.27.7
transitivePeerDependencies:
- supports-color
'@babel/helpers@7.27.4':
dependencies:
'@babel/template': 7.27.2
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/helpers@7.27.6':
dependencies:
@@ -5387,7 +5379,7 @@ snapshots:
'@babel/parser@7.23.6':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/parser@7.27.5':
dependencies:
@@ -5421,13 +5413,13 @@ snapshots:
dependencies:
'@babel/code-frame': 7.24.2
'@babel/parser': 7.27.5
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/parser': 7.27.5
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@babel/traverse@7.23.6':
dependencies:
@@ -5438,7 +5430,7 @@ snapshots:
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.27.5
'@babel/types': 7.27.3
'@babel/types': 7.27.7
debug: 4.4.1
globals: 11.12.0
transitivePeerDependencies:
@@ -5450,7 +5442,7 @@ snapshots:
'@babel/generator': 7.27.5
'@babel/parser': 7.27.5
'@babel/template': 7.27.2
'@babel/types': 7.27.3
'@babel/types': 7.27.7
debug: 4.4.1
globals: 11.12.0
transitivePeerDependencies:
@@ -5484,47 +5476,47 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@base-ui-components/react@1.0.0-beta.1(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@base-ui-components/react@1.0.0-beta.1(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@babel/runtime': 7.27.6
'@floating-ui/react-dom': 2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/react-dom': 2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@floating-ui/utils': 0.2.10
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
reselect: 5.1.1
tabbable: 6.2.0
use-sync-external-store: 1.5.0(react@18.3.1)
use-sync-external-store: 1.5.0(react@19.1.0)
optionalDependencies:
'@types/react': 18.3.23
'@types/react': 19.1.8
'@develar/schema-utils@2.6.5':
dependencies:
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
'@dnd-kit/accessibility@3.1.1(react@18.3.1)':
'@dnd-kit/accessibility@3.1.1(react@19.1.0)':
dependencies:
react: 18.3.1
react: 19.1.0
tslib: 2.6.2
'@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@dnd-kit/accessibility': 3.1.1(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@dnd-kit/accessibility': 3.1.1(react@19.1.0)
'@dnd-kit/utilities': 3.2.2(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
tslib: 2.6.2
'@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
'@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)':
dependencies:
'@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dnd-kit/utilities': 3.2.2(react@18.3.1)
react: 18.3.1
'@dnd-kit/core': 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@dnd-kit/utilities': 3.2.2(react@19.1.0)
react: 19.1.0
tslib: 2.6.2
'@dnd-kit/utilities@3.2.2(react@18.3.1)':
'@dnd-kit/utilities@3.2.2(react@19.1.0)':
dependencies:
react: 18.3.1
react: 19.1.0
tslib: 2.6.2
'@electron/asar@3.4.1':
@@ -5844,11 +5836,11 @@ snapshots:
'@floating-ui/core': 1.7.2
'@floating-ui/utils': 0.2.10
'@floating-ui/react-dom@2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@floating-ui/react-dom@2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@floating-ui/dom': 1.7.2
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
'@floating-ui/utils@0.2.10': {}
@@ -5957,9 +5949,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@mantine/hooks@8.1.2(react@18.3.1)':
'@mantine/hooks@8.1.2(react@19.1.0)':
dependencies:
react: 18.3.1
react: 19.1.0
'@nodelib/fs.scandir@2.1.5':
dependencies:
@@ -6057,14 +6049,6 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.9': {}
'@rollup/pluginutils@5.1.0(rollup@4.41.1)':
dependencies:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
rollup: 4.41.1
'@rollup/pluginutils@5.1.4(rollup@4.41.1)':
dependencies:
'@types/estree': 1.0.5
@@ -6217,12 +6201,12 @@ snapshots:
'@sentry/core@8.55.0': {}
'@sentry/react@8.55.0(react@18.3.1)':
'@sentry/react@8.55.0(react@19.1.0)':
dependencies:
'@sentry/browser': 8.55.0
'@sentry/core': 8.55.0
hoist-non-react-statics: 3.3.2
react: 18.3.1
react: 19.1.0
'@sentry/vite-plugin@2.23.0(encoding@0.1.13)':
dependencies:
@@ -6299,7 +6283,7 @@ snapshots:
'@svgr/hast-util-to-babel-ast@8.0.0':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
entities: 4.5.0
'@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.5.3))':
@@ -6334,22 +6318,22 @@ snapshots:
'@tanstack/query-devtools@5.81.2': {}
'@tanstack/react-query-devtools@5.81.5(@tanstack/react-query@5.81.5(react@18.3.1))(react@18.3.1)':
'@tanstack/react-query-devtools@5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0)':
dependencies:
'@tanstack/query-devtools': 5.81.2
'@tanstack/react-query': 5.81.5(react@18.3.1)
react: 18.3.1
'@tanstack/react-query': 5.81.5(react@19.1.0)
react: 19.1.0
'@tanstack/react-query@5.81.5(react@18.3.1)':
'@tanstack/react-query@5.81.5(react@19.1.0)':
dependencies:
'@tanstack/query-core': 5.81.5
react: 18.3.1
react: 19.1.0
'@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
'@tanstack/react-table@8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@tanstack/table-core': 8.21.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
'@tanstack/table-core@8.21.3': {}
@@ -6365,16 +6349,16 @@ snapshots:
'@types/babel__generator@7.6.8':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@types/babel__template@7.4.4':
dependencies:
'@babel/parser': 7.27.5
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@types/babel__traverse@7.20.4':
dependencies:
'@babel/types': 7.27.3
'@babel/types': 7.27.7
'@types/body-parser@1.19.2':
dependencies:
@@ -6459,19 +6443,16 @@ snapshots:
'@types/prismjs@1.26.5': {}
'@types/prop-types@15.7.5': {}
'@types/qs@6.9.7': {}
'@types/range-parser@1.2.4': {}
'@types/react-dom@18.3.7(@types/react@18.3.23)':
'@types/react-dom@19.1.6(@types/react@19.1.8)':
dependencies:
'@types/react': 18.3.23
'@types/react': 19.1.8
'@types/react@18.3.23':
'@types/react@19.1.8':
dependencies:
'@types/prop-types': 15.7.5
csstype: 3.1.2
'@types/responselike@1.0.3':
@@ -6983,6 +6964,10 @@ snapshots:
transitivePeerDependencies:
- debug
babel-plugin-react-compiler@19.1.0-rc.2:
dependencies:
'@babel/types': 7.27.7
balanced-match@1.0.2: {}
base64-js@1.5.1: {}
@@ -7877,7 +7862,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-react-hooks@4.6.2(eslint@8.56.0):
eslint-plugin-react-hooks@5.2.0(eslint@8.56.0):
dependencies:
eslint: 8.56.0
@@ -9330,57 +9315,54 @@ snapshots:
iconv-lite: 0.6.3
unpipe: 1.0.0
react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-colorful@5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
react-dom@18.3.1(react@18.3.1):
react-dom@19.1.0(react@19.1.0):
dependencies:
loose-envify: 1.4.0
react: 18.3.1
scheduler: 0.23.2
react: 19.1.0
scheduler: 0.26.0
react-fast-compare@3.2.2: {}
react-hook-form@7.59.0(react@18.3.1):
react-hook-form@7.59.0(react@19.1.0):
dependencies:
react: 18.3.1
react: 19.1.0
react-icons@5.4.0(react@18.3.1):
react-icons@5.4.0(react@19.1.0):
dependencies:
react: 18.3.1
react: 19.1.0
react-is@16.13.1: {}
react-qr-code@2.0.16(react@18.3.1):
react-qr-code@2.0.16(react@19.1.0):
dependencies:
prop-types: 15.8.1
qr.js: 0.0.0
react: 18.3.1
react: 19.1.0
react-refresh@0.17.0: {}
react-router-dom@6.30.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-router-dom@6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
'@remix-run/router': 1.23.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-router: 6.30.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
react-router: 6.30.1(react@19.1.0)
react-router@6.30.1(react@18.3.1):
react-router@6.30.1(react@19.1.0):
dependencies:
'@remix-run/router': 1.23.0
react: 18.3.1
react: 19.1.0
react-simple-code-editor@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
react-simple-code-editor@0.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
react@18.3.1:
dependencies:
loose-envify: 1.4.0
react@19.1.0: {}
read-binary-file-arch@1.0.6:
dependencies:
@@ -9591,9 +9573,7 @@ snapshots:
xmlchars: 2.2.0
optional: true
scheduler@0.23.2:
dependencies:
loose-envify: 1.4.0
scheduler@0.26.0: {}
semver-compare@1.0.0:
optional: true
@@ -10137,9 +10117,9 @@ snapshots:
url-template@2.0.8: {}
use-sync-external-store@1.5.0(react@18.3.1):
use-sync-external-store@1.5.0(react@19.1.0):
dependencies:
react: 18.3.1
react: 19.1.0
utf8-byte-length@1.0.4: {}
@@ -10179,11 +10159,10 @@ snapshots:
- tsx
- yaml
vite-plugin-compression2@1.4.0(rollup@4.41.1)(vite@6.3.1(@types/node@22.15.26)(jiti@2.4.2)(sass@1.89.2)(tsx@4.20.3)):
vite-plugin-compression2@2.2.0(rollup@4.41.1):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@4.41.1)
'@rollup/pluginutils': 5.1.4(rollup@4.41.1)
tar-mini: 0.2.0
vite: 6.3.1(@types/node@22.15.26)(jiti@2.4.2)(sass@1.89.2)(tsx@4.20.3)
transitivePeerDependencies:
- rollup
@@ -10448,8 +10427,8 @@ snapshots:
zod@3.25.67: {}
zustand@5.0.6(@types/react@18.3.23)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1)):
zustand@5.0.6(@types/react@19.1.8)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)):
optionalDependencies:
'@types/react': 18.3.23
react: 18.3.1
use-sync-external-store: 1.5.0(react@18.3.1)
'@types/react': 19.1.8
react: 19.1.0
use-sync-external-store: 1.5.0(react@19.1.0)