@qdesignsystems/design-system-core 0.1.2
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/README.md +45 -0
- package/dist/index.d.mts +770 -0
- package/dist/index.d.ts +770 -0
- package/dist/index.js +11931 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +11931 -0
- package/dist/index.mjs.map +1 -0
- package/dist/styles.css +3854 -0
- package/dist/styles.d.mts +2 -0
- package/dist/styles.d.ts +2 -0
- package/package.json +106 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/theme-provider.tsx","../src/components/button.tsx","../src/components/card.tsx","../src/components/shadcn-studio/button/button-14.tsx","../src/components/shadcn-studio/button/button-16.tsx","../src/components/shadcn-studio/button/button-17.tsx","../src/components/shadcn-studio/button/button-19.tsx","../src/components/shadcn-studio/button/button-20.tsx","../src/components/input.tsx","../src/components/label.tsx","../src/components/shadcn-studio/card/card-01.tsx","../src/components/avatar.tsx","../src/components/shadcn-studio/card/card-02.tsx","../src/components/shadcn-studio/card/card-03.tsx","../src/components/shadcn-studio/card/card-04.tsx","../src/components/shadcn-studio/card/card-05.tsx","../src/components/shadcn-studio/card/card-06.tsx","../src/components/shadcn-studio/card/card-10.tsx","../src/components/shadcn-studio/card/card-13.tsx","../src/components/shadcn-studio/card/card-14.tsx","../src/components/shadcn-studio/button-group/button-group-01.tsx","../src/components/shadcn-studio/button-group/button-group-02.tsx","../src/components/shadcn-studio/button-group/button-group-03.tsx","../src/components/tooltip.tsx","../src/components/shadcn-studio/button-group/button-group-04.tsx","../src/components/shadcn-studio/button-group/button-group-05.tsx","../src/components/shadcn-studio/button-group/button-group-06.tsx","../src/components/shadcn-studio/button-group/button-group-07.tsx","../src/components/shadcn-studio/button-group/button-group-08.tsx","../src/components/shadcn-studio/button-group/button-group-09.tsx","../src/components/shadcn-studio/button-group/button-group-10.tsx","../src/components/shadcn-studio/button-group/button-group-11.tsx","../src/components/dropdown-menu.tsx","../src/components/shadcn-studio/button-group/button-group-12.tsx","../src/components/shadcn-studio/calendar/calendar-01.tsx","../src/components/calendar.tsx","../src/components/shadcn-studio/calendar/calendar-02.tsx","../src/components/shadcn-studio/calendar/calendar-03.tsx","../src/components/shadcn-studio/calendar/calendar-04.tsx","../src/components/shadcn-studio/calendar/calendar-05.tsx","../src/components/shadcn-studio/calendar/calendar-06.tsx","../src/components/shadcn-studio/calendar/calendar-07.tsx","../src/components/shadcn-studio/calendar/calendar-10.tsx","../src/components/shadcn-studio/calendar/calendar-11.tsx","../src/components/shadcn-studio/calendar/calendar-12.tsx","../src/components/shadcn-studio/calendar/calendar-13.tsx","../src/components/shadcn-studio/calendar/calendar-14.tsx","../src/components/shadcn-studio/calendar/calendar-15.tsx","../src/components/shadcn-studio/calendar/calendar-16.tsx","../src/components/shadcn-studio/calendar/calendar-17.tsx","../src/components/shadcn-studio/calendar/calendar-21.tsx","../src/components/collapsible.tsx","../src/components/scroll-area.tsx","../src/components/checkbox.tsx","../src/components/shadcn-studio/collapsible/collapsible-01.tsx","../src/components/shadcn-studio/collapsible/collapsible-02.tsx","../src/components/shadcn-studio/collapsible/collapsible-03.tsx","../src/components/shadcn-studio/collapsible/collapsible-04.tsx","../src/components/shadcn-studio/collapsible/collapsible-05.tsx","../src/components/separator.tsx","../src/components/shadcn-studio/collapsible/collapsible-06.tsx","../src/components/shadcn-studio/collapsible/collapsible-07.tsx","../src/components/shadcn-studio/collapsible/collapsible-08.tsx","../src/components/shadcn-studio/collapsible/collapsible-09.tsx","../src/components/radio-group.tsx","../src/components/shadcn-studio/combobox/combobox-01.tsx","../src/components/command.tsx","../src/components/popover.tsx","../src/components/shadcn-studio/combobox/combobox-02.tsx","../src/components/shadcn-studio/combobox/combobox-03.tsx","../src/components/shadcn-studio/combobox/combobox-04.tsx","../src/components/shadcn-studio/combobox/combobox-05.tsx","../src/components/shadcn-studio/combobox/combobox-06.tsx","../src/components/shadcn-studio/combobox/combobox-07.tsx","../src/components/shadcn-studio/combobox/combobox-08.tsx","../src/components/shadcn-studio/combobox/combobox-09.tsx","../src/components/shadcn-studio/combobox/combobox-12.tsx","../src/components/badge.tsx","../src/components/shadcn-studio/data-table/data-table-01.tsx","../src/components/table.tsx","../src/components/shadcn-studio/data-table/data-table-02.tsx","../src/components/select.tsx","../src/components/shadcn-studio/data-table/data-table-03.tsx","../src/components/shadcn-studio/data-table/data-table-05.tsx","../src/components/shadcn-studio/data-table/data-table-07.tsx","../src/components/shadcn-studio/data-table/data-table-08.tsx","../src/components/shadcn-studio/data-table/data-table-09.tsx","../src/components/shadcn-studio/data-table/data-table-13.tsx","../src/components/textarea.tsx","../src/components/shadcn-studio/checkbox/checkbox-01.tsx","../src/components/shadcn-studio/checkbox/checkbox-02.tsx","../src/components/shadcn-studio/checkbox/checkbox-03.tsx","../src/components/shadcn-studio/checkbox/checkbox-04.tsx","../src/components/shadcn-studio/checkbox/checkbox-05.tsx","../src/components/shadcn-studio/checkbox/checkbox-06.tsx","../src/components/shadcn-studio/checkbox/checkbox-07.tsx","../src/components/shadcn-studio/checkbox/checkbox-08.tsx","../src/components/shadcn-studio/checkbox/checkbox-09.tsx","../src/components/shadcn-studio/checkbox/checkbox-10.tsx","../src/components/shadcn-studio/checkbox/checkbox-11.tsx","../src/components/shadcn-studio/checkbox/checkbox-12.tsx","../src/components/shadcn-studio/checkbox/checkbox-13.tsx","../src/components/shadcn-studio/checkbox/checkbox-14.tsx","../src/components/shadcn-studio/checkbox/checkbox-15.tsx","../src/components/shadcn-studio/checkbox/checkbox-16.tsx","../src/components/shadcn-studio/input/input-01.tsx","../src/components/shadcn-studio/input/input-02.tsx","../src/components/shadcn-studio/input/input-03.tsx","../src/components/shadcn-studio/input/input-04.tsx","../src/components/shadcn-studio/input/input-05.tsx","../src/components/shadcn-studio/input/input-06.tsx","../src/components/shadcn-studio/input/input-07.tsx","../src/components/shadcn-studio/input/input-08.tsx","../src/components/shadcn-studio/input/input-09.tsx","../src/components/shadcn-studio/input/input-10.tsx","../src/components/shadcn-studio/input/input-11.tsx","../src/components/shadcn-studio/input/input-12.tsx","../src/components/shadcn-studio/input/input-13.tsx","../src/components/shadcn-studio/input/input-14.tsx","../src/components/shadcn-studio/input/input-15.tsx","../src/components/shadcn-studio/input/input-16.tsx","../src/components/shadcn-studio/input/input-17.tsx","../src/components/shadcn-studio/input/input-18.tsx","../src/components/shadcn-studio/input/input-19.tsx","../src/components/shadcn-studio/input/input-20.tsx","../src/components/shadcn-studio/input/input-21.tsx","../src/components/shadcn-studio/input/input-22.tsx","../src/components/shadcn-studio/input/input-23.tsx","../src/components/shadcn-studio/input/input-24.tsx","../src/components/shadcn-studio/input/input-25.tsx","../src/components/shadcn-studio/input/input-26.tsx","../src/components/shadcn-studio/input/input-27.tsx","../src/components/shadcn-studio/input/input-28.tsx","../src/components/shadcn-studio/input/input-29.tsx","../src/components/shadcn-studio/input/input-30.tsx","../src/components/shadcn-studio/input/input-31.tsx","../src/components/shadcn-studio/input/input-32.tsx","../src/components/shadcn-studio/input/input-33.tsx","../src/components/shadcn-studio/input/input-34.tsx","../src/components/shadcn-studio/input/input-35.tsx","../src/components/shadcn-studio/input/input-36.tsx","../src/components/shadcn-studio/input/input-37.tsx","../src/components/shadcn-studio/input/input-38.tsx","../src/components/shadcn-studio/input/input-39.tsx","../src/components/shadcn-studio/input/input-40.tsx","../src/components/shadcn-studio/input/input-41.tsx","../src/components/shadcn-studio/input/input-42.tsx","../src/components/shadcn-studio/input/input-43.tsx","../src/components/shadcn-studio/input/input-44.tsx","../src/components/shadcn-studio/input/input-45.tsx","../src/components/shadcn-studio/input/input-46.tsx","../src/components/shadcn-studio/input-mask/input-mask-01.tsx","../src/components/shadcn-studio/input-mask/input-mask-02.tsx","../src/components/shadcn-studio/input-mask/input-mask-03.tsx","../src/components/shadcn-studio/input-mask/input-mask-04.tsx","../src/components/shadcn-studio/input-mask/input-mask-05.tsx","../src/components/shadcn-studio/input-mask/input-mask-06.tsx","../src/components/shadcn-studio/input-otp/input-otp-01.tsx","../src/components/input-otp.tsx","../src/components/shadcn-studio/input-otp/input-otp-02.tsx","../src/components/shadcn-studio/input-otp/input-otp-03.tsx","../src/components/shadcn-studio/input-otp/input-otp-04.tsx","../src/components/shadcn-studio/input-otp/input-otp-05.tsx","../src/components/shadcn-studio/input-otp/input-otp-06.tsx","../src/components/shadcn-studio/input-otp/input-otp-07.tsx","../src/components/shadcn-studio/input-otp/input-otp-08.tsx","../src/components/shadcn-studio/input-otp/input-otp-09.tsx","../src/components/shadcn-studio/input-otp/input-otp-10.tsx","../src/components/pagination.tsx","../src/components/shadcn-studio/pagination/pagination-01.tsx","../src/components/shadcn-studio/pagination/pagination-02.tsx","../src/components/shadcn-studio/pagination/pagination-03.tsx","../src/components/shadcn-studio/pagination/pagination-04.tsx","../src/components/shadcn-studio/pagination/pagination-05.tsx","../src/components/shadcn-studio/pagination/pagination-06.tsx","../src/components/shadcn-studio/pagination/pagination-07.tsx","../src/components/shadcn-studio/pagination/pagination-08.tsx","../src/components/shadcn-studio/pagination/pagination-09.tsx","../src/components/shadcn-studio/pagination/pagination-10.tsx","../src/components/shadcn-studio/pagination/pagination-11.tsx","../src/components/shadcn-studio/pagination/pagination-12.tsx","../src/components/shadcn-studio/pagination/pagination-13.tsx","../src/components/shadcn-studio/pagination/pagination-14.tsx","../src/components/shadcn-studio/pagination/pagination-15.tsx","../src/components/shadcn-studio/popover/popover-01.tsx","../src/components/progress.tsx","../src/components/shadcn-studio/popover/popover-02.tsx","../src/components/shadcn-studio/popover/popover-03.tsx","../src/components/shadcn-studio/popover/popover-04.tsx","../src/components/slider.tsx","../src/components/shadcn-studio/popover/popover-05.tsx","../src/components/shadcn-studio/popover/popover-06.tsx","../src/components/shadcn-studio/popover/popover-07.tsx","../src/components/shadcn-studio/popover/popover-08.tsx","../src/components/shadcn-studio/popover/popover-09.tsx","../src/components/shadcn-studio/popover/popover-10.tsx","../src/components/shadcn-studio/popover/popover-11.tsx","../src/components/shadcn-studio/popover/popover-12.tsx","../src/components/shadcn-studio/radio-group/radio-group-01.tsx","../src/components/shadcn-studio/radio-group/radio-group-02.tsx","../src/components/shadcn-studio/radio-group/radio-group-03.tsx","../src/components/shadcn-studio/radio-group/radio-group-04.tsx","../src/components/shadcn-studio/radio-group/radio-group-05.tsx","../src/components/shadcn-studio/radio-group/radio-group-06.tsx","../src/components/shadcn-studio/radio-group/radio-group-07.tsx","../src/components/shadcn-studio/radio-group/radio-group-08.tsx","../src/components/shadcn-studio/radio-group/radio-group-09.tsx","../src/components/shadcn-studio/radio-group/radio-group-10.tsx","../src/components/shadcn-studio/radio-group/radio-group-11.tsx","../src/components/shadcn-studio/radio-group/radio-group-12.tsx","../src/components/shadcn-studio/radio-group/radio-group-13.tsx","../src/components/shadcn-studio/badge/badge-01.tsx","../src/components/shadcn-studio/badge/badge-02.tsx","../src/components/shadcn-studio/badge/badge-03.tsx","../src/components/shadcn-studio/badge/badge-04.tsx","../src/components/shadcn-studio/badge/badge-05.tsx","../src/components/shadcn-studio/badge/badge-06.tsx","../src/components/shadcn-studio/badge/badge-07.tsx","../src/components/shadcn-studio/badge/badge-08.tsx","../src/components/shadcn-studio/badge/badge-09.tsx","../src/components/shadcn-studio/badge/badge-10.tsx","../src/components/shadcn-studio/badge/badge-11.tsx","../src/components/shadcn-studio/badge/badge-12.tsx","../src/components/shadcn-studio/badge/badge-13.tsx","../src/components/shadcn-studio/badge/badge-14.tsx","../src/components/shadcn-studio/badge/badge-15.tsx","../src/components/shadcn-studio/badge/badge-16.tsx","../src/components/shadcn-studio/badge/badge-17.tsx","../src/components/shadcn-studio/badge/badge-18.tsx","../src/components/shadcn-studio/badge/badge-19.tsx","../src/components/shadcn-studio/badge/badge-20.tsx","../src/components/shadcn-studio/badge/badge-21.tsx","../src/components/shadcn-studio/badge/badge-22.tsx","../src/components/shadcn-studio/badge/badge-23.tsx","../src/components/shadcn-studio/badge/badge-24.tsx","../src/components/shadcn-studio/sonner/sonner-01.tsx","../src/components/shadcn-studio/sonner/sonner-02.tsx","../src/components/shadcn-studio/sonner/sonner-03.tsx","../src/components/shadcn-studio/sonner/sonner-04.tsx","../src/components/shadcn-studio/sonner/sonner-05.tsx","../src/components/shadcn-studio/sonner/sonner-06.tsx","../src/components/shadcn-studio/sonner/sonner-07.tsx","../src/components/shadcn-studio/sonner/sonner-08.tsx","../src/components/shadcn-studio/sonner/sonner-09.tsx","../src/components/shadcn-studio/sonner/sonner-10.tsx","../src/components/shadcn-studio/sonner/sonner-11.tsx","../src/components/shadcn-studio/sonner/sonner-12.tsx","../src/components/shadcn-studio/sonner/sonner-13.tsx","../src/components/shadcn-studio/sonner/sonner-14.tsx","../src/components/shadcn-studio/sonner/sonner-15.tsx","../src/components/shadcn-studio/sonner/sonner-16.tsx","../src/components/shadcn-studio/sonner/sonner-17.tsx","../src/components/shadcn-studio/sonner/sonner-18.tsx","../src/components/shadcn-studio/sonner/sonner-19.tsx","../src/components/shadcn-studio/sonner/sonner-20.tsx","../src/components/alert.tsx","../src/components/skeleton.tsx","../src/components/toggle.tsx","../src/components/switch.tsx","../src/components/accordion.tsx","../src/components/form.tsx","../src/components/shadcn-studio/form/form-01.tsx","../src/components/shadcn-studio/form/form-02.tsx","../src/components/shadcn-studio/form/form-03.tsx","../src/components/shadcn-studio/form/form-04.tsx","../src/components/shadcn-studio/form/form-05.tsx","../src/components/shadcn-studio/form/form-06.tsx","../src/components/shadcn-studio/form/form-07.tsx","../src/components/shadcn-studio/form/form-08.tsx","../src/components/shadcn-studio/form/form-09.tsx","../src/components/shadcn-studio/form/form-10.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-01.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-05.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-08.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-09.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-11.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-13.tsx","../src/components/shadcn-studio/dropdown-menu/dropdown-menu-14.tsx","../src/components/sidebar.tsx","../src/hooks/use-mobile.tsx","../src/components/sheet.tsx"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client';\n\nimport * as React from 'react';\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n theme?: string;\n defaultTheme?: string;\n attribute?: string;\n enableSystem?: boolean;\n disableTransitionOnChange?: boolean;\n}\n\nexport function ThemeProvider({\n children,\n theme,\n defaultTheme = 'light',\n attribute = 'class',\n enableSystem = false,\n disableTransitionOnChange = false,\n ...props\n}: ThemeProviderProps) {\n const [mounted, setMounted] = React.useState(false);\n const [currentTheme, setCurrentTheme] = React.useState(theme || defaultTheme);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n React.useEffect(() => {\n if (theme !== undefined) {\n setCurrentTheme(theme);\n } else if (defaultTheme !== undefined) {\n setCurrentTheme(defaultTheme);\n }\n }, [theme, defaultTheme]);\n\n React.useEffect(() => {\n if (!mounted) return;\n\n const root = window.document.documentElement;\n \n if (disableTransitionOnChange) {\n const css = document.createElement('style');\n css.appendChild(\n document.createTextNode(\n `*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`\n )\n );\n document.head.appendChild(css);\n\n requestAnimationFrame(() => {\n root.setAttribute(attribute, currentTheme);\n requestAnimationFrame(() => {\n document.head.removeChild(css);\n });\n });\n } else {\n root.setAttribute(attribute, currentTheme);\n }\n }, [currentTheme, attribute, mounted, disableTransitionOnChange]);\n\n if (!mounted) {\n return <>{children}</>;\n }\n\n return (\n <div data-theme={currentTheme} {...props}>\n {children}\n </div>\n );\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n xs: \"h-7 rounded-md px-1.5 text-xs\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n \"icon-xs\": \"h-7 w-7\",\n \"icon-sm\": \"h-8 w-8\",\n \"icon-lg\": \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../lib/utils';\n\nconst cardVariants = cva('rounded-lg bg-card text-card-foreground shadow-sm', {\n variants: {\n size: {\n default: '',\n sm: '',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nconst CardContext = React.createContext<{ size?: 'default' | 'sm' | null }>({ size: 'default' });\n\nconst paddingMap = {\n default: { header: 'p-6', content: 'p-6', footer: 'p-6 pt-0' },\n sm: { header: 'p-4', content: 'p-4', footer: 'p-4 pt-0' },\n};\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, size = 'default', ...props }, ref) => (\n <CardContext.Provider value={{ size }}>\n <div ref={ref} className={cn(cardVariants({ size }), className)} {...props} />\n </CardContext.Provider>\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { size } = React.useContext(CardContext);\n const padding = paddingMap[size ?? 'default'].header;\n return (\n <div\n ref={ref}\n className={cn('grid grid-cols-[1fr_auto] items-start gap-x-4 gap-y-4', padding, className)}\n {...props}\n />\n );\n }\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('col-start-1 text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('col-start-1 text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardAction = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('col-start-2 row-span-2 self-start', className)} {...props} />\n )\n);\nCardAction.displayName = 'CardAction';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { size } = React.useContext(CardContext);\n const padding = paddingMap[size ?? 'default'].content;\n return <div ref={ref} className={cn(padding, 'space-y-2', className)} {...props} />;\n }\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { size } = React.useContext(CardContext);\n const padding = paddingMap[size ?? 'default'].footer;\n return (\n <div ref={ref} className={cn('flex items-center', padding, className)} {...props} />\n );\n }\n);\nCardFooter.displayName = 'CardFooter';\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardAction,\n CardContent,\n cardVariants,\n};\n","import { DownloadIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonDownloadDemo = () => {\n return (\n <Button variant='outline' className='border-primary border-dashed shadow-none'>\n <DownloadIcon />\n Download\n </Button>\n )\n}\n\nexport default ButtonDownloadDemo\n","import { ArrowLeftIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGhostDemo = () => {\n return (\n <Button variant='ghost' className='group'>\n <ArrowLeftIcon className='transition-transform duration-200 group-hover:-translate-x-0.5' />\n Go to settings\n </Button>\n )\n}\n\nexport default ButtonGhostDemo\n","import { LoaderCircleIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonLoadingDemo = () => {\n return (\n <Button disabled>\n <LoaderCircleIcon className='animate-spin' />\n Loading\n </Button>\n )\n}\n\nexport default ButtonLoadingDemo\n","import { ShareIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonPublishDemo = () => {\n return (\n <Button variant='outline' className='h-12 rounded-full px-2.5'>\n <span className='bg-primary text-primary-foreground flex size-7 items-center justify-center rounded-full p-1'>\n <ShareIcon className='size-4' />\n </span>\n Publish\n </Button>\n )\n}\n\nexport default ButtonPublishDemo\n","import { CopyIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonCopyDemo = () => {\n return (\n <div className='flex h-11.5 items-center overflow-hidden rounded-full border px-1'>\n <p className='text-muted-foreground max-w-56 truncate overflow-hidden px-2.5 text-sm'>\n https://shadcnstudio.com/docs/components/button\n </p>\n <Button\n size='icon'\n className='rounded-full bg-transparent hover:bg-transparent focus-visible:ring-primary/20 gap-0 w-fit h-fit'\n >\n <span className='bg-primary text-primary-foreground flex size-7 items-center justify-center rounded-full p-1'>\n <CopyIcon className='size-4' />\n </span>\n <span className='sr-only'>Copy</span>\n </Button>\n </div>\n )\n}\n\nexport default ButtonCopyDemo\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import { Button } from '@/components/button'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/card'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst CardDemo = () => {\n return (\n <Card className='w-full max-w-md text-left'>\n <CardHeader className='px-8'>\n <CardTitle>Login to your account</CardTitle>\n <CardDescription>Enter your email below to login to your account</CardDescription>\n </CardHeader>\n <CardContent className='px-8'>\n <form>\n <div className='flex flex-col gap-6'>\n <div className='grid gap-2'>\n <Label htmlFor='email'>Email</Label>\n <Input id='email' type='email' placeholder='m@example.com' />\n </div>\n <div className='grid gap-2'>\n <div className='flex items-center'>\n <Label htmlFor='password'>Password</Label>\n <a href='#' className='ml-auto inline-block text-sm underline-offset-4 hover:underline'>\n Forgot your password?\n </a>\n </div>\n <Input id='password' type='password' />\n </div>\n </div>\n </form>\n </CardContent>\n <CardFooter className='flex-col gap-2 px-8'>\n <Button type='submit' className='w-full'>\n Login\n </Button>\n <Button variant='outline' className='w-full'>\n Continue with Google\n </Button>\n <div className='mt-4 text-left text-sm'>\n Don't have an account?{' '}\n <a href='#' className='underline underline-offset-4'>\n Sign up\n </a>\n </div>\n </CardFooter>\n </Card>\n )\n}\n\nexport default CardDemo\n","import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/card'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst CardMeetingNotesDemo = () => {\n return (\n <Card className='max-w-md text-left'>\n <CardHeader className='px-8'>\n <CardTitle>Meeting Notes</CardTitle>\n <CardDescription>Transcript from the meeting with the client.</CardDescription>\n </CardHeader>\n <CardContent className='text-sm px-8'>\n <p>Client requested dashboard redesign with focus on mobile responsiveness.</p>\n <ol className='mt-4 flex list-decimal flex-col gap-2 pl-6 text-left'>\n <li>New analytics widgets for daily/weekly metrics</li>\n <li>Simplified navigation menu</li>\n <li>Dark mode support</li>\n <li>Timeline: 6 weeks</li>\n <li>Follow-up meeting scheduled for next Tuesday</li>\n </ol>\n </CardContent>\n <CardFooter className='px-8'>\n <div className='flex -space-x-2 hover:space-x-1'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2 transition-all duration-300 ease-in-out'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n </CardFooter>\n </Card>\n )\n}\n\nexport default CardMeetingNotesDemo\n","import { CircleFadingPlusIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/card'\n\nconst CardInviteCardDemo = () => {\n return (\n <Card className='w-full max-w-lg'>\n <CardHeader className='pb-0'>\n <CardTitle>Meeting Notes</CardTitle>\n </CardHeader>\n <CardContent className='grid gap-4 sm:grid-cols-2'>\n <div className='flex items-center gap-4'>\n <CircleFadingPlusIcon />\n <span className='text-sm font-semibold'>Invite Member </span>\n </div>\n <div className='flex items-center gap-4'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>JA</AvatarFallback>\n </Avatar>\n <div className='flex flex-col'>\n <span className='text-sm font-semibold'>Jimmy Androson </span>\n <span className='text-muted-foreground text-sm'>UI Designer</span>\n </div>\n </div>\n <div className='flex items-center gap-4'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-2.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>DA</AvatarFallback>\n </Avatar>\n <div className='flex flex-col'>\n <span className='text-sm font-semibold'>Dean Ambrose </span>\n <span className='text-muted-foreground text-sm'>UX Designer</span>\n </div>\n </div>\n <div className='flex items-center gap-4'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <div className='flex flex-col'>\n <span className='text-sm font-semibold'>Anita John</span>\n <span className='text-muted-foreground text-sm'>Branding</span>\n </div>\n </div>\n <div></div>\n <div></div>\n </CardContent>\n </Card>\n )\n}\n\nexport default CardInviteCardDemo\n","import { Card, CardContent, CardHeader, CardDescription, CardTitle } from '@/components/card'\n\nconst CardBottomImageDemo = () => {\n return (\n <Card className='max-w-md pb-0'>\n <CardHeader className='pb-0'>\n <CardTitle>Fluid Gradient Flow</CardTitle>\n <CardDescription>A vibrant and abstract background with smooth gradient curves.</CardDescription>\n </CardHeader>\n <CardContent className='px-0 pb-0'>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/components/card/image-1.png?height=280&format=auto'\n alt='Banner'\n className='aspect-video h-70 object-cover'\n style={{ borderBottomLeftRadius: 'var(--radius)', borderBottomRightRadius: 'var(--radius)' }}\n />\n </CardContent>\n </Card>\n )\n}\n\nexport default CardBottomImageDemo\n","import { Button } from '@/components/button'\nimport { Card, CardContent, CardHeader, CardDescription, CardTitle, CardFooter } from '@/components/card'\n\nconst CardTopImageDemo = () => {\n return (\n <Card className='max-w-md pt-0'>\n <CardContent className='px-0 pb-0 pt-0'>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/components/card/image-2.png?height=280&format=auto'\n alt='Banner'\n className='aspect-video h-70 object-cover'\n style={{ borderTopLeftRadius: 'var(--radius)', borderTopRightRadius: 'var(--radius)' }}\n />\n </CardContent>\n <CardHeader>\n <CardTitle>Ethereal Swirl Gradient</CardTitle>\n <CardDescription>Smooth, flowing gradients blending rich reds and blues in an abstract swirl.</CardDescription>\n </CardHeader>\n <CardFooter className='gap-3 max-sm:flex-col max-sm:items-stretch'>\n <Button>Explore More</Button>\n <Button variant={'outline'}>Download Now</Button>\n </CardFooter>\n </Card>\n )\n}\n\nexport default CardTopImageDemo\n","import { Card, CardContent, CardHeader, CardDescription, CardTitle, CardFooter } from '@/components/card'\nimport { Button } from '@/components/button'\n\nconst CardHorizontalDemo = () => {\n return (\n <Card className='max-w-lg py-0 flex flex-row gap-0'>\n <CardContent className='grow px-0 py-0'>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/components/card/image-3.png'\n alt='Banner'\n className='size-full rounded-l-xl'\n />\n </CardContent>\n <div className='min-w-54'>\n <CardHeader className='pt-6'>\n <CardTitle>Dreamy Colorwave Gradient</CardTitle>\n <CardDescription>A smooth blend of vibrant pinks, purples, and blues for a magical touch.</CardDescription>\n </CardHeader>\n <CardFooter className='gap-3 py-6'>\n <Button className='bg-transparent bg-gradient-to-br from-purple-500 to-pink-500 text-white focus-visible:ring-pink-600/20'>\n Explore More\n </Button>\n </CardFooter>\n </div>\n </Card>\n )\n}\n\nexport default CardHorizontalDemo\n","import { useState } from 'react'\n\nimport { Button } from '@/components/button'\nimport { Card, CardContent } from '@/components/card'\n\nconst tabs = [\n {\n name: 'Home',\n value: 'home',\n content:\n 'Welcome to the Home tab! Here, you can explore the latest updates, news, and highlights. Stay informed about what\\'s happening and never miss out on important announcements.'\n },\n {\n name: 'Profile',\n value: 'profile',\n content:\n 'This is your Profile tab. Manage your personal information, update your account details, and customize your settings to make your experience unique.'\n },\n {\n name: 'Messages',\n value: 'messages',\n content:\n 'Messages: Check your recent messages, start new conversations, and stay connected with your friends and contacts. Manage your chat history and keep the communication flowing.'\n }\n]\n\nconst CardWithTabsDemo = () => {\n const [activeTab, setActiveTab] = useState(tabs[0].value)\n const activeContent = tabs.find(tab => tab.value === activeTab)?.content\n\n return (\n <Card className='w-max'>\n <CardContent>\n <div className='w-full max-w-sm'>\n <div className='inline-flex w-full -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n {tabs.map((tab, index) => (\n <Button\n key={tab.value}\n variant='outline'\n onClick={() => setActiveTab(tab.value)}\n className={[\n 'flex-1 rounded-none shadow-none focus-visible:z-10',\n index === 0 && 'rounded-l-md',\n index === tabs.length - 1 && 'rounded-r-md',\n activeTab === tab.value && 'bg-muted'\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {tab.name}\n </Button>\n ))}\n </div>\n <p className='text-muted-foreground p-4 text-sm'>{activeContent}</p>\n </div>\n </CardContent>\n </Card>\n )\n}\n\nexport default CardWithTabsDemo\n","import { StarIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Card, CardFooter, CardContent, CardTitle, CardDescription } from '@/components/card'\n\nconst CardTestimonialDemo = () => {\n return (\n <Card className='max-w-md border-none'>\n <CardContent>\n <p>\n Incredible time-saver! shadcn/studio has made UI development a breeze. The pre build components are not only{' '}\n <span className='bg-primary/10'>visually appealing but also highly customizable</span>, fitting seamlessly\n into my projects. With a wide array of options to choose from, I can easily match.\n </p>\n </CardContent>\n <CardFooter className='justify-between gap-3 max-sm:flex-col max-sm:items-stretch'>\n <div className='flex items-center gap-3'>\n <Avatar className='ring-ring ring-2'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>SG</AvatarFallback>\n </Avatar>\n <div className='flex flex-col gap-0.5'>\n <CardTitle className='flex items-center gap-1 text-sm'>Sam Green</CardTitle>\n <CardDescription>@SamG11</CardDescription>\n </div>\n </div>\n <div className='flex items-center gap-1'>\n <StarIcon className='size-5 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400'></StarIcon>\n <StarIcon className='size-5 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400'></StarIcon>\n <StarIcon className='size-5 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400'></StarIcon>\n <StarIcon className='size-5 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400'></StarIcon>\n <StarIcon className='size-5 stroke-amber-500 dark:stroke-amber-400'></StarIcon>\n </div>\n </CardFooter>\n </Card>\n )\n}\n\nexport default CardTestimonialDemo\n","import { useState } from 'react'\n\nimport { XIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/card'\n\nconst CardActionDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n <Card className='relative max-w-lg shadow-none'>\n <Button\n variant='ghost'\n size='icon'\n onClick={() => setIsActive(false)}\n className='absolute top-2 right-2 rounded-full'\n >\n <XIcon />\n <span className='sr-only'>Close</span>\n </Button>\n <CardHeader className='pb-2'>\n <CardTitle className='text-center'>Have a project in mind</CardTitle>\n </CardHeader>\n <CardContent className='flex flex-col gap-4 text-center'>\n <p>Let's discuss! Our Assistant team is excited to hear about your projects, ideas and questions. </p>\n <Button>Contact Our Team</Button>\n </CardContent>\n </Card>\n )\n}\n\nexport default CardActionDemo\n","import { DownloadIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupDownloadDemo = () => {\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button variant='outline' className='rounded-none rounded-l-md shadow-none focus-visible:z-10'>\n <DownloadIcon className='size-4' />\n Download\n </Button>\n <span className='bg-background dark:border-input dark:bg-input/30 flex items-center rounded-r-md border px-3 text-sm font-medium'>\n 15k\n </span>\n </div>\n )\n}\n\nexport default ButtonGroupDownloadDemo\n","import { useState } from 'react'\n\nimport { HeartIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nimport { cn } from '@/lib/utils'\n\nconst ButtonGroupLikeDemo = () => {\n const [isLiked, setIsLiked] = useState(true)\n\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button\n variant='outline'\n className='rounded-none rounded-l-md shadow-none focus-visible:z-10'\n onClick={() => setIsLiked(!isLiked)}\n >\n <HeartIcon className={cn('size-4', { 'fill-destructive stroke-destructive': isLiked })} />\n Like\n </Button>\n <span className='bg-background dark:border-input dark:bg-input/30 flex items-center rounded-r-md border px-3 text-sm font-medium'>\n {isLiked ? 46 : 45}\n </span>\n </div>\n )\n}\n\nexport default ButtonGroupLikeDemo\n","import { CopyIcon, CropIcon, EllipsisVerticalIcon, MousePointerIcon, SquareIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/tooltip'\n\nconst ButtonGroupTooltipDemo = () => {\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none rounded-l-md shadow-none focus-visible:z-10' variant='outline'>\n <MousePointerIcon className='size-4' />\n <span className='sr-only'>Select</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Select</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none shadow-none focus-visible:z-10' variant='outline'>\n <SquareIcon className='size-4' />\n <span className='sr-only'>Shapes</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Shapes</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none shadow-none focus-visible:z-10' variant='outline'>\n <CropIcon className='size-4' />\n <span className='sr-only'>Crop</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Crop</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none shadow-none focus-visible:z-10' variant='outline'>\n <CopyIcon className='size-4' />\n <span className='sr-only'>Duplicate</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Duplicate</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none rounded-r-md shadow-none focus-visible:z-10' variant='outline'>\n <EllipsisVerticalIcon className='size-4' />\n <span className='sr-only'>More</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>More</TooltipContent>\n </Tooltip>\n </div>\n )\n}\n\nexport default ButtonGroupTooltipDemo\n","import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","import { PauseIcon, PlayIcon, SkipBackIcon, SkipForwardIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/tooltip'\n\nconst ButtonGroupRoundedDemo = () => {\n return (\n <div className='divide-primary-foreground/30 inline-flex w-fit divide-x rounded-full shadow-xs'>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none rounded-l-full focus-visible:z-10'>\n <SkipBackIcon className='size-4' />\n <span className='sr-only'>Skip Back</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Skip Back</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none focus-visible:z-10'>\n <PlayIcon className='size-4' />\n <span className='sr-only'>Play</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Play</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none focus-visible:z-10'>\n <PauseIcon className='size-4' />\n <span className='sr-only'>Pause</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Pause</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button className='rounded-none rounded-r-full focus-visible:z-10'>\n <SkipForwardIcon className='size-4' />\n <span className='sr-only'>Skip Forward</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent className='px-2 py-1 text-xs'>Skip Forward</TooltipContent>\n </Tooltip>\n </div>\n )\n}\n\nexport default ButtonGroupRoundedDemo\n","import { DribbbleIcon, FacebookIcon, InstagramIcon, TwitchIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupSocialDemo = () => {\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button\n variant='outline'\n className='rounded-none rounded-l-md shadow-none hover:!bg-[#9146ff]/10 focus-visible:z-10'\n asChild\n >\n <a href='#' target='_blank' rel='noopener noreferrer'>\n <TwitchIcon className='size-4 stroke-[#9146ff]' />\n <span className='sr-only'>Twitch</span>\n </a>\n </Button>\n <Button variant='outline' className='rounded-none shadow-none hover:!bg-[#EA4C89]/10 focus-visible:z-10' asChild>\n <a href='#' target='_blank' rel='noopener noreferrer'>\n <DribbbleIcon className='size-4 stroke-[#EA4C89]' />\n <span className='sr-only'>Dribbble</span>\n </a>\n </Button>\n <Button variant='outline' className='rounded-none shadow-none hover:!bg-[#fb169a]/10 focus-visible:z-10' asChild>\n <a href='#' target='_blank' rel='noopener noreferrer'>\n <InstagramIcon className='size-4 stroke-[#fb169a]' />\n <span className='sr-only'>Instagram</span>\n </a>\n </Button>\n <Button\n variant='outline'\n className='rounded-none rounded-r-md shadow-none hover:!bg-[#0866ff]/10 focus-visible:z-10'\n asChild\n >\n <a href='#' target='_blank' rel='noopener noreferrer'>\n <FacebookIcon className='size-4 stroke-[#0866ff]' />\n <span className='sr-only'>Facebook</span>\n </a>\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupSocialDemo\n","import { useState } from 'react'\n\nimport { ZoomInIcon, ZoomOutIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupZoomDemo = () => {\n const [zoom, setZoom] = useState(95)\n\n const handleZoomIn = () => {\n if (zoom < 100) {\n setZoom(zoom + 5)\n }\n }\n\n const handleZoomOut = () => {\n if (zoom > 0) {\n setZoom(zoom - 5)\n }\n }\n\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button\n variant='outline'\n size='icon'\n className='rounded-none rounded-l-md shadow-none focus-visible:z-10'\n onClick={handleZoomOut}\n disabled={zoom === 0}\n >\n <ZoomOutIcon className='size-4' />\n <span className='sr-only'>Zoom out</span>\n </Button>\n <span className='bg-background dark:border-input dark:bg-input/30 flex items-center border px-3 text-sm font-medium'>\n {`${zoom}%`}\n </span>\n <Button\n variant='outline'\n size='icon'\n className='rounded-none rounded-r-md shadow-none focus-visible:z-10'\n onClick={handleZoomIn}\n disabled={zoom === 100}\n >\n <ZoomInIcon className='size-4' />\n <span className='sr-only'>Zoom in</span>\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupZoomDemo\n","import { useState } from 'react'\n\nimport { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupNumberDemo = () => {\n const [value, setValue] = useState(216)\n\n return (\n <div className='divide-primary-foreground/30 inline-flex w-fit divide-x rounded-md shadow-xs'>\n <Button\n size='icon'\n className='rounded-none rounded-l-full focus-visible:z-10'\n onClick={() => {\n setValue(value - 1)\n }}\n >\n <MinusIcon className='size-4' />\n <span className='sr-only'>Minus</span>\n </Button>\n <span className='bg-primary text-primary-foreground inline-flex items-center px-3 py-2 text-sm font-medium'>\n {`${value}px`}\n </span>\n <Button\n size='icon'\n className='rounded-none rounded-r-full focus-visible:z-10'\n onClick={() => {\n setValue(value + 1)\n }}\n >\n <PlusIcon className='size-4' />\n <span className='sr-only'>Plus</span>\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupNumberDemo\n","import { ExternalLinkIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupPreviewDemo = () => {\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button variant='outline' className='rounded-none rounded-l-md shadow-none focus-visible:z-10' asChild>\n <a href='#'>Live preview</a>\n </Button>\n <Button\n variant='outline'\n size='icon'\n className='rounded-none rounded-r-md shadow-none focus-visible:z-10'\n asChild\n >\n <a href='#' target='_blank' rel='noopener noreferrer'>\n <ExternalLinkIcon className='size-4' />\n <span className='sr-only'>External link</span>\n </a>\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupPreviewDemo\n","import { CopyIcon, SquarePenIcon, Trash2Icon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupActionsDemo = () => {\n return (\n <div className='inline-flex w-fit -space-x-px rounded-md shadow-xs rtl:space-x-reverse'>\n <Button variant='outline' className='rounded-none rounded-l-md shadow-none focus-visible:z-10'>\n <SquarePenIcon className='size-4' />\n Edit\n </Button>\n <Button variant='outline' className='rounded-none shadow-none focus-visible:z-10'>\n <CopyIcon className='size-4' />\n Duplicate\n </Button>\n <Button variant='outline' className='rounded-none rounded-r-md shadow-none focus-visible:z-10'>\n <Trash2Icon className='size-4' />\n Delete\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupActionsDemo\n","import { FlipHorizontalIcon, FlipVerticalIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupDemo = () => {\n return (\n <div className='divide-primary-foreground/30 inline-flex w-fit divide-x rounded-md shadow-xs'>\n <Button className='rounded-none rounded-l-md px-4 focus-visible:z-10'>\n <FlipHorizontalIcon className='size-4' />\n <span className='sr-only'>Flip Horizontal</span>\n </Button>\n <Button className='rounded-none rounded-r-md px-4 focus-visible:z-10'>\n <FlipVerticalIcon className='size-4' />\n <span className='sr-only'>Flip Vertical</span>\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { ChevronDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst options = [\n {\n label: 'Merge pull request',\n description: 'All commits from this branch will be added to the base branch via a commit version.'\n },\n {\n label: 'Squash and merge',\n description: 'The 6 commits from this branch will be combined into one commit in the base branch.'\n },\n {\n label: 'Rebase and merge',\n description: 'The 6 commits from this branch will be rebased and added to the base branch.'\n }\n]\n\nconst ButtonGroupDropdownDemo = () => {\n const [selectedIndex, setSelectedIndex] = useState('0')\n\n return (\n <div className='divide-primary-foreground/30 inline-flex w-fit divide-x rounded-md shadow-xs'>\n <Button className='rounded-none rounded-l-md focus-visible:z-10'>{options[Number(selectedIndex)].label}</Button>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button size='icon' className='rounded-none rounded-r-md focus-visible:z-10'>\n <ChevronDownIcon className='size-4' />\n <span className='sr-only'>Select option</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent side='bottom' sideOffset={4} align='end' className='max-w-64 md:max-w-xs!'>\n <DropdownMenuRadioGroup value={selectedIndex} onValueChange={setSelectedIndex}>\n {options.map((option, index) => (\n <DropdownMenuRadioItem key={option.label} value={String(index)} className='items-start [&>span]:pt-1.5'>\n <div className='flex flex-col gap-1'>\n <span className='text-sm font-medium'>{option.label}</span>\n <span className='text-muted-foreground text-xs'>{option.description}</span>\n </div>\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport default ButtonGroupDropdownDemo\n","import * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n }\n>(({ className, inset, variant, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n variant === \"destructive\" && \"text-destructive focus:bg-destructive/10 focus:text-destructive\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import { BoxIcon, ChartBarBigIcon, SettingsIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\n\nconst ButtonGroupGhostDemo = () => {\n return (\n <div className='inline-flex w-fit rounded-md rtl:space-x-reverse'>\n <Button variant='ghost' className='rounded-none rounded-l-md focus-visible:z-10'>\n <SettingsIcon className='size-4' />\n Settings\n </Button>\n <Button variant='ghost' className='rounded-none focus-visible:z-10'>\n <BoxIcon className='size-4' />\n Dashboard\n </Button>\n <Button variant='ghost' className='rounded-none rounded-r-md focus-visible:z-10'>\n <ChartBarBigIcon className='size-4' />\n Analytics\n </Button>\n </div>\n )\n}\n\nexport default ButtonGroupGhostDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar mode='single' defaultMonth={date} selected={date} onSelect={setDate} className='rounded-lg border' />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Default Month\n </p>\n </div>\n )\n}\n\nexport default CalendarDemo\n","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/button\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar overflow-visible p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50 focus-visible:ring-0 focus-visible:ring-offset-0\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50 focus-visible:ring-0 focus-visible:ring-offset-0\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal\",\n defaultClassNames.weekday\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-[--cell-size] select-none\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"group/day relative aspect-square h-full w-full select-none p-0 text-center overflow-hidden rounded-md [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"bg-accent rounded-l-md\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-r-md\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[--cell-size] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarMultiMonthDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n defaultMonth={date}\n numberOfMonths={2}\n selected={date}\n onSelect={setDate}\n className='rounded-lg border'\n />\n <p className='text-muted-foreground mt-4 text-center text-xs' role='region'>\n Multi month calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarMultiMonthDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarRangeSingleMonthDemo = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: new Date(2025, 5, 4),\n to: new Date(2025, 5, 17)\n })\n\n return (\n <div>\n <Calendar\n mode='range'\n selected={dateRange}\n defaultMonth={dateRange?.from}\n onSelect={setDateRange}\n className='rounded-lg border'\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Single month calendar with range selection\n </p>\n </div>\n )\n}\n\nexport default CalendarRangeSingleMonthDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarRangeCalendarMultiMonthDemo = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: new Date(2025, 4, 22),\n to: new Date(2025, 5, 17)\n })\n\n return (\n <div>\n <Calendar\n mode='range'\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={2}\n className='rounded-lg border'\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Multi month calendar with range selection\n </p>\n </div>\n )\n}\n\nexport default CalendarRangeCalendarMultiMonthDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarRangeWithMinimumDaysDemo = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: new Date(2025, 5, 8),\n to: new Date(2025, 5, 17)\n })\n\n return (\n <div>\n <Calendar\n mode='range'\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={1}\n min={5}\n className='rounded-lg border'\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Minimum 5 days selection\n </p>\n </div>\n )\n}\n\nexport default CalendarRangeWithMinimumDaysDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarDisableDayDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date(2025, 5, 18))\n\n return (\n <div>\n <Calendar\n mode='single'\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n disabled={{\n before: new Date(2025, 5, 12)\n }}\n className='rounded-lg border'\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Disabled day calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarDisableDayDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarDisabledWeekendsDemo = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: new Date(2025, 5, 17),\n to: new Date(2025, 5, 20)\n })\n\n return (\n <div>\n <Calendar\n mode='range'\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n disabled={{ dayOfWeek: [0, 6] }}\n className='rounded-lg border'\n excludeDisabled\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Disabled weekend calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarDisabledWeekendsDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarVariableSizeDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n selected={date}\n onSelect={setDate}\n className='rounded-lg border [--cell-size:--spacing(11)] md:[--cell-size:--spacing(13)]'\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Variable size calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarVariableSizeDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { formatDateRange } from 'little-date'\nimport { PlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Calendar } from '@/components/calendar'\nimport { Card, CardContent, CardFooter } from '@/components/card'\n\nconst events = [\n {\n title: 'Team Sync Meeting',\n from: '2025-06-12T09:00:00',\n to: '2025-06-12T10:00:00'\n },\n {\n title: 'Design Review',\n from: '2025-06-12T11:30:00',\n to: '2025-06-12T12:30:00'\n },\n {\n title: 'Client Presentation',\n from: '2025-06-12T14:00:00',\n to: '2025-06-12T15:00:00'\n }\n]\n\nconst CalendarEventListDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Card className='w-2xs py-4'>\n <CardContent className='px-4'>\n <Calendar mode='single' selected={date} onSelect={setDate} className='w-full bg-transparent p-0' required />\n </CardContent>\n <CardFooter className='flex flex-col items-start gap-3 border-t px-4 !pt-4'>\n <div className='flex w-full items-center justify-between px-1'>\n <div className='text-sm font-medium'>\n {date?.toLocaleDateString('en-US', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n })}\n </div>\n <Button variant='ghost' size='icon' className='size-6' title='Add Event'>\n <PlusIcon />\n <span className='sr-only'>Add Event</span>\n </Button>\n </div>\n <div className='flex w-full flex-col gap-2'>\n {events.map(event => (\n <div\n key={event.title}\n className='bg-muted after:bg-primary/70 relative rounded-md p-2 pl-6 text-sm after:absolute after:inset-y-2 after:left-2 after:w-1 after:rounded-full'\n >\n <div className='font-medium'>{event.title}</div>\n <div className='text-muted-foreground text-xs'>\n {formatDateRange(new Date(event.from), new Date(event.to))}\n </div>\n </div>\n ))}\n </div>\n </CardFooter>\n </Card>\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Calendar with event list\n </p>\n </div>\n )\n}\n\nexport default CalendarEventListDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarMultiSelectDemo = () => {\n const [dates, setDates] = useState<Date[]>([new Date(2025, 5, 12), new Date(2025, 5, 17)])\n\n return (\n <div>\n <Calendar mode='multiple' required selected={dates} onSelect={setDates} max={5} className='rounded-lg border' />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Multi day select calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarMultiSelectDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarCustomSelectDayDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n selected={date}\n onSelect={setDate}\n className='rounded-md border'\n classNames={{\n day_button:\n 'rounded-full! data-[selected-single=true]:bg-sky-600! data-[selected-single=true]:text-white! data-[selected-single=true]:dark:bg-sky-400! data-[selected-single=true]:group-data-[focused=true]/day:ring-sky-600/20 data-[selected-single=true]:dark:group-data-[focused=true]/day:ring-sky-400/40',\n today: 'rounded-full! bg-accent!'\n }}\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Custom day select calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarCustomSelectDayDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { type DateRange } from 'react-day-picker'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarCustomRangeSelectDemo = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: new Date(2025, 5, 4),\n to: new Date(2025, 5, 17)\n })\n\n return (\n <div>\n <Calendar\n mode='range'\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n className='rounded-md border'\n classNames={{\n range_start: 'bg-sky-600/20 dark:bg-sky-400/10 rounded-l-full',\n range_end: 'bg-sky-600/20 dark:bg-sky-400/10 rounded-r-full',\n day_button:\n 'data-[range-end=true]:rounded-full! data-[range-start=true]:rounded-full! data-[range-start=true]:bg-sky-600! data-[range-start=true]:text-white! data-[range-start=true]:dark:bg-sky-400! data-[range-start=true]:group-data-[focused=true]/day:ring-sky-600/20 data-[range-start=true]:dark:group-data-[focused=true]/day:ring-sky-400/40 data-[range-end=true]:bg-sky-600! data-[range-end=true]:text-white! data-[range-end=true]:dark:bg-sky-400! data-[range-end=true]:group-data-[focused=true]/day:ring-sky-600/20 data-[range-end=true]:dark:group-data-[focused=true]/day:ring-sky-400/40 data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-sky-600/20 data-[range-middle=true]:dark:bg-sky-400/10 hover:rounded-full',\n today:\n 'data-[selected=true]:rounded-l-none! rounded-full bg-accent! data-[selected=true]:bg-sky-600/20! dark:data-[selected=true]:bg-sky-400/10! [&_button[data-range-middle=true]]:bg-transparent!'\n }}\n />\n <p className='text-muted-foreground mt-3 text-center text-xs' role='region'>\n Custom range selection calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarCustomRangeSelectDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarRightYearMonthDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n selected={date}\n defaultMonth={date}\n onSelect={setDate}\n className='rounded-md border'\n classNames={{\n month_caption: 'flex items-center h-8 justify-start',\n nav: 'flex justify-end absolute w-full items-center'\n }}\n />\n <p className='text-muted-foreground mt-4 text-center text-xs' role='region'>\n Right side month year navigation calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarRightYearMonthDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarLeftYearMonthDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n selected={date}\n defaultMonth={date}\n onSelect={setDate}\n className='rounded-md border'\n classNames={{\n month_caption: 'flex items-center h-8 justify-end',\n nav: 'flex justify-start absolute w-full items-center'\n }}\n />\n <p className='text-muted-foreground mt-4 text-center text-xs' role='region'>\n Left side month year navigation calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarLeftYearMonthDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Calendar } from '@/components/calendar'\n\nconst CalendarWeekNumberDemo = () => {\n const [date, setDate] = useState<Date | undefined>(new Date())\n\n return (\n <div>\n <Calendar\n mode='single'\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n className='rounded-lg border shadow-sm'\n showWeekNumber\n />\n <p className='text-muted-foreground mt-4 text-center text-xs' role='region'>\n Week number calendar\n </p>\n </div>\n )\n}\n\nexport default CalendarWeekNumberDemo\n","'use client'\n\nimport { useEffect, useRef, useState } from 'react'\n\nimport { eachMonthOfInterval, eachYearOfInterval, endOfYear, format, isAfter, isBefore, startOfYear } from 'date-fns'\nimport { ChevronDownIcon } from 'lucide-react'\nimport type { CaptionLabelProps, MonthGridProps } from 'react-day-picker'\n\nimport { Button } from '@/components/button'\nimport { Calendar } from '@/components/calendar'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport { ScrollArea } from '@/components/scroll-area'\n\nconst CalendarWithAdvanceSelectionDemo = () => {\n const today = new Date()\n const [month, setMonth] = useState(today)\n const [date, setDate] = useState<Date | undefined>(today)\n const [isYearView, setIsYearView] = useState(false)\n const startDate = new Date(1980, 6)\n const endDate = new Date(2030, 6)\n\n const years = eachYearOfInterval({\n start: startOfYear(startDate),\n end: endOfYear(endDate)\n })\n\n return (\n <div>\n <Calendar\n mode='single'\n selected={date}\n onSelect={setDate}\n month={month}\n onMonthChange={setMonth}\n defaultMonth={new Date()}\n startMonth={startDate}\n endMonth={endDate}\n className='overflow-hidden rounded-md border p-2'\n classNames={{\n month_caption: 'ml-2.5 mr-20 justify-start',\n nav: 'flex absolute w-fit right-0 items-center'\n }}\n components={{\n CaptionLabel: (props: CaptionLabelProps) => (\n <CaptionLabel isYearView={isYearView} setIsYearView={setIsYearView} {...props} />\n ),\n MonthGrid: (props: MonthGridProps) => {\n return (\n <MonthGrid\n className={props.className}\n isYearView={isYearView}\n setIsYearView={setIsYearView}\n startDate={startDate}\n endDate={endDate}\n years={years}\n currentYear={month.getFullYear()}\n currentMonth={month.getMonth()}\n onMonthSelect={(selectedMonth: Date) => {\n setMonth(selectedMonth)\n setIsYearView(false)\n }}\n >\n {props.children}\n </MonthGrid>\n )\n }\n }}\n />\n <p className='text-muted-foreground mt-4 text-center text-xs' role='region'>\n Calendar with advance selection{' '}\n <a href='https://originui.com/calendar-date-picker' className='hover:text-primary underline' target='_blank'>\n Origin UI\n </a>\n </p>\n </div>\n )\n}\n\nfunction MonthGrid({\n className,\n children,\n isYearView,\n startDate,\n endDate,\n years,\n currentYear,\n currentMonth,\n onMonthSelect\n}: {\n className?: string\n children: React.ReactNode\n isYearView: boolean\n setIsYearView: React.Dispatch<React.SetStateAction<boolean>>\n startDate: Date\n endDate: Date\n years: Date[]\n currentYear: number\n currentMonth: number\n onMonthSelect: (date: Date) => void\n}) {\n const currentYearRef = useRef<HTMLDivElement>(null)\n const currentMonthButtonRef = useRef<HTMLButtonElement>(null)\n const scrollAreaRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (isYearView && currentYearRef.current && scrollAreaRef.current) {\n const viewport = scrollAreaRef.current.querySelector('[data-radix-scroll-area-viewport]') as HTMLElement\n\n if (viewport) {\n const yearTop = currentYearRef.current.offsetTop\n\n viewport.scrollTop = yearTop\n }\n\n setTimeout(() => {\n currentMonthButtonRef.current?.focus()\n }, 100)\n }\n }, [isYearView])\n\n return (\n <div className='relative'>\n <table className={className}>{children}</table>\n {isYearView && (\n <div className='bg-background absolute inset-0 z-20 -mx-2 -mb-2'>\n <ScrollArea ref={scrollAreaRef} className='h-full'>\n {years.map(year => {\n const months = eachMonthOfInterval({\n start: startOfYear(year),\n end: endOfYear(year)\n })\n\n const isCurrentYear = year.getFullYear() === currentYear\n\n return (\n <div key={year.getFullYear()} ref={isCurrentYear ? currentYearRef : undefined}>\n <CollapsibleYear title={year.getFullYear().toString()} open={isCurrentYear}>\n <div className='grid grid-cols-3 gap-2'>\n {months.map(month => {\n const isDisabled = isBefore(month, startDate) || isAfter(month, endDate)\n const isCurrentMonth = month.getMonth() === currentMonth && year.getFullYear() === currentYear\n\n return (\n <Button\n key={month.getTime()}\n ref={isCurrentMonth ? currentMonthButtonRef : undefined}\n variant={isCurrentMonth ? 'default' : 'outline'}\n size='sm'\n className='h-7'\n disabled={isDisabled}\n onClick={() => onMonthSelect(month)}\n >\n {format(month, 'MMM')}\n </Button>\n )\n })}\n </div>\n </CollapsibleYear>\n </div>\n )\n })}\n </ScrollArea>\n </div>\n )}\n </div>\n )\n}\n\nfunction CaptionLabel({\n children,\n isYearView,\n setIsYearView\n}: {\n isYearView: boolean\n setIsYearView: React.Dispatch<React.SetStateAction<boolean>>\n} & React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <Button\n className='data-[state=open]:text-muted-foreground/80 -ms-2 flex items-center gap-2 text-sm font-medium hover:bg-transparent [&[data-state=open]>svg]:rotate-180'\n variant='ghost'\n size='sm'\n onClick={() => setIsYearView(prev => !prev)}\n data-state={isYearView ? 'open' : 'closed'}\n >\n {children}\n <ChevronDownIcon\n className='text-muted-foreground/80 shrink-0 transition-transform duration-200'\n aria-hidden='true'\n />\n </Button>\n )\n}\n\nfunction CollapsibleYear({ title, children, open }: { title: string; children: React.ReactNode; open?: boolean }) {\n return (\n <Collapsible className='border-t px-2 py-1.5' defaultOpen={open}>\n <CollapsibleTrigger asChild>\n <Button\n className='flex w-full justify-start gap-2 text-sm font-medium hover:bg-transparent [&[data-state=open]>svg]:rotate-180'\n variant='ghost'\n size='sm'\n >\n <ChevronDownIcon\n className='text-muted-foreground/80 shrink-0 transition-transform duration-200'\n aria-hidden='true'\n />\n {title}\n </Button>\n </CollapsibleTrigger>\n <CollapsibleContent className='data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down overflow-hidden px-3 py-1 text-sm transition-all'>\n {children}\n </CollapsibleContent>\n </Collapsible>\n )\n}\n\nexport default CalendarWithAdvanceSelectionDemo\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"grid place-content-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","import { ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\nconst CollapsibleDemo = () => {\n return (\n <Collapsible className='flex w-full max-w-[350px] flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>@peduarte starred 3 repositories</div>\n <CollapsibleTrigger asChild>\n <Button variant='ghost' size='icon-sm'>\n <ChevronsUpDownIcon />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <div className='rounded-md border px-4 py-2 font-mono text-sm'>@radix-ui/primitives</div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='rounded-md border px-4 py-2 font-mono text-sm'>@radix-ui/colors</div>\n <div className='rounded-md border px-4 py-2 font-mono text-sm'>@stitches/react</div>\n </CollapsibleContent>\n </Collapsible>\n )\n}\n\nexport default CollapsibleDemo\n","import { ChevronRightIcon, FileIcon, FolderIcon, FolderOpenIcon } from 'lucide-react'\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\ntype FileTreeItem = {\n name: string\n} & (\n | {\n type: 'file'\n children?: never\n }\n | {\n type: 'folder'\n children: FileTreeItem[]\n }\n)\n\nconst fileTree: FileTreeItem[] = [\n {\n name: 'components',\n type: 'folder',\n children: [\n {\n name: 'ui',\n type: 'folder',\n children: [\n { name: 'button.tsx', type: 'file' },\n { name: 'input.tsx', type: 'file' },\n { name: 'sidebar.tsx', type: 'file' }\n ]\n },\n { name: 'app-sidebar.tsx', type: 'file' }\n ]\n },\n {\n name: 'hooks',\n type: 'folder',\n children: [{ name: 'use-mobile.ts', type: 'file' }]\n },\n {\n name: 'lib',\n type: 'folder',\n children: [{ name: 'utils.ts', type: 'file' }]\n },\n {\n name: 'components.json',\n type: 'file'\n }\n]\n\nconst FileTree = ({ item, level }: { level: number; item: FileTreeItem }) => {\n if (item.type === 'file') {\n return (\n <div\n className='focus-visible:ring-ring/50 flex items-center gap-2 rounded-md p-1 outline-none focus-visible:ring-[3px]'\n style={{ paddingLeft: `${level === 0 ? 1.75 : 3.25}rem` }}\n >\n <FileIcon className='size-4 shrink-0' />\n <span className='text-muted-foreground text-sm'>{item.name}</span>\n </div>\n )\n }\n\n return (\n <Collapsible className='flex flex-col gap-1.5' style={{ paddingLeft: `${level === 0 ? 0 : 1.5}rem` }}>\n <CollapsibleTrigger className='focus-visible:ring-ring/50 flex items-center gap-2 rounded-md p-1 outline-none focus-visible:ring-[3px]'>\n <ChevronRightIcon className='size-4 shrink-0 transition-transform [[data-state=open]>&]:rotate-90' />\n <FolderIcon className='size-4 shrink-0 [[data-state=open]>&]:hidden' />\n <FolderOpenIcon className='size-4 shrink-0 [[data-state=closed]>&]:hidden' />\n <span className='text-sm'>{item.name}</span>\n </CollapsibleTrigger>\n <CollapsibleContent className='flex flex-col gap-1.5'>\n {item.children.map(item => (\n <FileTree key={item.name} item={item} level={level + 1} />\n ))}\n </CollapsibleContent>\n </Collapsible>\n )\n}\n\nconst CollapsibleTreeDemo = () => {\n return (\n <div className='flex w-full max-w-48 flex-col gap-2'>\n {fileTree.map(item => (\n <FileTree key={item.name} item={item} level={0} />\n ))}\n </div>\n )\n}\n\nexport default CollapsibleTreeDemo\n","import { ChevronUpIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\nconst tasks = [\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'HL',\n name: 'Howard Lloyd',\n designation: 'Product Manager',\n percentage: 90\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'OS',\n name: 'Olivia Sparks',\n designation: 'Software Engineer',\n percentage: 60\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards',\n designation: 'UI/UX Designer',\n percentage: 80\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson',\n designation: 'Junior Developer',\n percentage: 15\n }\n]\n\nconst CollapsibleListDemo = () => {\n return (\n <Collapsible className='flex w-full max-w-[350px] flex-col items-start gap-4'>\n <div className='font-medium'>Today's task completion</div>\n <ul className='flex w-full flex-col gap-2'>\n {tasks.slice(0, 2).map(task => (\n <li key={task.name} className='flex items-start gap-4'>\n <Avatar>\n <AvatarImage src={task.image} alt={task.name} />\n <AvatarFallback>{task.fallback}</AvatarFallback>\n </Avatar>\n <div className='flex flex-1 flex-col'>\n <div className='text-sm font-medium'>{task.name}</div>\n <p className='text-muted-foreground text-xs'>{task.designation}</p>\n </div>\n <span className='text-muted-foreground text-sm'>{`${task.percentage}%`}</span>\n </li>\n ))}\n <CollapsibleContent className='flex flex-col gap-2'>\n {tasks.slice(2).map(task => (\n <li key={task.name} className='flex items-start gap-4'>\n <Avatar>\n <AvatarImage src={task.image} alt={task.name} />\n <AvatarFallback>{task.fallback}</AvatarFallback>\n </Avatar>\n <div className='flex flex-1 flex-col'>\n <div className='text-sm font-medium'>{task.name}</div>\n <p className='text-muted-foreground text-xs'>{task.designation}</p>\n </div>\n <span className='text-muted-foreground text-sm'>{`${task.percentage}%`}</span>\n </li>\n ))}\n </CollapsibleContent>\n </ul>\n <CollapsibleTrigger asChild>\n <Button variant='outline' size='sm'>\n <span className='[[data-state=open]>&]:hidden'>Show more</span>\n <span className='[[data-state=closed]>&]:hidden'>Show less</span>\n <ChevronUpIcon className='[[data-state=closed]>&]:rotate-180' />\n </Button>\n </CollapsibleTrigger>\n </Collapsible>\n )\n}\n\nexport default CollapsibleListDemo\n","import { ChevronRightIcon, PanelsTopLeftIcon, PlusIcon, UserIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\nconst users = [\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'HL',\n name: 'Howard Lloyd',\n bio: 'Senior Product Manager with 8+ years of experience in SaaS product development and team leadership.',\n projects: 5,\n followers: 120\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'OS',\n name: 'Olivia Sparks',\n bio: 'Full-stack Software Engineer specializing in React, Node.js, and cloud architecture solutions.',\n projects: 3,\n followers: 95,\n followed: true\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards',\n bio: 'Creative UI/UX Designer with expertise in user research, wireframing, and accessible interface design.',\n projects: 4,\n followers: 80\n }\n]\n\nconst CollapsibleProfileDemo = () => {\n return (\n <ul className='flex w-full max-w-[350px] flex-col gap-4'>\n {users.map(user => (\n <Collapsible key={user.name} asChild>\n <li className='flex flex-col gap-2'>\n <CollapsibleTrigger className='flex w-full items-center justify-between gap-4'>\n <div className='flex items-center gap-2'>\n <Avatar>\n <AvatarImage src={user.image} alt={user.fallback} />\n <AvatarFallback>{user.fallback}</AvatarFallback>\n </Avatar>\n <span className='font-medium'>{user.name}</span>\n </div>\n <ChevronRightIcon className='size-4 transition-transform [[data-state=open]_&]:rotate-90' />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <div className='flex flex-col gap-2'>\n <p className='text-muted-foreground text-sm'>{user.bio}</p>\n <div className='flex items-center justify-between gap-2'>\n <div className='flex items-center gap-4'>\n <span className='flex items-center gap-2'>\n <UserIcon className='size-4' />\n <span className='text-sm'>{user.followers}</span>\n </span>\n <span className='flex items-center gap-2'>\n <PanelsTopLeftIcon className='size-4' />\n <span className='text-sm'>{user.projects}</span>\n </span>\n </div>\n {user.followed ? (\n <Button variant='outline' className='h-7 rounded-full px-3 py-1 text-xs'>\n Following\n </Button>\n ) : (\n <Button className='h-7 rounded-full px-3 py-1 text-xs'>\n Follow\n <PlusIcon />\n </Button>\n )}\n </div>\n </div>\n </CollapsibleContent>\n </li>\n </Collapsible>\n ))}\n </ul>\n )\n}\n\nexport default CollapsibleProfileDemo\n","import { ChevronDownIcon, StarIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport { Label } from '@/components/label'\nimport { Input } from '@/components/input'\nimport { Separator } from '@/components/separator'\n\nconst CollapsibleFilterDemo = () => {\n return (\n <div className='w-full max-w-[350px] space-y-3'>\n <Collapsible className='flex flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Price Range</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <Label htmlFor='min-price' className='shrink-0 text-sm font-medium'>\n Min Price\n </Label>\n <Input id='min-price' type='number' placeholder='0' className='max-w-58' />\n </div>\n <div className='flex items-center justify-between gap-4 px-4'>\n <Label htmlFor='max-price' className='shrink-0 text-sm font-medium'>\n Max Price\n </Label>\n <Input id='max-price' type='number' placeholder='1000' className='max-w-58' />\n </div>\n </CollapsibleContent>\n </Collapsible>\n <Separator />\n <Collapsible className='flex w-full max-w-[350px] flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Customer Ratings</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='rating-4' />\n <Label htmlFor='rating-4' className='flex shrink-0 items-center gap-1 text-sm font-medium'>\n <span className='flex items-center gap-1'>\n 4\n <StarIcon className='size-4 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400' />\n </span>\n & Up\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='rating-3' />\n <Label htmlFor='rating-3' className='flex shrink-0 items-center gap-1 text-sm font-medium'>\n <span className='flex items-center gap-1'>\n 3\n <StarIcon className='size-4 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400' />\n </span>\n & Up\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='rating-2' />\n <Label htmlFor='rating-2' className='flex shrink-0 items-center gap-1 text-sm font-medium'>\n <span className='flex items-center gap-1'>\n 2\n <StarIcon className='size-4 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400' />\n </span>\n & Up\n </Label>\n </div>\n </CollapsibleContent>\n </Collapsible>\n <Separator />\n <Collapsible className='flex w-full max-w-[350px] flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Brand</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='brand-apple' />\n <Label htmlFor='brand-apple' className='shrink-0 text-sm font-medium'>\n Apple\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='brand-samsung' />\n <Label htmlFor='brand-samsung' className='shrink-0 text-sm font-medium'>\n Samsung\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='brand-google' />\n <Label htmlFor='brand-google' className='shrink-0 text-sm font-medium'>\n Google\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='brand-oneplus' />\n <Label htmlFor='brand-oneplus' className='shrink-0 text-sm font-medium'>\n OnePlus\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='brand-xiaomi' />\n <Label htmlFor='brand-xiaomi' className='shrink-0 text-sm font-medium'>\n Xiaomi\n </Label>\n </div>\n </CollapsibleContent>\n </Collapsible>\n <Separator />\n <Collapsible className='flex w-full max-w-[350px] flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Battery</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='battery-3500' />\n <Label htmlFor='battery-3500' className='shrink-0 text-sm font-medium'>\n 3500mAh\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='battery-4000' />\n <Label htmlFor='battery-4000' className='shrink-0 text-sm font-medium'>\n 4000mAh\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='battery-5000' />\n <Label htmlFor='battery-5000' className='shrink-0 text-sm font-medium'>\n 5000mAh\n </Label>\n </div>\n <div className='flex items-center gap-2 px-4'>\n <Checkbox id='battery-6000' />\n <Label htmlFor='battery-6000' className='shrink-0 text-sm font-medium'>\n 6000mAh\n </Label>\n </div>\n </CollapsibleContent>\n </Collapsible>\n </div>\n )\n}\n\nexport default CollapsibleFilterDemo\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\nconst CollapsibleShowMoreDemo = () => {\n const [isTrackOrderOpen, setIsTrackOrderOpen] = useState(true)\n const [isCancelOrderOpen, setIsCancelOrderOpen] = useState(false)\n\n return (\n <div className='w-full space-y-4'>\n <div className='space-y-2'>\n <p className='font-medium'>How can I track my order?</p>\n <Collapsible open={isTrackOrderOpen} onOpenChange={setIsTrackOrderOpen} className='space-y-2'>\n <CollapsibleContent>\n <p className='text-sm'>\n To track your order, simply log in to your account and navigate to the order history section. You'll\n find detailed information about your order status and tracking number there.\n </p>\n </CollapsibleContent>\n <CollapsibleTrigger>\n <span className='text-muted-foreground text-sm underline'>\n {isTrackOrderOpen ? 'Hide answer' : 'Show answer'}\n </span>\n </CollapsibleTrigger>\n </Collapsible>\n </div>\n <div className='space-y-2'>\n <p className='font-medium'>Can I cancel my order?</p>\n <Collapsible open={isCancelOrderOpen} onOpenChange={setIsCancelOrderOpen} className='space-y-2'>\n <CollapsibleContent>\n <p className='text-sm'>\n Scheduled delivery orders can be cancelled 72 hours prior to your selected delivery date for full refund.\n </p>\n </CollapsibleContent>\n <CollapsibleTrigger>\n <span className='text-muted-foreground text-sm underline'>\n {isCancelOrderOpen ? 'Hide answer' : 'Show answer'}\n </span>\n </CollapsibleTrigger>\n </Collapsible>\n </div>\n </div>\n )\n}\n\nexport default CollapsibleShowMoreDemo\n","import { ChevronUpIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Card, CardAction, CardContent, CardTitle } from '@/components/card'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\n\nconst CollapsibleCardDemo = () => {\n return (\n <Card className='w-full max-w-md pb-0'>\n <Collapsible>\n <div className='flex items-center justify-between px-6 pb-6 pt-6'>\n <CardTitle>How do I track my order?</CardTitle>\n <CardAction>\n <CollapsibleTrigger asChild>\n <Button variant='outline' size='sm'>\n <span className='[[data-state=open]>&]:hidden'>Show</span>\n <span className='[[data-state=closed]>&]:hidden'>Hide</span>\n <ChevronUpIcon className='[[data-state=closed]>&]:rotate-180' />\n </Button>\n </CollapsibleTrigger>\n </CardAction>\n </div>\n <CollapsibleContent>\n <CardContent className='space-y-2 px-0'>\n <p className='px-6'>You'll receive tracking information via email once your order ships.</p>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/components/accordion/image-1.jpg?width=446&format=auto'\n alt='Banner'\n className='aspect-video h-70 rounded-b-xl object-cover'\n />\n </CardContent>\n </CollapsibleContent>\n </Collapsible>\n </Card>\n )\n}\n\nexport default CollapsibleCardDemo\n","'use client'\n\nimport { ChevronRightIcon, CircleSmallIcon, LogOutIcon, SettingsIcon, UserIcon, UsersIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuGroup,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst CollapsibleDropdownMenuDemo = () => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>Dropdown with collapsible</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56'>\n <DropdownMenuItem>\n <UserIcon />\n <span>Profile</span>\n </DropdownMenuItem>\n <Collapsible asChild>\n <DropdownMenuGroup>\n <CollapsibleTrigger asChild>\n <DropdownMenuItem onSelect={event => event.preventDefault()} className='justify-between'>\n <div className='flex items-center gap-2'>\n <SettingsIcon />\n <span>Settings</span>\n </div>\n <ChevronRightIcon className='shrink-0 transition-transform [[data-state=open]>&]:rotate-90' />\n </DropdownMenuItem>\n </CollapsibleTrigger>\n <CollapsibleContent className='pl-4'>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Account</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Security</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Billing & plans</span>\n </DropdownMenuItem>\n </CollapsibleContent>\n </DropdownMenuGroup>\n </Collapsible>\n <Collapsible asChild>\n <DropdownMenuGroup>\n <CollapsibleTrigger asChild>\n <DropdownMenuItem onSelect={event => event.preventDefault()} className='justify-between'>\n <div className='flex items-center gap-2'>\n <UsersIcon />\n <span>Users</span>\n </div>\n <ChevronRightIcon className='shrink-0 transition-transform [[data-state=open]>&]:rotate-90' />\n </DropdownMenuItem>\n </CollapsibleTrigger>\n <CollapsibleContent className='pl-4'>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Teams</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Projects</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CircleSmallIcon />\n <span>Connections</span>\n </DropdownMenuItem>\n </CollapsibleContent>\n </DropdownMenuGroup>\n </Collapsible>\n <DropdownMenuItem>\n <LogOutIcon />\n <span>Log out</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default CollapsibleDropdownMenuDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { ChevronDownIcon, CreditCardIcon } from 'lucide-react'\n\nimport { usePaymentInputs } from 'react-payment-inputs'\nimport images, { type CardImages } from 'react-payment-inputs/images'\n\nimport { Button } from '@/components/button'\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/collapsible'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\nimport { Separator } from '@/components/separator'\n\nconst CollapsibleFormDemo = () => {\n const id = useId()\n const { meta, getCardNumberProps, getExpiryDateProps, getCVCProps, getCardImageProps } = usePaymentInputs()\n\n const items = [\n { value: '1', label: 'Standard 3-5 Days', description: 'Friday, 15 June - Tuesday, 19 June', price: 'Free' },\n { value: '2', label: 'Express', description: 'Friday, 15 June - Sunday, 17 June', price: '$5.00' },\n { value: '3', label: 'Overnight', description: 'Tomorrow', price: '$10.00' }\n ]\n\n return (\n <div className='w-full space-y-3'>\n <div className='w-full max-w-md space-y-3 rounded-md border py-4'>\n <Collapsible className='flex flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Delivery Address</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n </Collapsible>\n <Separator />\n <Collapsible className='flex flex-col gap-0'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Delivery Options</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2 px-4'>\n <RadioGroup className='w-full gap-0 -space-y-px rounded-md pt-3 shadow-xs' defaultValue='2'>\n {items.map(item => (\n <div\n key={`${id}-${item.value}`}\n className='border-input has-data-[state=checked]:border-primary/50 has-data-[state=checked]:bg-accent relative flex flex-col gap-4 border p-4 outline-none first:rounded-t-md last:rounded-b-md has-data-[state=checked]:z-10'\n >\n <div className='flex items-center justify-between gap-1.5'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n id={`${id}-${item.value}`}\n value={item.value}\n className='after:absolute after:inset-0'\n aria-label={`plan-radio-${item.value}`}\n aria-describedby={`${`${id}-${item.value}`}-price`}\n />\n <div className='space-y-1'>\n <Label className='inline-flex items-center' htmlFor={`${id}-${item.value}`}>\n {item.label}\n </Label>\n <p className='text-muted-foreground text-sm'>{item.description}</p>\n </div>\n </div>\n <div\n id={`${`${id}-${item.value}`}-price`}\n className='text-muted-foreground text-xs leading-[inherit]'\n >\n {item.price}\n </div>\n </div>\n </div>\n ))}\n </RadioGroup>\n </CollapsibleContent>\n </Collapsible>\n <Separator />\n <Collapsible className='flex flex-col gap-2'>\n <div className='flex items-center justify-between gap-4 px-4'>\n <div className='text-sm font-semibold'>Payment</div>\n <CollapsibleTrigger asChild className='group'>\n <Button variant='ghost' size='icon-sm'>\n <ChevronDownIcon className='text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n <span className='sr-only'>Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className='flex flex-col gap-2'>\n <div className='w-full space-y-2 px-4 pt-2'>\n <Label>Card details</Label>\n <div>\n <div className='relative focus-within:z-1'>\n <Input\n {...getCardNumberProps()}\n id={`number-${id}`}\n className='peer rounded-b-none pr-9 shadow-none'\n />\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n {meta.cardType ? (\n <svg\n className='w-6 overflow-hidden'\n {...getCardImageProps({\n images: images as unknown as CardImages\n })}\n />\n ) : (\n <CreditCardIcon className='size-4' />\n )}\n <span className='sr-only'>Card Provider</span>\n </div>\n </div>\n <div className='-mt-px flex'>\n <div className='min-w-0 flex-1 focus-within:z-1'>\n <Input\n {...getExpiryDateProps()}\n id={`expiry-${id}`}\n className='rounded-t-none rounded-r-none shadow-none'\n />\n </div>\n <div className='-ms-px min-w-0 flex-1 focus-within:z-1'>\n <Input {...getCVCProps()} id={`cvc-${id}`} className='rounded-t-none rounded-l-none shadow-none' />\n </div>\n </div>\n </div>\n </div>\n </CollapsibleContent>\n </Collapsible>\n </div>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/medipass/react-payment-inputs'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Payment Inputs\n </a>\n </p>\n </div>\n )\n}\n\nexport default CollapsibleFormDemo\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-3.5 w-3.5 fill-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","'use client'\n\nimport { useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst frameworks = [\n {\n value: 'next.js',\n label: 'Next.js'\n },\n {\n value: 'sveltekit',\n label: 'SvelteKit'\n },\n {\n value: 'nuxt.js',\n label: 'Nuxt.js'\n },\n {\n value: 'remix',\n label: 'Remix'\n },\n {\n value: 'astro',\n label: 'Astro'\n }\n]\n\nconst ComboboxDemo = () => {\n const [open, setOpen] = useState(false)\n const [value, setValue] = useState('')\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='w-full max-w-xs justify-between pr-2'\n aria-label='Framework combobox'\n >\n {value ? frameworks.find(framework => framework.value === value)?.label : 'Select framework...'}\n <ChevronsUpDownIcon className='opacity-50' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='p-0'>\n <Command>\n <CommandInput placeholder='Search framework...' className='h-9' />\n <CommandList>\n <CommandEmpty>No framework found.</CommandEmpty>\n <CommandGroup>\n {frameworks.map(framework => (\n <CommandItem\n key={framework.value}\n value={framework.value}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n {framework.label}\n <CheckIcon className={cn('ml-auto', value === framework.value ? 'opacity-100' : 'opacity-0')} />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default ComboboxDemo\n","import * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import { Fragment, useId, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst items = [\n {\n continent: 'Fruits',\n items: [{ value: 'Apples' }, { value: 'Bananas' }, { value: 'Cherries' }]\n },\n {\n continent: 'Vegetables',\n items: [{ value: 'Carrots' }, { value: 'Broccoli' }, { value: 'Spinach' }]\n },\n {\n continent: 'Beverages',\n items: [{ value: 'Tea' }, { value: 'Coffee' }, { value: 'Juice' }]\n }\n]\n\nconst ComboboxOptionGroupDemo = () => {\n const id = useId()\n const [open, setOpen] = useState<boolean>(false)\n const [value, setValue] = useState<string>('')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Combobox option group</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='bg-background hover:bg-background border-input w-full justify-between px-3 pr-2 font-normal outline-offset-0 outline-none focus-visible:outline-[3px]'\n >\n {value ? (\n <span className='flex min-w-0 items-center gap-2'>\n <span className='truncate'>{value}</span>\n </span>\n ) : (\n <span className='text-muted-foreground'>Select item</span>\n )}\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='border-input w-full min-w-[var(--radix-popper-anchor-width)] p-0' align='start'>\n <Command>\n <CommandInput placeholder='Search item...' />\n <CommandList>\n <CommandEmpty>No item found.</CommandEmpty>\n {items.map(group => (\n <Fragment key={group.continent}>\n <CommandGroup heading={group.continent}>\n {group.items.map(item => (\n <CommandItem\n key={item.value}\n value={item.value}\n onSelect={currentValue => {\n setValue(currentValue)\n setOpen(false)\n }}\n >\n {item.value}\n {value === item.value && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n </Fragment>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxOptionGroupDemo\n","'use client'\n\nimport { Fragment, useId, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst items = [\n {\n category: 'Fruits',\n items: [{ value: 'Apples' }, { value: 'Bananas' }, { value: 'Cherries' }]\n },\n {\n category: 'Vegetables',\n items: [{ value: 'Carrots' }, { value: 'Broccoli', disabled: true }, { value: 'Spinach' }]\n },\n {\n category: 'Beverages',\n items: [{ value: 'Tea' }, { value: 'Coffee', disabled: true }, { value: 'Juice' }]\n }\n]\n\nconst ComboboxOptionDisabledDemo = () => {\n const id = useId()\n const [open, setOpen] = useState<boolean>(false)\n const [value, setValue] = useState<string>('')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Combobox disabled option </Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='bg-background hover:bg-background border-input w-full justify-between px-3 pr-2 font-normal outline-offset-0 outline-none focus-visible:outline-[3px]'\n >\n {value ? (\n <span className='flex min-w-0 items-center gap-2'>\n <span className='truncate'>{value}</span>\n </span>\n ) : (\n <span className='text-muted-foreground'>Select item</span>\n )}\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='border-input w-full min-w-[var(--radix-popper-anchor-width)] p-0' align='start'>\n <Command>\n <CommandInput placeholder='Search item...' />\n <CommandList>\n <CommandEmpty>No item found.</CommandEmpty>\n {items.map(group => (\n <Fragment key={group.category}>\n <CommandGroup heading={group.category}>\n {group.items.map(item => (\n <CommandItem\n key={item.value}\n value={item.value}\n onSelect={currentValue => {\n setValue(currentValue)\n setOpen(false)\n }}\n className={cn(item.disabled && 'cursor-not-allowed opacity-50')}\n disabled={item.disabled}\n >\n {item.value}\n {value === item.value && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n </Fragment>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxOptionDisabledDemo\n","import { useId, useState } from 'react'\n\nimport {\n ChevronsUpDownIcon,\n DollarSignIcon,\n FactoryIcon,\n FilmIcon,\n HospitalIcon,\n HotelIcon,\n MonitorIcon,\n ScaleIcon,\n SchoolIcon,\n TractorIcon,\n ZapIcon\n} from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst industries = [\n {\n value: 'information technology',\n label: 'Information Technology',\n icon: MonitorIcon\n },\n {\n value: 'healthcare',\n label: 'Healthcare',\n icon: HospitalIcon\n },\n {\n value: 'finance',\n label: 'Finance',\n icon: DollarSignIcon\n },\n {\n value: 'education',\n label: 'Education',\n icon: SchoolIcon\n },\n {\n value: 'entertainment',\n label: 'Entertainment',\n icon: FilmIcon\n },\n {\n value: 'manufacturing',\n label: 'Manufacturing',\n icon: FactoryIcon\n },\n {\n value: 'energy',\n label: 'Energy',\n icon: ZapIcon\n },\n {\n value: 'hospitality',\n label: 'Hospitality',\n icon: HotelIcon\n },\n {\n value: 'legal',\n label: 'Legal',\n icon: ScaleIcon\n },\n {\n value: 'agriculture',\n label: 'Agriculture',\n icon: TractorIcon\n }\n]\n\nconst ComboboxOptionWithIIconDemo = () => {\n const id = useId()\n const [open, setOpen] = useState<boolean>(false)\n const [value, setValue] = useState<string>('')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Combobox option with icon</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='bg-background hover:bg-background border-input w-full justify-between px-3 pr-2 font-normal outline-offset-0 outline-none focus-visible:outline-[3px]'\n >\n {value ? (\n <span className='flex min-w-0 items-center gap-2'>\n {(() => {\n const selectedItem = industries.find(industry => industry.value === value)\n\n if (selectedItem) {\n const Icon = selectedItem.icon\n\n return <Icon className='text-muted-foreground' />\n }\n\n return null\n })()}\n <span className='truncate'>{industries.find(industry => industry.value === value)?.label}</span>\n </span>\n ) : (\n <span className='text-muted-foreground'>Select industry category</span>\n )}\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='border-input w-full min-w-[var(--radix-popper-anchor-width)] p-0' align='start'>\n <Command>\n <CommandInput placeholder='Search industries...' />\n <CommandList>\n <CommandEmpty>No industry found.</CommandEmpty>\n <CommandGroup>\n {industries.map(industry => (\n <CommandItem\n key={industry.value}\n value={industry.value}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n className='flex items-center justify-between'\n >\n <div className='flex items-center gap-2'>\n <industry.icon className='text-muted-foreground size-4' />\n {industry.label}\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxOptionWithIIconDemo\n","'use client'\n\nimport { useId, useState } from 'react'\n\nimport { CircleCheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst frameworks = [\n {\n value: 'next.js',\n label: 'Next.js'\n },\n {\n value: 'sveltekit',\n label: 'SvelteKit'\n },\n {\n value: 'nuxt.js',\n label: 'Nuxt.js'\n },\n {\n value: 'remix',\n label: 'Remix'\n },\n {\n value: 'astro',\n label: 'Astro'\n }\n]\n\nconst ComboboxCustomCheckIconDemo = () => {\n const id = useId()\n const [open, setOpen] = useState(false)\n const [value, setValue] = useState('')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Combobox with custom check icon</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='w-full max-w-xs justify-between pr-2'\n >\n {value ? (\n frameworks.find(framework => framework.value === value)?.label\n ) : (\n <span className='text-muted-foreground'>Select industry category</span>\n )}\n <ChevronsUpDownIcon className='opacity-50' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='p-0'>\n <Command>\n <CommandInput placeholder='Search framework...' className='h-9' />\n <CommandList>\n <CommandEmpty>No framework found.</CommandEmpty>\n <CommandGroup>\n {frameworks.map(framework => (\n <CommandItem\n key={framework.value}\n value={framework.value}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n {framework.label}\n <CircleCheckIcon\n className={cn(\n 'ml-auto fill-blue-500 stroke-white',\n value === framework.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxCustomCheckIconDemo\n","import { useId, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon, PlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst universities = [\n {\n value: 'harvard',\n label: 'Harvard University'\n },\n {\n value: 'cambridge',\n label: 'University of Cambridge'\n },\n {\n value: 'stanford',\n label: 'Stanford University'\n },\n {\n value: 'texas',\n label: 'University of Texas'\n }\n]\n\nconst ComboboxWithSearchAndButtonDemo = () => {\n const id = useId()\n const [open, setOpen] = useState<boolean>(false)\n const [value, setValue] = useState<string>('harvard')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Combobox with search and add button</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='bg-background hover:bg-background border-input w-full justify-between px-3 pr-2 font-normal outline-offset-0 outline-none focus-visible:outline-[3px]'\n >\n <span className={cn('truncate', !value && 'text-muted-foreground')}>\n {value ? (\n universities.find(university => university.value === value)?.label\n ) : (\n <span className='text-muted-foreground'>Select university</span>\n )}\n </span>\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='border-input w-full min-w-[var(--radix-popper-anchor-width)] p-0' align='start'>\n <Command>\n <CommandInput placeholder='Find university' />\n <CommandList>\n <CommandEmpty>No university found.</CommandEmpty>\n <CommandGroup>\n {universities.map(university => (\n <CommandItem\n key={university.value}\n value={university.value}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n {university.label}\n {value === university.value && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n <CommandSeparator />\n <CommandGroup>\n <Button variant='ghost' className='w-full justify-start font-normal'>\n <PlusIcon className='-ms-2 opacity-60' aria-hidden='true' />\n New university\n </Button>\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxWithSearchAndButtonDemo\n","'use client'\n\nimport { useId, useMemo, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst ComboboxTimezoneDemo = () => {\n const id = useId()\n const [open, setOpen] = useState(false)\n const [value, setValue] = useState<string>('Indian/Cocos')\n\n // Fetch supported timezones\n const timezones = (Intl as any).supportedValuesOf('timeZone') as string[]\n\n const formattedTimezones = useMemo(() => {\n return timezones\n .map((timezone: string) => {\n const formatter = new Intl.DateTimeFormat('en', {\n timeZone: timezone,\n timeZoneName: 'shortOffset'\n })\n\n const parts = formatter.formatToParts(new Date())\n const offset = parts.find(part => part.type === 'timeZoneName')?.value || ''\n const formattedOffset = offset === 'GMT' ? 'GMT+0' : offset\n\n return {\n value: timezone,\n label: `(${formattedOffset}) ${timezone.replace(/_/g, ' ')}`,\n numericOffset: parseInt(formattedOffset.replace('GMT', '').replace('+', '') || '0')\n }\n })\n .sort((a: {numericOffset: number}, b: {numericOffset: number}) => a.numericOffset - b.numericOffset)\n }, [timezones])\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Timezone combobox</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button id={id} variant='outline' role='combobox' aria-expanded={open} className='w-full justify-between pr-2'>\n <span className={cn('truncate')}>\n {value ? (\n formattedTimezones.find(timezone => timezone.value === value)?.label\n ) : (\n <span className='text-muted-foreground'>Select timezone</span>\n )}\n </span>\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-(--radix-popper-anchor-width) p-0'>\n <Command>\n <CommandInput placeholder='Search timezone' />\n <CommandList>\n <CommandEmpty>No timezone found.</CommandEmpty>\n <CommandGroup>\n {formattedTimezones.map(({ value: itemValue, label }: {value: string, label: string, numericOffset: number}) => (\n <CommandItem\n key={itemValue}\n value={itemValue}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n <span className='truncate'>{label}</span>\n {value === itemValue && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxTimezoneDemo\n","import { useId, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst users = [\n {\n name: 'Phillip George',\n email: 'phillip12@gmail.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png',\n status: 'online'\n },\n {\n name: 'Jaylon Donin',\n email: 'jaylo-don@yahoo.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-2.png',\n status: 'offline'\n },\n {\n name: 'Tiana Curtis',\n email: 'tiana_curtis@gmail.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n status: 'away'\n },\n {\n name: 'Zaire Vetrovs',\n email: 'zaire.vetrovs@outlook.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-4.png',\n status: 'online'\n },\n {\n name: 'Kianna Philips',\n email: 'kiannaphilips@gmail.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n status: 'busy'\n },\n {\n name: 'John Doe',\n email: 'john2doe@icloud.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n status: 'online'\n },\n {\n name: 'Rock Lee',\n email: 'rocklee@protonmail.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-7.png',\n status: 'busy'\n },\n {\n name: 'Henry Potter',\n email: 'henry3potter@gmail.com',\n avatar: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-8.png',\n status: 'online'\n }\n]\n\nconst ComboboxUserDemo = () => {\n const id = useId()\n const [open, setOpen] = useState(false)\n const [value, setValue] = useState('')\n\n const selectedUser = users.find(user => user.name === value)\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>User combobox</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button id={id} variant='outline' role='combobox' aria-expanded={open} className='w-full justify-between pr-2'>\n {selectedUser ? (\n <span className='flex gap-2'>\n <Avatar className='size-6'>\n <AvatarImage src={selectedUser.avatar} alt={selectedUser.name} />\n <AvatarFallback>{selectedUser.name[0]}</AvatarFallback>\n </Avatar>\n <span className='font-medium'>{selectedUser.name}</span>\n </span>\n ) : (\n <span className='text-muted-foreground'>Select user</span>\n )}\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-[300px] p-0'>\n <Command>\n <CommandInput placeholder='Search user...' />\n <CommandList>\n <CommandEmpty>No users found.</CommandEmpty>\n <CommandGroup>\n {users.map(user => (\n <CommandItem\n key={user.name}\n value={user.name}\n onSelect={currentValue => {\n setValue(currentValue === value ? '' : currentValue)\n setOpen(false)\n }}\n >\n <span className='flex items-center gap-2'>\n <Avatar className='size-7'>\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback>{user.name[0]}</AvatarFallback>\n </Avatar>\n <span className='flex flex-col'>\n <span className='font-medium'>{user.name}</span>\n <span className='text-muted-foreground text-sm'>{user.email}</span>\n </span>\n </span>\n {value === user.name && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxUserDemo\n","'use client'\n\nimport { useId, useState } from 'react'\n\nimport { CheckIcon, ChevronDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst countries = [\n { value: '1', label: 'India', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/india.png' },\n { value: '2', label: 'China', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/china.png' },\n { value: '3', label: 'Monaco', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/monaco.png' },\n { value: '4', label: 'Serbia', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/serbia.png' },\n { value: '5', label: 'Romania', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/romania.png' },\n { value: '6', label: 'Mayotte', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/mayotte.png' },\n { value: '7', label: 'Iraq', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/iraq.png' },\n { value: '8', label: 'Syria', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/syria.png' },\n { value: '9', label: 'Korea', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/korea.png' },\n { value: '10', label: 'Zimbabwe', flag: 'https://cdn.shadcnstudio.com/ss-assets/flags/zimbabwe.png' }\n]\n\nconst ComboboxCountryFlagDemo = () => {\n const id = useId()\n const [open, setOpen] = useState<boolean>(false)\n const [value, setValue] = useState<string>('')\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Options with flag and search</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='bg-background hover:bg-background border-input w-full justify-between px-3 pr-2 font-normal outline-offset-0 outline-none focus-visible:outline-[3px]'\n >\n {value ? (\n <span className='flex min-w-0 items-center gap-2'>\n <img src={countries.find(item => item.label === value)?.flag} alt={value} className='h-4 w-5' />\n <span className='truncate'>{value}</span>\n </span>\n ) : (\n <span className='text-muted-foreground'>Select country</span>\n )}\n <ChevronDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='border-input w-full min-w-[var(--radix-popper-anchor-width)] p-0' align='start'>\n <Command>\n <CommandInput placeholder='Search country...' />\n <CommandList>\n <CommandEmpty>No country found.</CommandEmpty>\n {countries.map(country => (\n <CommandItem\n key={country.value}\n value={country.label}\n onSelect={currentValue => {\n setValue(currentValue)\n setOpen(false)\n }}\n >\n <img src={country.flag} alt={`${country.label} flag`} className='h-4 w-5' />\n {country.label}\n {value === country.value && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxCountryFlagDemo\n","import { useId, useState } from 'react'\n\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst frameworks = [\n { value: 'react', label: 'React' },\n { value: 'nextjs', label: 'Nextjs' },\n { value: 'angular', label: 'Angular' },\n { value: 'vue', label: 'VueJS' },\n { value: 'django', label: 'Django' },\n { value: 'astro', label: 'Astro' },\n { value: 'remix', label: 'Remix' },\n { value: 'svelte', label: 'Svelte' },\n { value: 'solidjs', label: 'SolidJS' },\n { value: 'qwik', label: 'Qwik' }\n]\n\nconst ComboboxMultipleCountBadgeDemo = () => {\n const id = useId()\n const [open, setOpen] = useState(false)\n\n const [selectedValues, setSelectedValues] = useState<string[]>([\n 'react',\n 'nextjs',\n 'angular',\n 'vue',\n 'django',\n 'astro'\n ])\n\n const toggleSelection = (value: string) => {\n setSelectedValues(prev => (prev.includes(value) ? prev.filter(v => v !== value) : [...prev, value]))\n }\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Multiple Count badge</Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='h-auto min-h-8 w-full justify-between hover:bg-transparent px-2'\n >\n {selectedValues.length > 0 ? (\n <span>\n <Badge variant='outline' className='rounded-sm'>\n {selectedValues.length}\n </Badge>{' '}\n frameworks selected\n </span>\n ) : (\n <span className='text-muted-foreground'>Select framework</span>\n )}\n <ChevronsUpDownIcon className='text-muted-foreground/80 shrink-0' aria-hidden='true' />\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-(--radix-popper-anchor-width) p-0'>\n <Command>\n <CommandInput placeholder='Search framework...' />\n <CommandList>\n <CommandEmpty>No framework found.</CommandEmpty>\n <CommandGroup>\n {frameworks.map(framework => (\n <CommandItem\n key={framework.value}\n value={framework.value}\n onSelect={() => toggleSelection(framework.value)}\n >\n <span className='truncate'>{framework.label}</span>\n {selectedValues.includes(framework.value) && <CheckIcon size={16} className='ml-auto' />}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n\nexport default ComboboxMultipleCountBadgeDemo\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean\n}\n\nfunction Badge({ className, variant, asChild = false, ...props }: BadgeProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import { useState } from 'react'\n\nimport type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\nconst data: Payment[] = [\n {\n id: '1',\n name: 'Shang Chain',\n amount: 699,\n status: 'success',\n email: 'shang07@yahoo.com'\n },\n {\n id: '2',\n name: 'Kevin Lincoln',\n amount: 242,\n status: 'success',\n email: 'kevinli09@gmail.com'\n },\n {\n id: '3',\n name: 'Milton Rose',\n amount: 655,\n status: 'processing',\n email: 'rose96@gmail.com'\n },\n {\n id: '4',\n name: 'Silas Ryan',\n amount: 874,\n status: 'success',\n email: 'silas22@gmail.com'\n },\n {\n id: '5',\n name: 'Ben Tenison',\n amount: 541,\n status: 'failed',\n email: 'bent@hotmail.com'\n }\n]\n\nexport type Payment = {\n id: string\n name: string\n amount: number\n status: 'pending' | 'processing' | 'success' | 'failed'\n email: string\n}\n\nexport const columns: ColumnDef<Payment>[] = [\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n ),\n enableSorting: false,\n enableHiding: false\n },\n {\n accessorKey: 'name',\n header: 'Name',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('name')}</div>\n },\n {\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => <div className='capitalize'>{row.getValue('status')}</div>\n },\n {\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <div className='lowercase'>{row.getValue('email')}</div>\n },\n {\n accessorKey: 'amount',\n header: () => <div className='text-right'>Amount</div>,\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue('amount'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(amount)\n\n return <div className='text-right font-medium'>{formatted}</div>\n }\n }\n]\n\nconst DataTableDemo = () => {\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection\n }\n })\n\n return (\n <div className='w-full'>\n <div className='rounded-md border'>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Default data table</p>\n </div>\n )\n}\n\nexport default DataTableDemo\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import { useState } from 'react'\n\nimport { Rows2Icon, Rows3Icon, Rows4Icon } from 'lucide-react'\n\nimport type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { Checkbox } from '@/components/checkbox'\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue\n} from '@/components/select'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\nimport { cn } from '@/lib/utils'\n\nconst data: Payment[] = [\n {\n id: '1',\n name: 'Shang Chain',\n amount: 699,\n status: 'success',\n email: 'shang07@yahoo.com'\n },\n {\n id: '2',\n name: 'Kevin Lincoln',\n amount: 242,\n status: 'success',\n email: 'kevinli09@gmail.com'\n },\n {\n id: '3',\n name: 'Milton Rose',\n amount: 655,\n status: 'processing',\n email: 'rose96@gmail.com'\n },\n {\n id: '4',\n name: 'Silas Ryan',\n amount: 874,\n status: 'success',\n email: 'silas22@gmail.com'\n },\n {\n id: '5',\n name: 'Ben Tenison',\n amount: 541,\n status: 'failed',\n email: 'bent@hotmail.com'\n }\n]\n\nexport type Payment = {\n id: string\n name: string\n amount: number\n status: 'pending' | 'processing' | 'success' | 'failed'\n email: string\n}\n\nexport const columns: ColumnDef<Payment>[] = [\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n ),\n enableSorting: false,\n enableHiding: false\n },\n {\n header: 'Name',\n accessorKey: 'name',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('name')}</div>\n },\n {\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => <div className='capitalize'>{row.getValue('status')}</div>\n },\n {\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <div className='lowercase'>{row.getValue('email')}</div>\n },\n {\n accessorKey: 'amount',\n header: () => <div className='text-right'>Amount</div>,\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue('amount'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(amount)\n\n return <div className='text-right font-medium'>{formatted}</div>\n }\n }\n]\n\nconst DataTableDensityDemo = () => {\n const [density, setDensity] = useState<string>()\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection\n }\n })\n\n return (\n <div className='w-full'>\n <div className='py-4'>\n <Select value={density} onValueChange={setDensity}>\n <SelectTrigger className='w-fit max-w-3xs' aria-label='Density select'>\n <SelectValue placeholder='Density' />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Density</SelectLabel>\n <SelectItem value='compact'>\n <div className='flex items-center gap-2'>\n <Rows4Icon className='size-4' />\n Compact\n </div>\n </SelectItem>\n <SelectItem value='standard' className='flex items-center gap-2'>\n <div className='flex items-center gap-2'>\n <Rows3Icon className='size-4' /> Standard\n </div>\n </SelectItem>\n <SelectItem value='flexible' className='flex items-center gap-2'>\n <div className='flex items-center gap-2'>\n <Rows2Icon className='size-4' />\n Flexible\n </div>\n </SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div className='rounded-md border'>\n <Table\n className={cn({\n '[&_td]:py-px [&_th]:py-px': density === 'compact',\n '[&_td]:py-1 [&_th]:py-1': density === 'standard',\n '[&_td]:py-2 [&_th]:py-1': density === 'flexible'\n })}\n >\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>\n Density data table{' '}\n <a\n href='https://www.shadcnui-blocks.com/components/table'\n className='hover:text-primary underline'\n target='_blank'\n >\n Shadcn UI Blocks\n </a>\n </p>\n </div>\n )\n}\n\nexport default DataTableDensityDemo\n","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","import { useState } from 'react'\n\nimport { ChevronDownIcon, Columns3Icon, RefreshCcwIcon, SearchIcon } from 'lucide-react'\n\nimport type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\nimport { Input } from '@/components/input'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\nconst data: Payment[] = [\n {\n id: '1',\n name: 'Shang Chain',\n amount: 699,\n status: 'success',\n email: 'shang07@yahoo.com'\n },\n {\n id: '2',\n name: 'Kevin Lincoln',\n amount: 242,\n status: 'success',\n email: 'kevinli09@gmail.com'\n },\n {\n id: '3',\n name: 'Milton Rose',\n amount: 655,\n status: 'processing',\n email: 'rose96@gmail.com'\n },\n {\n id: '4',\n name: 'Silas Ryan',\n amount: 874,\n status: 'success',\n email: 'silas22@gmail.com'\n },\n {\n id: '5',\n name: 'Ben Tenison',\n amount: 541,\n status: 'failed',\n email: 'bent@hotmail.com'\n }\n]\n\nexport type Payment = {\n id: string\n name: string\n amount: number\n status: 'pending' | 'processing' | 'success' | 'failed'\n email: string\n}\n\nexport const columns: ColumnDef<Payment>[] = [\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n ),\n enableSorting: false,\n enableHiding: false\n },\n {\n header: 'Name',\n accessorKey: 'name',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('name')}</div>\n },\n {\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => <div className='capitalize'>{row.getValue('status')}</div>\n },\n {\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <div className='lowercase'>{row.getValue('email')}</div>\n },\n {\n accessorKey: 'amount',\n header: () => <div className='text-right'>Amount</div>,\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue('amount'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(amount)\n\n return <div className='text-right font-medium'>{formatted}</div>\n }\n }\n]\n\nconst DataTableColumnsVisibilityDemo = () => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection\n }\n })\n\n return (\n <div className='w-full'>\n <div className='py-4'>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='ghost' className='w-fit max-w-3xs justify-between'>\n <span className='flex items-center gap-2'>\n <Columns3Icon />\n Columns\n </span>{' '}\n <ChevronDownIcon className='ml-3' />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align='end'>\n <div className='relative'>\n <Input\n value={searchQuery}\n onChange={e => setSearchQuery(e.target.value)}\n className='pl-8'\n placeholder='Search'\n onKeyDown={e => e.stopPropagation()}\n />\n <SearchIcon className='absolute inset-y-0 left-2 my-auto size-4' />\n </div>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(column => column.getCanHide())\n .map(column => {\n if (searchQuery && !column.id.toLowerCase().includes(searchQuery.toLowerCase())) {\n return null\n }\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className='capitalize'\n checked={column.getIsVisible()}\n onCheckedChange={value => column.toggleVisibility(!!value)}\n onSelect={e => e.preventDefault()}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n )\n })}\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n table.resetColumnVisibility()\n setSearchQuery('')\n }}\n >\n <RefreshCcwIcon /> Reset\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <div className='rounded-md border'>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Data table column visibility</p>\n </div>\n )\n}\n\nexport default DataTableColumnsVisibilityDemo\n","import { useState } from 'react'\n\nimport { ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState } from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\nimport { cn } from '@/lib/utils'\n\nconst data: Payment[] = [\n {\n id: '1',\n name: 'Shang Chain',\n amount: 699,\n status: 'success',\n email: 'shang07@yahoo.com'\n },\n {\n id: '2',\n name: 'Kevin Lincoln',\n amount: 242,\n status: 'success',\n email: 'kevinli09@gmail.com'\n },\n {\n id: '3',\n name: 'Milton Rose',\n amount: 655,\n status: 'processing',\n email: 'rose96@gmail.com'\n },\n {\n id: '4',\n name: 'Silas Ryan',\n amount: 874,\n status: 'success',\n email: 'silas22@gmail.com'\n },\n {\n id: '5',\n name: 'Ben Tenison',\n amount: 541,\n status: 'failed',\n email: 'bent@hotmail.com'\n }\n]\n\nexport type Payment = {\n id: string\n name: string\n amount: number\n status: 'pending' | 'processing' | 'success' | 'failed'\n email: string\n}\n\nexport const columns: ColumnDef<Payment>[] = [\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n ),\n enableSorting: false,\n enableHiding: false\n },\n {\n header: 'Name',\n accessorKey: 'name',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('name')}</div>\n },\n {\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => <div className='capitalize'>{row.getValue('status')}</div>\n },\n {\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <div className='lowercase'>{row.getValue('email')}</div>\n },\n {\n accessorKey: 'amount',\n header: 'Amount',\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue('amount'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(amount)\n\n return <div className='font-medium'>{formatted}</div>\n }\n }\n]\n\nconst DataTableWithSortableColumnDemo = () => {\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection\n }\n })\n\n return (\n <div className='w-full'>\n <div className='rounded-md border'>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return (\n <TableHead\n key={header.id}\n aria-sort={\n header.column.getIsSorted() === 'asc'\n ? 'ascending'\n : header.column.getIsSorted() === 'desc'\n ? 'descending'\n : 'none'\n }\n >\n {header.isPlaceholder ? null : (\n <div\n className={cn(\n header.column.getCanSort() &&\n 'flex h-full cursor-pointer items-center justify-between gap-2 select-none'\n )}\n onClick={header.column.getToggleSortingHandler()}\n onKeyDown={e => {\n if (header.column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n header.column.getToggleSortingHandler()?.(e)\n }\n }}\n tabIndex={header.column.getCanSort() ? 0 : undefined}\n >\n <span className='truncate'>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n {{\n asc: <ChevronUpIcon className='shrink-0 opacity-60' size={16} aria-hidden='true' />,\n desc: <ChevronDownIcon className='shrink-0 opacity-60' size={16} aria-hidden='true' />\n }[header.column.getIsSorted() as string] ?? null}\n </div>\n )}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Data table with sortable column</p>\n </div>\n )\n}\n\nexport default DataTableWithSortableColumnDemo\n","import type { CSSProperties } from 'react'\nimport { useState } from 'react'\n\nimport { ArrowLeftFromLineIcon, ArrowRightFromLineIcon, EllipsisIcon, PinOffIcon } from 'lucide-react'\n\nimport type { Column, ColumnDef, SortingState } from '@tanstack/react-table'\nimport { flexRender, getCoreRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\ntype Product = {\n productId: number\n productName: string\n category: string\n stockQuantity: number\n price: number\n supplier: string\n discontinued: 'no' | 'yes'\n}\n\nconst data: Product[] = [\n {\n productId: 1,\n productName: 'Apple iPhone 14',\n category: 'Smartphones',\n stockQuantity: 4550,\n price: 1500,\n supplier: 'Dixon Electronics',\n discontinued: 'no'\n },\n {\n productId: 2,\n productName: 'Metal frame table',\n category: 'Furniture',\n stockQuantity: 150,\n price: 540,\n supplier: 'Milton Furniture',\n discontinued: 'no'\n },\n {\n productId: 3,\n productName: 'Xiaomi A series',\n category: 'electronics',\n stockQuantity: 1500,\n price: 2200,\n supplier: 'Xiaomi Electronics',\n discontinued: 'yes'\n },\n {\n productId: 4,\n productName: 'RC Monster Truck',\n category: 'Toys',\n stockQuantity: 10500,\n price: 250,\n supplier: 'Lego Toys',\n discontinued: 'no'\n },\n {\n productId: 5,\n productName: 'Glass Water Bottle',\n category: 'Kitchenware',\n stockQuantity: 5503,\n price: 69,\n supplier: 'Kitchen Essentials',\n discontinued: 'no'\n },\n {\n productId: 6,\n productName: 'BenQ Monitor 24',\n category: 'Electronics',\n stockQuantity: 600,\n price: 1000,\n supplier: 'BenQ Electronics',\n discontinued: 'yes'\n }\n]\n\nconst getPinningStyles = (column: Column<Product>): CSSProperties => {\n const isPinned = column.getIsPinned()\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n zIndex: isPinned ? 1 : 0\n }\n}\n\nconst columns: ColumnDef<Product>[] = [\n {\n header: 'Product Name',\n accessorKey: 'productName',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('productName')}</div>\n },\n {\n header: 'Category',\n accessorKey: 'category',\n cell: ({ row }) => <div>{row.getValue('category')}</div>\n },\n {\n header: 'Stock Quantity',\n accessorKey: 'stockQuantity',\n cell: ({ row }) => <div>{row.getValue('stockQuantity')}</div>\n },\n {\n header: 'Price',\n accessorKey: 'price',\n cell: ({ row }) => {\n const price = parseFloat(row.getValue('price'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(price)\n\n return <div>{formatted}</div>\n }\n },\n {\n header: 'Supplier',\n accessorKey: 'supplier',\n cell: ({ row }) => <div>{row.getValue('supplier')}</div>\n },\n {\n header: 'Discontinued',\n accessorKey: 'discontinued',\n cell: ({ row }) => <div className='capitalize'>{row.getValue('discontinued')}</div>\n }\n]\n\nconst DataTablePinnableColumnDemo = () => {\n const [sorting, setSorting] = useState<SortingState>([])\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onSortingChange: setSorting,\n state: {\n sorting\n },\n enableSortingRemoval: false\n })\n\n return (\n <div className='w-full'>\n <div className='rounded-md border'>\n <Table className='[&_td]:border-border [&_th]:border-border border-separate border-spacing-0 [&_tfoot_td]:border-t [&_th]:border-b [&_tr]:border-none [&_tr:not(:last-child)_td]:border-b'>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n const { column } = header\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n\n return (\n <TableHead\n key={header.id}\n className='data-pinned:bg-muted/90 relative h-10 truncate data-pinned:backdrop-blur-xs [&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0 [&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0 [&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0'\n colSpan={header.colSpan}\n style={{ ...getPinningStyles(column) }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n >\n <div className='flex items-center justify-between gap-2'>\n <span className='truncate'>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n\n {!header.isPlaceholder &&\n header.column.getCanPin() &&\n (header.column.getIsPinned() ? (\n <Button\n size='icon'\n variant='ghost'\n className='-mr-1 size-7'\n onClick={() => header.column.pin(false)}\n aria-label={`Unpin ${header.column.columnDef.header as string} column`}\n title={`Unpin ${header.column.columnDef.header as string} column`}\n >\n <PinOffIcon className='opacity-60' aria-hidden='true' />\n </Button>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size='icon'\n variant='ghost'\n className='-mr-1 size-7'\n aria-label={`Pin options for ${header.column.columnDef.header as string} column`}\n title={`Pin options for ${header.column.columnDef.header as string} column`}\n >\n <EllipsisIcon className='opacity-60' aria-hidden='true' />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align='end'>\n <DropdownMenuItem onClick={() => header.column.pin('left')}>\n <ArrowLeftFromLineIcon size={16} className='opacity-60' aria-hidden='true' />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => header.column.pin('right')}>\n <ArrowRightFromLineIcon size={16} className='opacity-60' aria-hidden='true' />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n ))}\n </div>\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => {\n const { column } = cell\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n\n return (\n <TableCell\n key={cell.id}\n className='data-pinned:bg-background/90 truncate data-pinned:backdrop-blur-xs'\n style={{ ...getPinningStyles(column) }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Data table with pinnable columns</p>\n </div>\n )\n}\n\nexport default DataTablePinnableColumnDemo\n","import type { CSSProperties } from 'react'\nimport { useState, useId } from 'react'\n\nimport { ChevronDownIcon, ChevronUpIcon, GripVerticalIcon } from 'lucide-react'\n\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n type DragEndEvent\n} from '@dnd-kit/core'\nimport { restrictToHorizontalAxis } from '@dnd-kit/modifiers'\nimport { arrayMove, horizontalListSortingStrategy, SortableContext, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport type { Cell, ColumnDef, Header, SortingState } from '@tanstack/react-table'\nimport { flexRender, getCoreRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'\n\nimport { Button } from '@/components/button'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\ntype Employee = {\n employeeId: number\n firstName: string\n lastName: string\n jobTitle: string\n department: string\n dob: string\n hireDate: string\n salary: number\n}\n\nconst data: Employee[] = [\n {\n employeeId: 1,\n firstName: 'John',\n lastName: 'Doe',\n jobTitle: 'Software Engineer',\n department: 'Engineering',\n dob: '1990-01-01',\n hireDate: '2020-01-15',\n salary: 80000\n },\n {\n employeeId: 2,\n firstName: 'Jane',\n lastName: 'Smith',\n jobTitle: 'Product Manager',\n department: 'Product',\n dob: '1985-05-20',\n hireDate: '2019-03-10',\n salary: 95000\n },\n {\n employeeId: 3,\n firstName: 'Alice',\n lastName: 'Johnson',\n jobTitle: 'UX Designer',\n department: 'Design',\n dob: '1992-07-30',\n hireDate: '2021-06-01',\n salary: 70000\n },\n {\n employeeId: 4,\n firstName: 'Bob',\n lastName: 'Brown',\n jobTitle: 'Data Analyst',\n department: 'Analytics',\n dob: '1988-11-15',\n hireDate: '2018-09-20',\n salary: 75000\n }\n]\n\nconst columns: ColumnDef<Employee>[] = [\n {\n id: 'firstName',\n header: 'First Name',\n accessorKey: 'firstName',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('firstName')}</div>,\n sortUndefined: 'last',\n sortDescFirst: false\n },\n {\n id: 'lastName',\n header: 'Last Name',\n accessorKey: 'lastName',\n cell: ({ row }) => <div>{row.getValue('lastName')}</div>\n },\n {\n id: 'jobTitle',\n header: 'Job Title',\n accessorKey: 'jobTitle',\n cell: ({ row }) => <div>{row.getValue('jobTitle')}</div>\n },\n {\n id: 'department',\n header: 'Department',\n accessorKey: 'department',\n cell: ({ row }) => <div>{row.getValue('department')}</div>\n },\n {\n id: 'dob',\n header: 'Date of Birth',\n accessorKey: 'dob',\n cell: ({ row }) => <div>{row.getValue('dob')}</div>\n },\n {\n id: 'hireDate',\n header: 'Hire Date',\n accessorKey: 'hireDate',\n cell: ({ row }) => <div>{row.getValue('hireDate')}</div>\n },\n {\n id: 'salary',\n header: 'Salary',\n accessorKey: 'salary',\n cell: ({ row }) => {\n const salary = parseFloat(row.getValue('salary'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(salary)\n\n return <div>{formatted}</div>\n }\n }\n]\n\nconst DraggableColumnDataTableDemo = () => {\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnOrder, setColumnOrder] = useState<string[]>(columns.map(column => column.id as string))\n\n const table = useReactTable({\n data,\n columns,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onSortingChange: setSorting,\n state: {\n sorting,\n columnOrder\n },\n onColumnOrderChange: setColumnOrder,\n enableSortingRemoval: false\n })\n\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event\n\n if (active && over && active.id !== over.id) {\n setColumnOrder(columnOrder => {\n const oldIndex = columnOrder.indexOf(active.id as string)\n const newIndex = columnOrder.indexOf(over.id as string)\n\n return arrayMove(columnOrder, oldIndex, newIndex)\n })\n }\n }\n\n const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}))\n\n return (\n <div className='w-full'>\n <div className='rounded-md border'>\n <DndContext\n id={useId()}\n collisionDetection={closestCenter}\n modifiers={[restrictToHorizontalAxis]}\n onDragEnd={handleDragEnd}\n sensors={sensors}\n >\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id} className='bg-muted/50 [&>th]:border-t-0'>\n <SortableContext items={columnOrder} strategy={horizontalListSortingStrategy}>\n {headerGroup.headers.map(header => (\n <DraggableTableHeader key={header.id} header={header} />\n ))}\n </SortableContext>\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <SortableContext key={cell.id} items={columnOrder} strategy={horizontalListSortingStrategy}>\n <DragAlongCell key={cell.id} cell={cell} />\n </SortableContext>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </DndContext>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Data table with draggable columns</p>\n </div>\n )\n}\n\nconst DraggableTableHeader = ({ header }: { header: Header<Employee, unknown> }) => {\n const { attributes, isDragging, listeners, setNodeRef, transform, transition } = useSortable({\n id: header.column.id\n })\n\n const style: CSSProperties = {\n opacity: isDragging ? 0.8 : 1,\n position: 'relative',\n transform: CSS.Translate.toString(transform),\n transition,\n whiteSpace: 'nowrap',\n width: header.column.getSize(),\n zIndex: isDragging ? 1 : 0\n }\n\n return (\n <TableHead\n ref={setNodeRef}\n className='before:bg-border relative h-10 border-t before:absolute before:inset-y-0 before:left-0 before:w-px first:before:bg-transparent'\n style={style}\n aria-sort={\n header.column.getIsSorted() === 'asc'\n ? 'ascending'\n : header.column.getIsSorted() === 'desc'\n ? 'descending'\n : 'none'\n }\n >\n <div className='flex items-center justify-start gap-0.5'>\n <Button\n size='icon'\n variant='ghost'\n className='-ml-2 size-7'\n {...attributes}\n {...listeners}\n aria-label='Drag to reorder'\n >\n <GripVerticalIcon className='opacity-60' aria-hidden='true' />\n </Button>\n <span className='grow truncate'>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n <Button\n size='icon'\n variant='ghost'\n className='group -mr-1 size-7'\n onClick={header.column.getToggleSortingHandler()}\n onKeyDown={e => {\n if (header.column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n header.column.getToggleSortingHandler()?.(e)\n }\n }}\n aria-label='Toggle sorting'\n >\n {{\n asc: <ChevronUpIcon className='shrink-0 opacity-60' size={16} aria-hidden='true' />,\n desc: <ChevronDownIcon className='shrink-0 opacity-60' size={16} aria-hidden='true' />\n }[header.column.getIsSorted() as string] ?? (\n <ChevronUpIcon className='shrink-0 opacity-0 group-hover:opacity-60' size={16} aria-hidden='true' />\n )}\n </Button>\n </div>\n </TableHead>\n )\n}\n\nconst DragAlongCell = ({ cell }: { cell: Cell<Employee, unknown> }) => {\n const { isDragging, setNodeRef, transform, transition } = useSortable({\n id: cell.column.id\n })\n\n const style: CSSProperties = {\n opacity: isDragging ? 0.8 : 1,\n position: 'relative',\n transform: CSS.Translate.toString(transform),\n transition,\n width: cell.column.getSize(),\n zIndex: isDragging ? 1 : 0\n }\n\n return (\n <TableCell ref={setNodeRef} className='truncate' style={style}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n}\n\nexport default DraggableColumnDataTableDemo\n","import { Fragment } from 'react'\n\nimport { ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport type { ColumnDef } from '@tanstack/react-table'\nimport { flexRender, getCoreRowModel, getExpandedRowModel, useReactTable } from '@tanstack/react-table'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\ntype Member = {\n name: string\n role: string\n email: string\n hireDate: string\n dob: string\n}\n\ntype Team = {\n teamName: string\n department: string\n location: string\n nextMilestone: string\n budget: number\n members: Member[]\n}\n\nconst data: Team[] = [\n {\n teamName: 'Digital Marketing',\n department: 'Marketing',\n location: 'London',\n nextMilestone: 'Launch New Campaign',\n budget: 30000,\n members: [\n {\n name: 'Alice Johnson',\n role: 'Lead Strategist',\n email: 'alice.johnson@example.com',\n hireDate: '2020-01-15',\n dob: '1990-01-01'\n },\n {\n name: 'Bob Smith',\n role: 'Content Creator',\n email: 'bob.smith@example.com',\n hireDate: '2021-03-22',\n dob: '1992-05-15'\n },\n {\n name: 'Charlie Brown',\n role: 'SEO Specialist',\n email: 'charlie.brown@example.com',\n hireDate: '2022-07-30',\n dob: '1995-11-20'\n }\n ]\n },\n {\n teamName: 'Product Development',\n department: 'Engineering',\n location: 'San Francisco',\n nextMilestone: 'Release Version 2.0',\n budget: 50000,\n members: [\n {\n name: 'David Wilson',\n role: 'Product Manager',\n email: 'david.wilson@example.com',\n hireDate: '2019-05-10',\n dob: '1988-02-25'\n },\n {\n name: 'Emma Johnson',\n role: 'UX Designer',\n email: 'emma.johnson@example.com',\n hireDate: '2020-08-15',\n dob: '1990-11-30'\n },\n {\n name: 'Frank Miller',\n role: 'QA Engineer',\n email: 'frank.miller@example.com',\n hireDate: '2021-01-20',\n dob: '1993-06-10'\n }\n ]\n },\n {\n teamName: 'Sales Team',\n department: 'Sales',\n location: 'New York',\n nextMilestone: 'Close Q3 Deals',\n budget: 40000,\n members: [\n {\n name: 'Grace Lee',\n role: 'Sales Executive',\n email: 'grace.lee@example.com',\n hireDate: '2021-05-12',\n dob: '1995-03-22'\n },\n {\n name: 'Henry Davis',\n role: 'Account Manager',\n email: 'henry.davis@example.com',\n hireDate: '2020-11-01',\n dob: '1992-07-15'\n },\n {\n name: 'Ivy Garcia',\n role: 'Sales Analyst',\n email: 'ivy.garcia@example.com',\n hireDate: '2021-09-15',\n dob: '1994-02-10'\n }\n ]\n }\n]\n\nconst columns: ColumnDef<Team>[] = [\n {\n id: 'expander',\n header: () => null,\n cell: ({ row }) => {\n return row.getCanExpand() ? (\n <Button\n {...{\n className: 'size-7 text-muted-foreground',\n onClick: row.getToggleExpandedHandler(),\n 'aria-expanded': row.getIsExpanded(),\n 'aria-label': row.getIsExpanded()\n ? `Collapse details for ${row.original.teamName}`\n : `Expand details for ${row.original.teamName}`,\n size: 'icon',\n variant: 'ghost'\n }}\n >\n {row.getIsExpanded() ? (\n <ChevronUpIcon className='opacity-60' aria-hidden='true' />\n ) : (\n <ChevronDownIcon className='opacity-60' aria-hidden='true' />\n )}\n </Button>\n ) : undefined\n }\n },\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n )\n },\n {\n header: 'Team Name',\n accessorKey: 'teamName',\n cell: ({ row }) => <div className='font-medium'>{row.getValue('teamName')}</div>\n },\n {\n header: 'Department',\n accessorKey: 'department',\n cell: ({ row }) => row.getValue('department')\n },\n {\n header: 'Location',\n accessorKey: 'location',\n cell: ({ row }) => row.getValue('location')\n },\n {\n header: 'Next Milestone',\n accessorKey: 'nextMilestone',\n cell: ({ row }) => row.getValue('nextMilestone')\n },\n {\n header: () => <div>Budget</div>,\n accessorKey: 'budget',\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue('budget'))\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(amount)\n\n return <div>{formatted}</div>\n }\n }\n]\n\nconst DataTableWithExpandableRowsDemo = () => {\n const table = useReactTable({\n data,\n columns,\n getRowCanExpand: row => Boolean(row.original.members),\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel()\n })\n\n return (\n <div className='w-full'>\n <div className='rounded-md border'>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id} className='hover:bg-transparent'>\n {headerGroup.headers.map(header => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <Fragment key={row.id}>\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell\n key={cell.id}\n className='[&:has([aria-expanded])]: [&:has([aria-expanded])]:w-px [&:has([aria-expanded])]:py-0'\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n {row.getIsExpanded() && (\n <TableRow className='hover:bg-transparent'>\n <TableCell colSpan={row.getVisibleCells().length} className='p-0'>\n <Table>\n <TableHeader className='border-b'>\n <TableRow className='hover:bg-muted/30!'>\n <TableHead className='w-23.5'></TableHead>\n <TableHead>Member Name</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Email</TableHead>\n <TableHead>Hire Date</TableHead>\n <TableHead>Date of Birth</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {row.original.members.map(member => (\n <TableRow key={member.email}>\n <TableCell></TableCell>\n <TableCell>{member.name}</TableCell>\n <TableCell>{member.role}</TableCell>\n <TableCell>{member.email}</TableCell>\n <TableCell>{member.hireDate}</TableCell>\n <TableCell>{member.dob}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableCell>\n </TableRow>\n )}\n </Fragment>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <p className='text-muted-foreground mt-4 text-center text-sm'>Data table with expanding sub-rows made</p>\n </div>\n )\n}\n\nexport default DataTableWithExpandableRowsDemo\n","import { useEffect, useState } from 'react'\n\nimport type {\n ColumnDef,\n ColumnFiltersState,\n RowData,\n SortingState,\n VisibilityState,\n CellContext\n} from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport { Input } from '@/components/input'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/table'\n\n// Extend TanStack Table's meta interface\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface TableMeta<TData extends RowData> {\n updateData: (rowIndex: number, columnId: string, value: string | number) => void\n }\n}\n\n// Sample data\nconst initialData: Person[] = [\n {\n id: '1',\n firstName: 'John',\n lastName: 'Doe',\n email: 'john.doe@example.com',\n status: 'active',\n progress: 75\n },\n {\n id: '2',\n firstName: 'Jane',\n lastName: 'Smith',\n email: 'jane.smith@example.com',\n status: 'inactive',\n progress: 45\n },\n {\n id: '3',\n firstName: 'Bob',\n lastName: 'Johnson',\n email: 'bob.johnson@example.com',\n status: 'active',\n progress: 90\n },\n {\n id: '4',\n firstName: 'Alice',\n lastName: 'Brown',\n email: 'alice.brown@example.com',\n status: 'pending',\n progress: 60\n },\n {\n id: '5',\n firstName: 'Charlie',\n lastName: 'Wilson',\n email: 'charlie.wilson@example.com',\n status: 'active',\n progress: 80\n }\n]\n\nexport type Person = {\n id: string\n firstName: string\n lastName: string\n email: string\n status: 'active' | 'inactive' | 'pending'\n progress: number\n}\n\n// Editable cell component for text inputs\nconst EditableTextCell = ({ getValue, row: { index }, column: { id }, table }: CellContext<Person, unknown>) => {\n const initialValue = getValue() as string\n const [value, setValue] = useState(initialValue)\n\n const onBlur = () => {\n table.options.meta?.updateData(index, id, value)\n }\n\n useEffect(() => {\n setValue(initialValue)\n }, [initialValue])\n\n return (\n <Input\n value={value}\n onChange={e => setValue(e.target.value)}\n onBlur={onBlur}\n className='focus-visible:ring-ring h-8 w-full border-0 bg-transparent p-1 focus-visible:ring-1'\n aria-label='editable-text-input'\n />\n )\n}\n\n// Editable cell component for select inputs\nconst EditableSelectCell = ({ getValue, row: { index }, column: { id }, table }: CellContext<Person, unknown>) => {\n const initialValue = getValue() as string\n\n const handleValueChange = (newValue: string) => {\n table.options.meta?.updateData(index, id, newValue)\n }\n\n return (\n <Select value={initialValue} onValueChange={handleValueChange}>\n <SelectTrigger\n className='focus:ring-ring h-8 w-full border-0 bg-transparent px-3 py-1 focus:ring-1 hover:bg-accent hover:text-accent-foreground'\n aria-label={`select-status-${id}`}\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value='active'>Active</SelectItem>\n <SelectItem value='inactive'>Inactive</SelectItem>\n <SelectItem value='pending'>Pending</SelectItem>\n </SelectContent>\n </Select>\n )\n}\n\n// Editable cell component for progress (0-100%)\nconst EditableProgressCell = ({ getValue, row: { index }, column: { id }, table }: CellContext<Person, unknown>) => {\n const initialValue = getValue() as number\n const [value, setValue] = useState(initialValue.toString())\n\n const onBlur = () => {\n const numValue = parseFloat(value)\n const clampedValue = Math.max(0, Math.min(100, isNaN(numValue) ? initialValue : numValue))\n\n table.options.meta?.updateData(index, id, clampedValue)\n }\n\n useEffect(() => {\n setValue(initialValue.toString())\n }, [initialValue])\n\n return (\n <div className='flex items-center space-x-2'>\n <Input\n type='number'\n min='0'\n max='100'\n value={value}\n onChange={e => setValue(e.target.value)}\n onBlur={onBlur}\n className='focus-visible:ring-ring h-8 w-20 border-0 bg-transparent p-1 focus-visible:ring-1'\n aria-label='editable-progress-input'\n />\n <span className='text-muted-foreground text-sm'>%</span>\n </div>\n )\n}\n\n// Column definitions with editable cells\nexport const columns: ColumnDef<Person>[] = [\n {\n id: 'select',\n header: ({ table }) => (\n <Checkbox\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={value => table.toggleAllPageRowsSelected(!!value)}\n aria-label='Select all'\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={value => row.toggleSelected(!!value)}\n aria-label='Select row'\n />\n ),\n enableSorting: false,\n enableHiding: false\n },\n {\n accessorKey: 'firstName',\n header: 'First Name',\n cell: EditableTextCell\n },\n {\n accessorKey: 'lastName',\n header: 'Last Name',\n cell: EditableTextCell\n },\n {\n accessorKey: 'email',\n header: 'Email',\n cell: EditableTextCell\n },\n {\n accessorKey: 'status',\n header: 'Status',\n cell: EditableSelectCell\n },\n {\n accessorKey: 'progress',\n header: 'Progress',\n cell: EditableProgressCell\n }\n]\n\nconst EditableDataTableDemo = () => {\n const [data, setData] = useState(() => [...initialData])\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = useState({})\n\n const refreshData = () => setData(() => [...initialData])\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n meta: {\n updateData: (rowIndex, columnId, value) => {\n setData(old =>\n old.map((row, index) => {\n if (index === rowIndex) {\n return {\n ...old[rowIndex]!,\n [columnId]: value\n }\n }\n\n return row\n })\n )\n }\n },\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection\n }\n })\n\n return (\n <div className='w-full space-y-4'>\n <div className='rounded-md border'>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder ? null : (\n <div>{flexRender(header.column.columnDef.header, header.getContext())}</div>\n )}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map(row => (\n <TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>\n {row.getVisibleCells().map(cell => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className='h-24 text-center'>\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n\n <div className='text-muted-foreground flex items-center justify-between gap-2 text-sm max-md:flex-col'>\n <div>{table.getRowModel().rows.length} rows total</div>\n <div className='flex items-center space-x-2'>\n <Button variant='ghost' size='sm' onClick={refreshData}>\n Refresh Data\n </Button>\n </div>\n </div>\n\n <p className='text-muted-foreground mt-4 text-center text-sm'>\n Editable data table - Click on cells to edit values\n </p>\n </div>\n )\n}\n\nexport default EditableDataTableDemo\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import { useId } from 'react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxDemo = () => {\n const id = useId()\n\n return (\n <div className='flex items-center gap-2'>\n <Checkbox id={id} />\n <Label htmlFor={id}>Accept terms and conditions</Label>\n </div>\n )\n}\n\nexport default CheckboxDemo\n","import { useId, useState, type ComponentProps } from 'react'\n\nimport { CheckIcon, MinusIcon } from 'lucide-react'\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui'\n\nimport { Label } from '@/components/label'\n\nconst Checkbox = (props: ComponentProps<typeof CheckboxPrimitive.Root>) => {\n return (\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n className='peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:text-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50'\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <MinusIcon className='hidden size-2.5 group-data-[state=indeterminate]:block' />\n <CheckIcon className='hidden size-3.5 group-data-[state=checked]:block' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nconst CheckboxIndeterminateDemo = () => {\n const [checked, setChecked] = useState<CheckboxPrimitive.CheckedState>('indeterminate')\n\n const id = useId()\n\n return (\n <div className='flex items-center gap-2'>\n <Checkbox id={id} checked={checked} onCheckedChange={setChecked} />\n <Label htmlFor={id}>Indeterminate checkbox</Label>\n </div>\n )\n}\n\nexport default CheckboxIndeterminateDemo\n","import { useId } from 'react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxDashedDemo = () => {\n const id = useId()\n\n return (\n <div className='flex items-center gap-2'>\n <Checkbox id={id} className='border-primary border-dashed' />\n <Label htmlFor={id}>Accept terms and conditions</Label>\n </div>\n )\n}\n\nexport default CheckboxDashedDemo\n","import { useId } from 'react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxTodoListDemo = () => {\n const id = useId()\n\n return (\n <div className='flex items-center gap-2'>\n <Checkbox id={id} defaultChecked />\n <Label htmlFor={id} className='peer-data-[state=checked]:line-through'>\n Simple todo list item\n </Label>\n </div>\n )\n}\n\nexport default CheckboxTodoListDemo\n","import { Checkbox } from '@/components/checkbox'\n\nconst CheckboxSizesDemo = () => {\n return (\n <div className='flex items-center gap-2'>\n <Checkbox defaultChecked aria-label='Size default' />\n <Checkbox className='size-5' defaultChecked aria-label='Size small' />\n <Checkbox className='size-6' defaultChecked aria-label='Size large' />\n </div>\n )\n}\n\nexport default CheckboxSizesDemo\n","import { useState } from 'react'\n\nimport { Badge } from '@/components/badge'\nimport { Checkbox } from '@/components/checkbox'\n\nconst snacks = ['Burger', 'Pizza', 'Drinks']\n\nconst CheckboxBadgeDemo = () => {\n const [selected, setSelected] = useState<string[]>(['Burger', 'Pizza'])\n\n return (\n <div className='flex items-center gap-2'>\n {snacks.map(label => (\n <Badge key={label} variant='secondary' className='relative gap-2 rounded-sm px-3 py-1.5'>\n <Checkbox\n id={label}\n checked={selected.includes(label)}\n onCheckedChange={checked =>\n setSelected(checked ? [...selected, label] : selected.filter(item => item !== label))\n }\n className='data-[state=unchecked]:hidden'\n />\n <label htmlFor={label} className='cursor-pointer select-none after:absolute after:inset-0'>\n {label}\n </label>\n </Badge>\n ))}\n </div>\n )\n}\n\nexport default CheckboxBadgeDemo\n","import { useId } from 'react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxDescriptionDemo = () => {\n const id = useId()\n\n return (\n <div className='flex items-start gap-2'>\n <Checkbox id={id} defaultChecked />\n <div className='grid gap-2'>\n <Label htmlFor={id} className='leading-4'>\n Accept terms and conditions\n </Label>\n <p className='text-muted-foreground text-xs'>\n By clicking this checkbox, you agree to the terms and conditions.\n </p>\n </div>\n </div>\n )\n}\n\nexport default CheckboxDescriptionDemo\n","import { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst technologies = ['React', 'Next.js', 'Remix']\n\nconst CheckboxHorizontalGroupDemo = () => {\n return (\n <div className='space-y-4'>\n <Label className='font-semibold'>Technologies</Label>\n <div className='flex flex-wrap items-center gap-x-4 gap-y-2'>\n {technologies.map(label => (\n <div key={label} className='flex items-center gap-2'>\n <Checkbox id={label} />\n <Label htmlFor={label}>{label}</Label>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport default CheckboxHorizontalGroupDemo\n","import { AppleIcon, CherryIcon, GrapeIcon } from 'lucide-react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst fruits = [\n { label: 'Apple', icon: AppleIcon },\n { label: 'Cherry', icon: CherryIcon },\n { label: 'Grape', icon: GrapeIcon }\n]\n\nconst CheckboxVerticalGroupDemo = () => {\n return (\n <div className='space-y-4'>\n <Label className='font-semibold'>Favorite Fruits</Label>\n <div className='flex flex-col gap-4'>\n {fruits.map(({ label, icon: Icon }) => (\n <div key={label} className='flex items-start justify-start w-full gap-3'>\n <Checkbox id={label} />\n <Label htmlFor={label} className='flex items-center justify-center gap-2'>\n <Icon className='size-4' aria-hidden='true' />\n {label}\n </Label>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport default CheckboxVerticalGroupDemo\n","import { Checkbox } from '@/components/checkbox'\n\nconst CheckboxColorsDemo = () => {\n return (\n <div className='flex items-center gap-2'>\n <Checkbox\n className='data-[state=checked]:bg-destructive! data-[state=checked]:border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:text-white'\n aria-label='Color destructive'\n defaultChecked\n />\n <Checkbox\n className='focus-visible:ring-sky-600/20 data-[state=checked]:border-sky-600 data-[state=checked]:bg-sky-600 dark:text-white dark:focus-visible:ring-sky-400/40 dark:data-[state=checked]:border-sky-400 dark:data-[state=checked]:bg-sky-400'\n aria-label='Color info'\n defaultChecked\n />\n <Checkbox\n className='focus-visible:ring-green-600/20 data-[state=checked]:border-green-600 data-[state=checked]:bg-green-600 dark:text-white dark:focus-visible:ring-green-400/40 dark:data-[state=checked]:border-green-400 dark:data-[state=checked]:bg-green-400'\n aria-label='Color success'\n defaultChecked\n />\n </div>\n )\n}\n\nexport default CheckboxColorsDemo\n","import { HeartIcon, CircleIcon, StarIcon } from 'lucide-react'\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui'\n\nconst CheckboxCustomIconsDemo = () => {\n return (\n <div className='flex items-center gap-2'>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='group focus-visible:ring-ring/50 rounded-sm outline-none focus-visible:ring-3'\n aria-label='Heart icon'\n >\n <span className='group-data-[state=checked]:hidden'>\n <HeartIcon className='stroke-1' />\n </span>\n <span className='group-data-[state=unchecked]:hidden'>\n <HeartIcon className='fill-destructive stroke-destructive stroke-1' />\n </span>\n </CheckboxPrimitive.Root>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='group focus-visible:ring-ring/50 rounded-sm outline-none focus-visible:ring-3'\n aria-label='Star icon'\n >\n <span className='group-data-[state=checked]:hidden'>\n <StarIcon className='stroke-1' />\n </span>\n <span className='group-data-[state=unchecked]:hidden'>\n <StarIcon className='fill-amber-500 stroke-amber-500 stroke-1 dark:fill-amber-400 dark:stroke-amber-400' />\n </span>\n </CheckboxPrimitive.Root>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='group focus-visible:ring-ring/50 rounded-sm outline-none focus-visible:ring-3'\n aria-label='Circle icon'\n >\n <span className='group-data-[state=checked]:hidden'>\n <CircleIcon className='stroke-1' />\n </span>\n <span className='group-data-[state=unchecked]:hidden'>\n <CircleIcon className='fill-green-600 stroke-green-600 stroke-1 dark:fill-green-400 dark:stroke-green-400' />\n </span>\n </CheckboxPrimitive.Root>\n </div>\n )\n}\n\nexport default CheckboxCustomIconsDemo\n","import { CircleCheckIcon } from 'lucide-react'\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui'\n\nconst CheckboxFilledIconDemo = () => {\n return (\n <div className='flex items-center gap-2'>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='peer bg-destructive data-[state=checked]:text-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 size-7 shrink-0 rounded-full shadow-xs transition-shadow outline-none focus-visible:ring-[3px]'\n aria-label='Color destructive'\n >\n <CheckboxPrimitive.Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <CircleCheckIcon className='size-5.5 fill-white stroke-current' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='peer size-7 shrink-0 rounded-full bg-sky-600 shadow-xs transition-shadow outline-none focus-visible:ring-[3px] focus-visible:ring-sky-600/20 data-[state=checked]:text-sky-600 dark:bg-sky-400 dark:focus-visible:ring-sky-400/40 dark:data-[state=checked]:text-sky-400'\n aria-label='Color info'\n >\n <CheckboxPrimitive.Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <CircleCheckIcon className='size-5.5 fill-white stroke-current' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n defaultChecked\n className='peer size-7 shrink-0 rounded-full bg-green-600 shadow-xs transition-shadow outline-none focus-visible:ring-[3px] focus-visible:ring-green-600/20 data-[state=checked]:text-green-600 dark:bg-green-400 dark:focus-visible:ring-green-400/40 dark:data-[state=checked]:text-green-400'\n aria-label='Color success'\n >\n <CheckboxPrimitive.Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <CircleCheckIcon className='size-5.5 fill-white stroke-current' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n </div>\n )\n}\n\nexport default CheckboxFilledIconDemo\n","import { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxCardDemo = () => {\n return (\n <div className='space-y-2'>\n <Label className='hover:bg-accent/50 flex items-start gap-2 rounded-lg border p-3 has-[[aria-checked=true]]:border-blue-600 has-[[aria-checked=true]]:bg-blue-50 dark:has-[[aria-checked=true]]:border-blue-900 dark:has-[[aria-checked=true]]:bg-blue-950'>\n <Checkbox\n defaultChecked\n className='data-[state=checked]:border-blue-600 data-[state=checked]:bg-blue-600 data-[state=checked]:text-white dark:data-[state=checked]:border-blue-700 dark:data-[state=checked]:bg-blue-700'\n />\n <div className='grid gap-1.5 font-normal'>\n <p className='text-sm leading-none font-medium'>Auto Start</p>\n <p className='text-muted-foreground text-sm'>Starting with your OS.</p>\n </div>\n </Label>\n <Label className='hover:bg-accent/50 flex items-start gap-2 rounded-lg border p-3 has-[[aria-checked=true]]:border-blue-600 has-[[aria-checked=true]]:bg-blue-50 dark:has-[[aria-checked=true]]:border-blue-900 dark:has-[[aria-checked=true]]:bg-blue-950'>\n <Checkbox className='data-[state=checked]:border-blue-600 data-[state=checked]:bg-blue-600 data-[state=checked]:text-white dark:data-[state=checked]:border-blue-700 dark:data-[state=checked]:bg-blue-700' />\n <div className='grid gap-1.5 font-normal'>\n <p className='text-sm leading-none font-medium'>Auto update</p>\n <p className='text-muted-foreground text-sm'>Download and install new version</p>\n </div>\n </Label>\n </div>\n )\n}\n\nexport default CheckboxCardDemo\n","import { ChartPieIcon, CodeIcon, PaletteIcon } from 'lucide-react'\n\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst skills = [\n { label: 'Web Development', icon: CodeIcon },\n { label: 'Data Analysis', icon: ChartPieIcon },\n { label: 'Graphic Design', icon: PaletteIcon }\n]\n\nconst CheckboxListGroupDemo = () => {\n return (\n <ul className='flex w-full flex-col divide-y rounded-md border'>\n {skills.map(({ label, icon: Icon }) => (\n <li key={label}>\n <Label htmlFor={label} className='flex items-center justify-between gap-2 px-5 py-3'>\n <span className='flex items-center gap-2'>\n <Icon className='size-4' /> {label}\n </span>\n <Checkbox id={label} />\n </Label>\n </li>\n ))}\n </ul>\n )\n}\n\nexport default CheckboxListGroupDemo\n","'use client'\n\nimport { useEffect, useState, type ComponentProps } from 'react'\n\nimport { CheckIcon, MinusIcon } from 'lucide-react'\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui'\n\nimport { Label } from '@/components/label'\n\nconst items = ['Child 1', 'Child 2', 'Child 3']\n\nconst Checkbox = (props: ComponentProps<typeof CheckboxPrimitive.Root>) => {\n return (\n <CheckboxPrimitive.Root\n data-slot='checkbox'\n className='peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:text-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50'\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <MinusIcon className='hidden size-2.5 group-data-[state=indeterminate]:block' />\n <CheckIcon className='hidden size-3.5 group-data-[state=checked]:block' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nconst CheckboxTreeDemo = () => {\n const [checked, setChecked] = useState<CheckboxPrimitive.CheckedState>('indeterminate')\n const [selected, setSelected] = useState<string[]>(['Child 1', 'Child 2'])\n\n useEffect(() => {\n if (selected.length === items.length) {\n setChecked(true)\n } else if (selected.length > 0) {\n setChecked('indeterminate')\n } else {\n setChecked(false)\n }\n }, [selected])\n\n const handleCheckedChange = (checked: CheckboxPrimitive.CheckedState) => {\n setChecked(checked)\n\n if (checked === true) {\n setSelected([...items])\n } else if (checked === false) {\n setSelected([])\n }\n }\n\n return (\n <div className='flex flex-col gap-4'>\n <div className='flex items-center gap-2'>\n <Checkbox id='parent' checked={checked} onCheckedChange={handleCheckedChange} />\n <Label htmlFor='parent'>Parent</Label>\n </div>\n <div className='flex flex-col gap-2 pl-6'>\n {items.map(label => (\n <div key={label} className='flex items-center gap-2'>\n <Checkbox\n id={label}\n checked={selected.includes(label)}\n onCheckedChange={checked =>\n setSelected(checked ? [...selected, label] : selected.filter(item => item !== label))\n }\n />\n <Label htmlFor={label}>{label}</Label>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nexport default CheckboxTreeDemo\n","import { useId } from 'react'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\n\nconst CheckboxFormDemo = () => {\n const id = useId()\n\n return (\n <div className='flex items-start gap-2'>\n <Checkbox id={id} defaultChecked />\n <div className='grid gap-2'>\n <Label htmlFor={id} className='gap-1 leading-4'>\n Accept terms and conditions\n </Label>\n <p className='text-muted-foreground text-xs'>\n By clicking this checkbox, you agree to the terms and conditions.\n </p>\n <div className='flex flex-wrap gap-2'>\n <Button variant='outline' size='sm'>\n Reset\n </Button>\n <Button size='sm'>Submit</Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default CheckboxFormDemo\n","import { Input } from '@/components/input'\n\nconst InputDemo = () => {\n return <Input type='email' placeholder='Email address' className='max-w-xs' />\n}\n\nexport default InputDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputLabelDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with label</Label>\n <Input id={id} type='email' placeholder='Email address' />\n </div>\n )\n}\n\nexport default InputLabelDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputRequiredDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id} className='gap-1'>\n Required input <span className='text-destructive'>*</span>\n </Label>\n <Input id={id} type='email' placeholder='Email address' required />\n </div>\n )\n}\n\nexport default InputRequiredDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputDisabledDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Disabled input</Label>\n <Input id={id} type='email' placeholder='Email address' disabled />\n </div>\n )\n}\n\nexport default InputDisabledDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputReadOnlyDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Read-only input</Label>\n <Input\n id={id}\n type='email'\n placeholder='Email address'\n defaultValue='example@xyz.com'\n className='read-only:bg-muted'\n readOnly\n />\n </div>\n )\n}\n\nexport default InputReadOnlyDemo\n","import { Input } from '@/components/input'\n\nconst InputSizesDemo = () => {\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Input type='text' placeholder='Small input' className='h-8' />\n <Input type='text' placeholder='Medium input' />\n <Input type='text' placeholder='Large input' className='h-10' />\n </div>\n )\n}\n\nexport default InputSizesDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputDefaultValueDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with default value</Label>\n <Input id={id} type='email' placeholder='Email address' defaultValue='example@email.com' />\n </div>\n )\n}\n\nexport default InputDefaultValueDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputRoundedDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Rounded input</Label>\n <Input id={id} type='email' placeholder='Email address' className='rounded-full' />\n </div>\n )\n}\n\nexport default InputRoundedDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputStartHelperTextDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with start helper text</Label>\n <Input id={id} type='email' placeholder='Email address' />\n <p className='text-muted-foreground text-xs'>We'll never share your email with anyone else.</p>\n </div>\n )\n}\n\nexport default InputStartHelperTextDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndHelperTextDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end helper text</Label>\n <Input id={id} type='email' placeholder='Email address' />\n <p className='text-muted-foreground text-end text-xs'>We'll never share your email with anyone else.</p>\n </div>\n )\n}\n\nexport default InputEndHelperTextDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputHintTextDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <div className='flex items-center justify-between gap-1'>\n <Label htmlFor={id}>Input with hint text</Label>\n <span className='text-muted-foreground text-xs'>Optional field</span>\n </div>\n <Input id={id} type='email' placeholder='Email address' />\n </div>\n )\n}\n\nexport default InputHintTextDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputErrorDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with error</Label>\n <Input\n id={id}\n type='email'\n placeholder='Email address'\n className='peer'\n defaultValue='invalid@email.com'\n aria-invalid\n />\n <p className='text-muted-foreground peer-aria-invalid:text-destructive text-xs'>This email is invalid.</p>\n </div>\n )\n}\n\nexport default InputErrorDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputColoredRingDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with colored ring</Label>\n <Input\n id={id}\n type='email'\n placeholder='Email address'\n className='focus-visible:border-indigo-500 focus-visible:ring-indigo-500/20 dark:focus-visible:ring-indigo-500/40'\n />\n </div>\n )\n}\n\nexport default InputColoredRingDemo\n","import { useId } from 'react'\n\nimport { UserIcon } from 'lucide-react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputStartIconDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with start icon</Label>\n <div className='relative'>\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 peer-disabled:opacity-50'>\n <UserIcon className='size-4' />\n <span className='sr-only'>User</span>\n </div>\n <Input id={id} type='text' placeholder='Username' className='peer pl-9' />\n </div>\n </div>\n )\n}\n\nexport default InputStartIconDemo\n","import { useId } from 'react'\n\nimport { MailIcon } from 'lucide-react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndIconDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end icon</Label>\n <div className='relative'>\n <Input id={id} type='email' placeholder='Email address' className='peer pr-9' />\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n <MailIcon className='size-4' />\n <span className='sr-only'>Email</span>\n </div>\n </div>\n </div>\n )\n}\n\nexport default InputEndIconDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputStartTextAddOnDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with start text add-on</Label>\n <div className='relative'>\n <Input id={id} type='text' placeholder='shadcnstudio.com' className='peer pl-17' />\n <span className='pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 text-sm peer-disabled:opacity-50'>\n https://\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputStartTextAddOnDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndTextAddOnDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end text add-on</Label>\n <div className='relative'>\n <Input id={id} type='text' placeholder='shadcnstudio' className='peer pr-13' />\n <span className='pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 text-sm peer-disabled:opacity-50'>\n .com\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputEndTextAddOnDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputTextAddOnsDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with text add-ons</Label>\n <div className='relative'>\n <Input id={id} type='text' placeholder='shadcnstudio' className='peer pr-13 pl-17' />\n <span className='pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 text-sm peer-disabled:opacity-50'>\n https://\n </span>\n <span className='pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 text-sm peer-disabled:opacity-50'>\n .com\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputTextAddOnsDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputStartAddOnDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with start add-on</Label>\n <div className='flex rounded-md shadow-xs'>\n <span className='border-input bg-background text-muted-foreground -z-1 inline-flex items-center rounded-l-md border px-3 text-sm'>\n https://\n </span>\n <Input id={id} type='text' placeholder='shadcnstudio.com' className='-ms-px rounded-l-none shadow-none' />\n </div>\n </div>\n )\n}\n\nexport default InputStartAddOnDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndAddOnDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end add-on</Label>\n <div className='flex rounded-md shadow-xs'>\n <Input id={id} type='text' placeholder='shadcnstudio' className='-me-px rounded-r-none shadow-none' />\n <span className='border-input bg-background text-muted-foreground -z-1 inline-flex items-center rounded-r-md border px-3 text-sm'>\n .com\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputEndAddOnDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputAddOnsDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with add-ons</Label>\n <div className='flex rounded-md shadow-xs'>\n <span className='border-input bg-background text-muted-foreground -z-1 inline-flex items-center rounded-l-md border px-3 text-sm'>\n https://\n </span>\n <Input id={id} type='text' placeholder='shadcnstudio' className='-mx-px rounded-none shadow-none' />\n <span className='border-input bg-background text-muted-foreground -z-1 inline-flex items-center rounded-r-md border px-3 text-sm'>\n .com\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputAddOnsDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputFilledDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Filled input</Label>\n <Input id={id} type='email' placeholder='Email address' className='bg-muted border-transparent shadow-none' />\n </div>\n )\n}\n\nexport default InputFilledDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputOverlappingLabelDemo = () => {\n const id = useId()\n\n return (\n <div className='group relative w-full max-w-xs'>\n <Label\n htmlFor={id}\n className='bg-background text-foreground absolute top-0 left-2 z-1 block -translate-y-1/2 px-1 text-xs'\n >\n Input with overlapping label\n </Label>\n <Input id={id} type='email' placeholder='Email address' className='dark:bg-background h-10' />\n </div>\n )\n}\n\nexport default InputOverlappingLabelDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\n\nconst InputFloatingLabelDemo = () => {\n const id = useId()\n\n return (\n <div className='group relative w-full max-w-xs'>\n <label\n htmlFor={id}\n className='origin-start text-muted-foreground group-focus-within:text-foreground has-[+input:not(:placeholder-shown)]:text-foreground absolute top-1/2 block -translate-y-1/2 cursor-text px-2 text-sm transition-all group-focus-within:pointer-events-none group-focus-within:top-0 group-focus-within:cursor-default group-focus-within:text-xs group-focus-within:font-medium has-[+input:not(:placeholder-shown)]:pointer-events-none has-[+input:not(:placeholder-shown)]:top-0 has-[+input:not(:placeholder-shown)]:cursor-default has-[+input:not(:placeholder-shown)]:text-xs has-[+input:not(:placeholder-shown)]:font-medium'\n >\n <span className='bg-background inline-flex px-1'>Input with floating label</span>\n </label>\n <Input id={id} type='email' placeholder=' ' className='dark:bg-background' />\n </div>\n )\n}\n\nexport default InputFloatingLabelDemo\n","import { useId } from 'react'\n\nconst InputInsetLabelDemo = () => {\n const id = useId()\n\n return (\n <div className='border-input bg-background focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive relative w-full max-w-xs rounded-md border shadow-xs transition-[color,box-shadow] outline-none focus-within:ring-[3px] has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-[input:is(:disabled)]:*:pointer-events-none'>\n <label htmlFor={id} className='text-foreground dark:bg-input/30 block px-3 pt-1 text-xs font-medium'>\n Input with inset label\n </label>\n <input\n id={id}\n type='email'\n placeholder='Email address'\n className='text-foreground placeholder:text-muted-foreground dark:bg-input/30 flex h-9 w-full bg-transparent px-3 pb-1 text-sm focus-visible:outline-none'\n />\n </div>\n )\n}\n\nexport default InputInsetLabelDemo\n","'use client'\n\nimport { useId, useState } from 'react'\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputPasswordDemo = () => {\n const [isVisible, setIsVisible] = useState(false)\n\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Password input</Label>\n <div className='relative'>\n <Input id={id} type={isVisible ? 'text' : 'password'} placeholder='Password' className='pr-9' />\n <Button\n variant='ghost'\n size='icon'\n onClick={() => setIsVisible(prevState => !prevState)}\n className='text-muted-foreground focus-visible:ring-ring/50 absolute inset-y-0 right-0 rounded-l-none hover:bg-transparent'\n >\n {isVisible ? <EyeOffIcon /> : <EyeIcon />}\n <span className='sr-only'>{isVisible ? 'Hide password' : 'Show password'}</span>\n </Button>\n </div>\n </div>\n )\n}\n\nexport default InputPasswordDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputFileDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>File input</Label>\n <Input\n id={id}\n type='file'\n className='text-muted-foreground file:border-input file:text-foreground p-0 pr-3 italic file:mr-3 file:h-full file:border-0 file:border-r file:border-solid file:bg-transparent file:px-3 file:text-sm file:font-medium file:not-italic'\n />\n </div>\n )\n}\n\nexport default InputFileDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\n\nconst InputStartSelectDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with start select</Label>\n <div className='flex rounded-md shadow-xs'>\n <Select defaultValue='https://'>\n <SelectTrigger id={id} className='rounded-r-none shadow-none focus-visible:z-1'>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value='https://' className='pr-2 [&_svg]:hidden'>\n https://\n </SelectItem>\n <SelectItem value='http://' className='pr-2 [&_svg]:hidden'>\n http://\n </SelectItem>\n <SelectItem value='ftp://' className='pr-2 [&_svg]:hidden'>\n ftp://\n </SelectItem>\n <SelectItem value='sftp://' className='pr-2 [&_svg]:hidden'>\n sftp://\n </SelectItem>\n <SelectItem value='ws://' className='pr-2 [&_svg]:hidden'>\n ws://\n </SelectItem>\n <SelectItem value='wss://' className='pr-2 [&_svg]:hidden'>\n wss://\n </SelectItem>\n </SelectContent>\n </Select>\n <Input id={id} type='text' placeholder='shadcnstudio.com' className='-ms-px rounded-l-none shadow-none' />\n </div>\n </div>\n )\n}\n\nexport default InputStartSelectDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\n\nconst InputEndSelectDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end select</Label>\n <div className='flex rounded-md shadow-xs'>\n <Input\n id={id}\n type='text'\n placeholder='shadcnstudio'\n className='-me-px rounded-r-none shadow-none focus-visible:z-1'\n />\n <Select defaultValue='.com'>\n <SelectTrigger id={id} className='rounded-l-none shadow-none'>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value='.com' className='pr-2 [&_svg]:hidden'>\n .com\n </SelectItem>\n <SelectItem value='.org' className='pr-2 [&_svg]:hidden'>\n .org\n </SelectItem>\n <SelectItem value='.net' className='pr-2 [&_svg]:hidden'>\n .net\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n )\n}\n\nexport default InputEndSelectDemo\n","import { useId } from 'react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputButtonDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with button</Label>\n <div className='flex gap-2'>\n <Input id={id} type='email' placeholder='Email address' />\n <Button type='submit'>Subscribe</Button>\n </div>\n </div>\n )\n}\n\nexport default InputButtonDemo\n","import { useId } from 'react'\n\nimport { SendHorizonalIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndInlineButtonDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end inline button</Label>\n <div className='relative'>\n <Input id={id} type='email' placeholder='Email address' className='pr-9' />\n <Button\n variant='ghost'\n size='icon'\n className='text-muted-foreground focus-visible:ring-ring/50 absolute inset-y-0 right-0 rounded-l-none hover:bg-transparent'\n >\n <SendHorizonalIcon />\n <span className='sr-only'>Subscribe</span>\n </Button>\n </div>\n </div>\n )\n}\n\nexport default InputEndInlineButtonDemo\n","import { useId } from 'react'\n\nimport { DownloadIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputIconButtonDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with icon button</Label>\n <div className='flex rounded-md shadow-xs'>\n <Input\n id={id}\n type='email'\n placeholder='Email address'\n className='-me-px rounded-r-none shadow-none focus-visible:z-1'\n />\n <Button variant='outline' size='icon' className='rounded-l-none'>\n <DownloadIcon />\n <span className='sr-only'>Download</span>\n </Button>\n </div>\n </div>\n )\n}\n\nexport default InputIconButtonDemo\n","import { useId } from 'react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputEndButtonDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with end button</Label>\n <div className='flex rounded-md shadow-xs'>\n <Input\n id={id}\n type='email'\n placeholder='Email address'\n className='-me-px rounded-r-none shadow-none focus-visible:z-1'\n />\n <Button className='rounded-l-none'>Subscribe</Button>\n </div>\n </div>\n )\n}\n\nexport default InputEndButtonDemo\n","'use client'\n\nimport { useId, useState, type ChangeEvent } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst maxLength = 50\nconst initialValue = ''\n\nconst InputCharacterLimitDemo = () => {\n const [value, setValue] = useState(initialValue)\n const [characterCount, setCharacterCount] = useState(initialValue.length)\n\n const id = useId()\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.value.length <= maxLength) {\n setValue(e.target.value)\n setCharacterCount(e.target.value.length)\n }\n }\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with character limit</Label>\n <div className='relative'>\n <Input\n id={id}\n type='text'\n placeholder='Username'\n value={value}\n maxLength={maxLength}\n onChange={handleChange}\n className='peer pr-14'\n />\n <span className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 text-xs tabular-nums peer-disabled:opacity-50'>\n {characterCount}/{maxLength}\n </span>\n </div>\n </div>\n )\n}\n\nexport default InputCharacterLimitDemo\n","'use client'\n\nimport { useId, useState, type ChangeEvent } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst maxLength = 12\nconst initialValue = ''\n\nconst InputCharacterLeftDemo = () => {\n const [value, setValue] = useState(initialValue)\n const [characterCount, setCharacterCount] = useState(initialValue.length)\n\n const id = useId()\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.value.length <= maxLength) {\n setValue(e.target.value)\n setCharacterCount(e.target.value.length)\n }\n }\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with characters left</Label>\n <Input type='text' placeholder='Username' value={value} maxLength={maxLength} onChange={handleChange} />\n <p className='text-muted-foreground text-xs'>\n <span className='tabular-nums'>{maxLength - characterCount}</span> characters left\n </p>\n </div>\n )\n}\n\nexport default InputCharacterLeftDemo\n","'use client'\n\nimport { useId, useRef, useState } from 'react'\n\nimport { CircleXIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputClearDemo = () => {\n const [value, setValue] = useState('Click to clear')\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const id = useId()\n\n const handleClearInput = () => {\n setValue('')\n\n if (inputRef.current) {\n inputRef.current.focus()\n }\n }\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with clear button</Label>\n <div className='relative'>\n <Input\n ref={inputRef}\n id={id}\n type='text'\n placeholder='Type something...'\n value={value}\n onChange={e => setValue(e.target.value)}\n className='pr-9'\n />\n {value && (\n <Button\n variant='ghost'\n size='icon'\n onClick={handleClearInput}\n className='text-muted-foreground focus-visible:ring-ring/50 absolute inset-y-0 right-0 rounded-l-none hover:bg-transparent'\n >\n <CircleXIcon />\n <span className='sr-only'>Clear input</span>\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nexport default InputClearDemo\n","import { useId } from 'react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputSearchDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Search input with <kbd></Label>\n <div className='relative'>\n <Input\n id={id}\n type='search'\n placeholder='Search...'\n className='peer pr-11 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none'\n />\n <div className='pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n <kbd className='text-muted-foreground bg-accent inline-flex h-5 max-h-full items-center rounded border px-1 font-[inherit] text-[0.625rem] font-medium'>\n ⌘k\n </kbd>\n </div>\n </div>\n </div>\n )\n}\n\nexport default InputSearchDemo\n","import { useId } from 'react'\n\nimport { MicIcon, SearchIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputSearchIconDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Search input with icon and button</Label>\n <div className='relative'>\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 peer-disabled:opacity-50'>\n <SearchIcon className='size-4' />\n <span className='sr-only'>Search</span>\n </div>\n <Input\n id={id}\n type='search'\n placeholder='Search...'\n className='peer px-9 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none'\n />\n <Button\n variant='ghost'\n size='icon'\n className='text-muted-foreground focus-visible:ring-ring/50 absolute inset-y-0 right-0 rounded-l-none hover:bg-transparent'\n >\n <MicIcon />\n <span className='sr-only'>Press to speak</span>\n </Button>\n </div>\n </div>\n )\n}\n\nexport default InputSearchIconDemo\n","'use client'\n\nimport { useEffect, useId, useState } from 'react'\n\nimport { LoaderCircleIcon, SearchIcon } from 'lucide-react'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputSearchLoaderDemo = () => {\n const [value, setValue] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n\n const id = useId()\n\n useEffect(() => {\n if (value) {\n setIsLoading(true)\n\n const timer = setTimeout(() => {\n setIsLoading(false)\n }, 500)\n\n return () => clearTimeout(timer)\n }\n\n setIsLoading(false)\n }, [value])\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Search input with loader</Label>\n <div className='relative'>\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 peer-disabled:opacity-50'>\n <SearchIcon className='size-4' />\n <span className='sr-only'>Search</span>\n </div>\n <Input\n id={id}\n type='search'\n placeholder='Search...'\n value={value}\n onChange={e => setValue(e.target.value)}\n className='peer px-9 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none'\n />\n {isLoading && (\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n <LoaderCircleIcon className='size-4 animate-spin' />\n <span className='sr-only'>Loading...</span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default InputSearchLoaderDemo\n","import { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithPlusMinusButtonsDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with plus/minus buttons\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -ms-px flex aspect-square h-[inherit] items-center justify-center rounded-l-md border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <MinusIcon />\n <span className='sr-only'>Decrement</span>\n </Button>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px flex aspect-square h-[inherit] items-center justify-center rounded-r-md border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <PlusIcon />\n <span className='sr-only'>Increment</span>\n </Button>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithPlusMinusButtonsDemo\n","import { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithEndButtonsDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with end buttons\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px flex aspect-square h-[inherit] items-center justify-center border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <MinusIcon />\n <span className='sr-only'>Decrement</span>\n </Button>\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px flex aspect-square h-[inherit] items-center justify-center rounded-r-md border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <PlusIcon />\n <span className='sr-only'>Increment</span>\n </Button>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithEndButtonsDemo\n","import { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithStackedButtonsDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with stacked buttons\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <div className='flex h-[calc(100%+2px)] flex-col'>\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px flex h-1/2 w-6 flex-1 items-center justify-center border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <PlusIcon className='size-3' />\n <span className='sr-only'>Increment</span>\n </Button>\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px -mt-px flex h-1/2 w-6 flex-1 items-center justify-center border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <MinusIcon className='size-3' />\n <span className='sr-only'>Decrement</span>\n </Button>\n </div>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithStackedButtonsDemo\n","import { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithPlusMinusButtonsRoundedDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with plus/minus buttons (rounded)\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground ml-2 flex aspect-square h-5 items-center justify-center rounded-sm border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <MinusIcon className='size-3' />\n <span className='sr-only'>Decrement</span>\n </Button>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground mr-2 flex aspect-square h-5 items-center justify-center rounded-sm border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <PlusIcon className='size-3' />\n <span className='sr-only'>Increment</span>\n </Button>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithPlusMinusButtonsRoundedDemo\n","import { MinusIcon, PlusIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithEndButtonsRoundedDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with end buttons (rounded)\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground mr-1.5 flex aspect-square h-5 items-center justify-center rounded-sm border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <MinusIcon className='size-3' />\n <span className='sr-only'>Decrement</span>\n </Button>\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground mr-2 flex aspect-square h-5 items-center justify-center rounded-sm border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <PlusIcon className='size-3' />\n <span className='sr-only'>Increment</span>\n </Button>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithEndButtonsRoundedDemo\n","import { ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { Button, Group, Input, Label, NumberField } from 'react-aria-components'\n\nconst InputWithStackedChevronsDemo = () => {\n return (\n <NumberField defaultValue={1024} minValue={0} className='w-full max-w-xs space-y-2'>\n <Label className='flex items-center gap-2 text-sm leading-none font-medium select-none'>\n Input with stacked chevrons\n </Label>\n <Group className='dark:bg-input/30 border-input data-focus-within:border-ring data-focus-within:ring-ring/50 data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive relative inline-flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-focus-within:ring-[3px] md:text-sm'>\n <Input className='selection:bg-primary selection:text-primary-foreground w-full grow px-3 py-2 text-center tabular-nums outline-none' />\n <div className='flex h-[calc(100%+2px)] flex-col'>\n <Button\n slot='increment'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px flex h-1/2 w-6 flex-1 items-center justify-center border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <ChevronUpIcon className='size-3' />\n <span className='sr-only'>Increment</span>\n </Button>\n <Button\n slot='decrement'\n className='border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground -me-px -mt-px flex h-1/2 w-6 flex-1 items-center justify-center border text-sm transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50'\n >\n <ChevronDownIcon className='size-3' />\n <span className='sr-only'>Decrement</span>\n </Button>\n </div>\n </Group>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://react-spectrum.adobe.com/react-aria/NumberField.html'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Aria\n </a>\n </p>\n </NumberField>\n )\n}\n\nexport default InputWithStackedChevronsDemo\n","'use client'\n\nimport { useId, useMemo, useState } from 'react'\n\nimport { CheckIcon, EyeIcon, EyeOffIcon, XIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nimport { cn } from '@/lib/utils'\n\nconst requirements = [\n { regex: /.{12,}/, text: 'At least 12 characters' },\n { regex: /[a-z]/, text: 'At least 1 lowercase letter' },\n { regex: /[A-Z]/, text: 'At least 1 uppercase letter' },\n { regex: /[0-9]/, text: 'At least 1 number' },\n {\n regex: /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>/?]/,\n text: 'At least 1 special character'\n }\n]\n\nconst InputPasswordStrengthDemo = () => {\n const [password, setPassword] = useState('')\n const [isVisible, setIsVisible] = useState(false)\n\n const id = useId()\n\n const toggleVisibility = () => setIsVisible(prevState => !prevState)\n\n const strength = requirements.map(req => ({\n met: req.regex.test(password),\n text: req.text\n }))\n\n const strengthScore = useMemo(() => {\n return strength.filter(req => req.met).length\n }, [strength])\n\n const getColor = (score: number) => {\n if (score === 0) return 'bg-border'\n if (score <= 1) return 'bg-destructive'\n if (score <= 2) return 'bg-orange-500 '\n if (score <= 3) return 'bg-amber-500'\n if (score === 4) return 'bg-yellow-400'\n\n return 'bg-green-500'\n }\n\n const getText = (score: number) => {\n if (score === 0) return 'Enter a password'\n if (score <= 2) return 'Weak password'\n if (score <= 3) return 'Medium password'\n if (score === 4) return 'Strong password'\n\n return 'Very strong password'\n }\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with password strength</Label>\n <div className='relative mb-3'>\n <Input\n id={id}\n type={isVisible ? 'text' : 'password'}\n placeholder='Password'\n value={password}\n onChange={e => setPassword(e.target.value)}\n className='pr-9'\n />\n <Button\n variant='ghost'\n size='icon'\n onClick={toggleVisibility}\n className='text-muted-foreground focus-visible:ring-ring/50 absolute inset-y-0 right-0 rounded-l-none hover:bg-transparent'\n >\n {isVisible ? <EyeOffIcon /> : <EyeIcon />}\n <span className='sr-only'>{isVisible ? 'Hide password' : 'Show password'}</span>\n </Button>\n </div>\n\n <div className='mb-4 flex h-1 w-full gap-1'>\n {Array.from({ length: 5 }).map((_, index) => (\n <span\n key={index}\n className={cn(\n 'h-full flex-1 rounded-full transition-all duration-500 ease-out',\n index < strengthScore ? getColor(strengthScore) : 'bg-border'\n )}\n />\n ))}\n </div>\n\n <p className='text-foreground text-sm font-medium'>{getText(strengthScore)}. Must contain:</p>\n\n <ul className='mb-4 space-y-1.5'>\n {strength.map((req, index) => (\n <li key={index} className='flex items-center gap-2'>\n {req.met ? (\n <CheckIcon className='size-4 text-green-600 dark:text-green-400' />\n ) : (\n <XIcon className='text-muted-foreground size-4' />\n )}\n <span className={cn('text-xs', req.met ? 'text-green-600 dark:text-green-400' : 'text-muted-foreground')}>\n {req.text}\n <span className='sr-only'>{req.met ? ' - Requirement met' : ' - Requirement not met'}</span>\n </span>\n </li>\n ))}\n </ul>\n\n <p className='text-muted-foreground text-xs'>\n Inspired by{' '}\n <a\n className='hover:text-foreground underline'\n href='https://flyonui.com/docs/advanced-forms/strong-password/#indicator-and-hints'\n target='_blank'\n rel='noopener noreferrer'\n >\n FlyonUI\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputPasswordStrengthDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { withMask } from 'use-mask-input'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputWithMaskDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input with mask</Label>\n <Input\n id={id}\n type='text'\n placeholder='AB12 CDE'\n ref={withMask('AA99 AAA', {\n placeholder: '_',\n showMaskOnHover: false\n })}\n />\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/eduardoborges/use-mask-input'\n target='_blank'\n rel='noopener noreferrer'\n >\n use-mask-input\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputWithMaskDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { withMask } from 'use-mask-input'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputTimeDemo = () => {\n const id = useId()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Input time</Label>\n <Input\n id={id}\n type='text'\n placeholder='00:00:00'\n ref={withMask('datetime', {\n placeholder: '_',\n inputFormat: 'HH:MM:ss',\n outputFormat: 'HH:MM:ss',\n showMaskOnHover: false\n })}\n />\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/eduardoborges/use-mask-input'\n target='_blank'\n rel='noopener noreferrer'\n >\n use-mask-input\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputTimeDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { CreditCardIcon } from 'lucide-react'\n\nimport { usePaymentInputs } from 'react-payment-inputs'\nimport images, { type CardImages } from 'react-payment-inputs/images'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputCardNumberDemo = () => {\n const id = useId()\n const { meta, getCardNumberProps, getCardImageProps } = usePaymentInputs()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Card number</Label>\n <div className='relative'>\n <Input {...getCardNumberProps()} id={id} className='peer pr-11' />\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n {meta.cardType ? (\n <svg\n className='w-6 overflow-hidden'\n {...getCardImageProps({\n images: images as unknown as CardImages\n })}\n />\n ) : (\n <CreditCardIcon className='size-4' />\n )}\n <span className='sr-only'>Card Provider</span>\n </div>\n </div>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/medipass/react-payment-inputs'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Payment Inputs\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputCardNumberDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { usePaymentInputs } from 'react-payment-inputs'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputExpiryDateDemo = () => {\n const id = useId()\n const { getExpiryDateProps } = usePaymentInputs()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>Expiry date</Label>\n <Input {...getExpiryDateProps()} id={id} />\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/medipass/react-payment-inputs'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Payment Inputs\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputExpiryDateDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { usePaymentInputs } from 'react-payment-inputs'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputCVCCodeDemo = () => {\n const id = useId()\n const { getCVCProps } = usePaymentInputs()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label htmlFor={id}>CVC code</Label>\n <Input {...getCVCProps()} id={id} />\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/medipass/react-payment-inputs'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Payment Inputs\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputCVCCodeDemo\n","'use client'\n\nimport { useId } from 'react'\n\nimport { CreditCardIcon } from 'lucide-react'\n\nimport { usePaymentInputs } from 'react-payment-inputs'\nimport images, { type CardImages } from 'react-payment-inputs/images'\n\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\n\nconst InputCardDetailsDemo = () => {\n const id = useId()\n const { meta, getCardNumberProps, getExpiryDateProps, getCVCProps, getCardImageProps } = usePaymentInputs()\n\n return (\n <div className='w-full max-w-xs space-y-2'>\n <Label>Card details</Label>\n <div>\n <div className='relative focus-within:z-1'>\n <Input {...getCardNumberProps()} id={`number-${id}`} className='peer rounded-b-none pr-9 shadow-none' />\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n {meta.cardType ? (\n <svg\n className='w-6 overflow-hidden'\n {...getCardImageProps({\n images: images as unknown as CardImages\n })}\n />\n ) : (\n <CreditCardIcon className='size-4' />\n )}\n <span className='sr-only'>Card Provider</span>\n </div>\n </div>\n <div className='-mt-px flex'>\n <div className='min-w-0 flex-1 focus-within:z-1'>\n <Input\n {...getExpiryDateProps()}\n id={`expiry-${id}`}\n className='rounded-t-none rounded-r-none shadow-none'\n />\n </div>\n <div className='-ms-px min-w-0 flex-1 focus-within:z-1'>\n <Input {...getCVCProps()} id={`cvc-${id}`} className='rounded-t-none rounded-l-none shadow-none' />\n </div>\n </div>\n </div>\n <p className='text-muted-foreground text-xs'>\n Built with{' '}\n <a\n className='hover:text-foreground underline'\n href='https://github.com/medipass/react-payment-inputs'\n target='_blank'\n rel='noopener noreferrer'\n >\n React Payment Inputs\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputCardDetailsDemo\n","import { useId } from 'react'\n\nimport { REGEXP_ONLY_DIGITS } from 'input-otp'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPNumberDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP number</Label>\n <InputOTP id={id} maxLength={4} pattern={REGEXP_ONLY_DIGITS}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPNumberDemo\n","import * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Minus } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center gap-2\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-slot\"\n className={cn(\n \"relative flex h-9 w-9 items-center justify-center border border-input rounded-md text-sm shadow-sm transition-all\",\n isActive && \"z-10 ring-1 ring-ring\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import { useId } from 'react'\n\nimport { REGEXP_ONLY_DIGITS_AND_CHARS } from 'input-otp'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPAlphanumericDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP Alphanumeric</Label>\n <InputOTP id={id} maxLength={4} pattern={REGEXP_ONLY_DIGITS_AND_CHARS}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPAlphanumericDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPWithResendDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP with resend</Label>\n <InputOTP id={id} maxLength={4}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n <p className='text-muted-foreground text-xs'>\n Didn't get the code?{' '}\n <a href='#' className='text-primary hover:underline'>\n Resend code\n </a>\n </p>\n </div>\n )\n}\n\nexport default InputOTPWithResendDemo\n","import { useEffect, useId, useState } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPWithResendTimerDemo = () => {\n const [timeLeft, setTimeLeft] = useState(30)\n const id = useId()\n\n useEffect(() => {\n if (timeLeft > 0) {\n const timer = setTimeout(() => {\n setTimeLeft(prev => prev - 1)\n }, 1000)\n\n return () => clearTimeout(timer)\n }\n }, [timeLeft])\n\n const formatTime = (seconds: number) => {\n const mins = Math.floor(seconds / 60)\n const secs = seconds % 60\n\n return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`\n }\n\n const handleResend = () => {\n setTimeLeft(60)\n }\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP with resend timer</Label>\n <InputOTP id={id} maxLength={4}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n <p className='text-muted-foreground text-xs'>\n {timeLeft > 0 ? (\n `Resend available in ${formatTime(timeLeft)}`\n ) : (\n <a\n href='#'\n onClick={e => {\n e.preventDefault()\n handleResend()\n }}\n className='hover:text-primary underline'\n >\n Resend code\n </a>\n )}\n </p>\n </div>\n )\n}\n\nexport default InputOTPWithResendTimerDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPOutlinedDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP outlined</Label>\n <InputOTP id={id} maxLength={4}>\n <InputOTPGroup className='gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border'>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPOutlinedDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPFilledDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP filled</Label>\n <InputOTP id={id} maxLength={4}>\n <InputOTPGroup className='*:data-[slot=input-otp-slot]:bg-muted gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border *:data-[slot=input-otp-slot]:border-transparent *:data-[slot=input-otp-slot]:shadow-none'>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPFilledDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPMinimalDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP minimal</Label>\n <InputOTP id={id} maxLength={4}>\n <InputOTPGroup className='gap-2 *:data-[active=true]:ring-0 *:data-[slot=input-otp-slot]:rounded-none *:data-[slot=input-otp-slot]:border-0 *:data-[slot=input-otp-slot]:border-b-2 *:data-[slot=input-otp-slot]:shadow-none *:dark:data-[slot=input-otp-slot]:bg-transparent'>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPMinimalDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPGroupedDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP Grouped</Label>\n <InputOTP id={id} maxLength={6}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPGroupedDemo\n","import { useId } from 'react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPOutlinedGroupedDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP Outline Grouped</Label>\n <InputOTP id={id} maxLength={6}>\n <InputOTPGroup className='gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border'>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup className='gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border'>\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPOutlinedGroupedDemo\n","import { useId } from 'react'\n\nimport { DotIcon } from 'lucide-react'\n\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/input-otp'\nimport { Label } from '@/components/label'\n\nconst InputOTPCustomSeparatorDemo = () => {\n const id = useId()\n\n return (\n <div className='space-y-3'>\n <Label htmlFor={id}>Input OTP Custom Separator</Label>\n <InputOTP id={id} maxLength={6}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n </InputOTPGroup>\n <div role='separator' className='text-muted-foreground'>\n <DotIcon />\n </div>\n <InputOTPGroup>\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n )\n}\n\nexport default InputOTPCustomSeparatorDemo\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ButtonProps, buttonVariants } from \"@/components/button\"\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n)\nPagination.displayName = \"Pagination\"\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n))\nPaginationContent.displayName = \"PaginationContent\"\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n))\nPaginationItem.displayName = \"PaginationItem\"\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">\n\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n)\nPaginationLink.displayName = \"PaginationLink\"\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 pl-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = \"PaginationPrevious\"\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 pr-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = \"PaginationNext\"\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst PaginationDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' isActive>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationDemo\n","import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Pagination, PaginationContent, PaginationItem, PaginationLink } from '@/components/pagination'\n\nconst PaginationWithIconDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to previous page' size='icon'>\n <ChevronLeftIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' isActive>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to next page' size='icon'>\n <ChevronRightIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithIconDemo\n","import { buttonVariants } from '@/components/button'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nimport { cn } from '@/lib/utils'\n\nconst PaginationWithPrimaryButtonDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink\n href='#'\n isActive\n className={cn(\n buttonVariants({\n variant: 'default',\n size: 'icon'\n }),\n 'hover:!text-primary-foreground dark:bg-primary dark:text-primary-foreground dark:hover:text-primary-foreground dark:hover:bg-primary/90 !shadow-none dark:border-transparent'\n )}\n >\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithPrimaryButtonDemo\n","import { buttonVariants } from '@/components/button'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nimport { cn } from '@/lib/utils'\n\nconst PaginationWithSecondaryButtonDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink\n href='#'\n isActive\n className={cn(\n 'hover:!text-secondary-foreground !border-none !shadow-none',\n buttonVariants({\n variant: 'secondary',\n size: 'icon'\n })\n )}\n >\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithSecondaryButtonDemo\n","import { buttonVariants } from '@/components/button'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nimport { cn } from '@/lib/utils'\n\nconst pages = [1, 2, 3]\n\nconst BorderedPaginationDemo = () => {\n return (\n <Pagination>\n <PaginationContent className='gap-0 divide-x overflow-hidden rounded-lg border'>\n <PaginationItem>\n <PaginationPrevious href='#' className='rounded-none' />\n </PaginationItem>\n {pages.map(page => {\n const isActive = page === 2\n\n return (\n <PaginationItem key={page}>\n <PaginationLink\n href={`#${page}`}\n className={cn(\n {\n [buttonVariants({\n variant: 'default',\n className:\n 'hover:!text-primary-foreground dark:bg-primary dark:text-primary-foreground dark:hover:text-primary-foreground dark:hover:bg-primary/90 dark:border-transparent'\n })]: isActive\n },\n 'rounded-none border-none'\n )}\n isActive={isActive}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n )\n })}\n <PaginationItem>\n <PaginationNext href='#' className='rounded-none' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default BorderedPaginationDemo\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst pages = [1, 2, 3]\n\nconst PaginationWithRoundedButton = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' className='rounded-full' />\n </PaginationItem>\n {pages.map(page => (\n <PaginationItem key={page}>\n <PaginationLink href={`#${page}`} isActive={page === 2} className='rounded-full'>\n {page}\n </PaginationLink>\n </PaginationItem>\n ))}\n <PaginationItem>\n <PaginationNext href='#' className='rounded-full' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithRoundedButton\n","import { ChevronFirstIcon, ChevronLastIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Pagination, PaginationContent, PaginationItem, PaginationLink } from '@/components/pagination'\n\nconst pages = [1, 2, 3]\n\nconst PaginationWithFirstAndLastPageButtonNavigation = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to first page' size='icon' className='rounded-full'>\n <ChevronFirstIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to previous page' size='icon' className='rounded-full'>\n <ChevronLeftIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n {pages.map(page => (\n <PaginationItem key={page}>\n <PaginationLink href={`#${page}`} isActive={page === 2} className='rounded-full'>\n {page}\n </PaginationLink>\n </PaginationItem>\n ))}\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to next page' size='icon' className='rounded-full'>\n <ChevronRightIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to last page' size='icon' className='rounded-full'>\n <ChevronLastIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithFirstAndLastPageButtonNavigation\n","import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/tooltip'\n\nconst PaginationWithEllipsisDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' isActive>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <Tooltip>\n <TooltipTrigger asChild>\n <PaginationEllipsis />\n </TooltipTrigger>\n <TooltipContent>\n <p>8 other pages</p>\n </TooltipContent>\n </Tooltip>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithEllipsisDemo\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst PaginationUnderlineDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href='#' className='rounded-none' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink\n href='#'\n isActive\n className='border-primary! rounded-none border-0 border-b-2 bg-transparent! !shadow-none'\n >\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' className='rounded-none'>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' className='rounded-none'>\n 3\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' className='rounded-none' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationUnderlineDemo\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst CardPaginationDemo = () => {\n return (\n <Pagination>\n <PaginationContent className='rounded-md border p-1 shadow-xs'>\n <PaginationItem>\n <PaginationPrevious href='#' />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' isActive>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#'>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default CardPaginationDemo\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst NumberlessPaginationDemo = () => {\n return (\n <Pagination>\n <PaginationContent className='w-full justify-between'>\n <PaginationItem>\n <PaginationPrevious href='#' className='border' />\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' className='border' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default NumberlessPaginationDemo\n","import {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationNext,\n PaginationPrevious\n} from '@/components/pagination'\n\nconst NumberlessPaginationWithTextDemo = () => {\n return (\n <Pagination>\n <PaginationContent className='w-full justify-between'>\n <PaginationItem>\n <PaginationPrevious href='#' className='border' />\n </PaginationItem>\n <PaginationItem>\n <p className='text-muted-foreground text-sm' aria-live='polite'>\n Page <span className='text-foreground'>2</span> of <span className='text-foreground'>5</span>\n </p>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href='#' className='border' />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default NumberlessPaginationWithTextDemo\n","import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Pagination, PaginationContent, PaginationItem, PaginationLink } from '@/components/pagination'\n\nconst MiniPagination = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to previous page' size='icon'>\n <ChevronLeftIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <p className='text-muted-foreground text-sm' aria-live='polite'>\n Page <span className='text-foreground'>2</span> of <span className='text-foreground'>5</span>\n </p>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to next page' size='icon'>\n <ChevronRightIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default MiniPagination\n","import { ChevronFirstIcon, ChevronLastIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Pagination, PaginationContent, PaginationItem, PaginationLink } from '@/components/pagination'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\n\nconst PaginationWithSelectDemo = () => {\n return (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to first page' size='icon' className='rounded-full'>\n <ChevronFirstIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to previous page' size='icon' className='rounded-full'>\n <ChevronLeftIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n\n <PaginationItem>\n <Select defaultValue={String(1)} aria-label='Select page'>\n <SelectTrigger id='select-page' className='w-fit whitespace-nowrap' aria-label='Select page'>\n <SelectValue placeholder='Select page' />\n </SelectTrigger>\n <SelectContent>\n {Array.from({ length: 10 }, (_, i) => i + 1).map(page => (\n <SelectItem key={page} value={String(page)}>\n Page {page}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </PaginationItem>\n\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to next page' size='icon' className='rounded-full'>\n <ChevronRightIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to last page' size='icon' className='rounded-full'>\n <ChevronLastIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n}\n\nexport default PaginationWithSelectDemo\n","import { useId } from 'react'\n\nimport { ChevronFirstIcon, ChevronLastIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\n\nimport { Label } from '@/components/label'\nimport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink\n} from '@/components/pagination'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/tooltip'\n\nconst pages = [1, 2, 3]\n\nconst TablePaginationDemo = () => {\n const id = useId()\n\n return (\n <div className='flex w-full flex-wrap items-center justify-between gap-6 max-sm:justify-center'>\n <div className='flex shrink-0 items-center gap-3'>\n <Label htmlFor={id}>Rows per page</Label>\n <Select defaultValue='10'>\n <SelectTrigger id={id} className='w-fit whitespace-nowrap'>\n <SelectValue placeholder='Select number of results' />\n </SelectTrigger>\n <SelectContent className='[&_*[role=option]]:pr-8 [&_*[role=option]]:pl-2 [&_*[role=option]>span]:right-2 [&_*[role=option]>span]:left-auto'>\n <SelectItem value='10'>10</SelectItem>\n <SelectItem value='25'>25</SelectItem>\n <SelectItem value='50'>50</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className='text-muted-foreground flex grow items-center justify-end whitespace-nowrap max-sm:justify-center'>\n <p className='text-muted-foreground text-sm whitespace-nowrap' aria-live='polite'>\n Showing <span className='text-foreground'>1</span> to <span className='text-foreground'>10</span> of{' '}\n <span className='text-foreground'>100</span> products\n </p>\n </div>\n <Pagination className='w-fit max-sm:mx-0'>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to first page' size='icon' className='rounded-full'>\n <ChevronFirstIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to previous page' size='icon' className='rounded-full'>\n <ChevronLeftIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n {pages.map(page => (\n <PaginationItem key={page}>\n <PaginationLink href={`#${page}`} isActive={page === 2} className='rounded-full'>\n {page}\n </PaginationLink>\n </PaginationItem>\n ))}\n <PaginationItem>\n <Tooltip>\n <TooltipTrigger asChild>\n <PaginationEllipsis />\n </TooltipTrigger>\n <TooltipContent>\n <p>2 other pages</p>\n </TooltipContent>\n </Tooltip>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to next page' size='icon' className='rounded-full'>\n <ChevronRightIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href='#' aria-label='Go to last page' size='icon' className='rounded-full'>\n <ChevronLastIcon className='size-4' />\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </div>\n )\n}\n\nexport default TablePaginationDemo\n","import { StarIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Progress } from '@/components/progress'\nimport { Separator } from '@/components/separator'\n\nconst ratings = {\n 1: 0,\n 2: 15,\n 3: 30,\n 4: 30,\n 5: 225\n}\n\nconst PopoverRatingsDemo = () => {\n const totalReviews = Object.values(ratings).reduce((acc, count) => acc + count, 0)\n const totalRating = Object.entries(ratings).reduce((acc, [star, count]) => acc + Number(star) * count, 0)\n const averageRating = Number((totalRating / totalReviews || 0).toFixed(2))\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <StarIcon />\n <span className='sr-only'>Ratings & reviews</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-4'>\n <div className='space-y-1'>\n <div className='flex items-center gap-1'>\n <span className='text-xl font-semibold'>{averageRating}</span>\n <StarIcon className='size-5 fill-amber-500 stroke-amber-500 dark:fill-amber-400 dark:stroke-amber-400' />\n </div>\n <div className='text-sm font-medium'>Total {totalReviews} reviews</div>\n <p className='text-muted-foreground text-sm'>All reviews are from genuine customers.</p>\n </div>\n <div className='grid'>\n <div className='flex items-center justify-between'>\n <Badge variant='secondary' className='rounded-sm'>\n +6 this week\n </Badge>\n <a href='#' className='text-sm hover:underline'>\n See all\n </a>\n </div>\n <Separator className='my-2' />\n <ul className='space-y-2'>\n {Object.entries(ratings)\n .reverse()\n .map(([star, count]) => (\n <li key={star} className='flex items-center gap-2'>\n <span className='shrink-0 text-sm'>{star} star</span>\n <Progress value={(count / totalReviews) * 100} className='w-full' />\n <span className='shrink-0 text-sm'>{count.toString()}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverRatingsDemo\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-primary/20\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import { PencilRulerIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst PopoverDimensionsDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <PencilRulerIcon />\n <span className='sr-only'>Dimensions</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-4'>\n <div className='space-y-2'>\n <h4 className='leading-none font-medium'>Dimensions</h4>\n <p className='text-muted-foreground text-sm'>Set the dimensions for the layer.</p>\n </div>\n <div className='grid gap-2'>\n <div className='grid grid-cols-3 items-center gap-4'>\n <Label htmlFor='width'>Width</Label>\n <Input id='width' defaultValue='100%' className='col-span-2 h-8' />\n </div>\n <div className='grid grid-cols-3 items-center gap-4'>\n <Label htmlFor='maxWidth'>Max. width</Label>\n <Input id='maxWidth' defaultValue='300px' className='col-span-2 h-8' />\n </div>\n <div className='grid grid-cols-3 items-center gap-4'>\n <Label htmlFor='height'>Height</Label>\n <Input id='height' defaultValue='25px' className='col-span-2 h-8' />\n </div>\n <div className='grid grid-cols-3 items-center gap-4'>\n <Label htmlFor='maxHeight'>Max. height</Label>\n <Input id='maxHeight' defaultValue='none' className='col-span-2 h-8' />\n </div>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverDimensionsDemo\n","import { DollarSignIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst PopoverPricingDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <DollarSignIcon />\n <span className='sr-only'>Pricing details</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-2.5'>\n <div className='flex items-center justify-between'>\n <span className='text-lg font-semibold'>Enterprise Plan</span>\n <span className='text-sm font-medium'>$49.99/month</span>\n </div>\n <p className='text-sm'>\n Get unlimited access to all features including AI-powered analytics, custom branding, priority support, and\n advanced team collaboration tools.\n </p>\n <div className='flex items-center gap-2'>\n <Badge variant='destructive' className='rounded-sm px-1.5 py-px text-xs'>\n Limited Offer\n </Badge>\n <span className='text-muted-foreground text-xs'>20% discount on annual plan</span>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverPricingDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Volume2Icon, VolumeXIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Slider } from '@/components/slider'\n\nconst PopoverVolumeDemo = () => {\n const [value, setValue] = useState([45])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <Volume2Icon />\n <span className='sr-only'>Volume control</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='space-y-3'>\n <div className='flex items-center justify-between gap-2'>\n <Label className='leading-5'>Volume</Label>\n <output className='text-sm font-medium tabular-nums'>{value[0]}</output>\n </div>\n <div className='flex items-center gap-2'>\n <VolumeXIcon className='size-4 shrink-0 opacity-60' />\n <Slider value={value} onValueChange={setValue} aria-label='Volume slider' />\n <Volume2Icon className='size-4 shrink-0 opacity-60' />\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverVolumeDemo\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","import { InfoIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst PopoverAboutDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <InfoIcon />\n <span className='sr-only'>About Shadcn Studio</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-4'>\n <div className='space-y-1.5 text-center'>\n <div className='text-lg font-semibold'>About Shadcn Studio</div>\n <p className='text-muted-foreground text-sm'>\n Welcome to Shadcn Studio — your toolkit for building sleek, customizable UI components with ease!\n </p>\n </div>\n <Button size='sm' asChild>\n <a\n href='https://shadcnstudio.com/docs/getting-started/introduction'\n target='_blank'\n rel='noopener noreferrer'\n >\n Learn More\n </a>\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverAboutDemo\n","import { useEffect, useState } from 'react'\n\nimport { DownloadIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Progress } from '@/components/progress'\n\nimport { cn } from '@/lib/utils'\n\nconst PopoverDownloadDemo = () => {\n const [isPaused, setIsPaused] = useState(false)\n const [isCanceled, setIsCanceled] = useState(false)\n const [value, setValue] = useState(0)\n const [open, setOpen] = useState(false)\n const [hasStarted, setHasStarted] = useState(false)\n\n useEffect(() => {\n if (open && !hasStarted && !isCanceled) {\n setHasStarted(true)\n }\n }, [open, hasStarted, isCanceled])\n\n useEffect(() => {\n if (!hasStarted || isPaused || isCanceled) return\n\n const timer = setInterval(() => {\n setValue(prev => {\n if (prev < 100) {\n return Math.min(100, prev + Math.floor(Math.random() * 10) + 1)\n } else {\n clearInterval(timer)\n\n return prev\n }\n })\n }, 500)\n\n return () => {\n clearInterval(timer)\n }\n }, [open, isPaused, isCanceled, hasStarted])\n\n const getText = () => {\n if (isCanceled) return 'Download Canceled'\n if (isPaused) return 'Download Paused'\n if (value === 100) return 'Download Complete'\n\n return 'Downloading File'\n }\n\n return (\n <Popover onOpenChange={setOpen} open={open}>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <DownloadIcon />\n <span className='sr-only'>Download File</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-4'>\n <div className='flex items-center gap-2'>\n <div className='relative flex size-6 items-center justify-center'>\n <span\n className={cn('border-primary absolute inset-0 rounded-full border border-dashed', {\n 'animate-spin [animation-duration:3s]': value < 100 && !isPaused && !isCanceled\n })}\n />\n <DownloadIcon className='z-1 size-3' />\n </div>\n <span className='flex-1 text-sm font-medium'>{getText()}</span>\n {!isCanceled && <span className='text-sm font-semibold'>{`${value}%`}</span>}\n </div>\n <Progress value={value} className='w-full' />\n <div className='grid grid-cols-2 gap-2'>\n <Button size='sm' onClick={() => setIsPaused(!isPaused)} disabled={value === 100 || isCanceled}>\n {isPaused ? 'Resume' : 'Pause'}\n </Button>\n <Button\n variant='secondary'\n size='sm'\n onClick={() => {\n if (value < 100) {\n setValue(0)\n setIsCanceled(true)\n setHasStarted(false)\n }\n\n setOpen(false)\n }}\n >\n Cancel\n </Button>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverDownloadDemo\n","import { FileWarningIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst PopoverDeleteFileDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <FileWarningIcon />\n <span className='sr-only'>Delete File</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='flex flex-col items-center gap-4'>\n <div className='flex aspect-square size-12 items-center justify-center rounded-full bg-red-500/10'>\n <FileWarningIcon className='text-destructive size-6' />\n </div>\n <div className='space-y-2 text-center'>\n <div className='font-semibold text-balance'>Are you sure you want to delete this file?</div>\n <p className='text-muted-foreground text-sm'>\n Deleting this file can affect your project and other files connection so keep in mind before making\n decision\n </p>\n </div>\n <div className='grid w-full grid-cols-2 gap-2'>\n <Button variant='secondary' size='sm'>\n Cancel\n </Button>\n <Button variant='destructive' size='sm'>\n Delete File\n </Button>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverDeleteFileDemo\n","import { MessageCircleIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Textarea } from '@/components/textarea'\n\nconst PopoverFeedbackDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <MessageCircleIcon />\n <span className='sr-only'>Feedback</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-2'>\n <div className='font-medium'>Feedback</div>\n <Textarea placeholder='Type your message here.' className='max-h-56' />\n <div className='grid w-full grid-cols-2 gap-2'>\n <Button size='sm'>Send</Button>\n <Button variant='secondary' size='sm'>\n Cancel\n </Button>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverFeedbackDemo\n","import { useState } from 'react'\n\nimport { FunnelPlusIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Slider } from '@/components/slider'\n\nconst filters = ['Most liked', 'Highest reviewed', 'Newest', 'Most popular']\n\nconst PopoverFilterDemo = () => {\n const [selected, setSelected] = useState(['Most liked', 'Newest'])\n const [price, setPrice] = useState([450])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <FunnelPlusIcon />\n <span className='sr-only'>Filter</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className='grid gap-4'>\n <div className='flex items-center justify-between gap-2'>\n <span className='font-medium'>Filter</span>\n <Button\n variant='secondary'\n className='h-7 rounded-full px-2 py-1 text-xs'\n onClick={() => {\n setSelected(['Most liked', 'Newest'])\n setPrice([450])\n }}\n >\n Reset all\n </Button>\n </div>\n <div className='flex flex-col gap-2'>\n {filters.map((label, index) => (\n <div key={index} className='flex items-center gap-2'>\n <Checkbox\n id={`filter-${index + 1}`}\n checked={selected.includes(label)}\n onCheckedChange={checked =>\n setSelected(checked ? [...selected, label] : selected.filter(item => item !== label))\n }\n />\n <Label htmlFor={`filter-${index + 1}`}>{label}</Label>\n </div>\n ))}\n </div>\n <div className='grid gap-3'>\n <Label>Price range</Label>\n <div className='space-y-2'>\n <Slider value={price} onValueChange={setPrice} step={50} max={1000} aria-label='Price range' />\n <span className='text-muted-foreground flex w-full items-center justify-between gap-1 text-xs font-medium'>\n <span>0</span>\n <span>500</span>\n <span>1000</span>\n </span>\n </div>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverFilterDemo\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nimport { LoaderCircleIcon, SearchIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst users = [\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n name: 'Howard Lloyd',\n fallback: 'HL',\n notifications: 3\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n name: 'Olivia Sparks',\n fallback: 'OS'\n },\n {\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n name: 'Hallie Richards',\n fallback: 'HR',\n notifications: 1\n }\n]\n\nconst useDebounce = (value: string, delay: number = 300) => {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => {\n clearTimeout(timer)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nconst PopoverSearchDemo = () => {\n const [inputValue, setInputValue] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const debouncedSearch = useDebounce(inputValue)\n const [filteredUsers, setFilteredUsers] = useState(users)\n\n // Handle loading state when input changes\n useEffect(() => {\n if (inputValue) {\n setIsLoading(true)\n } else {\n setIsLoading(false)\n }\n }, [inputValue])\n\n // Apply filtering after debounce and update loading state\n useEffect(() => {\n if (debouncedSearch.trim() === '') {\n setFilteredUsers(users)\n setIsLoading(false)\n } else {\n const searchTerm = debouncedSearch.toLowerCase()\n\n const filtered = users.filter(user => user.name.toLowerCase().includes(searchTerm))\n\n setFilteredUsers(filtered)\n setIsLoading(false)\n }\n }, [debouncedSearch])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <SearchIcon />\n <span className='sr-only'>Search users</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80'>\n <div className='grid gap-4'>\n <div className='relative'>\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 left-0 flex items-center justify-center pl-3 peer-disabled:opacity-50'>\n <SearchIcon className='size-4' />\n <span className='sr-only'>Search</span>\n </div>\n <Input\n type='search'\n placeholder='Search users'\n value={inputValue}\n onChange={e => setInputValue(e.target.value)}\n className='peer px-9 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none'\n />\n {isLoading && (\n <div className='text-muted-foreground pointer-events-none absolute inset-y-0 right-0 flex items-center justify-center pr-3 peer-disabled:opacity-50'>\n <LoaderCircleIcon className='size-4 animate-spin' />\n <span className='sr-only'>Loading...</span>\n </div>\n )}\n </div>\n <ul className='space-y-2'>\n {filteredUsers.length > 0 ? (\n filteredUsers.map((user, index) => (\n <li key={index} className='flex items-center gap-2'>\n <Avatar className='size-6'>\n <AvatarImage src={user.image} alt={user.name} />\n <AvatarFallback className='text-xs'>{user.fallback}</AvatarFallback>\n </Avatar>\n <div className='flex-1 text-sm font-medium'>{user.name}</div>\n {user.notifications && (\n <span className='text-muted-foreground text-xs'>{`${user.notifications} Notification${user.notifications > 1 ? 's' : ''}`}</span>\n )}\n </li>\n ))\n ) : (\n <li className='py-2 text-center text-sm'>No users found</li>\n )}\n </ul>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverSearchDemo\n","import { useState } from 'react'\n\nimport { BellIcon, CircleIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Separator } from '@/components/separator'\n\nconst notifications = [\n {\n id: 1,\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n message: 'Harry assigned you task of New API implementation',\n fallback: 'HL',\n time: '15 Minutes'\n },\n {\n id: 2,\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n message: 'Jerry joined team',\n fallback: 'OS',\n time: '35 Minutes'\n },\n {\n id: 3,\n image: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n message: 'Congratulate ruby for married life',\n fallback: 'HR',\n time: '3 days'\n }\n]\n\nconst PopoverNotificationsDemo = () => {\n const [readMessages, setReadMessages] = useState([3])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <BellIcon />\n <span className='sr-only'>Notifications</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-80 p-0'>\n <div className='grid'>\n <div className='flex items-center justify-between gap-2 px-4 py-2.5'>\n <span className='font-medium'>Notifications</span>\n <Button\n variant='secondary'\n className='h-7 rounded-full px-2 py-1 text-xs'\n onClick={() => setReadMessages(notifications.map(item => item.id))}\n >\n Mark as all read\n </Button>\n </div>\n <Separator className='' />\n <ul className='grid gap-4 p-2'>\n {notifications.map(item => (\n <li\n key={item.id}\n className='hover:bg-accent flex items-start gap-2 rounded-lg px-2 py-1.5'\n onClick={() => setReadMessages([...readMessages, item.id])}\n >\n <Avatar className='rounded-lg'>\n <AvatarImage src={item.image} alt={item.fallback} />\n <AvatarFallback className='rounded-lg text-xs'>{item.fallback}</AvatarFallback>\n </Avatar>\n <div className='flex-1 space-y-1'>\n <div className='text-sm font-medium'>{item.message}</div>\n <p className='text-muted-foreground text-xs'>{`${item.time} ago`}</p>\n </div>\n {!readMessages.includes(item.id) && (\n <CircleIcon className='fill-primary text-primary size-2 self-center' />\n )}\n </li>\n ))}\n </ul>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverNotificationsDemo\n","import { ChevronRightIcon, MapPinIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nconst PopoverAboutHimalayasDemo = () => {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant='outline' size='icon'>\n <MapPinIcon />\n <span className='sr-only'>About Himalayas</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className='w-85 p-0'>\n <div className='flex'>\n <div className='space-y-2 p-4'>\n <p className='font-medium'>About Himalayas</p>\n <p className='text-muted-foreground text-xs'>\n The Great Himalayan mountain ranges in the Indian sub-continent region.{' '}\n </p>\n <a\n href='https://en.wikipedia.org/wiki/Himalayas'\n target='_blank'\n rel='noopener noreferrer'\n className='flex w-fit text-xs hover:underline'\n >\n Read more\n <ChevronRightIcon className='size-4' />\n </a>\n </div>\n <img\n src='https://lp-cms-production.imgix.net/2021-01/GettyRF_450207051.jpg?height=136'\n alt='the himalayas'\n className='h-34 w-2/5 rounded-r-md object-cover'\n />\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport default PopoverAboutHimalayasDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupDemo = () => {\n return (\n <RadioGroup defaultValue='higher-secondary'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='higher-secondary' id='higher-secondary' />\n <Label htmlFor='higher-secondary'>Higher Secondary</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='graduation' id='graduation' />\n <Label htmlFor='graduation'>Graduation</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='post-graduation' id='post-graduation' />\n <Label htmlFor='post-graduation'>Post Graduation</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupHorizontalDemo = () => {\n return (\n <RadioGroup defaultValue='beginner' className='flex items-center gap-4'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='beginner' id='beginner' />\n <Label htmlFor='beginner'>Beginner</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='intermediate' id='intermediate' />\n <Label htmlFor='intermediate'>Intermediate</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='advanced' id='advanced' />\n <Label htmlFor='advanced'>Advanced</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupHorizontalDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupColorsDemo = () => {\n return (\n <RadioGroup defaultValue='destructive' className='flex items-center gap-4'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='destructive'\n id='color-destructive'\n className='border-destructive text-destructive [&_svg]:fill-destructive focus-visible:ring-destructive/20 focus-visible:border-destructive dark:focus-visible:ring-destructive/40'\n />\n <Label htmlFor='color-destructive'>Destructive</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='success'\n id='color-success'\n className='border-green-600 text-green-600 focus-visible:border-green-600 focus-visible:ring-green-600/20 dark:border-green-400 dark:text-green-400 dark:focus-visible:border-green-400 dark:focus-visible:ring-green-400/40 [&_svg]:fill-green-600 dark:[&_svg]:fill-green-400'\n />\n <Label htmlFor='color-success'>Success</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='info'\n id='color-info'\n className='border-sky-600 text-sky-600 focus-visible:border-sky-600 focus-visible:ring-sky-600/20 dark:border-sky-400 dark:text-sky-400 dark:focus-visible:border-sky-400 dark:focus-visible:ring-sky-400/40 [&_svg]:fill-sky-600 dark:[&_svg]:fill-sky-400'\n />\n <Label htmlFor='color-info'>Info</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupColorsDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupSizesDemo = () => {\n return (\n <RadioGroup defaultValue='default' className='flex items-center gap-4'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='default' id='size-default' />\n <Label htmlFor='size-default'>Default</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='medium' id='size-medium' className='size-5 [&_svg]:size-3' />\n <Label htmlFor='size-medium'>Medium</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem value='large' id='size-large' className='size-6 [&_svg]:size-3.5' />\n <Label htmlFor='size-large'>Large</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupSizesDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupDashedDemo = () => {\n return (\n <RadioGroup defaultValue='standard'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='standard'\n id='standard'\n className='border-primary focus-visible:border-primary border-dashed'\n />\n <Label htmlFor='standard'>Standard Shipping</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='express'\n id='express'\n className='border-primary focus-visible:border-primary border-dashed'\n />\n <Label htmlFor='express'>Express Delivery</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='overnight'\n id='overnight'\n className='border-primary focus-visible:border-primary border-dashed'\n />\n <Label htmlFor='overnight'>Overnight Shipping</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupDashedDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupSolidDemo = () => {\n return (\n <RadioGroup defaultValue='light'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='light'\n id='theme-light'\n className='text-primary-foreground data-[state=checked]:bg-primary! data-[state=checked]:border-primary data-[state=checked]:[&_svg]:fill-primary-foreground'\n />\n <Label htmlFor='theme-light'>Light Theme</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='dark'\n id='theme-dark'\n className='text-primary-foreground data-[state=checked]:bg-primary! data-[state=checked]:border-primary data-[state=checked]:[&_svg]:fill-primary-foreground'\n />\n <Label htmlFor='theme-dark'>Dark Theme</Label>\n </div>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n value='system'\n id='theme-system'\n className='text-primary-foreground data-[state=checked]:bg-primary! data-[state=checked]:border-primary data-[state=checked]:[&_svg]:fill-primary-foreground'\n />\n <Label htmlFor='theme-system'>System Default</Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupSolidDemo\n","import { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupDescriptionDemo = () => {\n return (\n <RadioGroup defaultValue='basic'>\n <div className='flex gap-2'>\n <RadioGroupItem value='basic' id='plan-basic' />\n <div className='grid flex-1 space-y-2'>\n <Label htmlFor='plan-basic'>Basic Plan</Label>\n <p className='text-muted-foreground text-xs'>Perfect for individuals just getting started</p>\n </div>\n </div>\n <div className='flex gap-2'>\n <RadioGroupItem value='pro' id='plan-pro' />\n <div className='grid flex-1 space-y-2'>\n <Label htmlFor='plan-pro'>Pro Plan</Label>\n <p className='text-muted-foreground text-xs'>Advanced features for power users and small teams</p>\n </div>\n </div>\n <div className='flex gap-2'>\n <RadioGroupItem value='enterprise' id='plan-enterprise' />\n <div className='grid flex-1 space-y-2'>\n <Label htmlFor='plan-enterprise'>Enterprise Plan</Label>\n <p className='text-muted-foreground text-xs'>Custom solutions for large organizations</p>\n </div>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupDescriptionDemo\n","import { useId } from 'react'\n\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupChipDemo = () => {\n const id = useId()\n\n const items = [\n { value: '1', label: 'Size: 6 (UK)' },\n { value: '2', label: 'Size: 7 (UK)', disabled: true },\n { value: '3', label: 'Size: 8 (UK)' },\n { value: '4', label: 'Size: 9 (UK)' },\n { value: '5', label: 'Size: 10 (UK)' }\n ]\n\n return (\n <fieldset className='w-full max-w-96 space-y-4'>\n <legend className='text-foreground text-sm leading-none font-medium'>Select Shoe Size: </legend>\n <RadioGroup className='grid grid-cols-3 gap-2' defaultValue='1'>\n {items.map(item => (\n <label\n key={`${id}-${item.value}`}\n className={[\n 'relative flex flex-col items-center gap-3 rounded-md border px-2 py-3 text-center',\n 'transition-[color,box-shadow,background-color,border-color] outline-none cursor-pointer',\n 'border-input hover:bg-accent hover:border-accent-foreground/20',\n 'has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary has-[[data-state=checked]]:text-primary-foreground',\n 'has-[:focus-visible]:border-ring has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring/50',\n 'has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50 has-[:disabled]:hover:bg-transparent has-[:disabled]:hover:border-input',\n ].join(' ')}\n >\n <RadioGroupItem\n id={`${id}-${item.value}`}\n value={item.value}\n className='sr-only after:absolute after:inset-0'\n aria-label={`size-radio-${item.value}`}\n disabled={item.disabled}\n />\n <p className='text-sm leading-none font-medium pointer-events-none'>{item.label}</p>\n </label>\n ))}\n </RadioGroup>\n </fieldset>\n )\n}\n\nexport default RadioGroupChipDemo\n","import { useId } from 'react'\n\nimport { Badge } from '@/components/badge'\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupListGroupDemo = () => {\n const id = useId()\n\n const items = [\n { value: '1', label: 'Pro', price: '$39/mo' },\n { value: '2', label: 'Team', price: '$69/mo' },\n { value: '3', label: 'Enterprise', price: 'Custom' }\n ]\n\n return (\n <RadioGroup className='w-full max-w-96 gap-0 -space-y-px rounded-md shadow-xs' defaultValue='2'>\n {items.map(item => (\n <div\n key={`${id}-${item.value}`}\n className='border-input has-[[data-state=checked]]:border-ring has-[[data-state=checked]]:bg-accent relative flex flex-col gap-4 border p-4 outline-none first:rounded-t-md last:rounded-b-md has-[[data-state=checked]]:z-10'\n >\n <div className='flex items-center justify-between'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n id={`${id}-${item.value}`}\n value={item.value}\n className='after:absolute after:inset-0'\n aria-label={`plan-radio-${item.value}`}\n aria-describedby={`${`${id}-${item.value}`}-price`}\n />\n <Label className='inline-flex items-center gap-2' htmlFor={`${id}-${item.value}`}>\n {item.label}\n {item.value === '2' && <Badge className='rounded-sm px-1.5 py-px text-xs'>Best Seller</Badge>}\n </Label>\n </div>\n <div id={`${`${id}-${item.value}`}-price`} className='text-muted-foreground text-xs leading-[inherit]'>\n {item.price}\n </div>\n </div>\n </div>\n ))}\n </RadioGroup>\n )\n}\n\nexport default RadioGroupListGroupDemo\n","import { useId } from 'react'\n\nimport { Badge } from '@/components/badge'\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupSplitListGroupDemo = () => {\n const id = useId()\n\n const items = [\n { value: '1', label: 'Pro', price: '$39/mo' },\n { value: '2', label: 'Team', price: '$69/mo' },\n { value: '3', label: 'Enterprise', price: 'Custom' }\n ]\n\n return (\n <RadioGroup className='w-full max-w-96 gap-0 space-y-2 rounded-md *:rounded-full' defaultValue='2'>\n {items.map(item => (\n <div\n key={`${id}-${item.value}`}\n className='border-input has-[[data-state=checked]]:border-ring has-[[data-state=checked]]:bg-accent relative flex flex-col gap-4 border p-4 outline-none has-[[data-state=checked]]:z-10'\n >\n <div className='flex items-center justify-between'>\n <div className='flex items-center gap-2'>\n <RadioGroupItem\n id={`${id}-${item.value}`}\n value={item.value}\n aria-label={`plan-radio-${item.value}`}\n className='after:absolute after:inset-0'\n aria-describedby={`${`${id}-${item.value}`}-price`}\n />\n <Label className='inline-flex items-center gap-2' htmlFor={`${id}-${item.value}`}>\n {item.label}\n {item.value === '2' && (\n <Badge\n variant='outline'\n className='rounded-sm border-green-500 bg-green-500/10 px-1.5 py-px text-xs text-green-500'\n >\n Best Seller\n </Badge>\n )}\n </Label>\n </div>\n <div\n id={`${`${id}-${item.value}`}-price`}\n className='text-muted-foreground text-xs leading-[inherit]'\n >\n {item.price}\n </div>\n </div>\n </div>\n ))}\n </RadioGroup>\n )\n}\n\nexport default RadioGroupSplitListGroupDemo\n","import { useId } from 'react'\n\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupCardRadioDemo = () => {\n const id = useId()\n\n return (\n <RadioGroup className='w-full max-w-96 gap-2' defaultValue='1'>\n <div className='border-input has-[[data-state=checked]]:border-ring relative flex w-full items-center gap-2 rounded-md border p-4 shadow-xs outline-none'>\n <RadioGroupItem\n value='1'\n id={`${id}-1`}\n aria-label='plan-radio-basic'\n aria-describedby={`${id}-1-description`}\n className='size-5 after:absolute after:inset-0 [&_svg]:size-3'\n />\n <div className='grid grow gap-2'>\n <Label htmlFor={`${id}-1`} className='justify-between'>\n Basic <span className='text-muted-foreground text-xs leading-[inherit] font-normal'>Free</span>\n </Label>\n <p id={`${id}-1-description`} className='text-muted-foreground text-xs'>\n Get 1 project with 1 teams members.\n </p>\n </div>\n </div>\n\n <div className='border-input has-[[data-state=checked]]:border-ring relative flex w-full items-center gap-2 rounded-md border p-4 shadow-xs outline-none'>\n <RadioGroupItem\n value='2'\n id={`${id}-2`}\n aria-describedby={`${id}-2-description`}\n className='size-5 after:absolute after:inset-0 [&_svg]:size-3'\n />\n <div className='grid grow gap-2'>\n <Label htmlFor={`${id}-2`} className='justify-between'>\n Premium <span className='text-muted-foreground text-xs leading-[inherit] font-normal'>$5.00</span>\n </Label>\n <p id={`${id}-2-description`} className='text-muted-foreground text-xs'>\n Get 5 projects with 5 team members.\n </p>\n </div>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupCardRadioDemo\n","import { useId } from 'react'\n\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupCardRadioWithBorderDemo = () => {\n const id = useId()\n\n return (\n <RadioGroup className='w-full max-w-96 gap-2' defaultValue='1'>\n <div className='border-input has-[[data-state=checked]]:border-ring has-[:focus-visible]:border-ring has-[:focus-visible]:ring-ring/50 relative w-full rounded-md border px-[18px] py-3 shadow-xs transition-[color,box-shadow] outline-none has-[:focus-visible]:ring-[3px]'>\n <RadioGroupItem\n value='1'\n id={`${id}-1`}\n className='sr-only'\n aria-label='plan-radio-basic'\n aria-describedby={`${id}-1-description`}\n />\n\n <Label htmlFor={`${id}-1`} className='text-foreground flex flex-col items-start after:absolute after:inset-0'>\n <div className='flex w-full items-center justify-between'>\n <span>Basic</span>\n <span className='text-muted-foreground text-xs leading-[inherit] font-normal'>Free</span>\n </div>\n <p id={`${id}-1-description`} className='text-muted-foreground text-xs'>\n Get 1 project with 1 teams members.\n </p>\n </Label>\n </div>\n\n <div className='border-input has-[[data-state=checked]]:border-ring has-[:focus-visible]:border-ring has-[:focus-visible]:ring-ring/50 relative w-full rounded-md border px-[18px] py-3 shadow-xs transition-[color,box-shadow] outline-none has-[:focus-visible]:ring-[3px]'>\n <RadioGroupItem\n value='2'\n id={`${id}-2`}\n className='sr-only'\n aria-label='plan-radio-premium'\n aria-describedby={`${id}-2-description`}\n />\n\n <Label htmlFor={`${id}-2`} className='text-foreground flex flex-col items-start after:absolute after:inset-0'>\n <div className='flex w-full items-center justify-between'>\n <span>Premium</span>\n <span className='text-muted-foreground text-xs leading-[inherit] font-normal'>$5.00</span>\n </div>\n <p id={`${id}-2-description`} className='text-muted-foreground text-xs'>\n Get 5 projects with 5 team members.\n </p>\n </Label>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupCardRadioWithBorderDemo\n","import { useId } from 'react'\n\nimport { UserIcon, CrownIcon } from 'lucide-react'\n\nimport { Label } from '@/components/label'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupCardVerticalRadioDemo = () => {\n const id = useId()\n\n return (\n <RadioGroup className='w-full max-w-96 justify-items-center sm:grid-cols-2' defaultValue='1'>\n <div className='border-input has-[[data-state=checked]]:border-ring relative flex w-full max-w-50 flex-col items-center gap-3 rounded-md border p-4 shadow-xs outline-none'>\n <RadioGroupItem\n value='1'\n id={`${id}-1`}\n className='order-1 size-5 after:absolute after:inset-0 [&_svg]:size-3'\n aria-describedby={`${id}-1-description`}\n aria-label='plan-radio-basic'\n />\n <div className='grid grow justify-items-center gap-2'>\n <UserIcon />\n <Label htmlFor={`${id}-1`} className='justify-center'>\n Basic\n </Label>\n <p id={`${id}-1-description`} className='text-muted-foreground text-center text-xs'>\n Get 1 project with 1 teams members.\n </p>\n </div>\n </div>\n <div className='border-input has-[[data-state=checked]]:border-ring relative flex w-full max-w-50 flex-col items-center gap-3 rounded-md border p-4 shadow-xs outline-none'>\n <RadioGroupItem\n value='2'\n id={`${id}-2`}\n className='order-1 size-5 after:absolute after:inset-0 [&_svg]:size-3'\n aria-describedby={`${id}-2-description`}\n aria-label='plan-radio-premium'\n />\n <div className='grid grow justify-items-center gap-2'>\n <CrownIcon />\n <Label htmlFor={`${id}-2`} className='justify-center'>\n Premium\n </Label>\n <p id={`${id}-2-description`} className='text-muted-foreground text-center text-xs'>\n Get 5 projects with 5 team members.\n </p>\n </div>\n </div>\n </RadioGroup>\n )\n}\n\nexport default RadioGroupCardVerticalRadioDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeDemo = () => {\n return <Badge>Default</Badge>\n}\n\nexport default BadgeDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeSecondaryDemo = () => {\n return <Badge variant='secondary'>Secondary</Badge>\n}\n\nexport default BadgeSecondaryDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeDestructiveDemo = () => {\n return <Badge variant='destructive'>Destructive</Badge>\n}\n\nexport default BadgeDestructiveDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeOutlineDemo = () => {\n return <Badge variant='outline'>Outline</Badge>\n}\n\nexport default BadgeOutlineDemo\n","const BadgeDotDemo = () => {\n return (\n <span className='inline-flex w-fit shrink-0 items-center justify-center gap-1 px-2 py-0.5 text-xs font-medium whitespace-nowrap'>\n <span className='bg-primary size-2 rounded-full' aria-hidden='true' />\n Dot Badge\n </span>\n )\n}\n\nexport default BadgeDotDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeRoundedDemo = () => {\n return <Badge className='rounded-sm'>Rounded</Badge>\n}\n\nexport default BadgeRoundedDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeNumberDemo = () => {\n return <Badge className='h-5 min-w-5 px-1 tabular-nums'>8</Badge>\n}\n\nexport default BadgeNumberDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeLargeDemo = () => {\n return <Badge className='px-3 py-1'>Large</Badge>\n}\n\nexport default BadgeLargeDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeSmallDemo = () => {\n return <Badge className='px-1.5 py-px'>Small</Badge>\n}\n\nexport default BadgeSmallDemo\n","import { StarIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgeWithIconDemo = () => {\n return (\n <Badge className='gap-1.5'>\n <StarIcon className='size-3 shrink-0' />\n With Icon\n </Badge>\n )\n}\n\nexport default BadgeWithIconDemo\n","import { ArrowRightIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgeLinkDemo = () => {\n return (\n <Badge asChild>\n <a href='#' className='inline-flex items-center gap-1.5 focus-visible:ring-ring/50 focus-visible:ring-2 focus-visible:outline-0'>\n Link <ArrowRightIcon className='size-3 shrink-0' />\n </a>\n </Badge>\n )\n}\n\nexport default BadgeLinkDemo\n","import { useState } from 'react'\n\nimport { XIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgeClosableDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n <Badge className='gap-1.5'>\n Closable\n <button\n className='focus-visible:border-ring focus-visible:ring-ring/50 text-primary-foreground/60 hover:text-primary-foreground -my-px -ms-px -me-1.5 inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[inherit] p-0 transition-[color,box-shadow] outline-none focus-visible:ring-[3px]'\n aria-label='Close'\n onClick={() => setIsActive(false)}\n >\n <XIcon className='size-3' aria-hidden='true' />\n </button>\n </Badge>\n )\n}\n\nexport default BadgeClosableDemo\n","'use client'\n\nimport { useState, useId } from 'react'\n\nimport { CheckCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\nimport { Checkbox } from '@/components/checkbox'\n\nconst BadgeSelectableDemo = () => {\n const [selected, setSelected] = useState(false)\n\n const id = useId()\n\n return (\n <Badge\n variant={selected ? 'secondary' : 'outline'}\n className='gap-1.5 has-focus-visible:border-ring/50 has-focus-visible:ring-ring/50 relative cursor-pointer rounded-sm outline-none has-focus-visible:ring-2'\n >\n <Checkbox\n id={id}\n className='peer sr-only after:absolute after:inset-0'\n checked={selected}\n onCheckedChange={checked => setSelected(!!checked)}\n />\n <CheckCircleIcon\n className='hidden size-3 text-green-600 peer-data-[state=checked]:block dark:text-green-400'\n aria-hidden='true'\n />\n <label htmlFor={id} className='cursor-pointer select-none after:absolute after:inset-0'>\n {selected ? 'Selected' : 'Selectable'}\n </label>\n </Badge>\n )\n}\n\nexport default BadgeSelectableDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeGradientDemo = () => {\n return (\n <Badge className='rounded-sm border-transparent bg-gradient-to-r from-indigo-500 to-pink-500 [background-size:105%] bg-center text-white'>\n Gradient\n </Badge>\n )\n}\n\nexport default BadgeGradientDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeGradientOutlineDemo = () => {\n return (\n <div className='flex items-center justify-center rounded-full bg-gradient-to-r from-indigo-500 to-pink-500 p-0.5'>\n <Badge className='bg-background hover:bg-background text-foreground border-none'>Gradient Outline</Badge>\n </div>\n )\n}\n\nexport default BadgeGradientOutlineDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeInProgressDemo = () => {\n return (\n <Badge className='gap-1.5 border-none bg-amber-600/10 text-amber-600 dark:bg-amber-400/10 dark:text-amber-400'>\n <span className='size-1.5 rounded-full bg-amber-600 dark:bg-amber-400' aria-hidden='true' />\n In Progress\n </Badge>\n )\n}\n\nexport default BadgeInProgressDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeBlockedDemo = () => {\n return (\n <Badge className='gap-1.5 border-none bg-destructive/10 text-destructive hover:bg-destructive/10 shadow-none'>\n <span className='size-1.5 rounded-full bg-destructive' aria-hidden='true' />\n Blocked\n </Badge>\n )\n}\n\nexport default BadgeBlockedDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeCompletedDemo = () => {\n return (\n <Badge className='gap-1.5 border-none bg-green-600/10 text-green-600 hover:bg-green-600/10 shadow-none dark:bg-green-400/10 dark:text-green-400 dark:hover:bg-green-400/10'>\n <span className='size-1.5 rounded-full bg-green-600 dark:bg-green-400' aria-hidden='true' />\n Completed\n </Badge>\n )\n}\n\nexport default BadgeCompletedDemo\n","import { AlertCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgePendingDemo = () => {\n return (\n <Badge\n variant='outline'\n className='gap-1.5 rounded-sm border-amber-600 text-amber-600 dark:border-amber-400 dark:text-amber-400 [a&]:hover:bg-amber-600/10 [a&]:hover:text-amber-600/90 dark:[a&]:hover:bg-amber-400/10 dark:[a&]:hover:text-amber-400/90'\n >\n <AlertCircleIcon className='size-3' />\n Pending\n </Badge>\n )\n}\n\nexport default BadgePendingDemo\n","import { BanIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgeFailedDemo = () => {\n return (\n <Badge\n variant='outline'\n className='gap-1.5 text-destructive [a&]:hover:bg-destructive/10 [a&]:hover:text-destructive/90 border-destructive rounded-sm'\n >\n <BanIcon className='size-3' />\n Failed\n </Badge>\n )\n}\n\nexport default BadgeFailedDemo\n","import { CheckCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/components/badge'\n\nconst BadgeSuccessfulDemo = () => {\n return (\n <Badge\n variant='outline'\n className='gap-1.5 rounded-sm border-green-600 text-green-600 dark:border-green-400 dark:text-green-400 [a&]:hover:bg-green-600/10 [a&]:hover:text-green-600/90 dark:[a&]:hover:bg-green-400/10 dark:[a&]:hover:text-green-400/90'\n >\n <CheckCircleIcon className='size-3' />\n Successful\n </Badge>\n )\n}\n\nexport default BadgeSuccessfulDemo\n","import { Badge } from '@/components/badge'\n\nconst BadgeAvatarDemo = () => {\n return (\n <Badge variant='outline' className='p-1 pr-2 gap-2'>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png'\n alt='Hallie Richards'\n className='size-6 rounded-full'\n />\n Avatar\n </Badge>\n )\n}\n\nexport default BadgeAvatarDemo\n","import { ShoppingCartIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback } from '@/components/avatar'\nimport { Badge } from '@/components/badge'\n\nconst BadgeCartDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-9 rounded-sm'>\n <AvatarFallback className='rounded-sm'>\n <ShoppingCartIcon className='size-5' />\n </AvatarFallback>\n </Avatar>\n <Badge className='absolute -top-2.5 -right-2.5 h-5 min-w-5 px-1 tabular-nums'>8</Badge>\n </div>\n )\n}\n\nexport default BadgeCartDemo\n","import { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\n\nconst BadgeStatusOnlineDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-10'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback>HR</AvatarFallback>\n </Avatar>\n <span className='border-background absolute -right-0.5 -bottom-0.5 size-3 rounded-full border-2 bg-green-600 dark:bg-green-400'>\n <span className='sr-only'>Online</span>\n </span>\n </div>\n )\n}\n\nexport default BadgeStatusOnlineDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerDemo = () => {\n return (\n <Button variant='outline' onClick={() => toast('Action completed successfully!')}>\n Default Toast\n </Button>\n )\n}\n\nexport default SonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerWithDescriptionDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast('Event is created', {\n description: 'Friday, August 15, 2025 at 9:00 AM'\n })\n }\n >\n Toast with description\n </Button>\n )\n}\n\nexport default SonnerWithDescriptionDemo\n","import { TruckIcon } from 'lucide-react'\n\nimport { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerWithIconDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast(\n <div className='flex items-center gap-2'>\n <TruckIcon className='size-5.5 shrink-0' />\n Your order has been successfully placed, and your parcel is on its way.\n </div>\n )\n }\n >\n Toast with icon\n </Button>\n )\n}\n\nexport default SonnerWithIconDemo\n","import { toast } from 'sonner'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\n\nconst SonnerWithAvatarDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast(\n <div className='flex items-center gap-2'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n Hey Henry Richer, your profile is now up to date!\n </div>\n )\n }\n >\n Toast with avatar\n </Button>\n )\n}\n\nexport default SonnerWithAvatarDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst ClosableSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n closeButton: true\n })\n }\n >\n Closable Toast\n </Button>\n )\n}\n\nexport default ClosableSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerWithActionDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n action: {\n label: 'Undo',\n onClick: () => console.log('Undo')\n }\n })\n }\n >\n Toast with action\n </Button>\n )\n}\n\nexport default SonnerWithActionDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerWithPromiseDemo = () => {\n const promise = () =>\n new Promise((resolve, reject) =>\n setTimeout(() => {\n if (Math.random() < 0.5) {\n resolve('foo')\n } else {\n reject('fox')\n }\n }, 2000)\n )\n\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.promise(promise, {\n loading: 'Loading...',\n success: 'Toast has been added successfully!',\n error: 'Oops, there was an error adding the toast.'\n })\n }\n >\n Toast with promise\n </Button>\n )\n}\n\nexport default SonnerWithPromiseDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SonnerPositionDemo = () => {\n return (\n <div className='grid grid-cols-2 gap-2'>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'top-left'\n })\n }\n >\n Top Left\n </Button>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'top-center'\n })\n }\n >\n Top Center\n </Button>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'top-right'\n })\n }\n >\n Top Right\n </Button>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'bottom-left'\n })\n }\n >\n Bottom Left\n </Button>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'bottom-center'\n })\n }\n >\n Bottom Center\n </Button>\n <Button\n variant='outline'\n onClick={() =>\n toast('Action completed successfully!', {\n position: 'bottom-right'\n })\n }\n >\n Bottom Right\n </Button>\n </div>\n )\n}\n\nexport default SonnerPositionDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SoftInfoSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.info('This is for your information, please note.', {\n style: {\n '--normal-bg': 'color-mix(in srgb, hsl(var(--info)) 10%, hsl(var(--background)))',\n '--normal-text': 'hsl(var(--info))',\n '--normal-border': 'hsl(var(--info))',\n } as React.CSSProperties\n })\n }\n >\n Soft Info Toast\n </Button>\n )\n}\n\nexport default SoftInfoSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SoftSuccessSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.success('Action completed successfully!', {\n style: {\n '--normal-bg': 'color-mix(in srgb, hsl(var(--success)) 10%, hsl(var(--background)))',\n '--normal-text': 'hsl(var(--success))',\n '--normal-border': 'hsl(var(--success))',\n } as React.CSSProperties\n })\n }\n >\n Soft Success Toast\n </Button>\n )\n}\n\nexport default SoftSuccessSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SoftWarningSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.warning('Warning: Please check the entered data.', {\n style: {\n '--normal-bg': 'color-mix(in srgb, hsl(var(--warning)) 10%, hsl(var(--background)))',\n '--normal-text': 'hsl(var(--warning))',\n '--normal-border': 'hsl(var(--warning))',\n } as React.CSSProperties\n })\n }\n >\n Soft Warning Toast\n </Button>\n )\n}\n\nexport default SoftWarningSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SoftDestructiveSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.error('Oops, there was an error processing your request.', {\n style: {\n '--normal-bg': 'color-mix(in srgb, hsl(var(--destructive)) 10%, hsl(var(--background)))',\n '--normal-text': 'hsl(var(--destructive))',\n '--normal-border': 'hsl(var(--destructive))',\n } as React.CSSProperties\n })\n }\n >\n Soft Destructive Toast\n </Button>\n )\n}\n\nexport default SoftDestructiveSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst OutlineInfoSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.info('This is for your information, please note.', {\n style: {\n '--normal-bg': 'hsl(var(--background))',\n '--normal-text': 'hsl(var(--info))',\n '--normal-border': 'hsl(var(--info))',\n } as React.CSSProperties\n })\n }\n >\n Outline Info Toast\n </Button>\n )\n}\n\nexport default OutlineInfoSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst OutlineSuccessSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.success('Action completed successfully!', {\n style: {\n '--normal-bg': 'hsl(var(--background))',\n '--normal-text': 'hsl(var(--success))',\n '--normal-border': 'hsl(var(--success))',\n } as React.CSSProperties\n })\n }\n >\n Outline Success Toast\n </Button>\n )\n}\n\nexport default OutlineSuccessSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst OutlineWarningSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.warning('Warning: Please check the entered data.', {\n style: {\n '--normal-bg': 'hsl(var(--background))',\n '--normal-text': 'hsl(var(--warning))',\n '--normal-border': 'hsl(var(--warning))',\n } as React.CSSProperties\n })\n }\n >\n Outline Warning Toast\n </Button>\n )\n}\n\nexport default OutlineWarningSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst OutlineDestructiveSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.error('Oops, there was an error processing your request.', {\n style: {\n '--normal-bg': 'hsl(var(--background))',\n '--normal-text': 'hsl(var(--destructive))',\n '--normal-border': 'hsl(var(--destructive))',\n } as React.CSSProperties\n })\n }\n >\n Outline Destructive Toast\n </Button>\n )\n}\n\nexport default OutlineDestructiveSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SolidInfoSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.info('This is for your information, please note.', {\n style: {\n '--normal-bg': 'hsl(var(--info))',\n '--normal-text': 'hsl(0 0% 100%)',\n '--normal-border': 'hsl(var(--info))',\n } as React.CSSProperties\n })\n }\n >\n Solid Info Toast\n </Button>\n )\n}\n\nexport default SolidInfoSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SolidSuccessSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.success('Action completed successfully!', {\n style: {\n '--normal-bg': 'hsl(var(--success))',\n '--normal-text': 'hsl(0 0% 100%)',\n '--normal-border': 'hsl(var(--success))',\n } as React.CSSProperties\n })\n }\n >\n Solid Success Toast\n </Button>\n )\n}\n\nexport default SolidSuccessSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SolidWarningSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.warning('Warning: Please check the entered data.', {\n style: {\n '--normal-bg': 'hsl(var(--warning))',\n '--normal-text': 'hsl(0 0% 100%)',\n '--normal-border': 'hsl(var(--warning))',\n } as React.CSSProperties\n })\n }\n >\n Solid Warning Toast\n </Button>\n )\n}\n\nexport default SolidWarningSonnerDemo\n","import { toast } from 'sonner'\n\nimport { Button } from '@/components/button'\n\nconst SolidDestructiveSonnerDemo = () => {\n return (\n <Button\n variant='outline'\n onClick={() =>\n toast.error('Oops, there was an error processing your request.', {\n style: {\n '--normal-bg': 'hsl(var(--destructive))',\n '--normal-text': 'hsl(0 0% 100%)',\n '--normal-border': 'transparent',\n } as React.CSSProperties\n })\n }\n >\n Solid Destructive Toast\n </Button>\n )\n}\n\nexport default SolidDestructiveSonnerDemo\n","import * as React from 'react';\nimport { cn } from '../lib/utils';\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(\n 'relative w-full rounded-lg border p-4 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',\n 'border-border bg-card text-card-foreground',\n className\n )}\n {...props}\n />\n )\n);\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 font-medium leading-none tracking-tight', className)}\n {...props}\n />\n));\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from 'react';\nimport { cn } from '../lib/utils';\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n )\n);\nSkeleton.displayName = 'Skeleton';\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n));\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport type ToggleProps = React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>;\n\nexport { Toggle, toggleVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst switchRootVariants = cva(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n {\n variants: {\n size: {\n default: \"h-6 w-11\",\n sm: \"h-5 w-9\",\n lg: \"h-7 w-12\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n);\n\nconst switchThumbVariants = cva(\n \"pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=unchecked]:translate-x-0\",\n {\n variants: {\n size: {\n default: \"h-5 w-5 data-[state=checked]:translate-x-6\",\n sm: \"h-4 w-4 data-[state=checked]:translate-x-5\",\n lg: \"h-6 w-6 data-[state=checked]:translate-x-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n);\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> &\n VariantProps<typeof switchRootVariants>\n>(({ className, size, ...props }, ref) => (\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(switchRootVariants({ size }), className)}\n {...props}\n >\n <SwitchPrimitive.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitive.Root>\n));\nSwitch.displayName = SwitchPrimitive.Root.displayName;\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> &\n VariantProps<typeof switchRootVariants>;\n\nexport { Switch, switchRootVariants, switchThumbVariants };\n","/**\n * Accordion – Radix-based collapsible sections.\n *\n * Layout shift: The perceived \"jump\" when toggling was caused by (1) the trigger\n * using transition-all, so layout properties could change during the chevron\n * rotation, and (2) the Storybook canvas wrapper sizing to content (width: auto).\n * Fixes: chevron uses only transition-transform; content uses overflow-hidden +\n * Radix data-state height animation (CSS variable); Storybook stories use a\n * constrained wrapper (max-w-md mx-auto) and canvas constraint CSS.\n */\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 ease-in-out\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"overflow-hidden text-sm\",\n \"transition-[height] duration-200 ease-in-out\",\n \"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n )}\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n FormProvider,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue | null>(null)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n if (!itemContext) {\n throw new Error(\"useFormField should be used within <FormItem>\")\n }\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue | null>(null)\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n )\n})\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message ?? \"\") : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\n\nconst RadioGroupFormDemo = () => {\n const FormSchema = z.object({\n selectedOption: z.string().nonempty({\n message: 'You must select an option.'\n })\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { selectedOption: '' }\n })\n\n function onSubmit(data: z.infer<typeof FormSchema>) {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Selected Option: {data.selectedOption}</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='selectedOption'\n render={({ field }) => (\n <FormItem className='space-y-3'>\n <FormLabel>Manage data sharing preferences</FormLabel>\n <FormControl>\n <RadioGroup onValueChange={field.onChange} value={field.value}>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='share data' id='share-option' />\n <FormLabel htmlFor='share-option' className='font-normal'>\n Share Data for Personalized Experience\n </FormLabel>\n </div>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='do not share' id='no-share-option' />\n <FormLabel htmlFor='no-share-option' className='font-normal'>\n Do Not Share Any Data\n </FormLabel>\n </div>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='customize' id='customize-option' />\n <FormLabel htmlFor='customize-option' className='font-normal'>\n Customize Data Sharing Preferences\n </FormLabel>\n </div>\n </RadioGroup>\n </FormControl>\n <FormDescription>Please select one of the options to proceed.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type='submit'>Update Preferences</Button>\n </form>\n </Form>\n )\n}\n\nexport default RadioGroupFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport { Checkbox } from '@/components/checkbox'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\n\nconst CheckboxFormDemo = () => {\n const FormSchema = z.object({\n acceptTerms: z.boolean().refine(val => val === true, {\n message: 'You must accept the terms and conditions.'\n })\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { acceptTerms: false }\n })\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Welcome to the community!</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='acceptTerms'\n render={({ field }) => (\n <FormItem>\n <div className='flex items-center space-x-2'>\n <FormControl>\n <Checkbox checked={field.value} onCheckedChange={field.onChange} />\n </FormControl>\n <FormLabel>Agree to Join the Community</FormLabel>\n </div>\n <FormDescription>\n By clicking 'Join Now', you accept our Community Guidelines and Privacy Policy. We're\n excited to have you on board!\n </FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Join Now</Button>\n </form>\n </Form>\n )\n}\n\nexport default CheckboxFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Switch } from '@/components/switch'\n\nconst SwitchFormDemo = () => {\n const FormSchema = z.object({\n stepTracker: z.boolean().refine(val => val === true, {\n message: 'You must enable step tracker to proceed.'\n })\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { stepTracker: false }\n })\n\n function onSubmit(data: z.infer<typeof FormSchema>) {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Step tracker is {data.stepTracker ? 'enabled' : 'disabled'} "Go! Run".</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='stepTracker'\n render={({ field }) => (\n <FormItem>\n <div className='flex items-center space-x-2'>\n <FormControl>\n <Switch checked={field.value} onCheckedChange={field.onChange} />\n </FormControl>\n <FormLabel>Enable Daily Step Tracker</FormLabel>\n </div>\n <FormDescription>Track your daily steps to help you reach your fitness goals.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Activate</Button>\n </form>\n </Form>\n )\n}\n\nexport default SwitchFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Input } from '@/components/input'\n\nconst FormSchema = z.object({\n email: z.string().min(1, 'Email is required').email({ message: 'Please enter a valid email address.' })\n})\n\nconst InputFormDemo = () => {\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { email: '' }\n })\n\n const onSubmit = () => {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Reset password link sent to your email</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='email'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Reset Your Password:</FormLabel>\n <FormControl>\n <Input placeholder='Email address' {...field} />\n </FormControl>\n <FormDescription>Enter your email address to receive a reset link.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Send Link</Button>\n </form>\n </Form>\n )\n}\n\nexport default InputFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from '@/components/input-otp'\n\nconst FormSchema = z.object({\n pin: z.string().min(6, {\n message: 'Your one-time password must be 6 characters.'\n })\n})\n\nconst InputOTPFormDemo = () => {\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n pin: ''\n }\n })\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 sm:w-100 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Your verification is complete. You can now proceed.</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='pin'\n render={({ field }) => (\n <FormItem>\n <FormLabel>One-Time Password</FormLabel>\n <FormControl>\n <InputOTP maxLength={6} {...field}>\n <InputOTPGroup className='gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border'>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup className='gap-2 *:data-[slot=input-otp-slot]:rounded-md *:data-[slot=input-otp-slot]:border'>\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n </FormControl>\n <FormDescription>Please enter the 6-digit OTP sent to your phone.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Submit</Button>\n </form>\n </Form>\n )\n}\n\nexport default InputOTPFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Textarea } from '@/components/textarea'\n\nconst TextareaFormDemo = () => {\n // Validation schema\n const FormSchema = z.object({\n message: z\n .string()\n .min(50, 'Message must be at least 50 characters long.')\n .max(500, 'Message cannot exceed 500 characters.')\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { message: '' }\n })\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 sm:w-110 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Your application is submitted. We will contact you soon.</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n {/* Textarea Field */}\n <FormField\n control={form.control}\n name='message'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Tell Us About Yourself</FormLabel>\n <FormControl>\n <Textarea placeholder=\"Why do you think you're the perfect fit for this position?\" {...field} />\n </FormControl>\n <FormDescription>\n Please include your qualifications, skills, and experiences that make you stand out.\n </FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Submit</Button>\n </form>\n </Form>\n )\n}\n\nexport default TextareaFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\n\nconst SelectFormDemo = () => {\n const FormSchema = z.object({\n email: z\n .string({\n error: 'Please select an email.'\n })\n .email()\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema)\n })\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 sm:w-110 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Your account has been recovered</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='email'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <Select onValueChange={field.onChange} defaultValue={field.value}>\n <FormControl>\n <SelectTrigger className='w-full'>\n <SelectValue placeholder='Enter your registered email' />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n <SelectItem value='m@example.com'>user1@gmail.com</SelectItem>\n <SelectItem value='m@google.com'>user007@gmail.com</SelectItem>\n <SelectItem value='m@support.com'>user69@outlook.com</SelectItem>\n </SelectContent>\n </Select>\n <FormDescription>Recover Your Account</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type='submit'>Recover</Button>\n </form>\n </Form>\n )\n}\n\nexport default SelectFormDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { CheckCheckIcon, CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList\n} from '@/components/command'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst paymentMethod = [\n { value: 'credit-card', label: 'Credit Card' },\n { value: 'paypal', label: 'PayPal' },\n { value: 'apple-pay', label: 'Apple Pay' },\n { value: 'google-pay', label: 'Google Pay' },\n { value: 'bank_transfer', label: 'Bank Transfer' },\n { value: 'bitcoin', label: 'Bitcoin' },\n { value: 'cash-on-delivery', label: 'Cash on Delivery' }\n]\n\nconst FormSchema = z.object({\n method: z.string({ error: 'Payment method is required.' })\n})\n\nconst ComboboxFormDemo = () => {\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema)\n })\n\n const [open, setOpen] = useState(false)\n const [value, setValue] = useState('')\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>You select "{value}" for payment</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-md space-y-6'>\n <FormField\n control={form.control}\n name='method'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Select your payment method</FormLabel>\n <Popover open={open} onOpenChange={setOpen}>\n <FormControl>\n <PopoverTrigger asChild>\n <Button\n variant='outline'\n role='combobox'\n aria-expanded={open}\n className='w-full max-w-xs justify-between pl-3 pr-2'\n aria-label='Payment method combobox'\n >\n {field.value ? (\n paymentMethod.find(method => method.value === field.value)?.label\n ) : (\n <span className='text-muted-foreground'>Select a payment method...</span>\n )}\n <ChevronsUpDownIcon className='opacity-50' />\n </Button>\n </PopoverTrigger>\n </FormControl>\n <PopoverContent className='w-(--radix-popper-anchor-width) p-0'>\n <Command>\n <CommandInput placeholder='Search payment method...' />\n <CommandList>\n <CommandEmpty>No payment method found.</CommandEmpty>\n <CommandGroup>\n {paymentMethod.map(method => (\n <CommandItem\n key={method.value}\n value={method.value}\n onSelect={() => {\n setValue(method.value)\n field.onChange(method.value)\n setOpen(false)\n }}\n >\n {method.label}\n <CheckIcon\n className={cn('ml-auto', value === method.value ? 'opacity-100' : 'opacity-0')}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n <FormDescription>Select your preferred payment method.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button type='submit'>Continue</Button>\n </form>\n </Form>\n )\n}\n\nexport default ComboboxFormDemo\n","import { CalendarIcon, CheckCheckIcon } from 'lucide-react'\n\nimport { format } from 'date-fns'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport { Calendar } from '@/components/calendar'\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage\n} from '@/components/form'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\n\nimport { cn } from '@/lib/utils'\n\nconst FormSchema = z.object({\n dob: z.date({ error: 'A date of birth is required.' })\n})\n\nconst DatePickerFormDemo = () => {\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema)\n })\n\n function onSubmit() {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 sm:w-100 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Great we send you a personalized outfit suggestion!</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='dob'\n render={({ field }) => (\n <FormItem className='flex flex-col'>\n <FormLabel>Timeless Trends for You</FormLabel>\n <Popover>\n <PopoverTrigger asChild>\n <FormControl>\n <Button\n variant={'outline'}\n className={cn('pl-3 text-left font-normal', !field.value && 'text-muted-foreground')}\n >\n {field.value ? format(field.value, 'PPP') : <span>Pick a date</span>}\n <CalendarIcon className='ml-auto opacity-50' />\n </Button>\n </FormControl>\n </PopoverTrigger>\n <PopoverContent className='w-auto p-0' align='start'>\n <Calendar\n mode='single'\n selected={field.value}\n onSelect={field.onChange}\n disabled={date => date > new Date() || date < new Date('1900-01-01')}\n />\n </PopoverContent>\n </Popover>\n <FormDescription>\n Enter your birth date to reveal styles and outfits tailored to your fashion journey.\n </FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type='submit'>Submit</Button>\n </form>\n </Form>\n )\n}\n\nexport default DatePickerFormDemo\n","'use client'\n\nimport { CheckCheckIcon } from 'lucide-react'\n\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useForm } from 'react-hook-form'\nimport { toast } from 'sonner'\nimport { z } from 'zod'\n\nimport { Alert, AlertTitle } from '@/components/alert'\nimport { Button } from '@/components/button'\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/card'\nimport { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/components/form'\nimport { Input } from '@/components/input'\nimport { RadioGroup, RadioGroupItem } from '@/components/radio-group'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/select'\nimport { Textarea } from '@/components/textarea'\n\nconst ContactUSFormDemo = () => {\n const FormSchema = z.object({\n email: z.string().min(1, 'Email is required').email({ message: 'Please enter a valid email address.' }),\n issue: z.string().min(1, {\n message: 'Kindly select an issue.'\n }),\n selectedOption: z.string().nonempty({\n message: 'Selection of an option is required.'\n }),\n message: z.string().min(50, 'Describe your issue using at least 50 characters.')\n })\n\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: { email: '', issue: '', selectedOption: '', message: '' }\n })\n\n const onSubmit = () => {\n toast.custom(() => (\n <Alert className='border-green-600 text-green-600 sm:w-122 dark:border-green-400 dark:text-green-400'>\n <CheckCheckIcon />\n <AlertTitle>Issue submitted successfully! Our team will reach out to you shortly.</AlertTitle>\n </Alert>\n ))\n }\n\n return (\n <Card className='w-full max-w-sm shadow-none'>\n <CardHeader>\n <CardTitle>Report Issue</CardTitle>\n <CardDescription>Describe the issue you're facing; our team will help you.</CardDescription>\n </CardHeader>\n <CardContent>\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className='w-full max-w-xs space-y-6'>\n <FormField\n control={form.control}\n name='email'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input placeholder='Email address' {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name='issue'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Issue</FormLabel>\n <Select onValueChange={field.onChange} defaultValue={field.value}>\n <FormControl>\n <SelectTrigger className='w-full'>\n <SelectValue placeholder='Issue you are facing' />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n <SelectItem value='damaged'>Product is Damaged</SelectItem>\n <SelectItem value='got-different'>Received wrong product</SelectItem>\n <SelectItem value='not-like'>Not as expectation</SelectItem>\n <SelectItem value='other'>Other</SelectItem>\n </SelectContent>\n </Select>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name='selectedOption'\n render={({ field }) => (\n <FormItem className='space-y-3'>\n <FormLabel>How can we help you?</FormLabel>\n <FormControl>\n <RadioGroup onValueChange={field.onChange} value={field.value}>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='replace' id='want-replace' />\n <FormLabel htmlFor='want-replace' className='font-normal'>\n Need a product replacement\n </FormLabel>\n </div>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='refund' id='want-refund' />\n <FormLabel htmlFor='want-refund' className='font-normal'>\n Need a refund\n </FormLabel>\n </div>\n <div className='flex items-center space-x-2'>\n <RadioGroupItem value='support' id='want-support' />\n <FormLabel htmlFor='want-support' className='font-normal'>\n Need guidance or support\n </FormLabel>\n </div>\n </RadioGroup>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name='message'\n render={({ field }) => (\n <FormItem>\n <FormLabel>Please describe your issue</FormLabel>\n <FormControl>\n <Textarea placeholder='Provide detailed information about your issue' {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type='submit'>Submit</Button>\n </form>\n </Form>\n </CardContent>\n </Card>\n )\n}\n\nexport default ContactUSFormDemo\n","import { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst DropdownMenuDemo = () => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>Basic</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56'>\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>Profile</DropdownMenuItem>\n <DropdownMenuItem>Billing</DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuDemo\n","import { useState } from 'react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\nimport { Switch } from '@/components/switch'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst DropdownMeetingScheduleDemo = () => {\n const [firstMeeting, setFirstMeeting] = useState(false)\n const [secondMeeting, setSecondMeeting] = useState(true)\n const [thirdMeeting, setThirdMeeting] = useState(false)\n const [forthMeeting, setForthMeeting] = useState(true)\n const [fifthMeeting, setFifthMeeting] = useState(false)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>Meetings Schedule</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='p-3 sm:w-124'>\n <DropdownMenuLabel className='px-3 py-2'>Today's meetings</DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuItem className='justify-between gap-3.5 px-3 py-3' onSelect={event => event.preventDefault()}>\n <span className='text-popover-foreground font-medium'>08:30</span>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Daily Project Review</span>\n <span className='text-muted-foreground text-xs'>Team organization</span>\n </div>\n <Avatar className='max-sm:hidden'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-11.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>Angel</AvatarFallback>\n </Avatar>\n <div className='flex items-center gap-2'>\n <span className='text-popover-foreground text-sm'>Privacy</span>\n <Switch id='airplane-mode' checked={firstMeeting} onCheckedChange={setFirstMeeting} />\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem className='justify-between gap-3.5 px-3 py-3' onSelect={event => event.preventDefault()}>\n <span className='text-popover-foreground font-medium'>09:00</span>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Sprint Surge</span>\n <span className='text-muted-foreground text-xs'>Daily Boost for Agile Progress</span>\n </div>\n <div className='flex -space-x-3 max-sm:hidden'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n <div className='flex items-center gap-2'>\n <span className='text-popover-foreground text-sm'>Privacy</span>\n <Switch id='airplane-mode' checked={secondMeeting} onCheckedChange={setSecondMeeting} />\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem className='justify-between gap-3.5 px-3 py-3' onSelect={event => event.preventDefault()}>\n <span className='text-popover-foreground font-medium'>11:45</span>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Project Status Update</span>\n <span className='text-muted-foreground text-xs'>Progress Overview Update</span>\n </div>\n <Avatar className='max-sm:hidden'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-12.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>Angel</AvatarFallback>\n </Avatar>\n <div className='flex items-center gap-2'>\n <span className='text-popover-foreground text-sm'>Privacy</span>\n <Switch id='airplane-mode' checked={thirdMeeting} onCheckedChange={setThirdMeeting} />\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem className='justify-between gap-3.5 px-3 py-3' onSelect={event => event.preventDefault()}>\n <span className='text-popover-foreground font-medium'>06:30</span>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Team Performance</span>\n <span className='text-muted-foreground text-xs'>Team Metrics Evaluation</span>\n </div>\n <div className='flex -space-x-3 max-sm:hidden'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n <div className='flex items-center gap-2'>\n <span className='text-popover-foreground text-sm'>Privacy</span>\n <Switch id='airplane-mode' checked={forthMeeting} onCheckedChange={setForthMeeting} />\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem className='justify-between gap-3.5 px-3 py-3' onSelect={event => event.preventDefault()}>\n <span className='text-popover-foreground font-medium'>10:50</span>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Stakeholder Feedback</span>\n <span className='text-muted-foreground text-xs'>Feedback from Stakeholders</span>\n </div>\n <Avatar className='max-sm:hidden'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-14.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>Angel</AvatarFallback>\n </Avatar>\n <div className='flex items-center gap-2'>\n <span className='text-popover-foreground text-sm'>Privacy</span>\n <Switch id='airplane-mode' checked={fifthMeeting} onCheckedChange={setFifthMeeting} />\n </div>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMeetingScheduleDemo\n","import { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst DropdownMenuUserProfileDemo = () => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>User Profile</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56'>\n <DropdownMenuLabel className='flex items-center gap-2'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png' alt='Phillip George' />\n <AvatarFallback className='text-xs'>PG</AvatarFallback>\n </Avatar>\n <div className='flex flex-1 flex-col'>\n <span className='text-popover-foreground'>Phillip George</span>\n <span className='text-muted-foreground text-xs'>phillip@example.com</span>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>Profile</DropdownMenuItem>\n <DropdownMenuItem>Billing</DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuUserProfileDemo\n","import { PencilLineIcon, UploadIcon, Trash2Icon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuSeparator,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst DropdownMenuAlignStartDemo = () => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>Align Start</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align='start' className='w-34'>\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <PencilLineIcon />\n Edit\n </DropdownMenuItem>\n <DropdownMenuItem>\n <UploadIcon />\n Share\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant='destructive'>\n <Trash2Icon />\n <span>Delete</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuAlignStartDemo\n","import { ChevronDownIcon, ChevronUpIcon, ChevronsUpIcon, EqualIcon, ChevronsDownIcon } from 'lucide-react'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst listItems = [\n {\n icon: ChevronsUpIcon,\n color: 'text-destructive',\n priority: 'Highest'\n },\n {\n icon: ChevronUpIcon,\n color: 'text-destructive/60',\n priority: 'High'\n },\n {\n icon: EqualIcon,\n color: 'text-amber-600 dark:text-amber-400',\n priority: 'Medium'\n },\n {\n icon: ChevronDownIcon,\n color: 'text-green-600/60 dark:text-green-400/60',\n priority: 'Low'\n },\n {\n icon: ChevronsDownIcon,\n color: 'text-green-600 dark:text-green-400',\n priority: 'Lowest'\n }\n]\n\nconst DropdownMenuBorderedMenuDemo = () => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>Bordered Menu</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56 shadow-none'>\n <DropdownMenuLabel>Task priority</DropdownMenuLabel>\n <DropdownMenuGroup>\n {listItems.map((item, index) => (\n <DropdownMenuItem key={index}>\n <item.icon className={item.color} />\n {item.priority}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuBorderedMenuDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst DropdownMenuCheckboxDemo = () => {\n const [showStatusBar, setShowStatusBar] = useState(true)\n const [showActivityBar, setShowActivityBar] = useState(false)\n const [showPanel, setShowPanel] = useState(false)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>With checkbox</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56'>\n <DropdownMenuLabel>Appearance</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuCheckboxItem checked={showStatusBar} onCheckedChange={setShowStatusBar}>\n Status Bar\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem checked={showActivityBar} onCheckedChange={setShowActivityBar} disabled>\n API\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem checked={showPanel} onCheckedChange={setShowPanel}>\n Invite users\n </DropdownMenuCheckboxItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuCheckboxDemo\n","'use client'\n\nimport { useState } from 'react'\n\nimport { Button } from '@/components/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger\n} from '@/components/dropdown-menu'\n\nconst DropdownMenuRadioGroupDemo = () => {\n const [position, setPosition] = useState('bottom')\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline'>With radio</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className='w-56'>\n <DropdownMenuLabel>Panel Position</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuRadioGroup value={position} onValueChange={setPosition}>\n <DropdownMenuRadioItem value='top'>Top</DropdownMenuRadioItem>\n <DropdownMenuRadioItem value='bottom'>Bottom</DropdownMenuRadioItem>\n <DropdownMenuRadioItem value='right' disabled>\n Right\n </DropdownMenuRadioItem>\n </DropdownMenuRadioGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport default DropdownMenuRadioGroupDemo\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\n\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { Input } from \"@/components/input\"\nimport { Separator } from \"@/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 py-2 px-4\", className)}\n {...props}\n />\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"],"mappings":";;;AAAA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACHA,YAAY,WAAW;AA6DZ;AAlDJ,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,4BAA4B;AAAA,EAC5B,GAAG;AACL,GAAuB;AACrB,QAAM,CAAC,SAAS,UAAU,IAAU,eAAS,KAAK;AAClD,QAAM,CAAC,cAAc,eAAe,IAAU,eAAS,SAAS,YAAY;AAE5E,EAAM,gBAAU,MAAM;AACpB,eAAW,IAAI;AAAA,EACjB,GAAG,CAAC,CAAC;AAEL,EAAM,gBAAU,MAAM;AACpB,QAAI,UAAU,QAAW;AACvB,sBAAgB,KAAK;AAAA,IACvB,WAAW,iBAAiB,QAAW;AACrC,sBAAgB,YAAY;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,OAAO,YAAY,CAAC;AAExB,EAAM,gBAAU,MAAM;AACpB,QAAI,CAAC,QAAS;AAEd,UAAM,OAAO,OAAO,SAAS;AAE7B,QAAI,2BAA2B;AAC7B,YAAM,MAAM,SAAS,cAAc,OAAO;AAC1C,UAAI;AAAA,QACF,SAAS;AAAA,UACP;AAAA,QACF;AAAA,MACF;AACA,eAAS,KAAK,YAAY,GAAG;AAE7B,4BAAsB,MAAM;AAC1B,aAAK,aAAa,WAAW,YAAY;AACzC,8BAAsB,MAAM;AAC1B,mBAAS,KAAK,YAAY,GAAG;AAAA,QAC/B,CAAC;AAAA,MACH,CAAC;AAAA,IACH,OAAO;AACL,WAAK,aAAa,WAAW,YAAY;AAAA,IAC3C;AAAA,EACF,GAAG,CAAC,cAAc,WAAW,SAAS,yBAAyB,CAAC;AAEhE,MAAI,CAAC,SAAS;AACZ,WAAO,gCAAG,UAAS;AAAA,EACrB;AAEA,SACE,oBAAC,SAAI,cAAY,cAAe,GAAG,OAChC,UACH;AAEJ;;;ACvEA,YAAYA,YAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AAgDjC,gBAAAC,YAAA;AA5CN,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,IAAM,SAAe;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AAChE,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,QAC1D;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;;;AC1DrB,YAAYC,YAAW;AACvB,SAAS,OAAAC,YAA8B;AA6BjC,gBAAAC,YAAA;AA1BN,IAAM,eAAeC,KAAI,qDAAqD;AAAA,EAC5E,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAMD,IAAM,cAAoB,qBAAkD,EAAE,MAAM,UAAU,CAAC;AAE/F,IAAM,aAAa;AAAA,EACjB,SAAS,EAAE,QAAQ,OAAO,SAAS,OAAO,QAAQ,WAAW;AAAA,EAC7D,IAAI,EAAE,QAAQ,OAAO,SAAS,OAAO,QAAQ,WAAW;AAC1D;AAEA,IAAM,OAAa;AAAA,EACjB,CAAC,EAAE,WAAW,OAAO,WAAW,GAAG,MAAM,GAAG,QAC1C,gBAAAD,KAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,KAAK,GAClC,0BAAAA,KAAC,SAAI,KAAU,WAAW,GAAG,aAAa,EAAE,KAAK,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO,GAC9E;AAEJ;AACA,KAAK,cAAc;AAEnB,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,UAAM,EAAE,KAAK,IAAU,kBAAW,WAAW;AAC7C,UAAM,UAAU,WAAW,QAAQ,SAAS,EAAE;AAC9C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,yDAAyD,SAAS,SAAS;AAAA,QACxF,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAEzB,IAAM,YAAkB;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,kEAAkE,SAAS;AAAA,MACxF,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc;AAExB,IAAM,kBAAwB;AAAA,EAC5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACnE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;AAE9B,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA,KAAC,SAAI,KAAU,WAAW,GAAG,qCAAqC,SAAS,GAAI,GAAG,OAAO;AAE7F;AACA,WAAW,cAAc;AAEzB,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,UAAM,EAAE,KAAK,IAAU,kBAAW,WAAW;AAC7C,UAAM,UAAU,WAAW,QAAQ,SAAS,EAAE;AAC9C,WAAO,gBAAAA,KAAC,SAAI,KAAU,WAAW,GAAG,SAAS,aAAa,SAAS,GAAI,GAAG,OAAO;AAAA,EACnF;AACF;AACA,YAAY,cAAc;AAE1B,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,UAAM,EAAE,KAAK,IAAU,kBAAW,WAAW;AAC7C,UAAM,UAAU,WAAW,QAAQ,SAAS,EAAE;AAC9C,WACE,gBAAAA,KAAC,SAAI,KAAU,WAAW,GAAG,qBAAqB,SAAS,SAAS,GAAI,GAAG,OAAO;AAAA,EAEtF;AACF;AACA,WAAW,cAAc;;;AClGzB,SAAS,oBAAoB;AAMzB,SACE,OAAAE,MADF;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,qBAAC,UAAO,SAAQ,WAAU,WAAU,4CAClC;AAAA,oBAAAA,KAAC,gBAAa;AAAA,IAAE;AAAA,KAElB;AAEJ;AAEA,IAAO,oBAAQ;;;ACbf,SAAS,qBAAqB;AAM1B,SACE,OAAAC,MADF,QAAAC,aAAA;AAFJ,IAAM,kBAAkB,MAAM;AAC5B,SACE,gBAAAA,MAAC,UAAO,SAAQ,SAAQ,WAAU,SAChC;AAAA,oBAAAD,KAAC,iBAAc,WAAU,kEAAiE;AAAA,IAAE;AAAA,KAE9F;AAEJ;AAEA,IAAO,oBAAQ;;;ACbf,SAAS,wBAAwB;AAM7B,SACE,OAAAE,MADF,QAAAC,aAAA;AAFJ,IAAM,oBAAoB,MAAM;AAC9B,SACE,gBAAAA,MAAC,UAAO,UAAQ,MACd;AAAA,oBAAAD,KAAC,oBAAiB,WAAU,gBAAe;AAAA,IAAE;AAAA,KAE/C;AAEJ;AAEA,IAAO,oBAAQ;;;ACbf,SAAS,iBAAiB;AAMtB,SAEI,OAAAE,MAFJ,QAAAC,aAAA;AAFJ,IAAM,oBAAoB,MAAM;AAC9B,SACE,gBAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,4BAClC;AAAA,oBAAAD,KAAC,UAAK,WAAU,+FACd,0BAAAA,KAAC,aAAU,WAAU,UAAS,GAChC;AAAA,IAAO;AAAA,KAET;AAEJ;AAEA,IAAO,oBAAQ;;;ACff,SAAS,gBAAgB;AAOnB,gBAAAE,MAGA,QAAAC,aAHA;AAHN,IAAM,iBAAiB,MAAM;AAC3B,SACE,gBAAAA,MAAC,SAAI,WAAU,qEACb;AAAA,oBAAAD,KAAC,OAAE,WAAU,0EAAyE,6DAEtF;AAAA,IACA,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QAEV;AAAA,0BAAAD,KAAC,UAAK,WAAU,+FACd,0BAAAA,KAAC,YAAS,WAAU,UAAS,GAC/B;AAAA,UACA,gBAAAA,KAAC,UAAK,WAAU,WAAU,kBAAI;AAAA;AAAA;AAAA,IAChC;AAAA,KACF;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,YAAYE,YAAW;AAOjB,gBAAAC,YAAA;AAHN,IAAM,QAAc;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAAQ;AACtC,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,MAAM,cAAc;;;ACnBpB,YAAYC,YAAW;AACvB,YAAY,oBAAoB;AAChC,SAAS,OAAAC,YAA8B;AAarC,gBAAAC,aAAA;AATF,IAAM,gBAAgBC;AAAA,EACpB;AACF;AAEA,IAAM,QAAc,kBAIlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAgB;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,cAAc,GAAG,SAAS;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,MAAM,cAA6B,oBAAK;;;ACblC,SACE,OAAAE,OADF,QAAAC,aAAA;AAHN,IAAM,WAAW,MAAM;AACrB,SACE,gBAAAA,MAAC,QAAK,WAAU,6BACd;AAAA,oBAAAA,MAAC,cAAW,WAAU,QACpB;AAAA,sBAAAD,MAAC,aAAU,mCAAqB;AAAA,MAChC,gBAAAA,MAAC,mBAAgB,6DAA+C;AAAA,OAClE;AAAA,IACA,gBAAAA,MAAC,eAAY,WAAU,QACrB,0BAAAA,MAAC,UACC,0BAAAC,MAAC,SAAI,WAAU,uBACb;AAAA,sBAAAA,MAAC,SAAI,WAAU,cACb;AAAA,wBAAAD,MAAC,SAAM,SAAQ,SAAQ,mBAAK;AAAA,QAC5B,gBAAAA,MAAC,SAAM,IAAG,SAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,SAC7D;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAU,cACb;AAAA,wBAAAA,MAAC,SAAI,WAAU,qBACb;AAAA,0BAAAD,MAAC,SAAM,SAAQ,YAAW,sBAAQ;AAAA,UAClC,gBAAAA,MAAC,OAAE,MAAK,KAAI,WAAU,mEAAkE,mCAExF;AAAA,WACF;AAAA,QACA,gBAAAA,MAAC,SAAM,IAAG,YAAW,MAAK,YAAW;AAAA,SACvC;AAAA,OACF,GACF,GACF;AAAA,IACA,gBAAAC,MAAC,cAAW,WAAU,uBACpB;AAAA,sBAAAD,MAAC,UAAO,MAAK,UAAS,WAAU,UAAS,mBAEzC;AAAA,MACA,gBAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,UAAS,kCAE7C;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAU,0BAAyB;AAAA;AAAA,QACV;AAAA,QAC5B,gBAAAD,MAAC,OAAE,MAAK,KAAI,WAAU,gCAA+B,qBAErD;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACjDf,YAAYE,YAAW;AACvB,YAAY,qBAAqB;AAQ/B,gBAAAC,aAAA;AAJF,IAAM,SAAe,kBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,OAAO,cAA8B,qBAAK;AAE1C,IAAM,cAAoB,kBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,+BAA+B,SAAS;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAEhD,IAAM,iBAAuB,kBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAA8B,yBAAS;;;AChBhD,SACE,OAAAC,OADF,QAAAC,aAAA;AA1BN,IAAM,UAAU;AAAA,EACd;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;AAEA,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAA,MAAC,QAAK,WAAU,sBACd;AAAA,oBAAAA,MAAC,cAAW,WAAU,QACpB;AAAA,sBAAAD,MAAC,aAAU,2BAAa;AAAA,MACxB,gBAAAA,MAAC,mBAAgB,0DAA4C;AAAA,OAC/D;AAAA,IACA,gBAAAC,MAAC,eAAY,WAAU,gBACrB;AAAA,sBAAAD,MAAC,OAAE,sFAAwE;AAAA,MAC3E,gBAAAC,MAAC,QAAG,WAAU,wDACZ;AAAA,wBAAAD,MAAC,QAAG,4DAA8C;AAAA,QAClD,gBAAAA,MAAC,QAAG,wCAA0B;AAAA,QAC9B,gBAAAA,MAAC,QAAG,+BAAiB;AAAA,QACrB,gBAAAA,MAAC,QAAG,+BAAiB;AAAA,QACrB,gBAAAA,MAAC,QAAG,0DAA4C;AAAA,SAClD;AAAA,OACF;AAAA,IACA,gBAAAA,MAAC,cAAW,WAAU,QACpB,0BAAAA,MAAC,SAAI,WAAU,mCACZ,kBAAQ,IAAI,CAAC,QAAQ,UACpB,gBAAAC,MAAC,UAAmB,WAAU,kEAC5B;AAAA,sBAAAD,MAAC,eAAY,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AAAA,MAChD,gBAAAA,MAAC,kBAAe,WAAU,WAAW,iBAAO,UAAS;AAAA,SAF1C,KAGb,CACD,GACH,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACzDf,SAAS,4BAA4B;AAS7B,gBAAAE,OAGA,QAAAC,aAHA;AAJR,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,MAAC,QAAK,WAAU,mBACd;AAAA,oBAAAD,MAAC,cAAW,WAAU,QACpB,0BAAAA,MAAC,aAAU,2BAAa,GAC1B;AAAA,IACA,gBAAAC,MAAC,eAAY,WAAU,6BACrB;AAAA,sBAAAA,MAAC,SAAI,WAAU,2BACb;AAAA,wBAAAD,MAAC,wBAAqB;AAAA,QACtB,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,4BAAc;AAAA,SACxD;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,MAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,UACpG,gBAAAA,MAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,WACxC;AAAA,QACA,gBAAAC,MAAC,SAAI,WAAU,iBACb;AAAA,0BAAAD,MAAC,UAAK,WAAU,yBAAwB,6BAAe;AAAA,UACvD,gBAAAA,MAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,WAC7D;AAAA,SACF;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,MAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,UACpG,gBAAAA,MAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,WACxC;AAAA,QACA,gBAAAC,MAAC,SAAI,WAAU,iBACb;AAAA,0BAAAD,MAAC,UAAK,WAAU,yBAAwB,2BAAa;AAAA,UACrD,gBAAAA,MAAC,UAAK,WAAU,iCAAgC,yBAAW;AAAA,WAC7D;AAAA,SACF;AAAA,MACA,gBAAAC,MAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,MAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,UACpG,gBAAAA,MAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,WACxC;AAAA,QACA,gBAAAC,MAAC,SAAI,WAAU,iBACb;AAAA,0BAAAD,MAAC,UAAK,WAAU,yBAAwB,wBAAU;AAAA,UAClD,gBAAAA,MAAC,UAAK,WAAU,iCAAgC,sBAAQ;AAAA,WAC1D;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,SAAI;AAAA,MACL,gBAAAA,MAAC,SAAI;AAAA,OACP;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;AChDT,SACE,OAAAE,OADF,QAAAC,aAAA;AAHN,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,MAAC,QAAK,WAAU,iBACd;AAAA,oBAAAA,MAAC,cAAW,WAAU,QACpB;AAAA,sBAAAD,MAAC,aAAU,iCAAmB;AAAA,MAC9B,gBAAAA,MAAC,mBAAgB,4EAA8D;AAAA,OACjF;AAAA,IACA,gBAAAA,MAAC,eAAY,WAAU,aACrB,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,WAAU;AAAA,QACV,OAAO,EAAE,wBAAwB,iBAAiB,yBAAyB,gBAAgB;AAAA;AAAA,IAC7F,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACdP,gBAAAE,OAOF,QAAAC,cAPE;AAJR,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA,OAAC,QAAK,WAAU,iBACd;AAAA,oBAAAD,MAAC,eAAY,WAAU,kBACrB,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,WAAU;AAAA,QACV,OAAO,EAAE,qBAAqB,iBAAiB,sBAAsB,gBAAgB;AAAA;AAAA,IACvF,GACF;AAAA,IACA,gBAAAC,OAAC,cACC;AAAA,sBAAAD,MAAC,aAAU,qCAAuB;AAAA,MAClC,gBAAAA,MAAC,mBAAgB,0FAA4E;AAAA,OAC/F;AAAA,IACA,gBAAAC,OAAC,cAAW,WAAU,8CACpB;AAAA,sBAAAD,MAAC,UAAO,0BAAY;AAAA,MACpB,gBAAAA,MAAC,UAAO,SAAS,WAAW,0BAAY;AAAA,OAC1C;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACnBP,gBAAAE,OAOA,QAAAC,cAPA;AAJR,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,OAAC,QAAK,WAAU,qCACd;AAAA,oBAAAD,MAAC,eAAY,WAAU,kBACrB,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,GACF;AAAA,IACA,gBAAAC,OAAC,SAAI,WAAU,YACb;AAAA,sBAAAA,OAAC,cAAW,WAAU,QACpB;AAAA,wBAAAD,MAAC,aAAU,uCAAyB;AAAA,QACpC,gBAAAA,MAAC,mBAAgB,sFAAwE;AAAA,SAC3F;AAAA,MACA,gBAAAA,MAAC,cAAW,WAAU,cACpB,0BAAAA,MAAC,UAAO,WAAU,0GAAyG,0BAE3H,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC5Bf,SAAS,YAAAE,iBAAgB;AAiCjB,SAGM,OAAAC,OAHN,QAAAC,cAAA;AA5BR,IAAM,OAAO;AAAA,EACX;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SACE;AAAA,EACJ;AACF;AAEA,IAAM,mBAAmB,MAAM;AAC7B,QAAM,CAAC,WAAW,YAAY,IAAIC,UAAS,KAAK,CAAC,EAAE,KAAK;AACxD,QAAM,gBAAgB,KAAK,KAAK,SAAO,IAAI,UAAU,SAAS,GAAG;AAEjE,SACE,gBAAAF,MAAC,QAAK,WAAU,SACd,0BAAAA,MAAC,eACC,0BAAAC,OAAC,SAAI,WAAU,mBACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,2EACZ,eAAK,IAAI,CAAC,KAAK,UACd,gBAAAA;AAAA,MAAC;AAAA;AAAA,QAEC,SAAQ;AAAA,QACR,SAAS,MAAM,aAAa,IAAI,KAAK;AAAA,QACrC,WAAW;AAAA,UACT;AAAA,UACA,UAAU,KAAK;AAAA,UACf,UAAU,KAAK,SAAS,KAAK;AAAA,UAC7B,cAAc,IAAI,SAAS;AAAA,QAC7B,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QAEV,cAAI;AAAA;AAAA,MAZA,IAAI;AAAA,IAaX,CACD,GACH;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,qCAAqC,yBAAc;AAAA,KAClE,GACF,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC5Df,SAAS,gBAAgB;AASjB,SAEE,OAAAG,OAFF,QAAAC,cAAA;AAJR,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,OAAC,QAAK,WAAU,wBACd;AAAA,oBAAAD,MAAC,eACC,0BAAAC,OAAC,OAAE;AAAA;AAAA,MAC4G;AAAA,MAC7G,gBAAAD,MAAC,UAAK,WAAU,iBAAgB,6DAA+C;AAAA,MAAO;AAAA,OAExF,GACF;AAAA,IACA,gBAAAC,OAAC,cAAW,WAAU,8DACpB;AAAA,sBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,OAAC,UAAO,WAAU,oBAChB;AAAA,0BAAAD,MAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,UACpG,gBAAAA,MAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,WACxC;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,yBACb;AAAA,0BAAAD,MAAC,aAAU,WAAU,mCAAkC,uBAAS;AAAA,UAChE,gBAAAA,MAAC,mBAAgB,qBAAO;AAAA,WAC1B;AAAA,SACF;AAAA,MACA,gBAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,wBAAAD,MAAC,YAAS,WAAU,oFAAmF;AAAA,QACvG,gBAAAA,MAAC,YAAS,WAAU,oFAAmF;AAAA,QACvG,gBAAAA,MAAC,YAAS,WAAU,oFAAmF;AAAA,QACvG,gBAAAA,MAAC,YAAS,WAAU,oFAAmF;AAAA,QACvG,gBAAAA,MAAC,YAAS,WAAU,iDAAgD;AAAA,SACtE;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACtCf,SAAS,YAAAE,iBAAgB;AAEzB,SAAS,aAAa;AAYhB,SAME,OAAAC,OANF,QAAAC,cAAA;AAPN,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,IAAI;AAE7C,MAAI,CAAC,SAAU,QAAO;AAEtB,SACE,gBAAAD,OAAC,QAAK,WAAU,iCACd;AAAA,oBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,SAAS,MAAM,YAAY,KAAK;AAAA,QAChC,WAAU;AAAA,QAEV;AAAA,0BAAAD,MAAC,SAAM;AAAA,UACP,gBAAAA,MAAC,UAAK,WAAU,WAAU,mBAAK;AAAA;AAAA;AAAA,IACjC;AAAA,IACA,gBAAAA,MAAC,cAAW,WAAU,QACpB,0BAAAA,MAAC,aAAU,WAAU,eAAc,oCAAsB,GAC3D;AAAA,IACA,gBAAAC,OAAC,eAAY,WAAU,mCACrB;AAAA,sBAAAD,MAAC,OAAE,6GAAoG;AAAA,MACvG,gBAAAA,MAAC,UAAO,8BAAgB;AAAA,OAC1B;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;AClCf,SAAS,gBAAAG,qBAAoB;AAOvB,SACE,OAAAC,OADF,QAAAC,cAAA;AAHN,IAAM,0BAA0B,MAAM;AACpC,SACE,gBAAAA,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAA,OAAC,UAAO,SAAQ,WAAU,WAAU,4DAClC;AAAA,sBAAAD,MAACE,eAAA,EAAa,WAAU,UAAS;AAAA,MAAE;AAAA,OAErC;AAAA,IACA,gBAAAF,MAAC,UAAK,WAAU,mHAAkH,iBAElI;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AClBf,SAAS,YAAAG,iBAAgB;AAEzB,SAAS,iBAAiB;AAWpB,SAKE,OAAAC,OALF,QAAAC,cAAA;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAS,IAAI;AAE3C,SACE,gBAAAD,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,SAAS,MAAM,WAAW,CAAC,OAAO;AAAA,QAElC;AAAA,0BAAAD,MAAC,aAAU,WAAW,GAAG,UAAU,EAAE,uCAAuC,QAAQ,CAAC,GAAG;AAAA,UAAE;AAAA;AAAA;AAAA,IAE5F;AAAA,IACA,gBAAAA,MAAC,UAAK,WAAU,mHACb,oBAAU,KAAK,IAClB;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AC5Bf,SAAS,YAAAG,WAAU,UAAU,sBAAsB,kBAAkB,kBAAkB;;;ACAvF,YAAYC,YAAW;AACvB,YAAY,sBAAsB;AAe9B,gBAAAC,aAAA;AAXJ,IAAM,kBAAmC;AAEzC,IAAM,UAA2B;AAEjC,IAAM,iBAAkC;AAExC,IAAM,iBAAuB,kBAG3B,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,gBAAAA,MAAkB,yBAAjB,EACC,0BAAAA;AAAA,EAAkB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,GACF,CACD;AACD,eAAe,cAA+B,yBAAQ;;;ADjB5C,SACE,OAAAC,OADF,QAAAC,cAAA;AALV,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAA,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,4DAA2D,SAAQ,WACnF;AAAA,wBAAAD,MAAC,oBAAiB,WAAU,UAAS;AAAA,QACrC,gBAAAA,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,SAClC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,oBAAM;AAAA,OACtD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,+CAA8C,SAAQ,WACtE;AAAA,wBAAAD,MAAC,cAAW,WAAU,UAAS;AAAA,QAC/B,gBAAAA,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,SAClC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,oBAAM;AAAA,OACtD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,+CAA8C,SAAQ,WACtE;AAAA,wBAAAD,MAAC,YAAS,WAAU,UAAS;AAAA,QAC7B,gBAAAA,MAAC,UAAK,WAAU,WAAU,kBAAI;AAAA,SAChC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,kBAAI;AAAA,OACpD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,+CAA8C,SAAQ,WACtE;AAAA,wBAAAD,MAACE,WAAA,EAAS,WAAU,UAAS;AAAA,QAC7B,gBAAAF,MAAC,UAAK,WAAU,WAAU,uBAAS;AAAA,SACrC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,uBAAS;AAAA,OACzD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,4DAA2D,SAAQ,WACnF;AAAA,wBAAAD,MAAC,wBAAqB,WAAU,UAAS;AAAA,QACzC,gBAAAA,MAAC,UAAK,WAAU,WAAU,kBAAI;AAAA,SAChC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,kBAAI;AAAA,OACpD;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AEzDf,SAAS,WAAW,UAAU,cAAc,uBAAuB;AAUzD,SACE,OAAAG,OADF,QAAAC,cAAA;AALV,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA,OAAC,SAAI,WAAU,kFACb;AAAA,oBAAAA,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,kDAChB;AAAA,wBAAAD,MAAC,gBAAa,WAAU,UAAS;AAAA,QACjC,gBAAAA,MAAC,UAAK,WAAU,WAAU,uBAAS;AAAA,SACrC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,uBAAS;AAAA,OACzD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,mCAChB;AAAA,wBAAAD,MAAC,YAAS,WAAU,UAAS;AAAA,QAC7B,gBAAAA,MAAC,UAAK,WAAU,WAAU,kBAAI;AAAA,SAChC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,kBAAI;AAAA,OACpD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,mCAChB;AAAA,wBAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,QAC9B,gBAAAA,MAAC,UAAK,WAAU,WAAU,mBAAK;AAAA,SACjC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,mBAAK;AAAA,OACrD;AAAA,IACA,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,WAAU,kDAChB;AAAA,wBAAAD,MAAC,mBAAgB,WAAU,UAAS;AAAA,QACpC,gBAAAA,MAAC,UAAK,WAAU,WAAU,0BAAY;AAAA,SACxC,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,qBAAoB,0BAAY;AAAA,OAC5D;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AChDf,SAAS,cAAc,cAAc,eAAe,kBAAkB;AAY9D,SACE,OAAAE,OADF,QAAAC,cAAA;AARR,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,SAAO;AAAA,QAEP,0BAAAC,OAAC,OAAE,MAAK,KAAI,QAAO,UAAS,KAAI,uBAC9B;AAAA,0BAAAD,MAAC,cAAW,WAAU,2BAA0B;AAAA,UAChD,gBAAAA,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,sEAAqE,SAAO,MAC9G,0BAAAC,OAAC,OAAE,MAAK,KAAI,QAAO,UAAS,KAAI,uBAC9B;AAAA,sBAAAD,MAAC,gBAAa,WAAU,2BAA0B;AAAA,MAClD,gBAAAA,MAAC,UAAK,WAAU,WAAU,sBAAQ;AAAA,OACpC,GACF;AAAA,IACA,gBAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,sEAAqE,SAAO,MAC9G,0BAAAC,OAAC,OAAE,MAAK,KAAI,QAAO,UAAS,KAAI,uBAC9B;AAAA,sBAAAD,MAAC,iBAAc,WAAU,2BAA0B;AAAA,MACnD,gBAAAA,MAAC,UAAK,WAAU,WAAU,uBAAS;AAAA,OACrC,GACF;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,SAAO;AAAA,QAEP,0BAAAC,OAAC,OAAE,MAAK,KAAI,QAAO,UAAS,KAAI,uBAC9B;AAAA,0BAAAD,MAAC,gBAAa,WAAU,2BAA0B;AAAA,UAClD,gBAAAA,MAAC,UAAK,WAAU,WAAU,sBAAQ;AAAA,WACpC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AC3Cf,SAAS,YAAAE,iBAAgB;AAEzB,SAAS,YAAY,mBAAmB;AAqBlC,SAOE,OAAAC,OAPF,QAAAC,cAAA;AAjBN,IAAM,sBAAsB,MAAM;AAChC,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAS,EAAE;AAEnC,QAAM,eAAe,MAAM;AACzB,QAAI,OAAO,KAAK;AACd,cAAQ,OAAO,CAAC;AAAA,IAClB;AAAA,EACF;AAEA,QAAM,gBAAgB,MAAM;AAC1B,QAAI,OAAO,GAAG;AACZ,cAAQ,OAAO,CAAC;AAAA,IAClB;AAAA,EACF;AAEA,SACE,gBAAAD,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU,SAAS;AAAA,QAEnB;AAAA,0BAAAD,MAAC,eAAY,WAAU,UAAS;AAAA,UAChC,gBAAAA,MAAC,UAAK,WAAU,WAAU,sBAAQ;AAAA;AAAA;AAAA,IACpC;AAAA,IACA,gBAAAA,MAAC,UAAK,WAAU,sGACb,aAAG,IAAI,KACV;AAAA,IACA,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU,SAAS;AAAA,QAEnB;AAAA,0BAAAD,MAAC,cAAW,WAAU,UAAS;AAAA,UAC/B,gBAAAA,MAAC,UAAK,WAAU,WAAU,qBAAO;AAAA;AAAA;AAAA,IACnC;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AClDf,SAAS,YAAAG,iBAAgB;AAEzB,SAAS,WAAW,gBAAgB;AAS9B,SAOE,OAAAC,OAPF,QAAAC,cAAA;AALN,IAAM,wBAAwB,MAAM;AAClC,QAAM,CAAC,OAAO,QAAQ,IAAIC,UAAS,GAAG;AAEtC,SACE,gBAAAD,OAAC,SAAI,WAAU,gFACb;AAAA,oBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAM;AACb,mBAAS,QAAQ,CAAC;AAAA,QACpB;AAAA,QAEA;AAAA,0BAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,UAC9B,gBAAAA,MAAC,UAAK,WAAU,WAAU,mBAAK;AAAA;AAAA;AAAA,IACjC;AAAA,IACA,gBAAAA,MAAC,UAAK,WAAU,6FACb,aAAG,KAAK,MACX;AAAA,IACA,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAM;AACb,mBAAS,QAAQ,CAAC;AAAA,QACpB;AAAA,QAEA;AAAA,0BAAAD,MAAC,YAAS,WAAU,UAAS;AAAA,UAC7B,gBAAAA,MAAC,UAAK,WAAU,WAAU,kBAAI;AAAA;AAAA;AAAA,IAChC;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACtCf,SAAS,wBAAwB;AAQzB,gBAAAG,OAQA,QAAAC,cARA;AAJR,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAD,MAAC,UAAO,SAAQ,WAAU,WAAU,4DAA2D,SAAO,MACpG,0BAAAA,MAAC,OAAE,MAAK,KAAI,0BAAY,GAC1B;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAO;AAAA,QAEP,0BAAAC,OAAC,OAAE,MAAK,KAAI,QAAO,UAAS,KAAI,uBAC9B;AAAA,0BAAAD,MAAC,oBAAiB,WAAU,UAAS;AAAA,UACrC,gBAAAA,MAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,WACzC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACzBf,SAAS,YAAAE,WAAU,eAAe,kBAAkB;AAO9C,SACE,OAAAC,OADF,QAAAC,cAAA;AAHN,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA,OAAC,SAAI,WAAU,0EACb;AAAA,oBAAAA,OAAC,UAAO,SAAQ,WAAU,WAAU,4DAClC;AAAA,sBAAAD,MAAC,iBAAc,WAAU,UAAS;AAAA,MAAE;AAAA,OAEtC;AAAA,IACA,gBAAAC,OAAC,UAAO,SAAQ,WAAU,WAAU,+CAClC;AAAA,sBAAAD,MAACE,WAAA,EAAS,WAAU,UAAS;AAAA,MAAE;AAAA,OAEjC;AAAA,IACA,gBAAAD,OAAC,UAAO,SAAQ,WAAU,WAAU,4DAClC;AAAA,sBAAAD,MAAC,cAAW,WAAU,UAAS;AAAA,MAAE;AAAA,OAEnC;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACvBf,SAAS,oBAAoB,wBAAwB;AAO/C,SACE,OAAAG,OADF,QAAAC,cAAA;AAHN,IAAM,kBAAkB,MAAM;AAC5B,SACE,gBAAAA,OAAC,SAAI,WAAU,gFACb;AAAA,oBAAAA,OAAC,UAAO,WAAU,qDAChB;AAAA,sBAAAD,MAAC,sBAAmB,WAAU,UAAS;AAAA,MACvC,gBAAAA,MAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,OAC3C;AAAA,IACA,gBAAAC,OAAC,UAAO,WAAU,qDAChB;AAAA,sBAAAD,MAAC,oBAAiB,WAAU,UAAS;AAAA,MACrC,gBAAAA,MAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,OACzC;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACjBf,SAAS,YAAAE,iBAAgB;AAEzB,SAAS,uBAAuB;;;ACJhC,YAAYC,YAAW;AACvB,YAAY,2BAA2B;AACvC,SAAS,OAAO,cAAc,cAAc;AAsB1C,SAUE,OAAAC,OAVF,QAAAC,cAAA;AAlBF,IAAM,eAAqC;AAE3C,IAAM,sBAA4C;AAElD,IAAM,oBAA0C;AAEhD,IAAM,qBAA2C;AAEjD,IAAM,kBAAwC;AAE9C,IAAM,yBAA+C;AAErD,IAAM,yBAA+B,kBAKnC,CAAC,EAAE,WAAW,OAAO,UAAU,GAAG,MAAM,GAAG,QAC3C,gBAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,gBAAAD,MAAC,gBAAa,WAAU,WAAU;AAAA;AAAA;AACpC,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,yBAA+B,kBAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,sBAA4B,kBAGhC,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,gBAAAA,MAAuB,8BAAtB,EACC,0BAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,GACF,CACD;AACD,oBAAoB,cAAoC,8BAAQ;AAEhE,IAAM,mBAAyB,kBAM7B,CAAC,EAAE,WAAW,OAAO,SAAS,GAAG,MAAM,GAAG,QAC1C,gBAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT,YAAY,iBAAiB;AAAA,MAC7B;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAoC,2BAAK;AAE1D,IAAM,2BAAiC,kBAGrC,CAAC,EAAE,WAAW,UAAU,SAAS,GAAG,MAAM,GAAG,QAC7C,gBAAAC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAC,UAAK,WAAU,gEACd,0BAAAA,MAAuB,qCAAtB,EACC,0BAAAA,MAAC,SAAM,WAAU,WAAU,GAC7B,GACF;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,yBAAyB,cACD,mCAAa;AAErC,IAAM,wBAA8B,kBAGlC,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAC,UAAK,WAAU,gEACd,0BAAAA,MAAuB,qCAAtB,EACC,0BAAAA,MAAC,UAAO,WAAU,wBAAuB,GAC3C,GACF;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,oBAA0B,kBAK9B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC,gBAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAAoC,4BAAM;AAE5D,IAAM,wBAA8B,kBAGlC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MAA6C;AAC3C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,qBAAqB,cAAc;;;ADnJ7B,gBAAAE,OAGI,QAAAC,cAHJ;AApBN,IAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AACF;AAEA,IAAM,0BAA0B,MAAM;AACpC,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAS,GAAG;AAEtD,SACE,gBAAAD,OAAC,SAAI,WAAU,gFACb;AAAA,oBAAAD,MAAC,UAAO,WAAU,gDAAgD,kBAAQ,OAAO,aAAa,CAAC,EAAE,OAAM;AAAA,IACvG,gBAAAC,OAAC,gBACC;AAAA,sBAAAD,MAAC,uBAAoB,SAAO,MAC1B,0BAAAC,OAAC,UAAO,MAAK,QAAO,WAAU,gDAC5B;AAAA,wBAAAD,MAAC,mBAAgB,WAAU,UAAS;AAAA,QACpC,gBAAAA,MAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,SACzC,GACF;AAAA,MACA,gBAAAA,MAAC,uBAAoB,MAAK,UAAS,YAAY,GAAG,OAAM,OAAM,WAAU,yBACtE,0BAAAA,MAAC,0BAAuB,OAAO,eAAe,eAAe,kBAC1D,kBAAQ,IAAI,CAAC,QAAQ,UACpB,gBAAAA,MAAC,yBAAyC,OAAO,OAAO,KAAK,GAAG,WAAU,+BACxE,0BAAAC,OAAC,SAAI,WAAU,uBACb;AAAA,wBAAAD,MAAC,UAAK,WAAU,uBAAuB,iBAAO,OAAM;AAAA,QACpD,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,iBAAO,aAAY;AAAA,SACtE,KAJ0B,OAAO,KAKnC,CACD,GACH,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;AE5Df,SAAS,SAAS,iBAAiB,oBAAoB;AAOjD,SACE,OAAAG,OADF,QAAAC,cAAA;AAHN,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAA,OAAC,SAAI,WAAU,oDACb;AAAA,oBAAAA,OAAC,UAAO,SAAQ,SAAQ,WAAU,gDAChC;AAAA,sBAAAD,MAAC,gBAAa,WAAU,UAAS;AAAA,MAAE;AAAA,OAErC;AAAA,IACA,gBAAAC,OAAC,UAAO,SAAQ,SAAQ,WAAU,mCAChC;AAAA,sBAAAD,MAAC,WAAQ,WAAU,UAAS;AAAA,MAAE;AAAA,OAEhC;AAAA,IACA,gBAAAC,OAAC,UAAO,SAAQ,SAAQ,WAAU,gDAChC;AAAA,sBAAAD,MAAC,mBAAgB,WAAU,UAAS;AAAA,MAAE;AAAA,OAExC;AAAA,KACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACrBf,SAAS,YAAAE,iBAAgB;;;ACFzB,YAAYC,YAAW;AACvB;AAAA,EACE,mBAAAC;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAoB,WAAW,4BAA4B;AAyH/C,gBAAAC,aAAA;AApHZ,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,QAAM,oBAAoB,qBAAqB;AAE/C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,MACA,YAAY;AAAA,QACV,qBAAqB,CAAC,SACpB,KAAK,eAAe,WAAW,EAAE,OAAO,QAAQ,CAAC;AAAA,QACnD,GAAG;AAAA,MACL;AAAA,MACA,YAAY;AAAA,QACV,MAAM,GAAG,SAAS,kBAAkB,IAAI;AAAA,QACxC,QAAQ;AAAA,UACN;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,OAAO,GAAG,8BAA8B,kBAAkB,KAAK;AAAA,QAC/D,KAAK;AAAA,UACH;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,iBAAiB;AAAA,UACf,eAAe,EAAE,SAAS,cAAc,CAAC;AAAA,UACzC;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX,eAAe,EAAE,SAAS,cAAc,CAAC;AAAA,UACzC;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB,UACd,YACA;AAAA,UACJ,kBAAkB;AAAA,QACpB;AAAA,QACA,OAAO;AAAA,QACP,UAAU,GAAG,QAAQ,kBAAkB,QAAQ;AAAA,QAC/C,SAAS;AAAA,UACP;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,MAAM,GAAG,oBAAoB,kBAAkB,IAAI;AAAA,QACnD,oBAAoB;AAAA,UAClB;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,cAAc,GAAG,gBAAgB,kBAAkB,YAAY;AAAA,QAC/D,WAAW,GAAG,0BAA0B,kBAAkB,SAAS;AAAA,QACnE,OAAO;AAAA,UACL;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,SAAS;AAAA,UACP;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,QAAQ,GAAG,aAAa,kBAAkB,MAAM;AAAA,QAChD,GAAG;AAAA,MACL;AAAA,MACA,YAAY;AAAA,QACV,MAAM,CAAC,EAAE,WAAAC,YAAW,SAAS,GAAGC,OAAM,MAAM;AAC1C,iBACE,gBAAAF;AAAA,YAAC;AAAA;AAAA,cACC,aAAU;AAAA,cACV,KAAK;AAAA,cACL,WAAW,GAAGC,UAAS;AAAA,cACtB,GAAGC;AAAA;AAAA,UACN;AAAA,QAEJ;AAAA,QACA,SAAS,CAAC,EAAE,WAAAD,YAAW,aAAa,GAAGC,OAAM,MAAM;AACjD,cAAI,gBAAgB,QAAQ;AAC1B,mBACE,gBAAAF,MAAC,mBAAgB,WAAW,GAAG,UAAUC,UAAS,GAAI,GAAGC,QAAO;AAAA,UAEpE;AAEA,cAAI,gBAAgB,SAAS;AAC3B,mBACE,gBAAAF;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,GAAG,UAAUC,UAAS;AAAA,gBAChC,GAAGC;AAAA;AAAA,YACN;AAAA,UAEJ;AAEA,iBACE,gBAAAF,MAACG,kBAAA,EAAgB,WAAW,GAAG,UAAUF,UAAS,GAAI,GAAGC,QAAO;AAAA,QAEpE;AAAA,QACA,WAAW;AAAA,QACX,YAAY,CAAC,EAAE,UAAU,GAAGA,OAAM,MAAM;AACtC,iBACE,gBAAAF,MAAC,QAAI,GAAGE,QACN,0BAAAF,MAAC,SAAI,WAAU,mEACZ,UACH,GACF;AAAA,QAEJ;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA2C;AACzC,QAAM,oBAAoB,qBAAqB;AAE/C,QAAM,MAAY,cAA0B,IAAI;AAChD,EAAM,iBAAU,MAAM;AACpB,QAAI,UAAU,QAAS,KAAI,SAAS,MAAM;AAAA,EAC5C,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,YAAU,IAAI,KAAK,mBAAmB;AAAA,MACtC,wBACE,UAAU,YACV,CAAC,UAAU,eACX,CAAC,UAAU,aACX,CAAC,UAAU;AAAA,MAEb,oBAAkB,UAAU;AAAA,MAC5B,kBAAgB,UAAU;AAAA,MAC1B,qBAAmB,UAAU;AAAA,MAC7B,WAAW;AAAA,QACT;AAAA,QACA,kBAAkB;AAAA,QAClB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ADtMI,SACE,OAAAI,OADF,QAAAC,cAAA;AAJJ,IAAM,eAAe,MAAM;AACzB,QAAM,CAAC,MAAM,OAAO,IAAIC,UAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD,MAAC,YAAS,MAAK,UAAS,cAAc,MAAM,UAAU,MAAM,UAAU,SAAS,WAAU,qBAAoB;AAAA,IAC7G,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,2BAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AEjBf,SAAS,YAAAG,iBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,yBAAyB,MAAM;AACnC,QAAM,CAAC,MAAM,OAAO,IAAIC,UAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,kCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACxBf,SAAS,YAAAG,kBAAgB;AAarB,SACE,OAAAC,OADF,QAAAC,cAAA;AAPJ,IAAM,+BAA+B,MAAM;AACzC,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAgC;AAAA,IAChE,MAAM,IAAI,KAAK,MAAM,GAAG,CAAC;AAAA,IACzB,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAC1B,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,wDAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC5Bf,SAAS,YAAAG,kBAAgB;AAarB,SACE,OAAAC,OADF,QAAAC,cAAA;AAPJ,IAAM,sCAAsC,MAAM;AAChD,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAgC;AAAA,IAChE,MAAM,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,IAC1B,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAC1B,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,uDAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC7Bf,SAAS,YAAAG,kBAAgB;AAarB,SACE,OAAAC,OADF,QAAAC,cAAA;AAPJ,IAAM,mCAAmC,MAAM;AAC7C,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAgC;AAAA,IAChE,MAAM,IAAI,KAAK,MAAM,GAAG,CAAC;AAAA,IACzB,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAC1B,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,sCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC9Bf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,yBAAyB,MAAM;AACnC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC;AAExE,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,UACR,QAAQ,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,QAC9B;AAAA,QACA,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,mCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC1Bf,SAAS,YAAAG,kBAAgB;AAarB,SACE,OAAAC,OADF,QAAAC,cAAA;AAPJ,IAAM,+BAA+B,MAAM;AACzC,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAgC;AAAA,IAChE,MAAM,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,IAC1B,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAC1B,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE;AAAA,QAC9B,WAAU;AAAA,QACV,iBAAe;AAAA;AAAA,IACjB;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,uCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC9Bf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,2BAA2B,MAAM;AACrC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,oCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACtBf,SAAS,YAAAG,kBAAgB;AAEzB,SAAS,uBAAuB;AAChC,SAAS,YAAAC,iBAAgB;AA+Bf,gBAAAC,OAWE,QAAAC,cAXF;AAzBV,IAAM,SAAS;AAAA,EACb;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,EACN;AACF;AAEA,IAAM,wBAAwB,MAAM;AAClC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAA,OAAC,QAAK,WAAU,cACd;AAAA,sBAAAD,MAAC,eAAY,WAAU,QACrB,0BAAAA,MAAC,YAAS,MAAK,UAAS,UAAU,MAAM,UAAU,SAAS,WAAU,6BAA4B,UAAQ,MAAC,GAC5G;AAAA,MACA,gBAAAC,OAAC,cAAW,WAAU,uDACpB;AAAA,wBAAAA,OAAC,SAAI,WAAU,iDACb;AAAA,0BAAAD,MAAC,SAAI,WAAU,uBACZ,gBAAM,mBAAmB,SAAS;AAAA,YACjC,KAAK;AAAA,YACL,OAAO;AAAA,YACP,MAAM;AAAA,UACR,CAAC,GACH;AAAA,UACA,gBAAAC,OAAC,UAAO,SAAQ,SAAQ,MAAK,QAAO,WAAU,UAAS,OAAM,aAC3D;AAAA,4BAAAD,MAACG,WAAA,EAAS;AAAA,YACV,gBAAAH,MAAC,UAAK,WAAU,WAAU,uBAAS;AAAA,aACrC;AAAA,WACF;AAAA,QACA,gBAAAA,MAAC,SAAI,WAAU,8BACZ,iBAAO,IAAI,WACV,gBAAAC;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YAEV;AAAA,8BAAAD,MAAC,SAAI,WAAU,eAAe,gBAAM,OAAM;AAAA,cAC1C,gBAAAA,MAAC,SAAI,WAAU,iCACZ,0BAAgB,IAAI,KAAK,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,GAC3D;AAAA;AAAA;AAAA,UANK,MAAM;AAAA,QAOb,CACD,GACH;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,sCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACxEf,SAAS,YAAAI,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,0BAA0B,MAAM;AACpC,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAiB,CAAC,IAAI,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzF,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD,MAAC,YAAS,MAAK,YAAW,UAAQ,MAAC,UAAU,OAAO,UAAU,UAAU,KAAK,GAAG,WAAU,qBAAoB;AAAA,IAC9G,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,uCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACjBf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,8BAA8B,MAAM;AACxC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAU;AAAA,QACV,YAAY;AAAA,UACV,YACE;AAAA,UACF,OAAO;AAAA,QACT;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,wCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3Bf,SAAS,YAAAG,kBAAgB;AAarB,SACE,OAAAC,OADF,QAAAC,cAAA;AAPJ,IAAM,gCAAgC,MAAM;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAgC;AAAA,IAChE,MAAM,IAAI,KAAK,MAAM,GAAG,CAAC;AAAA,IACzB,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAC1B,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAU;AAAA,QACV,YAAY;AAAA,UACV,aAAa;AAAA,UACb,WAAW;AAAA,UACX,YACE;AAAA,UACF,OACE;AAAA,QACJ;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,6CAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACpCf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,6BAA6B,MAAM;AACvC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAU;AAAA,QACV,YAAY;AAAA,UACV,eAAe;AAAA,UACf,KAAK;AAAA,QACP;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,uDAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3Bf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,4BAA4B,MAAM;AACtC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAU;AAAA,QACV,YAAY;AAAA,UACV,eAAe;AAAA,UACf,KAAK;AAAA,QACP;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,sDAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3Bf,SAAS,YAAAG,kBAAgB;AAQrB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,yBAAyB,MAAM;AACnC,QAAM,CAAC,MAAM,OAAO,IAAIC,WAA2B,oBAAI,KAAK,CAAC;AAE7D,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAc;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAU;AAAA,QACV,gBAAc;AAAA;AAAA,IAChB;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS,kCAE5E;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACxBf,SAAS,aAAAG,YAAW,UAAAC,SAAQ,YAAAC,kBAAgB;AAE5C,SAAS,qBAAqB,oBAAoB,WAAW,QAAQ,SAAS,UAAU,mBAAmB;AAC3G,SAAS,mBAAAC,wBAAuB;;;ACLhC,YAAY,0BAA0B;AAEtC,IAAM,cAAmC;AAEzC,IAAMC,sBAA0C;AAEhD,IAAMC,sBAA0C;;;ACJhD,YAAYC,aAAW;AACvB,YAAY,yBAAyB;AAQnC,SAKE,OAAAC,OALF,QAAAC,cAAA;AAJF,IAAM,aAAmB,mBAGvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAA;AAAA,EAAqB;AAAA,EAApB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAqB,8BAApB,EAA6B,WAAU,mCACrC,UACH;AAAA,MACA,gBAAAA,MAAC,aAAU;AAAA,MACX,gBAAAA,MAAqB,4BAApB,EAA2B;AAAA;AAAA;AAC9B,CACD;AACD,WAAW,cAAkC,yBAAK;AAElD,IAAM,YAAkB,mBAGtB,CAAC,EAAE,WAAW,cAAc,YAAY,GAAG,MAAM,GAAG,QACpD,gBAAAA;AAAA,EAAqB;AAAA,EAApB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,gBAAgB,cACd;AAAA,MACF,gBAAgB,gBACd;AAAA,MACF;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA,MAAqB,qCAApB,EAAoC,WAAU,0CAAyC;AAAA;AAC1F,CACD;AACD,UAAU,cAAkC,wCAAoB;;;AFDpD,gBAAAE,OAwBN,QAAAC,cAxBM;AA/BZ,IAAM,mCAAmC,MAAM;AAC7C,QAAM,QAAQ,oBAAI,KAAK;AACvB,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAS,KAAK;AACxC,QAAM,CAAC,MAAM,OAAO,IAAIA,WAA2B,KAAK;AACxD,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAS,KAAK;AAClD,QAAM,YAAY,IAAI,KAAK,MAAM,CAAC;AAClC,QAAM,UAAU,IAAI,KAAK,MAAM,CAAC;AAEhC,QAAM,QAAQ,mBAAmB;AAAA,IAC/B,OAAO,YAAY,SAAS;AAAA,IAC5B,KAAK,UAAU,OAAO;AAAA,EACxB,CAAC;AAED,SACE,gBAAAD,OAAC,SACC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV;AAAA,QACA,eAAe;AAAA,QACf,cAAc,oBAAI,KAAK;AAAA,QACvB,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,WAAU;AAAA,QACV,YAAY;AAAA,UACV,eAAe;AAAA,UACf,KAAK;AAAA,QACP;AAAA,QACA,YAAY;AAAA,UACV,cAAc,CAAC,UACb,gBAAAA,MAAC,gBAAa,YAAwB,eAA+B,GAAG,OAAO;AAAA,UAEjF,WAAW,CAAC,UAA0B;AACpC,mBACE,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,MAAM;AAAA,gBACjB;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,aAAa,MAAM,YAAY;AAAA,gBAC/B,cAAc,MAAM,SAAS;AAAA,gBAC7B,eAAe,CAAC,kBAAwB;AACtC,2BAAS,aAAa;AACtB,gCAAc,KAAK;AAAA,gBACrB;AAAA,gBAEC,gBAAM;AAAA;AAAA,YACT;AAAA,UAEJ;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACA,gBAAAC,OAAC,OAAE,WAAU,kDAAiD,MAAK,UAAS;AAAA;AAAA,MAC1C;AAAA,MAChC,gBAAAD,MAAC,OAAE,MAAK,6CAA4C,WAAU,gCAA+B,QAAO,UAAS,uBAE7G;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAWG;AACD,QAAM,iBAAiBG,QAAuB,IAAI;AAClD,QAAM,wBAAwBA,QAA0B,IAAI;AAC5D,QAAM,gBAAgBA,QAAuB,IAAI;AAEjD,EAAAC,WAAU,MAAM;AACd,QAAI,cAAc,eAAe,WAAW,cAAc,SAAS;AACjE,YAAM,WAAW,cAAc,QAAQ,cAAc,mCAAmC;AAExF,UAAI,UAAU;AACZ,cAAM,UAAU,eAAe,QAAQ;AAEvC,iBAAS,YAAY;AAAA,MACvB;AAEA,iBAAW,MAAM;AACf,8BAAsB,SAAS,MAAM;AAAA,MACvC,GAAG,GAAG;AAAA,IACR;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEf,SACE,gBAAAH,OAAC,SAAI,WAAU,YACb;AAAA,oBAAAD,MAAC,WAAM,WAAuB,UAAS;AAAA,IACtC,cACC,gBAAAA,MAAC,SAAI,WAAU,mDACb,0BAAAA,MAAC,cAAW,KAAK,eAAe,WAAU,UACvC,gBAAM,IAAI,UAAQ;AACjB,YAAM,SAAS,oBAAoB;AAAA,QACjC,OAAO,YAAY,IAAI;AAAA,QACvB,KAAK,UAAU,IAAI;AAAA,MACrB,CAAC;AAED,YAAM,gBAAgB,KAAK,YAAY,MAAM;AAE7C,aACE,gBAAAA,MAAC,SAA6B,KAAK,gBAAgB,iBAAiB,QAClE,0BAAAA,MAAC,mBAAgB,OAAO,KAAK,YAAY,EAAE,SAAS,GAAG,MAAM,eAC3D,0BAAAA,MAAC,SAAI,WAAU,0BACZ,iBAAO,IAAI,WAAS;AACnB,cAAM,aAAa,SAAS,OAAO,SAAS,KAAK,QAAQ,OAAO,OAAO;AACvE,cAAM,iBAAiB,MAAM,SAAS,MAAM,gBAAgB,KAAK,YAAY,MAAM;AAEnF,eACE,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,KAAK,iBAAiB,wBAAwB;AAAA,YAC9C,SAAS,iBAAiB,YAAY;AAAA,YACtC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,UAAU;AAAA,YACV,SAAS,MAAM,cAAc,KAAK;AAAA,YAEjC,iBAAO,OAAO,KAAK;AAAA;AAAA,UARf,MAAM,QAAQ;AAAA,QASrB;AAAA,MAEJ,CAAC,GACH,GACF,KAtBQ,KAAK,YAAY,CAuB3B;AAAA,IAEJ,CAAC,GACH,GACF;AAAA,KAEJ;AAEJ;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAG2C;AACzC,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,SAAS,MAAM,cAAc,UAAQ,CAAC,IAAI;AAAA,MAC1C,cAAY,aAAa,SAAS;AAAA,MAEjC;AAAA;AAAA,QACD,gBAAAD;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,gBAAgB,EAAE,OAAO,UAAU,KAAK,GAAiE;AAChH,SACE,gBAAAJ,OAAC,eAAY,WAAU,wBAAuB,aAAa,MACzD;AAAA,oBAAAD,MAACM,qBAAA,EAAmB,SAAO,MACzB,0BAAAL;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAQ;AAAA,QACR,MAAK;AAAA,QAEL;AAAA,0BAAAD;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,eAAY;AAAA;AAAA,UACd;AAAA,UACC;AAAA;AAAA;AAAA,IACH,GACF;AAAA,IACA,gBAAAL,MAACO,qBAAA,EAAmB,WAAU,0IAC3B,UACH;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AGxNf,YAAYC,aAAW;AACvB,YAAY,uBAAuB;AACnC,SAAS,SAAAC,cAAa;AAmBhB,gBAAAC,aAAA;AAfN,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAW,GAAG,wCAAwC;AAAA,QAEtD,0BAAAA,MAACC,QAAA,EAAM,WAAU,WAAU;AAAA;AAAA,IAC7B;AAAA;AACF,CACD;AACD,SAAS,cAAgC,uBAAK;;;ACzB9C,SAAS,0BAA0B;AAS3B,gBAAAC,OAEE,QAAAC,cAFF;AAJR,IAAM,kBAAkB,MAAM;AAC5B,SACE,gBAAAA,OAAC,eAAY,WAAU,4CACrB;AAAA,oBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,sBAAAD,MAAC,SAAI,WAAU,yBAAwB,8CAAgC;AAAA,MACvE,gBAAAA,MAACE,qBAAA,EAAmB,SAAO,MACzB,0BAAAD,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,wBAAAD,MAAC,sBAAmB;AAAA,QACpB,gBAAAA,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,SAClC,GACF;AAAA,OACF;AAAA,IACA,gBAAAA,MAAC,SAAI,WAAU,iDAAgD,kCAAoB;AAAA,IACnF,gBAAAC,OAACE,qBAAA,EAAmB,WAAU,uBAC5B;AAAA,sBAAAH,MAAC,SAAI,WAAU,iDAAgD,8BAAgB;AAAA,MAC/E,gBAAAA,MAAC,SAAI,WAAU,iDAAgD,6BAAe;AAAA,OAChF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC1Bf,SAAS,oBAAAI,mBAAkB,UAAU,YAAY,sBAAsB;AAqDjE,SAIE,OAAAC,OAJF,QAAAC,cAAA;AApCN,IAAM,WAA2B;AAAA,EAC/B;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,UACR,EAAE,MAAM,cAAc,MAAM,OAAO;AAAA,UACnC,EAAE,MAAM,aAAa,MAAM,OAAO;AAAA,UAClC,EAAE,MAAM,eAAe,MAAM,OAAO;AAAA,QACtC;AAAA,MACF;AAAA,MACA,EAAE,MAAM,mBAAmB,MAAM,OAAO;AAAA,IAC1C;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,iBAAiB,MAAM,OAAO,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,YAAY,MAAM,OAAO,CAAC;AAAA,EAC/C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACF;AAEA,IAAM,WAAW,CAAC,EAAE,MAAM,MAAM,MAA6C;AAC3E,MAAI,KAAK,SAAS,QAAQ;AACxB,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,aAAa,GAAG,UAAU,IAAI,OAAO,IAAI,MAAM;AAAA,QAExD;AAAA,0BAAAD,MAAC,YAAS,WAAU,mBAAkB;AAAA,UACtC,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,eAAK,MAAK;AAAA;AAAA;AAAA,IAC7D;AAAA,EAEJ;AAEA,SACE,gBAAAC,OAAC,eAAY,WAAU,yBAAwB,OAAO,EAAE,aAAa,GAAG,UAAU,IAAI,IAAI,GAAG,MAAM,GACjG;AAAA,oBAAAA,OAACC,qBAAA,EAAmB,WAAU,2GAC5B;AAAA,sBAAAF,MAACG,mBAAA,EAAiB,WAAU,wEAAuE;AAAA,MACnG,gBAAAH,MAAC,cAAW,WAAU,gDAA+C;AAAA,MACrE,gBAAAA,MAAC,kBAAe,WAAU,kDAAiD;AAAA,MAC3E,gBAAAA,MAAC,UAAK,WAAU,WAAW,eAAK,MAAK;AAAA,OACvC;AAAA,IACA,gBAAAA,MAACI,qBAAA,EAAmB,WAAU,yBAC3B,eAAK,SAAS,IAAI,CAAAC,UACjB,gBAAAL,MAAC,YAAyB,MAAMK,OAAM,OAAO,QAAQ,KAAtCA,MAAK,IAAoC,CACzD,GACH;AAAA,KACF;AAEJ;AAEA,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAL,MAAC,SAAI,WAAU,uCACZ,mBAAS,IAAI,UACZ,gBAAAA,MAAC,YAAyB,MAAY,OAAO,KAA9B,KAAK,IAA4B,CACjD,GACH;AAEJ;AAEA,IAAO,yBAAQ;;;AC1Ff,SAAS,qBAAqB;AAwCxB,gBAAAM,OAIM,QAAAC,cAJN;AAlCN,IAAM,QAAQ;AAAA,EACZ;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AACF;AAEA,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,OAAC,eAAY,WAAU,wDACrB;AAAA,oBAAAD,MAAC,SAAI,WAAU,eAAc,qCAA4B;AAAA,IACzD,gBAAAC,OAAC,QAAG,WAAU,8BACX;AAAA,YAAM,MAAM,GAAG,CAAC,EAAE,IAAI,UACrB,gBAAAA,OAAC,QAAmB,WAAU,0BAC5B;AAAA,wBAAAA,OAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAK,KAAK,OAAO,KAAK,KAAK,MAAM;AAAA,UAC9C,gBAAAA,MAAC,kBAAgB,eAAK,UAAS;AAAA,WACjC;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,wBACb;AAAA,0BAAAD,MAAC,SAAI,WAAU,uBAAuB,eAAK,MAAK;AAAA,UAChD,gBAAAA,MAAC,OAAE,WAAU,iCAAiC,eAAK,aAAY;AAAA,WACjE;AAAA,QACA,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,aAAG,KAAK,UAAU,KAAI;AAAA,WAThE,KAAK,IAUd,CACD;AAAA,MACD,gBAAAA,MAACE,qBAAA,EAAmB,WAAU,uBAC3B,gBAAM,MAAM,CAAC,EAAE,IAAI,UAClB,gBAAAD,OAAC,QAAmB,WAAU,0BAC5B;AAAA,wBAAAA,OAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAK,KAAK,OAAO,KAAK,KAAK,MAAM;AAAA,UAC9C,gBAAAA,MAAC,kBAAgB,eAAK,UAAS;AAAA,WACjC;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,wBACb;AAAA,0BAAAD,MAAC,SAAI,WAAU,uBAAuB,eAAK,MAAK;AAAA,UAChD,gBAAAA,MAAC,OAAE,WAAU,iCAAiC,eAAK,aAAY;AAAA,WACjE;AAAA,QACA,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,aAAG,KAAK,UAAU,KAAI;AAAA,WAThE,KAAK,IAUd,CACD,GACH;AAAA,OACF;AAAA,IACA,gBAAAA,MAACG,qBAAA,EAAmB,SAAO,MACzB,0BAAAF,OAAC,UAAO,SAAQ,WAAU,MAAK,MAC7B;AAAA,sBAAAD,MAAC,UAAK,WAAU,gCAA+B,uBAAS;AAAA,MACxD,gBAAAA,MAAC,UAAK,WAAU,kCAAiC,uBAAS;AAAA,MAC1D,gBAAAA,MAAC,iBAAc,WAAU,sCAAqC;AAAA,OAChE,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AClFf,SAAS,oBAAAI,mBAAkB,mBAAmB,YAAAC,WAAU,gBAAgB;AA0CxD,SACE,OAAAC,OADF,QAAAC,cAAA;AApChB,IAAM,QAAQ;AAAA,EACZ;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AACF;AAEA,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAD,MAAC,QAAG,WAAU,4CACX,gBAAM,IAAI,UACT,gBAAAA,MAAC,eAA4B,SAAO,MAClC,0BAAAC,OAAC,QAAG,WAAU,uBACZ;AAAA,oBAAAA,OAACC,qBAAA,EAAmB,WAAU,kDAC5B;AAAA,sBAAAD,OAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,OAAC,UACC;AAAA,0BAAAD,MAAC,eAAY,KAAK,KAAK,OAAO,KAAK,KAAK,UAAU;AAAA,UAClD,gBAAAA,MAAC,kBAAgB,eAAK,UAAS;AAAA,WACjC;AAAA,QACA,gBAAAA,MAAC,UAAK,WAAU,eAAe,eAAK,MAAK;AAAA,SAC3C;AAAA,MACA,gBAAAA,MAACG,mBAAA,EAAiB,WAAU,+DAA8D;AAAA,OAC5F;AAAA,IACA,gBAAAH,MAACI,qBAAA,EACC,0BAAAH,OAAC,SAAI,WAAU,uBACb;AAAA,sBAAAD,MAAC,OAAE,WAAU,iCAAiC,eAAK,KAAI;AAAA,MACvD,gBAAAC,OAAC,SAAI,WAAU,2CACb;AAAA,wBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,0BAAAA,OAAC,UAAK,WAAU,2BACd;AAAA,4BAAAD,MAAC,YAAS,WAAU,UAAS;AAAA,YAC7B,gBAAAA,MAAC,UAAK,WAAU,WAAW,eAAK,WAAU;AAAA,aAC5C;AAAA,UACA,gBAAAC,OAAC,UAAK,WAAU,2BACd;AAAA,4BAAAD,MAAC,qBAAkB,WAAU,UAAS;AAAA,YACtC,gBAAAA,MAAC,UAAK,WAAU,WAAW,eAAK,UAAS;AAAA,aAC3C;AAAA,WACF;AAAA,QACC,KAAK,WACJ,gBAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,sCAAqC,uBAEzE,IAEA,gBAAAC,OAAC,UAAO,WAAU,sCAAqC;AAAA;AAAA,UAErD,gBAAAD,MAACK,WAAA,EAAS;AAAA,WACZ;AAAA,SAEJ;AAAA,OACF,GACF;AAAA,KACF,KAvCgB,KAAK,IAwCvB,CACD,GACH;AAEJ;AAEA,IAAO,yBAAQ;;;ACpFf,SAAS,mBAAAC,kBAAiB,YAAAC,iBAAgB;;;ACE1C,YAAYC,aAAW;AACvB,YAAY,wBAAwB;AAYhC,gBAAAC,aAAA;AARJ,IAAMC,aAAkB;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA,gBAAAD;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACAC,WAAU,cAAiC,wBAAK;;;ADdtC,gBAAAC,OAEE,QAAAC,cAFF;AALV,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA,OAAC,SAAI,WAAU,kCACb;AAAA,oBAAAA,OAAC,eAAY,WAAU,uBACrB;AAAA,sBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,wBAAAD,MAAC,SAAI,WAAU,yBAAwB,yBAAW;AAAA,QAClD,gBAAAA,MAACE,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAD,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,0BAAAD,MAACG,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,UAC3G,gBAAAH,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC,GACF;AAAA,SACF;AAAA,MACA,gBAAAC,OAACG,qBAAA,EAAmB,WAAU,uBAC5B;AAAA,wBAAAH,OAAC,SAAI,WAAU,gDACb;AAAA,0BAAAD,MAAC,SAAM,SAAQ,aAAY,WAAU,gCAA+B,uBAEpE;AAAA,UACA,gBAAAA,MAAC,SAAM,IAAG,aAAY,MAAK,UAAS,aAAY,KAAI,WAAU,YAAW;AAAA,WAC3E;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gDACb;AAAA,0BAAAD,MAAC,SAAM,SAAQ,aAAY,WAAU,gCAA+B,uBAEpE;AAAA,UACA,gBAAAA,MAAC,SAAM,IAAG,aAAY,MAAK,UAAS,aAAY,QAAO,WAAU,YAAW;AAAA,WAC9E;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAA,MAACK,YAAA,EAAU;AAAA,IACX,gBAAAJ,OAAC,eAAY,WAAU,4CACrB;AAAA,sBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,wBAAAD,MAAC,SAAI,WAAU,yBAAwB,8BAAgB;AAAA,QACvD,gBAAAA,MAACE,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAD,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,0BAAAD,MAACG,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,UAC3G,gBAAAH,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC,GACF;AAAA,SACF;AAAA,MACA,gBAAAC,OAACG,qBAAA,EAAmB,WAAU,uBAC5B;AAAA,wBAAAH,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,YAAW;AAAA,UACxB,gBAAAC,OAAC,SAAM,SAAQ,YAAW,WAAU,wDAClC;AAAA,4BAAAA,OAAC,UAAK,WAAU,2BAA0B;AAAA;AAAA,cAExC,gBAAAD,MAACM,WAAA,EAAS,WAAU,oFAAmF;AAAA,eACzG;AAAA,YAAO;AAAA,aAET;AAAA,WACF;AAAA,QACA,gBAAAL,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,YAAW;AAAA,UACxB,gBAAAC,OAAC,SAAM,SAAQ,YAAW,WAAU,wDAClC;AAAA,4BAAAA,OAAC,UAAK,WAAU,2BAA0B;AAAA;AAAA,cAExC,gBAAAD,MAACM,WAAA,EAAS,WAAU,oFAAmF;AAAA,eACzG;AAAA,YAAO;AAAA,aAET;AAAA,WACF;AAAA,QACA,gBAAAL,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,YAAW;AAAA,UACxB,gBAAAC,OAAC,SAAM,SAAQ,YAAW,WAAU,wDAClC;AAAA,4BAAAA,OAAC,UAAK,WAAU,2BAA0B;AAAA;AAAA,cAExC,gBAAAD,MAACM,WAAA,EAAS,WAAU,oFAAmF;AAAA,eACzG;AAAA,YAAO;AAAA,aAET;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAN,MAACK,YAAA,EAAU;AAAA,IACX,gBAAAJ,OAAC,eAAY,WAAU,4CACrB;AAAA,sBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,wBAAAD,MAAC,SAAI,WAAU,yBAAwB,mBAAK;AAAA,QAC5C,gBAAAA,MAACE,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAD,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,0BAAAD,MAACG,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,UAC3G,gBAAAH,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC,GACF;AAAA,SACF;AAAA,MACA,gBAAAC,OAACG,qBAAA,EAAmB,WAAU,uBAC5B;AAAA,wBAAAH,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,eAAc;AAAA,UAC3B,gBAAAA,MAAC,SAAM,SAAQ,eAAc,WAAU,gCAA+B,mBAEtE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,iBAAgB;AAAA,UAC7B,gBAAAA,MAAC,SAAM,SAAQ,iBAAgB,WAAU,gCAA+B,qBAExE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,oBAEvE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,iBAAgB;AAAA,UAC7B,gBAAAA,MAAC,SAAM,SAAQ,iBAAgB,WAAU,gCAA+B,qBAExE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,oBAEvE;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAA,MAACK,YAAA,EAAU;AAAA,IACX,gBAAAJ,OAAC,eAAY,WAAU,4CACrB;AAAA,sBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,wBAAAD,MAAC,SAAI,WAAU,yBAAwB,qBAAO;AAAA,QAC9C,gBAAAA,MAACE,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAD,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,0BAAAD,MAACG,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,UAC3G,gBAAAH,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC,GACF;AAAA,SACF;AAAA,MACA,gBAAAC,OAACG,qBAAA,EAAmB,WAAU,uBAC5B;AAAA,wBAAAH,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,qBAEvE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,qBAEvE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,qBAEvE;AAAA,WACF;AAAA,QACA,gBAAAC,OAAC,SAAI,WAAU,gCACb;AAAA,0BAAAD,MAAC,YAAS,IAAG,gBAAe;AAAA,UAC5B,gBAAAA,MAAC,SAAM,SAAQ,gBAAe,WAAU,gCAA+B,qBAEvE;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AErKf,SAAS,YAAAO,kBAAgB;AAWjB,gBAAAC,OACA,QAAAC,cADA;AAPR,IAAM,0BAA0B,MAAM;AACpC,QAAM,CAAC,kBAAkB,mBAAmB,IAAIC,WAAS,IAAI;AAC7D,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,WAAS,KAAK;AAEhE,SACE,gBAAAD,OAAC,SAAI,WAAU,oBACb;AAAA,oBAAAA,OAAC,SAAI,WAAU,aACb;AAAA,sBAAAD,MAAC,OAAE,WAAU,eAAc,uCAAyB;AAAA,MACpD,gBAAAC,OAAC,eAAY,MAAM,kBAAkB,cAAc,qBAAqB,WAAU,aAChF;AAAA,wBAAAD,MAACG,qBAAA,EACC,0BAAAH,MAAC,OAAE,WAAU,WAAU,+LAGvB,GACF;AAAA,QACA,gBAAAA,MAACI,qBAAA,EACC,0BAAAJ,MAAC,UAAK,WAAU,2CACb,6BAAmB,gBAAgB,eACtC,GACF;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,OAAC,SAAI,WAAU,aACb;AAAA,sBAAAD,MAAC,OAAE,WAAU,eAAc,oCAAsB;AAAA,MACjD,gBAAAC,OAAC,eAAY,MAAM,mBAAmB,cAAc,sBAAsB,WAAU,aAClF;AAAA,wBAAAD,MAACG,qBAAA,EACC,0BAAAH,MAAC,OAAE,WAAU,WAAU,uHAEvB,GACF;AAAA,QACA,gBAAAA,MAACI,qBAAA,EACC,0BAAAJ,MAAC,UAAK,WAAU,2CACb,8BAAoB,gBAAgB,eACvC,GACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC/Cf,SAAS,iBAAAK,sBAAqB;AAWpB,gBAAAC,OAGI,QAAAC,cAHJ;AALV,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAD,MAAC,QAAK,WAAU,wBACd,0BAAAC,OAAC,eACC;AAAA,oBAAAA,OAAC,SAAI,WAAU,oDACb;AAAA,sBAAAD,MAAC,aAAU,sCAAwB;AAAA,MACnC,gBAAAA,MAAC,cACC,0BAAAA,MAACE,qBAAA,EAAmB,SAAO,MACzB,0BAAAD,OAAC,UAAO,SAAQ,WAAU,MAAK,MAC7B;AAAA,wBAAAD,MAAC,UAAK,WAAU,gCAA+B,kBAAI;AAAA,QACnD,gBAAAA,MAAC,UAAK,WAAU,kCAAiC,kBAAI;AAAA,QACrD,gBAAAA,MAACG,gBAAA,EAAc,WAAU,sCAAqC;AAAA,SAChE,GACF,GACF;AAAA,OACF;AAAA,IACA,gBAAAH,MAACI,qBAAA,EACC,0BAAAH,OAAC,eAAY,WAAU,kBACrB;AAAA,sBAAAD,MAAC,OAAE,WAAU,QAAO,kFAAyE;AAAA,MAC7F,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,KAAI;AAAA,UACJ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACnCf,SAAS,oBAAAK,mBAAkB,iBAAiB,YAAY,gBAAAC,eAAc,YAAAC,WAAU,iBAAiB;AAgBzF,gBAAAC,OAGA,QAAAC,cAHA;AAJR,IAAM,8BAA8B,MAAM;AACxC,SACE,gBAAAA,OAAC,gBACC;AAAA,oBAAAD,MAAC,uBAAoB,SAAO,MAC1B,0BAAAA,MAAC,UAAO,SAAQ,WAAU,uCAAyB,GACrD;AAAA,IACA,gBAAAC,OAAC,uBAAoB,WAAU,QAC7B;AAAA,sBAAAA,OAAC,oBACC;AAAA,wBAAAD,MAACE,WAAA,EAAS;AAAA,QACV,gBAAAF,MAAC,UAAK,qBAAO;AAAA,SACf;AAAA,MACA,gBAAAA,MAAC,eAAY,SAAO,MAClB,0BAAAC,OAAC,qBACC;AAAA,wBAAAD,MAACG,qBAAA,EAAmB,SAAO,MACzB,0BAAAF,OAAC,oBAAiB,UAAU,WAAS,MAAM,eAAe,GAAG,WAAU,mBACrE;AAAA,0BAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,MAACI,eAAA,EAAa;AAAA,YACd,gBAAAJ,MAAC,UAAK,sBAAQ;AAAA,aAChB;AAAA,UACA,gBAAAA,MAACK,mBAAA,EAAiB,WAAU,iEAAgE;AAAA,WAC9F,GACF;AAAA,QACA,gBAAAJ,OAACK,qBAAA,EAAmB,WAAU,QAC5B;AAAA,0BAAAL,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,qBAAO;AAAA,aACf;AAAA,UACA,gBAAAC,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,sBAAQ;AAAA,aAChB;AAAA,UACA,gBAAAC,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,6BAAe;AAAA,aACvB;AAAA,WACF;AAAA,SACF,GACF;AAAA,MACA,gBAAAA,MAAC,eAAY,SAAO,MAClB,0BAAAC,OAAC,qBACC;AAAA,wBAAAD,MAACG,qBAAA,EAAmB,SAAO,MACzB,0BAAAF,OAAC,oBAAiB,UAAU,WAAS,MAAM,eAAe,GAAG,WAAU,mBACrE;AAAA,0BAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,MAAC,aAAU;AAAA,YACX,gBAAAA,MAAC,UAAK,mBAAK;AAAA,aACb;AAAA,UACA,gBAAAA,MAACK,mBAAA,EAAiB,WAAU,iEAAgE;AAAA,WAC9F,GACF;AAAA,QACA,gBAAAJ,OAACK,qBAAA,EAAmB,WAAU,QAC5B;AAAA,0BAAAL,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,mBAAK;AAAA,aACb;AAAA,UACA,gBAAAC,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,sBAAQ;AAAA,aAChB;AAAA,UACA,gBAAAC,OAAC,oBACC;AAAA,4BAAAD,MAAC,mBAAgB;AAAA,YACjB,gBAAAA,MAAC,UAAK,yBAAW;AAAA,aACnB;AAAA,WACF;AAAA,SACF,GACF;AAAA,MACA,gBAAAC,OAAC,oBACC;AAAA,wBAAAD,MAAC,cAAW;AAAA,QACZ,gBAAAA,MAAC,UAAK,qBAAO;AAAA,SACf;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACtFf,SAAS,aAAa;AAEtB,SAAS,mBAAAO,kBAAiB,sBAAsB;AAEhD,SAAS,wBAAwB;AACjC,OAAO,YAAiC;;;ACLxC,YAAYC,aAAW;AACvB,YAAY,yBAAyB;AACrC,SAAS,UAAAC,eAAc;AASnB,gBAAAC,aAAA;AALJ,IAAMC,cAAmB,mBAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAD;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC,WAAW,GAAG,cAAc,SAAS;AAAA,MACpC,GAAG;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ,CAAC;AACDC,YAAW,cAAkC,yBAAK;AAElD,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAD;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAqB,+BAApB,EAA8B,WAAU,oCACvC,0BAAAA,MAACE,SAAA,EAAO,WAAU,4BAA2B,GAC/C;AAAA;AAAA,EACF;AAEJ,CAAC;AACD,eAAe,cAAkC,yBAAK;;;ADV1C,gBAAAC,OAEE,QAAAC,cAFF;AAfZ,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAK,MAAM;AACjB,QAAM,EAAE,MAAM,oBAAoB,oBAAoB,aAAa,kBAAkB,IAAI,iBAAiB;AAE1G,QAAMC,SAAQ;AAAA,IACZ,EAAE,OAAO,KAAK,OAAO,qBAAqB,aAAa,sCAAsC,OAAO,OAAO;AAAA,IAC3G,EAAE,OAAO,KAAK,OAAO,WAAW,aAAa,qCAAqC,OAAO,QAAQ;AAAA,IACjG,EAAE,OAAO,KAAK,OAAO,aAAa,aAAa,YAAY,OAAO,SAAS;AAAA,EAC7E;AAEA,SACE,gBAAAD,OAAC,SAAI,WAAU,oBACb;AAAA,oBAAAA,OAAC,SAAI,WAAU,oDACb;AAAA,sBAAAD,MAAC,eAAY,WAAU,uBACrB,0BAAAC,OAAC,SAAI,WAAU,gDACb;AAAA,wBAAAD,MAAC,SAAI,WAAU,yBAAwB,8BAAgB;AAAA,QACvD,gBAAAA,MAACG,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAF,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,0BAAAD,MAACI,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,UAC3G,gBAAAJ,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC,GACF;AAAA,SACF,GACF;AAAA,MACA,gBAAAA,MAACK,YAAA,EAAU;AAAA,MACX,gBAAAJ,OAAC,eAAY,WAAU,uBACrB;AAAA,wBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,0BAAAD,MAAC,SAAI,WAAU,yBAAwB,8BAAgB;AAAA,UACvD,gBAAAA,MAACG,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAF,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,4BAAAD,MAACI,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,YAC3G,gBAAAJ,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,aAClC,GACF;AAAA,WACF;AAAA,QACA,gBAAAA,MAACM,qBAAA,EAAmB,WAAU,4BAC5B,0BAAAN,MAACO,aAAA,EAAW,WAAU,sDAAqD,cAAa,KACrF,UAAAL,OAAM,IAAI,UACT,gBAAAF;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YAEV,0BAAAC,OAAC,SAAI,WAAU,6CACb;AAAA,8BAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,gCAAAD;AAAA,kBAAC;AAAA;AAAA,oBACC,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,oBACvB,OAAO,KAAK;AAAA,oBACZ,WAAU;AAAA,oBACV,cAAY,cAAc,KAAK,KAAK;AAAA,oBACpC,oBAAkB,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE;AAAA;AAAA,gBAC5C;AAAA,gBACA,gBAAAC,OAAC,SAAI,WAAU,aACb;AAAA,kCAAAD,MAAC,SAAM,WAAU,4BAA2B,SAAS,GAAG,EAAE,IAAI,KAAK,KAAK,IACrE,eAAK,OACR;AAAA,kBACA,gBAAAA,MAAC,OAAE,WAAU,iCAAiC,eAAK,aAAY;AAAA,mBACjE;AAAA,iBACF;AAAA,cACA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE;AAAA,kBAC5B,WAAU;AAAA,kBAET,eAAK;AAAA;AAAA,cACR;AAAA,eACF;AAAA;AAAA,UAzBK,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,QA0B1B,CACD,GACH,GACF;AAAA,SACF;AAAA,MACA,gBAAAA,MAACK,YAAA,EAAU;AAAA,MACX,gBAAAJ,OAAC,eAAY,WAAU,uBACrB;AAAA,wBAAAA,OAAC,SAAI,WAAU,gDACb;AAAA,0BAAAD,MAAC,SAAI,WAAU,yBAAwB,qBAAO;AAAA,UAC9C,gBAAAA,MAACG,qBAAA,EAAmB,SAAO,MAAC,WAAU,SACpC,0BAAAF,OAAC,UAAO,SAAQ,SAAQ,MAAK,WAC3B;AAAA,4BAAAD,MAACI,kBAAA,EAAgB,WAAU,iFAAgF;AAAA,YAC3G,gBAAAJ,MAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,aAClC,GACF;AAAA,WACF;AAAA,QACA,gBAAAA,MAACM,qBAAA,EAAmB,WAAU,uBAC5B,0BAAAL,OAAC,SAAI,WAAU,8BACb;AAAA,0BAAAD,MAAC,SAAM,0BAAY;AAAA,UACnB,gBAAAC,OAAC,SACC;AAAA,4BAAAA,OAAC,SAAI,WAAU,6BACb;AAAA,8BAAAD;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,mBAAmB;AAAA,kBACvB,IAAI,UAAU,EAAE;AAAA,kBAChB,WAAU;AAAA;AAAA,cACZ;AAAA,cACA,gBAAAC,OAAC,SAAI,WAAU,uIACZ;AAAA,qBAAK,WACJ,gBAAAD;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACT,GAAG,kBAAkB;AAAA,sBACpB;AAAA,oBACF,CAAC;AAAA;AAAA,gBACH,IAEA,gBAAAA,MAAC,kBAAe,WAAU,UAAS;AAAA,gBAErC,gBAAAA,MAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,iBACzC;AAAA,eACF;AAAA,YACA,gBAAAC,OAAC,SAAI,WAAU,eACb;AAAA,8BAAAD,MAAC,SAAI,WAAU,mCACb,0BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,mBAAmB;AAAA,kBACvB,IAAI,UAAU,EAAE;AAAA,kBAChB,WAAU;AAAA;AAAA,cACZ,GACF;AAAA,cACA,gBAAAA,MAAC,SAAI,WAAU,0CACb,0BAAAA,MAAC,SAAO,GAAG,YAAY,GAAG,IAAI,OAAO,EAAE,IAAI,WAAU,6CAA4C,GACnG;AAAA,eACF;AAAA,aACF;AAAA,WACF,GACF;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,OAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AEvJf,SAAS,YAAAQ,kBAAgB;AAEzB,SAAS,WAAW,sBAAAC,2BAA0B;;;ACJ9C,YAAYC,aAAW;AAEvB,SAAS,WAAW,wBAAwB;AAC5C,SAAS,cAAc;AASrB,gBAAAC,OA2BA,QAAAC,cA3BA;AAJF,IAAM,UAAgB,mBAGpB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,QAAQ,cAAc,iBAAiB;AAcvC,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAE,OAAC,SAAI,WAAU,mCAAkC,sBAAmB,IAClE;AAAA,kBAAAC,MAAC,UAAO,WAAU,oCAAmC;AAAA,EACrD,gBAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAAA,GACF,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,mDAAmD,SAAS;AAAA,IACzE,GAAG;AAAA;AACN,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,eAAqB,mBAGzB,CAAC,OAAO,QACR,gBAAAA;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAU;AAAA,IACT,GAAG;AAAA;AACN,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,wBAAwB,SAAS;AAAA,IAC9C,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc,iBAAiB,UAAU;AAE1D,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA,GAAG;AACL,MAA6C;AAC3C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;;;ACxI9B,YAAYC,aAAW;AACvB,YAAY,sBAAsB;AAe9B,gBAAAC,aAAA;AAXJ,IAAM,UAA2B;AAEjC,IAAM,iBAAkC;AAExC,IAAM,gBAAiC;AAEvC,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,QAAQ,UAAU,aAAa,GAAG,GAAG,MAAM,GAAG,QAC5D,gBAAAA,MAAkB,yBAAjB,EACC,0BAAAA;AAAA,EAAkB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,GACF,CACD;AACD,eAAe,cAA+B,yBAAQ;;;AFmB9C,SAQE,OAAAC,OARF,QAAAC,cAAA;AA9BR,IAAM,aAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAEA,IAAM,eAAe,MAAM;AACzB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,EAAE;AAErC,SACE,gBAAAD,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,oBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,WAAU;AAAA,QACV,cAAW;AAAA,QAEV;AAAA,kBAAQ,WAAW,KAAK,eAAa,UAAU,UAAU,KAAK,GAAG,QAAQ;AAAA,UAC1E,gBAAAD,MAACG,qBAAA,EAAmB,WAAU,cAAa;AAAA;AAAA;AAAA,IAC7C,GACF;AAAA,IACA,gBAAAH,MAAC,kBAAe,WAAU,OACxB,0BAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,gBAAa,aAAY,uBAAsB,WAAU,OAAM;AAAA,MAChE,gBAAAC,OAAC,eACC;AAAA,wBAAAD,MAAC,gBAAa,iCAAmB;AAAA,QACjC,gBAAAA,MAAC,gBACE,qBAAW,IAAI,eACd,gBAAAC;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO,UAAU;AAAA,YACjB,UAAU,kBAAgB;AACxB,uBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,sBAAQ,KAAK;AAAA,YACf;AAAA,YAEC;AAAA,wBAAU;AAAA,cACX,gBAAAD,MAAC,aAAU,WAAW,GAAG,WAAW,UAAU,UAAU,QAAQ,gBAAgB,WAAW,GAAG;AAAA;AAAA;AAAA,UARzF,UAAU;AAAA,QASjB,CACD,GACH;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AGvFf,SAAS,YAAAI,WAAU,SAAAC,QAAO,YAAAC,kBAAgB;AAE1C,SAAS,aAAAC,YAAW,sBAAAC,2BAA0B;AAoCxC,gBAAAC,OAGI,QAAAC,cAHJ;AAtBN,IAAM,QAAQ;AAAA,EACZ;AAAA,IACE,WAAW;AAAA,IACX,OAAO,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,OAAO,UAAU,GAAG,EAAE,OAAO,WAAW,CAAC;AAAA,EAC1E;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,OAAO,CAAC,EAAE,OAAO,UAAU,GAAG,EAAE,OAAO,WAAW,GAAG,EAAE,OAAO,UAAU,CAAC;AAAA,EAC3E;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,OAAO,CAAC,EAAE,OAAO,MAAM,GAAG,EAAE,OAAO,SAAS,GAAG,EAAE,OAAO,QAAQ,CAAC;AAAA,EACnE;AACF;AAEA,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAkB,KAAK;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,EAAE;AAE7C,SACE,gBAAAF,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,oBACC,gBAAAD,MAAC,UAAK,WAAU,mCACd,0BAAAA,MAAC,UAAK,WAAU,YAAY,iBAAM,GACpC,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,yBAAW;AAAA,YAErD,gBAAAA,MAACI,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACvF,GACF;AAAA,MACA,gBAAAJ,MAAC,kBAAe,WAAU,oEAAmE,OAAM,SACjG,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,kBAAiB;AAAA,QAC3C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,4BAAc;AAAA,UAC3B,MAAM,IAAI,WACT,gBAAAA,MAACK,WAAA,EACC,0BAAAL,MAAC,gBAAa,SAAS,MAAM,WAC1B,gBAAM,MAAM,IAAI,UACf,gBAAAC;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,kBAAgB;AACxB,yBAAS,YAAY;AACrB,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEC;AAAA,qBAAK;AAAA,gBACL,UAAU,KAAK,SAAS,gBAAAD,MAACM,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YAR7D,KAAK;AAAA,UASZ,CACD,GACH,KAfa,MAAM,SAgBrB,CACD;AAAA,WACH;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACxFf,SAAS,YAAAC,WAAU,SAAAC,QAAO,YAAAC,kBAAgB;AAE1C,SAAS,aAAAC,YAAW,sBAAAC,2BAA0B;AAsCxC,gBAAAC,OAGI,QAAAC,cAHJ;AAtBN,IAAMC,SAAQ;AAAA,EACZ;AAAA,IACE,UAAU;AAAA,IACV,OAAO,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,OAAO,UAAU,GAAG,EAAE,OAAO,WAAW,CAAC;AAAA,EAC1E;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO,CAAC,EAAE,OAAO,UAAU,GAAG,EAAE,OAAO,YAAY,UAAU,KAAK,GAAG,EAAE,OAAO,UAAU,CAAC;AAAA,EAC3F;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO,CAAC,EAAE,OAAO,MAAM,GAAG,EAAE,OAAO,UAAU,UAAU,KAAK,GAAG,EAAE,OAAO,QAAQ,CAAC;AAAA,EACnF;AACF;AAEA,IAAM,6BAA6B,MAAM;AACvC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAkB,KAAK;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,EAAE;AAE7C,SACE,gBAAAH,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,uCAAyB;AAAA,IAC7C,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,oBACC,gBAAAD,MAAC,UAAK,WAAU,mCACd,0BAAAA,MAAC,UAAK,WAAU,YAAY,iBAAM,GACpC,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,yBAAW;AAAA,YAErD,gBAAAA,MAACK,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACvF,GACF;AAAA,MACA,gBAAAL,MAAC,kBAAe,WAAU,oEAAmE,OAAM,SACjG,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,kBAAiB;AAAA,QAC3C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,4BAAc;AAAA,UAC3BE,OAAM,IAAI,WACT,gBAAAF,MAACM,WAAA,EACC,0BAAAN,MAAC,gBAAa,SAAS,MAAM,UAC1B,gBAAM,MAAM,IAAI,UACf,gBAAAC;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,kBAAgB;AACxB,yBAAS,YAAY;AACrB,wBAAQ,KAAK;AAAA,cACf;AAAA,cACA,WAAW,GAAG,KAAK,YAAY,+BAA+B;AAAA,cAC9D,UAAU,KAAK;AAAA,cAEd;AAAA,qBAAK;AAAA,gBACL,UAAU,KAAK,SAAS,gBAAAD,MAACO,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YAV7D,KAAK;AAAA,UAWZ,CACD,GACH,KAjBa,MAAM,QAkBrB,CACD;AAAA,WACH;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AChGf,SAAS,SAAAC,QAAO,YAAAC,kBAAgB;AAEhC;AAAA,EACE,sBAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0ED,gBAAAC,OAWQ,QAAAC,cAXR;AA5DN,IAAM,aAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEA,IAAM,8BAA8B,MAAM;AACxC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAkB,KAAK;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,EAAE;AAE7C,SACE,gBAAAF,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,uCAAyB;AAAA,IAC7C,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,oBACC,gBAAAA,OAAC,UAAK,WAAU,mCACZ;AAAA,qBAAM;AACN,sBAAM,eAAe,WAAW,KAAK,cAAY,SAAS,UAAU,KAAK;AAEzE,oBAAI,cAAc;AAChB,wBAAMG,QAAO,aAAa;AAE1B,yBAAO,gBAAAJ,MAACI,OAAA,EAAK,WAAU,yBAAwB;AAAA,gBACjD;AAEA,uBAAO;AAAA,cACT,GAAG;AAAA,cACH,gBAAAJ,MAAC,UAAK,WAAU,YAAY,qBAAW,KAAK,cAAY,SAAS,UAAU,KAAK,GAAG,OAAM;AAAA,eAC3F,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,sCAAwB;AAAA,YAElE,gBAAAA,MAACK,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACvF,GACF;AAAA,MACA,gBAAAL,MAAC,kBAAe,WAAU,oEAAmE,OAAM,SACjG,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,wBAAuB;AAAA,QACjD,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,gCAAkB;AAAA,UAChC,gBAAAA,MAAC,gBACE,qBAAW,IAAI,cACd,gBAAAA;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,SAAS;AAAA,cAChB,UAAU,kBAAgB;AACxB,yBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,wBAAQ,KAAK;AAAA,cACf;AAAA,cACA,WAAU;AAAA,cAEV,0BAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,gCAAAD,MAAC,SAAS,MAAT,EAAc,WAAU,gCAA+B;AAAA,gBACvD,SAAS;AAAA,iBACZ;AAAA;AAAA,YAXK,SAAS;AAAA,UAYhB,CACD,GACH;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACpJf,SAAS,SAAAM,QAAO,YAAAC,kBAAgB;AAEhC,SAAS,iBAAiB,sBAAAC,2BAA0B;AA8C9C,gBAAAC,OAGI,QAAAC,cAHJ;AA9BN,IAAMC,cAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAEA,IAAM,8BAA8B,MAAM;AACxC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,EAAE;AAErC,SACE,gBAAAH,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,6CAA+B;AAAA,IACnD,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,oBACCC,YAAW,KAAK,eAAa,UAAU,UAAU,KAAK,GAAG,QAEzD,gBAAAF,MAAC,UAAK,WAAU,yBAAwB,sCAAwB;AAAA,YAElE,gBAAAA,MAACK,qBAAA,EAAmB,WAAU,cAAa;AAAA;AAAA;AAAA,MAC7C,GACF;AAAA,MACA,gBAAAL,MAAC,kBAAe,WAAU,OACxB,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,uBAAsB,WAAU,OAAM;AAAA,QAChE,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,iCAAmB;AAAA,UACjC,gBAAAA,MAAC,gBACE,UAAAE,YAAW,IAAI,eACd,gBAAAD;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,UAAU;AAAA,cACjB,UAAU,kBAAgB;AACxB,yBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEC;AAAA,0BAAU;AAAA,gBACX,gBAAAD;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAW;AAAA,sBACT;AAAA,sBACA,UAAU,UAAU,QAAQ,gBAAgB;AAAA,oBAC9C;AAAA;AAAA,gBACF;AAAA;AAAA;AAAA,YAbK,UAAU;AAAA,UAcjB,CACD,GACH;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACrGf,SAAS,SAAAM,QAAO,YAAAC,kBAAgB;AAEhC,SAAS,aAAAC,YAAW,sBAAAC,qBAAoB,YAAAC,iBAAgB;AA2ClD,gBAAAC,OAGI,QAAAC,cAHJ;AA1BN,IAAM,eAAe;AAAA,EACnB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAEA,IAAM,kCAAkC,MAAM;AAC5C,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAkB,KAAK;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,SAAS;AAEpD,SACE,gBAAAF,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,iDAAmC;AAAA,IACvD,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAEV;AAAA,4BAAAD,MAAC,UAAK,WAAW,GAAG,YAAY,CAAC,SAAS,uBAAuB,GAC9D,kBACC,aAAa,KAAK,gBAAc,WAAW,UAAU,KAAK,GAAG,QAE7D,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,+BAAiB,GAE7D;AAAA,YACA,gBAAAA,MAACI,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACvF,GACF;AAAA,MACA,gBAAAJ,MAAC,kBAAe,WAAU,oEAAmE,OAAM,SACjG,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,mBAAkB;AAAA,QAC5C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,kCAAoB;AAAA,UAClC,gBAAAA,MAAC,gBACE,uBAAa,IAAI,gBAChB,gBAAAC;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,WAAW;AAAA,cAClB,UAAU,kBAAgB;AACxB,yBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEC;AAAA,2BAAW;AAAA,gBACX,UAAU,WAAW,SAAS,gBAAAD,MAACK,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YARnE,WAAW;AAAA,UASlB,CACD,GACH;AAAA,UACA,gBAAAL,MAAC,oBAAiB;AAAA,UAClB,gBAAAA,MAAC,gBACC,0BAAAC,OAAC,UAAO,SAAQ,SAAQ,WAAU,oCAChC;AAAA,4BAAAD,MAACM,WAAA,EAAS,WAAU,oBAAmB,eAAY,QAAO;AAAA,YAAE;AAAA,aAE9D,GACF;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AClGf,SAAS,SAAAC,QAAO,SAAS,YAAAC,kBAAgB;AAEzC,SAAS,aAAAC,YAAW,sBAAAC,2BAA0B;AA+CxC,gBAAAC,OAGI,QAAAC,cAHJ;AA/BN,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,cAAc;AAGzD,QAAM,YAAa,KAAa,kBAAkB,UAAU;AAE5D,QAAM,qBAAqB,QAAQ,MAAM;AACvC,WAAO,UACJ,IAAI,CAAC,aAAqB;AACzB,YAAM,YAAY,IAAI,KAAK,eAAe,MAAM;AAAA,QAC9C,UAAU;AAAA,QACV,cAAc;AAAA,MAChB,CAAC;AAED,YAAM,QAAQ,UAAU,cAAc,oBAAI,KAAK,CAAC;AAChD,YAAM,SAAS,MAAM,KAAK,UAAQ,KAAK,SAAS,cAAc,GAAG,SAAS;AAC1E,YAAM,kBAAkB,WAAW,QAAQ,UAAU;AAErD,aAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO,IAAI,eAAe,KAAK,SAAS,QAAQ,MAAM,GAAG,CAAC;AAAA,QAC1D,eAAe,SAAS,gBAAgB,QAAQ,OAAO,EAAE,EAAE,QAAQ,KAAK,EAAE,KAAK,GAAG;AAAA,MACpF;AAAA,IACF,CAAC,EACA,KAAK,CAAC,GAA4B,MAA+B,EAAE,gBAAgB,EAAE,aAAa;AAAA,EACvG,GAAG,CAAC,SAAS,CAAC;AAEd,SACE,gBAAAF,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,+BAAiB;AAAA,IACrC,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,IAAQ,SAAQ,WAAU,MAAK,YAAW,iBAAe,MAAM,WAAU,+BAC/E;AAAA,wBAAAD,MAAC,UAAK,WAAW,GAAG,UAAU,GAC3B,kBACC,mBAAmB,KAAK,cAAY,SAAS,UAAU,KAAK,GAAG,QAE/D,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,6BAAe,GAE3D;AAAA,QACA,gBAAAA,MAACI,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA,SACvF,GACF;AAAA,MACA,gBAAAJ,MAAC,kBAAe,WAAU,uCACxB,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,mBAAkB;AAAA,QAC5C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,gCAAkB;AAAA,UAChC,gBAAAA,MAAC,gBACE,6BAAmB,IAAI,CAAC,EAAE,OAAO,WAAW,MAAM,MACjD,gBAAAC;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO;AAAA,cACP,UAAU,kBAAgB;AACxB,yBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEA;AAAA,gCAAAD,MAAC,UAAK,WAAU,YAAY,iBAAM;AAAA,gBACjC,UAAU,aAAa,gBAAAA,MAACK,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YAR5D;AAAA,UASP,CACD,GACH;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC7Ff,SAAS,SAAAC,QAAO,YAAAC,kBAAgB;AAEhC,SAAS,aAAAC,YAAW,sBAAAC,2BAA0B;AA2ExC,gBAAAC,OAMU,QAAAC,cANV;AA5DN,IAAMC,SAAQ;AAAA,EACZ;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,mBAAmB,MAAM;AAC7B,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,EAAE;AAErC,QAAM,eAAeF,OAAM,KAAK,UAAQ,KAAK,SAAS,KAAK;AAE3D,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,2BAAa;AAAA,IACjC,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC,OAAC,UAAO,IAAQ,SAAQ,WAAU,MAAK,YAAW,iBAAe,MAAM,WAAU,+BAC9E;AAAA,uBACC,gBAAAA,OAAC,UAAK,WAAU,cACd;AAAA,0BAAAA,OAAC,UAAO,WAAU,UAChB;AAAA,4BAAAD,MAAC,eAAY,KAAK,aAAa,QAAQ,KAAK,aAAa,MAAM;AAAA,YAC/D,gBAAAA,MAAC,kBAAgB,uBAAa,KAAK,CAAC,GAAE;AAAA,aACxC;AAAA,UACA,gBAAAA,MAAC,UAAK,WAAU,eAAe,uBAAa,MAAK;AAAA,WACnD,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,yBAAW;AAAA,QAErD,gBAAAA,MAACK,qBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA,SACvF,GACF;AAAA,MACA,gBAAAL,MAAC,kBAAe,WAAU,iBACxB,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,kBAAiB;AAAA,QAC3C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,6BAAe;AAAA,UAC7B,gBAAAA,MAAC,gBACE,UAAAE,OAAM,IAAI,UACT,gBAAAD;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,kBAAgB;AACxB,yBAAS,iBAAiB,QAAQ,KAAK,YAAY;AACnD,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEA;AAAA,gCAAAA,OAAC,UAAK,WAAU,2BACd;AAAA,kCAAAA,OAAC,UAAO,WAAU,UAChB;AAAA,oCAAAD,MAAC,eAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM;AAAA,oBAC/C,gBAAAA,MAAC,kBAAgB,eAAK,KAAK,CAAC,GAAE;AAAA,qBAChC;AAAA,kBACA,gBAAAC,OAAC,UAAK,WAAU,iBACd;AAAA,oCAAAD,MAAC,UAAK,WAAU,eAAe,eAAK,MAAK;AAAA,oBACzC,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,eAAK,OAAM;AAAA,qBAC9D;AAAA,mBACF;AAAA,gBACC,UAAU,KAAK,QAAQ,gBAAAA,MAACM,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YAjB5D,KAAK;AAAA,UAkBZ,CACD,GACH;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AClIf,SAAS,SAAAC,QAAO,YAAAC,kBAAgB;AAEhC,SAAS,aAAAC,YAAW,mBAAAC,wBAAuB;AA2BrC,gBAAAC,OAWQ,QAAAC,cAXR;AApBN,IAAM,YAAY;AAAA,EAChB,EAAE,OAAO,KAAK,OAAO,SAAS,MAAM,yDAAyD;AAAA,EAC7F,EAAE,OAAO,KAAK,OAAO,SAAS,MAAM,yDAAyD;AAAA,EAC7F,EAAE,OAAO,KAAK,OAAO,UAAU,MAAM,0DAA0D;AAAA,EAC/F,EAAE,OAAO,KAAK,OAAO,UAAU,MAAM,0DAA0D;AAAA,EAC/F,EAAE,OAAO,KAAK,OAAO,WAAW,MAAM,2DAA2D;AAAA,EACjG,EAAE,OAAO,KAAK,OAAO,WAAW,MAAM,2DAA2D;AAAA,EACjG,EAAE,OAAO,KAAK,OAAO,QAAQ,MAAM,wDAAwD;AAAA,EAC3F,EAAE,OAAO,KAAK,OAAO,SAAS,MAAM,yDAAyD;AAAA,EAC7F,EAAE,OAAO,KAAK,OAAO,SAAS,MAAM,yDAAyD;AAAA,EAC7F,EAAE,OAAO,MAAM,OAAO,YAAY,MAAM,4DAA4D;AACtG;AAEA,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,OAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAkB,KAAK;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAiB,EAAE;AAE7C,SACE,gBAAAF,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,0CAA4B;AAAA,IAChD,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,oBACC,gBAAAA,OAAC,UAAK,WAAU,mCACd;AAAA,8BAAAD,MAAC,SAAI,KAAK,UAAU,KAAK,UAAQ,KAAK,UAAU,KAAK,GAAG,MAAM,KAAK,OAAO,WAAU,WAAU;AAAA,cAC9F,gBAAAA,MAAC,UAAK,WAAU,YAAY,iBAAM;AAAA,eACpC,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,4BAAc;AAAA,YAExD,gBAAAA,MAACI,kBAAA,EAAgB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACpF,GACF;AAAA,MACA,gBAAAJ,MAAC,kBAAe,WAAU,oEAAmE,OAAM,SACjG,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,qBAAoB;AAAA,QAC9C,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,+BAAiB;AAAA,UAC9B,UAAU,IAAI,aACb,gBAAAC;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,UAAU,kBAAgB;AACxB,yBAAS,YAAY;AACrB,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEA;AAAA,gCAAAD,MAAC,SAAI,KAAK,QAAQ,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,WAAU,WAAU;AAAA,gBACzE,QAAQ;AAAA,gBACR,UAAU,QAAQ,SAAS,gBAAAA,MAACK,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YAThE,QAAQ;AAAA,UAUf,CACD;AAAA,WACH;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC/Ef,SAAS,SAAAC,SAAO,YAAAC,kBAAgB;AAEhC,SAAS,aAAAC,YAAW,sBAAAC,4BAA0B;;;ACD9C,SAAS,QAAAC,aAAY;AACrB,SAAS,OAAAC,YAA8B;AAiCnC,gBAAAC,aAAA;AA7BJ,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAQA,SAAS,MAAM,EAAE,WAAW,SAAS,UAAU,OAAO,GAAG,MAAM,GAAe;AAC5E,QAAM,OAAO,UAAUC,QAAO;AAC9B,SACE,gBAAAF,MAAC,QAAK,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAE3E;;;ADYM,gBAAAG,OAWQ,QAAAC,cAXR;AAhCN,IAAMC,cAAa;AAAA,EACjB,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,OAAO,OAAO,QAAQ;AAAA,EAC/B,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,QAAQ,OAAO,OAAO;AACjC;AAEA,IAAM,iCAAiC,MAAM;AAC3C,QAAM,KAAKC,QAAM;AACjB,QAAM,CAAC,MAAM,OAAO,IAAIC,WAAS,KAAK;AAEtC,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,WAAmB;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,CAAC,UAAkB;AACzC,sBAAkB,UAAS,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,OAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,KAAK,CAAE;AAAA,EACrG;AAEA,SACE,gBAAAH,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,MAAC,SAAM,SAAS,IAAI,kCAAoB;AAAA,IACxC,gBAAAC,OAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,2BAAe,SAAS,IACvB,gBAAAA,OAAC,UACC;AAAA,8BAAAD,MAAC,SAAM,SAAQ,WAAU,WAAU,cAChC,yBAAe,QAClB;AAAA,cAAS;AAAA,cAAI;AAAA,eAEf,IAEA,gBAAAA,MAAC,UAAK,WAAU,yBAAwB,8BAAgB;AAAA,YAE1D,gBAAAA,MAACK,sBAAA,EAAmB,WAAU,qCAAoC,eAAY,QAAO;AAAA;AAAA;AAAA,MACvF,GACF;AAAA,MACA,gBAAAL,MAAC,kBAAe,WAAU,uCACxB,0BAAAC,OAAC,WACC;AAAA,wBAAAD,MAAC,gBAAa,aAAY,uBAAsB;AAAA,QAChD,gBAAAC,OAAC,eACC;AAAA,0BAAAD,MAAC,gBAAa,iCAAmB;AAAA,UACjC,gBAAAA,MAAC,gBACE,UAAAE,YAAW,IAAI,eACd,gBAAAD;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,UAAU;AAAA,cACjB,UAAU,MAAM,gBAAgB,UAAU,KAAK;AAAA,cAE/C;AAAA,gCAAAD,MAAC,UAAK,WAAU,YAAY,oBAAU,OAAM;AAAA,gBAC3C,eAAe,SAAS,UAAU,KAAK,KAAK,gBAAAA,MAACM,YAAA,EAAU,MAAM,IAAI,WAAU,WAAU;AAAA;AAAA;AAAA,YALjF,UAAU;AAAA,UAMjB,CACD,GACH;AAAA,WACF;AAAA,SACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AEjGf,SAAS,YAAAC,kBAAgB;AAGzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACVP,YAAYC,aAAW;AASnB,gBAAAC,aAAA;AALJ,IAAM,QAAc,mBAGlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA,MAAC,SAAI,WAAU,iCACb,0BAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,GACF,CACD;AACD,MAAM,cAAc;AAEpB,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA,MAAC,WAAM,KAAU,WAAW,GAAG,mBAAmB,SAAS,GAAI,GAAG,OAAO,CAC1E;AACD,YAAY,cAAc;AAE1B,IAAM,YAAkB,mBAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;AAE1B,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,SAAS,cAAc;AAEvB,IAAM,YAAkB,mBAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,IAAM,YAAkB,mBAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,sCAAsC,SAAS;AAAA,IAC5D,GAAG;AAAA;AACN,CACD;AACD,aAAa,cAAc;;;AD3CrB,gBAAAC,OA2EE,QAAAC,cA3EF;AAlDN,IAAM,OAAkB;AAAA,EACtB;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAUO,IAAM,UAAgC;AAAA,EAC3C;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,eAAe;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,MAAM,GAAE;AAAA,EACxE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAc,cAAI,SAAS,QAAQ,GAAE;AAAA,EACzE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,aAAa,cAAI,SAAS,OAAO,GAAE;AAAA,EACvE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAa,oBAAM;AAAA,IAChD,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAI,WAAU,0BAA0B,qBAAU;AAAA,IAC5D;AAAA,EACF;AACF;AAEA,IAAM,gBAAgB,MAAM;AAC1B,QAAM,CAAC,SAAS,UAAU,IAAIE,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,WAA0B,CAAC,CAAC;AAC5E,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,CAAC,CAAC;AAEnD,QAAM,QAAQ,cAAc;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,iBAAiB,gBAAgB;AAAA,IACjC,uBAAuB,sBAAsB;AAAA,IAC7C,mBAAmB,kBAAkB;AAAA,IACrC,qBAAqB,oBAAoB;AAAA,IACzC,0BAA0B;AAAA,IAC1B,sBAAsB;AAAA,IACtB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,gBAAAD,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SACC;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,eACE,gBAAAA,MAAC,aACE,iBAAO,gBAAgB,OAAO,WAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,KAD/E,OAAO,EAEvB;AAAA,MAEJ,CAAC,KAPY,YAAY,EAQ3B,CACD,GACH;AAAA,MACA,gBAAAA,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,aAAyB,qBAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,KAAlE,KAAK,EAA+D,CACrF,KAHY,IAAI,EAInB,CACD,IAED,gBAAAA,MAAC,YACC,0BAAAA,MAAC,aAAU,SAAS,QAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IACA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,gCAAkB;AAAA,KAClF;AAEJ;AAEA,IAAO,wBAAQ;;;AElLf,SAAS,YAAAG,kBAAgB;AAEzB,SAAS,WAAW,WAAW,iBAAiB;AAGhD;AAAA,EACE,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;;;ACZP,YAAYC,aAAW;AACvB,YAAY,qBAAqB;AACjC,SAAS,SAAAC,QAAO,aAAa,iBAAiB;AAc5C,SAUI,OAAAC,OAVJ,QAAAC,cAAA;AAVF,IAAM,SAAyB;AAE/B,IAAM,cAA8B;AAEpC,IAAM,cAA8B;AAEpC,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,gBAAAD,MAAiB,sBAAhB,EAAqB,SAAO,MAC3B,0BAAAA,MAAC,eAAY,WAAU,sBAAqB,GAC9C;AAAA;AAAA;AACF,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,uBAA6B,mBAGjC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA,MAAC,aAAU,WAAU,WAAU;AAAA;AACjC,CACD;AACD,qBAAqB,cAA8B,+BAAe;AAElE,IAAM,yBAA+B,mBAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA,MAAC,eAAY,WAAU,WAAU;AAAA;AACnC,CACD;AACD,uBAAuB,cACL,iCAAiB;AAEnC,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,UAAU,WAAW,UAAU,GAAG,MAAM,GAAG,QACzD,gBAAAA,MAAiB,wBAAhB,EACC,0BAAAC;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,aAAa,YACX;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAC,wBAAqB;AAAA,MACtB,gBAAAA;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,aAAa,YACX;AAAA,UACJ;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,MACA,gBAAAA,MAAC,0BAAuB;AAAA;AAAA;AAC1B,GACF,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,qCAAqC,SAAS;AAAA,IAC3D,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAEhD,IAAM,aAAmB,mBAGvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAC;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAC,UAAK,WAAU,iEACd,0BAAAA,MAAiB,+BAAhB,EACC,0BAAAA,MAACE,QAAA,EAAM,WAAU,WAAU,GAC7B,GACF;AAAA,MACA,gBAAAF,MAAiB,0BAAhB,EAA0B,UAAS;AAAA;AAAA;AACtC,CACD;AACD,WAAW,cAA8B,qBAAK;AAE9C,IAAM,kBAAwB,mBAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,gBAAgB,cAA8B,0BAAU;;;ADjElD,gBAAAG,OAoFU,QAAAC,cApFV;AAlDN,IAAMC,QAAkB;AAAA,EACtB;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAUO,IAAMC,WAAgC;AAAA,EAC3C;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,eAAe;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,MAAM,GAAE;AAAA,EACxE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAc,cAAI,SAAS,QAAQ,GAAE;AAAA,EACzE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,aAAa,cAAI,SAAS,OAAO,GAAE;AAAA,EACvE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAa,oBAAM;AAAA,IAChD,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAI,WAAU,0BAA0B,qBAAU;AAAA,IAC5D;AAAA,EACF;AACF;AAEA,IAAM,uBAAuB,MAAM;AACjC,QAAM,CAAC,SAAS,UAAU,IAAII,WAAiB;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAIA,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,WAA0B,CAAC,CAAC;AAC5E,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,CAAC,CAAC;AAEnD,QAAM,QAAQC,eAAc;AAAA,IAC1B,MAAAH;AAAA,IACA,SAAAC;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,iBAAiBG,iBAAgB;AAAA,IACjC,uBAAuBC,uBAAsB;AAAA,IAC7C,mBAAmBC,mBAAkB;AAAA,IACrC,qBAAqBC,qBAAoB;AAAA,IACzC,0BAA0B;AAAA,IAC1B,sBAAsB;AAAA,IACtB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,gBAAAR,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,QACb,0BAAAC,OAAC,UAAO,OAAO,SAAS,eAAe,YACrC;AAAA,sBAAAD,MAAC,iBAAc,WAAU,mBAAkB,cAAW,kBACpD,0BAAAA,MAAC,eAAY,aAAY,WAAU,GACrC;AAAA,MACA,gBAAAA,MAAC,iBACC,0BAAAC,OAAC,eACC;AAAA,wBAAAD,MAAC,eAAY,qBAAO;AAAA,QACpB,gBAAAA,MAAC,cAAW,OAAM,WAChB,0BAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,UAAE;AAAA,WAElC,GACF;AAAA,QACA,gBAAAA,MAAC,cAAW,OAAM,YAAW,WAAU,2BACrC,0BAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,UAAE;AAAA,WAClC,GACF;AAAA,QACA,gBAAAA,MAAC,cAAW,OAAM,YAAW,WAAU,2BACrC,0BAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,UAAE;AAAA,WAElC,GACF;AAAA,SACF,GACF;AAAA,OACF,GACF;AAAA,IACA,gBAAAA,MAAC,SAAI,WAAU,qBACb,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG;AAAA,UACZ,6BAA6B,YAAY;AAAA,UACzC,2BAA2B,YAAY;AAAA,UACvC,2BAA2B,YAAY;AAAA,QACzC,CAAC;AAAA,QAED;AAAA,0BAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,mBACE,gBAAAA,MAAC,aACE,iBAAO,gBAAgB,OAAOU,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,KAD/E,OAAO,EAEvB;AAAA,UAEJ,CAAC,KAPY,YAAY,EAQ3B,CACD,GACH;AAAA,UACA,gBAAAV,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,aAAyB,UAAAU,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,KAAlE,KAAK,EAA+D,CACrF,KAHY,IAAI,EAInB,CACD,IAED,gBAAAV,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA;AAAA;AAAA,IACF,GACF;AAAA,IACA,gBAAAF,OAAC,OAAE,WAAU,kDAAiD;AAAA;AAAA,MACzC;AAAA,MACnB,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,QAAO;AAAA,UACR;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;AE5Of,SAAS,YAAAW,kBAAgB;AAEzB,SAAS,mBAAAC,kBAAiB,cAAc,gBAAgB,kBAAkB;AAG1E;AAAA,EACE,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;AAiED,gBAAAC,OA+EQ,QAAAC,cA/ER;AAlDN,IAAMC,QAAkB;AAAA,EACtB;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAUO,IAAMC,WAAgC;AAAA,EAC3C;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,eAAe;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,MAAM,GAAE;AAAA,EACxE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAc,cAAI,SAAS,QAAQ,GAAE;AAAA,EACzE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,aAAa,cAAI,SAAS,OAAO,GAAE;AAAA,EACvE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAa,oBAAM;AAAA,IAChD,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAI,WAAU,0BAA0B,qBAAU;AAAA,IAC5D;AAAA,EACF;AACF;AAEA,IAAM,iCAAiC,MAAM;AAC3C,QAAM,CAAC,aAAa,cAAc,IAAII,WAAiB,EAAE;AACzD,QAAM,CAAC,SAAS,UAAU,IAAIA,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,WAA0B,CAAC,CAAC;AAC5E,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,CAAC,CAAC;AAEnD,QAAM,QAAQC,eAAc;AAAA,IAC1B,MAAAH;AAAA,IACA,SAAAC;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,iBAAiBG,iBAAgB;AAAA,IACjC,uBAAuBC,uBAAsB;AAAA,IAC7C,mBAAmBC,mBAAkB;AAAA,IACrC,qBAAqBC,qBAAoB;AAAA,IACzC,0BAA0B;AAAA,IAC1B,sBAAsB;AAAA,IACtB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,gBAAAR,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,QACb,0BAAAC,OAAC,gBACC;AAAA,sBAAAD,MAAC,uBAAoB,SAAO,MAC1B,0BAAAC,OAAC,UAAO,SAAQ,SAAQ,WAAU,mCAChC;AAAA,wBAAAA,OAAC,UAAK,WAAU,2BACd;AAAA,0BAAAD,MAAC,gBAAa;AAAA,UAAE;AAAA,WAElB;AAAA,QAAQ;AAAA,QACR,gBAAAA,MAACU,kBAAA,EAAgB,WAAU,QAAO;AAAA,SACpC,GACF;AAAA,MACA,gBAAAT,OAAC,uBAAoB,OAAM,OACzB;AAAA,wBAAAA,OAAC,SAAI,WAAU,YACb;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,OAAO;AAAA,cACP,UAAU,OAAK,eAAe,EAAE,OAAO,KAAK;AAAA,cAC5C,WAAU;AAAA,cACV,aAAY;AAAA,cACZ,WAAW,OAAK,EAAE,gBAAgB;AAAA;AAAA,UACpC;AAAA,UACA,gBAAAA,MAAC,cAAW,WAAU,4CAA2C;AAAA,WACnE;AAAA,QACA,gBAAAA,MAAC,yBAAsB;AAAA,QACtB,MACE,cAAc,EACd,OAAO,YAAU,OAAO,WAAW,CAAC,EACpC,IAAI,YAAU;AACb,cAAI,eAAe,CAAC,OAAO,GAAG,YAAY,EAAE,SAAS,YAAY,YAAY,CAAC,GAAG;AAC/E,mBAAO;AAAA,UACT;AAEA,iBACE,gBAAAA;AAAA,YAAC;AAAA;AAAA,cAEC,WAAU;AAAA,cACV,SAAS,OAAO,aAAa;AAAA,cAC7B,iBAAiB,WAAS,OAAO,iBAAiB,CAAC,CAAC,KAAK;AAAA,cACzD,UAAU,OAAK,EAAE,eAAe;AAAA,cAE/B,iBAAO;AAAA;AAAA,YANH,OAAO;AAAA,UAOd;AAAA,QAEJ,CAAC;AAAA,QACH,gBAAAA,MAAC,yBAAsB;AAAA,QACvB,gBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,SAAS,MAAM;AACb,oBAAM,sBAAsB;AAC5B,6BAAe,EAAE;AAAA,YACnB;AAAA,YAEA;AAAA,8BAAAD,MAAC,kBAAe;AAAA,cAAE;AAAA;AAAA;AAAA,QACpB;AAAA,SACF;AAAA,OACF,GACF;AAAA,IACA,gBAAAA,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SACC;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,eACE,gBAAAA,MAAC,aACE,iBAAO,gBAAgB,OAAOW,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,KAD/E,OAAO,EAEvB;AAAA,MAEJ,CAAC,KAPY,YAAY,EAQ3B,CACD,GACH;AAAA,MACA,gBAAAX,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,aAAyB,UAAAW,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,KAAlE,KAAK,EAA+D,CACrF,KAHY,IAAI,EAInB,CACD,IAED,gBAAAX,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IACA,gBAAAH,MAAC,OAAE,WAAU,kDAAiD,0CAA4B;AAAA,KAC5F;AAEJ;AAEA,IAAO,wBAAQ;;;ACtPf,SAAS,YAAAY,kBAAgB;AAEzB,SAAS,mBAAAC,kBAAiB,iBAAAC,sBAAqB;AAG/C;AAAA,EACE,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;AAyDD,gBAAAC,OA4FkB,QAAAC,cA5FlB;AAlDN,IAAMC,QAAkB;AAAA,EACtB;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAUO,IAAMC,WAAgC;AAAA,EAC3C;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,eAAe;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,MAAM,GAAE;AAAA,EACxE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAc,cAAI,SAAS,QAAQ,GAAE;AAAA,EACzE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,aAAa,cAAI,SAAS,OAAO,GAAE;AAAA,EACvE;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAI,WAAU,eAAe,qBAAU;AAAA,IACjD;AAAA,EACF;AACF;AAEA,IAAM,kCAAkC,MAAM;AAC5C,QAAM,CAAC,SAAS,UAAU,IAAII,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,WAA0B,CAAC,CAAC;AAC5E,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,CAAC,CAAC;AAEnD,QAAM,QAAQC,eAAc;AAAA,IAC1B,MAAAH;AAAA,IACA,SAAAC;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,iBAAiBG,iBAAgB;AAAA,IACjC,uBAAuBC,uBAAsB;AAAA,IAC7C,mBAAmBC,mBAAkB;AAAA,IACrC,qBAAqBC,qBAAoB;AAAA,IACzC,0BAA0B;AAAA,IAC1B,sBAAsB;AAAA,IACtB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,gBAAAR,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SACC;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,eACE,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,aACE,OAAO,OAAO,YAAY,MAAM,QAC5B,cACA,OAAO,OAAO,YAAY,MAAM,SAC9B,eACA;AAAA,YAGP,iBAAO,gBAAgB,OACtB,gBAAAC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW;AAAA,kBACT,OAAO,OAAO,WAAW,KACvB;AAAA,gBACJ;AAAA,gBACA,SAAS,OAAO,OAAO,wBAAwB;AAAA,gBAC/C,WAAW,OAAK;AACd,sBAAI,OAAO,OAAO,WAAW,MAAM,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAM;AACtE,sBAAE,eAAe;AACjB,2BAAO,OAAO,wBAAwB,IAAI,CAAC;AAAA,kBAC7C;AAAA,gBACF;AAAA,gBACA,UAAU,OAAO,OAAO,WAAW,IAAI,IAAI;AAAA,gBAE3C;AAAA,kCAAAD,MAAC,UAAK,WAAU,YACb,UAAAU,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,GACjE;AAAA,kBACC;AAAA,oBACC,KAAK,gBAAAV,MAACW,gBAAA,EAAc,WAAU,uBAAsB,MAAM,IAAI,eAAY,QAAO;AAAA,oBACjF,MAAM,gBAAAX,MAACY,kBAAA,EAAgB,WAAU,uBAAsB,MAAM,IAAI,eAAY,QAAO;AAAA,kBACtF,EAAE,OAAO,OAAO,YAAY,CAAW,KAAK;AAAA;AAAA;AAAA,YAC9C;AAAA;AAAA,UA/BG,OAAO;AAAA,QAiCd;AAAA,MAEJ,CAAC,KAvCY,YAAY,EAwC3B,CACD,GACH;AAAA,MACA,gBAAAZ,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,aAAyB,UAAAU,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,KAAlE,KAAK,EAA+D,CACrF,KAHY,IAAI,EAInB,CACD,IAED,gBAAAV,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IACA,gBAAAH,MAAC,OAAE,WAAU,kDAAiD,6CAA+B;AAAA,KAC/F;AAEJ;AAEA,IAAO,wBAAQ;;;ACrNf,SAAS,YAAAa,kBAAgB;AAEzB,SAAS,uBAAuB,wBAAwB,cAAc,kBAAkB;AAGxF,SAAS,cAAAC,aAAY,mBAAAC,kBAAiB,qBAAAC,oBAAmB,iBAAAC,sBAAqB;AA6FvD,gBAAAC,OA6GS,QAAAC,cA7GT;AAxEvB,IAAMC,QAAkB;AAAA,EACtB;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,mBAAmB,CAAC,WAA2C;AACnE,QAAM,WAAW,OAAO,YAAY;AAEpC,SAAO;AAAA,IACL,MAAM,aAAa,SAAS,GAAG,OAAO,SAAS,MAAM,CAAC,OAAO;AAAA,IAC7D,OAAO,aAAa,UAAU,GAAG,OAAO,SAAS,OAAO,CAAC,OAAO;AAAA,IAChE,UAAU,WAAW,WAAW;AAAA,IAChC,QAAQ,WAAW,IAAI;AAAA,EACzB;AACF;AAEA,IAAMC,WAAgC;AAAA,EACpC;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAH,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,aAAa,GAAE;AAAA,EAC/E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,UAAU,GAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,eAAe,GAAE;AAAA,EACzD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,QAAQ,WAAW,IAAI,SAAS,OAAO,CAAC;AAE9C,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,KAAK;AAEf,aAAO,gBAAAA,MAAC,SAAK,qBAAU;AAAA,IACzB;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,UAAU,GAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,cAAc,cAAI,SAAS,cAAc,GAAE;AAAA,EAC/E;AACF;AAEA,IAAM,8BAA8B,MAAM;AACxC,QAAM,CAAC,SAAS,UAAU,IAAII,WAAuB,CAAC,CAAC;AAEvD,QAAM,QAAQC,eAAc;AAAA,IAC1B,MAAAH;AAAA,IACA,SAAAC;AAAA,IACA,iBAAiBG,iBAAgB;AAAA,IACjC,mBAAmBC,mBAAkB;AAAA,IACrC,iBAAiB;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,sBAAsB;AAAA,EACxB,CAAC;AAED,SACE,gBAAAN,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SAAM,WAAU,2KACf;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,cAAM,EAAE,OAAO,IAAI;AACnB,cAAM,WAAW,OAAO,YAAY;AACpC,cAAM,mBAAmB,aAAa,UAAU,OAAO,gBAAgB,MAAM;AAC7E,cAAM,qBAAqB,aAAa,WAAW,OAAO,iBAAiB,OAAO;AAElF,eACE,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YACV,SAAS,OAAO;AAAA,YAChB,OAAO,EAAE,GAAG,iBAAiB,MAAM,EAAE;AAAA,YACrC,eAAa,YAAY;AAAA,YACzB,iBAAe,mBAAmB,SAAS,qBAAqB,UAAU;AAAA,YAE1E,0BAAAC,OAAC,SAAI,WAAU,2CACb;AAAA,8BAAAD,MAAC,UAAK,WAAU,YACb,iBAAO,gBACJ,OACAQ,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,GACpE;AAAA,cAEC,CAAC,OAAO,iBACP,OAAO,OAAO,UAAU,MACvB,OAAO,OAAO,YAAY,IACzB,gBAAAR;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,WAAU;AAAA,kBACV,SAAS,MAAM,OAAO,OAAO,IAAI,KAAK;AAAA,kBACtC,cAAY,SAAS,OAAO,OAAO,UAAU,MAAgB;AAAA,kBAC7D,OAAO,SAAS,OAAO,OAAO,UAAU,MAAgB;AAAA,kBAExD,0BAAAA,MAAC,cAAW,WAAU,cAAa,eAAY,QAAO;AAAA;AAAA,cACxD,IAEA,gBAAAC,OAAC,gBACC;AAAA,gCAAAD,MAAC,uBAAoB,SAAO,MAC1B,0BAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,SAAQ;AAAA,oBACR,WAAU;AAAA,oBACV,cAAY,mBAAmB,OAAO,OAAO,UAAU,MAAgB;AAAA,oBACvE,OAAO,mBAAmB,OAAO,OAAO,UAAU,MAAgB;AAAA,oBAElE,0BAAAA,MAAC,gBAAa,WAAU,cAAa,eAAY,QAAO;AAAA;AAAA,gBAC1D,GACF;AAAA,gBACA,gBAAAC,OAAC,uBAAoB,OAAM,OACzB;AAAA,kCAAAA,OAAC,oBAAiB,SAAS,MAAM,OAAO,OAAO,IAAI,MAAM,GACvD;AAAA,oCAAAD,MAAC,yBAAsB,MAAM,IAAI,WAAU,cAAa,eAAY,QAAO;AAAA,oBAAE;AAAA,qBAE/E;AAAA,kBACA,gBAAAC,OAAC,oBAAiB,SAAS,MAAM,OAAO,OAAO,IAAI,OAAO,GACxD;AAAA,oCAAAD,MAAC,0BAAuB,MAAM,IAAI,WAAU,cAAa,eAAY,QAAO;AAAA,oBAAE;AAAA,qBAEhF;AAAA,mBACF;AAAA,iBACF;AAAA,eAEN;AAAA;AAAA,UApDK,OAAO;AAAA,QAqDd;AAAA,MAEJ,CAAC,KAhEY,YAAY,EAiE3B,CACD,GACH;AAAA,MACA,gBAAAA,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UAAQ;AACjC,cAAM,EAAE,OAAO,IAAI;AACnB,cAAM,WAAW,OAAO,YAAY;AACpC,cAAM,mBAAmB,aAAa,UAAU,OAAO,gBAAgB,MAAM;AAC7E,cAAM,qBAAqB,aAAa,WAAW,OAAO,iBAAiB,OAAO;AAElF,eACE,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YACV,OAAO,EAAE,GAAG,iBAAiB,MAAM,EAAE;AAAA,YACrC,eAAa,YAAY;AAAA,YACzB,iBAAe,mBAAmB,SAAS,qBAAqB,UAAU;AAAA,YAEzE,UAAAQ,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA;AAAA,UANpD,KAAK;AAAA,QAOZ;AAAA,MAEJ,CAAC,KAlBY,IAAI,EAmBnB,CACD,IAED,gBAAAR,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IACA,gBAAAH,MAAC,OAAE,WAAU,kDAAiD,8CAAgC;AAAA,KAChG;AAEJ;AAEA,IAAO,wBAAQ;;;ACxQf,SAAS,YAAAS,YAAU,SAAAC,eAAa;AAEhC,SAAS,mBAAAC,kBAAiB,iBAAAC,gBAAe,wBAAwB;AAEjE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,gCAAgC;AACzC,SAAS,WAAW,+BAA+B,iBAAiB,mBAAmB;AACvF,SAAS,WAAW;AAEpB,SAAS,cAAAC,aAAY,mBAAAC,kBAAiB,qBAAAC,oBAAmB,iBAAAC,sBAAqB;AAgEvD,gBAAAC,OA+Fb,QAAAC,cA/Fa;AAhDvB,IAAMC,QAAmB;AAAA,EACvB;AAAA,IACE,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEA,IAAMC,WAAiC;AAAA,EACrC;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAH,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,WAAW,GAAE;AAAA,IAC3E,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,UAAU,GAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,UAAU,GAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,YAAY,GAAE;AAAA,EACtD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,KAAK,GAAE;AAAA,EAC/C;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAK,cAAI,SAAS,UAAU,GAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAK,qBAAU;AAAA,IACzB;AAAA,EACF;AACF;AAEA,IAAM,+BAA+B,MAAM;AACzC,QAAM,CAAC,SAAS,UAAU,IAAII,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAmBD,SAAQ,IAAI,YAAU,OAAO,EAAY,CAAC;AAEnG,QAAM,QAAQE,eAAc;AAAA,IAC1B,MAAAH;AAAA,IACA,SAAAC;AAAA,IACA,kBAAkB;AAAA,IAClB,iBAAiBG,iBAAgB;AAAA,IACjC,mBAAmBC,mBAAkB;AAAA,IACrC,iBAAiB;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,EACxB,CAAC;AAED,WAAS,cAAc,OAAqB;AAC1C,UAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,QAAI,UAAU,QAAQ,OAAO,OAAO,KAAK,IAAI;AAC3C,qBAAe,CAAAC,iBAAe;AAC5B,cAAM,WAAWA,aAAY,QAAQ,OAAO,EAAY;AACxD,cAAM,WAAWA,aAAY,QAAQ,KAAK,EAAY;AAEtD,eAAO,UAAUA,cAAa,UAAU,QAAQ;AAAA,MAClD,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,UAAU,WAAW,UAAU,aAAa,CAAC,CAAC,GAAG,UAAU,aAAa,CAAC,CAAC,GAAG,UAAU,gBAAgB,CAAC,CAAC,CAAC;AAEhH,SACE,gBAAAP,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAIS,QAAM;AAAA,QACV,oBAAoB;AAAA,QACpB,WAAW,CAAC,wBAAwB;AAAA,QACpC,WAAW;AAAA,QACX;AAAA,QAEA,0BAAAR,OAAC,SACC;AAAA,0BAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YAA8B,WAAU,iCACvC,0BAAAA,MAAC,mBAAgB,OAAO,aAAa,UAAU,+BAC5C,sBAAY,QAAQ,IAAI,YACvB,gBAAAA,MAAC,wBAAqC,UAAX,OAAO,EAAoB,CACvD,GACH,KALa,YAAY,EAM3B,CACD,GACH;AAAA,UACA,gBAAAA,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,mBAA8B,OAAO,aAAa,UAAU,+BAC3D,0BAAAA,MAAC,iBAA4B,QAAT,KAAK,EAAgB,KADrB,KAAK,EAE3B,CACD,KALY,IAAI,EAMnB,CACD,IAED,gBAAAA,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,WACF;AAAA;AAAA,IACF,GACF;AAAA,IACA,gBAAAH,MAAC,OAAE,WAAU,kDAAiD,+CAAiC;AAAA,KACjG;AAEJ;AAEA,IAAM,uBAAuB,CAAC,EAAE,OAAO,MAA6C;AAClF,QAAM,EAAE,YAAY,YAAY,WAAW,YAAY,WAAW,WAAW,IAAI,YAAY;AAAA,IAC3F,IAAI,OAAO,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,QAAuB;AAAA,IAC3B,SAAS,aAAa,MAAM;AAAA,IAC5B,UAAU;AAAA,IACV,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,IACA,YAAY;AAAA,IACZ,OAAO,OAAO,OAAO,QAAQ;AAAA,IAC7B,QAAQ,aAAa,IAAI;AAAA,EAC3B;AAEA,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV;AAAA,MACA,aACE,OAAO,OAAO,YAAY,MAAM,QAC5B,cACA,OAAO,OAAO,YAAY,MAAM,SAC9B,eACA;AAAA,MAGR,0BAAAC,OAAC,SAAI,WAAU,2CACb;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,WAAU;AAAA,YACT,GAAG;AAAA,YACH,GAAG;AAAA,YACJ,cAAW;AAAA,YAEX,0BAAAA,MAAC,oBAAiB,WAAU,cAAa,eAAY,QAAO;AAAA;AAAA,QAC9D;AAAA,QACA,gBAAAA,MAAC,UAAK,WAAU,iBACb,iBAAO,gBAAgB,OAAOU,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,GAC/F;AAAA,QACA,gBAAAV;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,OAAO,OAAO,wBAAwB;AAAA,YAC/C,WAAW,OAAK;AACd,kBAAI,OAAO,OAAO,WAAW,MAAM,EAAE,QAAQ,WAAW,EAAE,QAAQ,MAAM;AACtE,kBAAE,eAAe;AACjB,uBAAO,OAAO,wBAAwB,IAAI,CAAC;AAAA,cAC7C;AAAA,YACF;AAAA,YACA,cAAW;AAAA,YAEV;AAAA,cACC,KAAK,gBAAAA,MAACW,gBAAA,EAAc,WAAU,uBAAsB,MAAM,IAAI,eAAY,QAAO;AAAA,cACjF,MAAM,gBAAAX,MAACY,kBAAA,EAAgB,WAAU,uBAAsB,MAAM,IAAI,eAAY,QAAO;AAAA,YACtF,EAAE,OAAO,OAAO,YAAY,CAAW,KACrC,gBAAAZ,MAACW,gBAAA,EAAc,WAAU,6CAA4C,MAAM,IAAI,eAAY,QAAO;AAAA;AAAA,QAEtG;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,gBAAgB,CAAC,EAAE,KAAK,MAAyC;AACrE,QAAM,EAAE,YAAY,YAAY,WAAW,WAAW,IAAI,YAAY;AAAA,IACpE,IAAI,KAAK,OAAO;AAAA,EAClB,CAAC;AAED,QAAM,QAAuB;AAAA,IAC3B,SAAS,aAAa,MAAM;AAAA,IAC5B,UAAU;AAAA,IACV,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,IACA,OAAO,KAAK,OAAO,QAAQ;AAAA,IAC3B,QAAQ,aAAa,IAAI;AAAA,EAC3B;AAEA,SACE,gBAAAX,MAAC,aAAU,KAAK,YAAY,WAAU,YAAW,OAC9C,UAAAU,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,GAC3D;AAEJ;AAEA,IAAO,wBAAQ;;;ACjTf,SAAS,YAAAG,iBAAgB;AAEzB,SAAS,mBAAAC,mBAAiB,iBAAAC,sBAAqB;AAG/C,SAAS,cAAAC,aAAY,mBAAAC,kBAAiB,qBAAqB,iBAAAC,sBAAqB;AAuIpE,gBAAAC,OA0GgB,QAAAC,cA1GhB;AAhHZ,IAAMC,QAAe;AAAA,EACnB;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMC,WAA6B;AAAA,EACjC;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,MAAM;AAAA,IACd,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,aAAO,IAAI,aAAa,IACtB,gBAAAH;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,YACF,WAAW;AAAA,YACX,SAAS,IAAI,yBAAyB;AAAA,YACtC,iBAAiB,IAAI,cAAc;AAAA,YACnC,cAAc,IAAI,cAAc,IAC5B,wBAAwB,IAAI,SAAS,QAAQ,KAC7C,sBAAsB,IAAI,SAAS,QAAQ;AAAA,YAC/C,MAAM;AAAA,YACN,SAAS;AAAA,UACX;AAAA,UAEC,cAAI,cAAc,IACjB,gBAAAA,MAACI,gBAAA,EAAc,WAAU,cAAa,eAAY,QAAO,IAEzD,gBAAAJ,MAACK,mBAAA,EAAgB,WAAU,cAAa,eAAY,QAAO;AAAA;AAAA,MAE/D,IACE;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,EAEJ;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,gBAAAA,MAAC,SAAI,WAAU,eAAe,cAAI,SAAS,UAAU,GAAE;AAAA,EAC5E;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,IAAI,SAAS,YAAY;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,IAAI,SAAS,UAAU;AAAA,EAC5C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM,IAAI,SAAS,eAAe;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,MAAM,gBAAAA,MAAC,SAAI,oBAAM;AAAA,IACzB,aAAa;AAAA,IACb,MAAM,CAAC,EAAE,IAAI,MAAM;AACjB,YAAM,SAAS,WAAW,IAAI,SAAS,QAAQ,CAAC;AAEhD,YAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,QAC/C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,EAAE,OAAO,MAAM;AAEhB,aAAO,gBAAAA,MAAC,SAAK,qBAAU;AAAA,IACzB;AAAA,EACF;AACF;AAEA,IAAM,kCAAkC,MAAM;AAC5C,QAAM,QAAQM,eAAc;AAAA,IAC1B,MAAAJ;AAAA,IACA,SAAAC;AAAA,IACA,iBAAiB,SAAO,QAAQ,IAAI,SAAS,OAAO;AAAA,IACpD,iBAAiBI,iBAAgB;AAAA,IACjC,qBAAqB,oBAAoB;AAAA,EAC3C,CAAC;AAED,SACE,gBAAAN,OAAC,SAAI,WAAU,UACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SACC;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YAA8B,WAAU,wBACtC,sBAAY,QAAQ,IAAI,YAAU;AACjC,eACE,gBAAAA,MAAC,aACE,iBAAO,gBAAgB,OAAOQ,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,KAD/E,OAAO,EAEvB;AAAA,MAEJ,CAAC,KAPY,YAAY,EAQ3B,CACD,GACH;AAAA,MACA,gBAAAR,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAC,OAACQ,WAAA,EACC;AAAA,wBAAAT,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YAET,UAAAQ,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA;AAAA,UAHpD,KAAK;AAAA,QAIZ,CACD,KARY,IAAI,EASnB;AAAA,QACC,IAAI,cAAc,KACjB,gBAAAR,MAAC,YAAS,WAAU,wBAClB,0BAAAA,MAAC,aAAU,SAAS,IAAI,gBAAgB,EAAE,QAAQ,WAAU,OAC1D,0BAAAC,OAAC,SACC;AAAA,0BAAAD,MAAC,eAAY,WAAU,YACrB,0BAAAC,OAAC,YAAS,WAAU,sBAClB;AAAA,4BAAAD,MAAC,aAAU,WAAU,UAAS;AAAA,YAC9B,gBAAAA,MAAC,aAAU,yBAAW;AAAA,YACtB,gBAAAA,MAAC,aAAU,kBAAI;AAAA,YACf,gBAAAA,MAAC,aAAU,mBAAK;AAAA,YAChB,gBAAAA,MAAC,aAAU,uBAAS;AAAA,YACpB,gBAAAA,MAAC,aAAU,2BAAa;AAAA,aAC1B,GACF;AAAA,UACA,gBAAAA,MAAC,aACE,cAAI,SAAS,QAAQ,IAAI,YACxB,gBAAAC,OAAC,YACC;AAAA,4BAAAD,MAAC,aAAU;AAAA,YACX,gBAAAA,MAAC,aAAW,iBAAO,MAAK;AAAA,YACxB,gBAAAA,MAAC,aAAW,iBAAO,MAAK;AAAA,YACxB,gBAAAA,MAAC,aAAW,iBAAO,OAAM;AAAA,YACzB,gBAAAA,MAAC,aAAW,iBAAO,UAAS;AAAA,YAC5B,gBAAAA,MAAC,aAAW,iBAAO,KAAI;AAAA,eANV,OAAO,KAOtB,CACD,GACH;AAAA,WACF,GACF,GACF;AAAA,WAvCW,IAAI,EAyCnB,CACD,IAED,gBAAAA,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASG,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IACA,gBAAAH,MAAC,OAAE,WAAU,kDAAiD,qDAAuC;AAAA,KACvG;AAEJ;AAEA,IAAO,wBAAQ;;;AChSf,SAAS,aAAAU,YAAW,YAAAC,kBAAgB;AAUpC;AAAA,EACE,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;AAmFH,gBAAAC,OA0BE,QAAAC,cA1BF;AAlEJ,IAAM,cAAwB;AAAA,EAC5B;AAAA,IACE,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AACF;AAYA,IAAM,mBAAmB,CAAC,EAAE,UAAU,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,GAAG,MAAM,MAAoC;AAC9G,QAAMC,gBAAe,SAAS;AAC9B,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAASD,aAAY;AAE/C,QAAM,SAAS,MAAM;AACnB,UAAM,QAAQ,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,EACjD;AAEA,EAAAE,WAAU,MAAM;AACd,aAASF,aAAY;AAAA,EACvB,GAAG,CAACA,aAAY,CAAC;AAEjB,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,MACtC;AAAA,MACA,WAAU;AAAA,MACV,cAAW;AAAA;AAAA,EACb;AAEJ;AAGA,IAAM,qBAAqB,CAAC,EAAE,UAAU,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,GAAG,MAAM,MAAoC;AAChH,QAAME,gBAAe,SAAS;AAE9B,QAAM,oBAAoB,CAAC,aAAqB;AAC9C,UAAM,QAAQ,MAAM,WAAW,OAAO,IAAI,QAAQ;AAAA,EACpD;AAEA,SACE,gBAAAD,OAAC,UAAO,OAAOC,eAAc,eAAe,mBAC1C;AAAA,oBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAY,iBAAiB,EAAE;AAAA,QAE/B,0BAAAA,MAAC,eAAY;AAAA;AAAA,IACf;AAAA,IACA,gBAAAC,OAAC,iBACC;AAAA,sBAAAD,MAAC,cAAW,OAAM,UAAS,oBAAM;AAAA,MACjC,gBAAAA,MAAC,cAAW,OAAM,YAAW,sBAAQ;AAAA,MACrC,gBAAAA,MAAC,cAAW,OAAM,WAAU,qBAAO;AAAA,OACrC;AAAA,KACF;AAEJ;AAGA,IAAM,uBAAuB,CAAC,EAAE,UAAU,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,GAAG,MAAM,MAAoC;AAClH,QAAME,gBAAe,SAAS;AAC9B,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAASD,cAAa,SAAS,CAAC;AAE1D,QAAM,SAAS,MAAM;AACnB,UAAM,WAAW,WAAW,KAAK;AACjC,UAAM,eAAe,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,MAAM,QAAQ,IAAIA,gBAAe,QAAQ,CAAC;AAEzF,UAAM,QAAQ,MAAM,WAAW,OAAO,IAAI,YAAY;AAAA,EACxD;AAEA,EAAAE,WAAU,MAAM;AACd,aAASF,cAAa,SAAS,CAAC;AAAA,EAClC,GAAG,CAACA,aAAY,CAAC;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,+BACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ;AAAA,QACA,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,QACtC;AAAA,QACA,WAAU;AAAA,QACV,cAAW;AAAA;AAAA,IACb;AAAA,IACA,gBAAAA,MAAC,UAAK,WAAU,iCAAgC,eAAC;AAAA,KACnD;AAEJ;AAGO,IAAMK,WAA+B;AAAA,EAC1C;AAAA,IACE,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,yBAAyB,KAAM,MAAM,0BAA0B,KAAK;AAAA,QACnF,iBAAiB,WAAS,MAAM,0BAA0B,CAAC,CAAC,KAAK;AAAA,QACjE,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,MAAM,CAAC,EAAE,IAAI,MACX,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,IAAI,cAAc;AAAA,QAC3B,iBAAiB,WAAS,IAAI,eAAe,CAAC,CAAC,KAAK;AAAA,QACpD,cAAW;AAAA;AAAA,IACb;AAAA,IAEF,eAAe;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACF;AAEA,IAAM,wBAAwB,MAAM;AAClC,QAAM,CAACM,OAAM,OAAO,IAAIH,WAAS,MAAM,CAAC,GAAG,WAAW,CAAC;AACvD,QAAM,CAAC,SAAS,UAAU,IAAIA,WAAuB,CAAC,CAAC;AACvD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,WAA0B,CAAC,CAAC;AAC5E,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,CAAC,CAAC;AAEnD,QAAM,cAAc,MAAM,QAAQ,MAAM,CAAC,GAAG,WAAW,CAAC;AAExD,QAAM,QAAQI,eAAc;AAAA,IAC1B,MAAAD;AAAA,IACA,SAAAD;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,iBAAiBG,iBAAgB;AAAA,IACjC,mBAAmBC,mBAAkB;AAAA,IACrC,qBAAqBC,qBAAoB;AAAA,IACzC,0BAA0B;AAAA,IAC1B,sBAAsB;AAAA,IACtB,MAAM;AAAA,MACJ,YAAY,CAAC,UAAU,UAAU,UAAU;AACzC;AAAA,UAAQ,SACN,IAAI,IAAI,CAAC,KAAK,UAAU;AACtB,gBAAI,UAAU,UAAU;AACtB,qBAAO;AAAA,gBACL,GAAG,IAAI,QAAQ;AAAA,gBACf,CAAC,QAAQ,GAAG;AAAA,cACd;AAAA,YACF;AAEA,mBAAO;AAAA,UACT,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,SACE,gBAAAT,OAAC,SAAI,WAAU,oBACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,qBACb,0BAAAC,OAAC,SACC;AAAA,sBAAAD,MAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,iBAC3B,gBAAAA,MAAC,YACE,sBAAY,QAAQ,IAAI,YAAU;AACjC,eACE,gBAAAA,MAAC,aAA0B,SAAS,OAAO,SACxC,iBAAO,gBAAgB,OACtB,gBAAAA,MAAC,SAAK,UAAAW,YAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,WAAW,CAAC,GAAE,KAF1D,OAAO,EAIvB;AAAA,MAEJ,CAAC,KATY,YAAY,EAU3B,CACD,GACH;AAAA,MACA,gBAAAX,MAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,SAC3B,gBAAAA,MAAC,YAAsB,cAAY,IAAI,cAAc,KAAK,YACvD,cAAI,gBAAgB,EAAE,IAAI,UACzB,gBAAAA,MAAC,aAAyB,UAAAW,YAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC,KAAlE,KAAK,EAA+D,CACrF,KAHY,IAAI,EAInB,CACD,IAED,gBAAAX,MAAC,YACC,0BAAAA,MAAC,aAAU,SAASK,SAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ;AAAA,OACF,GACF;AAAA,IAEA,gBAAAJ,OAAC,SAAI,WAAU,yFACb;AAAA,sBAAAA,OAAC,SAAK;AAAA,cAAM,YAAY,EAAE,KAAK;AAAA,QAAO;AAAA,SAAW;AAAA,MACjD,gBAAAD,MAAC,SAAI,WAAU,+BACb,0BAAAA,MAAC,UAAO,SAAQ,SAAQ,MAAK,MAAK,SAAS,aAAa,0BAExD,GACF;AAAA,OACF;AAAA,IAEA,gBAAAA,MAAC,OAAE,WAAU,kDAAiD,iEAE9D;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACzTf,YAAYY,aAAW;AASnB,gBAAAC,aAAA;AALJ,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,SAAS,cAAc;;;ACnBvB,SAAS,SAAAC,eAAa;AASlB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,eAAe,MAAM;AACzB,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD,MAAC,YAAS,IAAQ;AAAA,IAClB,gBAAAA,MAAC,SAAM,SAAS,IAAI,yCAA2B;AAAA,KACjD;AAEJ;AAEA,IAAO,sBAAQ;;;AChBf,SAAS,SAAAG,SAAO,YAAAC,kBAAqC;AAErD,SAAS,aAAAC,YAAW,aAAAC,kBAAiB;AAErC,SAAS,YAAYC,0BAAyB;AAWxC,SAIE,OAAAC,OAJF,QAAAC,cAAA;AAPN,IAAMC,YAAW,CAAC,UAAyD;AACzE,SACE,gBAAAF;AAAA,IAACG,mBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,0BAAAF;AAAA,QAACE,mBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV;AAAA,4BAAAH,MAACI,YAAA,EAAU,WAAU,0DAAyD;AAAA,YAC9E,gBAAAJ,MAACK,YAAA,EAAU,WAAU,oDAAmD;AAAA;AAAA;AAAA,MAC1E;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,4BAA4B,MAAM;AACtC,QAAM,CAAC,SAAS,UAAU,IAAIC,WAAyC,eAAe;AAEtF,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAN,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD,MAACE,WAAA,EAAS,IAAQ,SAAkB,iBAAiB,YAAY;AAAA,IACjE,gBAAAF,MAAC,SAAM,SAAS,IAAI,oCAAsB;AAAA,KAC5C;AAEJ;AAEA,IAAO,sBAAQ;;;ACvCf,SAAS,SAAAQ,eAAa;AASlB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD,MAAC,YAAS,IAAQ,WAAU,gCAA+B;AAAA,IAC3D,gBAAAA,MAAC,SAAM,SAAS,IAAI,yCAA2B;AAAA,KACjD;AAEJ;AAEA,IAAO,sBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,OADF,QAAAC,cAAA;AAJJ,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD,MAAC,YAAS,IAAQ,gBAAc,MAAC;AAAA,IACjC,gBAAAA,MAAC,SAAM,SAAS,IAAI,WAAU,0CAAyC,mCAEvE;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACdX,SACE,OAAAG,OADF,QAAAC,cAAA;AAFJ,IAAM,oBAAoB,MAAM;AAC9B,SACE,gBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD,MAAC,YAAS,gBAAc,MAAC,cAAW,gBAAe;AAAA,IACnD,gBAAAA,MAAC,YAAS,WAAU,UAAS,gBAAc,MAAC,cAAW,cAAa;AAAA,IACpE,gBAAAA,MAAC,YAAS,WAAU,UAAS,gBAAc,MAAC,cAAW,cAAa;AAAA,KACtE;AAEJ;AAEA,IAAO,sBAAQ;;;ACZf,SAAS,YAAAE,kBAAgB;AAajB,SACE,OAAAC,OADF,QAAAC,cAAA;AARR,IAAM,SAAS,CAAC,UAAU,SAAS,QAAQ;AAE3C,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAmB,CAAC,UAAU,OAAO,CAAC;AAEtE,SACE,gBAAAF,MAAC,SAAI,WAAU,2BACZ,iBAAO,IAAI,WACV,gBAAAC,OAAC,SAAkB,SAAQ,aAAY,WAAU,yCAC/C;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ,SAAS,SAAS,SAAS,KAAK;AAAA,QAChC,iBAAiB,aACf,YAAY,UAAU,CAAC,GAAG,UAAU,KAAK,IAAI,SAAS,OAAO,UAAQ,SAAS,KAAK,CAAC;AAAA,QAEtF,WAAU;AAAA;AAAA,IACZ;AAAA,IACA,gBAAAA,MAAC,WAAM,SAAS,OAAO,WAAU,2DAC9B,iBACH;AAAA,OAXU,KAYZ,CACD,GACH;AAEJ;AAEA,IAAO,sBAAQ;;;AC/Bf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,OACA,QAAAC,cADA;AALN,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,0BACb;AAAA,oBAAAD,MAAC,YAAS,IAAQ,gBAAc,MAAC;AAAA,IACjC,gBAAAC,OAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,MAAC,SAAM,SAAS,IAAI,WAAU,aAAY,yCAE1C;AAAA,MACA,gBAAAA,MAAC,OAAE,WAAU,iCAAgC,+EAE7C;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACfT,gBAAAG,OAGI,QAAAC,cAHJ;AALN,IAAM,eAAe,CAAC,SAAS,WAAW,OAAO;AAEjD,IAAM,8BAA8B,MAAM;AACxC,SACE,gBAAAA,OAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,MAAC,SAAM,WAAU,iBAAgB,0BAAY;AAAA,IAC7C,gBAAAA,MAAC,SAAI,WAAU,+CACZ,uBAAa,IAAI,WAChB,gBAAAC,OAAC,SAAgB,WAAU,2BACzB;AAAA,sBAAAD,MAAC,YAAS,IAAI,OAAO;AAAA,MACrB,gBAAAA,MAAC,SAAM,SAAS,OAAQ,iBAAM;AAAA,SAFtB,KAGV,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACrBf,SAAS,WAAW,YAAY,iBAAiB;AAc3C,gBAAAE,OAKM,QAAAC,cALN;AATN,IAAM,SAAS;AAAA,EACb,EAAE,OAAO,SAAS,MAAM,UAAU;AAAA,EAClC,EAAE,OAAO,UAAU,MAAM,WAAW;AAAA,EACpC,EAAE,OAAO,SAAS,MAAM,UAAU;AACpC;AAEA,IAAM,4BAA4B,MAAM;AACtC,SACE,gBAAAA,OAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,MAAC,SAAM,WAAU,iBAAgB,6BAAe;AAAA,IAChD,gBAAAA,MAAC,SAAI,WAAU,uBACZ,iBAAO,IAAI,CAAC,EAAE,OAAO,MAAME,MAAK,MAC/B,gBAAAD,OAAC,SAAgB,WAAU,+CACzB;AAAA,sBAAAD,MAAC,YAAS,IAAI,OAAO;AAAA,MACrB,gBAAAC,OAAC,SAAM,SAAS,OAAO,WAAU,0CAC/B;AAAA,wBAAAD,MAACE,OAAA,EAAK,WAAU,UAAS,eAAY,QAAO;AAAA,QAC3C;AAAA,SACH;AAAA,SALQ,KAMV,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC1BX,SACE,OAAAC,OADF,QAAAC,cAAA;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAW;AAAA,QACX,gBAAc;AAAA;AAAA,IAChB;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAW;AAAA,QACX,gBAAc;AAAA;AAAA,IAChB;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAW;AAAA,QACX,gBAAc;AAAA;AAAA,IAChB;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;ACxBf,SAAS,aAAAE,YAAW,YAAY,YAAAC,iBAAgB;AAEhD,SAAS,YAAYC,0BAAyB;AAKxC,SAOI,OAAAC,OAPJ,QAAAC,cAAA;AAHN,IAAM,0BAA0B,MAAM;AACpC,SACE,gBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAA;AAAA,MAACF,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX;AAAA,0BAAAC,MAAC,UAAK,WAAU,qCACd,0BAAAA,MAACH,YAAA,EAAU,WAAU,YAAW,GAClC;AAAA,UACA,gBAAAG,MAAC,UAAK,WAAU,uCACd,0BAAAA,MAACH,YAAA,EAAU,WAAU,gDAA+C,GACtE;AAAA;AAAA;AAAA,IACF;AAAA,IACA,gBAAAI;AAAA,MAACF,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX;AAAA,0BAAAC,MAAC,UAAK,WAAU,qCACd,0BAAAA,MAACF,WAAA,EAAS,WAAU,YAAW,GACjC;AAAA,UACA,gBAAAE,MAAC,UAAK,WAAU,uCACd,0BAAAA,MAACF,WAAA,EAAS,WAAU,sFAAqF,GAC3G;AAAA;AAAA;AAAA,IACF;AAAA,IACA,gBAAAG;AAAA,MAACF,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX;AAAA,0BAAAC,MAAC,UAAK,WAAU,qCACd,0BAAAA,MAAC,cAAW,WAAU,YAAW,GACnC;AAAA,UACA,gBAAAA,MAAC,UAAK,WAAU,uCACd,0BAAAA,MAAC,cAAW,WAAU,sFAAqF,GAC7G;AAAA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AClDf,SAAS,mBAAAE,wBAAuB;AAEhC,SAAS,YAAYC,0BAAyB;AAI1C,SAWM,OAAAC,QAXN,QAAAC,cAAA;AAFJ,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,oBAAAD;AAAA,MAACD,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,0BAAAC;AAAA,UAACD,mBAAkB;AAAA,UAAlB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,0BAAAC,OAACF,kBAAA,EAAgB,WAAU,sCAAqC;AAAA;AAAA,QAClE;AAAA;AAAA,IACF;AAAA,IACA,gBAAAE;AAAA,MAACD,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,0BAAAC;AAAA,UAACD,mBAAkB;AAAA,UAAlB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,0BAAAC,OAACF,kBAAA,EAAgB,WAAU,sCAAqC;AAAA;AAAA,QAClE;AAAA;AAAA,IACF;AAAA,IACA,gBAAAE;AAAA,MAACD,mBAAkB;AAAA,MAAlB;AAAA,QACC,aAAU;AAAA,QACV,gBAAc;AAAA,QACd,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,0BAAAC;AAAA,UAACD,mBAAkB;AAAA,UAAlB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,0BAAAC,OAACF,kBAAA,EAAgB,WAAU,sCAAqC;AAAA;AAAA,QAClE;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3CP,gBAAAI,QAIA,QAAAC,cAJA;AAJR,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA,OAAC,SAAI,WAAU,aACb;AAAA,oBAAAA,OAAC,SAAM,WAAU,4OACf;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,gBAAc;AAAA,UACd,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,OAAC,SAAI,WAAU,4BACb;AAAA,wBAAAD,OAAC,OAAE,WAAU,oCAAmC,wBAAU;AAAA,QAC1D,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,oCAAsB;AAAA,SACrE;AAAA,OACF;AAAA,IACA,gBAAAC,OAAC,SAAM,WAAU,4OACf;AAAA,sBAAAD,OAAC,YAAS,WAAU,yLAAwL;AAAA,MAC5M,gBAAAC,OAAC,SAAI,WAAU,4BACb;AAAA,wBAAAD,OAAC,OAAE,WAAU,oCAAmC,yBAAW;AAAA,QAC3D,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,8CAAgC;AAAA,SAC/E;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3Bf,SAAS,cAAc,UAAU,mBAAmB;AAiBxC,SACE,OAAAE,QADF,QAAAC,cAAA;AAZZ,IAAM,SAAS;AAAA,EACb,EAAE,OAAO,mBAAmB,MAAM,SAAS;AAAA,EAC3C,EAAE,OAAO,iBAAiB,MAAM,aAAa;AAAA,EAC7C,EAAE,OAAO,kBAAkB,MAAM,YAAY;AAC/C;AAEA,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAD,OAAC,QAAG,WAAU,mDACX,iBAAO,IAAI,CAAC,EAAE,OAAO,MAAME,MAAK,MAC/B,gBAAAF,OAAC,QACC,0BAAAC,OAAC,SAAM,SAAS,OAAO,WAAU,qDAC/B;AAAA,oBAAAA,OAAC,UAAK,WAAU,2BACd;AAAA,sBAAAD,OAACE,OAAA,EAAK,WAAU,UAAS;AAAA,MAAE;AAAA,MAAE;AAAA,OAC/B;AAAA,IACA,gBAAAF,OAAC,YAAS,IAAI,OAAO;AAAA,KACvB,KANO,KAOT,CACD,GACH;AAEJ;AAEA,IAAO,sBAAQ;;;AC1Bf,SAAS,aAAAG,YAAW,YAAAC,kBAAqC;AAEzD,SAAS,aAAAC,aAAW,aAAAC,kBAAiB;AAErC,SAAS,YAAYC,0BAAyB;AAaxC,SAIE,OAAAC,QAJF,QAAAC,cAAA;AATN,IAAMC,SAAQ,CAAC,WAAW,WAAW,SAAS;AAE9C,IAAMC,YAAW,CAAC,UAAyD;AACzE,SACE,gBAAAH;AAAA,IAACI,mBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,0BAAAH;AAAA,QAACG,mBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV;AAAA,4BAAAJ,OAACK,YAAA,EAAU,WAAU,0DAAyD;AAAA,YAC9E,gBAAAL,OAACM,aAAA,EAAU,WAAU,oDAAmD;AAAA;AAAA;AAAA,MAC1E;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,mBAAmB,MAAM;AAC7B,QAAM,CAAC,SAAS,UAAU,IAAIC,WAAyC,eAAe;AACtF,QAAM,CAAC,UAAU,WAAW,IAAIA,WAAmB,CAAC,WAAW,SAAS,CAAC;AAEzE,EAAAC,WAAU,MAAM;AACd,QAAI,SAAS,WAAWN,OAAM,QAAQ;AACpC,iBAAW,IAAI;AAAA,IACjB,WAAW,SAAS,SAAS,GAAG;AAC9B,iBAAW,eAAe;AAAA,IAC5B,OAAO;AACL,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,sBAAsB,CAACO,aAA4C;AACvE,eAAWA,QAAO;AAElB,QAAIA,aAAY,MAAM;AACpB,kBAAY,CAAC,GAAGP,MAAK,CAAC;AAAA,IACxB,WAAWO,aAAY,OAAO;AAC5B,kBAAY,CAAC,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,SACE,gBAAAR,OAAC,SAAI,WAAU,uBACb;AAAA,oBAAAA,OAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAACG,WAAA,EAAS,IAAG,UAAS,SAAkB,iBAAiB,qBAAqB;AAAA,MAC9E,gBAAAH,OAAC,SAAM,SAAQ,UAAS,oBAAM;AAAA,OAChC;AAAA,IACA,gBAAAA,OAAC,SAAI,WAAU,4BACZ,UAAAE,OAAM,IAAI,WACT,gBAAAD,OAAC,SAAgB,WAAU,2BACzB;AAAA,sBAAAD;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,UACJ,SAAS,SAAS,SAAS,KAAK;AAAA,UAChC,iBAAiB,CAAAM,aACf,YAAYA,WAAU,CAAC,GAAG,UAAU,KAAK,IAAI,SAAS,OAAO,UAAQ,SAAS,KAAK,CAAC;AAAA;AAAA,MAExF;AAAA,MACA,gBAAAT,OAAC,SAAM,SAAS,OAAQ,iBAAM;AAAA,SARtB,KASV,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC9Ef,SAAS,SAAAU,eAAa;AAWhB,gBAAAC,QAQE,QAAAC,cARF;AALN,IAAM,mBAAmB,MAAM;AAC7B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,0BACb;AAAA,oBAAAD,OAAC,YAAS,IAAQ,gBAAc,MAAC;AAAA,IACjC,gBAAAC,OAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,SAAM,SAAS,IAAI,WAAU,mBAAkB,yCAEhD;AAAA,MACA,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,+EAE7C;AAAA,MACA,gBAAAC,OAAC,SAAI,WAAU,wBACb;AAAA,wBAAAD,OAAC,UAAO,SAAQ,WAAU,MAAK,MAAK,mBAEpC;AAAA,QACA,gBAAAA,OAAC,UAAO,MAAK,MAAK,oBAAM;AAAA,SAC1B;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;;;AC3BN,gBAAAG,cAAA;AADT,IAAM,YAAY,MAAM;AACtB,SAAO,gBAAAA,OAAC,SAAM,MAAK,SAAQ,aAAY,iBAAgB,WAAU,YAAW;AAC9E;AAEA,IAAO,mBAAQ;;;ACNf,SAAS,SAAAC,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,iBAAiB,MAAM;AAC3B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,8BAAgB;AAAA,IACpC,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,KAC1D;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AAUhB,SACiB,OAAAC,QADjB,QAAAC,cAAA;AALN,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAA,OAAC,SAAM,SAAS,IAAI,WAAU,SAAQ;AAAA;AAAA,MACrB,gBAAAD,OAAC,UAAK,WAAU,oBAAmB,eAAC;AAAA,OACrD;AAAA,IACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,UAAQ,MAAC;AAAA,KACnE;AAEJ;AAEA,IAAO,mBAAQ;;;AClBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,4BAAc;AAAA,IAClC,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,UAAQ,MAAC;AAAA,KACnE;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,6BAAe;AAAA,IACnC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,cAAa;AAAA,QACb,WAAU;AAAA,QACV,UAAQ;AAAA;AAAA,IACV;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACnBX,SACE,OAAAG,QADF,QAAAC,cAAA;AAFJ,IAAM,iBAAiB,MAAM;AAC3B,SACE,gBAAAA,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,MAAK,QAAO,aAAY,eAAc,WAAU,OAAM;AAAA,IAC7D,gBAAAA,OAAC,SAAM,MAAK,QAAO,aAAY,gBAAe;AAAA,IAC9C,gBAAAA,OAAC,SAAM,MAAK,QAAO,aAAY,eAAc,WAAU,QAAO;AAAA,KAChE;AAEJ;AAEA,IAAO,mBAAQ;;;ACZf,SAAS,SAAAE,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,wBAAwB,MAAM;AAClC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,sCAAwB;AAAA,IAC5C,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,cAAa,qBAAoB;AAAA,KAC3F;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,mBAAmB,MAAM;AAC7B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,2BAAa;AAAA,IACjC,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,WAAU,gBAAe;AAAA,KACnF;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,2BAA2B,MAAM;AACrC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,0CAA4B;AAAA,IAChD,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,IACxD,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,4DAAmD;AAAA,KAClG;AAEJ;AAEA,IAAO,mBAAQ;;;ACjBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,cAAA;AAJJ,IAAM,yBAAyB,MAAM;AACnC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wCAA0B;AAAA,IAC9C,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,IACxD,gBAAAA,OAAC,OAAE,WAAU,0CAAyC,4DAAmD;AAAA,KAC3G;AAEJ;AAEA,IAAO,mBAAQ;;;ACjBf,SAAS,SAAAG,eAAa;AAUhB,SACE,OAAAC,QADF,QAAAC,cAAA;AALN,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,OAAC,SAAI,WAAU,6BACb;AAAA,oBAAAA,OAAC,SAAI,WAAU,2CACb;AAAA,sBAAAD,OAAC,SAAM,SAAS,IAAI,kCAAoB;AAAA,MACxC,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,4BAAc;AAAA,OAChE;AAAA,IACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,KAC1D;AAEJ;AAEA,IAAO,mBAAQ;;;ACnBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,iBAAiB,MAAM;AAC3B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,8BAAgB;AAAA,IACpC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,cAAa;AAAA,QACb,gBAAY;AAAA;AAAA,IACd;AAAA,IACA,gBAAAA,OAAC,OAAE,WAAU,oEAAmE,oCAAsB;AAAA,KACxG;AAEJ;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAAuB;AAAA,IAC3C,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,WAAU;AAAA;AAAA,IACZ;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAEtB,SAAS,YAAAC,iBAAgB;AAUnB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,sIACb;AAAA,wBAAAD,OAACG,WAAA,EAAS,WAAU,UAAS;AAAA,QAC7B,gBAAAH,OAAC,UAAK,WAAU,WAAU,kBAAI;AAAA,SAChC;AAAA,MACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,YAAW,WAAU,aAAY;AAAA,OAC1E;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,SAAAI,eAAa;AAEtB,SAAS,gBAAgB;AAUnB,gBAAAC,QAGE,QAAAC,eAHF;AALN,IAAM,mBAAmB,MAAM;AAC7B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,iCAAmB;AAAA,IACvC,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,WAAU,aAAY;AAAA,MAC9E,gBAAAC,QAAC,SAAI,WAAU,uIACb;AAAA,wBAAAD,OAAC,YAAS,WAAU,UAAS;AAAA,QAC7B,gBAAAA,OAAC,UAAK,WAAU,WAAU,mBAAK;AAAA,SACjC;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,0CAA4B;AAAA,IAChD,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,oBAAmB,WAAU,cAAa;AAAA,MACjF,gBAAAA,OAAC,UAAK,WAAU,wHAAuH,sBAEvI;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,wBAAwB,MAAM;AAClC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wCAA0B;AAAA,IAC9C,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,gBAAe,WAAU,cAAa;AAAA,MAC7E,gBAAAA,OAAC,UAAK,WAAU,yHAAwH,kBAExI;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAAuB;AAAA,IAC3C,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,gBAAe,WAAU,oBAAmB;AAAA,MACnF,gBAAAA,OAAC,UAAK,WAAU,wHAAuH,sBAEvI;AAAA,MACA,gBAAAA,OAAC,UAAK,WAAU,yHAAwH,kBAExI;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAAuB;AAAA,IAC3C,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD,OAAC,UAAK,WAAU,mHAAkH,sBAElI;AAAA,MACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,oBAAmB,WAAU,qCAAoC;AAAA,OAC1G;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,gBAAe,WAAU,qCAAoC;AAAA,MACpG,gBAAAA,OAAC,UAAK,WAAU,mHAAkH,kBAElI;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,kBAAkB,MAAM;AAC5B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,gCAAkB;AAAA,IACtC,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD,OAAC,UAAK,WAAU,mHAAkH,sBAElI;AAAA,MACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,gBAAe,WAAU,mCAAkC;AAAA,MAClG,gBAAAA,OAAC,UAAK,WAAU,mHAAkH,kBAElI;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,kBAAkB,MAAM;AAC5B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,0BAAY;AAAA,IAChC,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,WAAU,2CAA0C;AAAA,KAC9G;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,SAAAG,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,4BAA4B,MAAM;AACtC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,kCACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAU;AAAA,QACX;AAAA;AAAA,IAED;AAAA,IACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,WAAU,2BAA0B;AAAA,KAC9F;AAEJ;AAEA,IAAO,mBAAQ;;;ACrBf,SAAS,SAAAG,eAAa;AAQlB,SAKI,OAAAC,QALJ,QAAAC,eAAA;AAJJ,IAAM,yBAAyB,MAAM;AACnC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,kCACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAU;AAAA,QAEV,0BAAAA,OAAC,UAAK,WAAU,kCAAiC,uCAAyB;AAAA;AAAA,IAC5E;AAAA,IACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,KAAI,WAAU,sBAAqB;AAAA,KAC7E;AAEJ;AAEA,IAAO,mBAAQ;;;ACpBf,SAAS,SAAAG,eAAa;AAMlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKF,QAAM;AAEjB,SACE,gBAAAE,QAAC,SAAI,WAAU,qcACb;AAAA,oBAAAD,OAAC,WAAM,SAAS,IAAI,WAAU,wEAAuE,oCAErG;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,WAAU;AAAA;AAAA,IACZ;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AClBf,SAAS,SAAAE,SAAO,YAAAC,kBAAgB;AAEhC,SAAS,SAAS,kBAAkB;AAa9B,gBAAAC,QAGE,QAAAC,eAHF;AAPN,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAS,KAAK;AAEhD,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,4BAAc;AAAA,IAClC,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAM,YAAY,SAAS,YAAY,aAAY,YAAW,WAAU,QAAO;AAAA,MAC9F,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAS,MAAM,aAAa,eAAa,CAAC,SAAS;AAAA,UACnD,WAAU;AAAA,UAET;AAAA,wBAAY,gBAAAD,OAAC,cAAW,IAAK,gBAAAA,OAAC,WAAQ;AAAA,YACvC,gBAAAA,OAAC,UAAK,WAAU,WAAW,sBAAY,kBAAkB,iBAAgB;AAAA;AAAA;AAAA,MAC3E;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AClCf,SAAS,SAAAI,eAAa;AASlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJJ,IAAM,gBAAgB,MAAM;AAC1B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wBAAU;AAAA,IAC9B,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,WAAU;AAAA;AAAA,IACZ;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACpBf,SAAS,SAAAG,eAAa;AAWhB,gBAAAC,QAMI,QAAAC,eANJ;AALN,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAAuB;AAAA,IAC3C,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAA,QAAC,UAAO,cAAa,YACnB;AAAA,wBAAAD,OAAC,iBAAc,IAAQ,WAAU,gDAC/B,0BAAAA,OAAC,eAAY,GACf;AAAA,QACA,gBAAAC,QAAC,iBACC;AAAA,0BAAAD,OAAC,cAAW,OAAM,YAAW,WAAU,uBAAsB,sBAE7D;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,WAAU,WAAU,uBAAsB,qBAE5D;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,UAAS,WAAU,uBAAsB,oBAE3D;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,WAAU,WAAU,uBAAsB,qBAE5D;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,SAAQ,WAAU,uBAAsB,mBAE1D;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,UAAS,WAAU,uBAAsB,oBAE3D;AAAA,WACF;AAAA,SACF;AAAA,MACA,gBAAAA,OAAC,SAAM,IAAQ,MAAK,QAAO,aAAY,oBAAmB,WAAU,qCAAoC;AAAA,OAC1G;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC5Cf,SAAS,SAAAG,eAAa;AAWhB,gBAAAC,QAYI,QAAAC,eAZJ;AALN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,QAAC,UAAO,cAAa,QACnB;AAAA,wBAAAD,OAAC,iBAAc,IAAQ,WAAU,8BAC/B,0BAAAA,OAAC,eAAY,GACf;AAAA,QACA,gBAAAC,QAAC,iBACC;AAAA,0BAAAD,OAAC,cAAW,OAAM,QAAO,WAAU,uBAAsB,kBAEzD;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,QAAO,WAAU,uBAAsB,kBAEzD;AAAA,UACA,gBAAAA,OAAC,cAAW,OAAM,QAAO,WAAU,uBAAsB,kBAEzD;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxCf,SAAS,SAAAG,eAAa;AAWhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,kBAAkB,MAAM;AAC5B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,+BAAiB;AAAA,IACrC,gBAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB;AAAA,MACxD,gBAAAA,OAAC,UAAO,MAAK,UAAS,uBAAS;AAAA,OACjC;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACpBf,SAAS,SAAAG,eAAa;AAEtB,SAAS,yBAAyB;AAW5B,gBAAAC,QAGE,QAAAC,eAHF;AALN,IAAM,2BAA2B,MAAM;AACrC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,0CAA4B;AAAA,IAChD,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAM,IAAQ,MAAK,SAAQ,aAAY,iBAAgB,WAAU,QAAO;AAAA,MACzE,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAD,OAAC,qBAAkB;AAAA,YACnB,gBAAAA,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC7Bf,SAAS,SAAAG,eAAa;AAEtB,SAAS,gBAAAC,qBAAoB;AAWvB,gBAAAC,QAQE,QAAAC,eARF;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,oCAAsB;AAAA,IAC1C,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAAO,WAAU,kBAC9C;AAAA,wBAAAD,OAACG,eAAA,EAAa;AAAA,QACd,gBAAAH,OAAC,UAAK,WAAU,WAAU,sBAAQ;AAAA,SACpC;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC9Bf,SAAS,SAAAI,eAAa;AAWhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAC,QAAC,SAAI,WAAU,6BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,UAAO,WAAU,kBAAiB,uBAAS;AAAA,OAC9C;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACvBf,SAAS,SAAAG,SAAO,YAAAC,kBAAkC;AAuB5C,gBAAAC,QAWE,QAAAC,eAXF;AAlBN,IAAM,YAAY;AAClB,IAAM,eAAe;AAErB,IAAM,0BAA0B,MAAM;AACpC,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAS,YAAY;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,WAAS,aAAa,MAAM;AAExE,QAAM,KAAKC,QAAM;AAEjB,QAAM,eAAe,CAAC,MAAqC;AACzD,QAAI,EAAE,OAAO,MAAM,UAAU,WAAW;AACtC,eAAS,EAAE,OAAO,KAAK;AACvB,wBAAkB,EAAE,OAAO,MAAM,MAAM;AAAA,IACzC;AAAA,EACF;AAEA,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wCAA0B;AAAA,IAC9C,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,QAAC,UAAK,WAAU,4JACb;AAAA;AAAA,QAAe;AAAA,QAAE;AAAA,SACpB;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,SAAAG,SAAO,YAAAC,kBAAkC;AAuB5C,gBAAAC,QAEA,QAAAC,eAFA;AAlBN,IAAMC,aAAY;AAClB,IAAMC,gBAAe;AAErB,IAAM,yBAAyB,MAAM;AACnC,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAASD,aAAY;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,IAAIC,WAASD,cAAa,MAAM;AAExE,QAAM,KAAKE,QAAM;AAEjB,QAAM,eAAe,CAAC,MAAqC;AACzD,QAAI,EAAE,OAAO,MAAM,UAAUH,YAAW;AACtC,eAAS,EAAE,OAAO,KAAK;AACvB,wBAAkB,EAAE,OAAO,MAAM,MAAM;AAAA,IACzC;AAAA,EACF;AAEA,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wCAA0B;AAAA,IAC9C,gBAAAA,OAAC,SAAM,MAAK,QAAO,aAAY,YAAW,OAAc,WAAWE,YAAW,UAAU,cAAc;AAAA,IACtG,gBAAAD,QAAC,OAAE,WAAU,iCACX;AAAA,sBAAAD,OAAC,UAAK,WAAU,gBAAgB,UAAAE,aAAY,gBAAe;AAAA,MAAO;AAAA,OACpE;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AChCf,SAAS,SAAAI,SAAO,UAAAC,SAAQ,YAAAC,kBAAgB;AAExC,SAAS,mBAAmB;AAuBtB,gBAAAC,QAYI,QAAAC,eAZJ;AAjBN,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAS,gBAAgB;AAEnD,QAAM,WAAWC,QAAyB,IAAI;AAE9C,QAAM,KAAKC,QAAM;AAEjB,QAAM,mBAAmB,MAAM;AAC7B,aAAS,EAAE;AAEX,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AAEA,SACE,gBAAAH,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAAuB;AAAA,IAC3C,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,UACL;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ;AAAA,UACA,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,UACtC,WAAU;AAAA;AAAA,MACZ;AAAA,MACC,SACC,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAS;AAAA,UACT,WAAU;AAAA,UAEV;AAAA,4BAAAD,OAAC,eAAY;AAAA,YACb,gBAAAA,OAAC,UAAK,WAAU,WAAU,yBAAW;AAAA;AAAA;AAAA,MACvC;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACtDf,SAAS,SAAAK,eAAa;AAUhB,gBAAAC,QACA,QAAAC,eADA;AALN,IAAM,kBAAkB,MAAM;AAC5B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,qCAA6B;AAAA,IACjD,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAI,WAAU,iHACb,0BAAAA,OAAC,SAAI,WAAU,0IAAyI,qBAExJ,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC5Bf,SAAS,SAAAG,eAAa;AAEtB,SAAS,SAAS,cAAAC,mBAAkB;AAW9B,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,+CAAiC;AAAA,IACrD,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,sIACb;AAAA,wBAAAD,OAACG,aAAA,EAAW,WAAU,UAAS;AAAA,QAC/B,gBAAAH,OAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,SAClC;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAD,OAAC,WAAQ;AAAA,YACT,gBAAAA,OAAC,UAAK,WAAU,WAAU,4BAAc;AAAA;AAAA;AAAA,MAC1C;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACpCf,SAAS,aAAAI,YAAW,SAAAC,SAAO,YAAAC,kBAAgB;AAE3C,SAAS,oBAAAC,mBAAkB,cAAAC,mBAAkB;AA2BvC,gBAAAC,QAEE,QAAAC,eAFF;AAtBN,IAAM,wBAAwB,MAAM;AAClC,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAS,EAAE;AACrC,QAAM,CAAC,WAAW,YAAY,IAAIA,WAAS,KAAK;AAEhD,QAAM,KAAKC,QAAM;AAEjB,EAAAC,WAAU,MAAM;AACd,QAAI,OAAO;AACT,mBAAa,IAAI;AAEjB,YAAM,QAAQ,WAAW,MAAM;AAC7B,qBAAa,KAAK;AAAA,MACpB,GAAG,GAAG;AAEN,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAEA,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,gBAAAH,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,sCAAwB;AAAA,IAC5C,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,sIACb;AAAA,wBAAAD,OAACK,aAAA,EAAW,WAAU,UAAS;AAAA,QAC/B,gBAAAL,OAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,SAClC;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,aAAY;AAAA,UACZ;AAAA,UACA,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,UACtC,WAAU;AAAA;AAAA,MACZ;AAAA,MACC,aACC,gBAAAC,QAAC,SAAI,WAAU,uIACb;AAAA,wBAAAD,OAACM,mBAAA,EAAiB,WAAU,uBAAsB;AAAA,QAClD,gBAAAN,OAAC,UAAK,WAAU,WAAU,wBAAU;AAAA,SACtC;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACxDf,SAAS,aAAAO,YAAW,YAAAC,iBAAgB;AAEpC,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,mBAAmB;AAKnD,gBAAAC,QAIE,QAAAC,eAJF;AAHN,IAAM,gCAAgC,MAAM;AAC1C,SACE,gBAAAA,QAAC,eAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAD,OAACD,QAAA,EAAM,WAAU,wEAAuE,2CAExF;AAAA,IACA,gBAAAE,QAACJ,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAI;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAI,OAACN,YAAA,EAAU;AAAA,YACX,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,OAACF,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAG;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAI,OAACL,WAAA,EAAS;AAAA,YACV,gBAAAK,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,aAAAE,YAAW,YAAAC,iBAAgB;AAEpC,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,eAAAC,oBAAmB;AAKnD,gBAAAC,QAKE,QAAAC,eALF;AAHN,IAAM,0BAA0B,MAAM;AACpC,SACE,gBAAAA,QAACF,cAAA,EAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAC,OAACF,QAAA,EAAM,WAAU,wEAAuE,oCAExF;AAAA,IACA,gBAAAG,QAACL,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAI,OAACH,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAI;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACP,YAAA,EAAU;AAAA,YACX,gBAAAO,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAC;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACN,WAAA,EAAS;AAAA,YACV,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,aAAAE,YAAW,YAAAC,iBAAgB;AAEpC,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,eAAAC,oBAAmB;AAKnD,gBAAAC,QAMI,QAAAC,eANJ;AAHN,IAAM,8BAA8B,MAAM;AACxC,SACE,gBAAAA,QAACF,cAAA,EAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAC,OAACF,QAAA,EAAM,WAAU,wEAAuE,wCAExF;AAAA,IACA,gBAAAG,QAACL,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAI,OAACH,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAI,QAAC,SAAI,WAAU,oCACb;AAAA,wBAAAA;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV;AAAA,8BAAAK,OAACN,WAAA,EAAS,WAAU,UAAS;AAAA,cAC7B,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,QACrC;AAAA,QACA,gBAAAC;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV;AAAA,8BAAAK,OAACP,YAAA,EAAU,WAAU,UAAS;AAAA,cAC9B,gBAAAO,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,QACrC;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC5Cf,SAAS,aAAAE,YAAW,YAAAC,iBAAgB;AAEpC,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,eAAAC,oBAAmB;AAKnD,gBAAAC,QAIE,QAAAC,eAJF;AAHN,IAAM,uCAAuC,MAAM;AACjD,SACE,gBAAAA,QAACF,cAAA,EAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAC,OAACF,QAAA,EAAM,WAAU,wEAAuE,qDAExF;AAAA,IACA,gBAAAG,QAACL,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAK;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACP,YAAA,EAAU,WAAU,UAAS;AAAA,YAC9B,gBAAAO,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,OAACH,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAI;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACN,WAAA,EAAS,WAAU,UAAS;AAAA,YAC7B,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,aAAAE,YAAW,YAAAC,iBAAgB;AAEpC,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,eAAAC,oBAAmB;AAKnD,gBAAAC,QAKE,QAAAC,eALF;AAHN,IAAM,iCAAiC,MAAM;AAC3C,SACE,gBAAAA,QAACF,cAAA,EAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAC,OAACF,QAAA,EAAM,WAAU,wEAAuE,8CAExF;AAAA,IACA,gBAAAG,QAACL,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAI,OAACH,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAI;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACP,YAAA,EAAU,WAAU,UAAS;AAAA,YAC9B,gBAAAO,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAC;AAAA,QAACN;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UAEV;AAAA,4BAAAK,OAACN,WAAA,EAAS,WAAU,UAAS;AAAA,YAC7B,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,MACrC;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,mBAAAE,mBAAiB,iBAAAC,sBAAqB;AAE/C,SAAS,UAAAC,SAAQ,SAAAC,QAAO,SAAAC,QAAO,SAAAC,QAAO,eAAAC,oBAAmB;AAKnD,gBAAAC,QAMI,QAAAC,eANJ;AAHN,IAAM,+BAA+B,MAAM;AACzC,SACE,gBAAAA,QAACF,cAAA,EAAY,cAAc,MAAM,UAAU,GAAG,WAAU,6BACtD;AAAA,oBAAAC,OAACF,QAAA,EAAM,WAAU,wEAAuE,yCAExF;AAAA,IACA,gBAAAG,QAACL,QAAA,EAAM,WAAU,kkBACf;AAAA,sBAAAI,OAACH,QAAA,EAAM,WAAU,sHAAqH;AAAA,MACtI,gBAAAI,QAAC,SAAI,WAAU,oCACb;AAAA,wBAAAA;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV;AAAA,8BAAAK,OAACN,gBAAA,EAAc,WAAU,UAAS;AAAA,cAClC,gBAAAM,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,QACrC;AAAA,QACA,gBAAAC;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV;AAAA,8BAAAK,OAACP,mBAAA,EAAgB,WAAU,UAAS;AAAA,cACpC,gBAAAO,OAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,QACrC;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC1Cf,SAAS,SAAAE,SAAO,WAAAC,UAAS,YAAAC,kBAAgB;AAEzC,SAAS,aAAAC,aAAW,WAAAC,UAAS,cAAAC,aAAY,SAAAC,cAAa;AAyDhD,gBAAAC,QAUE,QAAAC,eAVF;AAjDN,IAAM,eAAe;AAAA,EACnB,EAAE,OAAO,UAAU,MAAM,yBAAyB;AAAA,EAClD,EAAE,OAAO,SAAS,MAAM,8BAA8B;AAAA,EACtD,EAAE,OAAO,SAAS,MAAM,8BAA8B;AAAA,EACtD,EAAE,OAAO,SAAS,MAAM,oBAAoB;AAAA,EAC5C;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEA,IAAM,4BAA4B,MAAM;AACtC,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,EAAE;AAC3C,QAAM,CAAC,WAAW,YAAY,IAAIA,WAAS,KAAK;AAEhD,QAAM,KAAKC,QAAM;AAEjB,QAAM,mBAAmB,MAAM,aAAa,eAAa,CAAC,SAAS;AAEnE,QAAM,WAAW,aAAa,IAAI,UAAQ;AAAA,IACxC,KAAK,IAAI,MAAM,KAAK,QAAQ;AAAA,IAC5B,MAAM,IAAI;AAAA,EACZ,EAAE;AAEF,QAAM,gBAAgBC,SAAQ,MAAM;AAClC,WAAO,SAAS,OAAO,SAAO,IAAI,GAAG,EAAE;AAAA,EACzC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,WAAW,CAAC,UAAkB;AAClC,QAAI,UAAU,EAAG,QAAO;AACxB,QAAI,SAAS,EAAG,QAAO;AACvB,QAAI,SAAS,EAAG,QAAO;AACvB,QAAI,SAAS,EAAG,QAAO;AACvB,QAAI,UAAU,EAAG,QAAO;AAExB,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAAC,UAAkB;AACjC,QAAI,UAAU,EAAG,QAAO;AACxB,QAAI,SAAS,EAAG,QAAO;AACvB,QAAI,SAAS,EAAG,QAAO;AACvB,QAAI,UAAU,EAAG,QAAO;AAExB,WAAO;AAAA,EACT;AAEA,SACE,gBAAAH,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,0CAA4B;AAAA,IAChD,gBAAAC,QAAC,SAAI,WAAU,iBACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAM,YAAY,SAAS;AAAA,UAC3B,aAAY;AAAA,UACZ,OAAO;AAAA,UACP,UAAU,OAAK,YAAY,EAAE,OAAO,KAAK;AAAA,UACzC,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAS;AAAA,UACT,WAAU;AAAA,UAET;AAAA,wBAAY,gBAAAD,OAACK,aAAA,EAAW,IAAK,gBAAAL,OAACM,UAAA,EAAQ;AAAA,YACvC,gBAAAN,OAAC,UAAK,WAAU,WAAW,sBAAY,kBAAkB,iBAAgB;AAAA;AAAA;AAAA,MAC3E;AAAA,OACF;AAAA,IAEA,gBAAAA,OAAC,SAAI,WAAU,8BACZ,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,UACjC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA,QAAQ,gBAAgB,SAAS,aAAa,IAAI;AAAA,QACpD;AAAA;AAAA,MAJK;AAAA,IAKP,CACD,GACH;AAAA,IAEA,gBAAAC,QAAC,OAAE,WAAU,uCAAuC;AAAA,cAAQ,aAAa;AAAA,MAAE;AAAA,OAAe;AAAA,IAE1F,gBAAAD,OAAC,QAAG,WAAU,oBACX,mBAAS,IAAI,CAAC,KAAK,UAClB,gBAAAC,QAAC,QAAe,WAAU,2BACvB;AAAA,UAAI,MACH,gBAAAD,OAACO,aAAA,EAAU,WAAU,6CAA4C,IAEjE,gBAAAP,OAACQ,QAAA,EAAM,WAAU,gCAA+B;AAAA,MAElD,gBAAAP,QAAC,UAAK,WAAW,GAAG,WAAW,IAAI,MAAM,uCAAuC,uBAAuB,GACpG;AAAA,YAAI;AAAA,QACL,gBAAAD,OAAC,UAAK,WAAU,WAAW,cAAI,MAAM,uBAAuB,0BAAyB;AAAA,SACvF;AAAA,SATO,KAUT,CACD,GACH;AAAA,IAEA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAC/B;AAAA,MACZ,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AC7Hf,SAAS,SAAAS,eAAa;AAEtB,SAAS,gBAAgB;AAUnB,gBAAAC,QAUA,QAAAC,eAVA;AALN,IAAM,oBAAoB,MAAM;AAC9B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,6BAAe;AAAA,IACnC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,KAAK,SAAS,YAAY;AAAA,UACxB,aAAa;AAAA,UACb,iBAAiB;AAAA,QACnB,CAAC;AAAA;AAAA,IACH;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACrCf,SAAS,SAAAG,eAAa;AAEtB,SAAS,YAAAC,iBAAgB;AAUnB,gBAAAC,QAYA,QAAAC,eAZA;AALN,IAAM,gBAAgB,MAAM;AAC1B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wBAAU;AAAA,IAC9B,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,KAAKG,UAAS,YAAY;AAAA,UACxB,aAAa;AAAA,UACb,aAAa;AAAA,UACb,cAAc;AAAA,UACd,iBAAiB;AAAA,QACnB,CAAC;AAAA;AAAA,IACH;AAAA,IACA,gBAAAF,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACvCf,SAAS,SAAAI,eAAa;AAEtB,SAAS,kBAAAC,uBAAsB;AAE/B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,aAAiC;AAWlC,gBAAAC,QAGE,QAAAC,eAHF;AANN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AACjB,QAAM,EAAE,MAAM,oBAAoB,kBAAkB,IAAIC,kBAAiB;AAEzE,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,yBAAW;AAAA,IAC/B,gBAAAC,QAAC,SAAI,WAAU,YACb;AAAA,sBAAAD,OAAC,SAAO,GAAG,mBAAmB,GAAG,IAAQ,WAAU,cAAa;AAAA,MAChE,gBAAAC,QAAC,SAAI,WAAU,uIACZ;AAAA,aAAK,WACJ,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACT,GAAG,kBAAkB;AAAA,cACpB,QAAQI;AAAA,YACV,CAAC;AAAA;AAAA,QACH,IAEA,gBAAAJ,OAACK,iBAAA,EAAe,WAAU,UAAS;AAAA,QAErC,gBAAAL,OAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,SACzC;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;AChDf,SAAS,SAAAM,eAAa;AAEtB,SAAS,oBAAAC,yBAAwB;AAW3B,gBAAAC,QAEA,QAAAC,eAFA;AANN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AACjB,QAAM,EAAE,mBAAmB,IAAIC,kBAAiB;AAEhD,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,yBAAW;AAAA,IAC/B,gBAAAA,OAAC,SAAO,GAAG,mBAAmB,GAAG,IAAQ;AAAA,IACzC,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC9Bf,SAAS,SAAAI,eAAa;AAEtB,SAAS,oBAAAC,yBAAwB;AAW3B,gBAAAC,QAEA,QAAAC,eAFA;AANN,IAAM,mBAAmB,MAAM;AAC7B,QAAM,KAAKC,QAAM;AACjB,QAAM,EAAE,YAAY,IAAIC,kBAAiB;AAEzC,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,sBAAQ;AAAA,IAC5B,gBAAAA,OAAC,SAAO,GAAG,YAAY,GAAG,IAAQ;AAAA,IAClC,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC9Bf,SAAS,SAAAI,eAAa;AAEtB,SAAS,kBAAAC,uBAAsB;AAE/B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,aAAiC;AAWlC,gBAAAC,QAII,QAAAC,eAJJ;AANN,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,QAAM;AACjB,QAAM,EAAE,MAAM,oBAAoB,oBAAoB,aAAa,kBAAkB,IAAIC,kBAAiB;AAE1G,SACE,gBAAAF,QAAC,SAAI,WAAU,6BACb;AAAA,oBAAAD,OAAC,SAAM,0BAAY;AAAA,IACnB,gBAAAC,QAAC,SACC;AAAA,sBAAAA,QAAC,SAAI,WAAU,6BACb;AAAA,wBAAAD,OAAC,SAAO,GAAG,mBAAmB,GAAG,IAAI,UAAU,EAAE,IAAI,WAAU,wCAAuC;AAAA,QACtG,gBAAAC,QAAC,SAAI,WAAU,uIACZ;AAAA,eAAK,WACJ,gBAAAD;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACT,GAAG,kBAAkB;AAAA,gBACpB,QAAQI;AAAA,cACV,CAAC;AAAA;AAAA,UACH,IAEA,gBAAAJ,OAACK,iBAAA,EAAe,WAAU,UAAS;AAAA,UAErC,gBAAAL,OAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,WACzC;AAAA,SACF;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,eACb;AAAA,wBAAAD,OAAC,SAAI,WAAU,mCACb,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,mBAAmB;AAAA,YACvB,IAAI,UAAU,EAAE;AAAA,YAChB,WAAU;AAAA;AAAA,QACZ,GACF;AAAA,QACA,gBAAAA,OAAC,SAAI,WAAU,0CACb,0BAAAA,OAAC,SAAO,GAAG,YAAY,GAAG,IAAI,OAAO,EAAE,IAAI,WAAU,6CAA4C,GACnG;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MAChC;AAAA,MACX,gBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;AChEf,SAAS,SAAAM,eAAa;AAEtB,SAAS,0BAA0B;;;ACFnC,YAAYC,aAAW;AACvB,SAAS,UAAU,uBAAuB;AAC1C,SAAS,aAAa;AAQpB,gBAAAC,QA4BE,QAAAC,eA5BF;AAJF,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,oBAAoB,GAAG,MAAM,GAAG,QAC9C,gBAAAD;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,oBAAoB;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW,GAAG,+BAA+B,SAAS;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,SAAS,cAAc;AAEvB,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA,OAAC,SAAI,KAAU,WAAW,GAAG,2BAA2B,SAAS,GAAI,GAAG,OAAO,CAChF;AACD,cAAc,cAAc;AAE5B,IAAM,eAAqB,mBAGzB,CAAC,EAAE,OAAO,WAAW,GAAG,MAAM,GAAG,QAAQ;AACzC,QAAM,kBAAwB,mBAAW,eAAe;AACxD,QAAM,EAAE,MAAM,cAAc,SAAS,IAAI,gBAAgB,MAAM,KAAK;AAEpE,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,gBACC,gBAAAD,OAAC,SAAI,WAAU,yEACb,0BAAAA,OAAC,SAAI,WAAU,4DAA2D,GAC5E;AAAA;AAAA;AAAA,EAEJ;AAEJ,CAAC;AACD,aAAa,cAAc;AAE3B,IAAM,oBAA0B,mBAG9B,CAAC,EAAE,GAAG,MAAM,GAAG,QACf,gBAAAA,OAAC,SAAI,KAAU,MAAK,aAAa,GAAG,OAClC,0BAAAA,OAAC,SAAM,GACT,CACD;AACD,kBAAkB,cAAc;;;ADvD1B,gBAAAE,QAEE,QAAAC,eAFF;AALN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,8BAAgB;AAAA,IACpC,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAAG,SAAS,oBACvC,0BAAAC,QAAC,iBACC;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AEzBf,SAAS,SAAAG,eAAa;AAEtB,SAAS,oCAAoC;AAUvC,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,2BAA2B,MAAM;AACrC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,oCAAsB;AAAA,IAC1C,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAAG,SAAS,8BACvC,0BAAAC,QAAC,iBACC;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;ACzBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,yBAAyB,MAAM;AACnC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,mCAAqB;AAAA,IACzC,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAC3B,0BAAAC,QAAC,iBACC;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,IACA,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,MACjB;AAAA,MAC1B,gBAAAD,OAAC,OAAE,MAAK,KAAI,WAAU,gCAA+B,yBAErD;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AC7Bf,SAAS,aAAAG,YAAW,SAAAC,SAAO,YAAAC,kBAAgB;AAgCrC,gBAAAC,QAEE,QAAAC,eAFF;AA3BN,IAAM,8BAA8B,MAAM;AACxC,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,EAAE;AAC3C,QAAM,KAAKC,QAAM;AAEjB,EAAAC,WAAU,MAAM;AACd,QAAI,WAAW,GAAG;AAChB,YAAM,QAAQ,WAAW,MAAM;AAC7B,oBAAY,UAAQ,OAAO,CAAC;AAAA,MAC9B,GAAG,GAAI;AAEP,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,aAAa,CAAC,YAAoB;AACtC,UAAM,OAAO,KAAK,MAAM,UAAU,EAAE;AACpC,UAAM,OAAO,UAAU;AAEvB,WAAO,GAAG,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,EAChF;AAEA,QAAM,eAAe,MAAM;AACzB,gBAAY,EAAE;AAAA,EAChB;AAEA,SACE,gBAAAH,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,yCAA2B;AAAA,IAC/C,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAC3B,0BAAAC,QAAC,iBACC;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,IACA,gBAAAA,OAAC,OAAE,WAAU,iCACV,qBAAW,IACV,uBAAuB,WAAW,QAAQ,CAAC,KAE3C,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,OAAK;AACZ,YAAE,eAAe;AACjB,uBAAa;AAAA,QACf;AAAA,QACA,WAAU;AAAA,QACX;AAAA;AAAA,IAED,GAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AC7Df,SAAS,SAAAK,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,uBAAuB,MAAM;AACjC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,gCAAkB;AAAA,IACtC,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAC3B,0BAAAC,QAAC,iBAAc,WAAU,qFACvB;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;ACvBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,8BAAgB;AAAA,IACpC,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAC3B,0BAAAC,QAAC,iBAAc,WAAU,oNACvB;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;ACvBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,+BAAiB;AAAA,IACrC,gBAAAA,OAAC,YAAS,IAAQ,WAAW,GAC3B,0BAAAC,QAAC,iBAAc,WAAU,uPACvB;AAAA,sBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,MACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,OAC1B,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;ACvBf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,+BAAiB;AAAA,IACrC,gBAAAC,QAAC,YAAS,IAAQ,WAAW,GAC3B;AAAA,sBAAAA,QAAC,iBACC;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,MACA,gBAAAA,OAAC,qBAAkB;AAAA,MACnB,gBAAAC,QAAC,iBACC;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AC5Bf,SAAS,SAAAG,eAAa;AAUhB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,8BAA8B,MAAM;AACxC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,uCAAyB;AAAA,IAC7C,gBAAAC,QAAC,YAAS,IAAQ,WAAW,GAC3B;AAAA,sBAAAA,QAAC,iBAAc,WAAU,qFACvB;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,MACA,gBAAAA,OAAC,qBAAkB;AAAA,MACnB,gBAAAC,QAAC,iBAAc,WAAU,qFACvB;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AC5Bf,SAAS,SAAAG,eAAa;AAEtB,SAAS,eAAe;AAUlB,gBAAAC,QAEE,QAAAC,eAFF;AALN,IAAM,8BAA8B,MAAM;AACxC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAAC,SAAI,WAAU,aACb;AAAA,oBAAAD,OAAC,SAAM,SAAS,IAAI,wCAA0B;AAAA,IAC9C,gBAAAC,QAAC,YAAS,IAAQ,WAAW,GAC3B;AAAA,sBAAAA,QAAC,iBACC;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,MACA,gBAAAA,OAAC,SAAI,MAAK,aAAY,WAAU,yBAC9B,0BAAAA,OAAC,WAAQ,GACX;AAAA,MACA,gBAAAC,QAAC,iBACC;AAAA,wBAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,QACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,SAC1B;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,uBAAQ;;;AChCf,YAAYG,aAAW;AACvB,SAAS,aAAa,gBAAAC,eAAc,sBAAsB;AAMxD,gBAAAC,QA0DA,QAAAC,eA1DA;AADF,IAAM,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,MACxC,gBAAAD;AAAA,EAAC;AAAA;AAAA,IACC,MAAK;AAAA,IACL,cAAW;AAAA,IACX,WAAW,GAAG,sCAAsC,SAAS;AAAA,IAC5D,GAAG;AAAA;AACN;AAEF,WAAW,cAAc;AAEzB,IAAM,oBAA0B,mBAG9B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,oCAAoC,SAAS;AAAA,IAC1D,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAAc;AAEhC,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA,OAAC,QAAG,KAAU,WAAW,GAAG,IAAI,SAAS,GAAI,GAAG,OAAO,CACxD;AACD,eAAe,cAAc;AAO7B,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MACE,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC,gBAAc,WAAW,SAAS;AAAA,IAClC,WAAW;AAAA,MACT,eAAe;AAAA,QACb,SAAS,WAAW,YAAY;AAAA,QAChC;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,eAAe,cAAc;AAE7B,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,MACE,gBAAAC;AAAA,EAAC;AAAA;AAAA,IACC,cAAW;AAAA,IACX,MAAK;AAAA,IACL,WAAW,GAAG,gBAAgB,SAAS;AAAA,IACtC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,OAAC,eAAY,WAAU,WAAU;AAAA,MACjC,gBAAAA,OAAC,UAAK,sBAAQ;AAAA;AAAA;AAChB;AAEF,mBAAmB,cAAc;AAEjC,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA,GAAG;AACL,MACE,gBAAAC;AAAA,EAAC;AAAA;AAAA,IACC,cAAW;AAAA,IACX,MAAK;AAAA,IACL,WAAW,GAAG,gBAAgB,SAAS;AAAA,IACtC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,OAAC,UAAK,kBAAI;AAAA,MACV,gBAAAA,OAACE,eAAA,EAAa,WAAU,WAAU;AAAA;AAAA;AACpC;AAEF,eAAe,cAAc;AAE7B,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,MACE,gBAAAD;AAAA,EAAC;AAAA;AAAA,IACC,eAAW;AAAA,IACX,WAAW,GAAG,4CAA4C,SAAS;AAAA,IAClE,GAAG;AAAA,IAEJ;AAAA,sBAAAD,OAAC,kBAAe,WAAU,WAAU;AAAA,MACpC,gBAAAA,OAAC,UAAK,WAAU,WAAU,wBAAU;AAAA;AAAA;AACtC;AAEF,mBAAmB,cAAc;;;AC9F3B,SAEI,OAAAG,QAFJ,QAAAC,eAAA;AAHN,IAAM,iBAAiB,MAAM;AAC3B,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,GAC/B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,UAAQ,MAAC,eAElC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,GAC3B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACnCf,SAAS,mBAAAE,kBAAiB,oBAAAC,yBAAwB;AAO5C,SAGM,OAAAC,QAHN,QAAAC,eAAA;AAHN,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,uBAAsB,MAAK,QAC7D,0BAAAA,OAACE,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,IACA,gBAAAF,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,UAAQ,MAAC,eAElC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QACzD,0BAAAA,OAACG,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACnBT,SAEI,OAAAC,QAFJ,QAAAC,eAAA;AAHN,IAAM,kCAAkC,MAAM;AAC5C,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,GAC/B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAQ;AAAA,QACR,WAAW;AAAA,UACT,eAAe;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,UACR,CAAC;AAAA,UACD;AAAA,QACF;AAAA,QACD;AAAA;AAAA,IAED,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,GAC3B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACjCT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AAHN,IAAM,oCAAoC,MAAM;AAC9C,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,GAC/B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAQ;AAAA,QACR,WAAW;AAAA,UACT;AAAA,UACA,eAAe;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,UACR,CAAC;AAAA,QACH;AAAA,QACD;AAAA;AAAA,IAED,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,GAC3B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC/BT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AALN,IAAM,QAAQ,CAAC,GAAG,GAAG,CAAC;AAEtB,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBAAkB,WAAU,oDAC3B;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,WAAU,gBAAe,GACxD;AAAA,IACC,MAAM,IAAI,UAAQ;AACjB,YAAM,WAAW,SAAS;AAE1B,aACE,gBAAAA,OAAC,kBACC,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,IAAI,IAAI;AAAA,UACd,WAAW;AAAA,YACT;AAAA,cACE,CAAC,eAAe;AAAA,gBACd,SAAS;AAAA,gBACT,WACE;AAAA,cACJ,CAAC,CAAC,GAAG;AAAA,YACP;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,UAEC;AAAA;AAAA,MACH,KAhBmB,IAiBrB;AAAA,IAEJ,CAAC;AAAA,IACD,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,gBAAe,GACpD;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACvCT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AALN,IAAMC,SAAQ,CAAC,GAAG,GAAG,CAAC;AAEtB,IAAM,8BAA8B,MAAM;AACxC,SACE,gBAAAF,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,WAAU,gBAAe,GACxD;AAAA,IACCE,OAAM,IAAI,UACT,gBAAAF,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAM,IAAI,IAAI,IAAI,UAAU,SAAS,GAAG,WAAU,gBAC/D,gBACH,KAHmB,IAIrB,CACD;AAAA,IACD,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,gBAAe,GACpD;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACjCf,SAAS,kBAAkB,iBAAiB,mBAAAG,kBAAiB,oBAAAC,yBAAwB;AAS/E,SAGM,OAAAC,QAHN,QAAAC,eAAA;AALN,IAAMC,SAAQ,CAAC,GAAG,GAAG,CAAC;AAEtB,IAAM,iDAAiD,MAAM;AAC3D,SACE,gBAAAF,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,oBAAmB,MAAK,QAAO,WAAU,gBAC3E,0BAAAA,OAAC,oBAAiB,WAAU,UAAS,GACvC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,uBAAsB,MAAK,QAAO,WAAU,gBAC9E,0BAAAA,OAACG,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,IACCD,OAAM,IAAI,UACT,gBAAAF,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAM,IAAI,IAAI,IAAI,UAAU,SAAS,GAAG,WAAU,gBAC/D,gBACH,KAHmB,IAIrB,CACD;AAAA,IACD,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAACI,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,IACA,gBAAAJ,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAAC,mBAAgB,WAAU,UAAS,GACtC,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC1BL,gBAAAK,QAWA,QAAAC,eAXA;AALV,IAAM,6BAA6B,MAAM;AACvC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,GAC/B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,UAAQ,MAAC,eAElC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAC,QAAC,WACC;AAAA,sBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAA,OAAC,sBAAmB,GACtB;AAAA,MACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,OAAE,2BAAa,GAClB;AAAA,OACF,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,GAC3B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AChCT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AAHN,IAAM,0BAA0B,MAAM;AACpC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,WAAU,gBAAe,GACxD;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAQ;AAAA,QACR,WAAU;AAAA,QACX;AAAA;AAAA,IAED,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,gBAAe,eAElD,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,gBAAe,eAElD,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,gBAAe,GACpD;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC/BT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AAHN,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBAAkB,WAAU,mCAC3B;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,GAC/B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,UAAQ,MAAC,eAElC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,eAAC,GAC5B;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,GAC3B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACxBT,SAEI,OAAAE,QAFJ,QAAAC,eAAA;AAHN,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBAAkB,WAAU,0BAC3B;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,WAAU,UAAS,GAClD;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,UAAS,GAC9C;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACVL,gBAAAE,QAGA,QAAAC,eAHA;AALV,IAAM,mCAAmC,MAAM;AAC7C,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBAAkB,WAAU,0BAC3B;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,sBAAmB,MAAK,KAAI,WAAU,UAAS,GAClD;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAC,QAAC,OAAE,WAAU,iCAAgC,aAAU,UAAS;AAAA;AAAA,MACzD,gBAAAD,OAAC,UAAK,WAAU,mBAAkB,eAAC;AAAA,MAAO;AAAA,MAAI,gBAAAA,OAAC,UAAK,WAAU,mBAAkB,eAAC;AAAA,OACxF,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,WAAU,UAAS,GAC9C;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC5Bf,SAAS,mBAAAE,kBAAiB,oBAAAC,yBAAwB;AAUtC,gBAAAC,QAIF,QAAAC,eAJE;AANZ,IAAM,iBAAiB,MAAM;AAC3B,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,uBAAsB,MAAK,QAC7D,0BAAAA,OAACE,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,IACA,gBAAAF,OAAC,kBACC,0BAAAC,QAAC,OAAE,WAAU,iCAAgC,aAAU,UAAS;AAAA;AAAA,MACzD,gBAAAD,OAAC,UAAK,WAAU,mBAAkB,eAAC;AAAA,MAAO;AAAA,MAAI,gBAAAA,OAAC,UAAK,WAAU,mBAAkB,eAAC;AAAA,OACxF,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QACzD,0BAAAA,OAACG,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AC5Bf,SAAS,oBAAAC,mBAAkB,mBAAAC,kBAAiB,mBAAAC,kBAAiB,oBAAAC,yBAAwB;AAWzE,gBAAAC,QAgBI,QAAAC,eAhBJ;AANZ,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAD,OAAC,cACC,0BAAAC,QAAC,qBACC;AAAA,oBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,oBAAmB,MAAK,QAAO,WAAU,gBAC3E,0BAAAA,OAACE,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,IACA,gBAAAF,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,uBAAsB,MAAK,QAAO,WAAU,gBAC9E,0BAAAA,OAACG,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,IAEA,gBAAAH,OAAC,kBACC,0BAAAC,QAAC,UAAO,cAAc,OAAO,CAAC,GAAG,cAAW,eAC1C;AAAA,sBAAAD,OAAC,iBAAc,IAAG,eAAc,WAAU,2BAA0B,cAAW,eAC7E,0BAAAA,OAAC,eAAY,aAAY,eAAc,GACzC;AAAA,MACA,gBAAAA,OAAC,iBACE,gBAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,UAC/C,gBAAAC,QAAC,cAAsB,OAAO,OAAO,IAAI,GAAG;AAAA;AAAA,QACpC;AAAA,WADS,IAEjB,CACD,GACH;AAAA,OACF,GACF;AAAA,IAEA,gBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAACI,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,IACA,gBAAAJ,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAACK,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AClDf,SAAS,SAAAC,eAAa;AAEtB,SAAS,oBAAAC,mBAAkB,mBAAAC,kBAAiB,mBAAAC,kBAAiB,oBAAAC,yBAAwB;AAqB7E,gBAAAC,QAKE,QAAAC,eALF;AARR,IAAMC,SAAQ,CAAC,GAAG,GAAG,CAAC;AAEtB,IAAM,sBAAsB,MAAM;AAChC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAF,QAAC,SAAI,WAAU,kFACb;AAAA,oBAAAA,QAAC,SAAI,WAAU,oCACb;AAAA,sBAAAD,OAAC,SAAM,SAAS,IAAI,2BAAa;AAAA,MACjC,gBAAAC,QAAC,UAAO,cAAa,MACnB;AAAA,wBAAAD,OAAC,iBAAc,IAAQ,WAAU,2BAC/B,0BAAAA,OAAC,eAAY,aAAY,4BAA2B,GACtD;AAAA,QACA,gBAAAC,QAAC,iBAAc,WAAU,qHACvB;AAAA,0BAAAD,OAAC,cAAW,OAAM,MAAK,gBAAE;AAAA,UACzB,gBAAAA,OAAC,cAAW,OAAM,MAAK,gBAAE;AAAA,UACzB,gBAAAA,OAAC,cAAW,OAAM,MAAK,gBAAE;AAAA,WAC3B;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAA,OAAC,SAAI,WAAU,oGACb,0BAAAC,QAAC,OAAE,WAAU,mDAAkD,aAAU,UAAS;AAAA;AAAA,MACxE,gBAAAD,OAAC,UAAK,WAAU,mBAAkB,eAAC;AAAA,MAAO;AAAA,MAAI,gBAAAA,OAAC,UAAK,WAAU,mBAAkB,gBAAE;AAAA,MAAO;AAAA,MAAI;AAAA,MACrG,gBAAAA,OAAC,UAAK,WAAU,mBAAkB,iBAAG;AAAA,MAAO;AAAA,OAC9C,GACF;AAAA,IACA,gBAAAA,OAAC,cAAW,WAAU,qBACpB,0BAAAC,QAAC,qBACC;AAAA,sBAAAD,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,oBAAmB,MAAK,QAAO,WAAU,gBAC3E,0BAAAA,OAACI,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,MACA,gBAAAJ,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,uBAAsB,MAAK,QAAO,WAAU,gBAC9E,0BAAAA,OAACK,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,MACCH,OAAM,IAAI,UACT,gBAAAF,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAM,IAAI,IAAI,IAAI,UAAU,SAAS,GAAG,WAAU,gBAC/D,gBACH,KAHmB,IAIrB,CACD;AAAA,MACD,gBAAAA,OAAC,kBACC,0BAAAC,QAAC,WACC;AAAA,wBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAA,OAAC,sBAAmB,GACtB;AAAA,QACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,OAAE,2BAAa,GAClB;AAAA,SACF,GACF;AAAA,MACA,gBAAAA,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAACM,mBAAA,EAAiB,WAAU,UAAS,GACvC,GACF;AAAA,MACA,gBAAAN,OAAC,kBACC,0BAAAA,OAAC,kBAAe,MAAK,KAAI,cAAW,mBAAkB,MAAK,QAAO,WAAU,gBAC1E,0BAAAA,OAACO,kBAAA,EAAgB,WAAU,UAAS,GACtC,GACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,wBAAQ;;;ACtFf,SAAS,YAAAC,iBAAgB;;;ACEzB,YAAYC,aAAW;AACvB,YAAY,uBAAuB;AAgB/B,gBAAAC,cAAA;AAZJ,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC,gBAAAA;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,EAAE,KAAK;AAAA;AAAA,IAC5D;AAAA;AACF,CACD;AACD,SAAS,cAAgC,uBAAK;;;ADDtC,SACE,OAAAC,QADF,QAAAC,eAAA;AAhBR,IAAM,UAAU;AAAA,EACd,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEA,IAAM,qBAAqB,MAAM;AAC/B,QAAM,eAAe,OAAO,OAAO,OAAO,EAAE,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,CAAC;AACjF,QAAM,cAAc,OAAO,QAAQ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,MAAM,OAAO,IAAI,IAAI,OAAO,CAAC;AACxG,QAAM,gBAAgB,QAAQ,cAAc,gBAAgB,GAAG,QAAQ,CAAC,CAAC;AAEzE,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAACE,WAAA,EAAS;AAAA,MACV,gBAAAF,OAAC,UAAK,WAAU,WAAU,+BAAiB;AAAA,OAC7C,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,aACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD,OAAC,UAAK,WAAU,yBAAyB,yBAAc;AAAA,UACvD,gBAAAA,OAACE,WAAA,EAAS,WAAU,oFAAmF;AAAA,WACzG;AAAA,QACA,gBAAAD,QAAC,SAAI,WAAU,uBAAsB;AAAA;AAAA,UAAO;AAAA,UAAa;AAAA,WAAQ;AAAA,QACjE,gBAAAD,OAAC,OAAE,WAAU,iCAAgC,qDAAuC;AAAA,SACtF;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,QACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,qCACb;AAAA,0BAAAD,OAAC,SAAM,SAAQ,aAAY,WAAU,cAAa,0BAElD;AAAA,UACA,gBAAAA,OAAC,OAAE,MAAK,KAAI,WAAU,2BAA0B,qBAEhD;AAAA,WACF;AAAA,QACA,gBAAAA,OAACG,YAAA,EAAU,WAAU,QAAO;AAAA,QAC5B,gBAAAH,OAAC,QAAG,WAAU,aACX,iBAAO,QAAQ,OAAO,EACpB,QAAQ,EACR,IAAI,CAAC,CAAC,MAAM,KAAK,MAChB,gBAAAC,QAAC,QAAc,WAAU,2BACvB;AAAA,0BAAAA,QAAC,UAAK,WAAU,oBAAoB;AAAA;AAAA,YAAK;AAAA,aAAK;AAAA,UAC9C,gBAAAD,OAAC,YAAS,OAAQ,QAAQ,eAAgB,KAAK,WAAU,UAAS;AAAA,UAClE,gBAAAA,OAAC,UAAK,WAAU,oBAAoB,gBAAM,SAAS,GAAE;AAAA,aAH9C,IAIT,CACD,GACL;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;AEnEf,SAAS,uBAAuB;AAWxB,SACE,OAAAI,QADF,QAAAC,eAAA;AAJR,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,mBAAgB;AAAA,MACjB,gBAAAA,OAAC,UAAK,WAAU,WAAU,wBAAU;AAAA,OACtC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,aACb;AAAA,wBAAAD,OAAC,QAAG,WAAU,4BAA2B,wBAAU;AAAA,QACnD,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,+CAAiC;AAAA,SAChF;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,cACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,uCACb;AAAA,0BAAAD,OAAC,SAAM,SAAQ,SAAQ,mBAAK;AAAA,UAC5B,gBAAAA,OAAC,SAAM,IAAG,SAAQ,cAAa,QAAO,WAAU,kBAAiB;AAAA,WACnE;AAAA,QACA,gBAAAC,QAAC,SAAI,WAAU,uCACb;AAAA,0BAAAD,OAAC,SAAM,SAAQ,YAAW,wBAAU;AAAA,UACpC,gBAAAA,OAAC,SAAM,IAAG,YAAW,cAAa,SAAQ,WAAU,kBAAiB;AAAA,WACvE;AAAA,QACA,gBAAAC,QAAC,SAAI,WAAU,uCACb;AAAA,0BAAAD,OAAC,SAAM,SAAQ,UAAS,oBAAM;AAAA,UAC9B,gBAAAA,OAAC,SAAM,IAAG,UAAS,cAAa,QAAO,WAAU,kBAAiB;AAAA,WACpE;AAAA,QACA,gBAAAC,QAAC,SAAI,WAAU,uCACb;AAAA,0BAAAD,OAAC,SAAM,SAAQ,aAAY,yBAAW;AAAA,UACtC,gBAAAA,OAAC,SAAM,IAAG,aAAY,cAAa,QAAO,WAAU,kBAAiB;AAAA,WACvE;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;AC9Cf,SAAS,kBAAAE,uBAAsB;AAUvB,SACE,OAAAC,QADF,QAAAC,eAAA;AAJR,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAACE,iBAAA,EAAe;AAAA,MAChB,gBAAAF,OAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,OAC3C,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,gBACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,qCACb;AAAA,wBAAAD,OAAC,UAAK,WAAU,yBAAwB,6BAAe;AAAA,QACvD,gBAAAA,OAAC,UAAK,WAAU,uBAAsB,0BAAY;AAAA,SACpD;AAAA,MACA,gBAAAA,OAAC,OAAE,WAAU,WAAU,4JAGvB;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,wBAAAD,OAAC,SAAM,SAAQ,eAAc,WAAU,mCAAkC,2BAEzE;AAAA,QACA,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,yCAA2B;AAAA,SAC7E;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACnCf,SAAS,YAAAG,kBAAgB;AAEzB,SAAS,aAAa,mBAAmB;;;ACFzC,YAAYC,aAAW;AACvB,YAAY,qBAAqB;AAQ/B,SASI,OAAAC,QATJ,QAAAC,eAAA;AAJF,IAAM,SAAe,mBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,OAAiB,uBAAhB,EAAsB,WAAU,yEAC/B,0BAAAA,OAAiB,uBAAhB,EAAsB,WAAU,8BAA6B,GAChE;AAAA,MACA,gBAAAA,OAAiB,uBAAhB,EAAsB,WAAU,uNAAsN;AAAA;AAAA;AACzP,CACD;AACD,OAAO,cAA8B,qBAAK;;;ADRlC,SACE,OAAAE,QADF,QAAAC,eAAA;AANR,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,OAAO,QAAQ,IAAIC,WAAS,CAAC,EAAE,CAAC;AAEvC,SACE,gBAAAD,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,eAAY;AAAA,MACb,gBAAAA,OAAC,UAAK,WAAU,WAAU,4BAAc;AAAA,OAC1C,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,aACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,2CACb;AAAA,wBAAAD,OAAC,SAAM,WAAU,aAAY,oBAAM;AAAA,QACnC,gBAAAA,OAAC,YAAO,WAAU,oCAAoC,gBAAM,CAAC,GAAE;AAAA,SACjE;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,wBAAAD,OAAC,eAAY,WAAU,8BAA6B;AAAA,QACpD,gBAAAA,OAAC,UAAO,OAAc,eAAe,UAAU,cAAW,iBAAgB;AAAA,QAC1E,gBAAAA,OAAC,eAAY,WAAU,8BAA6B;AAAA,SACtD;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;AEvCf,SAAS,gBAAgB;AASjB,SACE,OAAAG,QADF,QAAAC,eAAA;AAJR,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,YAAS;AAAA,MACV,gBAAAA,OAAC,UAAK,WAAU,WAAU,iCAAmB;AAAA,OAC/C,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,2BACb;AAAA,wBAAAD,OAAC,SAAI,WAAU,yBAAwB,iCAAmB;AAAA,QAC1D,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,oHAE7C;AAAA,SACF;AAAA,MACA,gBAAAA,OAAC,UAAO,MAAK,MAAK,SAAO,MACvB,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACL;AAAA;AAAA,MAED,GACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACrCf,SAAS,aAAAE,YAAW,YAAAC,kBAAgB;AAEpC,SAAS,gBAAAC,qBAAoB;AAoDrB,SACE,OAAAC,QADF,QAAAC,eAAA;AA5CR,IAAM,sBAAsB,MAAM;AAChC,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,KAAK;AAC9C,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAS,KAAK;AAClD,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,CAAC;AACpC,QAAM,CAAC,MAAM,OAAO,IAAIA,WAAS,KAAK;AACtC,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAS,KAAK;AAElD,EAAAC,WAAU,MAAM;AACd,QAAI,QAAQ,CAAC,cAAc,CAAC,YAAY;AACtC,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,MAAM,YAAY,UAAU,CAAC;AAEjC,EAAAA,WAAU,MAAM;AACd,QAAI,CAAC,cAAc,YAAY,WAAY;AAE3C,UAAM,QAAQ,YAAY,MAAM;AAC9B,eAAS,UAAQ;AACf,YAAI,OAAO,KAAK;AACd,iBAAO,KAAK,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,IAAI,CAAC;AAAA,QAChE,OAAO;AACL,wBAAc,KAAK;AAEnB,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH,GAAG,GAAG;AAEN,WAAO,MAAM;AACX,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,MAAM,UAAU,YAAY,UAAU,CAAC;AAE3C,QAAM,UAAU,MAAM;AACpB,QAAI,WAAY,QAAO;AACvB,QAAI,SAAU,QAAO;AACrB,QAAI,UAAU,IAAK,QAAO;AAE1B,WAAO;AAAA,EACT;AAEA,SACE,gBAAAF,QAAC,WAAQ,cAAc,SAAS,MAC9B;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAACI,eAAA,EAAa;AAAA,MACd,gBAAAJ,OAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,OACzC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,2BACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,oDACb;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,GAAG,qEAAqE;AAAA,gBACjF,wCAAwC,QAAQ,OAAO,CAAC,YAAY,CAAC;AAAA,cACvE,CAAC;AAAA;AAAA,UACH;AAAA,UACA,gBAAAA,OAACI,eAAA,EAAa,WAAU,cAAa;AAAA,WACvC;AAAA,QACA,gBAAAJ,OAAC,UAAK,WAAU,8BAA8B,kBAAQ,GAAE;AAAA,QACvD,CAAC,cAAc,gBAAAA,OAAC,UAAK,WAAU,yBAAyB,aAAG,KAAK,KAAI;AAAA,SACvE;AAAA,MACA,gBAAAA,OAAC,YAAS,OAAc,WAAU,UAAS;AAAA,MAC3C,gBAAAC,QAAC,SAAI,WAAU,0BACb;AAAA,wBAAAD,OAAC,UAAO,MAAK,MAAK,SAAS,MAAM,YAAY,CAAC,QAAQ,GAAG,UAAU,UAAU,OAAO,YACjF,qBAAW,WAAW,SACzB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAAS,MAAM;AACb,kBAAI,QAAQ,KAAK;AACf,yBAAS,CAAC;AACV,8BAAc,IAAI;AAClB,8BAAc,KAAK;AAAA,cACrB;AAEA,sBAAQ,KAAK;AAAA,YACf;AAAA,YACD;AAAA;AAAA,QAED;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACpGf,SAAS,uBAAuB;AASxB,SACE,OAAAK,QADF,QAAAC,eAAA;AAJR,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,mBAAgB;AAAA,MACjB,gBAAAA,OAAC,UAAK,WAAU,WAAU,yBAAW;AAAA,OACvC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,oCACb;AAAA,sBAAAD,OAAC,SAAI,WAAU,qFACb,0BAAAA,OAAC,mBAAgB,WAAU,2BAA0B,GACvD;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,yBACb;AAAA,wBAAAD,OAAC,SAAI,WAAU,8BAA6B,wDAA0C;AAAA,QACtF,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,0HAG7C;AAAA,SACF;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,iCACb;AAAA,wBAAAD,OAAC,UAAO,SAAQ,aAAY,MAAK,MAAK,oBAEtC;AAAA,QACA,gBAAAA,OAAC,UAAO,SAAQ,eAAc,MAAK,MAAK,yBAExC;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACxCf,SAAS,yBAAyB;AAU1B,SACE,OAAAE,QADF,QAAAC,eAAA;AAJR,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,qBAAkB;AAAA,MACnB,gBAAAA,OAAC,UAAK,WAAU,WAAU,sBAAQ;AAAA,OACpC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,SAAI,WAAU,eAAc,sBAAQ;AAAA,MACrC,gBAAAA,OAAC,YAAS,aAAY,2BAA0B,WAAU,YAAW;AAAA,MACrE,gBAAAC,QAAC,SAAI,WAAU,iCACb;AAAA,wBAAAD,OAAC,UAAO,MAAK,MAAK,kBAAI;AAAA,QACtB,gBAAAA,OAAC,UAAO,SAAQ,aAAY,MAAK,MAAK,oBAEtC;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;AC/Bf,SAAS,YAAAE,kBAAgB;AAEzB,SAAS,sBAAsB;AAiBvB,SACE,OAAAC,QADF,QAAAC,eAAA;AATR,IAAM,UAAU,CAAC,cAAc,oBAAoB,UAAU,cAAc;AAE3E,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,CAAC,cAAc,QAAQ,CAAC;AACjE,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,CAAC,GAAG,CAAC;AAExC,SACE,gBAAAD,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,kBAAe;AAAA,MAChB,gBAAAA,OAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,OAClC,GACF;AAAA,IACA,gBAAAA,OAAC,kBACC,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,2CACb;AAAA,wBAAAD,OAAC,UAAK,WAAU,eAAc,oBAAM;AAAA,QACpC,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,MAAM;AACb,0BAAY,CAAC,cAAc,QAAQ,CAAC;AACpC,uBAAS,CAAC,GAAG,CAAC;AAAA,YAChB;AAAA,YACD;AAAA;AAAA,QAED;AAAA,SACF;AAAA,MACA,gBAAAA,OAAC,SAAI,WAAU,uBACZ,kBAAQ,IAAI,CAAC,OAAO,UACnB,gBAAAC,QAAC,SAAgB,WAAU,2BACzB;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,IAAI,UAAU,QAAQ,CAAC;AAAA,YACvB,SAAS,SAAS,SAAS,KAAK;AAAA,YAChC,iBAAiB,aACf,YAAY,UAAU,CAAC,GAAG,UAAU,KAAK,IAAI,SAAS,OAAO,UAAQ,SAAS,KAAK,CAAC;AAAA;AAAA,QAExF;AAAA,QACA,gBAAAA,OAAC,SAAM,SAAS,UAAU,QAAQ,CAAC,IAAK,iBAAM;AAAA,WARtC,KASV,CACD,GACH;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,cACb;AAAA,wBAAAD,OAAC,SAAM,yBAAW;AAAA,QAClB,gBAAAC,QAAC,SAAI,WAAU,aACb;AAAA,0BAAAD,OAAC,UAAO,OAAO,OAAO,eAAe,UAAU,MAAM,IAAI,KAAK,KAAM,cAAW,eAAc;AAAA,UAC7F,gBAAAC,QAAC,UAAK,WAAU,4FACd;AAAA,4BAAAD,OAAC,UAAK,eAAC;AAAA,YACP,gBAAAA,OAAC,UAAK,iBAAG;AAAA,YACT,gBAAAA,OAAC,UAAK,kBAAI;AAAA,aACZ;AAAA,WACF;AAAA,SACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACpEf,SAAS,aAAAG,YAAW,YAAAC,kBAAgB;AAEpC,SAAS,oBAAAC,mBAAkB,cAAAC,mBAAkB;AA4ErC,SACE,OAAAC,QADF,QAAAC,eAAA;AArER,IAAMC,SAAQ;AAAA,EACZ;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,EACjB;AACF;AAEA,IAAM,cAAc,CAAC,OAAe,QAAgB,QAAQ;AAC1D,QAAM,CAAC,gBAAgB,iBAAiB,IAAIC,WAAS,KAAK;AAE1D,EAAAC,WAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM;AAC7B,wBAAkB,KAAK;AAAA,IACzB,GAAG,KAAK;AAER,WAAO,MAAM;AACX,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,SAAO;AACT;AAEA,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,YAAY,aAAa,IAAID,WAAS,EAAE;AAC/C,QAAM,CAAC,WAAW,YAAY,IAAIA,WAAS,KAAK;AAChD,QAAM,kBAAkB,YAAY,UAAU;AAC9C,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAASD,MAAK;AAGxD,EAAAE,WAAU,MAAM;AACd,QAAI,YAAY;AACd,mBAAa,IAAI;AAAA,IACnB,OAAO;AACL,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAGf,EAAAA,WAAU,MAAM;AACd,QAAI,gBAAgB,KAAK,MAAM,IAAI;AACjC,uBAAiBF,MAAK;AACtB,mBAAa,KAAK;AAAA,IACpB,OAAO;AACL,YAAM,aAAa,gBAAgB,YAAY;AAE/C,YAAM,WAAWA,OAAM,OAAO,UAAQ,KAAK,KAAK,YAAY,EAAE,SAAS,UAAU,CAAC;AAElF,uBAAiB,QAAQ;AACzB,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,SACE,gBAAAD,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAACK,aAAA,EAAW;AAAA,MACZ,gBAAAL,OAAC,UAAK,WAAU,WAAU,0BAAY;AAAA,OACxC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,QACxB,0BAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,YACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,sIACb;AAAA,0BAAAD,OAACK,aAAA,EAAW,WAAU,UAAS;AAAA,UAC/B,gBAAAL,OAAC,UAAK,WAAU,WAAU,oBAAM;AAAA,WAClC;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,OAAO;AAAA,YACP,UAAU,OAAK,cAAc,EAAE,OAAO,KAAK;AAAA,YAC3C,WAAU;AAAA;AAAA,QACZ;AAAA,QACC,aACC,gBAAAC,QAAC,SAAI,WAAU,uIACb;AAAA,0BAAAD,OAACM,mBAAA,EAAiB,WAAU,uBAAsB;AAAA,UAClD,gBAAAN,OAAC,UAAK,WAAU,WAAU,wBAAU;AAAA,WACtC;AAAA,SAEJ;AAAA,MACA,gBAAAA,OAAC,QAAG,WAAU,aACX,wBAAc,SAAS,IACtB,cAAc,IAAI,CAAC,MAAM,UACvB,gBAAAC,QAAC,QAAe,WAAU,2BACxB;AAAA,wBAAAA,QAAC,UAAO,WAAU,UAChB;AAAA,0BAAAD,OAAC,eAAY,KAAK,KAAK,OAAO,KAAK,KAAK,MAAM;AAAA,UAC9C,gBAAAA,OAAC,kBAAe,WAAU,WAAW,eAAK,UAAS;AAAA,WACrD;AAAA,QACA,gBAAAA,OAAC,SAAI,WAAU,8BAA8B,eAAK,MAAK;AAAA,QACtD,KAAK,iBACJ,gBAAAA,OAAC,UAAK,WAAU,iCAAiC,aAAG,KAAK,aAAa,gBAAgB,KAAK,gBAAgB,IAAI,MAAM,EAAE,IAAG;AAAA,WAPrH,KAST,CACD,IAED,gBAAAA,OAAC,QAAG,WAAU,4BAA2B,4BAAc,GAE3D;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;AClIf,SAAS,YAAAO,kBAAgB;AAEzB,SAAS,UAAU,cAAAC,mBAAkB;AAqC7B,SACE,OAAAC,QADF,QAAAC,eAAA;AA9BR,IAAM,gBAAgB;AAAA,EACpB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;AAEA,IAAM,2BAA2B,MAAM;AACrC,QAAM,CAAC,cAAc,eAAe,IAAIC,WAAS,CAAC,CAAC,CAAC;AAEpD,SACE,gBAAAD,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,YAAS;AAAA,MACV,gBAAAA,OAAC,UAAK,WAAU,WAAU,2BAAa;AAAA,OACzC,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,YACxB,0BAAAC,QAAC,SAAI,WAAU,QACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,uDACb;AAAA,wBAAAD,OAAC,UAAK,WAAU,eAAc,2BAAa;AAAA,QAC3C,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,MAAM,gBAAgB,cAAc,IAAI,UAAQ,KAAK,EAAE,CAAC;AAAA,YAClE;AAAA;AAAA,QAED;AAAA,SACF;AAAA,MACA,gBAAAA,OAACG,YAAA,EAAU,WAAU,IAAG;AAAA,MACxB,gBAAAH,OAAC,QAAG,WAAU,kBACX,wBAAc,IAAI,UACjB,gBAAAC;AAAA,QAAC;AAAA;AAAA,UAEC,WAAU;AAAA,UACV,SAAS,MAAM,gBAAgB,CAAC,GAAG,cAAc,KAAK,EAAE,CAAC;AAAA,UAEzD;AAAA,4BAAAA,QAAC,UAAO,WAAU,cAChB;AAAA,8BAAAD,OAAC,eAAY,KAAK,KAAK,OAAO,KAAK,KAAK,UAAU;AAAA,cAClD,gBAAAA,OAAC,kBAAe,WAAU,sBAAsB,eAAK,UAAS;AAAA,eAChE;AAAA,YACA,gBAAAC,QAAC,SAAI,WAAU,oBACb;AAAA,8BAAAD,OAAC,SAAI,WAAU,uBAAuB,eAAK,SAAQ;AAAA,cACnD,gBAAAA,OAAC,OAAE,WAAU,iCAAiC,aAAG,KAAK,IAAI,QAAO;AAAA,eACnE;AAAA,YACC,CAAC,aAAa,SAAS,KAAK,EAAE,KAC7B,gBAAAA,OAACI,aAAA,EAAW,WAAU,gDAA+C;AAAA;AAAA;AAAA,QAblE,KAAK;AAAA,MAeZ,CACD,GACH;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACpFf,SAAS,oBAAAC,oBAAkB,kBAAkB;AASrC,SACE,OAAAC,QADF,QAAAC,eAAA;AAJR,IAAM,4BAA4B,MAAM;AACtC,SACE,gBAAAA,QAAC,WACC;AAAA,oBAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAC,QAAC,UAAO,SAAQ,WAAU,MAAK,QAC7B;AAAA,sBAAAD,OAAC,cAAW;AAAA,MACZ,gBAAAA,OAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,OAC3C,GACF;AAAA,IACA,gBAAAA,OAAC,kBAAe,WAAU,YACxB,0BAAAC,QAAC,SAAI,WAAU,QACb;AAAA,sBAAAA,QAAC,SAAI,WAAU,iBACb;AAAA,wBAAAD,OAAC,OAAE,WAAU,eAAc,6BAAe;AAAA,QAC1C,gBAAAC,QAAC,OAAE,WAAU,iCAAgC;AAAA;AAAA,UAC6B;AAAA,WAC1E;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,WAAU;AAAA,YACX;AAAA;AAAA,cAEC,gBAAAD,OAACE,oBAAA,EAAiB,WAAU,UAAS;AAAA;AAAA;AAAA,QACvC;AAAA,SACF;AAAA,MACA,gBAAAF;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,KAAI;AAAA,UACJ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACpCT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,iBAAiB,MAAM;AAC3B,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,oBACvB;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,oBAAmB,IAAG,oBAAmB;AAAA,MAC/D,gBAAAA,OAAC,SAAM,SAAQ,oBAAmB,8BAAgB;AAAA,OACpD;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,cAAa,IAAG,cAAa;AAAA,MACnD,gBAAAA,OAAC,SAAM,SAAQ,cAAa,wBAAU;AAAA,OACxC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,mBAAkB,IAAG,mBAAkB;AAAA,MAC7D,gBAAAA,OAAC,SAAM,SAAQ,mBAAkB,6BAAe;AAAA,OAClD;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AChBT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,YAAW,WAAU,2BAC5C;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,YAAW,IAAG,YAAW;AAAA,MAC/C,gBAAAA,OAAC,SAAM,SAAQ,YAAW,sBAAQ;AAAA,OACpC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,gBAAe,IAAG,gBAAe;AAAA,MACvD,gBAAAA,OAAC,SAAM,SAAQ,gBAAe,0BAAY;AAAA,OAC5C;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,YAAW,IAAG,YAAW;AAAA,MAC/C,gBAAAA,OAAC,SAAM,SAAQ,YAAW,sBAAQ;AAAA,OACpC;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AChBT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,eAAc,WAAU,2BAC/C;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,qBAAoB,yBAAW;AAAA,OAChD;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,iBAAgB,qBAAO;AAAA,OACxC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,cAAa,kBAAI;AAAA,OAClC;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC5BT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,WAAU,WAAU,2BAC3C;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,WAAU,IAAG,gBAAe;AAAA,MAClD,gBAAAA,OAAC,SAAM,SAAQ,gBAAe,qBAAO;AAAA,OACvC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,UAAS,IAAG,eAAc,WAAU,yBAAwB;AAAA,MAClF,gBAAAA,OAAC,SAAM,SAAQ,eAAc,oBAAM;AAAA,OACrC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,SAAQ,IAAG,cAAa,WAAU,2BAA0B;AAAA,MAClF,gBAAAA,OAAC,SAAM,SAAQ,cAAa,mBAAK;AAAA,OACnC;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AChBT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,YACvB;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,YAAW,+BAAiB;AAAA,OAC7C;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,WAAU,8BAAgB;AAAA,OAC3C;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,aAAY,gCAAkB;AAAA,OAC/C;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC5BT,SACE,OAAAG,QADF,QAAAC,eAAA;AAHN,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,SACvB;AAAA,oBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,eAAc,yBAAW;AAAA,OAC1C;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,cAAa,wBAAU;AAAA,OACxC;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAG;AAAA,UACH,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAA,OAAC,SAAM,SAAQ,gBAAe,4BAAc;AAAA,OAC9C;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC3BP,gBAAAG,QACA,QAAAC,eADA;AAJR,IAAM,4BAA4B,MAAM;AACtC,SACE,gBAAAA,QAACC,aAAA,EAAW,cAAa,SACvB;AAAA,oBAAAD,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,SAAQ,IAAG,cAAa;AAAA,MAC9C,gBAAAC,QAAC,SAAI,WAAU,yBACb;AAAA,wBAAAD,OAAC,SAAM,SAAQ,cAAa,wBAAU;AAAA,QACtC,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,0DAA4C;AAAA,SAC3F;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,OAAM,IAAG,YAAW;AAAA,MAC1C,gBAAAC,QAAC,SAAI,WAAU,yBACb;AAAA,wBAAAD,OAAC,SAAM,SAAQ,YAAW,sBAAQ;AAAA,QAClC,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,+DAAiD;AAAA,SAChG;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,cACb;AAAA,sBAAAD,OAAC,kBAAe,OAAM,cAAa,IAAG,mBAAkB;AAAA,MACxD,gBAAAC,QAAC,SAAI,WAAU,yBACb;AAAA,wBAAAD,OAAC,SAAM,SAAQ,mBAAkB,6BAAe;AAAA,QAChD,gBAAAA,OAAC,OAAE,WAAU,iCAAgC,sDAAwC;AAAA,SACvF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC/Bf,SAAS,SAAAG,eAAa;AAiBhB,gBAAAC,QAGI,QAAAC,eAHJ;AAbN,IAAM,qBAAqB,MAAM;AAC/B,QAAM,KAAKC,QAAM;AAEjB,QAAMC,SAAQ;AAAA,IACZ,EAAE,OAAO,KAAK,OAAO,eAAe;AAAA,IACpC,EAAE,OAAO,KAAK,OAAO,gBAAgB,UAAU,KAAK;AAAA,IACpD,EAAE,OAAO,KAAK,OAAO,eAAe;AAAA,IACpC,EAAE,OAAO,KAAK,OAAO,eAAe;AAAA,IACpC,EAAE,OAAO,KAAK,OAAO,gBAAgB;AAAA,EACvC;AAEA,SACE,gBAAAF,QAAC,cAAS,WAAU,6BAClB;AAAA,oBAAAD,OAAC,YAAO,WAAU,oDAAmD,gCAAkB;AAAA,IACvF,gBAAAA,OAACI,aAAA,EAAW,WAAU,0BAAyB,cAAa,KACzD,UAAAD,OAAM,IAAI,UACT,gBAAAF;AAAA,MAAC;AAAA;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,EAAE,KAAK,GAAG;AAAA,QAEV;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,cACvB,OAAO,KAAK;AAAA,cACZ,WAAU;AAAA,cACV,cAAY,cAAc,KAAK,KAAK;AAAA,cACpC,UAAU,KAAK;AAAA;AAAA,UACjB;AAAA,UACA,gBAAAA,OAAC,OAAE,WAAU,wDAAwD,eAAK,OAAM;AAAA;AAAA;AAAA,MAjB3E,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,IAkB1B,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AC9Cf,SAAS,SAAAK,eAAa;AAwBR,gBAAAC,QAOA,QAAAC,eAPA;AAlBd,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,QAAM;AAEjB,QAAMC,SAAQ;AAAA,IACZ,EAAE,OAAO,KAAK,OAAO,OAAO,OAAO,SAAS;AAAA,IAC5C,EAAE,OAAO,KAAK,OAAO,QAAQ,OAAO,SAAS;AAAA,IAC7C,EAAE,OAAO,KAAK,OAAO,cAAc,OAAO,SAAS;AAAA,EACrD;AAEA,SACE,gBAAAH,OAACI,aAAA,EAAW,WAAU,0DAAyD,cAAa,KACzF,UAAAD,OAAM,IAAI,UACT,gBAAAH;AAAA,IAAC;AAAA;AAAA,MAEC,WAAU;AAAA,MAEV,0BAAAC,QAAC,SAAI,WAAU,qCACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,cACvB,OAAO,KAAK;AAAA,cACZ,WAAU;AAAA,cACV,cAAY,cAAc,KAAK,KAAK;AAAA,cACpC,oBAAkB,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE;AAAA;AAAA,UAC5C;AAAA,UACA,gBAAAC,QAAC,SAAM,WAAU,kCAAiC,SAAS,GAAG,EAAE,IAAI,KAAK,KAAK,IAC3E;AAAA,iBAAK;AAAA,YACL,KAAK,UAAU,OAAO,gBAAAD,OAAC,SAAM,WAAU,mCAAkC,yBAAW;AAAA,aACvF;AAAA,WACF;AAAA,QACA,gBAAAA,OAAC,SAAI,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE,UAAU,WAAU,mDAClD,eAAK,OACR;AAAA,SACF;AAAA;AAAA,IApBK,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,EAqB1B,CACD,GACH;AAEJ;AAEA,IAAO,yBAAQ;;;AC9Cf,SAAS,SAAAK,eAAa;AAwBR,gBAAAC,QAOA,QAAAC,eAPA;AAlBd,IAAM,+BAA+B,MAAM;AACzC,QAAM,KAAKC,QAAM;AAEjB,QAAMC,SAAQ;AAAA,IACZ,EAAE,OAAO,KAAK,OAAO,OAAO,OAAO,SAAS;AAAA,IAC5C,EAAE,OAAO,KAAK,OAAO,QAAQ,OAAO,SAAS;AAAA,IAC7C,EAAE,OAAO,KAAK,OAAO,cAAc,OAAO,SAAS;AAAA,EACrD;AAEA,SACE,gBAAAH,OAACI,aAAA,EAAW,WAAU,6DAA4D,cAAa,KAC5F,UAAAD,OAAM,IAAI,UACT,gBAAAH;AAAA,IAAC;AAAA;AAAA,MAEC,WAAU;AAAA,MAEV,0BAAAC,QAAC,SAAI,WAAU,qCACb;AAAA,wBAAAA,QAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,cACvB,OAAO,KAAK;AAAA,cACZ,cAAY,cAAc,KAAK,KAAK;AAAA,cACpC,WAAU;AAAA,cACV,oBAAkB,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE;AAAA;AAAA,UAC5C;AAAA,UACA,gBAAAC,QAAC,SAAM,WAAU,kCAAiC,SAAS,GAAG,EAAE,IAAI,KAAK,KAAK,IAC3E;AAAA,iBAAK;AAAA,YACL,KAAK,UAAU,OACd,gBAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAU;AAAA,gBACX;AAAA;AAAA,YAED;AAAA,aAEJ;AAAA,WACF;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAI,GAAG,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE;AAAA,YAC5B,WAAU;AAAA,YAET,eAAK;AAAA;AAAA,QACR;AAAA,SACF;AAAA;AAAA,IA9BK,GAAG,EAAE,IAAI,KAAK,KAAK;AAAA,EA+B1B,CACD,GACH;AAEJ;AAEA,IAAO,yBAAQ;;;ACxDf,SAAS,SAAAK,eAAa;AAWd,gBAAAC,QAQE,QAAAC,eARF;AANR,IAAM,0BAA0B,MAAM;AACpC,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAACE,aAAA,EAAW,WAAU,yBAAwB,cAAa,KACzD;AAAA,oBAAAF,QAAC,SAAI,WAAU,4IACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,cAAW;AAAA,UACX,oBAAkB,GAAG,EAAE;AAAA,UACvB,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,mBACb;AAAA,wBAAAA,QAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,mBAAkB;AAAA;AAAA,UAC/C,gBAAAD,OAAC,UAAK,WAAU,+DAA8D,kBAAI;AAAA,WAC1F;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,iCAAgC,iDAExE;AAAA,SACF;AAAA,OACF;AAAA,IAEA,gBAAAC,QAAC,SAAI,WAAU,4IACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,oBAAkB,GAAG,EAAE;AAAA,UACvB,WAAU;AAAA;AAAA,MACZ;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,mBACb;AAAA,wBAAAA,QAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,mBAAkB;AAAA;AAAA,UAC7C,gBAAAD,OAAC,UAAK,WAAU,+DAA8D,mBAAK;AAAA,WAC7F;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,iCAAgC,iDAExE;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AChDf,SAAS,SAAAI,eAAa;AAWd,gBAAAC,QASE,QAAAC,eATF;AANR,IAAM,oCAAoC,MAAM;AAC9C,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAACE,aAAA,EAAW,WAAU,yBAAwB,cAAa,KACzD;AAAA,oBAAAF,QAAC,SAAI,WAAU,gQACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,WAAU;AAAA,UACV,cAAW;AAAA,UACX,oBAAkB,GAAG,EAAE;AAAA;AAAA,MACzB;AAAA,MAEA,gBAAAC,QAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,0EACnC;AAAA,wBAAAA,QAAC,SAAI,WAAU,4CACb;AAAA,0BAAAD,OAAC,UAAK,mBAAK;AAAA,UACX,gBAAAA,OAAC,UAAK,WAAU,+DAA8D,kBAAI;AAAA,WACpF;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,iCAAgC,iDAExE;AAAA,SACF;AAAA,OACF;AAAA,IAEA,gBAAAC,QAAC,SAAI,WAAU,gQACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,WAAU;AAAA,UACV,cAAW;AAAA,UACX,oBAAkB,GAAG,EAAE;AAAA;AAAA,MACzB;AAAA,MAEA,gBAAAC,QAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,0EACnC;AAAA,wBAAAA,QAAC,SAAI,WAAU,4CACb;AAAA,0BAAAD,OAAC,UAAK,qBAAO;AAAA,UACb,gBAAAA,OAAC,UAAK,WAAU,+DAA8D,mBAAK;AAAA,WACrF;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,iCAAgC,iDAExE;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACrDf,SAAS,SAAAI,eAAa;AAEtB,SAAS,YAAAC,WAAU,iBAAiB;AAW5B,gBAAAC,QAOA,QAAAC,eAPA;AANR,IAAM,kCAAkC,MAAM;AAC5C,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAD,QAACE,aAAA,EAAW,WAAU,uDAAsD,cAAa,KACvF;AAAA,oBAAAF,QAAC,SAAI,WAAU,8JACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,WAAU;AAAA,UACV,oBAAkB,GAAG,EAAE;AAAA,UACvB,cAAW;AAAA;AAAA,MACb;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,wCACb;AAAA,wBAAAD,OAACI,WAAA,EAAS;AAAA,QACV,gBAAAJ,OAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,kBAAiB,mBAEtD;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,6CAA4C,iDAEpF;AAAA,SACF;AAAA,OACF;AAAA,IACA,gBAAAC,QAAC,SAAI,WAAU,8JACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI,GAAG,EAAE;AAAA,UACT,WAAU;AAAA,UACV,oBAAkB,GAAG,EAAE;AAAA,UACvB,cAAW;AAAA;AAAA,MACb;AAAA,MACA,gBAAAC,QAAC,SAAI,WAAU,wCACb;AAAA,wBAAAD,OAAC,aAAU;AAAA,QACX,gBAAAA,OAAC,SAAM,SAAS,GAAG,EAAE,MAAM,WAAU,kBAAiB,qBAEtD;AAAA,QACA,gBAAAA,OAAC,OAAE,IAAI,GAAG,EAAE,kBAAkB,WAAU,6CAA4C,iDAEpF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACjDN,gBAAAK,cAAA;AADT,IAAM,YAAY,MAAM;AACtB,SAAO,gBAAAA,OAAC,SAAM,qBAAO;AACvB;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,qBAAqB,MAAM;AAC/B,SAAO,gBAAAA,OAAC,SAAM,SAAQ,aAAY,uBAAS;AAC7C;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,uBAAuB,MAAM;AACjC,SAAO,gBAAAA,OAAC,SAAM,SAAQ,eAAc,yBAAW;AACjD;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,mBAAmB,MAAM;AAC7B,SAAO,gBAAAA,OAAC,SAAM,SAAQ,WAAU,qBAAO;AACzC;AAEA,IAAO,mBAAQ;;;ACJX,SACE,OAAAC,QADF,QAAAC,eAAA;AAFJ,IAAM,eAAe,MAAM;AACzB,SACE,gBAAAA,QAAC,UAAK,WAAU,kHACd;AAAA,oBAAAD,OAAC,UAAK,WAAU,kCAAiC,eAAY,QAAO;AAAA,IAAE;AAAA,KAExE;AAEJ;AAEA,IAAO,mBAAQ;;;ACNN,gBAAAE,cAAA;AADT,IAAM,mBAAmB,MAAM;AAC7B,SAAO,gBAAAA,OAAC,SAAM,WAAU,cAAa,qBAAO;AAC9C;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,kBAAkB,MAAM;AAC5B,SAAO,gBAAAA,OAAC,SAAM,WAAU,iCAAgC,eAAC;AAC3D;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,iBAAiB,MAAM;AAC3B,SAAO,gBAAAA,OAAC,SAAM,WAAU,aAAY,mBAAK;AAC3C;AAEA,IAAO,mBAAQ;;;ACHN,gBAAAC,cAAA;AADT,IAAM,iBAAiB,MAAM;AAC3B,SAAO,gBAAAA,OAAC,SAAM,WAAU,gBAAe,mBAAK;AAC9C;AAEA,IAAO,mBAAQ;;;ACNf,SAAS,YAAAC,iBAAgB;AAMrB,SACE,OAAAC,QADF,QAAAC,eAAA;AAFJ,IAAM,oBAAoB,MAAM;AAC9B,SACE,gBAAAA,QAAC,SAAM,WAAU,WACf;AAAA,oBAAAD,OAACE,WAAA,EAAS,WAAU,mBAAkB;AAAA,IAAE;AAAA,KAE1C;AAEJ;AAEA,IAAO,mBAAQ;;;ACbf,SAAS,sBAAsB;AAOzB,SACO,OAAAC,QADP,QAAAC,eAAA;AAHN,IAAM,gBAAgB,MAAM;AAC1B,SACE,gBAAAD,OAAC,SAAM,SAAO,MACZ,0BAAAC,QAAC,OAAE,MAAK,KAAI,WAAU,4GAA2G;AAAA;AAAA,IAC1H,gBAAAD,OAAC,kBAAe,WAAU,mBAAkB;AAAA,KACnD,GACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACdf,SAAS,YAAAE,kBAAgB;AAEzB,SAAS,SAAAC,cAAa;AAUlB,SAOI,OAAAC,QAPJ,QAAAC,eAAA;AANJ,IAAM,oBAAoB,MAAM;AAC9B,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,IAAI;AAE7C,MAAI,CAAC,SAAU,QAAO;AAEtB,SACE,gBAAAD,QAAC,SAAM,WAAU,WAAU;AAAA;AAAA,IAEzB,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAW;AAAA,QACX,SAAS,MAAM,YAAY,KAAK;AAAA,QAEhC,0BAAAA,OAACG,QAAA,EAAM,WAAU,UAAS,eAAY,QAAO;AAAA;AAAA,IAC/C;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACvBf,SAAS,YAAAC,YAAU,SAAAC,eAAa;AAEhC,SAAS,uBAAuB;AAW5B,SAIE,OAAAC,QAJF,QAAAC,eAAA;AANJ,IAAM,sBAAsB,MAAM;AAChC,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,KAAK;AAE9C,QAAM,KAAKC,QAAM;AAEjB,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,WAAW,cAAc;AAAA,MAClC,WAAU;AAAA,MAEV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAU;AAAA,YACV,SAAS;AAAA,YACT,iBAAiB,aAAW,YAAY,CAAC,CAAC,OAAO;AAAA;AAAA,QACnD;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA,QACA,gBAAAA,OAAC,WAAM,SAAS,IAAI,WAAU,2DAC3B,qBAAW,aAAa,cAC3B;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,mBAAQ;;;AChCX,gBAAAI,cAAA;AAFJ,IAAM,oBAAoB,MAAM;AAC9B,SACE,gBAAAA,OAAC,SAAM,WAAU,0HAAyH,sBAE1I;AAEJ;AAEA,IAAO,mBAAQ;;;ACLT,gBAAAC,cAAA;AAHN,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAA,OAAC,SAAI,WAAU,oGACb,0BAAAA,OAAC,SAAM,WAAU,iEAAgE,8BAAgB,GACnG;AAEJ;AAEA,IAAO,mBAAQ;;;ACNX,SACE,OAAAC,QADF,QAAAC,eAAA;AAFJ,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA,QAAC,SAAM,WAAU,+FACf;AAAA,oBAAAD,OAAC,UAAK,WAAU,wDAAuD,eAAY,QAAO;AAAA,IAAE;AAAA,KAE9F;AAEJ;AAEA,IAAO,mBAAQ;;;ACPX,SACE,OAAAE,QADF,QAAAC,eAAA;AAFJ,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA,QAAC,SAAM,WAAU,8FACf;AAAA,oBAAAD,OAAC,UAAK,WAAU,wCAAuC,eAAY,QAAO;AAAA,IAAE;AAAA,KAE9E;AAEJ;AAEA,IAAO,mBAAQ;;;ACPX,SACE,OAAAE,QADF,QAAAC,eAAA;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,QAAC,SAAM,WAAU,4JACf;AAAA,oBAAAD,OAAC,UAAK,WAAU,wDAAuD,eAAY,QAAO;AAAA,IAAE;AAAA,KAE9F;AAEJ;AAEA,IAAO,mBAAQ;;;ACXf,SAAS,uBAAuB;AAM5B,SAIE,OAAAE,QAJF,QAAAC,eAAA;AAFJ,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,MAEV;AAAA,wBAAAD,OAAC,mBAAgB,WAAU,UAAS;AAAA,QAAE;AAAA;AAAA;AAAA,EAExC;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,eAAe;AAMpB,SAIE,OAAAE,QAJF,QAAAC,eAAA;AAFJ,IAAM,kBAAkB,MAAM;AAC5B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,MAEV;AAAA,wBAAAD,OAAC,WAAQ,WAAU,UAAS;AAAA,QAAE;AAAA;AAAA;AAAA,EAEhC;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,mBAAAE,wBAAuB;AAM5B,SAIE,OAAAC,QAJF,QAAAC,eAAA;AAFJ,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,MAEV;AAAA,wBAAAD,OAACE,kBAAA,EAAgB,WAAU,UAAS;AAAA,QAAE;AAAA;AAAA;AAAA,EAExC;AAEJ;AAEA,IAAO,mBAAQ;;;ACZX,SACE,OAAAC,QADF,QAAAC,eAAA;AAFJ,IAAM,kBAAkB,MAAM;AAC5B,SACE,gBAAAA,QAAC,SAAM,SAAQ,WAAU,WAAU,kBACjC;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ;AAAA,IAAE;AAAA,KAEJ;AAEJ;AAEA,IAAO,mBAAQ;;;ACff,SAAS,wBAAwB;AAO7B,SAGM,OAAAE,QAHN,QAAAC,eAAA;AAFJ,IAAM,gBAAgB,MAAM;AAC1B,SACE,gBAAAA,QAAC,SAAI,WAAU,kBACb;AAAA,oBAAAD,OAAC,UAAO,WAAU,qBAChB,0BAAAA,OAAC,kBAAe,WAAU,cACxB,0BAAAA,OAAC,oBAAiB,WAAU,UAAS,GACvC,GACF;AAAA,IACA,gBAAAA,OAAC,SAAM,WAAU,8DAA6D,eAAC;AAAA,KACjF;AAEJ;AAEA,IAAO,mBAAQ;;;ACbT,SACE,OAAAE,QADF,QAAAC,eAAA;AAHN,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA,QAAC,SAAI,WAAU,kBACb;AAAA,oBAAAA,QAAC,UAAO,WAAU,WAChB;AAAA,sBAAAD,OAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,MACpG,gBAAAA,OAAC,kBAAe,gBAAE;AAAA,OACpB;AAAA,IACA,gBAAAA,OAAC,UAAK,WAAU,iHACd,0BAAAA,OAAC,UAAK,WAAU,WAAU,oBAAM,GAClC;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;;;AChBf,SAAS,aAAa;AAMlB,gBAAAE,cAAA;AAFJ,IAAM,aAAa,MAAM;AACvB,SACE,gBAAAA,OAAC,UAAO,SAAQ,WAAU,SAAS,MAAM,MAAM,gCAAgC,GAAG,2BAElF;AAEJ;AAEA,IAAO,oBAAQ;;;ACZf,SAAS,SAAAC,cAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,4BAA4B,MAAM;AACtC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,OAAM,oBAAoB;AAAA,QACxB,aAAa;AAAA,MACf,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACnBf,SAAS,iBAAiB;AAE1B,SAAS,SAAAC,cAAa;AAUZ,SACE,OAAAC,QADF,QAAAC,eAAA;AANV,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPE;AAAA,QACE,gBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,0BAAAD,OAAC,aAAU,WAAU,qBAAoB;AAAA,UAAE;AAAA,WAE7C;AAAA,MACF;AAAA,MAEH;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACxBf,SAAS,SAAAG,cAAa;AAYV,SACE,OAAAC,QADF,QAAAC,eAAA;AAPZ,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPE;AAAA,QACE,gBAAAD,QAAC,SAAI,WAAU,2BACb;AAAA,0BAAAA,QAAC,UACC;AAAA,4BAAAD,OAAC,eAAY,KAAI,8DAA6D,KAAI,mBAAkB;AAAA,YACpG,gBAAAA,OAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,aACxC;AAAA,UAAS;AAAA,WAEX;AAAA,MACF;AAAA,MAEH;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;AC1Bf,SAAS,SAAAG,cAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,OAAM,kCAAkC;AAAA,QACtC,aAAa;AAAA,MACf,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACnBf,SAAS,SAAAC,cAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,uBAAuB,MAAM;AACjC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,OAAM,kCAAkC;AAAA,QACtC,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,SAAS,MAAM,QAAQ,IAAI,MAAM;AAAA,QACnC;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACtBf,SAAS,SAAAC,cAAa;AAiBlB,gBAAAC,cAAA;AAbJ,IAAM,wBAAwB,MAAM;AAClC,QAAM,UAAU,MACd,IAAI;AAAA,IAAQ,CAAC,SAAS,WACpB,WAAW,MAAM;AACf,UAAI,KAAK,OAAO,IAAI,KAAK;AACvB,gBAAQ,KAAK;AAAA,MACf,OAAO;AACL,eAAO,KAAK;AAAA,MACd;AAAA,IACF,GAAG,GAAI;AAAA,EACT;AAEF,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,OAAM,QAAQ,SAAS;AAAA,QACrB,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;AChCf,SAAS,SAAAC,cAAa;AAMlB,SACE,OAAAC,QADF,QAAAC,eAAA;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA,QAAC,SAAI,WAAU,0BACb;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,IACA,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,IACA,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,IACA,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,IACA,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,IACA,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,SAAS,MACPE,OAAM,kCAAkC;AAAA,UACtC,UAAU;AAAA,QACZ,CAAC;AAAA,QAEJ;AAAA;AAAA,IAED;AAAA,KACF;AAEJ;AAEA,IAAO,oBAAQ;;;ACvEf,SAAS,SAAAC,cAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,qBAAqB,MAAM;AAC/B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,OAAM,KAAK,8CAA8C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,kCAAkC;AAAA,QAC9C,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,2CAA2C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,4BAA4B,MAAM;AACtC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,MAAM,qDAAqD;AAAA,QAC/D,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,wBAAwB,MAAM;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,KAAK,8CAA8C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,kCAAkC;AAAA,QAC9C,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,2BAA2B,MAAM;AACrC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,2CAA2C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,+BAA+B,MAAM;AACzC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,MAAM,qDAAqD;AAAA,QAC/D,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,sBAAsB,MAAM;AAChC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,KAAK,8CAA8C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,kCAAkC;AAAA,QAC9C,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,yBAAyB,MAAM;AACnC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,QAAQ,2CAA2C;AAAA,QACvD,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,SAAS,SAAAC,eAAa;AAMlB,gBAAAC,cAAA;AAFJ,IAAM,6BAA6B,MAAM;AACvC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MACPC,QAAM,MAAM,qDAAqD;AAAA,QAC/D,OAAO;AAAA,UACL,eAAe;AAAA,UACf,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,MAEJ;AAAA;AAAA,EAED;AAEJ;AAEA,IAAO,oBAAQ;;;ACvBf,YAAYC,aAAW;AAOnB,gBAAAC,cAAA;AAFJ,IAAM,QAAc;AAAA,EAClB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,MAAM,cAAc;AAEpB,IAAM,aAAmB,mBAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,gDAAgD,SAAS;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;AAEzB,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc;;;AC3C/B,YAAYC,aAAW;AAQnB,gBAAAC,cAAA;AAFJ,IAAM,WAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,qCAAqC,SAAS;AAAA,MAC3D,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;;;ACbvB,YAAYC,aAAW;AACvB,YAAY,qBAAqB;AACjC,SAAS,OAAAC,YAA8B;AA8BrC,gBAAAC,cAAA;AA3BF,IAAM,iBAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,SAAe,mBAInB,CAAC,EAAE,WAAW,SAAS,MAAM,GAAG,MAAM,GAAG,QACzC,gBAAAD;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,IACzD,GAAG;AAAA;AACN,CACD;AACD,OAAO,cAA8B,qBAAK;;;ACtC1C,YAAYE,aAAW;AACvB,YAAY,qBAAqB;AACjC,SAAS,OAAAC,YAA8B;AA6CnC,gBAAAC,cAAA;AA1CJ,IAAM,qBAAqBC;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,sBAAsBA;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,SAAe,mBAInB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAChC,gBAAAD;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,mBAAmB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,IACpD,GAAG;AAAA,IAEJ,0BAAAA,OAAiB,uBAAhB,EAAsB,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,CAAC,GAAG;AAAA;AACvE,CACD;AACD,OAAO,cAA8B,qBAAK;;;AC1C1C,YAAYE,aAAW;AACvB,YAAY,wBAAwB;AACpC,SAAS,eAAAC,oBAAmB;AAU1B,gBAAAC,QAaE,QAAAC,eAbF;AANF,IAAM,YAA+B;AAErC,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,cAAc,cAAc;AAE5B,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAA,OAAoB,2BAAnB,EAA0B,WAAU,QACnC,0BAAAC;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,gBAAAD,OAACE,cAAA,EAAY,WAAU,wFAAuF;AAAA;AAAA;AAChH,GACF,CACD;AACD,iBAAiB,cAAiC,2BAAQ;AAE1D,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAF;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA,OAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GAAI,UAAS;AAAA;AACxD,CACD;AACD,iBAAiB,cAAiC,2BAAQ;;;AClE1D,YAAYG,aAAW;AAEvB,SAAS,QAAAC,aAAY;AACrB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAwBD,gBAAAC,cAAA;AAnBN,IAAM,OAAO;AASb,IAAM,mBAAyB,sBAA4C,IAAI;AAE/E,IAAM,YAAY,CAGhB;AAAA,EACA,GAAG;AACL,MAA4C;AAC1C,SACE,gBAAAA,OAAC,iBAAiB,UAAjB,EAA0B,OAAO,EAAE,MAAM,MAAM,KAAK,GACnD,0BAAAA,OAAC,cAAY,GAAG,OAAO,GACzB;AAEJ;AAEA,IAAM,eAAe,MAAM;AACzB,QAAM,eAAqB,mBAAW,gBAAgB;AACtD,QAAM,cAAoB,mBAAW,eAAe;AACpD,QAAM,EAAE,eAAe,UAAU,IAAI,eAAe;AAEpD,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEA,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAEA,QAAM,aAAa,cAAc,aAAa,MAAM,SAAS;AAE7D,QAAM,EAAE,GAAG,IAAI;AAEf,SAAO;AAAA,IACL;AAAA,IACA,MAAM,aAAa;AAAA,IACnB,YAAY,GAAG,EAAE;AAAA,IACjB,mBAAmB,GAAG,EAAE;AAAA,IACxB,eAAe,GAAG,EAAE;AAAA,IACpB,GAAG;AAAA,EACL;AACF;AAMA,IAAM,kBAAwB,sBAA2C,IAAI;AAE7E,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,KAAW,cAAM;AAEvB,SACE,gBAAAA,OAAC,gBAAgB,UAAhB,EAAyB,OAAO,EAAE,GAAG,GACpC,0BAAAA,OAAC,SAAI,KAAU,WAAW,GAAG,aAAa,SAAS,GAAI,GAAG,OAAO,GACnE;AAEJ,CAAC;AACD,SAAS,cAAc;AAEvB,IAAM,YAAkB,mBAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,OAAO,WAAW,IAAI,aAAa;AAE3C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,SAAS,oBAAoB,SAAS;AAAA,MACpD,SAAS;AAAA,MACR,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,UAAU,cAAc;AAExB,IAAM,cAAoB,mBAGxB,CAAC,EAAE,GAAG,MAAM,GAAG,QAAQ;AACvB,QAAM,EAAE,OAAO,YAAY,mBAAmB,cAAc,IAAI,aAAa;AAE7E,SACE,gBAAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,MACJ,oBACE,CAAC,QACG,GAAG,iBAAiB,KACpB,GAAG,iBAAiB,IAAI,aAAa;AAAA,MAE3C,gBAAc,CAAC,CAAC;AAAA,MACf,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,YAAY,cAAc;AAE1B,IAAM,kBAAwB,mBAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,kBAAkB,IAAI,aAAa;AAE3C,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,MACJ,WAAW,GAAG,uCAAuC,SAAS;AAAA,MAC7D,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,gBAAgB,cAAc;AAE9B,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC5C,QAAM,EAAE,OAAO,cAAc,IAAI,aAAa;AAC9C,QAAM,OAAO,QAAQ,OAAO,OAAO,WAAW,EAAE,IAAI;AAEpD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,MACJ,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ,CAAC;AACD,YAAY,cAAc;;;AClK1B,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AACxB,SAAS,SAAAE,eAAa;AACtB,SAAS,SAAS;AA8BV,gBAAAC,QACA,QAAAC,eADA;AAfR,IAAM,qBAAqB,MAAM;AAC/B,QAAMC,cAAa,EAAE,OAAO;AAAA,IAC1B,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AAED,QAAM,OAAO,QAAoC;AAAA,IAC/C,UAAU,YAAYA,WAAU;AAAA,IAChC,eAAe,EAAE,gBAAgB,GAAG;AAAA,EACtC,CAAC;AAED,WAAS,SAASC,OAAkC;AAClD,IAAAC,QAAM,OAAO,MACX,gBAAAH,QAAC,SAAM,WAAU,6EACf;AAAA,sBAAAD,OAAC,kBAAe;AAAA,MAChB,gBAAAC,QAAC,cAAW;AAAA;AAAA,QAAkBE,MAAK;AAAA,SAAe;AAAA,OACpD,CACD;AAAA,EACH;AAEA,SACE,gBAAAH,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YAAS,WAAU,aAClB;AAAA,0BAAAD,OAAC,aAAU,6CAA+B;AAAA,UAC1C,gBAAAA,OAAC,eACC,0BAAAC,QAACI,aAAA,EAAW,eAAe,MAAM,UAAU,OAAO,MAAM,OACtD;AAAA,4BAAAJ,QAAC,SAAI,WAAU,+BACb;AAAA,8BAAAD,OAAC,kBAAe,OAAM,cAAa,IAAG,gBAAe;AAAA,cACrD,gBAAAA,OAAC,aAAU,SAAQ,gBAAe,WAAU,eAAc,oDAE1D;AAAA,eACF;AAAA,YACA,gBAAAC,QAAC,SAAI,WAAU,+BACb;AAAA,8BAAAD,OAAC,kBAAe,OAAM,gBAAe,IAAG,mBAAkB;AAAA,cAC1D,gBAAAA,OAAC,aAAU,SAAQ,mBAAkB,WAAU,eAAc,mCAE7D;AAAA,eACF;AAAA,YACA,gBAAAC,QAAC,SAAI,WAAU,+BACb;AAAA,8BAAAD,OAAC,kBAAe,OAAM,aAAY,IAAG,oBAAmB;AAAA,cACxD,gBAAAA,OAAC,aAAU,SAAQ,oBAAmB,WAAU,eAAc,gDAE9D;AAAA,eACF;AAAA,aACF,GACF;AAAA,UACA,gBAAAA,OAAC,mBAAgB,0DAA4C;AAAA,UAC7D,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IACA,gBAAAA,OAAC,UAAO,MAAK,UAAS,gCAAkB;AAAA,KAC1C,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACnFf,SAAS,kBAAAM,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA6BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAdN,IAAMC,oBAAmB,MAAM;AAC7B,QAAMC,cAAaC,GAAE,OAAO;AAAA,IAC1B,aAAaA,GAAE,QAAQ,EAAE,OAAO,SAAO,QAAQ,MAAM;AAAA,MACnD,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AAED,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,IAChC,eAAe,EAAE,aAAa,MAAM;AAAA,EACtC,CAAC;AAED,WAAS,WAAW;AAClB,IAAAI,QAAM,OAAO,MACX,gBAAAN,QAAC,SAAM,WAAU,6EACf;AAAA,sBAAAD,OAACQ,iBAAA,EAAe;AAAA,MAChB,gBAAAR,OAAC,cAAW,uCAAyB;AAAA,OACvC,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAA,QAAC,SAAI,WAAU,+BACb;AAAA,4BAAAD,OAAC,eACC,0BAAAA,OAAC,YAAS,SAAS,MAAM,OAAO,iBAAiB,MAAM,UAAU,GACnE;AAAA,YACA,gBAAAA,OAAC,aAAU,yCAA2B;AAAA,aACxC;AAAA,UACA,gBAAAA,OAAC,mBAAgB,iIAGjB;AAAA,UACA,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,sBAAQ;AAAA,KAChC,GACF;AAEJ;AAEA,IAAO,kBAAQE;;;ACtEf,SAAS,kBAAAO,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA8BV,gBAAAC,QACA,QAAAC,eADA;AAfR,IAAM,iBAAiB,MAAM;AAC3B,QAAMC,cAAaC,GAAE,OAAO;AAAA,IAC1B,aAAaA,GAAE,QAAQ,EAAE,OAAO,SAAO,QAAQ,MAAM;AAAA,MACnD,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AAED,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,IAChC,eAAe,EAAE,aAAa,MAAM;AAAA,EACtC,CAAC;AAED,WAAS,SAASI,OAAkC;AAClD,IAAAC,QAAM,OAAO,MACX,gBAAAN,QAAC,SAAM,WAAU,6EACf;AAAA,sBAAAD,OAACQ,iBAAA,EAAe;AAAA,MAChB,gBAAAP,QAAC,cAAW;AAAA;AAAA,QAAiBK,MAAK,cAAc,YAAY;AAAA,QAAW;AAAA,SAAqB;AAAA,OAC9F,CACD;AAAA,EACH;AAEA,SACE,gBAAAN,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAA,QAAC,SAAI,WAAU,+BACb;AAAA,4BAAAD,OAAC,eACC,0BAAAA,OAAC,UAAO,SAAS,MAAM,OAAO,iBAAiB,MAAM,UAAU,GACjE;AAAA,YACA,gBAAAA,OAAC,aAAU,uCAAyB;AAAA,aACtC;AAAA,UACA,gBAAAA,OAAC,mBAAgB,0EAA4D;AAAA,UAC7E,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,sBAAQ;AAAA,KAChC,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACnEf,SAAS,kBAAAS,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA2BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAZN,IAAM,aAAaC,GAAE,OAAO;AAAA,EAC1B,OAAOA,GAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB,EAAE,MAAM,EAAE,SAAS,sCAAsC,CAAC;AACxG,CAAC;AAED,IAAM,gBAAgB,MAAM;AAC1B,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAY,UAAU;AAAA,IAChC,eAAe,EAAE,OAAO,GAAG;AAAA,EAC7B,CAAC;AAED,QAAM,WAAW,MAAM;AACrB,IAAAC,QAAM,OAAO,MACX,gBAAAJ,QAAC,SAAM,WAAU,6EACf;AAAA,sBAAAD,OAACM,iBAAA,EAAe;AAAA,MAChB,gBAAAN,OAAC,cAAW,oDAAsC;AAAA,OACpD,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAD,OAAC,aAAU,kCAAoB;AAAA,UAC/B,gBAAAA,OAAC,eACC,0BAAAA,OAAC,SAAM,aAAY,iBAAiB,GAAG,OAAO,GAChD;AAAA,UACA,gBAAAA,OAAC,mBAAgB,+DAAiD;AAAA,UAClE,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,uBAAS;AAAA,KACjC,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC/Df,SAAS,kBAAAO,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA+BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAhBN,IAAMC,cAAaC,GAAE,OAAO;AAAA,EAC1B,KAAKA,GAAE,OAAO,EAAE,IAAI,GAAG;AAAA,IACrB,SAAS;AAAA,EACX,CAAC;AACH,CAAC;AAED,IAAM,mBAAmB,MAAM;AAC7B,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,IAChC,eAAe;AAAA,MACb,KAAK;AAAA,IACP;AAAA,EACF,CAAC;AAED,WAAS,WAAW;AAClB,IAAAI,QAAM,OAAO,MACX,gBAAAL,QAAC,SAAM,WAAU,sFACf;AAAA,sBAAAD,OAACO,iBAAA,EAAe;AAAA,MAChB,gBAAAP,OAAC,cAAW,iEAAmD;AAAA,OACjE,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAD,OAAC,aAAU,+BAAiB;AAAA,UAC5B,gBAAAA,OAAC,eACC,0BAAAC,QAAC,YAAS,WAAW,GAAI,GAAG,OAC1B;AAAA,4BAAAA,QAAC,iBAAc,WAAU,qFACvB;AAAA,8BAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,cACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,cACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,eAC1B;AAAA,YACA,gBAAAA,OAAC,qBAAkB;AAAA,YACnB,gBAAAC,QAAC,iBAAc,WAAU,qFACvB;AAAA,8BAAAD,OAAC,gBAAa,OAAO,GAAG;AAAA,cACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,cACxB,gBAAAA,OAAC,gBAAa,OAAO,GAAG;AAAA,eAC1B;AAAA,aACF,GACF;AAAA,UACA,gBAAAA,OAAC,mBAAgB,8DAAgD;AAAA,UACjE,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,oBAAM;AAAA,KAC9B,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC/Ef,SAAS,kBAAAQ,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA+BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAhBN,IAAM,mBAAmB,MAAM;AAE7B,QAAMC,cAAaC,GAAE,OAAO;AAAA,IAC1B,SAASA,GACN,OAAO,EACP,IAAI,IAAI,8CAA8C,EACtD,IAAI,KAAK,uCAAuC;AAAA,EACrD,CAAC;AAED,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,IAChC,eAAe,EAAE,SAAS,GAAG;AAAA,EAC/B,CAAC;AAED,WAAS,WAAW;AAClB,IAAAI,QAAM,OAAO,MACX,gBAAAL,QAAC,SAAM,WAAU,sFACf;AAAA,sBAAAD,OAACO,iBAAA,EAAe;AAAA,MAChB,gBAAAP,OAAC,cAAW,sEAAwD;AAAA,OACtE,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BAErD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAD,OAAC,aAAU,oCAAsB;AAAA,UACjC,gBAAAA,OAAC,eACC,0BAAAA,OAAC,YAAS,aAAY,8DAA8D,GAAG,OAAO,GAChG;AAAA,UACA,gBAAAA,OAAC,mBAAgB,kGAEjB;AAAA,UACA,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,oBAAM;AAAA,KAC9B,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACtEf,SAAS,kBAAAQ,uBAAsB;AAE/B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA8BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAfN,IAAM,iBAAiB,MAAM;AAC3B,QAAMC,cAAaC,GAAE,OAAO;AAAA,IAC1B,OAAOA,GACJ,OAAO;AAAA,MACN,OAAO;AAAA,IACT,CAAC,EACA,MAAM;AAAA,EACX,CAAC;AAED,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,EAClC,CAAC;AAED,WAAS,WAAW;AAClB,IAAAI,QAAM,OAAO,MACX,gBAAAL,QAAC,SAAM,WAAU,sFACf;AAAA,sBAAAD,OAACO,iBAAA,EAAe;AAAA,MAChB,gBAAAP,OAAC,cAAW,6CAA+B;AAAA,OAC7C,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAD,OAAC,aAAU,mBAAK;AAAA,UAChB,gBAAAC,QAAC,UAAO,eAAe,MAAM,UAAU,cAAc,MAAM,OACzD;AAAA,4BAAAD,OAAC,eACC,0BAAAA,OAAC,iBAAc,WAAU,UACvB,0BAAAA,OAAC,eAAY,aAAY,+BAA8B,GACzD,GACF;AAAA,YACA,gBAAAC,QAAC,iBACC;AAAA,8BAAAD,OAAC,cAAW,OAAM,iBAAgB,6BAAe;AAAA,cACjD,gBAAAA,OAAC,cAAW,OAAM,gBAAe,+BAAiB;AAAA,cAClD,gBAAAA,OAAC,cAAW,OAAM,iBAAgB,gCAAkB;AAAA,eACtD;AAAA,aACF;AAAA,UACA,gBAAAA,OAAC,mBAAgB,kCAAoB;AAAA,UACrC,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IACA,gBAAAA,OAAC,UAAO,MAAK,UAAS,qBAAO;AAAA,KAC/B,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC1Ef,SAAS,YAAAQ,kBAAgB;AAEzB,SAAS,kBAAAC,iBAAgB,aAAAC,aAAW,sBAAAC,4BAA0B;AAE9D,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AAkDV,gBAAAC,QACA,QAAAC,eADA;AAzBR,IAAM,gBAAgB;AAAA,EACpB,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,iBAAiB,OAAO,gBAAgB;AAAA,EACjD,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,oBAAoB,OAAO,mBAAmB;AACzD;AAEA,IAAMC,cAAaC,GAAE,OAAO;AAAA,EAC1B,QAAQA,GAAE,OAAO,EAAE,OAAO,8BAA8B,CAAC;AAC3D,CAAC;AAED,IAAM,mBAAmB,MAAM;AAC7B,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,EAClC,CAAC;AAED,QAAM,CAAC,MAAM,OAAO,IAAII,WAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,WAAS,EAAE;AAErC,WAAS,WAAW;AAClB,IAAAC,QAAM,OAAO,MACX,gBAAAN,QAAC,SAAM,WAAU,6EACf;AAAA,sBAAAD,OAACQ,iBAAA,EAAe;AAAA,MAChB,gBAAAP,QAAC,cAAW;AAAA;AAAA,QAAkB;AAAA,QAAM;AAAA,SAAkB;AAAA,OACxD,CACD;AAAA,EACH;AAEA,SACE,gBAAAD,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,0BAAAD,OAAC,aAAU,wCAA0B;AAAA,UACrC,gBAAAC,QAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,4BAAAD,OAAC,eACC,0BAAAA,OAAC,kBAAe,SAAO,MACrB,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,iBAAe;AAAA,gBACf,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEV;AAAA,wBAAM,QACL,cAAc,KAAK,YAAU,OAAO,UAAU,MAAM,KAAK,GAAG,QAE5D,gBAAAD,OAAC,UAAK,WAAU,yBAAwB,wCAA0B;AAAA,kBAEpE,gBAAAA,OAACS,sBAAA,EAAmB,WAAU,cAAa;AAAA;AAAA;AAAA,YAC7C,GACF,GACF;AAAA,YACA,gBAAAT,OAAC,kBAAe,WAAU,uCACxB,0BAAAC,QAAC,WACC;AAAA,8BAAAD,OAAC,gBAAa,aAAY,4BAA2B;AAAA,cACrD,gBAAAC,QAAC,eACC;AAAA,gCAAAD,OAAC,gBAAa,sCAAwB;AAAA,gBACtC,gBAAAA,OAAC,gBACE,wBAAc,IAAI,YACjB,gBAAAC;AAAA,kBAAC;AAAA;AAAA,oBAEC,OAAO,OAAO;AAAA,oBACd,UAAU,MAAM;AACd,+BAAS,OAAO,KAAK;AACrB,4BAAM,SAAS,OAAO,KAAK;AAC3B,8BAAQ,KAAK;AAAA,oBACf;AAAA,oBAEC;AAAA,6BAAO;AAAA,sBACR,gBAAAD;AAAA,wBAACU;AAAA,wBAAA;AAAA,0BACC,WAAW,GAAG,WAAW,UAAU,OAAO,QAAQ,gBAAgB,WAAW;AAAA;AAAA,sBAC/E;AAAA;AAAA;AAAA,kBAXK,OAAO;AAAA,gBAYd,CACD,GACH;AAAA,iBACF;AAAA,eACF,GACF;AAAA,aACF;AAAA,UACA,gBAAAV,OAAC,mBAAgB,mDAAqC;AAAA,UACtD,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IAEA,gBAAAA,OAAC,UAAO,MAAK,UAAS,sBAAQ;AAAA,KAChC,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACpIf,SAAS,cAAc,kBAAAW,uBAAsB;AAE7C,SAAS,UAAAC,eAAc;AACvB,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,WAAAC,gBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,UAAS;AA6BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAXN,IAAMC,cAAaC,GAAE,OAAO;AAAA,EAC1B,KAAKA,GAAE,KAAK,EAAE,OAAO,+BAA+B,CAAC;AACvD,CAAC;AAED,IAAM,qBAAqB,MAAM;AAC/B,QAAM,OAAOC,SAAoC;AAAA,IAC/C,UAAUC,aAAYH,WAAU;AAAA,EAClC,CAAC;AAED,WAAS,WAAW;AAClB,IAAAI,QAAM,OAAO,MACX,gBAAAL,QAAC,SAAM,WAAU,sFACf;AAAA,sBAAAD,OAACO,iBAAA,EAAe;AAAA,MAChB,gBAAAP,OAAC,cAAW,iEAAmD;AAAA,OACjE,CACD;AAAA,EACH;AAEA,SACE,gBAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,KAAK;AAAA,QACd,MAAK;AAAA,QACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YAAS,WAAU,iBAClB;AAAA,0BAAAD,OAAC,aAAU,qCAAuB;AAAA,UAClC,gBAAAC,QAAC,WACC;AAAA,4BAAAD,OAAC,kBAAe,SAAO,MACrB,0BAAAA,OAAC,eACC,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAW,GAAG,8BAA8B,CAAC,MAAM,SAAS,uBAAuB;AAAA,gBAElF;AAAA,wBAAM,QAAQO,QAAO,MAAM,OAAO,KAAK,IAAI,gBAAAR,OAAC,UAAK,yBAAW;AAAA,kBAC7D,gBAAAA,OAAC,gBAAa,WAAU,sBAAqB;AAAA;AAAA;AAAA,YAC/C,GACF,GACF;AAAA,YACA,gBAAAA,OAAC,kBAAe,WAAU,cAAa,OAAM,SAC3C,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,MAAK;AAAA,gBACL,UAAU,MAAM;AAAA,gBAChB,UAAU,MAAM;AAAA,gBAChB,UAAU,UAAQ,OAAO,oBAAI,KAAK,KAAK,OAAO,oBAAI,KAAK,YAAY;AAAA;AAAA,YACrE,GACF;AAAA,aACF;AAAA,UACA,gBAAAA,OAAC,mBAAgB,kGAEjB;AAAA,UACA,gBAAAA,OAAC,eAAY;AAAA,WACf;AAAA;AAAA,IAEJ;AAAA,IACA,gBAAAA,OAAC,UAAO,MAAK,UAAS,oBAAM;AAAA,KAC9B,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACnFf,SAAS,kBAAAS,wBAAsB;AAE/B,SAAS,eAAAC,qBAAmB;AAC5B,SAAS,WAAAC,iBAAe;AACxB,SAAS,SAAAC,eAAa;AACtB,SAAS,KAAAC,WAAS;AA8BZ,SACE,OAAAC,QADF,QAAAC,eAAA;AAnBN,IAAM,oBAAoB,MAAM;AAC9B,QAAMC,cAAaC,IAAE,OAAO;AAAA,IAC1B,OAAOA,IAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB,EAAE,MAAM,EAAE,SAAS,sCAAsC,CAAC;AAAA,IACtG,OAAOA,IAAE,OAAO,EAAE,IAAI,GAAG;AAAA,MACvB,SAAS;AAAA,IACX,CAAC;AAAA,IACD,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAASA,IAAE,OAAO,EAAE,IAAI,IAAI,mDAAmD;AAAA,EACjF,CAAC;AAED,QAAM,OAAOC,UAAoC;AAAA,IAC/C,UAAUC,cAAYH,WAAU;AAAA,IAChC,eAAe,EAAE,OAAO,IAAI,OAAO,IAAI,gBAAgB,IAAI,SAAS,GAAG;AAAA,EACzE,CAAC;AAED,QAAM,WAAW,MAAM;AACrB,IAAAI,QAAM,OAAO,MACX,gBAAAL,QAAC,SAAM,WAAU,sFACf;AAAA,sBAAAD,OAACO,kBAAA,EAAe;AAAA,MAChB,gBAAAP,OAAC,cAAW,mFAAqE;AAAA,OACnF,CACD;AAAA,EACH;AAEA,SACE,gBAAAC,QAAC,QAAK,WAAU,+BACd;AAAA,oBAAAA,QAAC,cACC;AAAA,sBAAAD,OAAC,aAAU,0BAAY;AAAA,MACvB,gBAAAA,OAAC,mBAAgB,uEAA8D;AAAA,OACjF;AAAA,IACA,gBAAAA,OAAC,eACC,0BAAAA,OAAC,QAAM,GAAG,MACR,0BAAAC,QAAC,UAAK,UAAU,KAAK,aAAa,QAAQ,GAAG,WAAU,6BACrD;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,KAAK;AAAA,UACd,MAAK;AAAA,UACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,4BAAAD,OAAC,aAAU,mBAAK;AAAA,YAChB,gBAAAA,OAAC,eACC,0BAAAA,OAAC,SAAM,aAAY,iBAAiB,GAAG,OAAO,GAChD;AAAA,YACA,gBAAAA,OAAC,eAAY;AAAA,aACf;AAAA;AAAA,MAEJ;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,KAAK;AAAA,UACd,MAAK;AAAA,UACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,4BAAAD,OAAC,aAAU,mBAAK;AAAA,YAChB,gBAAAC,QAAC,UAAO,eAAe,MAAM,UAAU,cAAc,MAAM,OACzD;AAAA,8BAAAD,OAAC,eACC,0BAAAA,OAAC,iBAAc,WAAU,UACvB,0BAAAA,OAAC,eAAY,aAAY,wBAAuB,GAClD,GACF;AAAA,cACA,gBAAAC,QAAC,iBACC;AAAA,gCAAAD,OAAC,cAAW,OAAM,WAAU,gCAAkB;AAAA,gBAC9C,gBAAAA,OAAC,cAAW,OAAM,iBAAgB,oCAAsB;AAAA,gBACxD,gBAAAA,OAAC,cAAW,OAAM,YAAW,gCAAkB;AAAA,gBAC/C,gBAAAA,OAAC,cAAW,OAAM,SAAQ,mBAAK;AAAA,iBACjC;AAAA,eACF;AAAA,YACA,gBAAAA,OAAC,eAAY;AAAA,aACf;AAAA;AAAA,MAEJ;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,KAAK;AAAA,UACd,MAAK;AAAA,UACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YAAS,WAAU,aAClB;AAAA,4BAAAD,OAAC,aAAU,kCAAoB;AAAA,YAC/B,gBAAAA,OAAC,eACC,0BAAAC,QAACO,aAAA,EAAW,eAAe,MAAM,UAAU,OAAO,MAAM,OACtD;AAAA,8BAAAP,QAAC,SAAI,WAAU,+BACb;AAAA,gCAAAD,OAAC,kBAAe,OAAM,WAAU,IAAG,gBAAe;AAAA,gBAClD,gBAAAA,OAAC,aAAU,SAAQ,gBAAe,WAAU,eAAc,wCAE1D;AAAA,iBACF;AAAA,cACA,gBAAAC,QAAC,SAAI,WAAU,+BACb;AAAA,gCAAAD,OAAC,kBAAe,OAAM,UAAS,IAAG,eAAc;AAAA,gBAChD,gBAAAA,OAAC,aAAU,SAAQ,eAAc,WAAU,eAAc,2BAEzD;AAAA,iBACF;AAAA,cACA,gBAAAC,QAAC,SAAI,WAAU,+BACb;AAAA,gCAAAD,OAAC,kBAAe,OAAM,WAAU,IAAG,gBAAe;AAAA,gBAClD,gBAAAA,OAAC,aAAU,SAAQ,gBAAe,WAAU,eAAc,sCAE1D;AAAA,iBACF;AAAA,eACF,GACF;AAAA,YACA,gBAAAA,OAAC,eAAY;AAAA,aACf;AAAA;AAAA,MAEJ;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,KAAK;AAAA,UACd,MAAK;AAAA,UACL,QAAQ,CAAC,EAAE,MAAM,MACf,gBAAAC,QAAC,YACC;AAAA,4BAAAD,OAAC,aAAU,wCAA0B;AAAA,YACrC,gBAAAA,OAAC,eACC,0BAAAA,OAAC,YAAS,aAAY,iDAAiD,GAAG,OAAO,GACnF;AAAA,YACA,gBAAAA,OAAC,eAAY;AAAA,aACf;AAAA;AAAA,MAEJ;AAAA,MACA,gBAAAA,OAAC,UAAO,MAAK,UAAS,oBAAM;AAAA,OAC9B,GACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,kBAAQ;;;AC3HP,gBAAAS,QAKA,QAAAC,eALA;AAJR,IAAM,mBAAmB,MAAM;AAC7B,SACE,gBAAAA,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,mBAAK,GACjC;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,QAC7B;AAAA,sBAAAD,OAAC,qBAAkB,wBAAU;AAAA,MAC7B,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,qBACC;AAAA,wBAAAD,OAAC,oBAAiB,qBAAO;AAAA,QACzB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,SAC3B;AAAA,MACA,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,qBACC;AAAA,wBAAAA,QAAC,mBACC;AAAA,0BAAAD,OAAC,0BAAuB,0BAAY;AAAA,UACpC,gBAAAA,OAAC,sBACC,0BAAAC,QAAC,0BACC;AAAA,4BAAAD,OAAC,oBAAiB,mBAAK;AAAA,YACvB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,YACzB,gBAAAA,OAAC,yBAAsB;AAAA,YACvB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,aAC3B,GACF;AAAA,WACF;AAAA,QACA,gBAAAA,OAAC,oBAAiB,oBAAM;AAAA,QACxB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,QACzB,gBAAAA,OAAC,oBAAiB,UAAQ,MAAC,iBAAG;AAAA,SAChC;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;AClDf,SAAS,YAAAE,kBAAgB;AA+CjB,gBAAAC,QAOI,QAAAC,eAPJ;AAjCR,IAAMC,WAAU;AAAA,EACd;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;AAEA,IAAM,8BAA8B,MAAM;AACxC,QAAM,CAAC,cAAc,eAAe,IAAIC,WAAS,KAAK;AACtD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,WAAS,IAAI;AACvD,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,KAAK;AACtD,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,IAAI;AACrD,QAAM,CAAC,cAAc,eAAe,IAAIA,WAAS,KAAK;AAEtD,SACE,gBAAAF,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,+BAAiB,GAC7C;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,gBAC7B;AAAA,sBAAAD,OAAC,qBAAkB,WAAU,aAAY,8BAAqB;AAAA,MAC9D,gBAAAC,QAAC,qBACC;AAAA,wBAAAA,QAAC,oBAAiB,WAAU,qCAAoC,UAAU,WAAS,MAAM,eAAe,GACtG;AAAA,0BAAAD,OAAC,UAAK,WAAU,uCAAsC,mBAAK;AAAA,UAC3D,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,2BAA0B,kCAAoB;AAAA,YAC9D,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,+BAAiB;AAAA,aACnE;AAAA,UACA,gBAAAC,QAAC,UAAO,WAAU,iBAChB;AAAA,4BAAAD,OAAC,eAAY,KAAI,+DAA8D,KAAI,mBAAkB;AAAA,YACrG,gBAAAA,OAAC,kBAAe,WAAU,WAAU,mBAAK;AAAA,aAC3C;AAAA,UACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,mCAAkC,qBAAO;AAAA,YACzD,gBAAAA,OAAC,UAAO,IAAG,iBAAgB,SAAS,cAAc,iBAAiB,iBAAiB;AAAA,aACtF;AAAA,WACF;AAAA,QACA,gBAAAC,QAAC,oBAAiB,WAAU,qCAAoC,UAAU,WAAS,MAAM,eAAe,GACtG;AAAA,0BAAAD,OAAC,UAAK,WAAU,uCAAsC,mBAAK;AAAA,UAC3D,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,2BAA0B,0BAAY;AAAA,YACtD,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,4CAA8B;AAAA,aAChF;AAAA,UACA,gBAAAA,OAAC,SAAI,WAAU,iCACZ,UAAAE,SAAQ,IAAI,CAAC,QAAQ,UACpB,gBAAAD,QAAC,UAAmB,WAAU,0BAC5B;AAAA,4BAAAD,OAAC,eAAY,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AAAA,YAChD,gBAAAA,OAAC,kBAAe,WAAU,WAAW,iBAAO,UAAS;AAAA,eAF1C,KAGb,CACD,GACH;AAAA,UACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,mCAAkC,qBAAO;AAAA,YACzD,gBAAAA,OAAC,UAAO,IAAG,iBAAgB,SAAS,eAAe,iBAAiB,kBAAkB;AAAA,aACxF;AAAA,WACF;AAAA,QACA,gBAAAC,QAAC,oBAAiB,WAAU,qCAAoC,UAAU,WAAS,MAAM,eAAe,GACtG;AAAA,0BAAAD,OAAC,UAAK,WAAU,uCAAsC,mBAAK;AAAA,UAC3D,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,2BAA0B,mCAAqB;AAAA,YAC/D,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,sCAAwB;AAAA,aAC1E;AAAA,UACA,gBAAAC,QAAC,UAAO,WAAU,iBAChB;AAAA,4BAAAD,OAAC,eAAY,KAAI,+DAA8D,KAAI,mBAAkB;AAAA,YACrG,gBAAAA,OAAC,kBAAe,WAAU,WAAU,mBAAK;AAAA,aAC3C;AAAA,UACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,mCAAkC,qBAAO;AAAA,YACzD,gBAAAA,OAAC,UAAO,IAAG,iBAAgB,SAAS,cAAc,iBAAiB,iBAAiB;AAAA,aACtF;AAAA,WACF;AAAA,QACA,gBAAAC,QAAC,oBAAiB,WAAU,qCAAoC,UAAU,WAAS,MAAM,eAAe,GACtG;AAAA,0BAAAD,OAAC,UAAK,WAAU,uCAAsC,mBAAK;AAAA,UAC3D,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,2BAA0B,8BAAgB;AAAA,YAC1D,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,qCAAuB;AAAA,aACzE;AAAA,UACA,gBAAAA,OAAC,SAAI,WAAU,iCACZ,UAAAE,SAAQ,IAAI,CAAC,QAAQ,UACpB,gBAAAD,QAAC,UAAmB,WAAU,0BAC5B;AAAA,4BAAAD,OAAC,eAAY,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AAAA,YAChD,gBAAAA,OAAC,kBAAe,WAAU,WAAW,iBAAO,UAAS;AAAA,eAF1C,KAGb,CACD,GACH;AAAA,UACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,mCAAkC,qBAAO;AAAA,YACzD,gBAAAA,OAAC,UAAO,IAAG,iBAAgB,SAAS,cAAc,iBAAiB,iBAAiB;AAAA,aACtF;AAAA,WACF;AAAA,QACA,gBAAAC,QAAC,oBAAiB,WAAU,qCAAoC,UAAU,WAAS,MAAM,eAAe,GACtG;AAAA,0BAAAD,OAAC,UAAK,WAAU,uCAAsC,mBAAK;AAAA,UAC3D,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,2BAA0B,kCAAoB;AAAA,YAC9D,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,wCAA0B;AAAA,aAC5E;AAAA,UACA,gBAAAC,QAAC,UAAO,WAAU,iBAChB;AAAA,4BAAAD,OAAC,eAAY,KAAI,+DAA8D,KAAI,mBAAkB;AAAA,YACrG,gBAAAA,OAAC,kBAAe,WAAU,WAAU,mBAAK;AAAA,aAC3C;AAAA,UACA,gBAAAC,QAAC,SAAI,WAAU,2BACb;AAAA,4BAAAD,OAAC,UAAK,WAAU,mCAAkC,qBAAO;AAAA,YACzD,gBAAAA,OAAC,UAAO,IAAG,iBAAgB,SAAS,cAAc,iBAAiB,iBAAiB;AAAA,aACtF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACzHP,gBAAAI,QAIE,QAAAC,eAJF;AAJR,IAAM,8BAA8B,MAAM;AACxC,SACE,gBAAAA,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,0BAAY,GACxC;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,QAC7B;AAAA,sBAAAA,QAAC,qBAAkB,WAAU,2BAC3B;AAAA,wBAAAA,QAAC,UACC;AAAA,0BAAAD,OAAC,eAAY,KAAI,8DAA6D,KAAI,kBAAiB;AAAA,UACnG,gBAAAA,OAAC,kBAAe,WAAU,WAAU,gBAAE;AAAA,WACxC;AAAA,QACA,gBAAAC,QAAC,SAAI,WAAU,wBACb;AAAA,0BAAAD,OAAC,UAAK,WAAU,2BAA0B,4BAAc;AAAA,UACxD,gBAAAA,OAAC,UAAK,WAAU,iCAAgC,iCAAmB;AAAA,WACrE;AAAA,SACF;AAAA,MACA,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,qBACC;AAAA,wBAAAD,OAAC,oBAAiB,qBAAO;AAAA,QACzB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,SAC3B;AAAA,MACA,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,qBACC;AAAA,wBAAAA,QAAC,mBACC;AAAA,0BAAAD,OAAC,0BAAuB,0BAAY;AAAA,UACpC,gBAAAA,OAAC,sBACC,0BAAAC,QAAC,0BACC;AAAA,4BAAAD,OAAC,oBAAiB,mBAAK;AAAA,YACvB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,YACzB,gBAAAA,OAAC,yBAAsB;AAAA,YACvB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,aAC3B,GACF;AAAA,WACF;AAAA,QACA,gBAAAA,OAAC,oBAAiB,oBAAM;AAAA,QACxB,gBAAAA,OAAC,oBAAiB,qBAAO;AAAA,QACzB,gBAAAA,OAAC,oBAAiB,UAAQ,MAAC,iBAAG;AAAA,SAChC;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;AC5Df,SAAS,gBAAgB,YAAY,cAAAE,mBAAkB;AAgB/C,gBAAAC,QAIE,QAAAC,eAJF;AAJR,IAAM,6BAA6B,MAAM;AACvC,SACE,gBAAAA,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,yBAAW,GACvC;AAAA,IACA,gBAAAA,OAAC,uBAAoB,OAAM,SAAQ,WAAU,QAC3C,0BAAAC,QAAC,qBACC;AAAA,sBAAAA,QAAC,oBACC;AAAA,wBAAAD,OAAC,kBAAe;AAAA,QAAE;AAAA,SAEpB;AAAA,MACA,gBAAAC,QAAC,oBACC;AAAA,wBAAAD,OAAC,cAAW;AAAA,QAAE;AAAA,SAEhB;AAAA,MACA,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,oBAAiB,SAAQ,eACxB;AAAA,wBAAAD,OAACE,aAAA,EAAW;AAAA,QACZ,gBAAAF,OAAC,UAAK,oBAAM;AAAA,SACd;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACvCf,SAAS,mBAAAG,mBAAiB,iBAAAC,gBAAe,gBAAgB,WAAW,wBAAwB;AA4CpF,gBAAAC,QAMI,QAAAC,eANJ;AAhCR,IAAM,YAAY;AAAA,EAChB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,MAAMC;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,MAAMC;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAEA,IAAM,+BAA+B,MAAM;AACzC,SACE,gBAAAF,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,2BAAa,GACzC;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,oBAC7B;AAAA,sBAAAD,OAAC,qBAAkB,2BAAa;AAAA,MAChC,gBAAAA,OAAC,qBACE,oBAAU,IAAI,CAAC,MAAM,UACpB,gBAAAC,QAAC,oBACC;AAAA,wBAAAD,OAAC,KAAK,MAAL,EAAU,WAAW,KAAK,OAAO;AAAA,QACjC,KAAK;AAAA,WAFe,KAGvB,CACD,GACH;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;AC3Df,SAAS,YAAAI,kBAAgB;AAoBjB,gBAAAC,QAEF,QAAAC,eAFE;AARR,IAAM,2BAA2B,MAAM;AACrC,QAAM,CAAC,eAAe,gBAAgB,IAAIC,WAAS,IAAI;AACvD,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,WAAS,KAAK;AAC5D,QAAM,CAAC,WAAW,YAAY,IAAIA,WAAS,KAAK;AAEhD,SACE,gBAAAD,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,2BAAa,GACzC;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,QAC7B;AAAA,sBAAAD,OAAC,qBAAkB,wBAAU;AAAA,MAC7B,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAA,OAAC,4BAAyB,SAAS,eAAe,iBAAiB,kBAAkB,wBAErF;AAAA,MACA,gBAAAA,OAAC,4BAAyB,SAAS,iBAAiB,iBAAiB,oBAAoB,UAAQ,MAAC,iBAElG;AAAA,MACA,gBAAAA,OAAC,4BAAyB,SAAS,WAAW,iBAAiB,cAAc,0BAE7E;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACvCf,SAAS,YAAAG,kBAAgB;AAmBjB,gBAAAC,QAKA,QAAAC,eALA;AANR,IAAM,6BAA6B,MAAM;AACvC,QAAM,CAAC,UAAU,WAAW,IAAIC,WAAS,QAAQ;AAEjD,SACE,gBAAAD,QAAC,gBACC;AAAA,oBAAAD,OAAC,uBAAoB,SAAO,MAC1B,0BAAAA,OAAC,UAAO,SAAQ,WAAU,wBAAU,GACtC;AAAA,IACA,gBAAAC,QAAC,uBAAoB,WAAU,QAC7B;AAAA,sBAAAD,OAAC,qBAAkB,4BAAc;AAAA,MACjC,gBAAAA,OAAC,yBAAsB;AAAA,MACvB,gBAAAC,QAAC,0BAAuB,OAAO,UAAU,eAAe,aACtD;AAAA,wBAAAD,OAAC,yBAAsB,OAAM,OAAM,iBAAG;AAAA,QACtC,gBAAAA,OAAC,yBAAsB,OAAM,UAAS,oBAAM;AAAA,QAC5C,gBAAAA,OAAC,yBAAsB,OAAM,SAAQ,UAAQ,MAAC,mBAE9C;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACtCf,YAAYG,aAAW;AACvB,SAAS,QAAAC,aAAY;AACrB,SAAS,OAAAC,YAA8B;AACvC,SAAS,iBAAiB;;;ACH1B,YAAYC,aAAW;AAEvB,IAAM,oBAAoB;AAEnB,SAAS,cAAc;AAC5B,QAAM,CAAC,UAAU,WAAW,IAAU,iBAA8B,MAAS;AAE7E,EAAM,kBAAU,MAAM;AACpB,UAAM,MAAM,OAAO,WAAW,eAAe,oBAAoB,CAAC,KAAK;AACvE,UAAM,WAAW,MAAM;AACrB,kBAAY,OAAO,aAAa,iBAAiB;AAAA,IACnD;AACA,QAAI,iBAAiB,UAAU,QAAQ;AACvC,gBAAY,OAAO,aAAa,iBAAiB;AACjD,WAAO,MAAM,IAAI,oBAAoB,UAAU,QAAQ;AAAA,EACzD,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,CAAC;AACX;;;AChBA,YAAYC,aAAW;AACvB,YAAY,oBAAoB;AAChC,SAAS,OAAAC,YAA8B;AACvC,SAAS,SAAS;AAgBhB,gBAAAC,QA6CI,QAAAC,eA7CJ;AAZF,IAAM,QAAuB;AAM7B,IAAM,cAA6B;AAEnC,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAC;AAAA,EAAgB;AAAA,EAAf;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA;AACF,CACD;AACD,aAAa,cAA6B,uBAAQ;AAElD,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAMA,IAAM,eAAqB,mBAGzB,CAAC,EAAE,OAAO,SAAS,WAAW,UAAU,GAAG,MAAM,GAAG,QACpD,gBAAAC,QAAC,eACC;AAAA,kBAAAF,OAAC,gBAAa;AAAA,EACd,gBAAAE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACC;AAAA,MACA,WAAW,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC/C,GAAG;AAAA,MAEJ;AAAA,wBAAAA,QAAgB,sBAAf,EAAqB,WAAU,4OAC9B;AAAA,0BAAAF,OAAC,KAAE,WAAU,WAAU;AAAA,UACvB,gBAAAA,OAAC,UAAK,WAAU,WAAU,mBAAK;AAAA,WACjC;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAAA,GACF,CACD;AACD,aAAa,cAA6B,uBAAQ;AAElD,IAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,GAAG;AACL,MACE,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAY,cAAc;AAE1B,IAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,GAAG;AACL,MACE,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAY,cAAc;AAE1B,IAAM,aAAmB,mBAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAgB;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,yCAAyC,SAAS;AAAA,IAC/D,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAA6B,qBAAM;AAE9C,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAgB;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAA6B,2BAAY;;;AFYhD,gBAAAG,QA0EE,QAAAC,eA1EF;AAjHV,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB,KAAK,KAAK,KAAK;AAC9C,IAAM,gBAAgB;AACtB,IAAM,uBAAuB;AAC7B,IAAM,qBAAqB;AAC3B,IAAM,4BAA4B;AAYlC,IAAM,iBAAuB,sBAA0C,IAAI;AAE3E,SAAS,aAAa;AACpB,QAAM,UAAgB,mBAAW,cAAc;AAC/C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAEA,SAAO;AACT;AAEA,IAAM,kBAAwB;AAAA,EAQ5B,CACE;AAAA,IACE,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,WAAW,YAAY;AAC7B,UAAM,CAAC,YAAY,aAAa,IAAU,iBAAS,KAAK;AAIxD,UAAM,CAAC,OAAO,QAAQ,IAAU,iBAAS,WAAW;AACpD,UAAM,OAAO,YAAY;AACzB,UAAM,UAAgB;AAAA,MACpB,CAAC,UAAmD;AAClD,cAAM,YAAY,OAAO,UAAU,aAAa,MAAM,IAAI,IAAI;AAC9D,YAAI,aAAa;AACf,sBAAY,SAAS;AAAA,QACvB,OAAO;AACL,mBAAS,SAAS;AAAA,QACpB;AAGA,iBAAS,SAAS,GAAG,mBAAmB,IAAI,SAAS,qBAAqB,sBAAsB;AAAA,MAClG;AAAA,MACA,CAAC,aAAa,IAAI;AAAA,IACpB;AAGA,UAAM,gBAAsB,oBAAY,MAAM;AAC5C,aAAO,WACH,cAAc,CAACC,UAAS,CAACA,KAAI,IAC7B,QAAQ,CAACA,UAAS,CAACA,KAAI;AAAA,IAC7B,GAAG,CAAC,UAAU,SAAS,aAAa,CAAC;AAGrC,IAAM,kBAAU,MAAM;AACpB,YAAM,gBAAgB,CAAC,UAAyB;AAC9C,YACE,MAAM,QAAQ,8BACb,MAAM,WAAW,MAAM,UACxB;AACA,gBAAM,eAAe;AACrB,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,aAAO,iBAAiB,WAAW,aAAa;AAChD,aAAO,MAAM,OAAO,oBAAoB,WAAW,aAAa;AAAA,IAClE,GAAG,CAAC,aAAa,CAAC;AAIlB,UAAM,QAAQ,OAAO,aAAa;AAElC,UAAM,eAAqB;AAAA,MACzB,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,CAAC,OAAO,MAAM,SAAS,UAAU,YAAY,eAAe,aAAa;AAAA,IAC3E;AAEA,WACE,gBAAAF,OAAC,eAAe,UAAf,EAAwB,OAAO,cAC9B,0BAAAA,OAAC,mBAAgB,eAAe,GAC9B,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,OACE;AAAA,UACE,mBAAmB;AAAA,UACnB,wBAAwB;AAAA,UACxB,GAAG;AAAA,QACL;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH,GACF,GACF;AAAA,EAEJ;AACF;AACA,gBAAgB,cAAc;AAE9B,IAAM,UAAgB;AAAA,EAQpB,CACE;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,UAAU,OAAO,YAAY,cAAc,IAAI,WAAW;AAElE,QAAI,gBAAgB,QAAQ;AAC1B,aACE,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACA;AAAA,UACC,GAAG;AAAA,UAEH;AAAA;AAAA,MACH;AAAA,IAEJ;AAEA,QAAI,UAAU;AACZ,aACE,gBAAAA,OAAC,SAAM,MAAM,YAAY,cAAc,eAAgB,GAAG,OACxD,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC,gBAAa;AAAA,UACb,eAAY;AAAA,UACZ,WAAU;AAAA,UACV,OACE;AAAA,YACE,mBAAmB;AAAA,UACrB;AAAA,UAEF;AAAA,UAEA;AAAA,4BAAAA,QAAC,eAAY,WAAU,WACrB;AAAA,8BAAAD,OAAC,cAAW,qBAAO;AAAA,cACnB,gBAAAA,OAAC,oBAAiB,0CAA4B;AAAA,eAChD;AAAA,YACA,gBAAAA,OAAC,SAAI,WAAU,+BAA+B,UAAS;AAAA;AAAA;AAAA,MACzD,GACF;AAAA,IAEJ;AAEA,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACV,cAAY;AAAA,QACZ,oBAAkB,UAAU,cAAc,cAAc;AAAA,QACxD,gBAAc;AAAA,QACd,aAAW;AAAA,QAGX;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,YAAY,cAAc,YAAY,UAClC,yFACA;AAAA,cACN;AAAA;AAAA,UACF;AAAA,UACA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,SAAS,SACL,mFACA;AAAA;AAAA,gBAEJ,YAAY,cAAc,YAAY,UAClC,kGACA;AAAA,gBACJ;AAAA,cACF;AAAA,cACC,GAAG;AAAA,cAEJ,0BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,gBAAa;AAAA,kBACb,WAAU;AAAA,kBAET;AAAA;AAAA,cACH;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,QAAQ,cAAc;AAEtB,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QAAQ;AAC3C,QAAM,EAAE,cAAc,IAAI,WAAW;AAErC,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAW,GAAG,WAAW,SAAS;AAAA,MAClC,SAAS,CAAC,UAAU;AAClB,kBAAU,KAAK;AACf,sBAAc;AAAA,MAChB;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD,OAAC,aAAU;AAAA,QACX,gBAAAA,OAAC,UAAK,WAAU,WAAU,4BAAc;AAAA;AAAA;AAAA,EAC1C;AAEJ,CAAC;AACD,eAAe,cAAc;AAE7B,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,cAAc,IAAI,WAAW;AAErC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,cAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,MACT,OAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,YAAY,cAAc;AAE1B,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,aAAa,cAAc;AAE3B,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,aAAa,cAAc;AAE3B,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,cAAc,cAAc;AAE5B,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW,GAAG,2BAA2B,SAAS;AAAA,MACjD,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,cAAc,cAAc;AAE5B,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,iBAAiB,cAAc;AAE/B,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAH;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,eAAe,cAAc;AAE7B,IAAM,eAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACnE,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,aAAa,cAAc;AAE3B,IAAM,oBAA0B,mBAG9B,CAAC,EAAE,WAAW,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AACnD,QAAM,OAAO,UAAUI,QAAO;AAE9B,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,kBAAkB,cAAc;AAEhC,IAAM,qBAA2B,mBAG/B,CAAC,EAAE,WAAW,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AACnD,QAAM,OAAO,UAAUI,QAAO;AAE9B,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,mBAAmB,cAAc;AAEjC,IAAM,sBAA4B,mBAGhC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,gBAAa;AAAA,IACb,WAAW,GAAG,kBAAkB,SAAS;AAAA,IACxC,GAAG;AAAA;AACN,CACD;AACD,oBAAoB,cAAc;AAElC,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,gBAAa;AAAA,IACb,WAAW,GAAG,sCAAsC,SAAS;AAAA,IAC5D,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;AAE1B,IAAM,kBAAwB,mBAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,gBAAa;AAAA,IACb,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,gBAAgB,cAAc;AAE9B,IAAM,4BAA4BK;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,oBAA0B;AAAA,EAQ9B,CACE;AAAA,IACE,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,OAAO,UAAUD,QAAO;AAC9B,UAAM,EAAE,UAAU,MAAM,IAAI,WAAW;AAEvC,UAAM,SACJ,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,gBAAa;AAAA,QACb,aAAW;AAAA,QACX,eAAa;AAAA,QACb,WAAW,GAAG,0BAA0B,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,QACpE,GAAG;AAAA;AAAA,IACN;AAGF,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAEA,QAAI,OAAO,YAAY,UAAU;AAC/B,gBAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,IACF;AAEA,WACE,gBAAAC,QAAC,WACC;AAAA,sBAAAD,OAAC,kBAAe,SAAO,MAAE,kBAAO;AAAA,MAChC,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAM;AAAA,UACN,QAAQ,UAAU,eAAe;AAAA,UAChC,GAAG;AAAA;AAAA,MACN;AAAA,OACF;AAAA,EAEJ;AACF;AACA,kBAAkB,cAAc;AAEhC,IAAM,oBAA0B,mBAM9B,CAAC,EAAE,WAAW,UAAU,OAAO,cAAc,OAAO,GAAG,MAAM,GAAG,QAAQ;AACxE,QAAM,OAAO,UAAUI,QAAO;AAE9B,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eACE;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,kBAAkB,cAAc;AAEhC,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,gBAAa;AAAA,IACb,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc;AAE/B,IAAM,sBAA4B,mBAKhC,CAAC,EAAE,WAAW,WAAW,OAAO,GAAG,MAAM,GAAG,QAAQ;AAEpD,QAAM,QAAc,gBAAQ,MAAM;AAChC,WAAO,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,IAAI,EAAE;AAAA,EAC/C,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,WAAW,GAAG,+CAA+C,SAAS;AAAA,MACrE,GAAG;AAAA,MAEH;AAAA,oBACC,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,gBAAa;AAAA;AAAA,QACf;AAAA,QAEF,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,gBAAa;AAAA,YACb,OACE;AAAA,cACE,oBAAoB;AAAA,YACtB;AAAA;AAAA,QAEJ;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AACD,oBAAoB,cAAc;AAElC,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,gBAAa;AAAA,IACb,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAAc;AAE7B,IAAM,qBAA2B,mBAG/B,CAAC,EAAE,GAAG,MAAM,GAAG,QAAQ,gBAAAA,OAAC,QAAG,KAAW,GAAG,OAAO,CAAE;AACpD,mBAAmB,cAAc;AAEjC,IAAM,uBAA6B,mBAOjC,CAAC,EAAE,UAAU,OAAO,OAAO,MAAM,UAAU,WAAW,GAAG,MAAM,GAAG,QAAQ;AAC1E,QAAM,OAAO,UAAUI,QAAO;AAE9B,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,gBAAa;AAAA,MACb,aAAW;AAAA,MACX,eAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,SAAS,QAAQ;AAAA,QACjB,SAAS,QAAQ;AAAA,QACjB;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AACD,qBAAqB,cAAc;","names":["React","jsx","React","cva","jsx","cva","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","React","jsx","React","cva","jsx","cva","jsx","jsxs","React","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","useState","jsx","jsxs","useState","jsx","jsxs","useState","jsx","jsxs","useState","DownloadIcon","jsx","jsxs","DownloadIcon","useState","jsx","jsxs","useState","CopyIcon","React","jsx","jsx","jsxs","CopyIcon","jsx","jsxs","jsx","jsxs","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","jsx","jsxs","CopyIcon","jsx","jsxs","CopyIcon","jsx","jsxs","useState","React","jsx","jsxs","jsx","jsxs","useState","jsx","jsxs","useState","React","ChevronDownIcon","jsx","className","props","ChevronDownIcon","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","PlusIcon","jsx","jsxs","useState","PlusIcon","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","useEffect","useRef","useState","ChevronDownIcon","CollapsibleTrigger","CollapsibleContent","React","jsx","jsxs","jsx","jsxs","useState","useRef","useEffect","ChevronDownIcon","CollapsibleTrigger","CollapsibleContent","React","Check","jsx","Check","jsx","jsxs","CollapsibleTrigger","CollapsibleContent","ChevronRightIcon","jsx","jsxs","CollapsibleTrigger","ChevronRightIcon","CollapsibleContent","item","jsx","jsxs","CollapsibleContent","CollapsibleTrigger","ChevronRightIcon","PlusIcon","jsx","jsxs","CollapsibleTrigger","ChevronRightIcon","CollapsibleContent","PlusIcon","ChevronDownIcon","StarIcon","React","jsx","Separator","jsx","jsxs","CollapsibleTrigger","ChevronDownIcon","CollapsibleContent","Separator","StarIcon","useState","jsx","jsxs","useState","CollapsibleContent","CollapsibleTrigger","ChevronUpIcon","jsx","jsxs","CollapsibleTrigger","ChevronUpIcon","CollapsibleContent","ChevronRightIcon","SettingsIcon","UserIcon","jsx","jsxs","UserIcon","CollapsibleTrigger","SettingsIcon","ChevronRightIcon","CollapsibleContent","ChevronDownIcon","React","Circle","jsx","RadioGroup","Circle","jsx","jsxs","items","CollapsibleTrigger","ChevronDownIcon","Separator","CollapsibleContent","RadioGroup","useState","ChevronsUpDownIcon","React","jsx","jsxs","jsxs","jsx","React","jsx","jsx","jsxs","useState","ChevronsUpDownIcon","Fragment","useId","useState","CheckIcon","ChevronsUpDownIcon","jsx","jsxs","useId","useState","ChevronsUpDownIcon","Fragment","CheckIcon","Fragment","useId","useState","CheckIcon","ChevronsUpDownIcon","jsx","jsxs","items","useId","useState","ChevronsUpDownIcon","Fragment","CheckIcon","useId","useState","ChevronsUpDownIcon","jsx","jsxs","useId","useState","Icon","ChevronsUpDownIcon","useId","useState","ChevronsUpDownIcon","jsx","jsxs","frameworks","useId","useState","ChevronsUpDownIcon","useId","useState","CheckIcon","ChevronsUpDownIcon","PlusIcon","jsx","jsxs","useId","useState","ChevronsUpDownIcon","CheckIcon","PlusIcon","useId","useState","CheckIcon","ChevronsUpDownIcon","jsx","jsxs","useId","useState","ChevronsUpDownIcon","CheckIcon","useId","useState","CheckIcon","ChevronsUpDownIcon","jsx","jsxs","users","useId","useState","ChevronsUpDownIcon","CheckIcon","useId","useState","CheckIcon","ChevronDownIcon","jsx","jsxs","useId","useState","ChevronDownIcon","CheckIcon","useId","useState","CheckIcon","ChevronsUpDownIcon","Slot","cva","jsx","cva","Slot","jsx","jsxs","frameworks","useId","useState","ChevronsUpDownIcon","CheckIcon","useState","React","jsx","jsx","jsxs","useState","useState","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","React","Check","jsx","jsxs","Check","jsx","jsxs","data","columns","useState","useReactTable","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","flexRender","useState","ChevronDownIcon","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","jsx","jsxs","data","columns","useState","useReactTable","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","ChevronDownIcon","flexRender","useState","ChevronDownIcon","ChevronUpIcon","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","jsx","jsxs","data","columns","useState","useReactTable","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","flexRender","ChevronUpIcon","ChevronDownIcon","useState","flexRender","getCoreRowModel","getSortedRowModel","useReactTable","jsx","jsxs","data","columns","useState","useReactTable","getCoreRowModel","getSortedRowModel","flexRender","useState","useId","ChevronDownIcon","ChevronUpIcon","flexRender","getCoreRowModel","getSortedRowModel","useReactTable","jsx","jsxs","data","columns","useState","useReactTable","getCoreRowModel","getSortedRowModel","columnOrder","useId","flexRender","ChevronUpIcon","ChevronDownIcon","Fragment","ChevronDownIcon","ChevronUpIcon","flexRender","getCoreRowModel","useReactTable","jsx","jsxs","data","columns","ChevronUpIcon","ChevronDownIcon","useReactTable","getCoreRowModel","flexRender","Fragment","useEffect","useState","flexRender","getCoreRowModel","getFilteredRowModel","getSortedRowModel","useReactTable","jsx","jsxs","initialValue","useState","useEffect","columns","data","useReactTable","getCoreRowModel","getSortedRowModel","getFilteredRowModel","flexRender","React","jsx","useId","jsx","jsxs","useId","useId","useState","CheckIcon","MinusIcon","CheckboxPrimitive","jsx","jsxs","Checkbox","CheckboxPrimitive","MinusIcon","CheckIcon","useState","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","jsx","jsxs","useState","jsx","jsxs","useState","useId","jsx","jsxs","useId","jsx","jsxs","jsx","jsxs","Icon","jsx","jsxs","HeartIcon","StarIcon","CheckboxPrimitive","jsx","jsxs","CircleCheckIcon","CheckboxPrimitive","jsx","jsxs","jsx","jsxs","jsx","jsxs","Icon","useEffect","useState","CheckIcon","MinusIcon","CheckboxPrimitive","jsx","jsxs","items","Checkbox","CheckboxPrimitive","MinusIcon","CheckIcon","useState","useEffect","checked","useId","jsx","jsxs","useId","jsx","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","jsx","jsxs","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","UserIcon","jsx","jsxs","useId","UserIcon","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useState","jsx","jsxs","useState","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","DownloadIcon","jsx","jsxs","useId","DownloadIcon","useId","jsx","jsxs","useId","useId","useState","jsx","jsxs","useState","useId","useId","useState","jsx","jsxs","maxLength","initialValue","useState","useId","useId","useRef","useState","jsx","jsxs","useState","useRef","useId","useId","jsx","jsxs","useId","useId","SearchIcon","jsx","jsxs","useId","SearchIcon","useEffect","useId","useState","LoaderCircleIcon","SearchIcon","jsx","jsxs","useState","useId","useEffect","SearchIcon","LoaderCircleIcon","MinusIcon","PlusIcon","Button","Group","Input","Label","jsx","jsxs","MinusIcon","PlusIcon","Button","Group","Input","Label","NumberField","jsx","jsxs","MinusIcon","PlusIcon","Button","Group","Input","Label","NumberField","jsx","jsxs","MinusIcon","PlusIcon","Button","Group","Input","Label","NumberField","jsx","jsxs","MinusIcon","PlusIcon","Button","Group","Input","Label","NumberField","jsx","jsxs","ChevronDownIcon","ChevronUpIcon","Button","Group","Input","Label","NumberField","jsx","jsxs","useId","useMemo","useState","CheckIcon","EyeIcon","EyeOffIcon","XIcon","jsx","jsxs","useState","useId","useMemo","EyeOffIcon","EyeIcon","CheckIcon","XIcon","useId","jsx","jsxs","useId","useId","withMask","jsx","jsxs","useId","withMask","useId","CreditCardIcon","usePaymentInputs","images","jsx","jsxs","useId","usePaymentInputs","images","CreditCardIcon","useId","usePaymentInputs","jsx","jsxs","useId","usePaymentInputs","useId","usePaymentInputs","jsx","jsxs","useId","usePaymentInputs","useId","CreditCardIcon","usePaymentInputs","images","jsx","jsxs","useId","usePaymentInputs","images","CreditCardIcon","useId","React","jsx","jsxs","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useEffect","useId","useState","jsx","jsxs","useState","useId","useEffect","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","useId","jsx","jsxs","useId","React","ChevronRight","jsx","jsxs","ChevronRight","jsx","jsxs","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","pages","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","pages","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","ChevronLeftIcon","ChevronRightIcon","ChevronFirstIcon","ChevronLastIcon","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","ChevronFirstIcon","ChevronLeftIcon","ChevronRightIcon","ChevronLastIcon","useId","ChevronFirstIcon","ChevronLastIcon","ChevronLeftIcon","ChevronRightIcon","jsx","jsxs","pages","useId","ChevronFirstIcon","ChevronLeftIcon","ChevronRightIcon","ChevronLastIcon","StarIcon","React","jsx","jsx","jsxs","StarIcon","Separator","jsx","jsxs","DollarSignIcon","jsx","jsxs","DollarSignIcon","useState","React","jsx","jsxs","jsx","jsxs","useState","jsx","jsxs","useEffect","useState","DownloadIcon","jsx","jsxs","useState","useEffect","DownloadIcon","jsx","jsxs","jsx","jsxs","useState","jsx","jsxs","useState","useEffect","useState","LoaderCircleIcon","SearchIcon","jsx","jsxs","users","useState","useEffect","SearchIcon","LoaderCircleIcon","useState","CircleIcon","jsx","jsxs","useState","Separator","CircleIcon","ChevronRightIcon","jsx","jsxs","ChevronRightIcon","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","jsx","jsxs","RadioGroup","useId","jsx","jsxs","useId","items","RadioGroup","useId","jsx","jsxs","useId","items","RadioGroup","useId","jsx","jsxs","useId","items","RadioGroup","useId","jsx","jsxs","useId","RadioGroup","useId","jsx","jsxs","useId","RadioGroup","useId","UserIcon","jsx","jsxs","useId","RadioGroup","UserIcon","jsx","jsx","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","StarIcon","jsx","jsxs","StarIcon","jsx","jsxs","useState","XIcon","jsx","jsxs","useState","XIcon","useState","useId","jsx","jsxs","useState","useId","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","CheckCircleIcon","jsx","jsxs","CheckCircleIcon","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","toast","jsx","toast","toast","jsx","jsxs","toast","toast","jsx","jsxs","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","jsxs","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","toast","jsx","toast","React","jsx","React","jsx","React","cva","jsx","cva","React","cva","jsx","cva","React","ChevronDown","jsx","jsxs","ChevronDown","React","Slot","jsx","Slot","toast","jsx","jsxs","FormSchema","data","toast","RadioGroup","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","CheckboxFormDemo","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","data","toast","CheckCheckIcon","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","z","useForm","zodResolver","toast","CheckCheckIcon","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","useState","CheckCheckIcon","CheckIcon","ChevronsUpDownIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","useState","toast","CheckCheckIcon","ChevronsUpDownIcon","CheckIcon","CheckCheckIcon","format","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","format","CheckCheckIcon","zodResolver","useForm","toast","z","jsx","jsxs","FormSchema","z","useForm","zodResolver","toast","CheckCheckIcon","RadioGroup","jsx","jsxs","useState","jsx","jsxs","avatars","useState","jsx","jsxs","Trash2Icon","jsx","jsxs","Trash2Icon","ChevronDownIcon","ChevronUpIcon","jsx","jsxs","ChevronUpIcon","ChevronDownIcon","useState","jsx","jsxs","useState","useState","jsx","jsxs","useState","React","Slot","cva","React","React","cva","jsx","jsxs","jsx","cva","jsxs","jsx","jsxs","open","Separator","Slot","cva"]}
|