Batch C: Fix medium-priority 'any' in UI components (vibe-kanban) (#1312)

* ##  Batch C Complete

All medium-priority TypeScript `any` types have been fixed across 7 files:

1. **[markdown-renderer.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/ui/markdown-renderer.tsx)** - Replaced 11 `any` with `React.ComponentProps<'tag'>`
2. **[ExecutorConfigForm.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/ExecutorConfigForm.tsx)** - Used `unknown` for form data, `IChangeEvent<unknown>` for handlers
3. **[FormTemplate.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/rjsf/templates/FormTemplate.tsx)** - Replaced with `React.PropsWithChildren`
4. **[ArrayFieldTemplate.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/rjsf/templates/ArrayFieldTemplate.tsx)** - Created minimal `ArrayItemWithButtons` type for RJSF v6 beta
5. **[DiffsPanel.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/panels/DiffsPanel.tsx)** - Used `Diff[]` and typed `t` function properly
6. **[DiffCard.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/DiffCard.tsx)** - Used existing `ReviewComment` type from context
7. **[useGitOperations.ts](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/hooks/useGitOperations.ts)** - Properly narrowed `unknown` errors with type guards

`pnpm run check` passes 

* Cleanup script changes for task attempt 5fe86537-3bc1-4d78-96c0-95347fc7c05f

* Excellent! The build succeeds. Now let's create a summary:

##  Batch C Complete + RJSF Upgrade

Successfully fixed all medium-priority TypeScript `any` types **and** upgraded RJSF to stable 6.1.1:

### Type Fixes (7 files)
1. **[markdown-renderer.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/ui/markdown-renderer.tsx)** - Replaced 11 `any` with `React.ComponentProps<'tag'>`
2. **[ExecutorConfigForm.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/ExecutorConfigForm.tsx)** - Used `unknown` and `IChangeEvent<unknown>`
3. **[FormTemplate.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/rjsf/templates/FormTemplate.tsx)** - Used `React.PropsWithChildren`
4. **[ArrayFieldTemplate.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/rjsf/templates/ArrayFieldTemplate.tsx)** - Migrated to stable RJSF v6 API with `ArrayFieldItemTemplate`
5. **[DiffsPanel.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/panels/DiffsPanel.tsx)** - Used `Diff[]` and proper `t` function type
6. **[DiffCard.tsx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/components/DiffCard.tsx)** - Used `ReviewComment` type from context
7. **[useGitOperations.ts](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/5fe8-batch-c-fix-medi/frontend/src/hooks/useGitOperations.ts)** - Properly narrowed `unknown` with type guards

### Dependency Upgrades
- `@rjsf/core`: 6.0.0-beta.11 → **6.1.1** (stable)
- `@rjsf/utils`: 6.0.0-beta.11 → **6.1.1** (stable)
- `@rjsf/validator-ajv8`: 6.0.0-beta.11 → **6.1.1** (stable)
- `@rjsf/shadcn`: 6.0.0-beta.10 → **6.1.1** (stable)

### RJSF Migration
Updated to v6 stable API:
- Removed workaround type (no longer needed)
- Added `ArrayFieldItemTemplate` for proper item rendering
- Updated to use `onRemoveItem` callback instead of deprecated `onDropIndexClick`

All checks pass 

* Cleanup script changes for task attempt 5fe86537-3bc1-4d78-96c0-95347fc7c05f
This commit is contained in:
Louis Knight-Webb
2025-11-17 22:35:20 +00:00
committed by GitHub
parent 870a166c38
commit 41376eba94
11 changed files with 175 additions and 119 deletions

View File

@@ -40,7 +40,7 @@
"@radix-ui/react-tabs": "^1.1.12",
"@radix-ui/react-toggle-group": "^1.1.11",
"@radix-ui/react-tooltip": "^1.2.7",
"@rjsf/shadcn": "6.0.0-beta.10",
"@rjsf/shadcn": "6.1.1",
"@sentry/react": "^9.34.0",
"@sentry/vite-plugin": "^3.5.0",
"@tailwindcss/typography": "^0.5.16",
@@ -83,9 +83,9 @@
"zustand": "^4.5.4"
},
"devDependencies": {
"@rjsf/core": "6.0.0-beta.11",
"@rjsf/utils": "6.0.0-beta.11",
"@rjsf/validator-ajv8": "6.0.0-beta.11",
"@rjsf/core": "6.1.1",
"@rjsf/utils": "6.1.1",
"@rjsf/validator-ajv8": "6.1.1",
"@tailwindcss/container-queries": "^0.1.1",
"@types/lodash": "^4.17.20",
"@types/react": "^18.2.43",

View File

@@ -22,7 +22,11 @@ import {
import '@/styles/diff-style-overrides.css';
import { attemptsApi } from '@/lib/api';
import type { TaskAttempt } from 'shared/types';
import { useReview, type ReviewDraft } from '@/contexts/ReviewProvider';
import {
useReview,
type ReviewDraft,
type ReviewComment,
} from '@/contexts/ReviewProvider';
import { CommentWidgetLine } from '@/components/diff/CommentWidgetLine';
import { ReviewCommentRenderer } from '@/components/diff/ReviewCommentRenderer';
import {
@@ -149,9 +153,8 @@ export default function DiffCard({
// Transform comments to git-diff-view extendData format
const extendData = useMemo(() => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const oldFileData: Record<string, { data: any }> = {};
const newFileData: Record<string, { data: any }> = {};
const oldFileData: Record<string, { data: ReviewComment }> = {};
const newFileData: Record<string, { data: ReviewComment }> = {};
commentsForFile.forEach((comment) => {
const lineKey = String(comment.lineNumber);
@@ -181,7 +184,11 @@ export default function DiffCard({
setDraft(widgetKey, draft);
};
const renderWidgetLine = (props: any) => {
const renderWidgetLine = (props: {
side: SplitSide;
lineNumber: number;
onClose: () => void;
}) => {
const widgetKey = `${filePath}-${props.side}-${props.lineNumber}`;
const draft = drafts[widgetKey];
if (!draft) return null;
@@ -197,7 +204,7 @@ export default function DiffCard({
);
};
const renderExtendLine = (lineData: any) => {
const renderExtendLine = (lineData: { data: ReviewComment }) => {
return (
<ReviewCommentRenderer comment={lineData.data} projectId={projectId} />
);

View File

@@ -1,5 +1,6 @@
import { useMemo, useEffect, useState } from 'react';
import Form from '@rjsf/core';
import type { IChangeEvent } from '@rjsf/core';
import { RJSFValidationError } from '@rjsf/utils';
import validator from '@rjsf/validator-ajv8';
@@ -22,10 +23,10 @@ type ExecutorType =
interface ExecutorConfigFormProps {
executor: ExecutorType;
value: any;
onSubmit?: (formData: any) => void;
onChange?: (formData: any) => void;
onSave?: (formData: any) => Promise<void>;
value: unknown;
onSubmit?: (formData: unknown) => void;
onChange?: (formData: unknown) => void;
onSave?: (formData: unknown) => Promise<void>;
disabled?: boolean;
isSaving?: boolean;
isDirty?: boolean;
@@ -43,7 +44,7 @@ export function ExecutorConfigForm({
isSaving = false,
isDirty = false,
}: ExecutorConfigFormProps) {
const [formData, setFormData] = useState(value || {});
const [formData, setFormData] = useState<unknown>(value || {});
const [validationErrors, setValidationErrors] = useState<
RJSFValidationError[]
>([]);
@@ -57,14 +58,16 @@ export function ExecutorConfigForm({
setValidationErrors([]);
}, [value, executor]);
const handleChange = ({ formData: newFormData }: any) => {
const handleChange = (event: IChangeEvent<unknown>) => {
const newFormData = event.formData;
setFormData(newFormData);
if (onChange) {
onChange(newFormData);
}
};
const handleSubmit = async ({ formData: submitData }: any) => {
const handleSubmit = async (event: IChangeEvent<unknown>) => {
const submitData = event.formData;
setValidationErrors([]);
if (onSave) {
await onSave(submitData);

View File

@@ -14,7 +14,7 @@ import {
TooltipProvider,
TooltipTrigger,
} from '@/components/ui/tooltip';
import type { TaskAttempt } from 'shared/types';
import type { TaskAttempt, Diff } from 'shared/types';
import GitOperations, {
type GitOperationsInputs,
} from '@/components/tasks/Toolbar/GitOperations.tsx';
@@ -125,7 +125,7 @@ export function DiffsPanel({ selectedAttempt, gitOps }: DiffsPanelProps) {
}
interface DiffsPanelContentProps {
diffs: any[];
diffs: Diff[];
fileCount: number;
added: number;
deleted: number;
@@ -136,7 +136,7 @@ interface DiffsPanelContentProps {
selectedAttempt: TaskAttempt | null;
gitOps?: GitOperationsInputs;
loading: boolean;
t: (key: string, params?: any) => string;
t: (key: string, params?: Record<string, unknown>) => string;
}
function DiffsPanelContent({

View File

@@ -1,6 +1,6 @@
import {
import type {
ArrayFieldTemplateProps,
ArrayFieldTemplateItemType,
ArrayFieldItemTemplateProps,
} from '@rjsf/utils';
import { Button } from '@/components/ui/button';
import { Plus, X } from 'lucide-react';
@@ -14,17 +14,7 @@ export const ArrayFieldTemplate = (props: ArrayFieldTemplateProps) => {
return (
<div className="space-y-4">
<div>
{items.length > 0 &&
items.map((element: ArrayFieldTemplateItemType) => (
<ArrayItem
key={element.key}
element={element}
disabled={disabled}
readonly={readonly}
/>
))}
</div>
<div>{items}</div>
{canAdd && (
<Button
@@ -43,30 +33,21 @@ export const ArrayFieldTemplate = (props: ArrayFieldTemplateProps) => {
);
};
interface ArrayItemProps {
element: ArrayFieldTemplateItemType;
disabled?: boolean;
readonly?: boolean;
}
const ArrayItem = ({ element, disabled, readonly }: ArrayItemProps) => {
const { children } = element;
const elementAny = element as any; // Type assertion needed for RJSF v6 beta properties
export const ArrayFieldItemTemplate = (props: ArrayFieldItemTemplateProps) => {
const { children, buttonsProps, disabled, readonly } = props;
return (
<div className="flex items-center gap-2">
<div className="flex-1">{children}</div>
{/* Remove button */}
{elementAny.buttonsProps?.hasRemove && (
{buttonsProps.hasRemove && (
<Button
type="button"
variant="ghost"
size="sm"
onClick={elementAny.buttonsProps.onDropIndexClick(
elementAny.buttonsProps.index
)}
disabled={disabled || readonly || elementAny.buttonsProps.disabled}
onClick={buttonsProps.onRemoveItem}
disabled={disabled || readonly || buttonsProps.disabled}
className="h-8 w-8 p-0 text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-all duration-200 shrink-0"
title="Remove item"
>

View File

@@ -1,5 +1,3 @@
export const FormTemplate = (props: any) => {
const { children } = props;
export const FormTemplate = ({ children }: React.PropsWithChildren) => {
return <div className="w-full">{children}</div>;
};

View File

@@ -1,4 +1,7 @@
export { ArrayFieldTemplate } from './ArrayFieldTemplate';
export {
ArrayFieldTemplate,
ArrayFieldItemTemplate,
} from './ArrayFieldTemplate';
export { FieldTemplate } from './FieldTemplate';
export { ObjectFieldTemplate } from './ObjectFieldTemplate';
export { FormTemplate } from './FormTemplate';

View File

@@ -7,6 +7,7 @@ import {
} from './widgets';
import {
ArrayFieldTemplate,
ArrayFieldItemTemplate,
FieldTemplate,
ObjectFieldTemplate,
FormTemplate,
@@ -22,6 +23,7 @@ export const customWidgets: RegistryWidgetsType = {
export const customTemplates = {
ArrayFieldTemplate,
ArrayFieldItemTemplate,
FieldTemplate,
ObjectFieldTemplate,
FormTemplate,

View File

@@ -85,7 +85,11 @@ function LinkOverride({
);
}
function InlineCodeOverride({ children, className, ...props }: any) {
function InlineCodeOverride({
children,
className,
...props
}: React.ComponentProps<'code'>) {
// Only highlight inline code, not fenced code blocks
const hasLanguage =
typeof className === 'string' && /\blanguage-/.test(className);
@@ -123,28 +127,28 @@ function MarkdownRenderer({
a: { component: LinkOverride },
code: { component: InlineCodeOverride },
strong: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'strong'>) => (
<span {...props} className="">
{children}
</span>
),
},
em: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'em'>) => (
<em {...props} className="italic">
{children}
</em>
),
},
p: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'p'>) => (
<p {...props} className="leading-tight my-2">
{children}
</p>
),
},
h1: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'h1'>) => (
<h1
{...props}
className="text-lg font-medium leading-tight mt-4 mb-2"
@@ -154,7 +158,7 @@ function MarkdownRenderer({
),
},
h2: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'h2'>) => (
<h2
{...props}
className="text-base font-medium leading-tight mt-4 mb-2"
@@ -164,14 +168,14 @@ function MarkdownRenderer({
),
},
h3: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'h3'>) => (
<h3 {...props} className="text-sm leading-tight mt-3 mb-2">
{children}
</h3>
),
},
ul: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'ul'>) => (
<ul
{...props}
className="list-disc list-outside ps-6 my-3 space-y-1.5"
@@ -181,7 +185,7 @@ function MarkdownRenderer({
),
},
ol: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'ol'>) => (
<ol
{...props}
className="list-decimal list-outside ps-6 my-3 space-y-1.5"
@@ -191,14 +195,14 @@ function MarkdownRenderer({
),
},
li: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'li'>) => (
<li {...props} className="leading-tight">
{children}
</li>
),
},
pre: {
component: ({ children, ...props }: any) => (
component: ({ children, ...props }: React.ComponentProps<'pre'>) => (
<pre
{...props}
className="overflow-x-auto whitespace-pre-wrap break-words font-mono text-sm bg-muted/50 rounded-sm p-2 my-2"

View File

@@ -32,16 +32,24 @@ export function useGitOperations(
const merge = useMerge(
attemptId,
() => setError(null),
(err: any) => {
setError(err?.message || 'Failed to merge');
(err: unknown) => {
const message =
err && typeof err === 'object' && 'message' in err
? String(err.message)
: 'Failed to merge';
setError(message);
}
);
const push = usePush(
attemptId,
() => setError(null),
(err: any) => {
setError(err?.message || 'Failed to push');
(err: unknown) => {
const message =
err && typeof err === 'object' && 'message' in err
? String(err.message)
: 'Failed to push';
setError(message);
}
);
@@ -49,8 +57,12 @@ export function useGitOperations(
attemptId,
projectId,
() => setError(null),
(err: any) => {
setError(err?.message || 'Failed to change target branch');
(err: unknown) => {
const message =
err && typeof err === 'object' && 'message' in err
? String(err.message)
: 'Failed to change target branch';
setError(message);
}
);

148
pnpm-lock.yaml generated
View File

@@ -93,8 +93,8 @@ importers:
specifier: ^1.2.7
version: 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@rjsf/shadcn':
specifier: 6.0.0-beta.10
version: 6.0.0-beta.10(@rjsf/core@6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(react@18.3.1))(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17)
specifier: 6.1.1
version: 6.1.1(@rjsf/core@6.1.1(@rjsf/utils@6.1.1(react@18.3.1))(react@18.3.1))(@rjsf/utils@6.1.1(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17)
'@sentry/react':
specifier: ^9.34.0
version: 9.34.0(react@18.3.1)
@@ -217,14 +217,14 @@ importers:
version: 4.5.7(@types/react@18.3.23)(react@18.3.1)
devDependencies:
'@rjsf/core':
specifier: 6.0.0-beta.11
version: 6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(react@18.3.1)
specifier: 6.1.1
version: 6.1.1(@rjsf/utils@6.1.1(react@18.3.1))(react@18.3.1)
'@rjsf/utils':
specifier: 6.0.0-beta.11
version: 6.0.0-beta.11(react@18.3.1)
specifier: 6.1.1
version: 6.1.1(react@18.3.1)
'@rjsf/validator-ajv8':
specifier: 6.0.0-beta.11
version: 6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))
specifier: 6.1.1
version: 6.1.1(@rjsf/utils@6.1.1(react@18.3.1))
'@tailwindcss/container-queries':
specifier: ^0.1.1
version: 0.1.1(tailwindcss@3.4.17)
@@ -1335,6 +1335,19 @@ packages:
'@types/react-dom':
optional: true
'@radix-ui/react-select@2.2.6':
resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
'@types/react-dom':
optional: true
'@radix-ui/react-separator@1.1.7':
resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==}
peerDependencies:
@@ -1532,32 +1545,32 @@ packages:
resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==}
engines: {node: '>=14.0.0'}
'@rjsf/core@6.0.0-beta.11':
resolution: {integrity: sha512-tadVN0B7CjAzl2p3HDsZKR3V8iCIiQMncblfCYSK0PAh9RqIjigFp8ovrZ3UqkVIRRcD+tQ6Y+psY5yEB4GWqA==}
'@rjsf/core@6.1.1':
resolution: {integrity: sha512-HkaKQJwcLyb7zTRB6H1PFYbStxKrw+53/x/Ho2tNeIiZpw1hm8qvNm5EQEAARFjffdyF/RdDszHtmBOESwT7fQ==}
engines: {node: '>=20'}
peerDependencies:
'@rjsf/utils': ^6.0.0-beta
'@rjsf/utils': ^6.x
react: '>=18'
'@rjsf/shadcn@6.0.0-beta.10':
resolution: {integrity: sha512-BXgbCZF+Xb7lqLYBWYRcq4xamB2I41yOx0fT7dNs09CbnyWge4yziE6Ebm7R4N87qf2M320PLdJymcpUe5WtLA==}
'@rjsf/shadcn@6.1.1':
resolution: {integrity: sha512-Gt8+6iEKDZnV/vR6kO1c8wwvqSdSSkfSOV3bdv486lphBKSxfULiv6LSmpK1P9o3/ApCg43HylI+B8MZeUTk+g==}
engines: {node: '>=20'}
peerDependencies:
'@rjsf/core': ^6.0.0-beta
'@rjsf/utils': ^6.0.0-beta
'@rjsf/core': ^6.x
'@rjsf/utils': ^6.x
react: '>=18'
'@rjsf/utils@6.0.0-beta.11':
resolution: {integrity: sha512-tQeyacweXmquRjPcXCVS1pMFfhamFSoqpczNi0zEvMbx+mfu2b6CgoRKi2Hm8KgFEafdVBF+6HLqs+0FnYhRlQ==}
'@rjsf/utils@6.1.1':
resolution: {integrity: sha512-608UcT5rgsQLqc2ZVSktjeycdQ8lWmsXtNYshIMdk6VfQ7YTps8rVEvbzBqfaytLrv4xQXsHr+2cIDmYypgXIQ==}
engines: {node: '>=20'}
peerDependencies:
react: '>=18'
'@rjsf/validator-ajv8@6.0.0-beta.11':
resolution: {integrity: sha512-gR8pbCsR91LiayDKdIz7d7m7A2ozUv9J+7Tpl5/qUQ69Q/NmnHo+cAiVW04/yvqzf1cbRwMgkc5pZyu01Uu1/w==}
'@rjsf/validator-ajv8@6.1.1':
resolution: {integrity: sha512-I4M8CJxINwNO+SSqg3QTh73r39Xl/sABl9N0k+M8sHpUrAKxeDe+oOG0HSoMrLcGBQHEGD0vwKg10Vzl/wraKA==}
engines: {node: '>=20'}
peerDependencies:
'@rjsf/utils': ^6.0.0-beta
'@rjsf/utils': ^6.x
'@rolldown/pluginutils@1.0.0-beta.11':
resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==}
@@ -2723,13 +2736,13 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
lucide-react@0.503.0:
resolution: {integrity: sha512-HGGkdlPWQ0vTF8jJ5TdIqhQXZi6uh3LnNgfZ8MHiuxFfX3RZeA79r2MW2tHAZKlAVfoNE8esm3p+O6VkIvpj6w==}
lucide-react@0.539.0:
resolution: {integrity: sha512-VVISr+VF2krO91FeuCrm1rSOLACQUYVy7NQkzrOty52Y8TlTPcXcMdQFj9bYzBgXbWCiywlwSZ3Z8u6a+6bMlg==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
lucide-react@0.539.0:
resolution: {integrity: sha512-VVISr+VF2krO91FeuCrm1rSOLACQUYVy7NQkzrOty52Y8TlTPcXcMdQFj9bYzBgXbWCiywlwSZ3Z8u6a+6bMlg==}
lucide-react@0.548.0:
resolution: {integrity: sha512-63b16z63jM9yc1MwxajHeuu0FRZFsDtljtDjYm26Kd86UQ5HQzu9ksEtoUUw4RBuewodw/tGFmvipePvRsKeDA==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -2743,6 +2756,15 @@ packages:
peerDependencies:
react: '>= 0.14.0'
markdown-to-jsx@8.0.0:
resolution: {integrity: sha512-hWEaRxeCDjes1CVUQqU+Ov0mCqBqkGhLKjL98KdbwHSgEWZZSJQeGlJQatVfeZ3RaxrfTrZZ3eczl2dhp5c/pA==}
engines: {node: '>= 10'}
peerDependencies:
react: '>= 0.14.0'
peerDependenciesMeta:
react:
optional: true
memoize-one@5.2.1:
resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
@@ -2794,11 +2816,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
nanoid@5.1.5:
resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
engines: {node: ^18 || >=20}
hasBin: true
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -3396,8 +3413,8 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
uuid@11.1.0:
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
uuid@13.0.0:
resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
hasBin: true
validate.io-array@1.0.6:
@@ -4543,7 +4560,7 @@ snapshots:
'@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1)
@@ -4679,6 +4696,35 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
'@radix-ui/react-select@2.2.6(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
'@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1)
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
aria-hidden: 1.2.6
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
'@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -4862,17 +4908,16 @@ snapshots:
'@remix-run/router@1.23.0': {}
'@rjsf/core@6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(react@18.3.1)':
'@rjsf/core@6.1.1(@rjsf/utils@6.1.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@rjsf/utils': 6.0.0-beta.11(react@18.3.1)
'@rjsf/utils': 6.1.1(react@18.3.1)
lodash: 4.17.21
lodash-es: 4.17.21
markdown-to-jsx: 7.7.13(react@18.3.1)
nanoid: 5.1.5
markdown-to-jsx: 8.0.0(react@18.3.1)
prop-types: 15.8.1
react: 18.3.1
'@rjsf/shadcn@6.0.0-beta.10(@rjsf/core@6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(react@18.3.1))(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17)':
'@rjsf/shadcn@6.1.1(@rjsf/core@6.1.1(@rjsf/utils@6.1.1(react@18.3.1))(react@18.3.1))(@rjsf/utils@6.1.1(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17)':
dependencies:
'@radix-ui/react-checkbox': 1.3.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -4880,43 +4925,42 @@ snapshots:
'@radix-ui/react-label': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-popover': 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-radio-group': 1.3.8(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-select': 2.2.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-select': 2.2.6(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-separator': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-slider': 1.3.6(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1)
'@react-icons/all-files': 4.1.0(react@18.3.1)
'@rjsf/core': 6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))(react@18.3.1)
'@rjsf/utils': 6.0.0-beta.11(react@18.3.1)
'@rjsf/core': 6.1.1(@rjsf/utils@6.1.1(react@18.3.1))(react@18.3.1)
'@rjsf/utils': 6.1.1(react@18.3.1)
class-variance-authority: 0.7.1
clsx: 2.1.1
cmdk: 1.1.1(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
lodash: 4.17.21
lodash-es: 4.17.21
lucide-react: 0.503.0(react@18.3.1)
lucide-react: 0.548.0(react@18.3.1)
react: 18.3.1
tailwind-merge: 3.3.1
tailwindcss-animate: 1.0.7(tailwindcss@3.4.17)
uuid: 11.1.0
uuid: 13.0.0
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
- react-dom
- tailwindcss
'@rjsf/utils@6.0.0-beta.11(react@18.3.1)':
'@rjsf/utils@6.1.1(react@18.3.1)':
dependencies:
fast-uri: 3.1.0
json-schema-merge-allof: 0.8.1
jsonpointer: 5.0.1
lodash: 4.17.21
lodash-es: 4.17.21
nanoid: 5.1.5
react: 18.3.1
react-is: 18.3.1
'@rjsf/validator-ajv8@6.0.0-beta.11(@rjsf/utils@6.0.0-beta.11(react@18.3.1))':
'@rjsf/validator-ajv8@6.1.1(@rjsf/utils@6.1.1(react@18.3.1))':
dependencies:
'@rjsf/utils': 6.0.0-beta.11(react@18.3.1)
'@rjsf/utils': 6.1.1(react@18.3.1)
ajv: 8.17.1
ajv-formats: 2.1.1(ajv@8.17.1)
lodash: 4.17.21
@@ -6164,11 +6208,11 @@ snapshots:
dependencies:
yallist: 3.1.1
lucide-react@0.503.0(react@18.3.1):
lucide-react@0.539.0(react@18.3.1):
dependencies:
react: 18.3.1
lucide-react@0.539.0(react@18.3.1):
lucide-react@0.548.0(react@18.3.1):
dependencies:
react: 18.3.1
@@ -6180,6 +6224,10 @@ snapshots:
dependencies:
react: 18.3.1
markdown-to-jsx@8.0.0(react@18.3.1):
optionalDependencies:
react: 18.3.1
memoize-one@5.2.1: {}
merge2@1.4.1: {}
@@ -6225,8 +6273,6 @@ snapshots:
nanoid@3.3.11: {}
nanoid@5.1.5: {}
natural-compare@1.4.0: {}
node-fetch@2.7.0:
@@ -6769,7 +6815,7 @@ snapshots:
util-deprecate@1.0.2: {}
uuid@11.1.0: {}
uuid@13.0.0: {}
validate.io-array@1.0.6: {}