@openzeppelin/ui-components 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2528 @@
1
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as React$2 from "react";
4
+ import React$1, { ForwardedRef, JSX, ReactElement, ReactNode } from "react";
5
+ import { DateRange, DayPicker } from "react-day-picker";
6
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
7
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
8
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
9
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
10
+ import { Control, FieldError, FieldPath, FieldValues, FormProvider, Path, UseFormReturn } from "react-hook-form";
11
+ import * as _radix_ui_react_label0 from "@radix-ui/react-label";
12
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
13
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
14
+ import * as SelectPrimitive from "@radix-ui/react-select";
15
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
16
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
17
+ import { ContractAdapter, ContractSchema, EnumValue, FieldValidation, FormFieldType, FunctionParameter, MapEntry, NetworkConfig, NetworkType, RelayerDetails, RelayerDetailsRich } from "@openzeppelin/ui-types";
18
+ import { ToasterProps } from "sonner";
19
+ import * as class_variance_authority_types1 from "class-variance-authority/types";
20
+
21
+ //#region src/components/ui/accordion.d.ts
22
+ declare const accordionItemVariants: (props?: ({
23
+ variant?: "default" | "card" | null | undefined;
24
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
25
+ declare const accordionTriggerVariants: (props?: ({
26
+ variant?: "default" | "card" | null | undefined;
27
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
28
+ declare const accordionContentVariants: (props?: ({
29
+ variant?: "default" | "card" | null | undefined;
30
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
31
+ type AccordionVariant = 'default' | 'card';
32
+ type AccordionProps = (AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & {
33
+ variant?: AccordionVariant;
34
+ };
35
+ declare const Accordion: React$2.ForwardRefExoticComponent<AccordionProps & React$2.RefAttributes<HTMLDivElement>>;
36
+ interface AccordionItemProps extends React$2.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>, VariantProps<typeof accordionItemVariants> {}
37
+ declare const AccordionItem: React$2.ForwardRefExoticComponent<AccordionItemProps & React$2.RefAttributes<HTMLDivElement>>;
38
+ interface AccordionTriggerProps extends React$2.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>, VariantProps<typeof accordionTriggerVariants> {}
39
+ declare const AccordionTrigger: React$2.ForwardRefExoticComponent<AccordionTriggerProps & React$2.RefAttributes<HTMLButtonElement>>;
40
+ interface AccordionContentProps extends React$2.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>, VariantProps<typeof accordionContentVariants> {}
41
+ declare const AccordionContent: React$2.ForwardRefExoticComponent<AccordionContentProps & React$2.RefAttributes<HTMLDivElement>>;
42
+ //#endregion
43
+ //#region src/components/ui/address-display.d.ts
44
+ interface AddressDisplayProps extends React$2.HTMLAttributes<HTMLDivElement> {
45
+ /**
46
+ * The blockchain address to display
47
+ */
48
+ address: string;
49
+ /**
50
+ * Whether to truncate the address in the middle
51
+ * @default true
52
+ */
53
+ truncate?: boolean;
54
+ /**
55
+ * Number of characters to show at the beginning when truncating
56
+ * @default 6
57
+ */
58
+ startChars?: number;
59
+ /**
60
+ * Number of characters to show at the end when truncating
61
+ * @default 4
62
+ */
63
+ endChars?: number;
64
+ /**
65
+ * Whether to show a copy button
66
+ * @default false
67
+ */
68
+ showCopyButton?: boolean;
69
+ /**
70
+ * Whether to show the copy button only on hover
71
+ * @default false
72
+ */
73
+ showCopyButtonOnHover?: boolean;
74
+ /**
75
+ * Optional explorer URL to make the address clickable
76
+ */
77
+ explorerUrl?: string;
78
+ /**
79
+ * Additional CSS classes
80
+ */
81
+ className?: string;
82
+ }
83
+ /** Displays a blockchain address with optional truncation, copy button, and explorer link. */
84
+ declare function AddressDisplay({
85
+ address,
86
+ truncate,
87
+ startChars,
88
+ endChars,
89
+ showCopyButton,
90
+ showCopyButtonOnHover,
91
+ explorerUrl,
92
+ className,
93
+ ...props
94
+ }: AddressDisplayProps): React$2.ReactElement;
95
+ //#endregion
96
+ //#region src/components/ui/alert.d.ts
97
+ declare const Alert: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
98
+ variant?: "default" | "destructive" | "success" | null | undefined;
99
+ } & class_variance_authority_types1.ClassProp) | undefined) => string> & React$2.RefAttributes<HTMLDivElement>>;
100
+ declare const AlertTitle: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLHeadingElement> & React$2.RefAttributes<HTMLParagraphElement>>;
101
+ declare const AlertDescription: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLParagraphElement> & React$2.RefAttributes<HTMLParagraphElement>>;
102
+ //#endregion
103
+ //#region src/components/ui/banner.d.ts
104
+ interface BannerProps {
105
+ /**
106
+ * The variant/style of the banner
107
+ * @default 'info'
108
+ */
109
+ variant?: 'info' | 'success' | 'warning' | 'error';
110
+ /**
111
+ * Title text displayed at the top of the banner
112
+ */
113
+ title?: React$2.ReactNode;
114
+ /**
115
+ * Body text/content of the banner
116
+ */
117
+ children: React$2.ReactNode;
118
+ /**
119
+ * Whether the banner can be dismissed
120
+ * @default true
121
+ */
122
+ dismissible?: boolean;
123
+ /**
124
+ * Callback when the banner is dismissed
125
+ */
126
+ onDismiss?: () => void;
127
+ /**
128
+ * Icon to display on the left (replaces default based on variant)
129
+ */
130
+ icon?: React$2.ReactNode;
131
+ /**
132
+ * Additional CSS classes
133
+ */
134
+ className?: string;
135
+ }
136
+ /**
137
+ * Dismissible banner component for notifications and alerts
138
+ * Can be used with various variants (info, success, warning, error)
139
+ */
140
+ declare const Banner: React$2.ForwardRefExoticComponent<BannerProps & React$2.RefAttributes<HTMLDivElement>>;
141
+ //#endregion
142
+ //#region src/utils/button-variants.d.ts
143
+ declare const buttonVariants: (props?: ({
144
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
145
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
146
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
147
+ //# sourceMappingURL=button-variants.d.ts.map
148
+ //#endregion
149
+ //#region src/components/ui/button.d.ts
150
+ interface ButtonProps extends React$2.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
151
+ asChild?: boolean;
152
+ }
153
+ declare const Button: React$2.ForwardRefExoticComponent<ButtonProps & React$2.RefAttributes<HTMLButtonElement>>;
154
+ //#endregion
155
+ //#region src/components/ui/calendar.d.ts
156
+ type CalendarProps = React$2.ComponentProps<typeof DayPicker>;
157
+ /**
158
+ * Calendar component built on react-day-picker with shadcn/ui styling.
159
+ * Supports single date, multiple dates, and date range selection modes.
160
+ */
161
+ declare function Calendar({
162
+ className,
163
+ classNames,
164
+ showOutsideDays,
165
+ ...props
166
+ }: CalendarProps): React$2.ReactElement;
167
+ declare namespace Calendar {
168
+ var displayName: string;
169
+ }
170
+ //#endregion
171
+ //#region src/components/ui/card.d.ts
172
+ /** Card container component with rounded borders and shadow. */
173
+ declare function Card({
174
+ className,
175
+ ...props
176
+ }: React.ComponentProps<'div'>): JSX.Element;
177
+ /** Card header section for title and description. */
178
+ declare function CardHeader({
179
+ className,
180
+ ...props
181
+ }: React.ComponentProps<'div'>): JSX.Element;
182
+ /** Card title with semibold styling. */
183
+ declare function CardTitle({
184
+ className,
185
+ ...props
186
+ }: React.ComponentProps<'div'>): JSX.Element;
187
+ /** Card description with muted text styling. */
188
+ declare function CardDescription({
189
+ className,
190
+ ...props
191
+ }: React.ComponentProps<'div'>): JSX.Element;
192
+ /** Card content area with horizontal padding. */
193
+ declare function CardContent({
194
+ className,
195
+ ...props
196
+ }: React.ComponentProps<'div'>): JSX.Element;
197
+ /** Card footer with flex alignment for actions. */
198
+ declare function CardFooter({
199
+ className,
200
+ ...props
201
+ }: React.ComponentProps<'div'>): JSX.Element;
202
+ //#endregion
203
+ //#region src/components/ui/checkbox.d.ts
204
+ /** Checkbox component wrapping Radix UI Checkbox primitive. */
205
+ declare function Checkbox({
206
+ className,
207
+ ...props
208
+ }: React$2.ComponentProps<typeof CheckboxPrimitive.Root>): React$2.ReactElement;
209
+ //#endregion
210
+ //#region src/components/ui/date-range-picker.d.ts
211
+ /**
212
+ * Props for the DateRangePicker component.
213
+ */
214
+ interface DateRangePickerProps {
215
+ /** The selected date range */
216
+ value?: DateRange;
217
+ /** Callback when the date range changes */
218
+ onChange?: (range: DateRange | undefined) => void;
219
+ /** Placeholder text when no date is selected */
220
+ placeholder?: string;
221
+ /** Additional CSS classes */
222
+ className?: string;
223
+ /** Whether the picker is disabled */
224
+ disabled?: boolean;
225
+ /** Number of months to display (default: 2) */
226
+ numberOfMonths?: number;
227
+ /** Alignment of the popover */
228
+ align?: 'start' | 'center' | 'end';
229
+ }
230
+ /**
231
+ * DateRangePicker component for selecting a date range.
232
+ * Uses react-day-picker with Radix Popover for a shadcn-styled date range selection.
233
+ *
234
+ * @example
235
+ * ```tsx
236
+ * const [dateRange, setDateRange] = useState<DateRange | undefined>();
237
+ *
238
+ * <DateRangePicker
239
+ * value={dateRange}
240
+ * onChange={setDateRange}
241
+ * placeholder="Select date range"
242
+ * />
243
+ * ```
244
+ */
245
+ declare function DateRangePicker({
246
+ value,
247
+ onChange,
248
+ placeholder,
249
+ className,
250
+ disabled,
251
+ numberOfMonths,
252
+ align
253
+ }: DateRangePickerProps): React.ReactElement;
254
+ declare namespace DateRangePicker {
255
+ var displayName: string;
256
+ }
257
+ //#endregion
258
+ //#region src/components/ui/dialog.d.ts
259
+ declare const Dialog: React$2.FC<DialogPrimitive.DialogProps>;
260
+ declare const DialogTrigger: React$2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$2.RefAttributes<HTMLButtonElement>>;
261
+ declare const DialogPortal: React$2.FC<DialogPrimitive.DialogPortalProps>;
262
+ declare const DialogClose: React$2.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$2.RefAttributes<HTMLButtonElement>>;
263
+ declare const DialogOverlay: React$2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
264
+ declare const DialogContent: React$2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
265
+ declare const DialogHeader: {
266
+ ({
267
+ className,
268
+ ...props
269
+ }: React$2.HTMLAttributes<HTMLDivElement>): React$2.JSX.Element;
270
+ displayName: string;
271
+ };
272
+ declare const DialogFooter: {
273
+ ({
274
+ className,
275
+ ...props
276
+ }: React$2.HTMLAttributes<HTMLDivElement>): React$2.JSX.Element;
277
+ displayName: string;
278
+ };
279
+ declare const DialogTitle: React$2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$2.RefAttributes<HTMLHeadingElement>, "ref"> & React$2.RefAttributes<HTMLHeadingElement>>;
280
+ declare const DialogDescription: React$2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$2.RefAttributes<HTMLParagraphElement>, "ref"> & React$2.RefAttributes<HTMLParagraphElement>>;
281
+ //#endregion
282
+ //#region src/components/ui/dropdown-menu.d.ts
283
+ declare const DropdownMenu: React$2.FC<DropdownMenuPrimitive.DropdownMenuProps>;
284
+ declare const DropdownMenuTrigger: React$2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$2.RefAttributes<HTMLButtonElement>>;
285
+ declare const DropdownMenuGroup: React$2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$2.RefAttributes<HTMLDivElement>>;
286
+ declare const DropdownMenuPortal: React$2.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
287
+ declare const DropdownMenuSub: React$2.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
288
+ declare const DropdownMenuRadioGroup: React$2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$2.RefAttributes<HTMLDivElement>>;
289
+ declare const DropdownMenuSubTrigger: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & {
290
+ inset?: boolean;
291
+ } & React$2.RefAttributes<HTMLDivElement>>;
292
+ declare const DropdownMenuSubContent: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
293
+ declare const DropdownMenuContent: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
294
+ declare const DropdownMenuItem: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & {
295
+ inset?: boolean;
296
+ } & React$2.RefAttributes<HTMLDivElement>>;
297
+ declare const DropdownMenuCheckboxItem: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
298
+ declare const DropdownMenuRadioItem: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
299
+ declare const DropdownMenuLabel: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & {
300
+ inset?: boolean;
301
+ } & React$2.RefAttributes<HTMLDivElement>>;
302
+ declare const DropdownMenuSeparator: React$2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
303
+ declare const DropdownMenuShortcut: {
304
+ ({
305
+ className,
306
+ ...props
307
+ }: React$2.HTMLAttributes<HTMLSpanElement>): React$2.ReactNode;
308
+ displayName: string;
309
+ };
310
+ //#endregion
311
+ //#region src/components/ui/empty-state.d.ts
312
+ interface EmptyStateProps {
313
+ /**
314
+ * The icon to display - can be a React component or SVG path
315
+ */
316
+ icon?: React$1.ReactNode;
317
+ /**
318
+ * Main heading text
319
+ */
320
+ title: string;
321
+ /**
322
+ * Descriptive text explaining the empty state
323
+ */
324
+ description: string;
325
+ /**
326
+ * Additional CSS classes for the container
327
+ */
328
+ className?: string;
329
+ /**
330
+ * Size variant for the empty state
331
+ * @default 'default'
332
+ */
333
+ size?: 'small' | 'default' | 'large';
334
+ }
335
+ /**
336
+ * Reusable empty state component for showing helpful messages when content is not available
337
+ */
338
+ declare function EmptyState({
339
+ icon,
340
+ title,
341
+ description,
342
+ className,
343
+ size
344
+ }: EmptyStateProps): React$1.ReactElement;
345
+ //# sourceMappingURL=empty-state.d.ts.map
346
+ //#endregion
347
+ //#region src/components/ui/external-link.d.ts
348
+ declare const ExternalLink: React$1.ForwardRefExoticComponent<React$1.AnchorHTMLAttributes<HTMLAnchorElement> & React$1.RefAttributes<HTMLAnchorElement>>;
349
+ //# sourceMappingURL=external-link.d.ts.map
350
+
351
+ //#endregion
352
+ //#region src/components/ui/footer.d.ts
353
+ /**
354
+ * Props for the Footer component
355
+ */
356
+ interface FooterProps {
357
+ /**
358
+ * Company or organization name for the copyright notice
359
+ * @default 'OpenZeppelin'
360
+ */
361
+ companyName?: string;
362
+ /**
363
+ * Copyright year to display
364
+ * @default Current year
365
+ */
366
+ copyrightYear?: number;
367
+ /**
368
+ * URL for the privacy policy link
369
+ * @default 'https://www.openzeppelin.com/privacy'
370
+ */
371
+ privacyPolicyUrl?: string;
372
+ /**
373
+ * Text for the privacy policy link
374
+ * @default 'Privacy Policy'
375
+ */
376
+ privacyPolicyText?: string;
377
+ /**
378
+ * URL for the terms of service link
379
+ * @default 'https://www.openzeppelin.com/tos'
380
+ */
381
+ termsOfServiceUrl?: string;
382
+ /**
383
+ * Text for the terms of service link
384
+ * @default 'Terms of Service'
385
+ */
386
+ termsOfServiceText?: string;
387
+ /**
388
+ * Whether to show the privacy policy link
389
+ * @default true
390
+ */
391
+ showPrivacyPolicy?: boolean;
392
+ /**
393
+ * Whether to show the terms of service link
394
+ * @default true
395
+ */
396
+ showTermsOfService?: boolean;
397
+ /**
398
+ * Additional CSS classes for the footer container
399
+ */
400
+ className?: string;
401
+ }
402
+ /**
403
+ * Application footer component with customizable legal links and branding.
404
+ *
405
+ * This component provides a consistent footer layout with customizable:
406
+ * - Company name and copyright year
407
+ * - Privacy policy and terms of service links and text
408
+ * - Optional visibility controls for legal links
409
+ * - Custom styling support
410
+ */
411
+ declare const Footer: ({
412
+ companyName,
413
+ copyrightYear,
414
+ privacyPolicyUrl,
415
+ privacyPolicyText,
416
+ termsOfServiceUrl,
417
+ termsOfServiceText,
418
+ showPrivacyPolicy,
419
+ showTermsOfService,
420
+ className
421
+ }?: FooterProps) => JSX.Element;
422
+ //# sourceMappingURL=footer.d.ts.map
423
+ //#endregion
424
+ //#region src/components/ui/form.d.ts
425
+ /**
426
+ * Context provider for the form
427
+ */
428
+ declare const Form: <TFieldValues extends FieldValues = FieldValues, TContext = unknown>({
429
+ ...props
430
+ }: React$2.ComponentProps<typeof FormProvider<TFieldValues, TContext>>) => React$2.ReactElement;
431
+ /**
432
+ * Form field component
433
+ */
434
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
435
+ ...props
436
+ }: ControllerProps<TFieldValues, TName>) => React$2.ReactElement;
437
+ /**
438
+ * Form item component
439
+ */
440
+ declare const FormItem: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLDivElement> & React$2.RefAttributes<HTMLDivElement>>;
441
+ /**
442
+ * Form label component
443
+ */
444
+ declare const FormLabel: React$2.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_label0.LabelProps & React$2.RefAttributes<HTMLLabelElement>, "ref"> & React$2.RefAttributes<HTMLLabelElement>, "ref"> & React$2.RefAttributes<HTMLLabelElement>>;
445
+ /**
446
+ * Form control component
447
+ */
448
+ declare const FormControl: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLDivElement> & React$2.RefAttributes<HTMLDivElement>>;
449
+ /**
450
+ * Form description component
451
+ */
452
+ declare const FormDescription: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLParagraphElement> & React$2.RefAttributes<HTMLParagraphElement>>;
453
+ /**
454
+ * Form error message component
455
+ */
456
+ declare const FormMessage: React$2.ForwardRefExoticComponent<React$2.HTMLAttributes<HTMLParagraphElement> & React$2.RefAttributes<HTMLParagraphElement>>;
457
+ /**
458
+ * Types for form controller props
459
+ */
460
+ type ControllerProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
461
+ name: TName;
462
+ control?: UseFormReturn<TFieldValues>['control'];
463
+ render: (props: {
464
+ field: {
465
+ value: unknown;
466
+ onChange: (...event: unknown[]) => void;
467
+ onBlur: () => void;
468
+ name: TName;
469
+ ref: React$2.RefCallback<HTMLInputElement>;
470
+ };
471
+ fieldState: {
472
+ invalid: boolean;
473
+ isTouched: boolean;
474
+ isDirty: boolean;
475
+ error?: unknown;
476
+ };
477
+ formState: UseFormReturn<TFieldValues>['formState'];
478
+ }) => React$2.ReactElement;
479
+ };
480
+ //#endregion
481
+ //#region src/components/ui/header.d.ts
482
+ interface HeaderProps {
483
+ title?: string;
484
+ /** Open the mobile sidebar */
485
+ onOpenSidebar?: () => void;
486
+ /** Content to display on the right side of the header */
487
+ rightContent?: React$1.ReactNode;
488
+ }
489
+ declare const Header: ({
490
+ title,
491
+ onOpenSidebar,
492
+ rightContent
493
+ }: HeaderProps) => React$1.ReactElement;
494
+ //# sourceMappingURL=header.d.ts.map
495
+ //#endregion
496
+ //#region src/components/ui/input.d.ts
497
+ /**
498
+ * Input component that follows shadcn/ui styling and accessibility patterns
499
+ */
500
+ type InputProps = React$2.InputHTMLAttributes<HTMLInputElement>;
501
+ declare const Input: React$2.ForwardRefExoticComponent<InputProps & React$2.RefAttributes<HTMLInputElement>>;
502
+ //#endregion
503
+ //#region src/components/ui/label.d.ts
504
+ /**
505
+ * Label component for form fields, following shadcn/ui styling
506
+ */
507
+ declare const Label: React$2.ForwardRefExoticComponent<Omit<_radix_ui_react_label0.LabelProps & React$2.RefAttributes<HTMLLabelElement>, "ref"> & React$2.RefAttributes<HTMLLabelElement>>;
508
+ //#endregion
509
+ //#region src/components/ui/loading-button.d.ts
510
+ interface LoadingButtonProps extends React$2.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
511
+ asChild?: boolean;
512
+ loading?: boolean;
513
+ }
514
+ declare const LoadingButton: React$2.ForwardRefExoticComponent<LoadingButtonProps & React$2.RefAttributes<HTMLButtonElement>>;
515
+ //#endregion
516
+ //#region src/components/ui/network-icon.d.ts
517
+ interface NetworkIconProps {
518
+ network: Pick<NetworkConfig, 'ecosystem' | 'iconComponent'>;
519
+ className?: string;
520
+ size?: number;
521
+ variant?: 'mono' | 'branded';
522
+ }
523
+ /** Displays the appropriate icon for a blockchain network. */
524
+ declare function NetworkIcon({
525
+ network,
526
+ className,
527
+ size,
528
+ variant
529
+ }: NetworkIconProps): React$1.ReactElement;
530
+ //# sourceMappingURL=network-icon.d.ts.map
531
+ //#endregion
532
+ //#region src/components/ui/network-selector.d.ts
533
+ interface NetworkSelectorProps<T> {
534
+ networks: T[];
535
+ selectedNetwork: T | null;
536
+ onSelectNetwork: (network: T) => void;
537
+ getNetworkLabel: (network: T) => string;
538
+ getNetworkIcon?: (network: T) => React$2.ReactNode;
539
+ getNetworkType?: (network: T) => NetworkType | undefined;
540
+ getNetworkId: (network: T) => string;
541
+ groupByEcosystem?: boolean;
542
+ getEcosystem?: (network: T) => string;
543
+ filterNetwork?: (network: T, query: string) => boolean;
544
+ className?: string;
545
+ placeholder?: string;
546
+ }
547
+ /** Searchable dropdown selector for blockchain networks with optional grouping. */
548
+ declare function NetworkSelector<T>({
549
+ networks,
550
+ selectedNetwork,
551
+ onSelectNetwork,
552
+ getNetworkLabel,
553
+ getNetworkIcon,
554
+ getNetworkType,
555
+ getNetworkId,
556
+ groupByEcosystem,
557
+ getEcosystem,
558
+ filterNetwork,
559
+ className,
560
+ placeholder
561
+ }: NetworkSelectorProps<T>): React$2.ReactElement;
562
+ //# sourceMappingURL=network-selector.d.ts.map
563
+ //#endregion
564
+ //#region src/components/ui/network-status-badge.d.ts
565
+ interface NetworkStatusBadgeProps {
566
+ network: NetworkConfig | null;
567
+ className?: string;
568
+ }
569
+ /**
570
+ * NetworkStatusBadge - Displays network information in a compact badge format
571
+ * Shows the network icon, ecosystem, and name with dashed borders for testnet/devnet
572
+ */
573
+ declare function NetworkStatusBadge({
574
+ network,
575
+ className
576
+ }: NetworkStatusBadgeProps): React$1.ReactElement | null;
577
+ //#endregion
578
+ //#region src/components/ui/popover.d.ts
579
+ declare const Popover: React$2.FC<PopoverPrimitive.PopoverProps>;
580
+ declare const PopoverTrigger: React$2.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$2.RefAttributes<HTMLButtonElement>>;
581
+ declare const PopoverAnchor: React$2.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$2.RefAttributes<HTMLDivElement>>;
582
+ declare const PopoverContent: React$2.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
583
+ //#endregion
584
+ //#region src/components/ui/progress.d.ts
585
+ declare const Progress: React$2.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
586
+ //#endregion
587
+ //#region src/components/ui/radio-group.d.ts
588
+ declare const RadioGroup: React$2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
589
+ declare const RadioGroupItem: React$2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$2.RefAttributes<HTMLButtonElement>, "ref"> & React$2.RefAttributes<HTMLButtonElement>>;
590
+ //#endregion
591
+ //#region src/components/ui/select.d.ts
592
+ declare const Select: React$2.FC<SelectPrimitive.SelectProps>;
593
+ declare const SelectGroup: React$2.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$2.RefAttributes<HTMLDivElement>>;
594
+ declare const SelectValue: React$2.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$2.RefAttributes<HTMLSpanElement>>;
595
+ declare const SelectTrigger: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$2.RefAttributes<HTMLButtonElement>, "ref"> & React$2.RefAttributes<HTMLButtonElement>>;
596
+ declare const SelectScrollUpButton: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
597
+ declare const SelectScrollDownButton: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
598
+ declare const SelectContent: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
599
+ declare const SelectLabel: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
600
+ declare const SelectItem: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
601
+ declare const SelectSeparator: React$2.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
602
+ //#endregion
603
+ //#region src/components/ui/sidebar/SidebarButton.d.ts
604
+ interface SidebarButtonProps {
605
+ icon?: ReactNode;
606
+ children: ReactNode;
607
+ onClick?: () => void;
608
+ size?: 'default' | 'small';
609
+ badge?: string;
610
+ disabled?: boolean;
611
+ isSelected?: boolean;
612
+ /** When provided, renders as an anchor element instead of a button */
613
+ href?: string;
614
+ target?: React$1.HTMLAttributeAnchorTarget;
615
+ rel?: string;
616
+ className?: string;
617
+ }
618
+ /**
619
+ * A styled button component for sidebar actions with consistent styling.
620
+ * Can render as a button or anchor element depending on whether href is provided.
621
+ */
622
+ declare function SidebarButton({
623
+ icon,
624
+ children,
625
+ onClick,
626
+ size,
627
+ badge,
628
+ disabled,
629
+ isSelected,
630
+ href,
631
+ target,
632
+ rel,
633
+ className
634
+ }: SidebarButtonProps): React$1.ReactElement;
635
+ //# sourceMappingURL=SidebarButton.d.ts.map
636
+ //#endregion
637
+ //#region src/components/ui/sidebar/SidebarLayout.d.ts
638
+ interface SidebarLayoutProps {
639
+ /** Content for the sidebar header (e.g., logo) */
640
+ header?: ReactNode;
641
+ /** Content to be displayed below the header but above the scrollable area */
642
+ subHeader?: ReactNode;
643
+ /** Main scrollable content area */
644
+ children: ReactNode;
645
+ /** Content for the fixed footer (e.g., nav icons) */
646
+ footer?: ReactNode;
647
+ /** Additional CSS classes for the sidebar container */
648
+ className?: string;
649
+ /** Width of the sidebar (default: 289px) */
650
+ width?: number | string;
651
+ /** Background color/class for the sidebar */
652
+ background?: string;
653
+ /** Controls visibility in mobile slide-over */
654
+ mobileOpen?: boolean;
655
+ /** Close handler for mobile slide-over */
656
+ onMobileOpenChange?: (open: boolean) => void;
657
+ /** Aria label for mobile dialog */
658
+ mobileAriaLabel?: string;
659
+ }
660
+ /**
661
+ * A flexible sidebar layout component with desktop sidebar and mobile slide-over.
662
+ * Provides slots for header, scrollable content, and footer.
663
+ */
664
+ declare function SidebarLayout({
665
+ header,
666
+ subHeader,
667
+ children,
668
+ footer,
669
+ className,
670
+ width,
671
+ background,
672
+ mobileOpen,
673
+ onMobileOpenChange,
674
+ mobileAriaLabel
675
+ }: SidebarLayoutProps): React$1.ReactElement;
676
+ //# sourceMappingURL=SidebarLayout.d.ts.map
677
+ //#endregion
678
+ //#region src/components/ui/sidebar/SidebarSection.d.ts
679
+ interface SidebarSectionProps {
680
+ /** Optional section title displayed above the content */
681
+ title?: string;
682
+ /** Content to render within the section */
683
+ children: ReactNode;
684
+ /** Additional CSS classes */
685
+ className?: string;
686
+ /** CSS classes for the title element */
687
+ titleClassName?: string;
688
+ /** Whether this section should grow to fill available space */
689
+ grow?: boolean;
690
+ }
691
+ /**
692
+ * A generic sidebar section wrapper with optional title.
693
+ * Used to group related sidebar items together.
694
+ */
695
+ declare function SidebarSection({
696
+ title,
697
+ children,
698
+ className,
699
+ titleClassName,
700
+ grow
701
+ }: SidebarSectionProps): React$1.ReactElement;
702
+ //# sourceMappingURL=SidebarSection.d.ts.map
703
+ //#endregion
704
+ //#region src/components/ui/tabs.d.ts
705
+ /** Tabs container component wrapping Radix UI Tabs Root. */
706
+ declare function Tabs({
707
+ className,
708
+ ...props
709
+ }: React$2.ComponentProps<typeof TabsPrimitive.Root>): React$2.ReactElement;
710
+ /** Tabs list component containing tab triggers. */
711
+ declare function TabsList({
712
+ className,
713
+ ...props
714
+ }: React$2.ComponentProps<typeof TabsPrimitive.List>): React$2.ReactElement;
715
+ /** Individual tab trigger button. */
716
+ declare function TabsTrigger({
717
+ className,
718
+ ...props
719
+ }: React$2.ComponentProps<typeof TabsPrimitive.Trigger>): React$2.ReactElement;
720
+ /** Tab content panel displayed when its trigger is active. */
721
+ declare function TabsContent({
722
+ className,
723
+ ...props
724
+ }: React$2.ComponentProps<typeof TabsPrimitive.Content>): React$2.ReactElement;
725
+ //#endregion
726
+ //#region src/components/ui/textarea.d.ts
727
+ type TextareaProps = React$2.TextareaHTMLAttributes<HTMLTextAreaElement>;
728
+ declare const Textarea: React$2.ForwardRefExoticComponent<TextareaProps & React$2.RefAttributes<HTMLTextAreaElement>>;
729
+ //#endregion
730
+ //#region src/components/ui/tooltip.d.ts
731
+ declare const TooltipProvider: React$2.FC<TooltipPrimitive.TooltipProviderProps>;
732
+ declare const Tooltip: React$2.FC<TooltipPrimitive.TooltipProps>;
733
+ declare const TooltipTrigger: React$2.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$2.RefAttributes<HTMLButtonElement>>;
734
+ declare const TooltipContent: React$2.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$2.RefAttributes<HTMLDivElement>, "ref"> & React$2.RefAttributes<HTMLDivElement>>;
735
+ //#endregion
736
+ //#region src/components/ui/view-contract-state-button.d.ts
737
+ interface ViewContractStateButtonProps {
738
+ contractAddress: string | null;
739
+ onToggle: () => void;
740
+ }
741
+ /**
742
+ * ViewContractStateButton - A button to toggle the contract state widget
743
+ * Shows the contract address in a truncated format
744
+ */
745
+ declare function ViewContractStateButton({
746
+ contractAddress,
747
+ onToggle
748
+ }: ViewContractStateButtonProps): React$1.ReactElement | null;
749
+ //#endregion
750
+ //#region src/components/fields/BaseField.d.ts
751
+ /**
752
+ * Base props shared by all field components
753
+ *
754
+ * @template TFieldValues The field values type from React Hook Form
755
+ */
756
+ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues> {
757
+ /**
758
+ * Unique identifier for the field
759
+ */
760
+ id: string;
761
+ /**
762
+ * Label text to display
763
+ */
764
+ label: string;
765
+ /**
766
+ * Placeholder text when empty
767
+ */
768
+ placeholder?: string;
769
+ /**
770
+ * Helper text to display below the field
771
+ */
772
+ helperText?: string;
773
+ /**
774
+ * Field width for layout
775
+ */
776
+ width?: 'full' | 'half' | 'third';
777
+ /**
778
+ * Validation rules for the field
779
+ */
780
+ validation?: FieldValidation;
781
+ /**
782
+ * Form control from React Hook Form
783
+ */
784
+ control: Control<TFieldValues>;
785
+ /**
786
+ * Field name in the form
787
+ */
788
+ name: FieldPath<TFieldValues>;
789
+ /**
790
+ * Whether the field should be displayed as read-only/disabled.
791
+ * @default false
792
+ */
793
+ readOnly?: boolean;
794
+ }
795
+ /**
796
+ * BaseField component to provide a consistent layout for form fields
797
+ *
798
+ * @important This component is the foundation of the app rendering architecture and should
799
+ * ONLY be used by field-specific components within the system, not as a standalone component.
800
+ *
801
+ * Architecture role:
802
+ * 1. Provides a consistent layout structure for all field types
803
+ * 2. Handles integration with React Hook Form through the FormField component
804
+ * 3. Manages common rendering aspects like labels, error messages, and help text
805
+ * 4. Delegates actual input rendering to field-specific components via renderInput
806
+ *
807
+ * Field component hierarchy:
808
+ * - TransactionForm (top-level renderer)
809
+ * - DynamicFormField (field type selector)
810
+ * - Specific field components (TextField, NumberField, etc.)
811
+ * - BaseField (common field structure - this component)
812
+ * - Actual input element rendered by renderInput
813
+ *
814
+ * This component should only be extended by field-specific components like
815
+ * TextField, NumberField, and AddressField - it is not meant for direct use in forms.
816
+ */
817
+ declare function BaseField<TFieldValues extends FieldValues = FieldValues>({
818
+ id,
819
+ label,
820
+ helperText,
821
+ control,
822
+ name,
823
+ width,
824
+ renderInput
825
+ }: BaseFieldProps<TFieldValues> & {
826
+ renderInput: (field: Record<string, unknown>, props: {
827
+ id: string;
828
+ ref?: ForwardedRef<HTMLElement>;
829
+ }) => ReactNode;
830
+ ref?: ForwardedRef<HTMLElement>;
831
+ }): ReactElement;
832
+ declare namespace BaseField {
833
+ var displayName: string;
834
+ }
835
+ //# sourceMappingURL=BaseField.d.ts.map
836
+ //#endregion
837
+ //#region src/components/fields/AddressField.d.ts
838
+ interface AddressFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
839
+ adapter?: ContractAdapter;
840
+ }
841
+ /**
842
+ * Address input field component specifically designed for blockchain addresses via React Hook Form integration.
843
+ *
844
+ * Architecture flow:
845
+ * 1. Form schemas are generated from contract functions using adapters
846
+ * 2. TransactionForm renders the overall form structure with React Hook Form
847
+ * 3. DynamicFormField selects the appropriate field component (like AddressField) based on field type
848
+ * 4. BaseField provides consistent layout and hook form integration
849
+ * 5. This component handles blockchain address-specific rendering and validation using the passed adapter
850
+ *
851
+ * The component includes:
852
+ * - Integration with React Hook Form
853
+ * - Blockchain address validation through adapter-provided custom validation
854
+ * - Automatic error handling and reporting
855
+ * - Chain-agnostic design (validation handled by adapters)
856
+ * - Full accessibility support with ARIA attributes
857
+ * - Keyboard navigation
858
+ */
859
+ declare function AddressField<TFieldValues extends FieldValues = FieldValues>({
860
+ id,
861
+ label,
862
+ placeholder,
863
+ helperText,
864
+ control,
865
+ name,
866
+ width,
867
+ validation,
868
+ adapter,
869
+ readOnly
870
+ }: AddressFieldProps<TFieldValues>): React$1.ReactElement;
871
+ declare namespace AddressField {
872
+ var displayName: string;
873
+ }
874
+ //#endregion
875
+ //#region src/components/fields/AmountField.d.ts
876
+ /**
877
+ * AmountField component properties
878
+ */
879
+ interface AmountFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
880
+ /**
881
+ * Minimum value validation
882
+ */
883
+ min?: number;
884
+ /**
885
+ * Maximum value validation
886
+ */
887
+ max?: number;
888
+ /**
889
+ * Step value for increment/decrement
890
+ */
891
+ step?: number;
892
+ /**
893
+ * Number of decimal places to allow
894
+ */
895
+ decimals?: number;
896
+ /**
897
+ * Currency/token symbol to display
898
+ */
899
+ symbol?: string;
900
+ /**
901
+ * Position of the symbol (before or after the amount)
902
+ */
903
+ symbolPosition?: 'prefix' | 'suffix';
904
+ /**
905
+ * Custom validation function for amount values
906
+ */
907
+ validateAmount?: (value: number) => boolean | string;
908
+ }
909
+ /**
910
+ * Amount input field component specifically designed for currency/token amounts with React Hook Form integration.
911
+ *
912
+ * Architecture flow:
913
+ * 1. Form schemas are generated from contract functions using adapters
914
+ * 2. TransactionForm renders the overall form structure with React Hook Form
915
+ * 3. DynamicFormField selects the appropriate field component based on field type
916
+ * 4. BaseField provides consistent layout and hook form integration
917
+ * 5. This component handles amount-specific rendering and validation
918
+ *
919
+ * The component includes:
920
+ * - Integration with React Hook Form
921
+ * - Support for currency/token symbols
922
+ * - Numeric-specific validations (min, max, decimals)
923
+ * - Customizable validation through adapter integration
924
+ * - Automatic error handling and reporting
925
+ * - Full accessibility support with ARIA attributes
926
+ * - Keyboard navigation with arrow keys for numeric increment/decrement
927
+ */
928
+ declare function AmountField<TFieldValues extends FieldValues = FieldValues>({
929
+ id,
930
+ label,
931
+ placeholder,
932
+ helperText,
933
+ control,
934
+ name,
935
+ width,
936
+ validation,
937
+ min,
938
+ max,
939
+ step,
940
+ decimals,
941
+ symbol,
942
+ symbolPosition,
943
+ validateAmount
944
+ }: AmountFieldProps<TFieldValues>): React$1.ReactElement;
945
+ declare namespace AmountField {
946
+ var displayName: string;
947
+ }
948
+ //# sourceMappingURL=AmountField.d.ts.map
949
+ //#endregion
950
+ //#region src/components/fields/ArrayField.d.ts
951
+ /**
952
+ * ArrayField component properties
953
+ */
954
+ interface ArrayFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
955
+ /**
956
+ * The type of elements in the array (e.g., 'text', 'number', 'blockchain-address')
957
+ */
958
+ elementType?: FormFieldType['type'];
959
+ /**
960
+ * Minimum number of array elements
961
+ */
962
+ minItems?: number;
963
+ /**
964
+ * Maximum number of array elements
965
+ */
966
+ maxItems?: number;
967
+ /**
968
+ * Base configuration for array element fields.
969
+ * This allows specifying common properties like placeholder, helperText, or specific validation
970
+ * for each element in the array.
971
+ */
972
+ elementFieldConfig?: Partial<FormFieldType>;
973
+ /**
974
+ * Render function for array elements.
975
+ * This is crucial for rendering complex elements or integrating custom field components.
976
+ */
977
+ renderElement?: (field: FormFieldType, index: number) => React$1.ReactNode;
978
+ }
979
+ /**
980
+ * Array input field component specifically designed for React Hook Form integration.
981
+ *
982
+ * This component provides a dynamic interface for managing array inputs with:
983
+ * - Add/remove functionality for array items
984
+ * - Validation for array length constraints
985
+ * - Integration with existing field components for array elements
986
+ * - Full accessibility support
987
+ *
988
+ * The component reuses existing field components (TextField, NumberField, etc.)
989
+ * for individual array elements, maintaining consistency across the form system.
990
+ *
991
+ * Why the extra guards and synchronization exist (post-mortem/rationale):
992
+ * - In certain runtime states (StrictMode double-invocation, preview remounts, state rehydration
993
+ * from storage), React Hook Form's useFieldArray may not synchronously reflect an `append()`
994
+ * or `remove()` call in the immediately subsequent read (e.g., reading `fields.length` or
995
+ * `getValues(name)` right after the call). This resulted in newly added items (especially
996
+ * falsy defaults like 0/false) appearing briefly and then disappearing, or remove operations
997
+ * not updating the UI.
998
+ * - To make array operations deterministic and resilient across flows (preview form with
999
+ * FormProvider and the wizard's "Use Hardcoded Value" without a provider), we:
1000
+ * 1) Read a stable snapshot of the array value BEFORE `append()` and, if the immediate
1001
+ * post-append read doesn't reflect the addition, we coerce the state to
1002
+ * "previousSnapshot + newValue" via `setValue` (when context exists) or `replace`.
1003
+ * 2) Avoid `remove()` race conditions by always computing the new array via filter and
1004
+ * applying it with `replace`, which proved to be the most consistent across contexts.
1005
+ * 3) Keep `fields` in sync with the watched array value using a guarded `replace` in an effect.
1006
+ * A ref flag (`isReplacingRef`) prevents infinite loops when we ourselves are driving
1007
+ * the `replace`.
1008
+ * 4) Use optional chaining for form context (`formContext?.control`, `formContext?.getValues`,
1009
+ * `formContext?.setValue`) so the component works with either an inherited FormProvider or
1010
+ * an explicit `control` prop.
1011
+ * 5) Use `queueMicrotask` to reset the guard flag after our `replace` has been scheduled,
1012
+ * avoiding an extra timer tick while ensuring the effect observes the final state.
1013
+ *
1014
+ * Guarantees:
1015
+ * - Operations are idempotent: the fallback only runs when the immediate read does not reflect
1016
+ * the intended state, so we don't double-append/remove.
1017
+ * - Works both with and without FormProvider (preview vs wizard) due to context-agnostic state
1018
+ * reads and `replace` fallback.
1019
+ */
1020
+ declare function ArrayField<TFieldValues extends FieldValues = FieldValues>({
1021
+ id,
1022
+ label,
1023
+ helperText,
1024
+ control,
1025
+ name,
1026
+ width,
1027
+ validation,
1028
+ elementType,
1029
+ minItems,
1030
+ maxItems,
1031
+ elementFieldConfig,
1032
+ renderElement,
1033
+ readOnly
1034
+ }: ArrayFieldProps<TFieldValues>): React$1.ReactElement;
1035
+ declare namespace ArrayField {
1036
+ var displayName: string;
1037
+ }
1038
+ //# sourceMappingURL=ArrayField.d.ts.map
1039
+ //#endregion
1040
+ //#region src/components/fields/ArrayObjectField.d.ts
1041
+ /**
1042
+ * ArrayObjectField component properties
1043
+ */
1044
+ interface ArrayObjectFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1045
+ /**
1046
+ * The components/properties of each object in the array.
1047
+ * Defines the schema for the nested fields within each object item.
1048
+ */
1049
+ components?: FunctionParameter[];
1050
+ /**
1051
+ * Minimum number of array elements
1052
+ */
1053
+ minItems?: number;
1054
+ /**
1055
+ * Maximum number of array elements
1056
+ */
1057
+ maxItems?: number;
1058
+ /**
1059
+ * Render function for object properties.
1060
+ * This function is responsible for rendering each individual property
1061
+ * of an object within an array item.
1062
+ */
1063
+ renderProperty?: (field: FormFieldType, itemIndex: number, propertyName: string) => React$1.ReactNode;
1064
+ /**
1065
+ * Whether items should be collapsible.
1066
+ * Useful for managing UI complexity when objects have many properties.
1067
+ */
1068
+ collapsible?: boolean;
1069
+ /**
1070
+ * Whether items should start collapsed.
1071
+ */
1072
+ defaultCollapsed?: boolean;
1073
+ /**
1074
+ * The adapter for chain-specific type mapping.
1075
+ * Essential for correctly determining field types for object properties.
1076
+ */
1077
+ adapter?: ContractAdapter;
1078
+ /**
1079
+ * Optional contract schema to enrich nested field generation.
1080
+ */
1081
+ contractSchema?: ContractSchema;
1082
+ }
1083
+ /**
1084
+ * Array of objects input field component specifically designed for React Hook Form integration.
1085
+ *
1086
+ * This component provides a dynamic interface for managing arrays of composite objects with:
1087
+ * - Add/remove functionality for array items
1088
+ * - Structured rendering of object properties within each array item
1089
+ * - Collapsible items for better UX with complex objects
1090
+ * - Validation for array constraints and object properties (though individual property validation is largely via rendered component)
1091
+ * - Full accessibility support
1092
+ *
1093
+ * The component combines the functionality of ArrayField and ObjectField to handle
1094
+ * complex nested data structures commonly found in blockchain contracts.
1095
+ */
1096
+ declare function ArrayObjectField<TFieldValues extends FieldValues = FieldValues>({
1097
+ id,
1098
+ label,
1099
+ helperText,
1100
+ control,
1101
+ name,
1102
+ width,
1103
+ validation,
1104
+ components,
1105
+ minItems,
1106
+ maxItems,
1107
+ renderProperty,
1108
+ collapsible,
1109
+ defaultCollapsed,
1110
+ readOnly,
1111
+ adapter,
1112
+ contractSchema
1113
+ }: ArrayObjectFieldProps<TFieldValues>): React$1.ReactElement;
1114
+ declare namespace ArrayObjectField {
1115
+ var displayName: string;
1116
+ }
1117
+ //# sourceMappingURL=ArrayObjectField.d.ts.map
1118
+ //#endregion
1119
+ //#region src/components/fields/BigIntField.d.ts
1120
+ /**
1121
+ * BigIntField component properties
1122
+ */
1123
+ interface BigIntFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1124
+ /**
1125
+ * Custom validation function for big integer string values
1126
+ */
1127
+ validateBigInt?: (value: string) => boolean | string;
1128
+ }
1129
+ /**
1130
+ * Big integer input field component for large numbers beyond JavaScript's Number precision.
1131
+ *
1132
+ * This component is designed for blockchain integer types like uint128, uint256, int128, int256
1133
+ * that can hold values larger than JavaScript's Number.MAX_SAFE_INTEGER (2^53 - 1).
1134
+ *
1135
+ * Architecture flow:
1136
+ * 1. Form schemas are generated from contract functions using adapters
1137
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1138
+ * 3. DynamicFormField selects BigIntField for large integer types
1139
+ * 4. This component handles string-based integer input with validation
1140
+ * 5. Adapters convert the string to BigInt when submitting transactions
1141
+ *
1142
+ * The component includes:
1143
+ * - Integer-only validation (no decimals allowed)
1144
+ * - String-based storage to avoid JavaScript Number precision issues
1145
+ * - Integration with React Hook Form
1146
+ * - Automatic error handling and reporting
1147
+ * - Full accessibility support with ARIA attributes
1148
+ * - Keyboard navigation
1149
+ */
1150
+ declare function BigIntField<TFieldValues extends FieldValues = FieldValues>({
1151
+ id,
1152
+ label,
1153
+ placeholder,
1154
+ helperText,
1155
+ control,
1156
+ name,
1157
+ width,
1158
+ validation,
1159
+ validateBigInt,
1160
+ readOnly
1161
+ }: BigIntFieldProps<TFieldValues>): React$1.ReactElement;
1162
+ declare namespace BigIntField {
1163
+ var displayName: string;
1164
+ }
1165
+ //# sourceMappingURL=BigIntField.d.ts.map
1166
+ //#endregion
1167
+ //#region src/components/fields/BooleanField.d.ts
1168
+ /**
1169
+ * BooleanField component properties
1170
+ */
1171
+ interface BooleanFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1172
+ /**
1173
+ * Custom validation function for boolean values
1174
+ */
1175
+ validateBoolean?: (value: boolean) => boolean | string;
1176
+ }
1177
+ /**
1178
+ * Boolean input field component (checkbox) specifically designed for React Hook Form integration.
1179
+ *
1180
+ * Architecture flow:
1181
+ * 1. Form schemas are generated from contract functions using adapters
1182
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1183
+ * 3. DynamicFormField selects the appropriate field component (like BooleanField) based on field type
1184
+ * 4. BaseField provides consistent layout and hook form integration
1185
+ * 5. This component handles boolean-specific rendering and validation
1186
+ *
1187
+ * The component includes:
1188
+ * - Integration with React Hook Form
1189
+ * - Checkbox-specific behavior
1190
+ * - Customizable validation through adapter integration
1191
+ * - Automatic error handling and reporting
1192
+ * - Full accessibility support with ARIA attributes
1193
+ * - Keyboard navigation with Space/Enter for toggling
1194
+ */
1195
+ declare function BooleanField<TFieldValues extends FieldValues = FieldValues>({
1196
+ id,
1197
+ label,
1198
+ helperText,
1199
+ control,
1200
+ name,
1201
+ width,
1202
+ validation,
1203
+ validateBoolean,
1204
+ readOnly
1205
+ }: BooleanFieldProps<TFieldValues>): React$1.ReactElement;
1206
+ declare namespace BooleanField {
1207
+ var displayName: string;
1208
+ }
1209
+ //# sourceMappingURL=BooleanField.d.ts.map
1210
+ //#endregion
1211
+ //#region src/components/fields/BytesField.d.ts
1212
+ /**
1213
+ * BytesField component properties
1214
+ */
1215
+ interface BytesFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1216
+ /**
1217
+ * Number of rows for the textarea
1218
+ */
1219
+ rows?: number;
1220
+ /**
1221
+ * Maximum length in bytes (not characters)
1222
+ */
1223
+ maxBytes?: number;
1224
+ /**
1225
+ * Whether to accept hex, base64, or both formats
1226
+ */
1227
+ acceptedFormats?: 'hex' | 'base64' | 'both';
1228
+ /**
1229
+ * Whether to automatically add/remove 0x prefix for hex values
1230
+ */
1231
+ autoPrefix?: boolean;
1232
+ /**
1233
+ * Whether to allow 0x prefix in hex input (defaults to true)
1234
+ */
1235
+ allowHexPrefix?: boolean;
1236
+ }
1237
+ /**
1238
+ * Specialized input field for bytes data with built-in hex/base64 validation.
1239
+ *
1240
+ * This component provides proper validation for blockchain bytes data including:
1241
+ * - Hex encoding validation (with optional 0x prefix support)
1242
+ * - Base64 encoding validation
1243
+ * - Byte length validation
1244
+ * - Format detection and conversion
1245
+ *
1246
+ * Key props for EVM compatibility:
1247
+ * - `allowHexPrefix`: Whether to accept 0x prefixed input (defaults to true)
1248
+ * - `autoPrefix`: Whether to automatically add 0x prefixes (defaults to false)
1249
+ *
1250
+ * These are separate concerns - you can accept 0x input without auto-adding prefixes.
1251
+ *
1252
+ * Architecture flow:
1253
+ * 1. Form schemas are generated from contract functions using adapters
1254
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1255
+ * 3. DynamicFormField selects BytesField for 'bytes' field types
1256
+ * 4. BaseField provides consistent layout and hook form integration
1257
+ * 5. This component handles bytes-specific validation and formatting
1258
+ */
1259
+ declare function BytesField<TFieldValues extends FieldValues = FieldValues>({
1260
+ id,
1261
+ label,
1262
+ helperText,
1263
+ control,
1264
+ name,
1265
+ width,
1266
+ validation,
1267
+ placeholder,
1268
+ rows,
1269
+ maxBytes,
1270
+ acceptedFormats,
1271
+ autoPrefix,
1272
+ allowHexPrefix,
1273
+ readOnly
1274
+ }: BytesFieldProps<TFieldValues>): React$1.ReactElement;
1275
+ declare namespace BytesField {
1276
+ var displayName: string;
1277
+ }
1278
+ //# sourceMappingURL=BytesField.d.ts.map
1279
+ //#endregion
1280
+ //#region src/components/fields/CodeEditorField.d.ts
1281
+ /**
1282
+ * CodeEditorField component properties
1283
+ */
1284
+ interface CodeEditorFieldProps<TFieldValues extends FieldValues = FieldValues> {
1285
+ /**
1286
+ * Unique identifier for the field
1287
+ */
1288
+ id: string;
1289
+ /**
1290
+ * Optional CSS class name for the container
1291
+ */
1292
+ className?: string;
1293
+ /**
1294
+ * Field name for form control
1295
+ */
1296
+ name: Path<TFieldValues>;
1297
+ /**
1298
+ * React Hook Form control object
1299
+ */
1300
+ control: Control<TFieldValues>;
1301
+ /**
1302
+ * Field label
1303
+ */
1304
+ label?: string;
1305
+ /**
1306
+ * Helper text displayed below the field
1307
+ */
1308
+ helperText?: string;
1309
+ /**
1310
+ * Placeholder text when empty
1311
+ */
1312
+ placeholder?: string;
1313
+ /**
1314
+ * Programming language for syntax highlighting
1315
+ */
1316
+ language?: string;
1317
+ /**
1318
+ * Editor theme
1319
+ */
1320
+ theme?: string;
1321
+ /**
1322
+ * Editor height
1323
+ */
1324
+ height?: string;
1325
+ /**
1326
+ * Editor maximum height (with scrollbar for overflow)
1327
+ */
1328
+ maxHeight?: string;
1329
+ /**
1330
+ * Content size threshold for disabling syntax highlighting (default: 5000 chars)
1331
+ */
1332
+ performanceThreshold?: number;
1333
+ /**
1334
+ * Whether the field is required
1335
+ */
1336
+ required?: boolean;
1337
+ /**
1338
+ * Whether the field is disabled
1339
+ */
1340
+ disabled?: boolean;
1341
+ /**
1342
+ * Whether the field is read-only
1343
+ */
1344
+ readOnly?: boolean;
1345
+ /**
1346
+ * Custom validation function for code values
1347
+ */
1348
+ validateCode?: (value: string) => boolean | string;
1349
+ }
1350
+ /**
1351
+ * CodeEditorField provides syntax-highlighted code editing with form integration.
1352
+ *
1353
+ * Features:
1354
+ * - Syntax highlighting via @uiw/react-textarea-code-editor
1355
+ * - React Hook Form integration with Controller
1356
+ * - Configurable language support (JSON, TypeScript, etc.)
1357
+ * - Performance optimizations with smart highlighting
1358
+ * - Constrained height with automatic scrolling
1359
+ * - Design system styling integration
1360
+ *
1361
+ * @example
1362
+ * ```tsx
1363
+ * <CodeEditorField
1364
+ * id="contractAbi"
1365
+ * name="contractSchema"
1366
+ * control={control}
1367
+ * label="Contract ABI"
1368
+ * language="json"
1369
+ * placeholder="Paste your ABI JSON here..."
1370
+ * />
1371
+ * ```
1372
+ */
1373
+ declare function CodeEditorField<TFieldValues extends FieldValues = FieldValues>({
1374
+ id,
1375
+ name,
1376
+ control,
1377
+ label,
1378
+ helperText,
1379
+ placeholder,
1380
+ language,
1381
+ theme,
1382
+ height,
1383
+ maxHeight,
1384
+ performanceThreshold,
1385
+ required,
1386
+ disabled,
1387
+ readOnly,
1388
+ validateCode,
1389
+ className
1390
+ }: CodeEditorFieldProps<TFieldValues>): React$1.ReactElement;
1391
+ declare namespace CodeEditorField {
1392
+ var displayName: string;
1393
+ }
1394
+ //# sourceMappingURL=CodeEditorField.d.ts.map
1395
+ //#endregion
1396
+ //#region src/components/fields/DateTimeField.d.ts
1397
+ /**
1398
+ * DateTimeField component properties
1399
+ */
1400
+ interface DateTimeFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1401
+ /**
1402
+ * Placeholder text displayed when the field is empty
1403
+ */
1404
+ placeholder?: string;
1405
+ /**
1406
+ * If true, clears the field when user clicks Escape; otherwise just blurs
1407
+ */
1408
+ clearOnEscape?: boolean;
1409
+ }
1410
+ /**
1411
+ * Datetime-local input field component specifically designed for React Hook Form integration.
1412
+ *
1413
+ * Architecture flow:
1414
+ * 1. Form schemas are generated from contract functions using adapters
1415
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1416
+ * 3. DynamicFormField selects the appropriate field component (like DateTimeField) based on field type
1417
+ * 4. BaseField provides consistent layout and hook form integration
1418
+ * 5. This component handles date-time specific rendering, conversion, and validation
1419
+ *
1420
+ * The component includes:
1421
+ * - Integration with React Hook Form
1422
+ * - Conversion between input value (YYYY-MM-DDTHH:mm) and ISO 8601 strings (toISOString)
1423
+ * - Customizable validation through adapter integration
1424
+ * - Automatic error handling and reporting
1425
+ * - Full accessibility support with ARIA attributes
1426
+ * - Keyboard navigation with Escape-to-clear behavior
1427
+ */
1428
+ declare function DateTimeField<TFieldValues extends FieldValues = FieldValues>({
1429
+ id,
1430
+ label,
1431
+ placeholder,
1432
+ helperText,
1433
+ control,
1434
+ name,
1435
+ width,
1436
+ validation,
1437
+ readOnly,
1438
+ clearOnEscape
1439
+ }: DateTimeFieldProps<TFieldValues>): React$1.ReactElement;
1440
+ declare namespace DateTimeField {
1441
+ var displayName: string;
1442
+ }
1443
+ //# sourceMappingURL=DateTimeField.d.ts.map
1444
+ //#endregion
1445
+ //#region src/components/fields/EnumField.d.ts
1446
+ /**
1447
+ * Enum variant definition
1448
+ */
1449
+ interface EnumVariant {
1450
+ /** Name of the variant (e.g., 'One', 'Two', 'Three') */
1451
+ name: string;
1452
+ /** Type of variant: 'void' for unit variants, 'tuple' for variants with payload, 'integer' for numeric enums */
1453
+ type: 'void' | 'tuple' | 'integer';
1454
+ /** For tuple variants: array of payload type names (e.g., ['U32', 'ScString']) */
1455
+ payloadTypes?: string[];
1456
+ /** Optional nested component definitions for tuple payload entries */
1457
+ payloadComponents?: (FunctionParameter[] | undefined)[];
1458
+ /** For integer variants: the numeric value */
1459
+ value?: number;
1460
+ /** Flag indicating if this variant has a single Tuple payload (for serialization) */
1461
+ isSingleTuplePayload?: boolean;
1462
+ }
1463
+ /**
1464
+ * Enum metadata extracted from contract spec
1465
+ */
1466
+ interface EnumMetadata {
1467
+ /** Name of the enum type */
1468
+ name: string;
1469
+ /** Array of variants in the enum */
1470
+ variants: EnumVariant[];
1471
+ /** True if all variants are unit variants (no payloads), suitable for simple select/radio */
1472
+ isUnitOnly: boolean;
1473
+ }
1474
+ /**
1475
+ * Enum field value structure for blockchain enum types
1476
+ */
1477
+ type EnumFieldValue = EnumValue;
1478
+ /**
1479
+ * EnumField component properties
1480
+ */
1481
+ interface EnumFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1482
+ /**
1483
+ * Enum metadata containing variant information
1484
+ */
1485
+ enumMetadata?: EnumMetadata;
1486
+ /**
1487
+ * Custom validation function for enum values
1488
+ */
1489
+ validateEnum?: (value: EnumFieldValue) => boolean | string;
1490
+ /**
1491
+ * Render function for payload input fields.
1492
+ * This allows the parent component to provide appropriate field components
1493
+ * based on the payload type, maintaining separation of concerns.
1494
+ */
1495
+ renderPayloadField?: (field: FormFieldType, payloadIndex: number) => React$1.ReactNode;
1496
+ }
1497
+ /**
1498
+ * Composite enum field component for blockchain enum types.
1499
+ *
1500
+ * This component handles both unit enums (simple variants) and tagged enums (variants with payloads).
1501
+ * For unit enums, it renders as a simple select dropdown.
1502
+ * For tagged enums, it renders a variant picker plus conditional input fields for payload data.
1503
+ *
1504
+ * The value format is designed to be chain-agnostic:
1505
+ * - Unit variants: { tag: "VariantName" }
1506
+ * - Tuple variants: { tag: "VariantName", values: [...] }
1507
+ */
1508
+ declare function EnumField<TFieldValues extends FieldValues = FieldValues>({
1509
+ id,
1510
+ label,
1511
+ placeholder,
1512
+ helperText,
1513
+ control,
1514
+ name,
1515
+ width,
1516
+ validation,
1517
+ enumMetadata,
1518
+ validateEnum,
1519
+ renderPayloadField,
1520
+ readOnly
1521
+ }: EnumFieldProps<TFieldValues>): React$1.ReactElement;
1522
+ declare namespace EnumField {
1523
+ var displayName: string;
1524
+ }
1525
+ //# sourceMappingURL=EnumField.d.ts.map
1526
+ //#endregion
1527
+ //#region src/components/fields/FileUploadField.d.ts
1528
+ /**
1529
+ * FileUploadField component properties
1530
+ */
1531
+ interface FileUploadFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1532
+ /**
1533
+ * Accepted file types (e.g., ".zip,.tar.gz")
1534
+ */
1535
+ accept?: string;
1536
+ /**
1537
+ * Maximum file size in bytes
1538
+ */
1539
+ maxSize?: number;
1540
+ /**
1541
+ * Whether to convert the file to base64 string
1542
+ */
1543
+ convertToBase64?: boolean;
1544
+ }
1545
+ /** File upload field component with drag-and-drop support. */
1546
+ declare function FileUploadField<TFieldValues extends FieldValues = FieldValues>({
1547
+ id,
1548
+ label,
1549
+ placeholder,
1550
+ helperText,
1551
+ control,
1552
+ name,
1553
+ width,
1554
+ validation,
1555
+ readOnly,
1556
+ accept,
1557
+ maxSize,
1558
+ convertToBase64
1559
+ }: FileUploadFieldProps<TFieldValues>): React.ReactElement;
1560
+ //# sourceMappingURL=FileUploadField.d.ts.map
1561
+ //#endregion
1562
+ //#region src/components/fields/MapField/MapField.d.ts
1563
+ /**
1564
+ * MapField component properties
1565
+ */
1566
+ interface MapFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1567
+ /**
1568
+ * Map metadata containing key and value type information
1569
+ */
1570
+ mapMetadata?: {
1571
+ keyType?: string;
1572
+ valueType?: string;
1573
+ keyFieldConfig?: Partial<FormFieldType>;
1574
+ valueFieldConfig?: Partial<FormFieldType>;
1575
+ };
1576
+ /**
1577
+ * Minimum number of map entries
1578
+ */
1579
+ minItems?: number;
1580
+ /**
1581
+ * Render function for map keys.
1582
+ * This allows the parent component to provide appropriate field components
1583
+ * based on the key type, maintaining separation of concerns.
1584
+ */
1585
+ renderKeyField?: (field: FormFieldType, entryIndex: number) => React$1.ReactNode;
1586
+ /**
1587
+ * Render function for map values.
1588
+ * This allows the parent component to provide appropriate field components
1589
+ * based on the value type, maintaining separation of concerns.
1590
+ */
1591
+ renderValueField?: (field: FormFieldType, entryIndex: number) => React$1.ReactNode;
1592
+ }
1593
+ /**
1594
+ * Map (key-value dictionary) input field component specifically designed for React Hook Form integration.
1595
+ *
1596
+ * This component provides a dynamic interface for managing map/dictionary inputs with:
1597
+ * - Add/remove functionality for key-value pairs
1598
+ * - Validation for map size constraints
1599
+ * - Integration with existing field components for keys and values
1600
+ * - Chain-agnostic data format (array of {key, value} objects)
1601
+ * - Full accessibility support
1602
+ *
1603
+ * Architecture flow:
1604
+ * 1. Form schemas are generated from contract functions using adapters
1605
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1606
+ * 3. DynamicFormField selects the appropriate field component (like MapField) based on field type
1607
+ * 4. BaseField provides consistent layout and hook form integration
1608
+ * 5. This component handles map-specific rendering and validation
1609
+ *
1610
+ * The component stores data in a chain-agnostic format as an array of {key, value} objects.
1611
+ * The adapter is responsible for converting this to the chain-specific format (e.g., SorobanMapEntry[])
1612
+ * when submitting to the blockchain.
1613
+ */
1614
+ declare function MapField<TFieldValues extends FieldValues = FieldValues>({
1615
+ id,
1616
+ label,
1617
+ helperText,
1618
+ control,
1619
+ name,
1620
+ width,
1621
+ validation,
1622
+ mapMetadata,
1623
+ minItems,
1624
+ renderKeyField,
1625
+ renderValueField,
1626
+ readOnly
1627
+ }: MapFieldProps<TFieldValues>): React$1.ReactElement;
1628
+ declare namespace MapField {
1629
+ var displayName: string;
1630
+ }
1631
+ //# sourceMappingURL=MapField.d.ts.map
1632
+ //#endregion
1633
+ //#region src/components/fields/MapField/MapEntryRow.d.ts
1634
+ interface Props {
1635
+ keyField: FormFieldType;
1636
+ valueField: FormFieldType;
1637
+ isDuplicateKey: boolean;
1638
+ renderKeyField?: (field: FormFieldType, entryIndex: number) => React$1.ReactNode;
1639
+ renderValueField?: (field: FormFieldType, entryIndex: number) => React$1.ReactNode;
1640
+ index: number;
1641
+ }
1642
+ /** Renders a single key-value entry row in a map field. */
1643
+ declare function MapEntryRow({
1644
+ keyField,
1645
+ valueField,
1646
+ isDuplicateKey,
1647
+ renderKeyField,
1648
+ renderValueField,
1649
+ index
1650
+ }: Props): React$1.ReactElement;
1651
+ //#endregion
1652
+ //#region src/components/fields/MapField/hooks/useChildTouched.d.ts
1653
+ /** Computes whether any child field in a map has been touched. */
1654
+ declare function computeChildTouched(formContext: UseFormReturn | undefined, name: string, watchedValue: unknown): boolean;
1655
+ //# sourceMappingURL=useChildTouched.d.ts.map
1656
+ //#endregion
1657
+ //#region src/components/fields/MapField/hooks/useDuplicateKeyIndexes.d.ts
1658
+ /** Hook that returns indexes of map entries with duplicate keys. */
1659
+ declare function useDuplicateKeyIndexes(watchedValue: unknown): Set<number>;
1660
+ //# sourceMappingURL=useDuplicateKeyIndexes.d.ts.map
1661
+
1662
+ //#endregion
1663
+ //#region src/components/fields/MapField/hooks/useMapFieldSync.d.ts
1664
+ /**
1665
+ * Keeps a field array synchronized with a watched value's length using replace,
1666
+ * while preventing infinite loops via a guard ref.
1667
+ */
1668
+ declare function useMapFieldSync<TReplaceValue>(watchedValue: unknown, fieldsLength: number, replace: (value: TReplaceValue) => void): ReturnType<typeof React$1.useRef<boolean>>;
1669
+ //# sourceMappingURL=useMapFieldSync.d.ts.map
1670
+ //#endregion
1671
+ //#region src/components/fields/MapField/validation/validateMapStructure.d.ts
1672
+ interface ValidateArgs {
1673
+ value: unknown;
1674
+ required: boolean;
1675
+ minItems?: number;
1676
+ }
1677
+ /** Validates a map field's structure including duplicates and required entries. */
1678
+ declare function validateMapStructure({
1679
+ value,
1680
+ required,
1681
+ minItems
1682
+ }: ValidateArgs): string | true;
1683
+ //#endregion
1684
+ //#region src/components/fields/NumberField.d.ts
1685
+ /**
1686
+ * NumberField component properties
1687
+ */
1688
+ interface NumberFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1689
+ /**
1690
+ * Minimum value validation
1691
+ */
1692
+ min?: number;
1693
+ /**
1694
+ * Maximum value validation
1695
+ */
1696
+ max?: number;
1697
+ /**
1698
+ * Step value for increment/decrement
1699
+ */
1700
+ step?: number;
1701
+ /**
1702
+ * Custom validation function for number values
1703
+ */
1704
+ validateNumber?: (value: number) => boolean | string;
1705
+ }
1706
+ /**
1707
+ * Number input field component specifically designed for React Hook Form integration.
1708
+ *
1709
+ * Architecture flow:
1710
+ * 1. Form schemas are generated from contract functions using adapters
1711
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1712
+ * 3. DynamicFormField selects the appropriate field component (like NumberField) based on field type
1713
+ * 4. BaseField provides consistent layout and hook form integration
1714
+ * 5. This component handles number-specific rendering and validation
1715
+ *
1716
+ * The component includes:
1717
+ * - Integration with React Hook Form
1718
+ * - Numeric-specific validations (min, max, step)
1719
+ * - Customizable validation through adapter integration
1720
+ * - Automatic error handling and reporting
1721
+ * - Full accessibility support with ARIA attributes
1722
+ * - Keyboard navigation with arrow keys for numeric increment/decrement
1723
+ */
1724
+ declare function NumberField<TFieldValues extends FieldValues = FieldValues>({
1725
+ id,
1726
+ label,
1727
+ placeholder,
1728
+ helperText,
1729
+ control,
1730
+ name,
1731
+ width,
1732
+ validation,
1733
+ min,
1734
+ max,
1735
+ step,
1736
+ validateNumber,
1737
+ readOnly
1738
+ }: NumberFieldProps<TFieldValues>): React$1.ReactElement;
1739
+ declare namespace NumberField {
1740
+ var displayName: string;
1741
+ }
1742
+ //# sourceMappingURL=NumberField.d.ts.map
1743
+ //#endregion
1744
+ //#region src/components/fields/ObjectField.d.ts
1745
+ /**
1746
+ * ObjectField component properties
1747
+ */
1748
+ interface ObjectFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1749
+ /**
1750
+ * The components/properties of the object.
1751
+ * These define the schema for the nested fields within the object.
1752
+ */
1753
+ components?: FunctionParameter[];
1754
+ /**
1755
+ * Render function for object properties.
1756
+ * This is crucial for rendering complex properties or integrating custom field components.
1757
+ */
1758
+ renderProperty?: (field: FormFieldType, propertyName: string) => React$1.ReactNode;
1759
+ /**
1760
+ * Whether to show the object in a card container.
1761
+ * Useful for visually grouping object properties.
1762
+ */
1763
+ showCard?: boolean;
1764
+ /**
1765
+ * The adapter for chain-specific type mapping.
1766
+ * Essential for correctly determining field types for object properties.
1767
+ */
1768
+ adapter?: ContractAdapter;
1769
+ /**
1770
+ * Optional contract schema for nested metadata (structs/enums).
1771
+ */
1772
+ contractSchema?: ContractSchema;
1773
+ }
1774
+ /**
1775
+ * Object (composite/nested) input field component specifically designed for React Hook Form integration.
1776
+ *
1777
+ * This component provides a structured interface for managing object inputs with:
1778
+ * - Nested field rendering based on object components
1779
+ * - Validation for required properties (currently, the object itself can be required)
1780
+ * - Integration with existing field components for object properties
1781
+ * - Full accessibility support
1782
+ *
1783
+ * The component reuses existing field components for individual properties,
1784
+ * maintaining consistency across the form system while supporting complex nested structures.
1785
+ */
1786
+ declare function ObjectField<TFieldValues extends FieldValues = FieldValues>({
1787
+ id,
1788
+ label,
1789
+ helperText,
1790
+ control,
1791
+ name,
1792
+ width,
1793
+ validation,
1794
+ components,
1795
+ renderProperty,
1796
+ showCard,
1797
+ readOnly,
1798
+ adapter,
1799
+ contractSchema
1800
+ }: ObjectFieldProps<TFieldValues>): React$1.ReactElement;
1801
+ declare namespace ObjectField {
1802
+ var displayName: string;
1803
+ }
1804
+ //# sourceMappingURL=ObjectField.d.ts.map
1805
+ //#endregion
1806
+ //#region src/components/fields/PasswordField.d.ts
1807
+ /**
1808
+ * PasswordField component properties
1809
+ */
1810
+ interface PasswordFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1811
+ /**
1812
+ * Placeholder text displayed when the field is empty
1813
+ */
1814
+ placeholder?: string;
1815
+ /**
1816
+ * Whether to show the password visibility toggle button
1817
+ * @default true
1818
+ */
1819
+ showToggle?: boolean;
1820
+ }
1821
+ /**
1822
+ * Password input field component specifically designed for React Hook Form integration.
1823
+ *
1824
+ * Architecture flow:
1825
+ * 1. Form schemas are generated from contract functions using adapters
1826
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1827
+ * 3. DynamicFormField selects the appropriate field component (like PasswordField) based on field type
1828
+ * 4. BaseField provides consistent layout and hook form integration
1829
+ * 5. This component handles password-specific rendering and validation
1830
+ *
1831
+ * The component includes:
1832
+ * - Integration with React Hook Form
1833
+ * - Password visibility toggle functionality
1834
+ * - Password-specific validations (minLength, maxLength, pattern)
1835
+ * - Customizable validation through adapter integration
1836
+ * - Automatic error handling and reporting
1837
+ * - Full accessibility support with ARIA attributes
1838
+ * - Keyboard navigation
1839
+ */
1840
+ declare function PasswordField<TFieldValues extends FieldValues = FieldValues>({
1841
+ id,
1842
+ label,
1843
+ placeholder,
1844
+ helperText,
1845
+ control,
1846
+ name,
1847
+ width,
1848
+ validation,
1849
+ readOnly,
1850
+ showToggle
1851
+ }: PasswordFieldProps<TFieldValues>): React$1.ReactElement;
1852
+ declare namespace PasswordField {
1853
+ var displayName: string;
1854
+ }
1855
+ //# sourceMappingURL=PasswordField.d.ts.map
1856
+ //#endregion
1857
+ //#region src/components/fields/RadioField.d.ts
1858
+ /**
1859
+ * Option item for radio fields
1860
+ */
1861
+ interface RadioOption {
1862
+ /**
1863
+ * Value to be submitted with the form
1864
+ */
1865
+ value: string;
1866
+ /**
1867
+ * Display label for the option
1868
+ */
1869
+ label: string;
1870
+ /**
1871
+ * Whether this option is disabled
1872
+ */
1873
+ disabled?: boolean;
1874
+ }
1875
+ /**
1876
+ * RadioField component properties
1877
+ */
1878
+ interface RadioFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1879
+ /**
1880
+ * Available options for selection
1881
+ */
1882
+ options?: RadioOption[];
1883
+ /**
1884
+ * Direction of radio options layout
1885
+ */
1886
+ layout?: 'horizontal' | 'vertical';
1887
+ /**
1888
+ * Custom validation function for radio values
1889
+ */
1890
+ validateRadio?: (value: string) => boolean | string;
1891
+ }
1892
+ /**
1893
+ * Radio button field component specifically designed for React Hook Form integration.
1894
+ *
1895
+ * Architecture flow:
1896
+ * 1. Form schemas are generated from contract functions using adapters
1897
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1898
+ * 3. DynamicFormField selects the appropriate field component based on field type
1899
+ * 4. BaseField provides consistent layout and hook form integration
1900
+ * 5. This component handles radio-specific rendering and validation
1901
+ *
1902
+ * The component includes:
1903
+ * - Integration with React Hook Form
1904
+ * - Customizable options list
1905
+ * - Horizontal or vertical layout options
1906
+ * - Customizable validation through adapter integration
1907
+ * - Automatic error handling and reporting
1908
+ * - Full accessibility support with ARIA attributes
1909
+ */
1910
+ declare function RadioField<TFieldValues extends FieldValues = FieldValues>({
1911
+ id,
1912
+ label,
1913
+ helperText,
1914
+ control,
1915
+ name,
1916
+ width,
1917
+ validation,
1918
+ options,
1919
+ layout,
1920
+ validateRadio
1921
+ }: RadioFieldProps<TFieldValues>): React$1.ReactElement;
1922
+ declare namespace RadioField {
1923
+ var displayName: string;
1924
+ }
1925
+ //# sourceMappingURL=RadioField.d.ts.map
1926
+ //#endregion
1927
+ //#region src/components/fields/SelectField.d.ts
1928
+ /**
1929
+ * Option item for select fields
1930
+ */
1931
+ interface SelectOption {
1932
+ /**
1933
+ * Value to be submitted with the form
1934
+ */
1935
+ value: string;
1936
+ /**
1937
+ * Display label for the option
1938
+ */
1939
+ label: string;
1940
+ /**
1941
+ * Whether this option is disabled
1942
+ */
1943
+ disabled?: boolean;
1944
+ }
1945
+ /**
1946
+ * SelectField component properties
1947
+ */
1948
+ interface SelectFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
1949
+ /**
1950
+ * Available options for selection
1951
+ */
1952
+ options?: SelectOption[];
1953
+ /**
1954
+ * Custom validation function for select values
1955
+ */
1956
+ validateSelect?: (value: string) => boolean | string;
1957
+ /**
1958
+ * Optional default value used when the field has no value yet
1959
+ */
1960
+ defaultValue?: string;
1961
+ }
1962
+ /**
1963
+ * Select dropdown field component specifically designed for React Hook Form integration.
1964
+ *
1965
+ * Architecture flow:
1966
+ * 1. Form schemas are generated from contract functions using adapters
1967
+ * 2. TransactionForm renders the overall form structure with React Hook Form
1968
+ * 3. DynamicFormField selects the appropriate field component based on field type
1969
+ * 4. BaseField provides consistent layout and hook form integration
1970
+ * 5. This component handles radio-specific rendering and validation
1971
+ *
1972
+ * The component includes:
1973
+ * - Integration with React Hook Form
1974
+ * - Customizable options list
1975
+ * - Horizontal or vertical layout options
1976
+ * - Customizable validation through adapter integration
1977
+ * - Automatic error handling and reporting
1978
+ * - Full accessibility support with ARIA attributes
1979
+ */
1980
+ declare function SelectField<TFieldValues extends FieldValues = FieldValues>({
1981
+ id,
1982
+ label,
1983
+ placeholder,
1984
+ helperText,
1985
+ control,
1986
+ name,
1987
+ width,
1988
+ validation,
1989
+ options,
1990
+ validateSelect,
1991
+ defaultValue
1992
+ }: SelectFieldProps<TFieldValues>): React$1.ReactElement;
1993
+ declare namespace SelectField {
1994
+ var displayName: string;
1995
+ }
1996
+ //# sourceMappingURL=SelectField.d.ts.map
1997
+ //#endregion
1998
+ //#region src/components/fields/SelectGroupedField.d.ts
1999
+ /**
2000
+ * Option item for select fields with visual indicators
2001
+ */
2002
+ interface GroupedSelectOption {
2003
+ /**
2004
+ * Value to be submitted with the form
2005
+ */
2006
+ value: string;
2007
+ /**
2008
+ * Display label for the option
2009
+ */
2010
+ label: string;
2011
+ /**
2012
+ * Whether this option is disabled
2013
+ */
2014
+ disabled?: boolean;
2015
+ /**
2016
+ * Custom CSS class to apply to the option
2017
+ */
2018
+ className?: string;
2019
+ }
2020
+ /**
2021
+ * Option group structure
2022
+ */
2023
+ interface OptionGroup {
2024
+ /**
2025
+ * Group label to display
2026
+ */
2027
+ label: string;
2028
+ /**
2029
+ * Options within this group
2030
+ */
2031
+ options: GroupedSelectOption[];
2032
+ }
2033
+ /**
2034
+ * SelectGroupedField component properties
2035
+ */
2036
+ interface SelectGroupedFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
2037
+ /**
2038
+ * Available option groups for selection
2039
+ */
2040
+ groups?: OptionGroup[];
2041
+ /**
2042
+ * Custom validation function for select values
2043
+ */
2044
+ validateSelect?: (value: string) => boolean | string;
2045
+ }
2046
+ /**
2047
+ * Select dropdown field component with grouped options specifically designed for React Hook Form integration.
2048
+ *
2049
+ * Architecture flow:
2050
+ * 1. Form schemas are generated from contract functions using adapters
2051
+ * 2. TransactionForm renders the overall form structure with React Hook Form
2052
+ * 3. DynamicFormField selects the appropriate field component based on field type
2053
+ * 4. BaseField provides consistent layout and hook form integration
2054
+ * 5. This component handles radio-specific rendering and validation
2055
+ *
2056
+ * The component includes:
2057
+ * - Integration with React Hook Form
2058
+ * - Customizable options list
2059
+ * - Horizontal or vertical layout options
2060
+ * - Customizable validation through adapter integration
2061
+ * - Automatic error handling and reporting
2062
+ * - Full accessibility support with ARIA attributes
2063
+ */
2064
+ declare function SelectGroupedField<TFieldValues extends FieldValues = FieldValues>({
2065
+ id,
2066
+ label,
2067
+ placeholder,
2068
+ helperText,
2069
+ control,
2070
+ name,
2071
+ width,
2072
+ validation,
2073
+ groups,
2074
+ validateSelect
2075
+ }: SelectGroupedFieldProps<TFieldValues>): React$1.ReactElement;
2076
+ declare namespace SelectGroupedField {
2077
+ var displayName: string;
2078
+ }
2079
+ //# sourceMappingURL=SelectGroupedField.d.ts.map
2080
+ //#endregion
2081
+ //#region src/components/fields/TextAreaField.d.ts
2082
+ /**
2083
+ * TextAreaField component properties
2084
+ */
2085
+ interface TextAreaFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
2086
+ /**
2087
+ * Number of rows for the textarea
2088
+ */
2089
+ rows?: number;
2090
+ /**
2091
+ * Maximum characters allowed in textarea
2092
+ */
2093
+ maxLength?: number;
2094
+ /**
2095
+ * Custom validation function for textarea values
2096
+ */
2097
+ validateTextArea?: (value: string) => boolean | string;
2098
+ }
2099
+ /**
2100
+ * Multi-line text input field component specifically designed for React Hook Form integration.
2101
+ *
2102
+ * Architecture flow:
2103
+ * 1. Form schemas are generated from contract functions using adapters
2104
+ * 2. TransactionForm renders the overall form structure with React Hook Form
2105
+ * 3. DynamicFormField selects the appropriate field component based on field type
2106
+ * 4. BaseField provides consistent layout and hook form integration
2107
+ * 5. This component handles textarea-specific rendering and validation
2108
+ *
2109
+ * The component includes:
2110
+ * - Integration with React Hook Form
2111
+ * - Resizable multi-line text input
2112
+ * - Character limit support
2113
+ * - Customizable validation through adapter integration
2114
+ * - Automatic error handling and reporting
2115
+ * - Full accessibility support with ARIA attributes
2116
+ * - Keyboard navigation with Escape to clear
2117
+ */
2118
+ declare function TextAreaField<TFieldValues extends FieldValues = FieldValues>({
2119
+ id,
2120
+ label,
2121
+ placeholder,
2122
+ helperText,
2123
+ control,
2124
+ name,
2125
+ width,
2126
+ validation,
2127
+ rows,
2128
+ maxLength,
2129
+ validateTextArea
2130
+ }: TextAreaFieldProps<TFieldValues>): React$1.ReactElement;
2131
+ declare namespace TextAreaField {
2132
+ var displayName: string;
2133
+ }
2134
+ //# sourceMappingURL=TextAreaField.d.ts.map
2135
+ //#endregion
2136
+ //#region src/components/fields/TextField.d.ts
2137
+ /**
2138
+ * TextField component properties
2139
+ */
2140
+ interface TextFieldProps<TFieldValues extends FieldValues = FieldValues> extends BaseFieldProps<TFieldValues> {
2141
+ /**
2142
+ * Placeholder text displayed when the field is empty
2143
+ */
2144
+ placeholder?: string;
2145
+ }
2146
+ /**
2147
+ * Text input field component specifically designed for React Hook Form integration.
2148
+ *
2149
+ * Architecture flow:
2150
+ * 1. Form schemas are generated from contract functions using adapters
2151
+ * 2. TransactionForm renders the overall form structure with React Hook Form
2152
+ * 3. DynamicFormField selects the appropriate field component (like TextField) based on field type
2153
+ * 4. BaseField provides consistent layout and hook form integration
2154
+ * 5. This component handles text-specific rendering and validation
2155
+ *
2156
+ * The component includes:
2157
+ * - Integration with React Hook Form
2158
+ * - Text-specific validations (minLength, maxLength, pattern)
2159
+ * - Customizable validation through adapter integration
2160
+ * - Automatic error handling and reporting
2161
+ * - Full accessibility support with ARIA attributes
2162
+ * - Keyboard navigation
2163
+ */
2164
+ declare function TextField<TFieldValues extends FieldValues = FieldValues>({
2165
+ id,
2166
+ label,
2167
+ placeholder,
2168
+ helperText,
2169
+ control,
2170
+ name,
2171
+ width,
2172
+ validation,
2173
+ readOnly
2174
+ }: TextFieldProps<TFieldValues>): React$1.ReactElement;
2175
+ declare namespace TextField {
2176
+ var displayName: string;
2177
+ }
2178
+ //# sourceMappingURL=TextField.d.ts.map
2179
+ //#endregion
2180
+ //#region src/components/fields/UrlField.d.ts
2181
+ /**
2182
+ * URL input field component specifically designed for React Hook Form integration.
2183
+ */
2184
+ declare function UrlField<TFieldValues extends FieldValues = FieldValues>({
2185
+ id,
2186
+ label,
2187
+ placeholder,
2188
+ helperText,
2189
+ control,
2190
+ name,
2191
+ width,
2192
+ validation,
2193
+ readOnly
2194
+ }: BaseFieldProps<TFieldValues>): React$1.ReactElement;
2195
+ declare namespace UrlField {
2196
+ var displayName: string;
2197
+ }
2198
+ //# sourceMappingURL=UrlField.d.ts.map
2199
+ //#endregion
2200
+ //#region src/components/fields/utils/accessibility.d.ts
2201
+ /**
2202
+ * Accessibility utilities for form field components
2203
+ */
2204
+ /**
2205
+ * Default aria-describedby ID generator based on field ID
2206
+ */
2207
+ declare function getDescribedById(id: string, type?: 'error' | 'description' | 'counter'): string;
2208
+ /**
2209
+ * Interface for accessibility attributes to be applied to form fields
2210
+ */
2211
+ interface AccessibilityProps {
2212
+ /**
2213
+ * ARIA attributes for accessibility
2214
+ */
2215
+ 'aria-invalid'?: boolean;
2216
+ 'aria-required'?: boolean;
2217
+ 'aria-describedby'?: string;
2218
+ 'aria-errormessage'?: string;
2219
+ 'aria-labelledby'?: string;
2220
+ /**
2221
+ * Indicates if the input is required
2222
+ */
2223
+ required?: boolean;
2224
+ /**
2225
+ * Indicates if the input is disabled
2226
+ */
2227
+ disabled?: boolean;
2228
+ /**
2229
+ * Indicates if the input is readonly
2230
+ */
2231
+ readOnly?: boolean;
2232
+ /**
2233
+ * Tab index for keyboard navigation
2234
+ * Use 0 for normal tab order
2235
+ * Use -1 to remove from tab order
2236
+ */
2237
+ tabIndex?: number;
2238
+ }
2239
+ /**
2240
+ * Generates accessibility attributes for form fields
2241
+ */
2242
+ declare function getAccessibilityProps({
2243
+ id,
2244
+ hasError,
2245
+ isRequired,
2246
+ isDisabled,
2247
+ isReadOnly,
2248
+ hasHelperText,
2249
+ hasCharacterCounter
2250
+ }: {
2251
+ id: string;
2252
+ hasError?: boolean;
2253
+ isRequired?: boolean;
2254
+ isDisabled?: boolean;
2255
+ isReadOnly?: boolean;
2256
+ hasHelperText?: boolean;
2257
+ hasCharacterCounter?: boolean;
2258
+ }): AccessibilityProps;
2259
+ /**
2260
+ * Utility function to handle keyboard events for interactive elements
2261
+ * Helps ensure keyboard users can interact with form controls
2262
+ */
2263
+ declare function handleKeyboardEvent(event: React.KeyboardEvent, handlers: {
2264
+ onEnter?: () => void;
2265
+ onSpace?: () => void;
2266
+ onEscape?: () => void;
2267
+ onArrowUp?: () => void;
2268
+ onArrowDown?: () => void;
2269
+ onArrowLeft?: () => void;
2270
+ onArrowRight?: () => void;
2271
+ onTab?: () => void;
2272
+ }): void;
2273
+ /**
2274
+ * Field focus management utility
2275
+ * For managing focus within a field group or complex form component
2276
+ */
2277
+ declare function createFocusManager(): {
2278
+ focusFirstElement: (container: HTMLElement | null) => void;
2279
+ focusElementById: (id: string) => void;
2280
+ trapFocus: (event: KeyboardEvent, container: HTMLElement | null) => void;
2281
+ };
2282
+ /**
2283
+ * Provides a handler for Escape key to clear input fields
2284
+ *
2285
+ * @param onChange - Function to call when value changes
2286
+ * @param value - Current value of the input
2287
+ * @returns A function to handle the Escape key press
2288
+ */
2289
+ declare function handleEscapeKey(onChange: (value: string) => void, value: unknown): (e: React.KeyboardEvent) => void;
2290
+ /**
2291
+ * Provides a handler for Space/Enter keys for toggle components (checkboxes, switches)
2292
+ *
2293
+ * @param onChange - Function to call when value changes
2294
+ * @param value - Current value of the input
2295
+ * @returns A function to handle the Space/Enter key press
2296
+ */
2297
+ declare function handleToggleKeys(onChange: (value: boolean) => void, value: boolean): (e: React.KeyboardEvent) => void;
2298
+ /**
2299
+ * Provides a handler for arrow keys for numeric inputs
2300
+ *
2301
+ * @param onChange - Function to call when value changes
2302
+ * @param value - Current numeric value
2303
+ * @param step - Step amount for increments/decrements
2304
+ * @param min - Minimum allowed value (optional)
2305
+ * @param max - Maximum allowed value (optional)
2306
+ * @returns A function to handle arrow key presses
2307
+ */
2308
+ declare function handleNumericKeys(onChange: (value: number) => void, value: number, step?: number, min?: number, max?: number): (e: React.KeyboardEvent) => void;
2309
+ //# sourceMappingURL=accessibility.d.ts.map
2310
+ //#endregion
2311
+ //#region src/components/fields/utils/ErrorMessage.d.ts
2312
+ interface ErrorMessageProps {
2313
+ /**
2314
+ * The error object from React Hook Form
2315
+ */
2316
+ error?: FieldError;
2317
+ /**
2318
+ * The ID of the error message for aria-errormessage references
2319
+ */
2320
+ id: string;
2321
+ /**
2322
+ * Optional custom error message to display instead of the error from React Hook Form
2323
+ */
2324
+ message?: string;
2325
+ /**
2326
+ * Optional additional CSS classes
2327
+ */
2328
+ className?: string;
2329
+ }
2330
+ /**
2331
+ * Displays validation error messages for form fields
2332
+ */
2333
+ declare function ErrorMessage({
2334
+ error,
2335
+ id,
2336
+ message,
2337
+ className
2338
+ }: ErrorMessageProps): React$1.ReactElement | null;
2339
+ //#endregion
2340
+ //#region src/components/fields/utils/integerValidation.d.ts
2341
+ /**
2342
+ * Shared integer validation patterns for BigInt fields and validation utilities.
2343
+ *
2344
+ * These patterns ensure consistent validation across the application.
2345
+ */
2346
+ /**
2347
+ * Integer validation pattern - requires at least one digit
2348
+ * Used for validation to ensure complete integers are entered
2349
+ * Matches: -123, 0, 456
2350
+ * Does not match: -, abc, 12.3
2351
+ */
2352
+ declare const INTEGER_PATTERN: RegExp;
2353
+ /**
2354
+ * Integer input pattern - allows partial input during typing
2355
+ * Used during input to allow users to type minus sign first
2356
+ * Matches: -, -1, 123, (empty string)
2357
+ * Does not match: abc, 12.3
2358
+ */
2359
+ declare const INTEGER_INPUT_PATTERN: RegExp;
2360
+ /**
2361
+ * HTML pattern attribute for integer inputs
2362
+ * Must use [0-9] instead of \d for HTML5 pattern attribute
2363
+ */
2364
+ declare const INTEGER_HTML_PATTERN = "-?[0-9]*";
2365
+ //# sourceMappingURL=integerValidation.d.ts.map
2366
+ //#endregion
2367
+ //#region src/components/fields/utils/layout.d.ts
2368
+ /**
2369
+ * Layout utility functions for form components
2370
+ */
2371
+ /**
2372
+ * Helper function to get width classes based on the field width
2373
+ */
2374
+ declare function getWidthClasses(width: 'full' | 'half' | 'third'): string;
2375
+ //# sourceMappingURL=layout.d.ts.map
2376
+ //#endregion
2377
+ //#region src/components/fields/utils/validation.d.ts
2378
+ /**
2379
+ * Determines if a field has an error
2380
+ */
2381
+ declare function hasFieldError(error: FieldError | undefined): boolean;
2382
+ /**
2383
+ * Gets appropriate error message from field error
2384
+ */
2385
+ declare function getErrorMessage(error: FieldError | undefined): string | undefined;
2386
+ /**
2387
+ * Formats validation error messages for display
2388
+ */
2389
+ declare function formatValidationError(error: FieldError | undefined, fieldName?: string): string | undefined;
2390
+ /**
2391
+ * Generates common CSS classes for field validation states
2392
+ */
2393
+ declare function getValidationStateClasses(error: FieldError | undefined, touched?: boolean): string;
2394
+ /**
2395
+ * Helper for handling form validation errors with React Hook Form
2396
+ */
2397
+ declare function handleValidationError(error: FieldError | undefined, id: string): {
2398
+ errorId: string;
2399
+ errorMessage: string | undefined;
2400
+ hasError: boolean;
2401
+ validationClasses: string;
2402
+ };
2403
+ /**
2404
+ * Creates a validation result object for field components
2405
+ */
2406
+ declare function createValidationResult(id: string, error: FieldError | undefined, touched?: boolean): {
2407
+ hasError: boolean;
2408
+ errorMessage: string | undefined;
2409
+ errorId: string;
2410
+ validationClasses: string;
2411
+ 'aria-invalid': boolean;
2412
+ 'aria-errormessage'?: string;
2413
+ };
2414
+ /**
2415
+ * Generic field validation function that can be used to validate any field type
2416
+ * based on common validation criteria
2417
+ */
2418
+ declare function validateField(value: unknown, validation?: FieldValidation): string | boolean;
2419
+ /**
2420
+ * Map validation utilities
2421
+ */
2422
+ /**
2423
+ * Checks if a map entry at the given index has a duplicate key
2424
+ * @param entries - Array of map entries
2425
+ * @param currentIndex - Index of the entry to check
2426
+ * @returns true if the key at currentIndex is duplicated elsewhere in the array
2427
+ */
2428
+ declare function isDuplicateMapKey(entries: MapEntry[], currentIndex: number): boolean;
2429
+ /**
2430
+ * Validates an array of map entries for duplicate keys
2431
+ * @param entries - Array of map entries to validate
2432
+ * @returns Validation error message if duplicates found, otherwise undefined
2433
+ */
2434
+ declare function validateMapEntries(entries: MapEntry[]): string | undefined;
2435
+ //# sourceMappingURL=validation.d.ts.map
2436
+ //#endregion
2437
+ //#region src/components/RelayerDetailsCard/RelayerDetailsCard.d.ts
2438
+ interface RelayerDetailsCardProps {
2439
+ details: RelayerDetails;
2440
+ enhancedDetails?: RelayerDetailsRich | null;
2441
+ loading?: boolean;
2442
+ className?: string;
2443
+ /** Optional UI labels to override default copy */
2444
+ labels?: Partial<{
2445
+ detailsTitle: string;
2446
+ active: string;
2447
+ paused: string;
2448
+ systemDisabled: string;
2449
+ network: string;
2450
+ relayerId: string;
2451
+ balance: string;
2452
+ nonce: string;
2453
+ pending: string;
2454
+ lastTransaction: string;
2455
+ }>;
2456
+ }
2457
+ declare const RelayerDetailsCard: React$1.FC<RelayerDetailsCardProps>;
2458
+ //# sourceMappingURL=RelayerDetailsCard.d.ts.map
2459
+ //#endregion
2460
+ //#region src/components/network-errors/NetworkErrorNotificationProvider.d.ts
2461
+ interface NetworkErrorNotificationProviderProps {
2462
+ children: React.ReactNode;
2463
+ }
2464
+ /** Provider component for managing and displaying network error notifications. */
2465
+ declare function NetworkErrorNotificationProvider({
2466
+ children
2467
+ }: NetworkErrorNotificationProviderProps): React.ReactNode;
2468
+ //#endregion
2469
+ //#region src/components/network-errors/useNetworkErrors.d.ts
2470
+ type NetworkErrorType = 'rpc' | 'explorer';
2471
+ interface NetworkError {
2472
+ id: string;
2473
+ type: NetworkErrorType;
2474
+ networkId: string;
2475
+ networkName: string;
2476
+ message: string;
2477
+ timestamp: number;
2478
+ }
2479
+ interface NetworkErrorContextValue {
2480
+ errors: NetworkError[];
2481
+ reportNetworkError: (type: NetworkErrorType, networkId: string, networkName: string, message: string) => void;
2482
+ clearError: (id: string) => void;
2483
+ clearAllErrors: () => void;
2484
+ onOpenNetworkSettings?: (networkId: string) => void;
2485
+ setOpenNetworkSettingsHandler: (handler: (networkId: string) => void) => void;
2486
+ }
2487
+ /** Hook to access network error reporting and management functions. */
2488
+ declare function useNetworkErrors(): NetworkErrorContextValue;
2489
+ /**
2490
+ * Hook for reporting network errors for a specific adapter
2491
+ */
2492
+ declare function useNetworkErrorReporter(adapter: ContractAdapter | null): {
2493
+ reportRpcError: (message: string) => void;
2494
+ reportExplorerError: (message: string) => void;
2495
+ };
2496
+ //# sourceMappingURL=useNetworkErrors.d.ts.map
2497
+ //#endregion
2498
+ //#region src/components/network-errors/NetworkErrorAwareAdapter.d.ts
2499
+ /**
2500
+ * Creates an adapter proxy that intercepts and reports network errors
2501
+ */
2502
+ declare function useNetworkErrorAwareAdapter(adapter: ContractAdapter | null): ContractAdapter | null;
2503
+ //# sourceMappingURL=NetworkErrorAwareAdapter.d.ts.map
2504
+ //#endregion
2505
+ //#region src/components/icons/MidnightIcon.d.ts
2506
+ interface MidnightIconProps {
2507
+ size?: number;
2508
+ className?: string;
2509
+ variant?: 'mono' | 'branded';
2510
+ }
2511
+ /**
2512
+ * MidnightIcon - SVG icon for the Midnight blockchain
2513
+ * Inline SVG to ensure it renders correctly when this package is consumed as a library
2514
+ */
2515
+ declare function MidnightIcon({
2516
+ size,
2517
+ className,
2518
+ variant: _variant
2519
+ }: MidnightIconProps): React$1.ReactElement;
2520
+ //# sourceMappingURL=MidnightIcon.d.ts.map
2521
+ //#endregion
2522
+ //#region src/components/ui/sonner.d.ts
2523
+ declare const Toaster: ({
2524
+ ...props
2525
+ }: ToasterProps) => JSX.Element;
2526
+ //#endregion
2527
+ export { AccessibilityProps, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, AddressDisplay, AddressField, Alert, AlertDescription, AlertTitle, AmountField, AmountFieldProps, ArrayField, ArrayFieldProps, ArrayObjectField, ArrayObjectFieldProps, Banner, BaseField, BaseFieldProps, BigIntField, BigIntFieldProps, BooleanField, BooleanFieldProps, Button, ButtonProps, BytesField, BytesFieldProps, Calendar, CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeEditorField, CodeEditorFieldProps, type DateRange, DateRangePicker, DateRangePickerProps, DateTimeField, DateTimeFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, EnumField, EnumFieldProps, EnumFieldValue, EnumMetadata, EnumVariant, ErrorMessage, ExternalLink, FileUploadField, FileUploadFieldProps, Footer, FooterProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GroupedSelectOption, Header, HeaderProps, INTEGER_HTML_PATTERN, INTEGER_INPUT_PATTERN, INTEGER_PATTERN, Input, InputProps, Label, LoadingButton, LoadingButtonProps, MapEntryRow, MapField, MapFieldProps, MidnightIcon, NetworkError, NetworkErrorNotificationProvider, NetworkErrorType, NetworkIcon, NetworkIconProps, NetworkSelector, NetworkSelectorProps, NetworkStatusBadge, NumberField, NumberFieldProps, ObjectField, ObjectFieldProps, OptionGroup, PasswordField, PasswordFieldProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioField, RadioFieldProps, RadioGroup, RadioGroupItem, RadioOption, RelayerDetailsCard, RelayerDetailsCardProps, Select, SelectContent, SelectField, SelectFieldProps, SelectGroup, SelectGroupedField, SelectGroupedFieldProps, SelectItem, SelectLabel, SelectOption, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarButton, SidebarButtonProps, SidebarLayout, SidebarLayoutProps, SidebarSection, SidebarSectionProps, Tabs, TabsContent, TabsList, TabsTrigger, TextAreaField, TextAreaFieldProps, TextField, TextFieldProps, Textarea, TextareaProps, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UrlField, ViewContractStateButton, buttonVariants, computeChildTouched, createFocusManager, createValidationResult, formatValidationError, getAccessibilityProps, getDescribedById, getErrorMessage, getValidationStateClasses, getWidthClasses, handleEscapeKey, handleKeyboardEvent, handleNumericKeys, handleToggleKeys, handleValidationError, hasFieldError, isDuplicateMapKey, useDuplicateKeyIndexes, useMapFieldSync, useNetworkErrorAwareAdapter, useNetworkErrorReporter, useNetworkErrors, validateField, validateMapEntries, validateMapStructure };
2528
+ //# sourceMappingURL=index-CYn57Ffl.d.ts.map