diff --git a/examples/src/sheets/custom-plugin/import-csv-button.ts b/examples/src/sheets/custom-plugin/import-csv-button.ts index d29d58c394..835fb341f3 100644 --- a/examples/src/sheets/custom-plugin/import-csv-button.ts +++ b/examples/src/sheets/custom-plugin/import-csv-button.ts @@ -112,9 +112,10 @@ class ImportCSVButtonPlugin extends Plugin { * The plugin should add its own module to the dependency injection system at this lifecycle. * It is not recommended to initialize the internal module of the plugin outside this lifecycle. */ + // eslint-disable-next-line max-lines-per-function override onStarting() { // register icon component - this.componentManager.register('FolderSingle', FolderSingle); + this.componentManager.register('FolderSingle2', FolderSingle); const buttonId = 'import-csv-button'; @@ -205,7 +206,7 @@ class ImportCSVButtonPlugin extends Plugin { id: buttonId, title: 'Import CSV', tooltip: 'Import CSV', - icon: 'FolderSingle', // icon name + icon: 'FolderSingle2', // icon name type: MenuItemType.BUTTON, }); diff --git a/mockdata/package.json b/mockdata/package.json index 842519e766..9425773317 100644 --- a/mockdata/package.json +++ b/mockdata/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/mockdata", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/package.json b/package.json index c23d8a6b7d..143da53bf4 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@antfu/eslint-config": "4.13.2", "@commitlint/cli": "^19.8.1", "@commitlint/config-conventional": "^19.8.1", - "@eslint-react/eslint-plugin": "^1.49.0", + "@eslint-react/eslint-plugin": "^1.50.0", "@playwright/test": "^1.52.0", "@release-it-plugins/workspaces": "^4.2.0", "@release-it/conventional-changelog": "^9.0.4", diff --git a/packages-experimental/debugger/package.json b/packages-experimental/debugger/package.json index 1e61d96e94..c2787d6506 100644 --- a/packages-experimental/debugger/package.json +++ b/packages-experimental/debugger/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/debugger", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uni-docs-ui/package.json b/packages-experimental/uni-docs-ui/package.json index c669230735..8de544cdbc 100644 --- a/packages-experimental/uni-docs-ui/package.json +++ b/packages-experimental/uni-docs-ui/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uni-docs-ui", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uni-formula-ui/package.json b/packages-experimental/uni-formula-ui/package.json index 23667718e8..9b69179520 100644 --- a/packages-experimental/uni-formula-ui/package.json +++ b/packages-experimental/uni-formula-ui/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uni-formula-ui", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uni-formula/package.json b/packages-experimental/uni-formula/package.json index 75bd112c60..09f18a9d9a 100644 --- a/packages-experimental/uni-formula/package.json +++ b/packages-experimental/uni-formula/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uni-formula", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uni-sheets-ui/package.json b/packages-experimental/uni-sheets-ui/package.json index 71f1251b27..924d44a8b4 100644 --- a/packages-experimental/uni-sheets-ui/package.json +++ b/packages-experimental/uni-sheets-ui/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uni-sheets-ui", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uni-slides-ui/package.json b/packages-experimental/uni-slides-ui/package.json index 6513a5999e..43c0838dac 100644 --- a/packages-experimental/uni-slides-ui/package.json +++ b/packages-experimental/uni-slides-ui/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uni-slides-ui", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages-experimental/uniui/package.json b/packages-experimental/uniui/package.json index 4fd927a8a0..a6c15c0395 100644 --- a/packages-experimental/uniui/package.json +++ b/packages-experimental/uniui/package.json @@ -1,6 +1,6 @@ { "name": "@univerjs/uniui", - "version": "0.7.0", + "version": "0.0.0", "private": true, "description": "", "author": "DreamNum ", diff --git a/packages/core/package.json b/packages/core/package.json index 99e0fd3b00..058135be21 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -82,7 +82,6 @@ "kdbush": "^4.0.2", "lodash-es": "^4.17.21", "nanoid": "5.1.5", - "numeral": "^2.0.6", "numfmt": "^2.5.2", "ot-json1": "^1.0.2", "rbush": "^4.0.1" @@ -90,7 +89,6 @@ "devDependencies": { "@types/async-lock": "^1.4.2", "@types/lodash-es": "^4.17.12", - "@types/numeral": "^2.0.5", "@types/rbush": "^4.0.0", "@univerjs-infra/shared": "workspace:*", "rxjs": "^7.8.2", diff --git a/packages/docs-drawing-ui/package.json b/packages/docs-drawing-ui/package.json index 2f559bd00b..1487f47005 100644 --- a/packages/docs-drawing-ui/package.json +++ b/packages/docs-drawing-ui/package.json @@ -74,7 +74,6 @@ "@univerjs/drawing": "workspace:*", "@univerjs/drawing-ui": "workspace:*", "@univerjs/engine-render": "workspace:*", - "@univerjs/icons": "^0.3.24", "@univerjs/ui": "workspace:*" }, "devDependencies": { diff --git a/packages/docs-drawing-ui/src/controllers/doc-drawing.controller.ts b/packages/docs-drawing-ui/src/controllers/doc-drawing.controller.ts index 2f592b2e84..1f8af95981 100644 --- a/packages/docs-drawing-ui/src/controllers/doc-drawing.controller.ts +++ b/packages/docs-drawing-ui/src/controllers/doc-drawing.controller.ts @@ -15,7 +15,6 @@ */ import { Disposable, ICommandService, Inject } from '@univerjs/core'; -import { AddImageSingle } from '@univerjs/icons'; import { ComponentManager, IMenuManagerService, IShortcutService } from '@univerjs/ui'; import { DeleteDocDrawingsCommand } from '../commands/commands/delete-doc-drawing.command'; @@ -33,7 +32,6 @@ import { EditDocDrawingOperation } from '../commands/operations/edit-doc-drawing import { SidebarDocDrawingOperation } from '../commands/operations/open-drawing-panel.operation'; import { COMPONENT_DOC_DRAWING_PANEL } from '../views/doc-image-panel/component-name'; import { DocDrawingPanel } from '../views/doc-image-panel/DocDrawingPanel'; -import { ImageUploadIcon } from '../views/menu/image.menu'; import { menuSchema } from './menu.schema'; import { DeleteDrawingsShortcutItem, MoveDrawingDownShortcutItem, MoveDrawingLeftShortcutItem, MoveDrawingRightShortcutItem, MoveDrawingUpShortcutItem } from './shortcuts/drawing.shortcut'; @@ -51,7 +49,6 @@ export class DocDrawingUIController extends Disposable { private _initCustomComponents(): void { const componentManager = this._componentManager; - this.disposeWithMe(componentManager.register(ImageUploadIcon, AddImageSingle)); this.disposeWithMe(componentManager.register(COMPONENT_DOC_DRAWING_PANEL, DocDrawingPanel)); } diff --git a/packages/docs-drawing-ui/src/views/menu/image.menu.ts b/packages/docs-drawing-ui/src/views/menu/image.menu.ts index ed56860d28..aa88ff2a5e 100644 --- a/packages/docs-drawing-ui/src/views/menu/image.menu.ts +++ b/packages/docs-drawing-ui/src/views/menu/image.menu.ts @@ -23,7 +23,6 @@ import { getMenuHiddenObservable, MenuItemType } from '@univerjs/ui'; import { Observable } from 'rxjs'; import { InsertDocImageCommand } from '../../commands/commands/insert-image.command'; -export const ImageUploadIcon = 'addition-and-subtraction-single'; export const DOCS_IMAGE_MENU_ID = 'doc.menu.image'; export const IMAGE_MENU_UPLOAD_FLOAT_ID = InsertDocImageCommand.id; @@ -66,7 +65,7 @@ export function ImageMenuFactory(accessor: IAccessor): IMenuItem { return { id: DOCS_IMAGE_MENU_ID, type: MenuItemType.SUBITEMS, - icon: ImageUploadIcon, + icon: 'AddImageSingle', tooltip: 'docImage.title', disabled$: getDisableWhenSelectionInTableObservable(accessor), hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC, undefined, DOCS_ZEN_EDITOR_UNIT_ID_KEY), diff --git a/packages/docs-ui/src/views/paragraph-setting/Setting.tsx b/packages/docs-ui/src/views/paragraph-setting/Setting.tsx index e727dc19cb..455d42e441 100644 --- a/packages/docs-ui/src/views/paragraph-setting/Setting.tsx +++ b/packages/docs-ui/src/views/paragraph-setting/Setting.tsx @@ -73,17 +73,17 @@ export function ParagraphSetting() { ], []); const currentParagraph = useCurrentParagraph(); - const [horizontalAlignValue, horizontalAlignSet] = useFirstParagraphHorizontalAlign(currentParagraph, alignmentOptions[0].value); + const [horizontalAlignValue, setHorizontalAlign] = useFirstParagraphHorizontalAlign(currentParagraph, alignmentOptions[0].value); - const [indentStart, indentStartSet] = useFirstParagraphIndentStart(currentParagraph); - const [indentEnd, indentEndSet] = useFirstParagraphIndentEnd(currentParagraph); - const [indentFirstLine, indentFirstLineSet] = useFirstParagraphIndentFirstLine(currentParagraph); + const [indentStart, setIndentStart] = useFirstParagraphIndentStart(currentParagraph); + const [indentEnd, setIndentEnd] = useFirstParagraphIndentEnd(currentParagraph); + const [indentFirstLine, setIndentFirstLine] = useFirstParagraphIndentFirstLine(currentParagraph); - const [hanging, hangingSet] = useFirstParagraphIndentHanging(currentParagraph); + const [hanging, setHanging] = useFirstParagraphIndentHanging(currentParagraph); - const [spaceAbove, spaceAboveSet] = useFirstParagraphIndentSpaceAbove(currentParagraph); - const [spaceBelow, spaceBelowSet] = useFirstParagraphSpaceBelow(currentParagraph); - const { lineSpacing: [lineSpacing, lineSpacingSet], spacingRule: [spacingRule, spacingRuleSet] } = useFirstParagraphLineSpacing(currentParagraph); + const [spaceAbove, setSpaceAbove] = useFirstParagraphIndentSpaceAbove(currentParagraph); + const [spaceBelow, setSpaceBelow] = useFirstParagraphSpaceBelow(currentParagraph); + const { lineSpacing: [lineSpacing, setLineSpacing], spacingRule: [spacingRule, setSpacingRule] } = useFirstParagraphLineSpacing(currentParagraph); const lineSpaceConfig = useMemo(() => { if (spacingRule === SpacingRule.AUTO) { @@ -112,7 +112,7 @@ export function ParagraphSetting() { `, { 'univer-bg-blend-color-dodge/90': horizontalAlignValue === item.value, })} - onClick={() => horizontalAlignSet(item.value)} + onClick={() => setHorizontalAlign(item.value)} > {item.icon} @@ -128,7 +128,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.left')} (px) - indentStartSet(v ?? 0)} /> + setIndentStart(v ?? 0)} />
@@ -136,7 +136,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.right')} (px)
- indentEndSet(v ?? 0)} /> + setIndentEnd(v ?? 0)} />
@@ -144,7 +144,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.firstLine')} (px)
- indentFirstLineSet(v ?? 0)} /> + setIndentFirstLine(v ?? 0)} />
@@ -152,7 +152,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.hanging')} (px)
- hangingSet(v ?? 0)} /> + setHanging(v ?? 0)} />
{localeService.t('doc.paragraphSetting.spacing')}
@@ -163,7 +163,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.before')} (px) - spaceAboveSet(v ?? 0)} /> + setSpaceAbove(v ?? 0)} />
@@ -171,7 +171,7 @@ export function ParagraphSetting() { {localeService.t('doc.paragraphSetting.after')} (px)
- spaceBelowSet(v ?? 0)} /> + setSpaceBelow(v ?? 0)} />
{localeService.t('doc.paragraphSetting.lineSpace')}
@@ -184,12 +184,12 @@ export function ParagraphSetting() { { label: localeService.t('doc.paragraphSetting.multiSpace'), value: `${SpacingRule.AUTO}` }, { label: localeService.t('doc.paragraphSetting.fixedValue'), value: `${SpacingRule.AT_LEAST}` }, ]} - onChange={(v) => spacingRuleSet(Number(v))} + onChange={(v) => setSpacingRule(Number(v))} /> lineSpacingSet(v ?? 0)} + onChange={(v) => setLineSpacing(v ?? 0)} />
diff --git a/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts b/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts index 0530deead6..4340f226c2 100644 --- a/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts +++ b/packages/docs-ui/src/views/paragraph-setting/hook/utils.ts @@ -100,134 +100,134 @@ export const useCurrentSections = (currentParagraphs: IParagraph[]) => { export const useFirstParagraphHorizontalAlign = (paragraph: IParagraph[], defaultValue: string) => { const commandService = useDependency(ICommandService); - const [horizontalAlign, _horizontalAlignSet] = useState(() => { + const [horizontalAlign, setHorizontalAlignSetInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return defaultValue; } return String(firstParagraph.paragraphStyle?.horizontalAlign ?? defaultValue); }); - const horizontalAlignSet = (v: string) => { - _horizontalAlignSet(v); + const sethorizontalAlign = (v: string) => { + setHorizontalAlignSetInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { horizontalAlign: Number(v) }, } as IDocParagraphSettingCommandParams); }; - return [horizontalAlign, horizontalAlignSet] as const; + return [horizontalAlign, sethorizontalAlign] as const; }; export const useFirstParagraphIndentStart = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [indentStart, _indentStartSet] = useState(() => { + const [indentStart, setIndentStartInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.indentStart, 0); }); - const indentStartSet = (v: number) => { - _indentStartSet(v); + const setIndentStart = (v: number) => { + setIndentStartInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { indentStart: { v } }, } as IDocParagraphSettingCommandParams); }; - return [indentStart, indentStartSet] as const; + return [indentStart, setIndentStart] as const; }; export const useFirstParagraphIndentEnd = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [indentEnd, _indentEndSet] = useState(() => { + const [indentEnd, setIndentEndInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.indentEnd, 0); }); - const indentEndSet = (v: number) => { - _indentEndSet(v); + const setIndentEnd = (v: number) => { + setIndentEndInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { indentEnd: { v } }, } as IDocParagraphSettingCommandParams); }; - return [indentEnd, indentEndSet] as const; + return [indentEnd, setIndentEnd] as const; }; export const useFirstParagraphIndentFirstLine = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [indentFirstLine, _indentFirstLineSet] = useState(() => { + const [indentFirstLine, setIndentFirstLineInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.indentFirstLine, 0); }); - const indentFirstLineSet = (v: number) => { - _indentFirstLineSet(v); + const setIndentFirstLine = (v: number) => { + setIndentFirstLineInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { indentFirstLine: { v } }, } as IDocParagraphSettingCommandParams); }; - return [indentFirstLine, indentFirstLineSet] as const; + return [indentFirstLine, setIndentFirstLine] as const; }; export const useFirstParagraphIndentHanging = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [hanging, _hangingSet] = useState(() => { + const [hanging, setHangingInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.hanging, 0); }); - const hangingSet = (v: number) => { - _hangingSet(v); + const setHanging = (v: number) => { + setHangingInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { hanging: { v } }, } as IDocParagraphSettingCommandParams); }; - return [hanging, hangingSet] as const; + return [hanging, setHanging] as const; }; export const useFirstParagraphIndentSpaceAbove = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [spaceAbove, _spaceAboveSet] = useState(() => { + const [spaceAbove, setSpaceAboveInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.spaceAbove, 0); }); - const spaceAboveSet = (v: number) => { - _spaceAboveSet(v); + const setSpaceAbove = (v: number) => { + setSpaceAboveInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { spaceAbove: { v } }, } as IDocParagraphSettingCommandParams); }; - return [spaceAbove, spaceAboveSet] as const; + return [spaceAbove, setSpaceAbove] as const; }; export const useFirstParagraphSpaceBelow = (paragraph: IParagraph[]) => { const commandService = useDependency(ICommandService); - const [spaceBelow, _spaceBelowSet] = useState(() => { + const [spaceBelow, setSpaceBelowInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 0; } return getNumberUnitValue(firstParagraph.paragraphStyle?.spaceBelow, 0); }); - const spaceBelowSet = (v: number) => { - _spaceBelowSet(v); + const setSpaceBelow = (v: number) => { + setSpaceBelowInternal(v); return commandService.executeCommand(DocParagraphSettingCommand.id, { paragraph: { spaceBelow: { v } }, } as IDocParagraphSettingCommandParams); }; - return [spaceBelow, spaceBelowSet] as const; + return [spaceBelow, setSpaceBelow] as const; }; // eslint-disable-next-line max-lines-per-function @@ -246,7 +246,7 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { const stateChange$ = useMemo(() => new BehaviorSubject<{ spacingRule?: SpacingRule; lineSpacing?: number }>({}), []); - const [lineSpacing, _lineSpacingSet] = useState(() => { + const [lineSpacing, setLineSpacingInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return 1; @@ -256,7 +256,7 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { const lineSpacingCache = useRef(lineSpacing); - const [spacingRule, _spacingRuleSet] = useState(() => { + const [spacingRule, setSpacingRuleInternal] = useState(() => { const firstParagraph = paragraph[0]; if (!firstParagraph) { return SpacingRule.AUTO; @@ -264,12 +264,12 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { return firstParagraph.paragraphStyle?.spacingRule ?? SpacingRule.AUTO; }); - const lineSpacingSet = async (v: number) => { - _lineSpacingSet(v); + const setLineSpacing = async (v: number) => { + setLineSpacingInternal(v); stateChange$.next({ lineSpacing: v, spacingRule }); }; - const spacingRuleSet = async (v: SpacingRule) => { + const setSpacingRule = async (v: SpacingRule) => { if (v !== spacingRule) { let cache = lineSpacingCache.current; if (v === SpacingRule.AT_LEAST) { @@ -288,8 +288,8 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { } } lineSpacingCache.current = lineSpacing; - lineSpacingSet(cache); - _spacingRuleSet(v); + setLineSpacing(cache); + setSpacingRuleInternal(v); stateChange$.next({ spacingRule: v }); } }; @@ -316,8 +316,7 @@ export const useFirstParagraphLineSpacing = (paragraph: IParagraph[]) => { }, []); return { - lineSpacing: [lineSpacing, lineSpacingSet] as const, - spacingRule: [spacingRule, spacingRuleSet] as const, - + lineSpacing: [lineSpacing, setLineSpacing] as const, + spacingRule: [spacingRule, setSpacingRule] as const, }; }; diff --git a/packages/docs-ui/src/views/paragraph-setting/index.tsx b/packages/docs-ui/src/views/paragraph-setting/index.tsx index 9e4d103a4a..f7c764d3ed 100644 --- a/packages/docs-ui/src/views/paragraph-setting/index.tsx +++ b/packages/docs-ui/src/views/paragraph-setting/index.tsx @@ -19,7 +19,7 @@ import type { IRichTextEditingMutationParams, ISetTextSelectionsOperationParams import { debounce, generateRandomId, ICommandService, LocaleService } from '@univerjs/core'; import { RichTextEditingMutation, SetTextSelectionsOperation } from '@univerjs/docs'; import { useDependency, useObservable } from '@univerjs/ui'; -import React, { useEffect, useMemo, useRef, useState } from 'react'; +import { useEffect, useMemo, useRef, useState } from 'react'; import { DocParagraphSettingCommand } from '../../commands/commands/doc-paragraph-setting.command'; import { ParagraphSetting } from './Setting'; @@ -34,9 +34,9 @@ export function ParagraphSettingIndex() { const localeService = useDependency(LocaleService); const currentLocale = useObservable(localeService.currentLocale$); - const [key, keySet] = useState(''); + const [key, setKey] = useState(''); const debounceReset = useMemo(() => { - return debounce(() => keySet(generateRandomId(4)), 300); + return debounce(() => setKey(generateRandomId(4)), 300); }, []); const rangeRef = useRef([]); @@ -46,7 +46,7 @@ export function ParagraphSettingIndex() { if (SetTextSelectionsOperation.id === info.id) { const ranges = (info.params as ISetTextSelectionsOperationParams).ranges; if (!isRangesEqual(ranges, rangeRef.current)) { - keySet(generateRandomId(4)); + setKey(generateRandomId(4)); } rangeRef.current = ranges; } @@ -62,7 +62,7 @@ export function ParagraphSettingIndex() { }, [debounceReset]); useEffect(() => { - keySet(generateRandomId(4)); + setKey(generateRandomId(4)); }, [currentLocale]); useEffect(() => () => debounceReset.cancel(), [debounceReset]); diff --git a/packages/sheets-conditional-formatting-ui/src/components/color-picker/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/color-picker/index.tsx index 331f015515..c99f0247fa 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/color-picker/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/color-picker/index.tsx @@ -14,29 +14,35 @@ * limitations under the License. */ +import type { IconProps } from '@univerjs/icons'; import { ColorKit } from '@univerjs/core'; import { clsx, Dropdown, ColorPicker as OriginColorPicker } from '@univerjs/design'; -import { MoreDownSingle } from '@univerjs/icons'; -import { ComponentManager, useDependency } from '@univerjs/ui'; +import { PaintBucket } from '@univerjs/icons'; import { useMemo } from 'react'; interface IColorPickerProps { color: string; onChange: (color: string) => void; disable?: boolean; - iconId?: string; + Icon?: React.ForwardRefExoticComponent>; className?: string; - isNeedDropdownIcon?: boolean; }; export const ColorPicker = (props: IColorPickerProps) => { - const { color, onChange, disable = false, iconId = 'PaintBucket', className, isNeedDropdownIcon = true } = props; - const componentManager = useDependency(ComponentManager); + const { color, onChange, disable = false, Icon = PaintBucket, className } = props; const colorKit = useMemo(() => new ColorKit(color), [color]); - const Icon = componentManager.get(iconId); - if (!Icon) return null; + const renderIcon = () => { + const iconProps = { + className: clsx('univer-fill-primary-600', disable && className), + extend: { colorChannel1: colorKit.isValid ? color : '' }, + }; + + return ( + + ); + }; return !disable ? ( @@ -54,14 +60,9 @@ export const ColorPicker = (props: IColorPickerProps) => { hover:univer-bg-gray-100 `, className)} > - - {isNeedDropdownIcon && ( - - )} + {renderIcon()} ) - : ; + : renderIcon(); }; diff --git a/packages/sheets-conditional-formatting-ui/src/components/conditional-style-editor/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/conditional-style-editor/index.tsx index 4bb494ef53..f0e896d7f1 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/conditional-style-editor/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/conditional-style-editor/index.tsx @@ -17,6 +17,7 @@ import type { IHighlightCell } from '@univerjs/sheets-conditional-formatting'; import { BooleanNumber } from '@univerjs/core'; import { clsx } from '@univerjs/design'; +import { BoldSingle, FontColor, ItalicSingle, StrikethroughSingle, UnderlineSingle } from '@univerjs/icons'; import { removeUndefinedAttr } from '@univerjs/sheets-conditional-formatting'; import { ComponentManager, useDependency } from '@univerjs/ui'; import { useEffect, useState } from 'react'; @@ -35,52 +36,49 @@ const getBooleanFromNumber = (v: BooleanNumber) => v !== BooleanNumber.FALSE; export const ConditionalStyleEditor = (props: IConditionalStyleEditorProps) => { const { style, onChange, className } = props; const componentManager = useDependency(ComponentManager); - const [isBold, isBoldSet] = useState(() => { + const [isBold, setIsBold] = useState(() => { const defaultV = undefined; if (!style?.bl) { return defaultV; } return style.bl; }); - const [isItalic, isItalicSet] = useState(() => { + const [isItalic, setIsItalic] = useState(() => { const defaultV = undefined; if (!style?.it) { return defaultV; } return style.it; }); - const [isUnderline, isUnderlineSet] = useState(() => { + const [isUnderline, setIsUnderline] = useState(() => { const defaultV = undefined; if (!style?.ul) { return defaultV; } return style.ul.s; }); - const [isStrikethrough, isStrikethroughSet] = useState(() => { + const [isStrikethrough, setIsStrikethrough] = useState(() => { const defaultV = undefined; if (!style?.st) { return defaultV; } return style.st.s; }); - const [fontColor, fontColorSet] = useState(() => { + const [fontColor, setFontColor] = useState(() => { const defaultV = '#2f56ef'; if (!style?.cl?.rgb) { return defaultV; } return style.cl.rgb; }); - const [bgColor, bgColorSet] = useState(() => { + const [bgColor, setBgColor] = useState(() => { const defaultV = '#e8ecfc'; if (!style?.bg?.rgb) { return defaultV; } return style.bg.rgb; }); - const BoldSingleIcon = componentManager.get('BoldSingle'); - const ItalicSingleIcon = componentManager.get('ItalicSingle'); - const UnderlineSingleIcon = componentManager.get('UnderlineSingle'); - const StrikethroughSingle = componentManager.get('StrikethroughSingle'); + useEffect(() => { const resultStyle: IHighlightCell['style'] = { bl: isBold, @@ -105,48 +103,40 @@ export const ConditionalStyleEditor = (props: IConditionalStyleEditorProps) => { return (
- {BoldSingleIcon && ( -
isBoldSet(getAnotherBooleanNumber(isBold))} - > - -
- )} - {ItalicSingleIcon && ( -
isItalicSet(getAnotherBooleanNumber(isItalic))} - > - -
- )} - {UnderlineSingleIcon && ( -
isUnderlineSet(getAnotherBooleanNumber(isUnderline))} - > - -
- )} - {StrikethroughSingle && ( -
isStrikethroughSet(getAnotherBooleanNumber(isStrikethrough))} - > - -
- )} - - +
setIsBold(getAnotherBooleanNumber(isBold))} + > + +
+
setIsItalic(getAnotherBooleanNumber(isItalic))} + > + +
+
setIsUnderline(getAnotherBooleanNumber(isUnderline))} + > + +
+
setIsStrikethrough(getAnotherBooleanNumber(isStrikethrough))} + > + +
+ +
); }; diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/index.tsx index 2fb6aa95dd..cecb2a6bc4 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/index.tsx @@ -22,21 +22,21 @@ import { RuleList } from './rule-list'; interface IConditionFormattingPanelProps { rule?: IConditionFormattingRule }; export const ConditionFormattingPanel = (props: IConditionFormattingPanelProps) => { - const [currentEditRule, currentEditRuleSet] = useState(props.rule); - const [isShowRuleEditor, isShowRuleEditorSet] = useState(!!props.rule); + const [currentEditRule, setCurrentEditRule] = useState(props.rule); + const [isShowRuleEditor, setIsShowRuleEditor] = useState(!!props.rule); const createCfRule = () => { - isShowRuleEditorSet(true); + setIsShowRuleEditor(true); }; const handleCancel = () => { - isShowRuleEditorSet(false); - currentEditRuleSet(undefined); + setIsShowRuleEditor(false); + setCurrentEditRule(undefined); }; const handleRuleClick = (rule: IConditionFormattingRule) => { - currentEditRuleSet(rule); - isShowRuleEditorSet(true); + setCurrentEditRule(rule); + setIsShowRuleEditor(true); }; return ( diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx index b78da41a52..2508590060 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/DataBar.tsx @@ -33,8 +33,8 @@ const createOptionItem = (text: CFValueType, localeService: LocaleService) => ({ const InputText = (props: { disabled?: boolean; id: string; className: string; type: CFValueType; value: string | number; onChange: (v: string | number) => void }) => { const { onChange, className, value, type, id, disabled = false } = props; const univerInstanceService = useDependency(IUniverInstanceService); - const unitId = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getUnitId(); - const subUnitId = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getActiveSheet()?.getSheetId(); + const unitId = univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET)!.getUnitId(); + const subUnitId = univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_SHEET)!.getActiveSheet()?.getSheetId(); const formulaEditorRef = useRef(null); const [isFocusFormulaEditor, setIsFocusFormulaEditor] = useState(false); @@ -102,26 +102,31 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { const localeService = useDependency(LocaleService); const rule = props.rule?.type === CFRuleType.dataBar ? props.rule : undefined; - const [isGradient, isGradientSet] = useState(() => { + const [isGradient, setIsGradient] = useState(() => { const defaultV = '0'; if (!rule) { return defaultV; } return rule.config?.isGradient ? '1' : '0'; }); - const [positiveColor, positiveColorSet] = useState(() => { + const [positiveColor, setPositiveColor] = useState(() => { if (!rule) { return defaultDataBarPositiveColor; } return rule.config?.positiveColor || defaultDataBarPositiveColor; }); - const [nativeColor, nativeColorSet] = useState(() => { + const [nativeColor, setNativeColor] = useState(() => { if (!rule) { return defaultDataBarNativeColor; } return rule.config?.nativeColor || defaultDataBarNativeColor; }); - const commonOptions = [createOptionItem(CFValueType.num, localeService), createOptionItem(CFValueType.percent, localeService), createOptionItem(CFValueType.percentile, localeService), createOptionItem(CFValueType.formula, localeService)]; + const commonOptions = [ + createOptionItem(CFValueType.num, localeService), + createOptionItem(CFValueType.percent, localeService), + createOptionItem(CFValueType.percentile, localeService), + createOptionItem(CFValueType.formula, localeService), + ]; const minOptions = [createOptionItem(CFValueType.min, localeService), ...commonOptions]; const maxOptions = [createOptionItem(CFValueType.max, localeService), ...commonOptions]; const [minValueType, setMinValueType] = useState(() => { @@ -138,7 +143,7 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { } return rule.config?.max.type || defaultV; }); - const [minValue, minValueSet] = useState(() => { + const [minValue, setMinValue] = useState(() => { const defaultV = 0; if (!rule) { return defaultV; @@ -203,7 +208,7 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { return dispose as () => void; }, [isGradient, minValue, minValueType, maxValue, maxValueType, positiveColor, nativeColor, interceptorManager, isShowValue]); - const _handleChange = (option: { + const handleChange = (option: { minValueType: CFValueType; minValue: number | string; maxValueType: CFValueType; @@ -217,9 +222,9 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { }; const handlePositiveColorChange = (color: string) => { - positiveColorSet(color); + setPositiveColor(color); - _handleChange({ + handleChange({ isGradient, minValue, minValueType, @@ -231,8 +236,8 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { }); }; const handleNativeColorChange = (color: string) => { - nativeColorSet(color); - _handleChange({ + setNativeColor(color); + handleChange({ isGradient, minValue, minValueType, @@ -286,8 +291,8 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { { - isGradientSet(v as string); - _handleChange({ + setIsGradient(v as string); + handleChange({ isGradient: v as string, minValue, minValueType, @@ -311,7 +316,7 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { checked={!isShowValue} onChange={(v) => { setIsShowValue(!v); - _handleChange({ + handleChange({ isGradient: v as string, minValue, minValueType, @@ -375,8 +380,8 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { onChange={(v) => { setMinValueType(v as CFValueType); const value = createDefaultValueByValueType(v as CFValueType, 10); - minValueSet(value); - _handleChange({ + setMinValue(value); + handleChange({ isGradient, minValue: value, minValueType: v as CFValueType, @@ -396,8 +401,8 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { type={minValueType} value={minValue} onChange={(v) => { - minValueSet(v || 0); - _handleChange({ + setMinValue(v || 0); + handleChange({ isGradient, minValue: v || 0, minValueType, @@ -427,7 +432,7 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { setMaxValueType(v as CFValueType); const value = createDefaultValueByValueType(v as CFValueType, 90); setMaxValue(value); - _handleChange({ + handleChange({ isGradient, minValue, minValueType, @@ -447,7 +452,7 @@ export const DataBarStyleEditor = (props: IStyleEditorProps) => { value={maxValue} onChange={(v) => { setMaxValue(v || 0); - _handleChange({ + handleChange({ isGradient, minValue, minValueType, diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/HighlightCell.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/HighlightCell.tsx index 6866b339e6..08dd8a1bdc 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/HighlightCell.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/HighlightCell.tsx @@ -235,7 +235,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps(() => { + const [subType, setSubType] = useState(() => { const defaultV = CFSubRuleType.text; if (!rule) { return defaultV; @@ -262,7 +262,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps getOperatorOptions(subType, localeService), [subType]); - const [operator, operatorSet] = useState(() => { + const [operator, setOperator] = useState(() => { const defaultV = operatorOptions ? operatorOptions[0].value as IResult['operator'] : undefined; if (!rule) { return defaultV; @@ -270,7 +270,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps(() => { + const [value, setValue] = useState(() => { const defaultV = ''; if (!rule) { return defaultV; @@ -336,7 +336,7 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps { if (!typeOptions.some((item) => item.value === subType)) { - subTypeSet(typeOptions[0].value as CFSubRuleType.text); + setSubType(typeOptions[0].value as CFSubRuleType.text); } }, [typeOptions]); @@ -344,20 +344,20 @@ export const HighlightCellStyleEditor = (props: IStyleEditorProps { const _operator = v as typeof operator; - operatorSet(_operator); + setOperator(_operator); onChange(getResult({ operator: _operator })); }; const onInputChange = (value: number | string | [number, number]) => { - valueSet(value); + setValue(value); onChange(getResult({ value })); }; diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx index 7a91f04266..8e4703d150 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/IconSet.tsx @@ -50,11 +50,11 @@ const TextInput = (props: { id: number; type: CFValueType; value: number | strin const subUnitId = univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!.getActiveSheet()?.getSheetId(); const formulaEditorRef = useRef(null); - const [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(false); + const [isFocusFormulaEditor, setIsFocusFormulaEditor] = useState(false); useSidebarClick((e: MouseEvent) => { const isOutSide = formulaEditorRef.current?.isClickOutSide(e); - isOutSide && isFocusFormulaEditorSet(false); + isOutSide && setIsFocusFormulaEditor(false); }); return (
@@ -87,7 +87,7 @@ const TextInput = (props: { id: number; type: CFValueType; value: number | strin const formula = v || ''; onChange(formula); }} - onFocus={() => isFocusFormulaEditorSet(true)} + onFocus={() => setIsFocusFormulaEditor(true)} />
)} @@ -405,8 +405,8 @@ export const IconSet = (props: IStyleEditorProps) => { const { interceptorManager } = props; const rule = props.rule?.type === CFRuleType.iconSet ? props.rule : undefined; const localeService = useDependency(LocaleService); - const [errorMap, errorMapSet] = useState>({}); - const [currentIconType, currentIconTypeSet] = useState(() => { + const [errorMap, setErrorMap] = useState>({}); + const [currentIconType, setCurrentIconType] = useState(() => { const defaultV = Object.keys(iconMap)[0] as IIconType; if (rule && rule.config.length) { const type = rule.config[0].iconType; @@ -418,7 +418,7 @@ export const IconSet = (props: IStyleEditorProps) => { return defaultV; }); - const [configList, configListSet] = useState(() => { + const [configList, setConfigList] = useState(() => { if (rule && rule.config.length) { return Tools.deepClone(rule?.config); } @@ -438,7 +438,7 @@ export const IconSet = (props: IStyleEditorProps) => { }); }); - const [isShowValue, isShowValueSet] = useState(() => { + const [isShowValue, setIsShowValue] = useState(() => { if (!rule) { return true; } @@ -509,16 +509,16 @@ export const IconSet = (props: IStyleEditorProps) => { const oldV = get(configList, keys); if (oldV !== v) { set(configList, keys, v); - configListSet([...configList]); - errorMapSet(checkResult(configList)); + setConfigList([...configList]); + setErrorMap(checkResult(configList)); } }; const handleClickIconList = (iconType: IIconType) => { - currentIconTypeSet(iconType); + setCurrentIconType(iconType); const list = iconMap[iconType] || []; const config = new Array(list.length).fill('').map((_e, index, list) => createDefaultConfigItem(iconType, index, list)); - configListSet(config); - errorMapSet(checkResult(config)); + setConfigList(config); + setErrorMap(checkResult(config)); }; useEffect(() => { @@ -553,7 +553,7 @@ export const IconSet = (props: IStyleEditorProps) => { item.iconId = newIcon.iconId; item.iconType = newIcon.iconType; }); - configListSet([...configList]); + setConfigList([...configList]); }; const layoutService = useDependency(ILayoutService); const [iconGroupListEl, setIconGroupListEl] = useState(); @@ -598,7 +598,7 @@ export const IconSet = (props: IStyleEditorProps) => { {localeService.t('sheet.cf.iconSet.reverseIconOrder')}
- { isShowValueSet(!v); }} /> + { setIsShowValue(!v); }} /> {localeService.t('sheet.cf.iconSet.onlyShowIcon')}
diff --git a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx index 3bb0d6d124..8290b0b8a0 100644 --- a/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx +++ b/packages/sheets-conditional-formatting-ui/src/components/panel/rule-edit/index.tsx @@ -51,7 +51,7 @@ export const RuleEdit = (props: IRuleEditProps) => { const unitId = getUnitId(univerInstanceService); const subUnitId = getSubUnitId(univerInstanceService); - const [errorText, errorTextSet] = useState(undefined); + const [errorText, setErrorText] = useState(undefined); const rangeResult = useRef(props.rule?.ranges ?? []); const rangeString = useMemo(() => { @@ -78,7 +78,7 @@ export const RuleEdit = (props: IRuleEditProps) => { { label: localeService.t('sheet.cf.ruleType.iconSet'), value: '6' }, ]; - const [ruleType, ruleTypeSet] = useState(() => { + const [ruleType, setRuleType] = useState(() => { const type = props.rule?.rule.type; const defaultType = options[0].value; if (!type) { @@ -220,12 +220,12 @@ export const RuleEdit = (props: IRuleEditProps) => { const handleVerify = (v: boolean, rangeText: string) => { if (v) { if (rangeText.length < 1) { - errorTextSet(localeService.t('sheet.cf.errorMessage.rangeError')); + setErrorText(localeService.t('sheet.cf.errorMessage.rangeError')); } else { - errorTextSet(undefined); + setErrorText(undefined); } } else { - errorTextSet(localeService.t('sheet.cf.errorMessage.rangeError')); + setErrorText(localeService.t('sheet.cf.errorMessage.rangeError')); } }; return ( @@ -260,7 +260,7 @@ export const RuleEdit = (props: IRuleEditProps) => { className="univer-mt-4 univer-w-full" value={ruleType} options={options} - onChange={(e) => ruleTypeSet(e)} + onChange={(e) => setRuleType(e)} /> { const subUnitId = worksheet.getSheetId(); - const [currentRuleRanges, currentRuleRangesSet] = useState([]); + const [currentRuleRanges, setCurrentRuleRanges] = useState([]); const [selectValue, setSelectValue] = useState('2'); const [fetchRuleListId, setFetchRuleListId] = useState(0); const [draggingId, setDraggingId] = useState(-1); @@ -159,7 +159,7 @@ export const RuleList = (props: IRuleListProps) => { return []; }; - const [ruleList, ruleListSet] = useState(getRuleList); + const [ruleList, setRuleList] = useState(getRuleList); useHighlightRange(currentRuleRanges); @@ -173,7 +173,7 @@ export const RuleList = (props: IRuleListProps) => { }); useEffect(() => { - ruleListSet(getRuleList); + setRuleList(getRuleList); }, [selectValue, fetchRuleListId, unitId, subUnitId]); useEffect(() => { @@ -192,7 +192,7 @@ export const RuleList = (props: IRuleListProps) => { }); return () => disposable.dispose(); }).pipe(debounceTime(16)).subscribe(() => { - ruleListSet(getRuleList); + setRuleList(getRuleList); }); return () => { subscription.unsubscribe(); @@ -387,9 +387,9 @@ export const RuleList = (props: IRuleListProps) => { 'univer-bg-gray-100 dark:!univer-bg-gray-700': draggingId === index, })} onMouseMove={() => { - rule.ranges !== currentRuleRanges && currentRuleRangesSet(rule.ranges); + rule.ranges !== currentRuleRanges && setCurrentRuleRanges(rule.ranges); }} - onMouseLeave={() => currentRuleRangesSet([])} + onMouseLeave={() => setCurrentRuleRanges([])} onClick={() => { onClick(rule); }} @@ -438,7 +438,7 @@ export const RuleList = (props: IRuleListProps) => { onClick={(e) => { e.stopPropagation(); handleDelete(rule); - currentRuleRangesSet([]); + setCurrentRuleRanges([]); }} > diff --git a/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx b/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx index 02c561e6a0..6a88b758c4 100644 --- a/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx +++ b/packages/sheets-data-validation-ui/src/views/components/detail/index.tsx @@ -63,7 +63,7 @@ export function DataValidationDetail() { const [localRanges, setLocalRanges] = useState(() => localRule.ranges.map((i) => ({ unitId: '', sheetId: '', range: i }))); const debounceExecute = useMemo(() => debounceExecuteFactory(commandService), [commandService]); const [isRangeError, setIsRangeError] = useState(false); - const [isFocusRangeSelector, isFocusRangeSelectorSet] = useState(false); + const [isFocusRangeSelector, setIsFocusRangeSelector] = useState(false); const rangeSelectorInstance = useRef(null); const sheetSelectionService = useDependency(SheetsSelectionsService); @@ -264,7 +264,7 @@ export function DataValidationDetail() { } }} onFocusChange={(focusing, str) => { - isFocusRangeSelectorSet(focusing); + setIsFocusRangeSelector(focusing); if (!focusing && str && rangeSelectorInstance.current?.verify()) { handleUpdateRuleRanges(str); } diff --git a/packages/sheets-data-validation-ui/src/views/components/formula-input/CustomFormulaInput.tsx b/packages/sheets-data-validation-ui/src/views/components/formula-input/CustomFormulaInput.tsx index 3e90f05253..78512f3240 100644 --- a/packages/sheets-data-validation-ui/src/views/components/formula-input/CustomFormulaInput.tsx +++ b/packages/sheets-data-validation-ui/src/views/components/formula-input/CustomFormulaInput.tsx @@ -25,11 +25,11 @@ export function CustomFormulaInput(props: IFormulaInputProps) { const { unitId, subUnitId, value, onChange, showError, validResult } = props; const formula1Res = showError ? validResult?.formula1 : undefined; const formulaEditorRef = useRef(null); - const [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(false); + const [isFocusFormulaEditor, setIsFocusFormulaEditor] = useState(false); useSidebarClick((e: MouseEvent) => { const isOutSide = formulaEditorRef.current?.isClickOutSide(e); - isOutSide && isFocusFormulaEditorSet(false); + isOutSide && setIsFocusFormulaEditor(false); }); return ( @@ -60,7 +60,7 @@ export function CustomFormulaInput(props: IFormulaInputProps) { formula1: newFormula, }); }} - onFocus={() => isFocusFormulaEditorSet(true)} + onFocus={() => setIsFocusFormulaEditor(true)} /> ); diff --git a/packages/sheets-data-validation-ui/src/views/components/formula-input/ListFormulaInput.tsx b/packages/sheets-data-validation-ui/src/views/components/formula-input/ListFormulaInput.tsx index a69938db9b..8102c0838a 100644 --- a/packages/sheets-data-validation-ui/src/views/components/formula-input/ListFormulaInput.tsx +++ b/packages/sheets-data-validation-ui/src/views/components/formula-input/ListFormulaInput.tsx @@ -321,11 +321,11 @@ export function ListFormulaInput(props: IFormulaInputProps) { }); const formulaEditorRef = useRef(null); - const [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(false); + const [isFocusFormulaEditor, setIsFocusFormulaEditor] = useState(false); useSidebarClick((e: MouseEvent) => { const isOutSide = formulaEditorRef.current?.isClickOutSide(e); - isOutSide && isFocusFormulaEditorSet(false); + isOutSide && setIsFocusFormulaEditor(false); }); return ( @@ -366,7 +366,7 @@ export function ListFormulaInput(props: IFormulaInputProps) { subUnitId={subUnitId} isFocus={isFocusFormulaEditor} isSupportAcrossSheet - onFocus={() => isFocusFormulaEditorSet(true)} + onFocus={() => setIsFocusFormulaEditor(true)} onChange={(v = '') => { const str = (v ?? '').trim(); setFormulaStrCopy(str); diff --git a/packages/sheets-drawing-ui/package.json b/packages/sheets-drawing-ui/package.json index e0f7afa539..1a27855d4e 100644 --- a/packages/sheets-drawing-ui/package.json +++ b/packages/sheets-drawing-ui/package.json @@ -84,7 +84,6 @@ "@univerjs/drawing": "workspace:*", "@univerjs/drawing-ui": "workspace:*", "@univerjs/engine-render": "workspace:*", - "@univerjs/icons": "^0.3.24", "@univerjs/sheets": "workspace:*", "@univerjs/sheets-drawing": "workspace:*", "@univerjs/sheets-ui": "workspace:*", diff --git a/packages/sheets-drawing-ui/src/controllers/sheet-drawing.controller.ts b/packages/sheets-drawing-ui/src/controllers/sheet-drawing.controller.ts index cb9c8d2874..20d3279486 100644 --- a/packages/sheets-drawing-ui/src/controllers/sheet-drawing.controller.ts +++ b/packages/sheets-drawing-ui/src/controllers/sheet-drawing.controller.ts @@ -17,7 +17,6 @@ import { Disposable, ICommandService, Inject } from '@univerjs/core'; import { IDrawingManagerService } from '@univerjs/drawing'; -import { AddImageSingle } from '@univerjs/icons'; import { SheetsSelectionsService } from '@univerjs/sheets'; import { ComponentManager, IMenuManagerService, IShortcutService } from '@univerjs/ui'; import { DeleteDrawingsCommand } from '../commands/commands/delete-drawings.command'; @@ -33,7 +32,6 @@ import { UngroupSheetDrawingCommand } from '../commands/commands/ungroup-sheet-d import { ClearSheetDrawingTransformerOperation } from '../commands/operations/clear-drawing-transformer.operation'; import { EditSheetDrawingOperation } from '../commands/operations/edit-sheet-drawing.operation'; import { SidebarSheetDrawingOperation } from '../commands/operations/open-drawing-panel.operation'; -import { IMAGE_UPLOAD_ICON } from '../views/menu/image.menu'; import { COMPONENT_SHEET_DRAWING_PANEL } from '../views/sheet-image-panel/component-name'; import { SheetDrawingPanel } from '../views/sheet-image-panel/SheetDrawingPanel'; import { menuSchema } from './menu.schema'; @@ -55,7 +53,6 @@ export class SheetDrawingUIController extends Disposable { private _initCustomComponents(): void { const componentManager = this._componentManager; - this.disposeWithMe(componentManager.register(IMAGE_UPLOAD_ICON, AddImageSingle)); this.disposeWithMe(componentManager.register(COMPONENT_SHEET_DRAWING_PANEL, SheetDrawingPanel)); } diff --git a/packages/sheets-drawing-ui/src/views/menu/image.menu.ts b/packages/sheets-drawing-ui/src/views/menu/image.menu.ts index 7098a50c2f..edae13fc19 100644 --- a/packages/sheets-drawing-ui/src/views/menu/image.menu.ts +++ b/packages/sheets-drawing-ui/src/views/menu/image.menu.ts @@ -22,14 +22,13 @@ import { getCurrentRangeDisable$ } from '@univerjs/sheets-ui'; import { getMenuHiddenObservable, MenuItemType } from '@univerjs/ui'; import { InsertCellImageCommand, InsertFloatImageCommand } from '../../commands/commands/insert-image.command'; -export const IMAGE_UPLOAD_ICON = 'addition-and-subtraction-single'; export const SHEETS_IMAGE_MENU_ID = 'sheet.menu.image'; export function ImageMenuFactory(accessor: IAccessor): IMenuItem { return { id: SHEETS_IMAGE_MENU_ID, type: MenuItemType.SUBITEMS, - icon: IMAGE_UPLOAD_ICON, + icon: 'AddImageSingle', tooltip: 'sheetImage.title', hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET), disabled$: getCurrentRangeDisable$(accessor, { workbookTypes: [WorkbookEditablePermission], worksheetTypes: [WorksheetEditPermission], rangeTypes: [RangeProtectionPermissionEditPoint] }), diff --git a/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-describe.ts b/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-describe.ts index 7a166cd320..7c6dfb4102 100644 --- a/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-describe.ts +++ b/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-describe.ts @@ -27,17 +27,17 @@ export const useFormulaDescribe = (isNeed: boolean, formulaText: string, editor? const descriptionService = useDependency(IDescriptionService); const lexerTreeBuilder = useDependency(LexerTreeBuilder); - const [functionInfo, functionInfoSet] = useState(); - const [paramIndex, paramIndexSet] = useState(-1); - const [isShow, isShowSet] = useState(true); + const [functionInfo, setFunctionInfo] = useState(); + const [paramIndex, setParamIndex] = useState(-1); + const [isShow, setIsShow] = useState(true); const isShowRef = useStateRef(isShow); const formulaTextRef = useRef(formulaText); formulaTextRef.current = formulaText; const reset = () => { - functionInfoSet(undefined); - paramIndexSet(-1); - isShowSet(false); + setFunctionInfo(undefined); + setParamIndex(-1); + setIsShow(false); }; useEffect(() => { @@ -51,14 +51,14 @@ export const useFormulaDescribe = (isNeed: boolean, formulaText: string, editor? if (res) { const { functionName, paramIndex } = res; const info = descriptionService.getFunctionInfo(functionName); - functionInfoSet(info); - paramIndexSet(paramIndex); + setFunctionInfo(info); + setParamIndex(paramIndex); return; } } } - functionInfoSet(undefined); - paramIndexSet(-1); + setFunctionInfo(undefined); + setParamIndex(-1); }); const d2 = editor.selectionChange$.pipe( filter((e) => e.isEditing), @@ -66,7 +66,7 @@ export const useFormulaDescribe = (isNeed: boolean, formulaText: string, editor? map((e) => e.textRanges[0].startOffset), distinctUntilChanged() ).subscribe(() => { - isShowSet(true); + setIsShow(true); }); return () => { d.unsubscribe(); diff --git a/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-search.ts b/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-search.ts index 65ba93a364..a5c19bb091 100644 --- a/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-search.ts +++ b/packages/sheets-formula-ui/src/views/formula-editor/hooks/use-formula-search.ts @@ -29,14 +29,14 @@ import { useStateRef } from '../hooks/use-state-ref'; export const useFormulaSearch = (isNeed: boolean, nodes: INode[] = [], editor?: Editor) => { const descriptionService = useDependency(IDescriptionService); - const [searchList, searchListSet] = useState([]); - const [searchText, searchTextSet] = useState(''); + const [searchList, setSearchList] = useState([]); + const [searchText, setSearchText] = useState(''); const indexRef = useRef(-1); const stateRef = useStateRef({ nodes }); const reset = () => { - searchListSet([]); - searchTextSet(''); + setSearchList([]); + setSearchText(''); indexRef.current = -1; }; @@ -56,15 +56,15 @@ export const useFormulaSearch = (isNeed: boolean, nodes: INode[] = [], editor?: indexRef.current = currentNodeIndex; const token = currentNode.token; const list = descriptionService.getSearchListByNameFirstLetter(token); - searchListSet(list); - searchTextSet(token); + setSearchList(list); + setSearchText(token); return; } } } indexRef.current = -1; - searchTextSet(''); - searchListSet((pre) => { + setSearchText(''); + setSearchList((pre) => { if (!pre?.length) { return pre; } diff --git a/packages/sheets-formula-ui/src/views/formula-editor/index.tsx b/packages/sheets-formula-ui/src/views/formula-editor/index.tsx index efa9fa7a26..d6d370f045 100644 --- a/packages/sheets-formula-ui/src/views/formula-editor/index.tsx +++ b/packages/sheets-formula-ui/src/views/formula-editor/index.tsx @@ -120,7 +120,7 @@ export const FormulaEditor = forwardRef((props: IFormulaEditorProps, ref: Ref(null); const editorRef = useRef(undefined); const editor = editorRef.current; - const [isFocus, isFocusSet] = useState(_isFocus); + const [isFocus, setIsFocus] = useState(_isFocus); const formulaEditorContainerRef = useRef(null); const editorId = useMemo(() => propEditorId ?? createInternalEditorID(`${EMBEDDING_FORMULA_EDITOR}-${generateRandomId(4)}`), []); const isError = useMemo(() => errorText !== undefined, [errorText]); @@ -239,14 +239,14 @@ export const FormulaEditor = forwardRef((props: IFormulaEditorProps, ref: Ref { if (_isFocus) { - isFocusSet(_isFocus); + setIsFocus(_isFocus); focus(); } else { if (resetSelectionOnBlur) { editor?.blur(); resetSelection(); } - isFocusSet(_isFocus); + setIsFocus(_isFocus); } }, [_isFocus, editor, focus, resetSelection, resetSelectionOnBlur]); @@ -285,7 +285,7 @@ export const FormulaEditor = forwardRef((props: IFormulaEditorProps, ref: Ref { + useSwitchSheet(isFocus && Boolean(isSelecting && docFocusing), unitId, isSupportAcrossSheet, setIsFocus, onBlur, () => { highlight(formulaTextRef.current, false, true); }); @@ -307,7 +307,7 @@ export const FormulaEditor = forwardRef((props: IFormulaEditorProps, ref: Ref { - isFocusSet(true); + setIsFocus(true); onFocus(); focus(); }; diff --git a/packages/sheets-formula-ui/src/views/formula-editor/search-function/SearchFunction.tsx b/packages/sheets-formula-ui/src/views/formula-editor/search-function/SearchFunction.tsx index 5486bfe50c..4f938b8da8 100644 --- a/packages/sheets-formula-ui/src/views/formula-editor/search-function/SearchFunction.tsx +++ b/packages/sheets-formula-ui/src/views/formula-editor/search-function/SearchFunction.tsx @@ -46,7 +46,7 @@ function SearchFunctionFactory(props: ISearchFunctionProps, ref: any) { const { searchList, searchText, handlerFormulaReplace, reset: resetFormulaSearch } = useFormulaSearch(isFocus, sequenceNodes, editor); const visible = useMemo(() => !!searchList.length, [searchList]); const ulRef = useRef(undefined); - const [active, activeSet] = useState(0); + const [active, setActive] = useState(0); const isEnableMouseEnterOrOut = useRef(false); const [position$] = useEditorPosition(editorId, visible, [searchText, searchList]); const stateRef = useStateRef({ searchList, active }); @@ -63,14 +63,14 @@ function SearchFunctionFactory(props: ISearchFunctionProps, ref: any) { if (!isEnableMouseEnterOrOut.current) { return; } - activeSet(index); + setActive(index); } function handleLiMouseLeave() { if (!isEnableMouseEnterOrOut.current) { return; } - activeSet(-1); + setActive(-1); } useEffect(() => { @@ -85,7 +85,7 @@ function SearchFunctionFactory(props: ISearchFunctionProps, ref: any) { switch (keycode) { case KeyCode.ARROW_UP: { - activeSet((pre) => { + setActive((pre) => { const res = Math.max(0, pre - 1); scrollToVisible(res); return res; @@ -94,7 +94,7 @@ function SearchFunctionFactory(props: ISearchFunctionProps, ref: any) { break; } case KeyCode.ARROW_DOWN: { - activeSet((pre) => { + setActive((pre) => { const res = Math.min(searchList.length - 1, pre + 1); scrollToVisible(res); return res; diff --git a/packages/sheets-numfmt-ui/src/views/components/Accounting.tsx b/packages/sheets-numfmt-ui/src/views/components/Accounting.tsx index 6426bf89b7..333444063c 100644 --- a/packages/sheets-numfmt-ui/src/views/components/Accounting.tsx +++ b/packages/sheets-numfmt-ui/src/views/components/Accounting.tsx @@ -33,7 +33,7 @@ export const AccountingPanel: FC = (props) => { const [decimal, setDecimal] = useState(() => getDecimalFromPattern(defaultPattern || '', 2)); const userHabitCurrency = useContext(UserHabitCurrencyContext); - const [suffix, suffixSet] = useState(() => getCurrencyType(defaultPattern) || userHabitCurrency[0]); + const [suffix, setSuffix] = useState(() => getCurrencyType(defaultPattern) || userHabitCurrency[0]); const options = useMemo(() => userHabitCurrency.map((key) => ({ label: key, value: key })), []); const localeService = useDependency(LocaleService); @@ -42,7 +42,7 @@ export const AccountingPanel: FC = (props) => { action.current = () => setPatternDecimal(`_("${suffix}"* #,##0${decimal > 0 ? '.0' : ''}_)`, decimal); const handleSelect = (v: string) => { - suffixSet(v); + setSuffix(v); onChange(setPatternDecimal(`_("${v}"* #,##0${decimal > 0 ? '.0' : ''}_)`, decimal)); }; diff --git a/packages/sheets-numfmt-ui/src/views/components/Currency.tsx b/packages/sheets-numfmt-ui/src/views/components/Currency.tsx index ab0b7f7eb9..f510620d20 100644 --- a/packages/sheets-numfmt-ui/src/views/components/Currency.tsx +++ b/packages/sheets-numfmt-ui/src/views/components/Currency.tsx @@ -32,9 +32,9 @@ export const CurrencyPanel: FC = (props) => { const localeService = useDependency(LocaleService); const t = localeService.t; const userHabitCurrency = useContext(UserHabitCurrencyContext); - const [suffix, suffixSet] = useState(() => getCurrencyType(props.defaultPattern) || userHabitCurrency[0]); - const [decimal, decimalSet] = useState(() => getDecimalFromPattern(props.defaultPattern || '', 2)); - const [pattern, patternSet] = useState(() => { + const [suffix, setSuffix] = useState(() => getCurrencyType(props.defaultPattern) || userHabitCurrency[0]); + const [decimal, setDecimal] = useState(() => getDecimalFromPattern(props.defaultPattern || '', 2)); + const [pattern, setPattern] = useState(() => { const negativeOptions = getCurrencyFormatOptions(suffix); const pattern = negativeOptions.find((item) => isPatternEqualWithoutDecimal(item.value, props.defaultPattern))?.value || @@ -51,9 +51,9 @@ export const CurrencyPanel: FC = (props) => { if (value === undefined) { return; } - suffixSet(value); + setSuffix(value); const pattern = getCurrencyFormatOptions(value)[0].value; - patternSet(pattern); + setPattern(pattern); props.onChange(setPatternDecimal(pattern, decimal)); }; @@ -61,12 +61,12 @@ export const CurrencyPanel: FC = (props) => { if (value === undefined) { return; } - patternSet(value); + setPattern(value); props.onChange(setPatternDecimal(value, decimal)); }; const onDecimalChange = (v: number | null) => { - decimalSet(v || 0); + setDecimal(v || 0); props.onChange(setPatternDecimal(pattern, v || 0)); }; diff --git a/packages/sheets-numfmt-ui/src/views/components/CustomFormat.tsx b/packages/sheets-numfmt-ui/src/views/components/CustomFormat.tsx index 3496d0813e..338c2e71e1 100644 --- a/packages/sheets-numfmt-ui/src/views/components/CustomFormat.tsx +++ b/packages/sheets-numfmt-ui/src/views/components/CustomFormat.tsx @@ -32,7 +32,7 @@ export function CustomFormat(props: IBusinessComponentProps) { const localStorageService = useDependency(ILocalStorageService); const localeService = useDependency(LocaleService); - const [pattern, patternSet] = useState(defaultPattern); + const [pattern, setPattern] = useState(defaultPattern); action.current = () => { userHabitController.markHabit(key, pattern); localStorageService.getItem(historyPatternKey).then((list = []) => { @@ -41,7 +41,7 @@ export function CustomFormat(props: IBusinessComponentProps) { }); return pattern; }; - const [options, optionsSet] = useState<(string | number)[]>([]); + const [options, setOptions] = useState<(string | number)[]>([]); useEffect(() => { localStorageService.getItem(historyPatternKey).then((historyList) => { @@ -53,14 +53,14 @@ export function CustomFormat(props: IBusinessComponentProps) { list.push(...(historyList || [])); userHabitController.addHabit(key, []).finally(() => { userHabitController.getHabit(key, list).then((list) => { - optionsSet([...new Set(list)]); + setOptions([...new Set(list)]); }); }); }); }, []); const handleClick = (p: string) => { - patternSet(p); + setPattern(p); onChange(p); }; @@ -75,7 +75,7 @@ export function CustomFormat(props: IBusinessComponentProps) { placeholder={localeService.t('sheet.numfmt.customFormat')} onBlur={handleBlur} value={pattern} - onChange={patternSet} + onChange={setPattern} className="univer-mt-2 univer-w-full" />
{ ); }; -export const DatePanel: FC = (props) => { +export function DatePanel(props: IBusinessComponentProps) { + const { onChange, defaultPattern } = props; + const options = useMemo(getDateFormatOptions, []); const localeService = useDependency(LocaleService); - const t = localeService.t; - const [suffix, suffixSet] = useState(() => { - if (props.defaultPattern) { - const item = options.find((item) => item.value === props.defaultPattern); + + const [suffix, setSuffix] = useState(() => { + if (defaultPattern) { + const item = options.find((item) => item.value === defaultPattern); if (item) { return item.value; } @@ -45,21 +46,22 @@ export const DatePanel: FC = (props) => { return options[0].value; }); + // FIXME: WTF?? props.action.current = () => suffix; - const onChange = (v: any) => { + const handleChange = (v: any) => { if (v === undefined) { return; } - suffixSet(v); - props.onChange(v); + setSuffix(v); + onChange(v); }; return (
-
{t('sheet.numfmt.dateType')}
+
{localeService.t('sheet.numfmt.dateType')}
- +
= (props) => { dark:!univer-text-gray-200 `} > - {t('sheet.numfmt.dateDes')} + {localeService.t('sheet.numfmt.dateDes')}
); diff --git a/packages/sheets-numfmt-ui/src/views/components/ThousandthPercentile.tsx b/packages/sheets-numfmt-ui/src/views/components/ThousandthPercentile.tsx index 8bd93b9f8f..971ed05782 100644 --- a/packages/sheets-numfmt-ui/src/views/components/ThousandthPercentile.tsx +++ b/packages/sheets-numfmt-ui/src/views/components/ThousandthPercentile.tsx @@ -29,9 +29,9 @@ export const ThousandthPercentilePanel: FC = (props) => const localeService = useDependency(LocaleService); const options = useMemo(getNumberFormatOptions, []); - const [decimal, decimalSet] = useState(() => getDecimalFromPattern(props.defaultPattern || '', 0)); + const [decimal, setDecimal] = useState(() => getDecimalFromPattern(props.defaultPattern || '', 0)); - const [suffix, suffixSet] = useState(() => { + const [suffix, setSuffix] = useState(() => { const item = options.find((item) => isPatternEqualWithoutDecimal(item.value, props.defaultPattern || '')); return item?.value || options[0].value; }); @@ -41,15 +41,15 @@ export const ThousandthPercentilePanel: FC = (props) => const isInputDisable = useMemo(() => !isPatternHasDecimal(suffix), [suffix]); const handleDecimalChange = (decimal: number | null) => { - decimalSet(decimal || 0); + setDecimal(decimal || 0); props.onChange(setPatternDecimal(suffix, Number(decimal || 0))); }; const handleClick = (v: any) => { if (v === undefined) { return; } - decimalSet(getDecimalFromPattern(v, 0)); - suffixSet(v); + setDecimal(getDecimalFromPattern(v, 0)); + setSuffix(v); props.onChange(v); }; diff --git a/packages/sheets-numfmt-ui/src/views/hooks/use-currency-options.ts b/packages/sheets-numfmt-ui/src/views/hooks/use-currency-options.ts index 4cb8a6af7e..834f097e4c 100644 --- a/packages/sheets-numfmt-ui/src/views/hooks/use-currency-options.ts +++ b/packages/sheets-numfmt-ui/src/views/hooks/use-currency-options.ts @@ -22,12 +22,12 @@ import { UserHabitController } from '../../controllers/user-habit.controller'; const key = 'numfmtCurrency'; export const useCurrencyOptions = (onOptionChange?: (options: string[]) => void) => { const userHabitController = useDependency(UserHabitController); - const [options, optionsSet] = useState(currencySymbols); + const [options, setOptions] = useState(currencySymbols); useEffect(() => { userHabitController.addHabit('numfmtCurrency', []).then(() => { userHabitController.getHabit(key, [...currencySymbols]).then((list) => { - optionsSet(list as string[]); + setOptions(list as string[]); onOptionChange && onOptionChange(list as string[]); }); }); @@ -36,5 +36,6 @@ export const useCurrencyOptions = (onOptionChange?: (options: string[]) => void) const mark = (v: string) => { userHabitController.markHabit(key, v); }; + return { userHabitCurrency: options, mark }; }; diff --git a/packages/sheets-ui/src/views/defined-name/DefinedNameInput.tsx b/packages/sheets-ui/src/views/defined-name/DefinedNameInput.tsx index 51ee0fc044..696953e32e 100644 --- a/packages/sheets-ui/src/views/defined-name/DefinedNameInput.tsx +++ b/packages/sheets-ui/src/views/defined-name/DefinedNameInput.tsx @@ -197,11 +197,11 @@ export const DefinedNameInput = (props: IDefinedNameInputProps) => { }; const formulaEditorRef = useRef(null); - const [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(false); + const [isFocusFormulaEditor, setIsFocusFormulaEditor] = useState(false); useSidebarClick((e: MouseEvent) => { const isOutSide = formulaEditorRef.current?.isClickOutSide(e); - isOutSide && isFocusFormulaEditorSet(false); + isOutSide && setIsFocusFormulaEditor(false); }); return ( @@ -262,7 +262,7 @@ export const DefinedNameInput = (props: IDefinedNameInputProps) => { onVerify={(res: boolean) => { setValidFormulaOrRange(res); }} - onFocus={() => isFocusFormulaEditorSet(true)} + onFocus={() => setIsFocusFormulaEditor(true)} />
diff --git a/packages/sheets-ui/src/views/permission/panel-list/index.tsx b/packages/sheets-ui/src/views/permission/panel-list/index.tsx index e2257cd5cf..a2b89f74b7 100644 --- a/packages/sheets-ui/src/views/permission/panel-list/index.tsx +++ b/packages/sheets-ui/src/views/permission/panel-list/index.tsx @@ -46,7 +46,7 @@ export const SheetPermissionPanelList = () => { const permissionService = useDependency(IPermissionService); const usesManagerService = useDependency(UserManagerService); const currentUser = usesManagerService.getCurrentUser(); - const [currentRuleRanges, currentRuleRangesSet] = useState([]); + const [currentRuleRanges, setCurrentRuleRanges] = useState([]); const sheetPermissionUserManagerService = useDependency(SheetPermissionUserManagerService); const _sheetRuleRefresh = useObservable(worksheetProtectionModel.ruleRefresh$, ''); @@ -151,7 +151,7 @@ export const SheetPermissionPanelList = () => { if (res) { setForceUpdateFlag(!forceUpdateFlag); if ((rule as IRangeProtectionRule).ranges === currentRuleRanges) { - currentRuleRangesSet([]); + setCurrentRuleRanges([]); } } }; @@ -278,13 +278,13 @@ export const SheetPermissionPanelList = () => { } if (unitType === UnitObject.SelectRange) { const ranges = (rule as IRangeProtectionRule).ranges || []; - ranges !== currentRuleRanges && currentRuleRangesSet(ranges); + ranges !== currentRuleRanges && setCurrentRuleRanges(ranges); } else if (unitType === UnitObject.Worksheet) { const ranges = [{ startRow: 0, endRow: activeSheet.getRowCount() - 1, startColumn: 0, endColumn: activeSheet.getColumnCount() - 1 }]; - ranges !== currentRuleRanges && currentRuleRangesSet(ranges); + ranges !== currentRuleRanges && setCurrentRuleRanges(ranges); } }} - onMouseLeave={() => currentRuleRangesSet([])} + onMouseLeave={() => setCurrentRuleRanges([])} >
diff --git a/packages/slides-ui/src/controllers/image.menu.ts b/packages/slides-ui/src/controllers/image.menu.ts index 55f55f022e..a198589fef 100644 --- a/packages/slides-ui/src/controllers/image.menu.ts +++ b/packages/slides-ui/src/controllers/image.menu.ts @@ -20,14 +20,13 @@ import { UniverInstanceType } from '@univerjs/core'; import { getMenuHiddenObservable, MenuItemType } from '@univerjs/ui'; import { InsertSlideFloatImageCommand } from '../commands/operations/insert-image.operation'; -export const IMAGE_UPLOAD_ICON = 'addition-and-subtraction-single'; export const SLIDES_IMAGE_MENU_ID = 'slide.menu.image'; export function SlideImageMenuFactory(accessor: IAccessor): IMenuItem { return { id: SLIDES_IMAGE_MENU_ID, type: MenuItemType.SUBITEMS, - icon: IMAGE_UPLOAD_ICON, + icon: 'AddImageSingle', tooltip: 'slide.image.insert.title', hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SLIDE), }; diff --git a/packages/slides-ui/src/controllers/slide-ui.controller.ts b/packages/slides-ui/src/controllers/slide-ui.controller.ts index feaff6d145..00b40cf9ed 100644 --- a/packages/slides-ui/src/controllers/slide-ui.controller.ts +++ b/packages/slides-ui/src/controllers/slide-ui.controller.ts @@ -15,7 +15,7 @@ */ import { Disposable, ICommandService, Inject, Injector } from '@univerjs/core'; -import { AddImageSingle, GraphSingle, TextSingle } from '@univerjs/icons'; +import { GraphSingle, TextSingle } from '@univerjs/icons'; import { BuiltInUIPart, ComponentManager, connectInjector, IMenuManagerService, IShortcutService, IUIPartsService } from '@univerjs/ui'; import { ActivateSlidePageOperation } from '../commands/operations/activate.operation'; import { AppendSlideOperation } from '../commands/operations/append-slide.operation'; @@ -31,7 +31,6 @@ import { SlideImagePopupMenu } from '../components/image-popup-menu/ImagePopupMe import Sidebar, { COMPONENT_SLIDE_SIDEBAR } from '../components/sidebar/Sidebar'; import { SlideSideBar } from '../components/slide-bar/SlideBar'; import { SlideEditorContainer } from '../views/editor-container'; -import { IMAGE_UPLOAD_ICON } from './image.menu'; import { menuSchema } from './menu.schema'; import { GRAPH_SINGLE_ICON } from './shape.menu'; import { EditorDeleteLeftShortcut, generateArrowSelectionShortCutItem } from './shortcuts/editor.shortcuts'; @@ -64,7 +63,6 @@ export class SlidesUIController extends Disposable { private _initCustomComponents(): void { const componentManager = this._componentManager; - this.disposeWithMe(componentManager.register(IMAGE_UPLOAD_ICON, AddImageSingle)); this.disposeWithMe(componentManager.register(TEXT_ICON_ID, TextSingle)); this.disposeWithMe(componentManager.register(GRAPH_SINGLE_ICON, GraphSingle)); this.disposeWithMe(componentManager.register(COMPONENT_SLIDE_IMAGE_POPUP_MENU, SlideImagePopupMenu)); diff --git a/packages/ui/src/common/component-manager.ts b/packages/ui/src/common/component-manager.ts index 7299d89ef0..7769e51c63 100644 --- a/packages/ui/src/common/component-manager.ts +++ b/packages/ui/src/common/component-manager.ts @@ -21,6 +21,7 @@ import { toDisposable } from '@univerjs/core'; import { AddDigitsSingle, + AddImageSingle, AdjustHeight, AdjustWidth, AlignBottomSingle, @@ -154,6 +155,7 @@ export class ComponentManager { // eslint-disable-next-line max-lines-per-function constructor() { const iconList: Record> = { + AddImageSingle, AlignBottomSingle, AlignTopSingle, AllBorderSingle, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99828becb4..9d4faf297d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 4.13.2 - version: 4.13.2(@eslint-react/eslint-plugin@1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.20(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(happy-dom@17.4.7)(jiti@2.4.2)(jsdom@26.1.0)(sass@1.87.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) + version: 4.13.2(@eslint-react/eslint-plugin@1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.20(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(happy-dom@17.4.7)(jiti@2.4.2)(jsdom@26.1.0)(sass@1.87.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0)) '@commitlint/cli': specifier: ^19.8.1 version: 19.8.1(@types/node@22.15.21)(typescript@5.8.3) @@ -24,8 +24,8 @@ importers: specifier: ^19.8.1 version: 19.8.1 '@eslint-react/eslint-plugin': - specifier: ^1.49.0 - version: 1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) + specifier: ^1.50.0 + version: 1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) '@playwright/test': specifier: ^1.52.0 version: 1.52.0 @@ -1121,9 +1121,6 @@ importers: nanoid: specifier: 5.1.5 version: 5.1.5 - numeral: - specifier: ^2.0.6 - version: 2.0.6 numfmt: specifier: ^2.5.2 version: 2.5.2 @@ -1140,9 +1137,6 @@ importers: '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 - '@types/numeral': - specifier: ^2.0.5 - version: 2.0.5 '@types/rbush': specifier: ^4.0.0 version: 4.0.0 @@ -1369,9 +1363,6 @@ importers: '@univerjs/engine-render': specifier: workspace:* version: link:../engine-render - '@univerjs/icons': - specifier: ^0.3.24 - version: 0.3.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@univerjs/ui': specifier: workspace:* version: link:../ui @@ -2294,9 +2285,6 @@ importers: '@univerjs/engine-render': specifier: workspace:* version: link:../engine-render - '@univerjs/icons': - specifier: ^0.3.24 - version: 0.3.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@univerjs/sheets': specifier: workspace:* version: link:../sheets @@ -4271,20 +4259,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.49.0': - resolution: {integrity: sha512-kKYKd3hVjztMMLNAX41GRbi+luSIVYSYReXtifiPKjYNu/CkZ14x5o9CCN0iAeuSinpSmaUq4qXDD6nihMp1Wg==} + '@eslint-react/ast@1.50.0': + resolution: {integrity: sha512-WGAZvyZweQzyHBZ9DjHD4WPTwM1POuyEaUyFyAV0SF82zIM/UE6CbWk4IkDYs3km/48SGqPYlzRQO1LskBhl/Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/core@1.49.0': - resolution: {integrity: sha512-SS2V3reZmiTSgJjyNhIotZDcpcXeQBr/HWAup/Q3a5rtJDydKO2grvdSpP92NbaGKaIsakRMW4XupUmGVZhnYA==} + '@eslint-react/core@1.50.0': + resolution: {integrity: sha512-2hwkvmW5xZrqe8Em+gCd0ipzNOuViwj2/5tiFSK6xyvC0WPPszlkMTvjUxtLeCnjcaIUqGSurQZ3jIP0bJeYAA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eff@1.49.0': - resolution: {integrity: sha512-u4TNqG/smBx5HefDJDUkpdDJ2Wg0rXJFFi61UHPREp0IDPKQOqCMQ1fH1RbZp2w95TRiar94/mXwweeyqAVekQ==} + '@eslint-react/eff@1.50.0': + resolution: {integrity: sha512-SGLWvBeJCJBXDAJXeTEyGfKjK6KcfHQtYfCoaU0TqFyOdpwArf/AJtOedtfle2OuLHx7xStlx1SESk0532mU+w==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.49.0': - resolution: {integrity: sha512-KMMSRROH4OQla+pOQjXC3IYTgOWBIf46WaZDwX0hGgGP8qzXAjJcWiJdButhIQ8PsgKoFKnr13uStIput8wwIQ==} + '@eslint-react/eslint-plugin@1.50.0': + resolution: {integrity: sha512-EkyWjzo1k86IHDfBwhtnE9LhpgedoqkiDj+YT7uzIJm/pJsZ5JF3njhRbU7nvtDuZ4x89pml1O4rREZIpDXZ5g==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4293,16 +4281,16 @@ packages: typescript: optional: true - '@eslint-react/kit@1.49.0': - resolution: {integrity: sha512-bLyVQaFaXG34ShcStuMRX64GUOkB7qUvhXsl5+Z56LE+PAM60pTWIxtPJ4PdogO9iEOpNU7v3FDnuCLVKTAzKg==} + '@eslint-react/kit@1.50.0': + resolution: {integrity: sha512-DKj8qbWvLjK1o8PKjPkaWr3IO4meahQ3zZ82TQQ5JTMgUqWZnABAvTPKxv7Fyb8gGUhYLkhZa2xbUA5X8hXmxQ==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/shared@1.49.0': - resolution: {integrity: sha512-e+qB/bcQTBnRnYXBEAJkKBxHcsiIM+2KGHBJAmc9OFwaEtOOGl+1ShhVox6r9YIIGI7ak+ylnLYabkQp15K/tw==} + '@eslint-react/shared@1.50.0': + resolution: {integrity: sha512-Lt26m2W/iYaw2Y6/pTA/uA5QB7eZzWWilSJ/xLW73xu92nxUaWzB4fVuUTIpsDDeN6q5ttMvVRf8LbIkIFWUFg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} - '@eslint-react/var@1.49.0': - resolution: {integrity: sha512-CHx6PZAptM3ghSyr0yCxSbR3Fl+EvCk9ctIqj8lQYbXnSkHyIfwclFJb884pc+pss3glmCsOrWNQtR3dxPVVrQ==} + '@eslint-react/var@1.50.0': + resolution: {integrity: sha512-C/hTee8/JQIQ+j5Aj7P5mvUFltfYPwZfXuqSUnZU6qk1n9aX3TIHh9NfGb8UsSDeRWgV0ZwCybF9ronp+krilg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} '@eslint/compat@1.2.9': @@ -5640,9 +5628,6 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/numeral@2.0.5': - resolution: {integrity: sha512-kH8I7OSSwQu9DS9JYdFWbuvhVzvFRoCPCkGxNwoGgaPeDfEPJlcxNvEOypZhQ3XXHsGbfIuYcxcJxKUfJHnRfw==} - '@types/opentype.js@1.3.8': resolution: {integrity: sha512-H6qeTp03jrknklSn4bpT1/9+1xCAEIU2CnjcWPkicJy8A1SKuthanbvoHYMiv79/2W3Xn1XE4gfSJFzt2U3JSw==} @@ -5711,21 +5696,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.32.0': - resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.32.1': resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.32.0': - resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.32.1': resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5741,25 +5715,12 @@ packages: resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.32.0': - resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.32.1': resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.0': - resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.1': resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5767,10 +5728,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.32.0': - resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.32.1': resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6077,12 +6034,6 @@ packages: '@zeit/schemas@2.36.0': resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} - '@zod/core@0.11.6': - resolution: {integrity: sha512-03Bv82fFSfjDAvMfdHHdGSS6SOJs0iCcJlWJv1kJHRtoTT02hZpyip/2Lk6oo4l4FtjuwTrsEQTwg/LD8I7dJA==} - - '@zod/mini@4.0.0-beta.20250505T195954': - resolution: {integrity: sha512-ioybPtU4w4TqwHvJv0gkAiYNaBkZ/BaGHBpK7viCIRSE8BiiZucVZ8vS0YE04Qy1R120nAnFy1d+tD9ByMO0yw==} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -7548,8 +7499,8 @@ packages: peerDependencies: eslint: ^9.0.0 - eslint-plugin-react-debug@1.49.0: - resolution: {integrity: sha512-d7/5OnbBFPVQG9jVjM1Bs5p24M+xCri0Dv1ExeWxJZO1Gl9xKaqDO4tv6+cL9Kg2+yy6QaD/xD6j6IHjIv2Bmw==} + eslint-plugin-react-debug@1.50.0: + resolution: {integrity: sha512-lCHKl1+ydvNNnJ+Cm0Sezog9dYh8Se9fFTVA8IUAjThfElC7FyqtF7YiehDDPnY+4ncX0Lytk8bPfRfGtoIDNA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7558,8 +7509,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.49.0: - resolution: {integrity: sha512-gz+rXbU9evjneshMYclUXHCzFSdt4QHRaLZYJXrdzTBTnROM1lrjvmT72Pt8KYQpiRNIcz1pemyJQmdJ2OQ+Ig==} + eslint-plugin-react-dom@1.50.0: + resolution: {integrity: sha512-ksMoCuD2vUTSy6YN2zhgR7hSbbRr0TUPNoxe44A/3Dlz6Ww500OwamBb2c13nqZi6Mk0fE4T2gbMJEF5aZzFkw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7568,8 +7519,8 @@ packages: typescript: optional: true - eslint-plugin-react-hooks-extra@1.49.0: - resolution: {integrity: sha512-euvLPhRaYxZIuj1muOB+SKrepcuM9NiPABAyMmGdwSOPdoZX/SphXxzzJLkAWCN1m3QwWXpSFH/J9Z+fQ5Av3w==} + eslint-plugin-react-hooks-extra@1.50.0: + resolution: {integrity: sha512-owJUWaEeDZvceQkmof7CKFBBA81EjcUOVADcb5aZWwneM2Ui3BUlTHulmxcoSCJDH8b2u7VOkUjiQ/nAZcp55Q==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7584,8 +7535,8 @@ packages: peerDependencies: 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-naming-convention@1.49.0: - resolution: {integrity: sha512-TfaLDPdNsdlQy+plRXO6yzae38ZpT+pHQijSxKLYSJvegfe5VYJTltsKPkwa8+WSUnZAS9U4NXwYdi06uP5aiw==} + eslint-plugin-react-naming-convention@1.50.0: + resolution: {integrity: sha512-icV9kENTe15osNJOr09LlKZ2Xj0q43Xm77ofJCzYjWa8JpfI8HI2DNdG3DE4fNkftMIgCxMJIsSs7ch14f1STA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7599,8 +7550,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-web-api@1.49.0: - resolution: {integrity: sha512-Tba3qAKXjwM58jE9gocwgUqcuy+3gsh75HtbBjf2iG9vHoRiLuve9r1zGuI1SSlF+J8NdIfZf9b+1rBDLn+Spw==} + eslint-plugin-react-web-api@1.50.0: + resolution: {integrity: sha512-2I5rmaDdhgtLcOFZ81/0MLJlTdvVQTVL8b+jfUWR4tLfk6BQKHZlx5pBcunYvuGjkZRYZ2viUoue/CKm+92zaA==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7609,8 +7560,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.49.0: - resolution: {integrity: sha512-yRh5nN8Z1Xoq26dt40Jnbqg8Z3N/svD4v7bT7sAWGslhCpxAGJEnOpj6V0L0xmw4ztz7ZonHt/4ks7mEOpagmQ==} + eslint-plugin-react-x@1.50.0: + resolution: {integrity: sha512-Izej25IW8wk2wxB0J3orZLf8x+9vyvNICilDu+MOU7LYPPZQifXTeEweOUUfSwXB0byUSElilU+zFG2EKcCJFg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9162,9 +9113,6 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - numeral@2.0.6: - resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==} - numfmt@2.5.2: resolution: {integrity: sha512-VXrB2bpU9Xa0oCHq8IsqE2CcUx5OLupLC3oryFT4DB9e/xe+OnUzBndhXfNHUzxFE4DYI3Sx4OtzS1Sdaf7tEw==} @@ -10735,8 +10683,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-pattern@5.7.0: - resolution: {integrity: sha512-0/FvIG4g3kNkYgbNwBBW5pZBkfpeYQnH+2AA3xmjkCAit/DSDPKmgwC3fKof4oYUq6gupClVOJlFl+939VRBMg==} + ts-pattern@5.7.1: + resolution: {integrity: sha512-EGs8PguQqAAUIcQfK4E9xdXxB6s2GK4sJfT/vcc9V1ELIvC4LH/zXu2t/5fajtv6oiRCxdv7BgtVK3vWgROxag==} tsconfig-paths-webpack-plugin@4.2.0: resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} @@ -11295,6 +11243,9 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + zod@3.25.28: + resolution: {integrity: sha512-/nt/67WYKnr5by3YS7LroZJbtcCBurDKKPBPWWzaxvVCGuG/NOsiKkrjoOhI8mJ+SQUXEbUzeB3S+6XDUEEj7Q==} + zustand@4.5.6: resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==} engines: {node: '>=12.7.0'} @@ -11324,7 +11275,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@4.13.2(@eslint-react/eslint-plugin@1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.20(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(happy-dom@17.4.7)(jiti@2.4.2)(jsdom@26.1.0)(sass@1.87.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': + '@antfu/eslint-config@4.13.2(@eslint-react/eslint-plugin@1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3))(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-hooks@5.2.0(eslint@9.27.0(jiti@2.4.2)))(eslint-plugin-react-refresh@0.4.20(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(happy-dom@17.4.7)(jiti@2.4.2)(jsdom@26.1.0)(sass@1.87.0)(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.10.1 @@ -11364,7 +11315,7 @@ snapshots: vue-eslint-parser: 10.1.3(eslint@9.27.0(jiti@2.4.2)) yaml-eslint-parser: 1.3.0 optionalDependencies: - '@eslint-react/eslint-plugin': 1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) + '@eslint-react/eslint-plugin': 1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) eslint-plugin-format: 1.0.1(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-react-hooks: 5.2.0(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-react-refresh: 0.4.20(eslint@9.27.0(jiti@2.4.2)) @@ -12024,93 +11975,93 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/ast@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.49.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/core@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/core@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) birecord: 0.1.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/eff@1.49.0': {} + '@eslint-react/eff@1.50.0': {} - '@eslint-react/eslint-plugin@1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3)': + '@eslint-react/eslint-plugin@1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-dom: 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-hooks-extra: 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-naming-convention: 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-web-api: 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-x: 1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) + eslint-plugin-react-debug: 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-dom: 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-hooks-extra: 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-naming-convention: 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-web-api: 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-x: 1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/kit@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/kit@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.49.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@zod/mini': 4.0.0-beta.20250505T195954 - ts-pattern: 5.7.0 + '@eslint-react/eff': 1.50.0 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + ts-pattern: 5.7.1 + zod: 3.25.28 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/shared@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/shared@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@zod/mini': 4.0.0-beta.20250505T195954 - ts-pattern: 5.7.0 + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + ts-pattern: 5.7.1 + zod: 3.25.28 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/var@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/var@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 transitivePeerDependencies: - eslint - supports-color @@ -13543,8 +13494,6 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/numeral@2.0.5': {} - '@types/opentype.js@1.3.8': {} '@types/parse-json@4.0.2': {} @@ -13618,27 +13567,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.32.0': - dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 - '@typescript-eslint/scope-manager@8.32.1': dependencies: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/type-utils@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0 - eslint: 9.27.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) @@ -13654,20 +13587,6 @@ snapshots: '@typescript-eslint/types@8.32.1': {} - '@typescript-eslint/typescript-estree@8.32.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.32.1 @@ -13682,17 +13601,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) @@ -13704,11 +13612,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.0': - dependencies: - '@typescript-eslint/types': 8.32.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.32.1': dependencies: '@typescript-eslint/types': 8.32.1 @@ -14098,12 +14001,6 @@ snapshots: '@zeit/schemas@2.36.0': {} - '@zod/core@0.11.6': {} - - '@zod/mini@4.0.0-beta.20250505T195954': - dependencies: - '@zod/core': 0.11.6 - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -15629,61 +15526,61 @@ snapshots: tinyglobby: 0.2.13 yaml-eslint-parser: 1.3.0 - eslint-plugin-react-debug@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-debug@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-dom@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) compare-versions: 6.1.1 eslint: 9.27.0(jiti@2.4.2) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-hooks-extra@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -15693,21 +15590,21 @@ snapshots: dependencies: eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-react-naming-convention@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-naming-convention@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -15717,42 +15614,42 @@ snapshots: dependencies: eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-react-web-api@1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-web-api@1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.49.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3): + eslint-plugin-react-x@1.50.0(eslint@9.27.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.49.0 - '@eslint-react/kit': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.49.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.50.0 + '@eslint-react/kit': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.50.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) compare-versions: 6.1.1 eslint: 9.27.0(jiti@2.4.2) is-immutable-type: 5.0.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.0 + ts-pattern: 5.7.1 optionalDependencies: ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -16586,7 +16483,7 @@ snapshots: is-immutable-type@5.0.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) ts-declaration-location: 1.0.7(typescript@5.8.3) @@ -17566,8 +17463,6 @@ snapshots: dependencies: boolbase: 1.0.0 - numeral@2.0.6: {} - numfmt@2.5.2: {} nwsapi@2.2.20: {} @@ -19376,7 +19271,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-pattern@5.7.0: {} + ts-pattern@5.7.1: {} tsconfig-paths-webpack-plugin@4.2.0: dependencies: @@ -20013,6 +19908,8 @@ snapshots: yoctocolors-cjs@2.1.2: {} + zod@3.25.28: {} + zustand@4.5.6(@types/react@19.1.5)(react@19.1.0): dependencies: use-sync-external-store: 1.5.0(react@19.1.0)