@openzeppelin/ui-components 1.0.3 → 1.1.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.
package/dist/index.d.cts CHANGED
@@ -174,7 +174,7 @@ declare function Card({
174
174
  className,
175
175
  ...props
176
176
  }: React.ComponentProps<'div'>): JSX.Element;
177
- /** Card header section for title and description. */
177
+ /** Card header section for title and description. Provides top padding for the card. */
178
178
  declare function CardHeader({
179
179
  className,
180
180
  ...props
@@ -189,12 +189,12 @@ declare function CardDescription({
189
189
  className,
190
190
  ...props
191
191
  }: React.ComponentProps<'div'>): JSX.Element;
192
- /** Card content area with horizontal padding and top spacing. */
192
+ /** Card content area with horizontal padding, top spacing, and bottom padding. */
193
193
  declare function CardContent({
194
194
  className,
195
195
  ...props
196
196
  }: React.ComponentProps<'div'>): JSX.Element;
197
- /** Card footer with flex alignment for actions and top spacing. */
197
+ /** Card footer with flex alignment for actions, top spacing, and bottom padding. */
198
198
  declare function CardFooter({
199
199
  className,
200
200
  ...props
@@ -634,6 +634,44 @@ declare function SidebarButton({
634
634
  }: SidebarButtonProps): React$1.ReactElement;
635
635
  //# sourceMappingURL=SidebarButton.d.ts.map
636
636
  //#endregion
637
+ //#region src/components/ui/sidebar/SidebarGroup.d.ts
638
+ interface SidebarGroupProps {
639
+ /** Title displayed in the collapsible trigger */
640
+ title: string;
641
+ /** Optional icon displayed before the title */
642
+ icon?: ReactNode;
643
+ /** Content to render when expanded */
644
+ children: ReactNode;
645
+ /** Whether the group is open by default */
646
+ defaultOpen?: boolean;
647
+ /** Controlled open state */
648
+ open?: boolean;
649
+ /** Callback when open state changes */
650
+ onOpenChange?: (open: boolean) => void;
651
+ /** Additional CSS classes for the container */
652
+ className?: string;
653
+ /** Additional CSS classes for the trigger */
654
+ triggerClassName?: string;
655
+ /** Additional CSS classes for the content wrapper */
656
+ contentClassName?: string;
657
+ }
658
+ /**
659
+ * A collapsible group component for organizing sidebar navigation items.
660
+ * Supports both controlled and uncontrolled modes.
661
+ */
662
+ declare function SidebarGroup({
663
+ title,
664
+ icon,
665
+ children,
666
+ defaultOpen,
667
+ open: controlledOpen,
668
+ onOpenChange,
669
+ className,
670
+ triggerClassName,
671
+ contentClassName
672
+ }: SidebarGroupProps): React$1.ReactElement;
673
+ //# sourceMappingURL=SidebarGroup.d.ts.map
674
+ //#endregion
637
675
  //#region src/components/ui/sidebar/SidebarLayout.d.ts
638
676
  interface SidebarLayoutProps {
639
677
  /** Content for the sidebar header (e.g., logo) */
@@ -2408,5 +2446,5 @@ declare const Toaster: ({
2408
2446
  ...props
2409
2447
  }: ToasterProps) => JSX.Element;
2410
2448
  //#endregion
2411
- 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, 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 };
2412
- //# sourceMappingURL=index-BQghjZeI.d.cts.map
2449
+ 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, 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, SidebarGroup, SidebarGroupProps, 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 };
2450
+ //# sourceMappingURL=index-CHsHzbhb.d.cts.map
package/dist/index.d.ts CHANGED
@@ -174,7 +174,7 @@ declare function Card({
174
174
  className,
175
175
  ...props
176
176
  }: React.ComponentProps<'div'>): JSX.Element;
177
- /** Card header section for title and description. */
177
+ /** Card header section for title and description. Provides top padding for the card. */
178
178
  declare function CardHeader({
179
179
  className,
180
180
  ...props
@@ -189,12 +189,12 @@ declare function CardDescription({
189
189
  className,
190
190
  ...props
191
191
  }: React.ComponentProps<'div'>): JSX.Element;
192
- /** Card content area with horizontal padding and top spacing. */
192
+ /** Card content area with horizontal padding, top spacing, and bottom padding. */
193
193
  declare function CardContent({
194
194
  className,
195
195
  ...props
196
196
  }: React.ComponentProps<'div'>): JSX.Element;
197
- /** Card footer with flex alignment for actions and top spacing. */
197
+ /** Card footer with flex alignment for actions, top spacing, and bottom padding. */
198
198
  declare function CardFooter({
199
199
  className,
200
200
  ...props
@@ -634,6 +634,44 @@ declare function SidebarButton({
634
634
  }: SidebarButtonProps): React$1.ReactElement;
635
635
  //# sourceMappingURL=SidebarButton.d.ts.map
636
636
  //#endregion
637
+ //#region src/components/ui/sidebar/SidebarGroup.d.ts
638
+ interface SidebarGroupProps {
639
+ /** Title displayed in the collapsible trigger */
640
+ title: string;
641
+ /** Optional icon displayed before the title */
642
+ icon?: ReactNode;
643
+ /** Content to render when expanded */
644
+ children: ReactNode;
645
+ /** Whether the group is open by default */
646
+ defaultOpen?: boolean;
647
+ /** Controlled open state */
648
+ open?: boolean;
649
+ /** Callback when open state changes */
650
+ onOpenChange?: (open: boolean) => void;
651
+ /** Additional CSS classes for the container */
652
+ className?: string;
653
+ /** Additional CSS classes for the trigger */
654
+ triggerClassName?: string;
655
+ /** Additional CSS classes for the content wrapper */
656
+ contentClassName?: string;
657
+ }
658
+ /**
659
+ * A collapsible group component for organizing sidebar navigation items.
660
+ * Supports both controlled and uncontrolled modes.
661
+ */
662
+ declare function SidebarGroup({
663
+ title,
664
+ icon,
665
+ children,
666
+ defaultOpen,
667
+ open: controlledOpen,
668
+ onOpenChange,
669
+ className,
670
+ triggerClassName,
671
+ contentClassName
672
+ }: SidebarGroupProps): React$1.ReactElement;
673
+ //# sourceMappingURL=SidebarGroup.d.ts.map
674
+ //#endregion
637
675
  //#region src/components/ui/sidebar/SidebarLayout.d.ts
638
676
  interface SidebarLayoutProps {
639
677
  /** Content for the sidebar header (e.g., logo) */
@@ -2408,5 +2446,5 @@ declare const Toaster: ({
2408
2446
  ...props
2409
2447
  }: ToasterProps) => JSX.Element;
2410
2448
  //#endregion
2411
- 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, 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 };
2412
- //# sourceMappingURL=index-BcS9-xet.d.ts.map
2449
+ 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, 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, SidebarGroup, SidebarGroupProps, 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 };
2450
+ //# sourceMappingURL=index-BPV_9U9-.d.ts.map
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ import * as LabelPrimitive from "@radix-ui/react-label";
18
18
  import * as ProgressPrimitive from "@radix-ui/react-progress";
19
19
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
20
20
  import * as SelectPrimitive from "@radix-ui/react-select";
21
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
21
22
  import * as TabsPrimitive from "@radix-ui/react-tabs";
22
23
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
23
24
  import { isMapEntryArray } from "@openzeppelin/ui-types";
@@ -217,7 +218,7 @@ function getWidthClasses(width) {
217
218
  const accordionItemVariants = cva("", {
218
219
  variants: { variant: {
219
220
  default: "border-b",
220
- card: "mb-3 rounded-lg border bg-card shadow-sm overflow-hidden"
221
+ card: "mb-3 rounded-lg border bg-card overflow-hidden"
221
222
  } },
222
223
  defaultVariants: { variant: "default" }
223
224
  });
@@ -529,15 +530,15 @@ Calendar.displayName = "Calendar";
529
530
  function Card({ className, ...props }) {
530
531
  return /* @__PURE__ */ jsx("div", {
531
532
  "data-slot": "card",
532
- className: cn("bg-card text-card-foreground flex flex-col rounded-xl border py-6", className),
533
+ className: cn("bg-card text-card-foreground flex flex-col rounded-xl border", className),
533
534
  ...props
534
535
  });
535
536
  }
536
- /** Card header section for title and description. */
537
+ /** Card header section for title and description. Provides top padding for the card. */
537
538
  function CardHeader({ className, ...props }) {
538
539
  return /* @__PURE__ */ jsx("div", {
539
540
  "data-slot": "card-header",
540
- className: cn("flex flex-col gap-1.5 px-6", className),
541
+ className: cn("flex flex-col gap-1.5 px-6 pt-6", className),
541
542
  ...props
542
543
  });
543
544
  }
@@ -557,19 +558,19 @@ function CardDescription({ className, ...props }) {
557
558
  ...props
558
559
  });
559
560
  }
560
- /** Card content area with horizontal padding and top spacing. */
561
+ /** Card content area with horizontal padding, top spacing, and bottom padding. */
561
562
  function CardContent({ className, ...props }) {
562
563
  return /* @__PURE__ */ jsx("div", {
563
564
  "data-slot": "card-content",
564
- className: cn("px-6 pt-4", className),
565
+ className: cn("px-6 pt-4 pb-6", className),
565
566
  ...props
566
567
  });
567
568
  }
568
- /** Card footer with flex alignment for actions and top spacing. */
569
+ /** Card footer with flex alignment for actions, top spacing, and bottom padding. */
569
570
  function CardFooter({ className, ...props }) {
570
571
  return /* @__PURE__ */ jsx("div", {
571
572
  "data-slot": "card-footer",
572
- className: cn("flex items-center px-6 pt-4", className),
573
+ className: cn("flex items-center px-6 pt-4 pb-6", className),
573
574
  ...props
574
575
  });
575
576
  }
@@ -1467,6 +1468,47 @@ function SidebarButton({ icon, children, onClick, size = "default", badge, disab
1467
1468
  });
1468
1469
  }
1469
1470
 
1471
+ //#endregion
1472
+ //#region src/components/ui/sidebar/SidebarGroup.tsx
1473
+ /**
1474
+ * A collapsible group component for organizing sidebar navigation items.
1475
+ * Supports both controlled and uncontrolled modes.
1476
+ */
1477
+ function SidebarGroup({ title, icon, children, defaultOpen = false, open: controlledOpen, onOpenChange, className, triggerClassName, contentClassName }) {
1478
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
1479
+ const isControlled = controlledOpen !== void 0;
1480
+ const isOpen = isControlled ? controlledOpen : uncontrolledOpen;
1481
+ const handleOpenChange = (nextOpen) => {
1482
+ if (!isControlled) setUncontrolledOpen(nextOpen);
1483
+ onOpenChange?.(nextOpen);
1484
+ };
1485
+ return /* @__PURE__ */ jsxs(CollapsiblePrimitive.Root, {
1486
+ open: isOpen,
1487
+ onOpenChange: handleOpenChange,
1488
+ className: cn("w-full", className),
1489
+ children: [/* @__PURE__ */ jsxs(CollapsiblePrimitive.Trigger, {
1490
+ className: cn("group flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm font-semibold", "text-muted-foreground transition-colors hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", triggerClassName),
1491
+ children: [
1492
+ /* @__PURE__ */ jsx(ChevronRight, { className: cn("size-4 shrink-0 transition-transform duration-200", isOpen && "rotate-90") }),
1493
+ icon && /* @__PURE__ */ jsx("span", {
1494
+ className: "shrink-0",
1495
+ children: icon
1496
+ }),
1497
+ /* @__PURE__ */ jsx("span", {
1498
+ className: "flex-1 text-left",
1499
+ children: title
1500
+ })
1501
+ ]
1502
+ }), /* @__PURE__ */ jsx(CollapsiblePrimitive.Content, {
1503
+ className: cn("overflow-hidden transition-all duration-200 ease-in-out", "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down", contentClassName),
1504
+ children: /* @__PURE__ */ jsx("div", {
1505
+ className: "py-1 pl-4",
1506
+ children
1507
+ })
1508
+ })]
1509
+ });
1510
+ }
1511
+
1470
1512
  //#endregion
1471
1513
  //#region src/components/ui/sidebar/SidebarLayout.tsx
1472
1514
  /**
@@ -5058,5 +5100,5 @@ const Toaster = ({ ...props }) => {
5058
5100
  };
5059
5101
 
5060
5102
  //#endregion
5061
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressDisplay, AddressField, Alert, AlertDescription, AlertTitle, AmountField, ArrayField, ArrayObjectField, Banner, BaseField, BigIntField, BooleanField, Button, BytesField, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, DateRangePicker, DateTimeField, 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, EnumField, ErrorMessage, ExternalLink, FileUploadField, Footer, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Header, INTEGER_HTML_PATTERN, INTEGER_INPUT_PATTERN, INTEGER_PATTERN, Input, Label, LoadingButton, MapEntryRow, MapField, MidnightIcon, NetworkErrorNotificationProvider, NetworkIcon, NetworkSelector, NetworkStatusBadge, NumberField, ObjectField, PasswordField, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioField, RadioGroup, RadioGroupItem, RelayerDetailsCard, Select, SelectContent, SelectField, SelectGroup, SelectGroupedField, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarButton, SidebarLayout, SidebarSection, Tabs, TabsContent, TabsList, TabsTrigger, TextAreaField, TextField, Textarea, 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 };
5103
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressDisplay, AddressField, Alert, AlertDescription, AlertTitle, AmountField, ArrayField, ArrayObjectField, Banner, BaseField, BigIntField, BooleanField, Button, BytesField, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, DateRangePicker, DateTimeField, 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, EnumField, ErrorMessage, ExternalLink, FileUploadField, Footer, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Header, INTEGER_HTML_PATTERN, INTEGER_INPUT_PATTERN, INTEGER_PATTERN, Input, Label, LoadingButton, MapEntryRow, MapField, MidnightIcon, NetworkErrorNotificationProvider, NetworkIcon, NetworkSelector, NetworkStatusBadge, NumberField, ObjectField, PasswordField, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioField, RadioGroup, RadioGroupItem, RelayerDetailsCard, Select, SelectContent, SelectField, SelectGroup, SelectGroupedField, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarButton, SidebarGroup, SidebarLayout, SidebarSection, Tabs, TabsContent, TabsList, TabsTrigger, TextAreaField, TextField, Textarea, 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 };
5062
5104
  //# sourceMappingURL=index.js.map