From 166160dda9d229340206d9e6bffe4ef7b434b7a5 Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Sun, 21 Dec 2025 13:45:16 +0100 Subject: [PATCH] chore: upgrade client dependencies --- apps/client/package.json | 12 +- apps/client/src/App.tsx | 2 +- .../common/components/checkbox/Checkbox.tsx | 2 +- .../client-modal/RedirectClientModal.tsx | 9 +- .../components/dialog/Dialog.module.scss | 2 +- .../src/common/components/dialog/Dialog.tsx | 4 +- .../components/dropdown-menu/DropdownMenu.tsx | 10 +- .../input/delay-input/BlockRadio.tsx | 4 +- .../input/popover-picker/PopoverPicker.tsx | 2 +- .../src/common/components/modal/Modal.tsx | 4 +- .../navigation-menu/NavigationMenu.tsx | 2 +- .../src/common/components/popover/Popover.tsx | 2 +- .../components/radio-group/RadioGroup.tsx | 4 +- .../src/common/components/select/Select.tsx | 2 +- .../src/common/components/switch/Switch.tsx | 2 +- .../src/common/components/tooltip/Tooltip.tsx | 2 +- .../view-params-editor/ParamInput.tsx | 11 +- .../view-params-editor/ViewParamsEditor.tsx | 2 +- .../automations-panel/AutomationForm.tsx | 18 +- .../automations-panel/OntimeActionForm.tsx | 11 +- .../panel/automations-panel/TriggerForm.tsx | 10 +- .../feature-panel/composite/URLPresetForm.tsx | 5 +- .../manage-panel/RundownDefaultSettings.tsx | 15 +- .../import-map/ImportMapForm.tsx | 7 +- .../panel/settings-panel/GeneralSettings.tsx | 10 +- .../app-settings/quick-start/QuickStart.tsx | 10 +- .../control/message/TimerViewControl.tsx | 7 +- .../operator/edit-modal/EditModal.tsx | 2 +- .../composite/EventEditorTimes.tsx | 10 +- .../quick-add-buttons/QuickAddButtons.tsx | 2 +- .../rundown/rundown-header/RundownHeader.tsx | 6 +- .../rundown-header/RundownHeaderMobile.tsx | 6 +- .../rundown/rundown-header/RundownMenu.tsx | 2 +- .../src/features/sharing/GenerateLinkForm.tsx | 10 +- .../CuesheetShareModal.tsx | 2 +- .../CuesheetTableSettings.tsx | 8 +- pnpm-lock.yaml | 364 ++++++++++-------- 37 files changed, 356 insertions(+), 227 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index 2dfedd7d0..c7ba7c364 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "dependencies": { - "@base-ui-components/react": "1.0.0-beta.4", + "@base-ui/react": "1.0.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", @@ -19,18 +19,18 @@ "axios": "^1.12.2", "csv-stringify": "^6.6.0", "prismjs": "^1.30.0", - "react": "^19.1.1", + "react": "^19.2.3", "react-colorful": "^5.6.1", - "react-dom": "^19.1.1", + "react-dom": "^19.2.3", "react-fast-compare": "^3.2.2", "react-hook-form": "^7.62.0", "react-icons": "5.5.0", "react-qr-code": "^2.0.18", - "react-router": "^7.8.2", + "react-router": "^7.11.0", "react-simple-code-editor": "^0.14.1", - "react-virtuoso": "^4.14.0", + "react-virtuoso": "^4.17.0", "web-vitals": "^5.1.0", - "zustand": "^5.0.8" + "zustand": "^5.0.9" }, "scripts": { "addversion": "node -p \"'export const ONTIME_VERSION = ' + JSON.stringify(require('../../package.json').version) + ';'\" > src/ONTIME_VERSION.js", diff --git a/apps/client/src/App.tsx b/apps/client/src/App.tsx index 369e9a857..f8cdf1d7f 100644 --- a/apps/client/src/App.tsx +++ b/apps/client/src/App.tsx @@ -1,5 +1,5 @@ import { BrowserRouter } from 'react-router'; -import { Tooltip } from '@base-ui-components/react/tooltip'; +import { Tooltip } from '@base-ui/react/tooltip'; import { QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; diff --git a/apps/client/src/common/components/checkbox/Checkbox.tsx b/apps/client/src/common/components/checkbox/Checkbox.tsx index 8345563c0..0cd1d42fd 100644 --- a/apps/client/src/common/components/checkbox/Checkbox.tsx +++ b/apps/client/src/common/components/checkbox/Checkbox.tsx @@ -1,5 +1,5 @@ import { IoCheckmark } from 'react-icons/io5'; -import { Checkbox as BaseCheckbox } from '@base-ui-components/react/checkbox'; +import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox'; import style from './Checkbox.module.scss'; diff --git a/apps/client/src/common/components/client-modal/RedirectClientModal.tsx b/apps/client/src/common/components/client-modal/RedirectClientModal.tsx index e57ff6c8f..992c6cadb 100644 --- a/apps/client/src/common/components/client-modal/RedirectClientModal.tsx +++ b/apps/client/src/common/components/client-modal/RedirectClientModal.tsx @@ -5,10 +5,10 @@ import { navigatorConstants } from '../../../viewerConfig'; import { setClientRemote } from '../../hooks/useSocket'; import useUrlPresets from '../../hooks-query/useUrlPresets'; import Button from '../buttons/Button'; +import Dialog from '../dialog/Dialog'; import Info from '../info/Info'; import Input from '../input/input/Input'; import AppLink from '../link/app-link/AppLink'; -import Modal from '../modal/Modal'; import Select from '../select/Select'; import style from './RedirectClientModal.module.scss'; @@ -57,7 +57,7 @@ export function RedirectClientModal({ id, isOpen, name, currentPath, origin, onC ]; return ( - setSelected(value)} + onValueChange={(value) => { + if (value === null) return; + setSelected(value); + }} disabled={enabledPresets.length === 0} /> diff --git a/apps/client/src/common/components/dialog/Dialog.module.scss b/apps/client/src/common/components/dialog/Dialog.module.scss index fa6ee98d3..21e5704d5 100644 --- a/apps/client/src/common/components/dialog/Dialog.module.scss +++ b/apps/client/src/common/components/dialog/Dialog.module.scss @@ -6,7 +6,7 @@ transform: translateX(-50%); padding-inline: 1rem; - min-width: min(420px, 90vw); + min-width: min(600px, 90vw); background-color: $gray-1250; color: $ui-white; diff --git a/apps/client/src/common/components/dialog/Dialog.tsx b/apps/client/src/common/components/dialog/Dialog.tsx index de0c8743a..f89fec096 100644 --- a/apps/client/src/common/components/dialog/Dialog.tsx +++ b/apps/client/src/common/components/dialog/Dialog.tsx @@ -1,6 +1,6 @@ import type { ReactNode } from 'react'; import { IoClose } from 'react-icons/io5'; -import { Dialog as BaseDialog } from '@base-ui-components/react/dialog'; +import { Dialog as BaseDialog } from '@base-ui/react/dialog'; import IconButton from '../buttons/IconButton'; @@ -12,7 +12,7 @@ interface DialogProps { showCloseButton?: boolean; showBackdrop?: boolean; bodyElements: ReactNode; - footerElements: ReactNode; + footerElements?: ReactNode; onClose: () => void; } diff --git a/apps/client/src/common/components/dropdown-menu/DropdownMenu.tsx b/apps/client/src/common/components/dropdown-menu/DropdownMenu.tsx index 2c97fb107..192702b81 100644 --- a/apps/client/src/common/components/dropdown-menu/DropdownMenu.tsx +++ b/apps/client/src/common/components/dropdown-menu/DropdownMenu.tsx @@ -1,6 +1,6 @@ import { PropsWithChildren } from 'react'; import { IconType } from 'react-icons'; -import { Menu as BaseMenu } from '@base-ui-components/react/menu'; +import { Menu as BaseMenu } from '@base-ui/react/menu'; import style from './DropdownMenu.module.scss'; @@ -31,7 +31,13 @@ export function DropdownMenu({ items, children, ...triggerProps }: PropsWithChil return ; } return ( - + {item.icon && } {item.label} diff --git a/apps/client/src/common/components/input/delay-input/BlockRadio.tsx b/apps/client/src/common/components/input/delay-input/BlockRadio.tsx index e72db984a..221330236 100644 --- a/apps/client/src/common/components/input/delay-input/BlockRadio.tsx +++ b/apps/client/src/common/components/input/delay-input/BlockRadio.tsx @@ -1,5 +1,5 @@ -import { Radio } from '@base-ui-components/react/radio'; -import { RadioGroup as BaseRadioGroup } from '@base-ui-components/react/radio-group'; +import { Radio } from '@base-ui/react/radio'; +import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group'; import style from './BlockRadio.module.scss'; diff --git a/apps/client/src/common/components/input/popover-picker/PopoverPicker.tsx b/apps/client/src/common/components/input/popover-picker/PopoverPicker.tsx index d6e0128c7..0d29b565d 100644 --- a/apps/client/src/common/components/input/popover-picker/PopoverPicker.tsx +++ b/apps/client/src/common/components/input/popover-picker/PopoverPicker.tsx @@ -1,6 +1,6 @@ import { PropsWithChildren } from 'react'; import { HexAlphaColorPicker, HexColorInput } from 'react-colorful'; -import { Popover } from '@base-ui-components/react/popover'; +import { Popover } from '@base-ui/react/popover'; import PopoverContents from '../../popover/Popover'; diff --git a/apps/client/src/common/components/modal/Modal.tsx b/apps/client/src/common/components/modal/Modal.tsx index 9b6ca7068..b98a0c88a 100644 --- a/apps/client/src/common/components/modal/Modal.tsx +++ b/apps/client/src/common/components/modal/Modal.tsx @@ -1,6 +1,6 @@ import type { ReactNode } from 'react'; import { IoClose } from 'react-icons/io5'; -import { Dialog as BaseDialog } from '@base-ui-components/react/dialog'; +import { Dialog as BaseDialog } from '@base-ui/react/dialog'; import IconButton from '../buttons/IconButton'; @@ -31,7 +31,7 @@ export default function Modal({ onOpenChange={(isOpen) => { if (!isOpen) onClose(); }} - dismissible={false} + disablePointerDismissal > {showBackdrop && } diff --git a/apps/client/src/common/components/navigation-menu/NavigationMenu.tsx b/apps/client/src/common/components/navigation-menu/NavigationMenu.tsx index 48b21548c..9d22ccb47 100644 --- a/apps/client/src/common/components/navigation-menu/NavigationMenu.tsx +++ b/apps/client/src/common/components/navigation-menu/NavigationMenu.tsx @@ -2,7 +2,7 @@ import { memo } from 'react'; import { IoClose, IoContract, IoExpand, IoLockClosedOutline, IoSwapVertical } from 'react-icons/io5'; import { LuCoffee } from 'react-icons/lu'; import { useLocation } from 'react-router'; -import { Dialog } from '@base-ui-components/react/dialog'; +import { Dialog } from '@base-ui/react/dialog'; import { useDisclosure, useFullscreen } from '@mantine/hooks'; import { isLocalhost, supportsFullscreen } from '../../../externals'; diff --git a/apps/client/src/common/components/popover/Popover.tsx b/apps/client/src/common/components/popover/Popover.tsx index 5e4c02939..28b1cf211 100644 --- a/apps/client/src/common/components/popover/Popover.tsx +++ b/apps/client/src/common/components/popover/Popover.tsx @@ -1,5 +1,5 @@ import { PropsWithChildren } from 'react'; -import { Popover } from '@base-ui-components/react/popover'; +import { Popover } from '@base-ui/react/popover'; import style from './Popover.module.scss'; diff --git a/apps/client/src/common/components/radio-group/RadioGroup.tsx b/apps/client/src/common/components/radio-group/RadioGroup.tsx index e68165ed5..613a620bb 100644 --- a/apps/client/src/common/components/radio-group/RadioGroup.tsx +++ b/apps/client/src/common/components/radio-group/RadioGroup.tsx @@ -1,5 +1,5 @@ -import { Radio } from '@base-ui-components/react/radio'; -import { RadioGroup as BaseRadioGroup } from '@base-ui-components/react/radio-group'; +import { Radio } from '@base-ui/react/radio'; +import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group'; import { cx } from '../../utils/styleUtils'; diff --git a/apps/client/src/common/components/select/Select.tsx b/apps/client/src/common/components/select/Select.tsx index 076daa674..e7c4f2cb2 100644 --- a/apps/client/src/common/components/select/Select.tsx +++ b/apps/client/src/common/components/select/Select.tsx @@ -1,6 +1,6 @@ import { IoCheckmark } from 'react-icons/io5'; import { LuChevronsUpDown } from 'react-icons/lu'; -import { Select as BaseSelect } from '@base-ui-components/react/select'; +import { Select as BaseSelect } from '@base-ui/react/select'; import { cx } from '../../utils/styleUtils'; diff --git a/apps/client/src/common/components/switch/Switch.tsx b/apps/client/src/common/components/switch/Switch.tsx index 73fb1cee5..2d69beae5 100644 --- a/apps/client/src/common/components/switch/Switch.tsx +++ b/apps/client/src/common/components/switch/Switch.tsx @@ -1,4 +1,4 @@ -import { Switch as BaseSwitch } from '@base-ui-components/react/switch'; +import { Switch as BaseSwitch } from '@base-ui/react/switch'; import { cx } from '../../utils/styleUtils'; diff --git a/apps/client/src/common/components/tooltip/Tooltip.tsx b/apps/client/src/common/components/tooltip/Tooltip.tsx index 304b4c35d..ce4bead04 100644 --- a/apps/client/src/common/components/tooltip/Tooltip.tsx +++ b/apps/client/src/common/components/tooltip/Tooltip.tsx @@ -1,5 +1,5 @@ import { PropsWithChildren } from 'react'; -import { Tooltip as BaseTooltip } from '@base-ui-components/react/tooltip'; +import { Tooltip as BaseTooltip } from '@base-ui/react/tooltip'; import style from './Tooltip.module.scss'; diff --git a/apps/client/src/common/components/view-params-editor/ParamInput.tsx b/apps/client/src/common/components/view-params-editor/ParamInput.tsx index 0578f0a91..fdf6c9e2c 100644 --- a/apps/client/src/common/components/view-params-editor/ParamInput.tsx +++ b/apps/client/src/common/components/view-params-editor/ParamInput.tsx @@ -160,7 +160,16 @@ function ControlledSelect({ id, initialValue, options }: ControlledSelectProps) }, [initialValue]); return ( - { + if (value === null) return; + setSelected(value); + }} + /> ); } diff --git a/apps/client/src/common/components/view-params-editor/ViewParamsEditor.tsx b/apps/client/src/common/components/view-params-editor/ViewParamsEditor.tsx index aef0de6f4..bc7ffd428 100644 --- a/apps/client/src/common/components/view-params-editor/ViewParamsEditor.tsx +++ b/apps/client/src/common/components/view-params-editor/ViewParamsEditor.tsx @@ -1,7 +1,7 @@ import { FormEvent, memo } from 'react'; import { IoClose } from 'react-icons/io5'; import { useSearchParams } from 'react-router'; -import { Dialog } from '@base-ui-components/react/dialog'; +import { Dialog } from '@base-ui/react/dialog'; import { OntimeView } from 'ontime-types'; import { useIsSmallScreen } from '../../hooks/useIsSmallScreen'; diff --git a/apps/client/src/features/app-settings/panel/automations-panel/AutomationForm.tsx b/apps/client/src/features/app-settings/panel/automations-panel/AutomationForm.tsx index e597405d6..a525bdef3 100644 --- a/apps/client/src/features/app-settings/panel/automations-panel/AutomationForm.tsx +++ b/apps/client/src/features/app-settings/panel/automations-panel/AutomationForm.tsx @@ -232,7 +232,10 @@ export default function AutomationForm({ automation, onClose }: AutomationFormPr Runtime data source - setValue(`filters.${index}.operator`, value as 'equals' | 'not_equals' | 'contains', { - shouldDirty: true, - }) - } + onValueChange={(value: string | null) => { + if (value === null) return; + setValue( + `filters.${index}.operator`, + value as 'equals' | 'not_equals' | 'greater_than' | 'less_than' | 'contains' | 'not_contains', + { shouldDirty: true }, + ); + }} options={[ { value: 'equals', label: 'equals' }, { value: 'not_equals', label: 'not equals' }, diff --git a/apps/client/src/features/app-settings/panel/automations-panel/OntimeActionForm.tsx b/apps/client/src/features/app-settings/panel/automations-panel/OntimeActionForm.tsx index b11577ecf..a1379437b 100644 --- a/apps/client/src/features/app-settings/panel/automations-panel/OntimeActionForm.tsx +++ b/apps/client/src/features/app-settings/panel/automations-panel/OntimeActionForm.tsx @@ -44,8 +44,9 @@ export default function OntimeActionForm({