-
Notifications
You must be signed in to change notification settings - Fork 0
Allow multiple pdf upload and tagging #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
bacd455
954d756
755e239
35a9c0f
75db4dc
5c7fe56
e9de53d
f95265f
7a54957
7d1e150
db970c7
bf26c69
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,142 @@ | ||
| import { Component, JSX } from 'solid-js'; | ||
|
|
||
| // Editable | ||
| export interface EditableProps { | ||
| value?: string; | ||
| onSubmit?: (_value: string) => void; | ||
| activationMode?: 'focus' | 'dblclick' | 'click' | 'none'; | ||
| variant?: 'default' | 'heading'; | ||
| showEditIcon?: boolean; | ||
| readOnly?: boolean; | ||
| class?: string; | ||
| placeholder?: string; | ||
| } | ||
| export const Editable: Component<EditableProps>; | ||
|
|
||
| // Collapsible | ||
| export interface CollapsibleProps { | ||
| open?: boolean; | ||
| defaultOpen?: boolean; | ||
| onOpenChange?: (_open: boolean) => void; | ||
| disabled?: boolean; | ||
| trigger?: (_api: { open: boolean }) => JSX.Element; | ||
| children?: JSX.Element; | ||
| } | ||
| export const Collapsible: Component<CollapsibleProps>; | ||
|
|
||
| // Menu | ||
| export interface MenuItem { | ||
| value: string; | ||
| label: string; | ||
| icon?: JSX.Element; | ||
| destructive?: boolean; | ||
| separator?: boolean; | ||
| } | ||
| export interface MenuProps { | ||
| trigger: JSX.Element; | ||
| items: MenuItem[]; | ||
| onSelect?: (_details: { value: string }) => void; | ||
| placement?: string; | ||
| hideIndicator?: boolean; | ||
| } | ||
| export const Menu: Component<MenuProps>; | ||
|
|
||
| // Dialog | ||
| export interface DialogProps { | ||
| open?: boolean; | ||
| onOpenChange?: (_open: boolean) => void; | ||
| title?: string; | ||
| description?: string; | ||
| children?: JSX.Element; | ||
| } | ||
| export const Dialog: Component<DialogProps>; | ||
|
|
||
| export interface ConfirmDialogProps { | ||
| open?: boolean; | ||
| onOpenChange?: (_open: boolean) => void; | ||
| title?: string; | ||
| description?: string; | ||
| confirmLabel?: string; | ||
| cancelLabel?: string; | ||
| onConfirm?: () => void; | ||
| onCancel?: () => void; | ||
| destructive?: boolean; | ||
| } | ||
| export const ConfirmDialog: Component<ConfirmDialogProps>; | ||
| export function useConfirmDialog(): { | ||
| open: () => boolean; | ||
| setOpen: (_open: boolean) => void; | ||
| confirm: () => Promise<boolean>; | ||
| }; | ||
|
|
||
| // Select | ||
| export interface SelectOption { | ||
| value: string; | ||
| label: string; | ||
| } | ||
| export interface SelectProps { | ||
| options: SelectOption[]; | ||
| value?: string; | ||
| onChange?: (_value: string) => void; | ||
| placeholder?: string; | ||
| disabled?: boolean; | ||
| } | ||
| export const Select: Component<SelectProps>; | ||
|
|
||
| // Tooltip | ||
| export interface TooltipProps { | ||
| content: string | JSX.Element; | ||
| children: JSX.Element; | ||
| placement?: string; | ||
| } | ||
| export const Tooltip: Component<TooltipProps>; | ||
|
|
||
| // Toast | ||
| export interface ToastOptions { | ||
| title?: string; | ||
| description?: string; | ||
| type?: 'info' | 'success' | 'warning' | 'error'; | ||
| duration?: number; | ||
| } | ||
| export const Toaster: Component; | ||
| export const toaster: { | ||
| create: (_options: ToastOptions) => void; | ||
| success: (_options: ToastOptions) => void; | ||
| error: (_options: ToastOptions) => void; | ||
| warning: (_options: ToastOptions) => void; | ||
| info: (_options: ToastOptions) => void; | ||
| }; | ||
| export function showToast(_options: ToastOptions): void; | ||
|
|
||
| // Primitives | ||
| export function useWindowDrag(_options?: { onDragEnd?: () => void }): { | ||
| isDragging: () => boolean; | ||
| }; | ||
|
|
||
| // Utilities | ||
| export function cn(..._classes: (string | undefined | null | false)[]): string; | ||
|
|
||
| // Re-export other components (add types as needed) | ||
| export const Accordion: Component<any>; | ||
| export const Avatar: Component<any>; | ||
| export const Checkbox: Component<any>; | ||
| export const Clipboard: Component<any>; | ||
| export const CopyButton: Component<any>; | ||
| export const Combobox: Component<any>; | ||
| export const FileUpload: Component<any>; | ||
| export const FloatingPanel: Component<any>; | ||
| export const NumberInput: Component<any>; | ||
| export const PasswordInput: Component<any>; | ||
| export const PinInput: Component<any>; | ||
| export const Popover: Component<any>; | ||
| export const Progress: Component<any>; | ||
| export const QRCode: Component<any>; | ||
| export const RadioGroup: Component<any>; | ||
| export const Splitter: Component<any>; | ||
| export const Switch: Component<any>; | ||
| export const Tabs: Component<any>; | ||
| export const TagsInput: Component<any>; | ||
| export const ToggleGroup: Component<any>; | ||
| export const Tour: Component<any>; | ||
| export const TourProvider: Component<any>; | ||
| export function useTour(): any; | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,6 @@ | ||||||||||||||||||||||||||
| import * as accordion from '@zag-js/accordion'; | ||||||||||||||||||||||||||
| import { normalizeProps, useMachine } from '@zag-js/solid'; | ||||||||||||||||||||||||||
| import { createMemo, createUniqueId, For, splitProps, mergeProps } from 'solid-js'; | ||||||||||||||||||||||||||
| import { createMemo, createUniqueId, For, splitProps } from 'solid-js'; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| /** | ||||||||||||||||||||||||||
| * Accordion - Vertically stacked expandable sections | ||||||||||||||||||||||||||
|
|
@@ -19,9 +19,11 @@ import { createMemo, createUniqueId, For, splitProps, mergeProps } from 'solid-j | |||||||||||||||||||||||||
| export function Accordion(props) { | ||||||||||||||||||||||||||
| const [local, machineProps] = splitProps(props, ['items', 'class']); | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| const context = mergeProps(machineProps, { id: createUniqueId(), collapsible: true }); | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| const service = useMachine(accordion.machine, context); | ||||||||||||||||||||||||||
| const service = useMachine(accordion.machine, () => ({ | ||||||||||||||||||||||||||
| id: createUniqueId(), | ||||||||||||||||||||||||||
| collapsible: true, | ||||||||||||||||||||||||||
| ...machineProps, | ||||||||||||||||||||||||||
| })); | ||||||||||||||||||||||||||
|
Comment on lines
+22
to
+26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major Spread order fixed; consider moving ID generation outside the factory. The default prop override issue from the previous review has been resolved— However, following the pattern demonstrated in 🔎 Apply this pattern for consistency:+ const id = createUniqueId();
+
const service = useMachine(accordion.machine, () => ({
- id: createUniqueId(),
+ id,
collapsible: true,
...machineProps,
}));📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| const api = createMemo(() => accordion.connect(service, normalizeProps)); | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| import * as clipboard from '@zag-js/clipboard'; | ||
| import { normalizeProps, useMachine } from '@zag-js/solid'; | ||
| import { createMemo, createUniqueId, Show, splitProps, mergeProps } from 'solid-js'; | ||
| import { createMemo, createUniqueId, Show, splitProps } from 'solid-js'; | ||
| import { FiCopy, FiCheck } from 'solid-icons/fi'; | ||
|
|
||
| /** | ||
|
|
@@ -20,12 +20,11 @@ import { FiCopy, FiCheck } from 'solid-icons/fi'; | |
| export function Clipboard(props) { | ||
| const [local, machineProps] = splitProps(props, ['label', 'showInput', 'children', 'class']); | ||
|
|
||
| const context = mergeProps(machineProps, { | ||
| const service = useMachine(clipboard.machine, () => ({ | ||
| id: createUniqueId(), | ||
| timeout: 3000, | ||
| }); | ||
|
|
||
| const service = useMachine(clipboard.machine, context); | ||
| ...machineProps, | ||
| })); | ||
|
Comment on lines
+23
to
+27
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major Spread order fixed in both components; consider moving ID generation outside the factory. The default prop override issues from the previous review have been resolved in both the However, both components call 🔎 Apply this pattern for both components:For Clipboard component (lines 23-27): + const id = createUniqueId();
+
const service = useMachine(clipboard.machine, () => ({
- id: createUniqueId(),
+ id,
timeout: 3000,
...machineProps,
}));For CopyButton component (lines 90-94): + const id = createUniqueId();
+
const service = useMachine(clipboard.machine, () => ({
- id: createUniqueId(),
+ id,
timeout: 3000,
...machineProps,
}));Also applies to: 90-94 🤖 Prompt for AI Agents |
||
|
|
||
| const api = createMemo(() => clipboard.connect(service, normalizeProps)); | ||
|
|
||
|
|
@@ -88,12 +87,11 @@ export function CopyButton(props) { | |
| 'class', | ||
| ]); | ||
|
|
||
| const context = mergeProps(machineProps, { | ||
| const service = useMachine(clipboard.machine, () => ({ | ||
| id: createUniqueId(), | ||
| timeout: 3000, | ||
| }); | ||
|
|
||
| const service = useMachine(clipboard.machine, context); | ||
| ...machineProps, | ||
| })); | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
|
|
||
| const api = createMemo(() => clipboard.connect(service, normalizeProps)); | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,7 +1,7 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import * as menu from '@zag-js/menu'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { Portal } from 'solid-js/web'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { normalizeProps, useMachine } from '@zag-js/solid'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { createMemo, createUniqueId, Show, For, splitProps, mergeProps } from 'solid-js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { createMemo, createUniqueId, Show, For, splitProps } from 'solid-js'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * Menu - Dropdown menu for actions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -16,6 +16,7 @@ import { createMemo, createUniqueId, Show, For, splitProps, mergeProps } from 's | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - placement: Placement - Menu placement (default: 'bottom-start') | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - closeOnSelect: boolean - Close menu on selection (default: true) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - inDialog: boolean - Set to true when used inside a Dialog | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - hideIndicator: boolean - Hide the dropdown indicator chevron | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - class: string - Additional class for content | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * MenuItem: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -28,15 +29,21 @@ import { createMemo, createUniqueId, Show, For, splitProps, mergeProps } from 's | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * - groupLabel?: string - Render as group label | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export function Menu(props) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const [local, machineProps] = splitProps(props, ['trigger', 'items', 'inDialog', 'class']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const [local, machineProps] = splitProps(props, [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'trigger', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'items', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'inDialog', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'hideIndicator', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'placement', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'class', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ]); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const context = mergeProps(machineProps, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const service = useMachine(menu.machine, () => ({ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| id: createUniqueId(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| closeOnSelect: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| positioning: { placement: 'bottom-start' }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const service = useMachine(menu.machine, context); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| positioning: { placement: local.placement || 'bottom-start' }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ...machineProps, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| })); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+32
to
+46
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major New props implemented correctly; consider moving ID generation outside the factory. The new
However, consistent with the pattern in 🔎 Apply this pattern:+ const id = createUniqueId();
+
const service = useMachine(menu.machine, () => ({
- id: createUniqueId(),
+ id,
closeOnSelect: true,
positioning: { placement: local.placement || 'bottom-start' },
...machineProps,
}));📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const api = createMemo(() => menu.connect(service, normalizeProps)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -87,21 +94,26 @@ export function Menu(props) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <button {...api().getTriggerProps()} class='inline-flex items-center gap-1'> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <button | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {...api().getTriggerProps()} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class='inline-flex items-center gap-1 p-1.5 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded transition-colors' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {local.trigger} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <span | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {...api().getIndicatorProps()} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class='transition-transform data-[state=open]:rotate-180' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <svg class='w-4 h-4' fill='none' viewBox='0 0 24 24' stroke='currentColor'> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <path | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-linecap='round' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-linejoin='round' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-width='2' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| d='M19 9l-7 7-7-7' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </svg> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Show when={!local.hideIndicator}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <span | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {...api().getIndicatorProps()} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class='transition-transform data-[state=open]:rotate-180' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <svg class='w-4 h-4' fill='none' viewBox='0 0 24 24' stroke='currentColor'> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <path | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-linecap='round' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-linejoin='round' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stroke-width='2' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| d='M19 9l-7 7-7-7' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </svg> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </Show> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </button> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Show when={api().open}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Show when={!local.inDialog} fallback={content()}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix incomplete and incorrect return type for useConfirmDialog.
The declared return type doesn't match the actual implementation shown in Dialog.jsx. The actual hook returns additional properties and has different signatures:
Based on the implementation in Dialog.jsx (lines 242-320):
isOpen: () => boolean(notopen: () => boolean)open: (dialogConfig) => Promise<boolean>(takes config, returns Promise, not a getter)close: () => void(missing)setLoading: (loading: boolean) => void(missing)ConfirmDialogComponent: () => JSX.Element(missing)dialogProps: () => {...}(missing)Apply this diff to correct the return type:
🤖 Prompt for AI Agents