@bergetai/ui 0.1.79 → 0.1.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +512 -396
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -28
- package/dist/index.d.ts +40 -28
- package/dist/index.js +514 -400
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css +231 -38
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/button/Button.tsx","../src/lib/utils.ts","../src/primitives/button.tsx","../src/components/icon/Icon.tsx","../src/components/typography/Typography.tsx","../src/components/card/Card.tsx","../src/primitives/card.tsx","../src/components/badge/Badge.tsx","../src/components/alert/Alert.tsx","../src/primitives/alert.tsx","../src/components/input/Input.tsx","../src/primitives/input.tsx","../src/components/checkbox/Checkbox.tsx","../src/primitives/checkbox.tsx","../src/components/switch/Switch.tsx","../src/components/select/Select.tsx","../src/primitives/select.tsx","../src/components/text-area/TextArea.tsx","../src/primitives/textarea.tsx","../src/primitives/label.tsx","../src/primitives/field.tsx","../src/primitives/separator.tsx","../src/components/link/Link.tsx","../src/components/section/Section.tsx","../src/components/container/Container.tsx","../src/components/section-header/SectionHeader.tsx","../src/components/grid/Grid.tsx","../src/components/box/Box.tsx","../src/components/berget-logo/BergetLogo.tsx","../src/components/header/Header.tsx","../src/components/language-select/LanguageSelect.tsx","../src/components/feature-cards/FeatureCards.tsx","../src/components/list/List.tsx","../src/components/divider/Divider.tsx","../src/components/hero-block/HeroBlock.tsx","../src/components/stat-card/StatCard.tsx","../src/components/code-block/CodeBlock.tsx","../src/lib/shiki.ts","../src/lib/shiki-theme.ts"],"sourcesContent":["// Actions\nexport { Button, buttonVariants } from './components/button';\nexport type { ButtonProps } from './components/button';\n\n// Display\nexport { Typography, typographyVariants } from './components/typography';\nexport type { TypographyProps } from './components/typography';\n\nexport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n cardVariants,\n} from './components/card';\nexport type { CardProps } from './components/card';\n\nexport { Badge, badgeVariants } from './components/badge';\nexport type { BadgeProps } from './components/badge';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants } from './components/alert';\nexport type { AlertProps, AlertTitleProps, AlertDescriptionProps } from './components/alert';\n\n// Forms\nexport { Input } from './components/input';\nexport type { InputProps } from './components/input';\n\nexport { Checkbox, checkboxVariants } from './components/checkbox';\nexport type { CheckboxProps } from './components/checkbox';\n\nexport { Switch, switchRootVariants, switchThumbVariants } from './components/switch';\nexport type { SwitchProps } from './components/switch';\n\nexport { Select, selectVariants } from './components/select';\nexport type { SelectProps, SelectOption } from './components/select';\n\nexport { TextArea, textAreaVariants } from './components/text-area';\nexport type { TextAreaProps } from './components/text-area';\n\nexport { Label } from './components/label';\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n} from './components/field';\n\nexport { Link, linkVariants } from './components/link';\nexport type { LinkProps } from './components/link';\n\n// Layout\nexport { Section, sectionVariants } from './components/section';\nexport type { SectionProps } from './components/section';\n\nexport { SectionHeader } from './components/section-header';\nexport type { SectionHeaderProps } from './components/section-header';\n\nexport { Container, containerVariants } from './components/container';\nexport type { ContainerProps } from './components/container';\n\nexport { Grid, gridVariants } from './components/grid';\nexport type {\n GridProps,\n SpacingScale as GridSpacingScale,\n GridColsScale,\n GridRowsScale,\n} from './components/grid';\n\nexport { Box, boxVariants } from './components/box';\nexport type { BoxProps, SpacingScale as BoxSpacingScale } from './components/box';\n\n// Branding\nexport { BergetLogo } from './components/berget-logo';\nexport type { BergetLogoProps } from './components/berget-logo';\n\n// @deprecated Use `BergetLogo` with `variant=\"logotype\"` instead\nexport { BergetLogotype } from './components/berget-logotype';\n// @deprecated Use `BergetLogo` with `variant=\"logotype\"` instead\nexport type { BergetLogotypeProps } from './components/berget-logotype';\n\n// @deprecated Use `BergetLogo` with `variant=\"symbol\"` instead\nexport { BergetSymbol } from './components/berget-symbol';\n// @deprecated Use `BergetLogo` with `variant=\"symbol\"` instead\nexport type { BergetSymbolProps } from './components/berget-symbol';\n\nexport { Icon } from './components/icon';\nexport type { IconProps } from './components/icon';\n\n// Navigation\nexport { Header } from './components/header/Header';\nexport type { HeaderProps, HeaderLink } from './components/header/Header';\n\nexport { LanguageSelect } from './components/language-select';\nexport type { LanguageSelectProps, LanguageSelectOption } from './components/language-select';\n\n// Data\nexport { FeatureCard, FeatureCards } from './components/feature-cards';\nexport type { FeatureCardProps, FeatureCardsProps } from './components/feature-cards';\n\nexport { FeatureList, List, ListItem, ListHeader } from './components/list';\nexport type {\n FeatureListProps,\n ListProps,\n ListItemProps,\n ListHeaderProps,\n} from './components/list';\n\nexport { HeroBlock } from './components/hero-block';\nexport type { HeroBlockProps } from './components/hero-block';\n\nexport { StatCard } from './components/stat-card';\nexport type { StatCardProps } from './components/stat-card';\n\nexport { CodeBlock } from './components/code-block/index';\nexport type { CodeBlockProps } from './components/code-block/index';\n\n// Internal layout primitives (also exported since used by kept components)\nexport type { TerminalExample } from './lib/terminal';\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Button as ButtonPrimitive } from '../../primitives/button';\nimport { Icon } from '../icon';\nimport { Loader2 } from 'lucide-react';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium cursor-pointer transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-berget-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'bg-berget-button-default-bg text-berget-button-default-fg shadow-lg hover:bg-berget-button-default-bg/90 hover:shadow-xl',\n primary:\n 'bg-berget-button-primary-bg text-berget-button-primary-fg shadow-lg hover:bg-berget-button-primary-bg/90 hover:shadow-xl',\n secondary:\n 'bg-berget-button-secondary-bg text-berget-button-secondary-fg shadow hover:bg-berget-button-secondary-bg/80 hover:shadow-lg',\n destructive:\n 'bg-berget-button-destructive-bg text-berget-button-destructive-fg shadow-sm hover:bg-berget-button-destructive-bg/80 hover:shadow',\n highlight:\n 'relative overflow-hidden bg-berget-background border border-berget-border-interactive backdrop-blur-[5px] text-foreground hover:bg-berget-background/80 hover:border-berget-border-interactive-elevated hover:shadow-lg',\n icon: '!flex !flex-row !justify-center !items-center !gap-0 !p-0 !w-[44px] !h-[44px] !bg-berget-button-default-bg !text-berget-button-default-fg shadow-[0px_1px_3px_rgba(0,0,0,0.1),0px_1px_2px_-1px_rgba(0,0,0,0.1)] !rounded-full',\n },\n size: {\n sm: 'h-6 px-3 py-1.5 text-xs [&_svg]:size-4',\n default: 'h-8 px-4 py-2 text-sm [&_svg]:size-6',\n lg: 'h-10 px-5 py-2.5 text-base [&_svg]:size-6',\n icon: '!w-[44px] !h-[44px] !p-0 [&_svg]:size-5',\n },\n width: {\n default: 'w-auto',\n full: 'w-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n width: 'default',\n },\n },\n);\n\ntype BaseButtonProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'aria-label' | 'role'\n> & {\n asChild?: boolean;\n isLoading?: boolean;\n size?: VariantProps<typeof buttonVariants>['size'];\n width?: VariantProps<typeof buttonVariants>['width'];\n};\n\ntype IconButtonProps = BaseButtonProps & {\n variant: 'icon';\n 'aria-label': string;\n};\n\ntype RegularButtonProps = BaseButtonProps & {\n variant?: Exclude<VariantProps<typeof buttonVariants>['variant'], 'icon'>;\n 'aria-label'?: string;\n};\n\nexport type ButtonProps = IconButtonProps | RegularButtonProps;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n width,\n asChild = false,\n isLoading = false,\n type = 'button',\n children,\n ...props\n },\n ref,\n ) => {\n const isHighlight = variant === 'highlight';\n const isIcon = variant === 'icon';\n\n if (asChild) {\n return (\n <ButtonPrimitive\n className={cn(buttonVariants({ variant, size, width }), className)}\n ref={ref}\n asChild\n type={type}\n aria-disabled={isLoading || undefined}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {children}\n </ButtonPrimitive>\n );\n }\n\n return (\n <ButtonPrimitive\n className={cn(buttonVariants({ variant, size, width }), className)}\n ref={ref}\n type={type}\n aria-disabled={isLoading || undefined}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {isHighlight && (\n <>\n <div className=\"absolute inset-0 top-[1px] h-[calc(100%-1px)] w-full bg-[radial-gradient(100%_100%_at_49.87%_0%,color-mix(in_oklch,var(--berget-foreground)_4%,transparent)_0%,transparent_100%)] pointer-events-none\" />\n <div className=\"absolute top-0 left-0 right-0 h-[1px] bg-[radial-gradient(55.66%_112.5%_at_50%_0%,var(--berget-foreground)_0%,transparent_92.4%)] opacity-[0.3] pointer-events-none\" />\n </>\n )}\n <span\n className={cn(\n 'inline-flex items-center',\n !isIcon && 'gap-2',\n isHighlight && 'relative z-10',\n )}\n >\n {isLoading ? (\n <>\n <Icon icon={Loader2} size={16} className=\"animate-spin\" aria-hidden={true} />\n {!isIcon && children}\n </>\n ) : (\n children\n )}\n </span>\n </ButtonPrimitive>\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\n// Extend tailwind-merge to recognise custom utilities from @theme.\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n rounded: [\n 'rounded-berget-none',\n 'rounded-berget-xs',\n 'rounded-berget-sm',\n 'rounded-berget-md',\n 'rounded-berget-lg',\n 'rounded-berget-full',\n ],\n 'font-size': ['text-h1', 'text-h2', 'text-h3', 'text-h4', 'text-p', 'text-mono'],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\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 ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground 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-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: '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>, 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 className={cn(buttonVariants({ variant, size }), className)} ref={ref} {...props} />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as React from 'react';\nimport { LucideIcon, LucideProps } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\nexport interface IconProps extends Omit<LucideProps, 'size'> {\n icon: LucideIcon;\n size: 16 | 24 | 32;\n className?: string;\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n}\n\nconst iconStrokeMap: Record<IconProps['size'], number> = {\n 16: 1.4,\n 24: 1.6,\n 32: 1.8,\n};\n\nconst Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n icon: IconComponent,\n size,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden = true,\n ...props\n },\n ref,\n ) => {\n const strokeWidth = iconStrokeMap[size];\n const sizeClass = size === 16 ? 'w-4 h-4' : size === 24 ? 'w-6 h-6' : 'w-8 h-8';\n\n const ariaAttributes = ariaLabel ? { 'aria-label': ariaLabel } : { 'aria-hidden': ariaHidden };\n\n return (\n <IconComponent\n ref={ref}\n className={cn(sizeClass, className)}\n strokeWidth={strokeWidth}\n {...ariaAttributes}\n {...props}\n />\n );\n },\n);\n\nIcon.displayName = 'Icon';\n\nexport { Icon };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst typographyVariants = cva('', {\n variants: {\n variant: {\n // Fluid heading scale — use @theme tokens (clamp-based, 390px → 1440px)\n h1: 'text-h1 font-h1 leading-h1 tracking-h1 text-balance',\n h2: 'text-h2 font-h2 leading-h2 tracking-h2 text-balance',\n h3: 'text-h3 font-h3 leading-h3 tracking-h3 text-balance',\n h4: 'text-h4 font-h4 leading-h4 tracking-h4 text-balance',\n // Static sans-serif sub-heading\n h5: 'text-xl font-xl leading-xl text-balance',\n // Body and UI text — use @theme tokens where available\n large: 'text-lg font-lg leading-lg text-pretty',\n body: 'text-p font-p leading-p text-pretty',\n small: 'text-sm font-sm leading-sm text-pretty',\n xs: 'text-xs font-xs leading-xs text-pretty',\n // Monospaced — use @theme token\n mono: 'text-mono font-mono leading-mono text-pretty',\n // Inline code / spec labels\n code: 'text-xs font-mono',\n },\n color: {\n default: 'text-berget-foreground',\n muted: 'text-berget-muted-foreground',\n dim: 'text-berget-foreground/50',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n },\n});\n\nconst defaultElementMap: Record<string, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'span'> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n large: 'p',\n body: 'p',\n small: 'p',\n xs: 'p',\n mono: 'p',\n code: 'span',\n};\n\nexport interface TypographyProps\n extends\n Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof typographyVariants> {\n as?: React.ElementType;\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ className, variant = 'body', color = 'default', as, children, ...props }, ref) => {\n const Component = (as ?? defaultElementMap[variant ?? 'body'] ?? 'p') as\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'p'\n | 'span';\n return (\n <Component\n className={cn(typographyVariants({ variant, color }), className)}\n ref={ref as any}\n {...(props as any)}\n >\n {children}\n </Component>\n );\n },\n);\nTypography.displayName = 'Typography';\n\nexport { Typography, typographyVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport {\n Card as CardPrimitive,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from '../../primitives/card';\n\nconst cardVariants = cva('rounded-berget-sm', {\n variants: {\n variant: {\n outlined: 'bg-transparent border border-berget-border',\n filled: 'bg-berget-card-filled-bg border border-berget-border',\n },\n padding: {\n none: 'p-0',\n sm: 'p-3 sm:p-4',\n md: 'p-4 sm:p-6',\n lg: 'p-6 sm:p-8',\n },\n },\n defaultVariants: {\n variant: 'outlined',\n padding: 'md',\n },\n});\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, children, ...props }, ref) => {\n return (\n <CardPrimitive\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n >\n {children}\n </CardPrimitive>\n );\n },\n);\nCard.displayName = 'Card';\n\nexport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n ),\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h2 ref={ref} className={cn('text-2xl leading-none tracking-tight', className)} {...props} />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center whitespace-nowrap rounded-full transition-colors focus:outline-none focus:ring-1 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'px-8',\n tag: 'px-4',\n semantic: 'px-3',\n },\n status: {\n default: 'bg-berget-badge-default-bg text-berget-badge-default-fg',\n active: 'bg-berget-badge-active-bg text-berget-badge-active-fg',\n tagDefault: 'bg-berget-badge-tag-default-bg text-berget-badge-tag-default-fg',\n tagActive: 'bg-berget-badge-tag-active-bg text-berget-badge-tag-active-fg',\n tagGhost: 'bg-berget-badge-tag-ghost-bg text-berget-badge-tag-ghost-fg',\n info: 'berget-tint berget-tint-info',\n success: 'berget-tint berget-tint-success',\n warning: 'berget-tint berget-tint-warning',\n error: 'berget-tint berget-tint-error',\n },\n size: {\n sm: 'text-xs h-6',\n md: 'text-sm h-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n status: 'default',\n size: 'md',\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {\n icon?: React.ReactNode;\n iconGap?: number;\n}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant, status, size, icon, iconGap = 2, children, ...props }, ref) => {\n return (\n <div className={cn(badgeVariants({ variant, status, size }), className)} ref={ref} {...props}>\n {icon && <div style={{ marginRight: children ? `${iconGap * 0.25}rem` : '0' }}>{icon}</div>}\n {children}\n </div>\n );\n },\n);\nBadge.displayName = 'Badge';\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Alert as AlertPrimitive, AlertTitle, AlertDescription } from '../../primitives/alert';\n\nconst alertVariants = cva('', {\n variants: {\n variant: {\n default: 'border-berget-border',\n info: 'berget-tint berget-tint-info',\n success: 'berget-tint berget-tint-success',\n warning: 'berget-tint berget-tint-warning',\n destructive: 'berget-tint berget-tint-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <AlertPrimitive ref={ref} className={cn(alertVariants({ variant }), className)} {...props} />\n ),\n);\nAlert.displayName = 'Alert';\n\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4',\n {\n variants: {\n variant: {\n default: '',\n destructive: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn('mb-1 leading-none tracking-tight', className)} {...props} />\n ),\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Input as InputPrimitive } from '../../primitives/input';\nimport { Typography } from '../typography';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n icon?: React.ReactNode;\n actionButton?: React.ReactNode;\n label?: string;\n description?: string;\n error?: string;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, icon, actionButton, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n const errorId = `${inputId}-error`;\n const descriptionId = `${inputId}-description`;\n\n const inputElement = (\n <InputPrimitive\n ref={ref}\n id={inputId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n 'isolate rounded-berget-xs bg-card focus-visible:border-berget-form-focus-border focus-visible:ring-0 focus-visible:ring-offset-0 hover:bg-berget-surface-hover transition-colors duration-200 px-3 sm:px-4 py-2 sm:py-2.5 text-sm',\n icon && 'pl-10',\n actionButton && 'pr-12',\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n disabled && 'cursor-not-allowed',\n className,\n )}\n {...props}\n />\n );\n\n if (!icon && !actionButton) {\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n {inputElement}\n {(description || error) && (\n <div className=\"flex flex-col gap-1\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {error && (\n <Typography\n variant=\"xs\"\n id={errorId}\n className=\"text-berget-destructive-foreground\"\n >\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n <div className=\"relative w-full\">\n {icon && <div className=\"absolute left-3 top-1/2 -translate-y-1/2\">{icon}</div>}\n {inputElement}\n {actionButton && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">{actionButton}</div>\n )}\n </div>\n {(description || error) && (\n <div className=\"flex flex-col gap-1\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input };\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-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file: file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 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 CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Checkbox as CheckboxBase } from '../../primitives/checkbox';\nimport { Typography } from '../typography';\n\nconst checkboxVariants = cva(\n 'inline-flex items-center justify-center rounded-md transition-all duration-200 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'text-foreground border border-berget-border-interactive bg-berget-surface-subtle hover:bg-berget-surface-raised',\n error:\n 'border border-berget-destructive-border bg-berget-destructive text-berget-destructive-foreground hover:bg-berget-destructive/90',\n success:\n 'border border-berget-success-border bg-berget-success text-berget-success-foreground hover:bg-berget-success/90',\n },\n size: {\n sm: 'w-4 h-4',\n default: 'w-5 h-5',\n lg: 'w-6 h-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface CheckboxProps\n extends\n Omit<React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, 'className'>,\n VariantProps<typeof checkboxVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Checkbox = React.forwardRef<React.ComponentRef<typeof CheckboxPrimitive.Root>, CheckboxProps>(\n ({ className, variant, size, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n const errorId = `${checkboxId}-error`;\n\n return (\n <div className=\"flex items-start gap-3\">\n <div className=\"relative flex items-start pt-0.5\">\n <CheckboxBase\n ref={ref}\n id={checkboxId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n className={cn(\n checkboxVariants({ variant, size }),\n 'cursor-pointer',\n disabled && 'cursor-not-allowed pointer-events-none',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator>\n <Check\n className=\"h-4 w-4 text-current stroke-current\"\n style={{ color: 'currentColor', stroke: 'currentColor' }}\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxBase>\n </div>\n\n {(label || description || error) && (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled\n ? 'text-white/40 cursor-not-allowed'\n : variant === 'error'\n ? 'text-berget-destructive-foreground cursor-pointer'\n : variant === 'success'\n ? 'text-berget-success-foreground cursor-pointer'\n : 'cursor-pointer',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <Typography variant=\"xs\" color=\"muted\">\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox, checkboxVariants };\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, children, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {children ?? (\n <CheckboxPrimitive.Indicator className={cn('grid place-content-center')}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n )}\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nconst CheckboxIndicator = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Indicator>\n>(({ className, children, ...props }, ref) => (\n <CheckboxPrimitive.Indicator\n ref={ref}\n className={cn('grid place-content-center', className)}\n {...props}\n >\n {children ?? <Check className=\"h-4 w-4\" />}\n </CheckboxPrimitive.Indicator>\n));\nCheckboxIndicator.displayName = CheckboxPrimitive.Indicator.displayName;\n\nexport { Checkbox, CheckboxIndicator };\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst switchRootVariants = cva(\n 'peer inline-flex 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-berget-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'data-[state=unchecked]:bg-berget-border data-[state=checked]:bg-berget-secondary',\n primary:\n 'data-[state=unchecked]:bg-berget-border-subtle data-[state=checked]:bg-berget-switch-primary-checked',\n subtle:\n 'data-[state=unchecked]:bg-berget-border-subtle data-[state=checked]:bg-berget-switch-subtle-checked',\n },\n size: {\n sm: 'h-5 w-9',\n default: 'h-6 w-11',\n lg: 'h-7 w-[52px]',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst switchThumbVariants = cva(\n 'pointer-events-none block rounded-full ring-0 transition-transform shadow-berget-sm bg-berget-foreground',\n {\n variants: {\n size: {\n sm: 'h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n default: 'h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n lg: 'h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport interface SwitchProps\n extends\n Omit<React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>, 'className'>,\n VariantProps<typeof switchRootVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, variant, size, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const switchId = id || generatedId;\n const errorId = `${switchId}-error`;\n\n return (\n <div className=\"flex items-center gap-3\">\n <SwitchPrimitives.Root\n ref={ref}\n id={switchId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n className={cn(\n switchRootVariants({ variant, size }),\n disabled && 'cursor-not-allowed pointer-events-none',\n className,\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitives.Root>\n\n {(label || description || error) && (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled\n ? 'text-muted-foreground cursor-not-allowed'\n : error\n ? 'text-berget-destructive-foreground cursor-pointer'\n : 'text-foreground cursor-pointer',\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <Typography variant=\"xs\" color=\"muted\">\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nSwitch.displayName = 'Switch';\n\nexport { Switch, switchRootVariants, switchThumbVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Typography } from '../typography';\nimport {\n Select as SelectRoot,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n} from '../../primitives/select';\n\nconst selectVariants = cva(\n 'flex w-full items-center justify-between rounded-berget-xs border bg-card px-4 py-3 text-sm transition-colors duration-200 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:border-berget-form-focus-border disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-berget-border-interactive hover:bg-berget-surface-hover',\n primary:\n 'border-berget-primary-border bg-berget-primary-tint hover:bg-berget-surface-hover',\n subtle: 'border-berget-border-subtle hover:bg-berget-surface-hover',\n muted: 'border-berget-border-subtle/50 hover:bg-berget-surface-hover',\n },\n size: {\n sm: 'px-3 py-2 text-xs',\n default: 'px-4 py-3 text-sm',\n lg: 'px-5 py-4 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends VariantProps<typeof selectVariants> {\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n options: SelectOption[];\n id?: string;\n disabled?: boolean;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n required?: boolean;\n className?: string;\n}\n\nconst Select = React.forwardRef<React.ComponentRef<typeof SelectTrigger>, SelectProps>(\n (\n {\n className,\n variant,\n size,\n label,\n description,\n error,\n placeholder,\n options,\n id,\n disabled,\n value,\n defaultValue,\n onValueChange,\n name,\n required,\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const selectId = id || generatedId;\n const errorId = `${selectId}-error`;\n const descriptionId = `${selectId}-description`;\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={selectId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n\n <SelectRoot\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n name={name}\n required={required}\n >\n <SelectTrigger\n ref={ref}\n id={selectId}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n selectVariants({ variant, size }),\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n className,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map((option) => (\n <SelectItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n );\n },\n);\nSelect.displayName = 'Select';\n\nexport { Select, selectVariants };\n","'use client';\n\nimport * 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-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:border-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('flex cursor-default items-center justify-center py-1', className)}\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('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = 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('py-1.5 pl-8 pr-2 text-sm ', 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-8 pr-2 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 left-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\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 * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Textarea as TextAreaPrimitive } from '../../primitives/textarea';\nimport { Typography } from '../typography';\n\nconst textAreaVariants = cva(\n 'rounded-berget-xs bg-card px-4 py-3 transition-colors duration-200 focus-visible:border-berget-form-focus-border focus-visible:ring-0 focus-visible:ring-offset-0 resize-y',\n {\n variants: {\n variant: {\n default: 'border-berget-border-interactive hover:bg-berget-surface-hover',\n primary:\n 'border-berget-primary-border bg-berget-primary-tint hover:bg-berget-surface-hover',\n subtle: 'border-berget-border-subtle hover:bg-berget-surface-hover',\n muted: 'border-berget-border-subtle/50 hover:bg-berget-surface-hover',\n },\n size: {\n sm: 'px-3 py-2 sm:px-4 sm:py-2.5 text-xs sm:text-sm',\n default: 'px-4 py-3 sm:py-3.5 text-sm',\n lg: 'px-5 py-4 sm:py-5 text-base sm:text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface TextAreaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textAreaVariants> {\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n maxLength?: number;\n showCount?: boolean;\n rows?: number;\n icon?: React.ReactNode;\n secondaryIcon?: React.ReactNode;\n actionButton?: React.ReactNode;\n}\n\nconst TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n variant,\n size,\n label,\n description,\n error,\n placeholder,\n maxLength,\n showCount,\n rows,\n id,\n disabled,\n value,\n icon,\n secondaryIcon,\n actionButton,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const textareaId = id || generatedId;\n const errorId = `${textareaId}-error`;\n const descriptionId = `${textareaId}-description`;\n const characterCount = typeof value === 'string' ? value.length : 0;\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={textareaId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n {icon && <div className=\"absolute left-2 top-1/2 -translate-y-1/2\">{icon}</div>}\n <TextAreaPrimitive\n ref={ref}\n id={textareaId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n textAreaVariants({ variant, size }),\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n disabled && 'cursor-not-allowed',\n icon && 'pl-11',\n secondaryIcon && 'pr-20',\n actionButton && !secondaryIcon && 'pr-12',\n secondaryIcon && actionButton && 'pr-20',\n className,\n )}\n placeholder={placeholder}\n maxLength={maxLength}\n rows={rows}\n value={value}\n {...props}\n />\n {secondaryIcon && (\n <div className=\"absolute right-12 top-1/2 -translate-y-1/2\">{secondaryIcon}</div>\n )}\n {actionButton && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">{actionButton}</div>\n )}\n </div>\n\n {(description || error || (showCount && maxLength)) && (\n <div className=\"flex items-center justify-between gap-2\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {(error || (showCount && maxLength)) && (\n <div className=\"flex items-center gap-2 ml-auto\">\n {showCount && maxLength && (\n <Typography\n variant=\"xs\"\n className={cn(\n characterCount >= maxLength\n ? 'text-berget-destructive-foreground'\n : 'text-muted-foreground',\n )}\n >\n {characterCount}/{maxLength}\n </Typography>\n )}\n {error && (\n <Typography\n variant=\"xs\"\n id={errorId}\n className=\"text-berget-destructive-foreground\"\n >\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nTextArea.displayName = 'TextArea';\n\nexport { TextArea, textAreaVariants };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, React.ComponentProps<'textarea'>>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\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> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import { useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/primitives/label';\nimport { Separator } from '@/primitives/separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-6',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-3 font-medium',\n 'data-[variant=legend]:text-base',\n 'data-[variant=label]:text-sm',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field data-[invalid=true]:text-destructive flex w-full gap-3', {\n variants: {\n orientation: {\n vertical: ['flex-col [&>*]:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '[&>[data-slot=field-label]]:flex-auto',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start',\n ],\n responsive: [\n '@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n '@md/field-group:[&>[data-slot=field-label]]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-1.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4',\n 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance',\n 'nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\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>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\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));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { ExternalLink } from 'lucide-react';\n\nconst linkVariants = cva(\n 'inline-flex items-center gap-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'text-foreground hover:text-foreground/80',\n primary: 'text-berget-secondary hover:text-berget-secondary/80',\n secondary: 'text-berget-accent hover:text-berget-accent/80',\n ghost: 'text-muted-foreground hover:text-foreground',\n muted: 'text-muted-foreground hover:text-muted-foreground/80',\n code: 'text-berget-secondary hover:text-berget-secondary/80 font-mono text-sm bg-berget-primary-tint px-2 py-1 rounded hover:bg-berget-primary-tint-hover',\n },\n size: {\n sm: 'text-sm',\n default: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof linkVariants> {\n children: React.ReactNode;\n external?: boolean;\n icon?: React.ReactNode;\n showExternalIcon?: boolean;\n disabled?: boolean;\n}\n\nconst Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n className,\n variant,\n size,\n external = false,\n icon,\n showExternalIcon = false,\n disabled = false,\n children,\n ...props\n },\n ref,\n ) => {\n const isExternal =\n external ||\n (typeof props.href === 'string' &&\n (props.href.startsWith('http://') ||\n props.href.startsWith('https://') ||\n props.href.startsWith('mailto:') ||\n props.href.startsWith('tel:')));\n\n return (\n <a\n ref={ref}\n className={cn(linkVariants({ variant, size }), className)}\n {...(disabled && {\n 'aria-disabled': true,\n onClick: (e: React.MouseEvent) => e.preventDefault(),\n })}\n {...props}\n {...(isExternal &&\n !disabled && {\n rel: 'noopener noreferrer',\n target: '_blank',\n })}\n >\n {children}\n {icon && <span className=\"inline-flex items-center\">{icon}</span>}\n {showExternalIcon && isExternal && !disabled && (\n <span className=\"inline-flex items-center ml-1 opacity-60\" aria-hidden=\"true\">\n <Icon icon={ExternalLink} size={16} />\n </span>\n )}\n </a>\n );\n },\n);\nLink.displayName = 'Link';\n\nexport { Link, linkVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Container } from '../container';\n\nconst sectionVariants = cva('relative', {\n variants: {\n padding: {\n none: '',\n sm: 'py-12',\n md: 'py-16',\n lg: 'py-24',\n xl: 'py-32',\n },\n background: {\n transparent: '',\n muted: 'bg-berget-section-muted-bg',\n },\n },\n defaultVariants: {\n padding: 'lg',\n background: 'transparent',\n },\n});\n\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof sectionVariants> {\n children: React.ReactNode;\n}\n\nconst Section = React.forwardRef<HTMLElement, SectionProps>(\n ({ className, padding, background, children, ...props }, ref) => {\n return (\n <section\n ref={ref}\n className={cn(sectionVariants({ padding, background }), className)}\n {...props}\n >\n <Container>{children}</Container>\n </section>\n );\n },\n);\nSection.displayName = 'Section';\n\nexport { Section, sectionVariants };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst containerVariants = cva('w-full mx-auto', {\n variants: {\n size: {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-7xl',\n xl: 'max-w-screen-xl',\n full: 'max-w-full',\n },\n padding: {\n none: 'px-0',\n sm: 'px-4 sm:px-6',\n md: 'px-4 sm:px-6 lg:px-8',\n lg: 'px-4 sm:px-8 lg:px-12',\n },\n },\n defaultVariants: {\n size: 'lg',\n padding: 'md',\n },\n});\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof containerVariants> {\n children: React.ReactNode;\n asChild?: boolean;\n}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, size, padding, asChild = false, children, ...props }, ref) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(containerVariants({ size, padding }), className)}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nContainer.displayName = 'Container';\n\nexport { Container, containerVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Badge } from '../badge';\nimport { Typography } from '../typography';\n\nexport interface SectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n description?: string;\n descriptionVariant?: 'h2' | 'h3' | 'h4' | 'large' | 'body';\n tagline?: string;\n action?: React.ReactNode;\n headingLevel?: 'h1' | 'h2' | 'h3' | 'h4';\n id?: string;\n}\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n (\n {\n className,\n title,\n description,\n descriptionVariant = 'large',\n tagline,\n action,\n headingLevel = 'h2',\n id,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n id={id}\n ref={ref}\n className={cn('w-full px-fluid-md py-fluid-xl text-center', className)}\n {...props}\n >\n <div className=\"flex flex-col items-center gap-fluid-lg\">\n <div className=\"max-w-3xl mx-auto flex flex-col items-center gap-fluid-lg\">\n {tagline && (\n <Badge variant=\"default\" className=\"text-sm\">\n {tagline}\n </Badge>\n )}\n\n <div className=\"flex flex-col items-center gap-fluid-sm\">\n <Typography variant={headingLevel}>{title}</Typography>\n\n {description && (\n <Typography variant={descriptionVariant} color=\"muted\">\n {description}\n </Typography>\n )}\n </div>\n </div>\n\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n </div>\n );\n },\n);\nSectionHeader.displayName = 'SectionHeader';\n\nexport { SectionHeader };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst gridVariants = cva('grid', {\n variants: {\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n },\n defaultVariants: {\n align: 'stretch',\n justify: 'start',\n },\n});\n\nexport type SpacingScale =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10\n | 12\n | 16\n | 20\n | 24\n | 32\n | 40\n | 48\n | 56\n | 64\n | 72\n | 80\n | 96;\n\nexport type GridColsScale = 1 | 2 | 3 | 4 | 6 | 12;\n\nexport type GridRowsScale = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface GridProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof gridVariants> {\n children: React.ReactNode;\n cols?: GridColsScale;\n rows?: GridRowsScale;\n gap?: SpacingScale;\n gapX?: SpacingScale;\n gapY?: SpacingScale;\n asChild?: boolean;\n}\n\nconst Grid = React.forwardRef<HTMLElement, GridProps>(\n (\n { className, align, justify, cols, rows, gap, gapX, gapY, asChild = false, children, ...props },\n ref,\n ) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref as React.RefObject<HTMLDivElement>}\n className={cn(\n gridVariants({ align, justify }),\n cols !== undefined && `grid-cols-${cols}`,\n rows !== undefined && `grid-rows-${rows}`,\n gap !== undefined && `gap-${gap}`,\n gapX !== undefined && `gap-x-${gapX}`,\n gapY !== undefined && `gap-y-${gapY}`,\n className,\n )}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nGrid.displayName = 'Grid';\n\nexport { Grid, gridVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst boxVariants = cva('flex', {\n variants: {\n direction: {\n row: 'flex-row',\n column: 'flex-col',\n 'row-reverse': 'flex-row-reverse',\n 'column-reverse': 'flex-col-reverse',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n direction: 'column',\n align: 'start',\n justify: 'start',\n wrap: 'nowrap',\n },\n});\n\nexport type SpacingScale =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10\n | 12\n | 16\n | 20\n | 24\n | 32\n | 40\n | 48\n | 56\n | 64\n | 72\n | 80\n | 96;\n\nexport interface BoxProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof boxVariants> {\n children: React.ReactNode;\n gap?: SpacingScale;\n asChild?: boolean;\n}\n\nconst Box = React.forwardRef<HTMLElement, BoxProps>(\n (\n { className, direction, align, justify, wrap, gap, asChild = false, children, ...props },\n ref,\n ) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref as React.RefObject<HTMLDivElement>}\n className={cn(\n boxVariants({ direction, align, justify, wrap }),\n gap !== undefined && `gap-${gap}`,\n className,\n )}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nBox.displayName = 'Box';\n\nexport { Box, boxVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface BergetLogoProps extends React.SVGAttributes<SVGSVGElement> {\n /** Shape variant */\n variant?: 'logotype' | 'symbol';\n /** Fill color */\n color?: 'white' | 'black';\n /** Size (height) in pixels */\n size?: number;\n}\n\nconst BergetLogo = React.forwardRef<SVGSVGElement, BergetLogoProps>(\n ({ variant = 'logotype', color = 'white', size = 48, className, ...props }, ref) => {\n const fillColor = color === 'white' ? 'var(--berget-logo-light)' : 'var(--berget-logo-dark)';\n\n if (variant === 'symbol') {\n const aspectRatio = 463 / 419;\n const width = size * aspectRatio;\n const height = size;\n\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox=\"0 0 463 419\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Berget symbol\"\n className={cn('inline-block', className)}\n {...props}\n >\n <path\n d=\"M208.739 17L255.261 17L446 403L398 403L313.5 255L261.5 176L233.163 96.1677L237.815 98.6522H226.185L230.837 96.1677L113 331L64.5 403L18 403L208.739 17Z\"\n style={{ fill: fillColor }}\n />\n </svg>\n );\n }\n\n // variant === 'logotype'\n const aspectRatio = 793.63 / 204.37;\n const width = size * aspectRatio;\n const height = size;\n\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox=\"0 0 793.63 204.37\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Berget\"\n className={cn('inline-block', className)}\n {...props}\n >\n <g style={{ fill: fillColor }}>\n <path\n className=\"berget-logotype-fill\"\n d=\"M268.78,172.54v-96.04h37.74c10.39,0,18.26,2.33,23.6,7,5.33,4.67,8.01,10.52,8.01,17.56,0,6.13-1.72,11-5.15,14.61-3.43,3.61-7.58,6.06-12.44,7.34,3.81.73,7.22,2.2,10.22,4.39,3.01,2.2,5.36,4.94,7.08,8.23,1.72,3.29,2.58,6.86,2.58,10.7,0,4.94-1.27,9.4-3.79,13.38-2.53,3.98-6.22,7.11-11.08,9.4-4.86,2.29-10.82,3.43-17.87,3.43h-38.89ZM283.93,117.66h20.74c5.81,0,10.24-1.3,13.29-3.91,3.05-2.61,4.58-6.19,4.58-10.77s-1.51-8.05-4.51-10.7c-3-2.65-7.55-3.98-13.65-3.98h-20.45v29.36ZM283.93,160.61h21.74c6.1,0,10.84-1.37,14.22-4.11,3.38-2.75,5.08-6.59,5.08-11.53s-1.76-8.85-5.29-11.73-8.29-4.32-14.3-4.32h-21.45v31.69Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M382.45,174.19c-6.96,0-13.13-1.49-18.52-4.46-5.39-2.97-9.6-7.11-12.65-12.42-3.05-5.3-4.57-11.48-4.57-18.52s1.5-13.4,4.5-18.79,7.19-9.61,12.58-12.62c5.39-3.02,11.65-4.53,18.81-4.53s13,1.48,18.15,4.46c5.15,2.97,9.16,6.93,12.01,11.87,2.86,4.94,4.29,10.38,4.29,16.33,0,.92-.02,1.9-.07,2.95-.05,1.05-.12,2.22-.22,3.5h-55.19c.48,6.59,2.75,11.59,6.79,15.02,4.05,3.43,8.75,5.14,14.09,5.14,4.29,0,7.89-.93,10.79-2.81,2.91-1.88,5.08-4.41,6.51-7.61h15.16c-1.91,6.4-5.7,11.75-11.37,16.05-5.68,4.3-12.71,6.45-21.09,6.45ZM382.45,114.78c-5.05,0-9.54,1.44-13.44,4.32-3.91,2.88-6.29,7.2-7.15,12.97h40.04c-.29-5.3-2.24-9.51-5.87-12.62-3.62-3.11-8.15-4.67-13.58-4.67Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M425.62,172.54v-68.05h13.59l1.29,12.9c2.47-4.48,5.93-8.03,10.37-10.63,4.43-2.61,9.79-3.91,16.08-3.91v15.23h-4.15c-4.19,0-7.93.67-11.22,1.99-3.29,1.33-5.91,3.57-7.86,6.72-1.96,3.16-2.93,7.53-2.93,13.1v32.65h-15.16Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M500.25,151.69c-3.72,0-7.14-.41-10.29-1.24l-6.15,5.76c1.05.64,2.34,1.19,3.86,1.65,1.52.46,3.66.87,6.43,1.23,2.76.37,6.53.73,11.29,1.1,9.43.82,16.25,3,20.44,6.52,4.2,3.52,6.29,8.21,6.29,14.06,0,4.02-1.12,7.84-3.35,11.45-2.24,3.61-5.72,6.54-10.44,8.78s-10.74,3.36-18.09,3.36c-9.91,0-17.94-1.8-24.09-5.42-6.15-3.62-9.22-9.08-9.22-16.4,0-2.84.78-5.65,2.35-8.44,1.57-2.79,4.08-5.42,7.51-7.89-2-.83-3.74-1.72-5.22-2.68-1.48-.96-2.79-1.94-3.94-2.95v-3.29l12.3-12.07c-5.53-4.57-8.29-10.56-8.29-17.97,0-4.48,1.12-8.58,3.36-12.28,2.24-3.7,5.5-6.65,9.79-8.85,4.29-2.2,9.43-3.29,15.44-3.29,4.01,0,7.72.55,11.15,1.64h26.45v9.6l-12.58.69c2.28,3.75,3.43,7.91,3.43,12.49s-1.13,8.69-3.36,12.35c-2.24,3.66-5.48,6.59-9.72,8.78-4.25,2.2-9.37,3.29-15.37,3.29ZM481.24,181.19c0,3.93,1.81,6.88,5.44,8.85,3.62,1.97,8.15,2.95,13.58,2.95s9.48-1.07,12.72-3.22c3.24-2.15,4.86-5,4.86-8.57,0-2.65-1.09-4.92-3.29-6.79-2.19-1.87-6.34-3.04-12.44-3.5-4.57-.27-8.63-.68-12.15-1.23-3.34,1.74-5.63,3.61-6.86,5.63-1.25,2.01-1.86,3.98-1.86,5.9ZM500.25,140.3c4.38,0,7.93-1.12,10.66-3.36,2.71-2.24,4.07-5.42,4.07-9.53s-1.36-7.41-4.07-9.6c-2.72-2.2-6.27-3.29-10.66-3.29s-8.08,1.1-10.79,3.29c-2.71,2.2-4.08,5.4-4.08,9.6s1.36,7.3,4.08,9.53c2.71,2.24,6.31,3.36,10.79,3.36Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M574.61,174.19c-6.96,0-13.13-1.49-18.52-4.46-5.39-2.97-9.6-7.11-12.65-12.42-3.05-5.3-4.57-11.48-4.57-18.52s1.5-13.4,4.5-18.79c3-5.4,7.19-9.61,12.58-12.62c5.39-3.02,11.65-4.53,18.81-4.53s13,1.48,18.15,4.46c5.15,2.97,9.16,6.93,12.01,11.87,2.86,4.94,4.29,10.38,4.29,16.33,0,.92-.02,1.9-.07,2.95-.05,1.05-.12,2.22-.22,3.5h-55.19c.48,6.59,2.75,11.59,6.79,15.02,4.05,3.43,8.75,5.14,14.09,5.14,4.29,0,7.89-.93,10.79-2.81s5.08-4.41,6.51-7.61h15.16c-1.91,6.4-5.7,11.75-11.37,16.05-5.68,4.3-12.71,6.45-21.09,6.45ZM574.61,114.78c-5.05,0-9.54,1.44-13.44,4.32-3.91,2.88-6.29,7.2-7.15,12.97h40.04c-.29-5.3-2.24-9.51-5.87-12.62-3.62-3.11-8.15-4.67-13.58-4.67Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M646.23,172.54c-6.96,0-12.49-1.62-16.59-4.87-4.1-3.25-6.15-9.03-6.15-17.36v-33.61h-12.16v-12.21h12.16l1.86-17.29h13.29v17.29h20.02v12.21h-20.02v33.61c0,3.75.84,6.33,2.51,7.75,1.67,1.42,4.55,2.13,8.65,2.13h8.14v12.35h-11.72Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M684.4,172.54l36.89-96.04h16.59l36.6,96.04h-16.01l-8.58-23.46h-40.88l-8.58,23.46h-16.01ZM713.28,137.56h32.31l-16.16-43.77-16.16,43.77Z\"\n />\n <path className=\"berget-logotype-fill\" d=\"M778.48,172.54v-96.04h15.15v96.04h-15.15Z\" />\n </g>\n <path\n style={{ fill: fillColor }}\n d=\"M99.9,0h24.37l99.9,202.18h-25.14l-44.26-77.52-27.24-41.38-14.84-41.81,2.44,1.3h-6.09l2.44-1.3-61.72,123-25.4,37.71H0L99.9,0Z\"\n />\n </svg>\n );\n },\n);\n\nBergetLogo.displayName = 'BergetLogo';\n\nexport { BergetLogo };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { type LucideIcon, Menu, X } from 'lucide-react';\nimport { BergetLogo } from '../berget-logo';\nimport { Link } from '../link';\nimport { Box } from '../box';\nimport { Icon } from '../icon';\nimport { LanguageSelect } from '../language-select';\nimport type { LanguageSelectOption } from '../language-select';\nimport { Container } from '../container';\n\nconst headerVariants = cva(\n 'sticky top-0 z-50 header-backdrop backdrop-blur-xl border-b border-berget-border transition-all duration-200',\n {\n variants: {\n variant: {\n default: '',\n transparent: 'border-transparent bg-transparent backdrop-blur-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface HeaderLink {\n label: string;\n href: string;\n icon?: LucideIcon;\n active?: boolean;\n}\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof headerVariants> {\n logo?: React.ReactNode;\n links: HeaderLink[];\n languageOptions: LanguageSelectOption[];\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n}\n\nconst HeaderContext = React.createContext<{\n isMobileMenuOpen: boolean;\n setIsMobileMenuOpen: (open: boolean) => void;\n}>({\n isMobileMenuOpen: false,\n setIsMobileMenuOpen: () => {},\n});\n\nconst useHeaderContext = () => React.useContext(HeaderContext);\n\nconst HeaderLogo = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props}>\n {children}\n </div>\n ),\n);\nHeaderLogo.displayName = 'HeaderLogo';\n\nconst HeaderNav = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n links: HeaderLink[];\n }\n>(({ className, links, ...props }, ref) => {\n return (\n <nav ref={ref} className={cn('hidden md:flex items-center gap-fluid-lg', className)} {...props}>\n <ul className=\"flex items-center gap-fluid-lg\">\n {links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n variant={link.active ? 'primary' : 'default'}\n size=\"sm\"\n className={cn('relative transition-all duration-200', link.active && 'font-medium')}\n >\n {link.icon && (\n <span className=\"inline-flex items-center mr-2\">\n <Icon icon={link.icon} size={16} />\n </span>\n )}\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\nHeaderNav.displayName = 'HeaderNav';\n\nconst HeaderActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n languageOptions: LanguageSelectOption[];\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n }\n>(\n (\n {\n className,\n languageOptions,\n currentLanguage,\n onLanguageChange,\n loginButton,\n ctaButton,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn('hidden md:flex items-center gap-2', className)} {...props}>\n {languageOptions.length > 0 && (\n <LanguageSelect\n options={languageOptions}\n value={currentLanguage}\n onValueChange={onLanguageChange}\n />\n )}\n {loginButton}\n {ctaButton}\n </div>\n );\n },\n);\nHeaderActions.displayName = 'HeaderActions';\n\nconst MobileMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { isMobileMenuOpen, setIsMobileMenuOpen } = useHeaderContext();\n\n return (\n <button\n ref={ref}\n className={cn(\n 'md:hidden flex items-center justify-center w-8 h-8 rounded-full',\n 'cursor-pointer transition-all duration-200',\n 'hover:bg-berget-surface-hover-dark',\n className,\n )}\n onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}\n aria-label={isMobileMenuOpen ? 'Close menu' : 'Open menu'}\n aria-expanded={isMobileMenuOpen}\n aria-controls=\"mobile-menu\"\n {...props}\n >\n {isMobileMenuOpen ? <Icon icon={X} size={16} /> : <Icon icon={Menu} size={16} />}\n </button>\n );\n});\nMobileMenuButton.displayName = 'MobileMenuButton';\n\nconst MobileMenu = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n links: HeaderLink[];\n languageOptions: LanguageSelectOption[];\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n }\n>(\n (\n {\n className,\n links,\n languageOptions,\n currentLanguage,\n onLanguageChange,\n loginButton,\n ctaButton,\n ...props\n },\n ref,\n ) => {\n const { isMobileMenuOpen, setIsMobileMenuOpen } = useHeaderContext();\n\n if (!isMobileMenuOpen) return null;\n\n return (\n <nav\n ref={ref}\n id=\"mobile-menu\"\n aria-label=\"Mobile navigation menu\"\n className={cn(\n 'md:hidden absolute top-full left-0 right-0 bg-berget-background border-b border-berget-border shadow-berget-lg',\n className,\n )}\n {...props}\n >\n <Box direction=\"column\" gap={0} className=\"py-fluid-md\">\n <ul className=\"px-fluid-md pb-fluid-md border-b border-berget-border/50\">\n {links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n variant={link.active ? 'primary' : 'default'}\n className={cn(\n 'w-full py-3 px-4 rounded-lg transition-all duration-200 hover:bg-berget-surface-hover',\n link.active && 'bg-berget-primary-tint font-medium',\n )}\n onClick={() => setIsMobileMenuOpen(false)}\n >\n {link.icon && (\n <span className=\"inline-flex items-center mr-2\">\n <Icon icon={link.icon} size={16} />\n </span>\n )}\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n\n <div className=\"px-fluid-md py-fluid-md\">\n {languageOptions.length > 0 && (\n <div className=\"mb-fluid-md\">\n <LanguageSelect\n options={languageOptions}\n value={currentLanguage}\n onValueChange={onLanguageChange}\n />\n </div>\n )}\n {loginButton && <div className=\"mb-fluid-md w-full\">{loginButton}</div>}\n {ctaButton && <div className=\"w-full\">{ctaButton}</div>}\n </div>\n </Box>\n </nav>\n );\n },\n);\nMobileMenu.displayName = 'MobileMenu';\n\nconst Header = React.forwardRef<HTMLElement, HeaderProps>(\n (\n {\n className,\n variant,\n logo,\n links,\n languageOptions,\n loginButton,\n ctaButton,\n currentLanguage,\n onLanguageChange,\n ...props\n },\n ref,\n ) => {\n const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (isMobileMenuOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = 'unset';\n }\n return () => {\n document.body.style.overflow = 'unset';\n };\n }, [isMobileMenuOpen]);\n\n return (\n <HeaderContext.Provider value={{ isMobileMenuOpen, setIsMobileMenuOpen }}>\n <header ref={ref} className={cn(headerVariants({ variant }), className)} {...props}>\n <Container size=\"xl\">\n <Box direction=\"row\" align=\"center\" justify=\"between\" className=\"h-16\">\n <HeaderLogo>\n {logo || <BergetLogo variant=\"logotype\" color=\"white\" size={32} />}\n </HeaderLogo>\n\n <HeaderNav links={links} />\n\n <Box direction=\"row\" align=\"center\" gap={3}>\n <HeaderActions\n languageOptions={languageOptions}\n currentLanguage={currentLanguage}\n onLanguageChange={onLanguageChange}\n loginButton={loginButton}\n ctaButton={ctaButton}\n />\n\n {ctaButton && <div className=\"md:hidden\">{ctaButton}</div>}\n\n <MobileMenuButton />\n </Box>\n </Box>\n </Container>\n\n <MobileMenu\n links={links}\n languageOptions={languageOptions}\n currentLanguage={currentLanguage}\n onLanguageChange={onLanguageChange}\n loginButton={loginButton}\n ctaButton={ctaButton}\n />\n </header>\n </HeaderContext.Provider>\n );\n },\n);\nHeader.displayName = 'Header';\n\nexport {\n Header,\n HeaderLogo,\n HeaderNav,\n HeaderActions,\n MobileMenuButton,\n MobileMenu,\n headerVariants,\n};\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Globe } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon';\n\nexport interface LanguageSelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface LanguageSelectProps {\n options: LanguageSelectOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\nconst LanguageSelect = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n LanguageSelectProps\n>(({ className, options, value, onValueChange }, ref) => {\n return (\n <SelectPrimitive.Root value={value} onValueChange={onValueChange}>\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n // Base styles\n 'h-8 w-8 p-0 rounded-full',\n 'flex items-center justify-center',\n // Border and background\n 'border border-berget-border-subtle',\n 'bg-transparent',\n // Hover effect\n 'hover:bg-berget-surface-hover',\n // Transitions\n 'transition-all duration-200',\n // Focus styles - remove all focus rings\n 'focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0',\n // Disabled state\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n >\n <Icon icon={Globe} size={16} />\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n // Positioning and z-index\n 'relative z-50 min-w-[8rem]',\n // Overflow handling\n 'overflow-y-auto overflow-x-hidden',\n // Border and background\n 'border border-berget-border bg-berget-background',\n 'text-berget-foreground',\n // Shadow\n 'shadow-berget-lg',\n // Rounded corners\n 'rounded-md',\n // Animations\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n // Position-based animations\n 'data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2',\n 'data-[side=top]:slide-in-from-bottom-2',\n // Origin for transforms\n 'origin-[--radix-select-content-transform-origin]',\n )}\n position=\"popper\"\n >\n <SelectPrimitive.Viewport className=\"p-1\">\n {options.map((option) => (\n <SelectPrimitive.Item\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n // Layout\n 'relative flex w-full cursor-default',\n 'select-none items-center rounded-sm py-2 px-3',\n // Text\n 'text-sm outline-none',\n // Focus/hover styles\n 'focus:bg-berget-primary-tint focus:text-berget-foreground',\n 'hover:bg-berget-primary-tint',\n // Disabled state\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n >\n <SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n});\n\nLanguageSelect.displayName = 'LanguageSelect';\n\nexport { LanguageSelect };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport type { LucideIcon } from 'lucide-react';\nimport { Card, type CardProps } from '../card';\nimport { FeatureList } from '../list';\nimport { Typography } from '../typography';\n\nconst featureCardVariants = cva('', {\n variants: {\n variant: {\n highlight: '',\n glass: '',\n solid: '',\n },\n },\n defaultVariants: {\n variant: 'highlight',\n },\n});\n\nexport interface FeatureCardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof featureCardVariants> {\n /**\n * Icon to display\n */\n icon?: LucideIcon;\n /**\n * Custom color for the icon (e.g., \"#52B788\" or \"text-[#52B788]\")\n */\n iconColor?: string;\n /**\n * Title of the feature\n */\n title: string;\n /**\n * Description of the feature\n */\n description: string;\n /**\n * Optional badge text\n */\n badge?: string;\n /**\n * Optional link text\n */\n linkText?: string;\n /**\n * Optional link href\n */\n linkHref?: string;\n /**\n * Optional list items to display below description\n */\n items?: string[];\n /**\n * Number of columns in the grid\n * @default 3\n */\n columns?: 1 | 2 | 3 | 4;\n}\n\n/**\n * Feature Card Component\n *\n * Feature card with icon, badge, title, description, and optional list items.\n * Based on Card highlight variant.\n *\n * **Use Cases:**\n * - Feature showcases\n * - Product highlights\n * - Service descriptions\n * - Benefits sections\n *\n * @example\n * ```tsx\n * <FeatureCard\n * icon={Cpu}\n * title=\"Dedicated Inference\"\n * description=\"Run and scale any model, including your own fine-tuned models on dedicated capacity.\"\n * badge=\"Coming Soon\"\n * items={[\n * \"Customizable instances\",\n * \"High-demand workloads\",\n * \"Dedicated resources\"\n * ]}\n * />\n * ```\n */\nconst FeatureCard = React.forwardRef<HTMLDivElement, FeatureCardProps>(\n (\n {\n className,\n variant = 'highlight',\n icon: Icon,\n iconColor,\n title,\n description,\n badge,\n linkText,\n linkHref,\n items,\n columns: _columns,\n ...props\n },\n ref,\n ) => {\n return (\n <Card\n ref={ref}\n variant={variant as CardProps['variant']}\n className={cn('w-full py-fluid-lg px-fluid-md', className)}\n {...props}\n >\n <div className=\"flex flex-col items-start gap-fluid-md\">\n {/* Icon and badge on same row */}\n {(Icon || badge) && (\n <div className=\"flex items-center justify-between w-full\">\n {Icon && (\n <div className=\"flex h-7 w-7 items-center justify-center\">\n <Icon\n className={cn('h-7 w-7', iconColor || 'text-foreground')}\n strokeWidth={1.5}\n />\n </div>\n )}\n\n {badge && (\n <div className=\"flex h-6 items-center justify-start px-6 bg-berget-feature-card-badge-bg rounded-full\">\n <Typography\n variant=\"body\"\n as=\"span\"\n className=\"text-berget-feature-card-badge-fg\"\n >\n {badge}\n </Typography>\n </div>\n )}\n </div>\n )}\n\n <Typography variant=\"h3\" className=\"text-foreground\">\n {title}\n </Typography>\n\n <Typography variant=\"body\" className=\"text-foreground/80\">\n {description}\n </Typography>\n\n {items && items.length > 0 && <FeatureList items={items} variant=\"bullet\" />}\n\n {linkText && linkHref && (\n <a href={linkHref} className=\"text-p font-p leading-p text-berget-accent\">\n {linkText} →\n </a>\n )}\n </div>\n </Card>\n );\n },\n);\nFeatureCard.displayName = 'FeatureCard';\n\nexport interface FeatureCardsProps {\n /**\n * Array of feature cards to display\n */\n features: FeatureCardProps[];\n /**\n * Number of columns in the grid\n * @default 3\n */\n columns?: 1 | 2 | 3 | 4;\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\n/**\n * Feature Cards Component\n *\n * Displays multiple feature cards in a responsive grid layout.\n * Perfect for feature showcases, product highlights, and benefits sections.\n *\n * @example\n * ```tsx\n * const features = [\n * {\n * icon: Cpu,\n * title: \"Dedicated Inference\",\n * description: \"Run and scale any model on dedicated capacity.\",\n * badge: \"Coming Soon\",\n * items: [\"Customizable instances\", \"High-demand workloads\", \"Dedicated resources\"]\n * },\n * {\n * icon: Zap,\n * title: \"Lightning Fast\",\n * description: \"Optimized for speed and performance.\",\n * badge: \"New\"\n * },\n * ]\n *\n * <FeatureCards features={features} columns={3} />\n * ```\n */\nexport const FeatureCards = React.forwardRef<HTMLDivElement, FeatureCardsProps>(\n ({ features, columns = 3, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'grid gap-fluid-lg p-fluid-md',\n // Explicit classes so Tailwind compiles them\n columns === 1 && 'grid-cols-1 max-w-md mx-auto',\n columns === 2 && 'grid-cols-1 md:grid-cols-2',\n columns === 3 && 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n columns === 4 && 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n className,\n )}\n >\n {features.map((feature, index) => (\n <FeatureCard key={index} {...feature} />\n ))}\n </div>\n );\n },\n);\nFeatureCards.displayName = 'FeatureCards';\n\nexport { FeatureCard, featureCardVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-4 px-4 py-3 sm:px-6 sm:py-4',\n interactive && 'transition-all duration-200 hover:bg-berget-surface-hover cursor-pointer',\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex-shrink-0 flex items-center justify-center\">{icon}</div>}\n <div className=\"flex-1 min-w-0\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('px-4 py-2 sm:px-6 sm:py-3 text-sm text-muted-foreground', className)}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span className=\"w-1.5 h-1.5 rounded-full bg-berget-icon-muted flex-shrink-0 mt-2\" />\n ) : (\n <div className=\"flex-shrink-0 mt-0.5\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Separator } from '../../primitives/separator';\nimport { Typography } from '../typography';\n\nconst dividerVariants = cva('', {\n variants: {\n variant: {\n default: 'bg-berget-separator',\n subtle: 'bg-berget-separator-subtle',\n strong: 'bg-berget-border-interactive',\n primary: 'bg-berget-primary-border',\n muted: 'bg-berget-separator-subtle',\n },\n size: {\n thin: '',\n medium: '!h-[2px]',\n thick: '!h-[4px]',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'thin',\n },\n});\n\nexport interface DividerProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof dividerVariants> {\n orientation?: 'horizontal' | 'vertical';\n label?: string;\n labelPosition?: 'center' | 'left' | 'right';\n}\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n className,\n orientation = 'horizontal',\n variant,\n size,\n label,\n labelPosition = 'center',\n ...props\n },\n ref,\n ) => {\n if (label) {\n return (\n <div ref={ref} className={cn('flex items-center w-full', className)} {...props}>\n {labelPosition !== 'right' && (\n <Separator\n orientation=\"horizontal\"\n className={cn(dividerVariants({ variant, size }), 'flex-1')}\n />\n )}\n <Typography variant=\"small\" color=\"muted\" className=\"px-4 whitespace-nowrap\">\n {label}\n </Typography>\n {labelPosition !== 'left' && (\n <Separator\n orientation=\"horizontal\"\n className={cn(dividerVariants({ variant, size }), 'flex-1')}\n />\n )}\n </div>\n );\n }\n\n return (\n <Separator\n ref={ref as React.Ref<never>}\n orientation={orientation}\n className={cn(\n dividerVariants({ variant, size }),\n orientation === 'vertical' && 'h-full !w-[1px]',\n className,\n )}\n />\n );\n },\n);\nDivider.displayName = 'Divider';\n\nexport { Divider, dividerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { LucideIcon } from 'lucide-react';\nimport { Badge } from '../badge';\nimport { Icon } from '../icon';\nimport { Typography } from '../typography';\n\nconst heroBlockVariants = cva(\n 'relative overflow-hidden min-h-[40dvh] flex items-center py-fluid-2xl',\n {\n variants: {\n variant: {\n default: '',\n moss: '',\n gradient: '',\n },\n withPattern: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n withPattern: false,\n },\n },\n);\n\nexport interface HeroBlockProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof heroBlockVariants> {\n /**\n * Optional icon for the tagline badge\n */\n taglineIcon?: LucideIcon;\n /**\n * Tagline text (appears in badge)\n */\n tagline?: string;\n /**\n * Main hero title\n */\n title: string;\n /**\n * Hero description\n */\n description: string;\n /**\n * Call-to-action buttons\n */\n actions?: React.ReactNode;\n /**\n * Show pattern background\n * @default true\n */\n withPattern?: boolean;\n}\n\n/**\n * Hero Block Component\n *\n * Full-width hero section with optional grid background, tagline, title, description, and CTAs.\n * Based on the pattern from why-berget and other landing pages.\n *\n * **Variants:**\n * - `default` - Simple gradient\n * - `moss` - Green gradient overlay\n * - `gradient` - Diagonal gradient\n *\n * **Features:**\n * - Optional grid background\n * - Tagline badge with optional icon\n * - Responsive sizing\n * - CTA button slots\n *\n * **Use Cases:**\n * - Page heroes\n * - Landing page intros\n * - Feature announcements\n * - Product showcases\n *\n * @example\n * ```tsx\n * <HeroBlock\n * tagline=\"Built for Europe\"\n * taglineIcon={Shield}\n * title=\"European AI Infrastructure\"\n * description=\"Deploy and scale AI models with data residency in Europe\"\n * variant=\"moss\"\n * actions={\n * <>\n * <Button size=\"lg\">Get Started</Button>\n * <Button size=\"lg\" variant=\"outline\">Learn More</Button>\n * </>\n * }\n * />\n * ```\n */\nconst HeroBlock = React.forwardRef<HTMLDivElement, HeroBlockProps>(\n (\n {\n className,\n variant,\n withPattern,\n taglineIcon: TaglineIcon,\n tagline,\n title,\n description,\n actions,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={cn(heroBlockVariants({ variant, withPattern }), className)}\n {...props}\n >\n {/* Content */}\n <div className=\"mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"mx-auto text-center max-w-4xl\">\n {tagline && (\n <Badge\n variant=\"default\"\n icon={TaglineIcon ? <Icon icon={TaglineIcon} size={16} /> : undefined}\n iconGap={2}\n className=\"mb-fluid-md\"\n >\n {tagline}\n </Badge>\n )}\n\n <Typography variant=\"h1\" className=\"mb-fluid-md\">\n {title}\n </Typography>\n\n <Typography variant=\"h3\" color=\"muted\" className=\"mb-fluid-lg\">\n {description}\n </Typography>\n\n {actions && <div className=\"flex flex-wrap gap-fluid-md justify-center\">{actions}</div>}\n </div>\n </div>\n </div>\n );\n },\n);\nHeroBlock.displayName = 'HeroBlock';\n\nexport { HeroBlock, heroBlockVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { LucideIcon } from 'lucide-react';\nimport { Card, type CardProps } from '../card';\nimport { Typography } from '../typography';\n\nconst statCardVariants = cva('', {\n variants: {\n variant: {\n highlight: '',\n glass: '',\n solid: '',\n },\n },\n defaultVariants: {\n variant: 'highlight',\n },\n});\n\nexport interface StatCardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof statCardVariants> {\n icon?: LucideIcon;\n iconColor?: string;\n title: string;\n description: string;\n stats: string;\n badge?: string;\n}\n\nconst StatCard = React.forwardRef<HTMLDivElement, StatCardProps>(\n (\n {\n className,\n variant = 'highlight',\n icon: Icon,\n iconColor,\n title,\n description,\n stats,\n badge: _badge,\n ...props\n },\n ref,\n ) => {\n return (\n <Card\n ref={ref}\n variant={variant as CardProps['variant']}\n className={cn('w-full py-fluid-lg px-fluid-md', className)}\n {...props}\n >\n <div className=\"flex flex-col h-full gap-fluid-md\">\n {/* Icon container - same size as FeatureCard */}\n {Icon && (\n <div className=\"flex h-7 w-7 items-center justify-center\">\n <Icon\n className={cn('h-7 w-7', iconColor || 'text-berget-foreground')}\n strokeWidth={1.5}\n />\n </div>\n )}\n\n <Typography variant=\"h3\" as=\"h3\" className=\"text-berget-foreground\">\n {title}\n </Typography>\n\n <Typography\n variant=\"body\"\n className=\"text-berget-foreground/80 leading-relaxed flex-grow\"\n >\n {description}\n </Typography>\n\n {/* Stats footer */}\n <Typography variant=\"small\" as=\"div\" className=\"font-medium text-berget-foreground\">\n {stats}\n </Typography>\n </div>\n </Card>\n );\n },\n);\nStatCard.displayName = 'StatCard';\n\nexport { StatCard, statCardVariants };\n","import { useState, useEffect, useCallback } from 'react';\nimport { Copy, Check } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { getHighlighter } from '../../lib/shiki';\n\nexport interface CodeBlockProps {\n code: string;\n language?: string;\n title?: string;\n className?: string;\n}\n\nexport function CodeBlock({ code, language = 'text', title, className }: CodeBlockProps) {\n const [html, setHtml] = useState<string | null>(null);\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n getHighlighter().then((highlighter) => {\n const loadedLangs = highlighter.getLoadedLanguages();\n const lang = loadedLangs.includes(language) ? language : 'text';\n setHtml(highlighter.codeToHtml(code, { lang, theme: 'berget' }));\n });\n }, [code, language]);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }, [code]);\n\n const copyButton = (\n <button\n onClick={handleCopy}\n className=\"flex items-center justify-center w-6 h-6 text-berget-muted-foreground hover:text-berget-foreground transition-colors\"\n aria-label=\"Copy code\"\n >\n {copied ? <Check className=\"w-3.5 h-3.5\" /> : <Copy className=\"w-3.5 h-3.5\" />}\n </button>\n );\n\n return (\n <div\n className={cn(\n 'rounded-berget-sm border bg-berget-codeblock-bg border-berget-border backdrop-blur-[12px] relative overflow-hidden isolate',\n className,\n )}\n >\n {title && (\n <div className=\"!h-10 flex items-center !px-4 !text-xs !leading-normal border-b border-berget-border bg-berget-codeblock-header-bg\">\n <span className=\"text-berget-muted-foreground\">{title}</span>\n </div>\n )}\n <div className=\"absolute right-2 top-2 z-10\">{copyButton}</div>\n {html ? (\n <div\n className=\"[&_.shiki]:!p-4 [&_.shiki]:!m-0 [&_.shiki]:overflow-x-auto [&_.shiki]:!text-sm [&_.shiki]:!leading-relaxed [&_.shiki]:bg-transparent\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n ) : (\n <pre className=\"!p-4 !m-0 overflow-x-auto !text-sm !leading-relaxed text-berget-muted-foreground\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n );\n}\n","import { createHighlighterCore, type HighlighterCore } from 'shiki/core';\nimport { createOnigurumaEngine } from 'shiki/engine/oniguruma';\nimport { bergetShikiTheme } from './shiki-theme';\n\nexport const defaultLanguages = [\n import('shiki/langs/typescript.mjs'),\n import('shiki/langs/javascript.mjs'),\n import('shiki/langs/bash.mjs'),\n import('shiki/langs/yaml.mjs'),\n import('shiki/langs/json.mjs'),\n import('shiki/langs/python.mjs'),\n import('shiki/langs/dockerfile.mjs'),\n import('shiki/langs/markdown.mjs'),\n import('shiki/langs/html.mjs'),\n import('shiki/langs/css.mjs'),\n import('shiki/langs/shell.mjs'),\n];\n\nlet highlighterPromise: Promise<HighlighterCore> | null = null;\n\nexport function getHighlighter(): Promise<HighlighterCore> {\n if (!highlighterPromise) {\n highlighterPromise = createHighlighterCore({\n themes: [bergetShikiTheme],\n langs: defaultLanguages,\n engine: createOnigurumaEngine(import('shiki/wasm')),\n });\n }\n return highlighterPromise;\n}\n","import type { ThemeRegistration } from 'shiki';\n\nexport const bergetShikiTheme: ThemeRegistration = {\n name: 'berget',\n type: 'dark',\n colors: {\n 'editor.background': '#1a1a1a',\n 'editor.foreground': '#e7e0d9',\n },\n settings: [\n {\n settings: {\n foreground: '#e7e0d9', // sandstone-100\n },\n },\n {\n scope: ['comment', 'punctuation.definition.comment'],\n settings: {\n foreground: '#e7e0d980',\n fontStyle: 'italic',\n },\n },\n {\n scope: ['keyword', 'keyword.control', 'keyword.operator.new', 'storage', 'storage.type'],\n settings: {\n foreground: '#57a57f', // moss-400\n },\n },\n {\n scope: ['string', 'string.quoted', 'string.template'],\n settings: {\n foreground: '#86c0a2', // moss-300\n },\n },\n {\n scope: ['entity.name.function', 'support.function', 'meta.function-call'],\n settings: {\n foreground: '#5b9ac1', // fjord-400\n },\n },\n {\n scope: ['entity.name.type', 'entity.name.class', 'support.type', 'support.class'],\n settings: {\n foreground: '#e3a500', // chanterelle-300\n },\n },\n {\n scope: ['constant.numeric', 'constant.language'],\n settings: {\n foreground: '#86c0a2', // moss-300\n },\n },\n {\n scope: ['variable', 'variable.other'],\n settings: {\n foreground: '#e7e0d9', // sandstone-100\n },\n },\n {\n scope: ['variable.parameter'],\n settings: {\n foreground: '#e7e0d9e6',\n },\n },\n {\n scope: ['punctuation', 'keyword.operator', 'keyword.operator.assignment'],\n settings: {\n foreground: '#e7e0d9b3',\n },\n },\n {\n scope: ['entity.name.tag', 'support.type.property-name'],\n settings: {\n foreground: '#57a57f', // moss-400 (for YAML keys, HTML tags)\n },\n },\n {\n scope: ['meta.object-literal.key'],\n settings: {\n foreground: '#5b9ac1', // fjord-400\n },\n },\n ],\n};\n"],"mappings":"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","names":["Alert","Button","Card","Checkbox","Input","Label","Select","alertVariants","buttonVariants","React","import_class_variance_authority","React","import_jsx_runtime","import_jsx_runtime","buttonVariants","Button","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_jsx_runtime","import_jsx_runtime","Card","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","alertVariants","Alert","React","React","import_jsx_runtime","import_jsx_runtime","Input","React","CheckboxPrimitive","import_lucide_react","import_class_variance_authority","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Checkbox","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Select","React","import_class_variance_authority","React","import_jsx_runtime","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","Label","import_class_variance_authority","React","import_jsx_runtime","Separator","import_jsx_runtime","Label","Separator","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","React","import_class_variance_authority","import_react_slot","import_jsx_runtime","React","import_class_variance_authority","import_react_slot","import_jsx_runtime","React","import_jsx_runtime","aspectRatio","width","height","React","import_class_variance_authority","import_lucide_react","React","SelectPrimitive","import_lucide_react","import_jsx_runtime","import_jsx_runtime","React","import_class_variance_authority","React","React","import_class_variance_authority","import_jsx_runtime","Separator","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Icon","Card","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","Icon","Card","import_react","import_lucide_react","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/theme-provider/ThemeProvider.tsx","../src/components/theme-provider/ThemeToggle.tsx","../src/lib/utils.ts","../src/components/button/Button.tsx","../src/primitives/button.tsx","../src/components/icon/Icon.tsx","../src/components/typography/Typography.tsx","../src/components/card/Card.tsx","../src/primitives/card.tsx","../src/components/badge/Badge.tsx","../src/components/alert/Alert.tsx","../src/primitives/alert.tsx","../src/components/input/Input.tsx","../src/primitives/input.tsx","../src/components/checkbox/Checkbox.tsx","../src/primitives/checkbox.tsx","../src/components/switch/Switch.tsx","../src/components/select/Select.tsx","../src/primitives/select.tsx","../src/components/text-area/TextArea.tsx","../src/primitives/textarea.tsx","../src/primitives/label.tsx","../src/primitives/field.tsx","../src/primitives/separator.tsx","../src/components/link/Link.tsx","../src/components/section/Section.tsx","../src/components/container/Container.tsx","../src/components/section-header/SectionHeader.tsx","../src/components/grid/Grid.tsx","../src/components/box/Box.tsx","../src/components/berget-logo/BergetLogo.tsx","../src/components/header/Header.tsx","../src/components/language-select/LanguageSelect.tsx","../src/components/feature-cards/FeatureCards.tsx","../src/components/list/List.tsx","../src/components/divider/Divider.tsx","../src/components/hero-block/HeroBlock.tsx","../src/components/code-block/CodeBlock.tsx","../src/lib/shiki.ts","../src/lib/shiki-theme.ts"],"sourcesContent":["// Theme\nexport { ThemeProvider, useTheme, ThemeToggle } from './components/theme-provider';\nexport type { ThemeProviderProps, Theme, ThemeToggleProps } from './components/theme-provider';\n\n// Actions\nexport { Button, buttonVariants } from './components/button';\nexport type { ButtonProps } from './components/button';\n\n// Display\nexport { Typography, typographyVariants } from './components/typography';\nexport type { TypographyProps } from './components/typography';\n\nexport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n cardVariants,\n} from './components/card';\nexport type { CardProps } from './components/card';\n\nexport { Badge, badgeVariants } from './components/badge';\nexport type { BadgeProps } from './components/badge';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants } from './components/alert';\nexport type { AlertProps, AlertTitleProps, AlertDescriptionProps } from './components/alert';\n\n// Forms\nexport { Input } from './components/input';\nexport type { InputProps } from './components/input';\n\nexport { Checkbox, checkboxVariants } from './components/checkbox';\nexport type { CheckboxProps } from './components/checkbox';\n\nexport { Switch, switchRootVariants, switchThumbVariants } from './components/switch';\nexport type { SwitchProps } from './components/switch';\n\nexport { Select, selectVariants } from './components/select';\nexport type { SelectProps, SelectOption } from './components/select';\n\nexport { TextArea, textAreaVariants } from './components/text-area';\nexport type { TextAreaProps } from './components/text-area';\n\nexport { Label } from './components/label';\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n} from './components/field';\n\nexport { Link, linkVariants } from './components/link';\nexport type { LinkProps } from './components/link';\n\n// Layout\nexport { Section, sectionVariants } from './components/section';\nexport type { SectionProps } from './components/section';\n\nexport { SectionHeader } from './components/section-header';\nexport type { SectionHeaderProps } from './components/section-header';\n\nexport { Container, containerVariants } from './components/container';\nexport type { ContainerProps } from './components/container';\n\nexport { Grid, gridVariants } from './components/grid';\nexport type {\n GridProps,\n SpacingScale as GridSpacingScale,\n GridColsScale,\n GridRowsScale,\n} from './components/grid';\n\nexport { Box, boxVariants } from './components/box';\nexport type { BoxProps, SpacingScale as BoxSpacingScale } from './components/box';\n\n// Branding\nexport { BergetLogo } from './components/berget-logo';\nexport type { BergetLogoProps } from './components/berget-logo';\n\n// @deprecated Use `BergetLogo` with `variant=\"logotype\"` instead\nexport { BergetLogotype } from './components/berget-logotype';\n// @deprecated Use `BergetLogo` with `variant=\"logotype\"` instead\nexport type { BergetLogotypeProps } from './components/berget-logotype';\n\n// @deprecated Use `BergetLogo` with `variant=\"symbol\"` instead\nexport { BergetSymbol } from './components/berget-symbol';\n// @deprecated Use `BergetLogo` with `variant=\"symbol\"` instead\nexport type { BergetSymbolProps } from './components/berget-symbol';\n\nexport { Icon } from './components/icon';\nexport type { IconProps } from './components/icon';\n\n// Navigation\nexport { Header } from './components/header/Header';\nexport type { HeaderProps, HeaderLink } from './components/header/Header';\n\nexport { LanguageSelect } from './components/language-select';\nexport type { LanguageSelectProps, LanguageSelectOption } from './components/language-select';\n\n// Data\nexport { FeatureCard, FeatureCards } from './components/feature-cards';\nexport type { FeatureCardProps, FeatureCardsProps } from './components/feature-cards';\n\nexport { FeatureList, List, ListItem, ListHeader } from './components/list';\nexport type {\n FeatureListProps,\n ListProps,\n ListItemProps,\n ListHeaderProps,\n} from './components/list';\n\nexport { HeroBlock } from './components/hero-block';\nexport type { HeroBlockProps } from './components/hero-block';\n\nexport { CodeBlock } from './components/code-block/index';\nexport type { CodeBlockProps } from './components/code-block/index';\n\n// Internal layout primitives (also exported since used by kept components)\nexport type { TerminalExample } from './lib/terminal';\n","import * as React from 'react';\n\ntype Theme = 'dark' | 'light' | 'system';\n\ninterface ThemeState {\n theme: Theme;\n resolvedTheme: 'dark' | 'light';\n}\n\ninterface ThemeProviderContextValue extends ThemeState {\n setTheme: (theme: Theme) => void;\n}\n\nconst ThemeProviderContext = React.createContext<ThemeProviderContextValue | undefined>(undefined);\n\nconst STORAGE_KEY = 'berget-theme';\n\nfunction getSystemTheme(): 'dark' | 'light' {\n return window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';\n}\n\nfunction resolveTheme(theme: Theme): ThemeState {\n return {\n theme,\n resolvedTheme: theme === 'system' ? getSystemTheme() : theme,\n };\n}\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Explicitly set and lock the theme ('light' or 'dark').\n * When provided, `setTheme` is a no-op and localStorage is ignored. */\n theme?: 'light' | 'dark';\n}\n\nconst ThemeProvider = React.memo(function ThemeProvider({\n children,\n theme: controlledTheme,\n}: ThemeProviderProps) {\n const isControlled = controlledTheme !== undefined;\n\n const [state, setState] = React.useState<ThemeState>(() => {\n if (isControlled) {\n return resolveTheme(controlledTheme);\n }\n\n let theme: Theme = 'system';\n try {\n const stored = localStorage.getItem(STORAGE_KEY) as Theme | null;\n if (stored && ['dark', 'light', 'system'].includes(stored)) {\n theme = stored;\n }\n } catch {\n /* ignore */\n }\n\n return resolveTheme(theme);\n });\n\n // Sync DOM attribute\n React.useEffect(() => {\n document.documentElement.setAttribute('data-theme', state.resolvedTheme);\n }, [state.resolvedTheme]);\n\n // Controlled sync: if theme prop changes, override state\n React.useEffect(() => {\n if (isControlled && state.theme !== controlledTheme) {\n setState(resolveTheme(controlledTheme));\n }\n }, [isControlled, controlledTheme, state.theme]);\n\n const setTheme = React.useCallback(\n (theme: Theme) => {\n if (isControlled) return;\n\n const next = resolveTheme(theme);\n setState(next);\n\n try {\n localStorage.setItem(STORAGE_KEY, theme);\n } catch {\n /* ignore */\n }\n },\n [isControlled],\n );\n\n // System preference listener (only when system is active and not controlled)\n React.useEffect(() => {\n if (isControlled || state.theme !== 'system') return;\n\n const media = window.matchMedia('(prefers-color-scheme: light)');\n const handler = () => {\n setState((prev) => ({\n ...prev,\n resolvedTheme: getSystemTheme(),\n }));\n };\n\n media.addEventListener('change', handler);\n return () => media.removeEventListener('change', handler);\n }, [isControlled, state.theme]);\n\n const value = React.useMemo(\n () => ({\n ...state,\n setTheme,\n }),\n [state, setTheme],\n );\n\n return <ThemeProviderContext.Provider value={value}>{children}</ThemeProviderContext.Provider>;\n});\n\nfunction useTheme(): ThemeProviderContextValue {\n const context = React.useContext(ThemeProviderContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider.');\n }\n return context;\n}\n\nexport { ThemeProvider, useTheme };\nexport type { Theme };\n","import * as React from 'react';\nimport { useTheme } from './ThemeProvider';\nimport { cn } from '../../lib/utils';\n\nexport interface ThemeToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the toggle button */\n label?: string;\n /** Force a specific size class */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n ({ className, label = 'Toggle theme', size = 'md', ...props }, ref) => {\n const { theme, resolvedTheme, setTheme } = useTheme();\n\n const toggle = React.useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }, [theme, setTheme]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n title={`Toggle ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}\n className={cn(\n 'relative inline-flex items-center justify-center rounded-full cursor-pointer',\n 'transition-colors duration-200',\n 'hover:bg-berget-surface-hover',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-berget-ring',\n size === 'sm' && 'w-7 h-7',\n size === 'md' && 'w-9 h-9',\n size === 'lg' && 'w-11 h-11',\n className,\n )}\n {...props}\n >\n {/* Sun */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'dark'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 -rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path\n strokeLinecap=\"round\"\n d=\"M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41\"\n />\n </svg>\n\n {/* Moon */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'light'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n </button>\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle };\n","import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\n// Extend tailwind-merge to recognise custom utilities from @theme.\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n rounded: [\n 'rounded-berget-none',\n 'rounded-berget-xs',\n 'rounded-berget-sm',\n 'rounded-berget-md',\n 'rounded-berget-lg',\n 'rounded-berget-full',\n ],\n 'font-size': ['text-h1', 'text-h2', 'text-h3', 'text-h4', 'text-p', 'text-mono'],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Button as ButtonPrimitive } from '../../primitives/button';\nimport { Icon } from '../icon';\nimport { Loader2 } from 'lucide-react';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium cursor-pointer transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-berget-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'bg-berget-button-default-bg text-berget-button-default-fg shadow-lg hover:bg-berget-button-default-bg/90 hover:shadow-xl',\n primary:\n 'bg-berget-button-primary-bg text-berget-button-primary-fg shadow-lg hover:bg-berget-button-primary-bg/90 hover:shadow-xl',\n secondary:\n 'bg-berget-button-secondary-bg text-berget-button-secondary-fg shadow hover:bg-berget-button-secondary-bg/80 hover:shadow-lg',\n destructive:\n 'bg-berget-button-destructive-bg text-berget-button-destructive-fg shadow-sm hover:bg-berget-button-destructive-bg/80 hover:shadow',\n highlight:\n 'relative overflow-hidden bg-berget-background border border-berget-border-interactive backdrop-blur-[5px] text-foreground hover:bg-berget-background/80 hover:border-berget-border-interactive-elevated hover:shadow-lg',\n icon: '!flex !flex-row !justify-center !items-center !gap-0 !p-0 !w-[44px] !h-[44px] !bg-berget-button-default-bg !text-berget-button-default-fg shadow-[0px_1px_3px_rgba(0,0,0,0.1),0px_1px_2px_-1px_rgba(0,0,0,0.1)] !rounded-full',\n },\n size: {\n sm: 'h-6 px-3 py-1.5 text-xs [&_svg]:size-4',\n default: 'h-8 px-4 py-2 text-sm [&_svg]:size-6',\n lg: 'h-10 px-5 py-2.5 text-base [&_svg]:size-6',\n icon: '!w-[44px] !h-[44px] !p-0 [&_svg]:size-5',\n },\n width: {\n default: 'w-auto',\n full: 'w-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n width: 'default',\n },\n },\n);\n\ntype BaseButtonProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'aria-label' | 'role'\n> & {\n asChild?: boolean;\n isLoading?: boolean;\n size?: VariantProps<typeof buttonVariants>['size'];\n width?: VariantProps<typeof buttonVariants>['width'];\n};\n\ntype IconButtonProps = BaseButtonProps & {\n variant: 'icon';\n 'aria-label': string;\n};\n\ntype RegularButtonProps = BaseButtonProps & {\n variant?: Exclude<VariantProps<typeof buttonVariants>['variant'], 'icon'>;\n 'aria-label'?: string;\n};\n\nexport type ButtonProps = IconButtonProps | RegularButtonProps;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n width,\n asChild = false,\n isLoading = false,\n type = 'button',\n children,\n ...props\n },\n ref,\n ) => {\n const isHighlight = variant === 'highlight';\n const isIcon = variant === 'icon';\n\n if (asChild) {\n return (\n <ButtonPrimitive\n className={cn(buttonVariants({ variant, size, width }), className)}\n ref={ref}\n asChild\n type={type}\n aria-disabled={isLoading || undefined}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {children}\n </ButtonPrimitive>\n );\n }\n\n return (\n <ButtonPrimitive\n className={cn(buttonVariants({ variant, size, width }), className)}\n ref={ref}\n type={type}\n aria-disabled={isLoading || undefined}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {isHighlight && (\n <>\n <div className=\"absolute inset-0 top-[1px] h-[calc(100%-1px)] w-full bg-[radial-gradient(100%_100%_at_49.87%_0%,color-mix(in_oklch,var(--berget-foreground)_4%,transparent)_0%,transparent_100%)] pointer-events-none\" />\n <div className=\"absolute top-0 left-0 right-0 h-[1px] bg-[radial-gradient(55.66%_112.5%_at_50%_0%,var(--berget-foreground)_0%,transparent_92.4%)] opacity-[0.3] pointer-events-none\" />\n </>\n )}\n <span\n className={cn(\n 'inline-flex items-center',\n !isIcon && 'gap-2',\n isHighlight && 'relative z-10',\n )}\n >\n {isLoading ? (\n <>\n <Icon icon={Loader2} size={16} className=\"animate-spin\" aria-hidden={true} />\n {!isIcon && children}\n </>\n ) : (\n children\n )}\n </span>\n </ButtonPrimitive>\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\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 ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground 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-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: '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>, 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 className={cn(buttonVariants({ variant, size }), className)} ref={ref} {...props} />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as React from 'react';\nimport { LucideIcon, LucideProps } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\nexport interface IconProps extends Omit<LucideProps, 'size'> {\n icon: LucideIcon;\n size: 16 | 24 | 32;\n className?: string;\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n}\n\nconst iconStrokeMap: Record<IconProps['size'], number> = {\n 16: 1.4,\n 24: 1.6,\n 32: 1.8,\n};\n\nconst Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n icon: IconComponent,\n size,\n className,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden = true,\n ...props\n },\n ref,\n ) => {\n const strokeWidth = iconStrokeMap[size];\n const sizeClass = size === 16 ? 'w-4 h-4' : size === 24 ? 'w-6 h-6' : 'w-8 h-8';\n\n const ariaAttributes = ariaLabel ? { 'aria-label': ariaLabel } : { 'aria-hidden': ariaHidden };\n\n return (\n <IconComponent\n ref={ref}\n className={cn(sizeClass, className)}\n strokeWidth={strokeWidth}\n {...ariaAttributes}\n {...props}\n />\n );\n },\n);\n\nIcon.displayName = 'Icon';\n\nexport { Icon };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst typographyVariants = cva('', {\n variants: {\n variant: {\n // Fluid heading scale — use @theme tokens (clamp-based, 390px → 1440px)\n h1: 'text-h1 font-h1 leading-h1 tracking-h1 text-balance',\n h2: 'text-h2 font-h2 leading-h2 tracking-h2 text-balance',\n h3: 'text-h3 font-h3 leading-h3 tracking-h3 text-balance',\n h4: 'text-h4 font-h4 leading-h4 tracking-h4 text-balance',\n // Static sans-serif sub-heading\n h5: 'text-xl font-xl leading-xl text-balance',\n // Body and UI text — use @theme tokens where available\n large: 'text-lg font-lg leading-lg text-pretty',\n body: 'text-p font-p leading-p text-pretty',\n small: 'text-sm font-sm leading-sm text-pretty',\n xs: 'text-xs font-xs leading-xs text-pretty',\n // Monospaced — use @theme token\n mono: 'text-mono font-mono leading-mono text-pretty',\n // Inline code / spec labels\n code: 'text-xs font-mono',\n },\n color: {\n default: 'text-berget-foreground',\n muted: 'text-berget-muted-foreground',\n dim: 'text-berget-foreground/50',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n },\n});\n\nconst defaultElementMap: Record<string, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'span'> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n large: 'p',\n body: 'p',\n small: 'p',\n xs: 'p',\n mono: 'p',\n code: 'span',\n};\n\nexport interface TypographyProps\n extends\n Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof typographyVariants> {\n as?: React.ElementType;\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ className, variant = 'body', color = 'default', as, children, ...props }, ref) => {\n const Component = (as ?? defaultElementMap[variant ?? 'body'] ?? 'p') as\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'p'\n | 'span';\n return (\n <Component\n className={cn(typographyVariants({ variant, color }), className)}\n ref={ref as any}\n {...(props as any)}\n >\n {children}\n </Component>\n );\n },\n);\nTypography.displayName = 'Typography';\n\nexport { Typography, typographyVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport {\n Card as CardPrimitive,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from '../../primitives/card';\n\nconst cardVariants = cva('rounded-berget-sm', {\n variants: {\n variant: {\n outlined: 'bg-transparent border border-berget-border',\n filled: 'bg-berget-card-filled-bg border border-berget-border',\n },\n padding: {\n none: 'p-0',\n sm: 'p-3 sm:p-4',\n md: 'p-4 sm:p-6',\n lg: 'p-6 sm:p-8',\n },\n },\n defaultVariants: {\n variant: 'outlined',\n padding: 'md',\n },\n});\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, children, ...props }, ref) => {\n return (\n <CardPrimitive\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n >\n {children}\n </CardPrimitive>\n );\n },\n);\nCard.displayName = 'Card';\n\nexport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n ),\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h2 ref={ref} className={cn('text-2xl leading-none tracking-tight', className)} {...props} />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center whitespace-nowrap rounded-full transition-colors focus:outline-none focus:ring-1 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'px-8',\n tag: 'px-4',\n semantic: 'px-3',\n },\n status: {\n default: 'bg-berget-badge-default-bg text-berget-badge-default-fg',\n active: 'bg-berget-badge-active-bg text-berget-badge-active-fg',\n tagDefault: 'bg-berget-badge-tag-default-bg text-berget-badge-tag-default-fg',\n tagActive: 'bg-berget-badge-tag-active-bg text-berget-badge-tag-active-fg',\n tagGhost: 'bg-berget-badge-tag-ghost-bg text-berget-badge-tag-ghost-fg',\n info: 'berget-tint berget-tint-info',\n success: 'berget-tint berget-tint-success',\n warning: 'berget-tint berget-tint-warning',\n error: 'berget-tint berget-tint-error',\n },\n size: {\n sm: 'text-xs h-6',\n md: 'text-sm h-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n status: 'default',\n size: 'md',\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {\n icon?: React.ReactNode;\n iconGap?: number;\n}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant, status, size, icon, iconGap = 2, children, ...props }, ref) => {\n return (\n <div className={cn(badgeVariants({ variant, status, size }), className)} ref={ref} {...props}>\n {icon && <div style={{ marginRight: children ? `${iconGap * 0.25}rem` : '0' }}>{icon}</div>}\n {children}\n </div>\n );\n },\n);\nBadge.displayName = 'Badge';\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Alert as AlertPrimitive, AlertTitle, AlertDescription } from '../../primitives/alert';\n\nconst alertVariants = cva('', {\n variants: {\n variant: {\n default: 'border-berget-border',\n info: 'berget-tint berget-tint-info',\n success: 'berget-tint berget-tint-success',\n warning: 'berget-tint berget-tint-warning',\n destructive: 'berget-tint berget-tint-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <AlertPrimitive ref={ref} className={cn(alertVariants({ variant }), className)} {...props} />\n ),\n);\nAlert.displayName = 'Alert';\n\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4',\n {\n variants: {\n variant: {\n default: '',\n destructive: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn('mb-1 leading-none tracking-tight', className)} {...props} />\n ),\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Input as InputPrimitive } from '../../primitives/input';\nimport { Typography } from '../typography';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n icon?: React.ReactNode;\n actionButton?: React.ReactNode;\n label?: string;\n description?: string;\n error?: string;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, icon, actionButton, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n const errorId = `${inputId}-error`;\n const descriptionId = `${inputId}-description`;\n\n const inputElement = (\n <InputPrimitive\n ref={ref}\n id={inputId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n 'isolate rounded-berget-xs bg-card focus-visible:border-berget-form-focus-border focus-visible:ring-0 focus-visible:ring-offset-0 hover:bg-berget-surface-hover transition-colors duration-200 px-3 sm:px-4 py-2 sm:py-2.5 text-sm',\n icon && 'pl-10',\n actionButton && 'pr-12',\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n disabled && 'cursor-not-allowed',\n className,\n )}\n {...props}\n />\n );\n\n if (!icon && !actionButton) {\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n {inputElement}\n {(description || error) && (\n <div className=\"flex flex-col gap-1\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {error && (\n <Typography\n variant=\"xs\"\n id={errorId}\n className=\"text-berget-destructive-foreground\"\n >\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n <div className=\"relative w-full\">\n {icon && <div className=\"absolute left-3 top-1/2 -translate-y-1/2\">{icon}</div>}\n {inputElement}\n {actionButton && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">{actionButton}</div>\n )}\n </div>\n {(description || error) && (\n <div className=\"flex flex-col gap-1\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nInput.displayName = 'Input';\n\nexport { Input };\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-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file: file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 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 CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Checkbox as CheckboxBase } from '../../primitives/checkbox';\nimport { Typography } from '../typography';\n\nconst checkboxVariants = cva(\n 'inline-flex items-center justify-center rounded-md transition-all duration-200 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'text-foreground border border-berget-border-interactive bg-berget-surface-subtle hover:bg-berget-surface-raised',\n error:\n 'border border-berget-destructive-border bg-berget-destructive text-berget-destructive-foreground hover:bg-berget-destructive/90',\n success:\n 'border border-berget-success-border bg-berget-success text-berget-success-foreground hover:bg-berget-success/90',\n },\n size: {\n sm: 'w-4 h-4',\n default: 'w-5 h-5',\n lg: 'w-6 h-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface CheckboxProps\n extends\n Omit<React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, 'className'>,\n VariantProps<typeof checkboxVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Checkbox = React.forwardRef<React.ComponentRef<typeof CheckboxPrimitive.Root>, CheckboxProps>(\n ({ className, variant, size, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n const errorId = `${checkboxId}-error`;\n\n return (\n <div className=\"flex items-start gap-3\">\n <div className=\"relative flex items-start pt-0.5\">\n <CheckboxBase\n ref={ref}\n id={checkboxId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n className={cn(\n checkboxVariants({ variant, size }),\n 'cursor-pointer',\n disabled && 'cursor-not-allowed pointer-events-none',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator>\n <Check\n className=\"h-4 w-4 text-current stroke-current\"\n style={{ color: 'currentColor', stroke: 'currentColor' }}\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxBase>\n </div>\n\n {(label || description || error) && (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled\n ? 'text-white/40 cursor-not-allowed'\n : variant === 'error'\n ? 'text-berget-destructive-foreground cursor-pointer'\n : variant === 'success'\n ? 'text-berget-success-foreground cursor-pointer'\n : 'cursor-pointer',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <Typography variant=\"xs\" color=\"muted\">\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox, checkboxVariants };\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, children, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {children ?? (\n <CheckboxPrimitive.Indicator className={cn('grid place-content-center')}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n )}\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nconst CheckboxIndicator = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Indicator>\n>(({ className, children, ...props }, ref) => (\n <CheckboxPrimitive.Indicator\n ref={ref}\n className={cn('grid place-content-center', className)}\n {...props}\n >\n {children ?? <Check className=\"h-4 w-4\" />}\n </CheckboxPrimitive.Indicator>\n));\nCheckboxIndicator.displayName = CheckboxPrimitive.Indicator.displayName;\n\nexport { Checkbox, CheckboxIndicator };\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst switchRootVariants = cva(\n 'peer inline-flex 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-berget-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'data-[state=unchecked]:bg-berget-border data-[state=checked]:bg-berget-secondary',\n primary:\n 'data-[state=unchecked]:bg-berget-border-subtle data-[state=checked]:bg-berget-switch-primary-checked',\n subtle:\n 'data-[state=unchecked]:bg-berget-border-subtle data-[state=checked]:bg-berget-switch-subtle-checked',\n },\n size: {\n sm: 'h-5 w-9',\n default: 'h-6 w-11',\n lg: 'h-7 w-[52px]',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst switchThumbVariants = cva(\n 'pointer-events-none block rounded-full ring-0 transition-transform shadow-berget-sm bg-berget-foreground',\n {\n variants: {\n size: {\n sm: 'h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n default: 'h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n lg: 'h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport interface SwitchProps\n extends\n Omit<React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>, 'className'>,\n VariantProps<typeof switchRootVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, variant, size, label, description, error, id, disabled, ...props }, ref) => {\n const generatedId = React.useId();\n const switchId = id || generatedId;\n const errorId = `${switchId}-error`;\n\n return (\n <div className=\"flex items-center gap-3\">\n <SwitchPrimitives.Root\n ref={ref}\n id={switchId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n className={cn(\n switchRootVariants({ variant, size }),\n disabled && 'cursor-not-allowed pointer-events-none',\n className,\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitives.Root>\n\n {(label || description || error) && (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled\n ? 'text-muted-foreground cursor-not-allowed'\n : error\n ? 'text-berget-destructive-foreground cursor-pointer'\n : 'text-foreground cursor-pointer',\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <Typography variant=\"xs\" color=\"muted\">\n {description}\n </Typography>\n )}\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nSwitch.displayName = 'Switch';\n\nexport { Switch, switchRootVariants, switchThumbVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Typography } from '../typography';\nimport {\n Select as SelectRoot,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n} from '../../primitives/select';\n\nconst selectVariants = cva(\n 'flex w-full items-center justify-between rounded-berget-xs border bg-card px-4 py-3 text-sm transition-colors duration-200 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:border-berget-form-focus-border disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'border-berget-border-interactive hover:bg-berget-surface-hover',\n primary:\n 'border-berget-primary-border bg-berget-primary-tint hover:bg-berget-surface-hover',\n subtle: 'border-berget-border-subtle hover:bg-berget-surface-hover',\n muted: 'border-berget-border-subtle/50 hover:bg-berget-surface-hover',\n },\n size: {\n sm: 'px-3 py-2 text-xs',\n default: 'px-4 py-3 text-sm',\n lg: 'px-5 py-4 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends VariantProps<typeof selectVariants> {\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n options: SelectOption[];\n id?: string;\n disabled?: boolean;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n required?: boolean;\n className?: string;\n}\n\nconst Select = React.forwardRef<React.ComponentRef<typeof SelectTrigger>, SelectProps>(\n (\n {\n className,\n variant,\n size,\n label,\n description,\n error,\n placeholder,\n options,\n id,\n disabled,\n value,\n defaultValue,\n onValueChange,\n name,\n required,\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const selectId = id || generatedId;\n const errorId = `${selectId}-error`;\n const descriptionId = `${selectId}-description`;\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={selectId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n\n <SelectRoot\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n name={name}\n required={required}\n >\n <SelectTrigger\n ref={ref}\n id={selectId}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n selectVariants({ variant, size }),\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n className,\n )}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map((option) => (\n <SelectItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </SelectRoot>\n\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n\n {error && (\n <Typography variant=\"xs\" id={errorId} className=\"text-berget-destructive-foreground\">\n {error}\n </Typography>\n )}\n </div>\n );\n },\n);\nSelect.displayName = 'Select';\n\nexport { Select, selectVariants };\n","'use client';\n\nimport * 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-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:border-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('flex cursor-default items-center justify-center py-1', className)}\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('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = 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('py-1.5 pl-8 pr-2 text-sm ', 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-8 pr-2 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 left-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\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 * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Textarea as TextAreaPrimitive } from '../../primitives/textarea';\nimport { Typography } from '../typography';\n\nconst textAreaVariants = cva(\n 'rounded-berget-xs bg-card px-4 py-3 transition-colors duration-200 focus-visible:border-berget-form-focus-border focus-visible:ring-0 focus-visible:ring-offset-0 resize-y',\n {\n variants: {\n variant: {\n default: 'border-berget-border-interactive hover:bg-berget-surface-hover',\n primary:\n 'border-berget-primary-border bg-berget-primary-tint hover:bg-berget-surface-hover',\n subtle: 'border-berget-border-subtle hover:bg-berget-surface-hover',\n muted: 'border-berget-border-subtle/50 hover:bg-berget-surface-hover',\n },\n size: {\n sm: 'px-3 py-2 sm:px-4 sm:py-2.5 text-xs sm:text-sm',\n default: 'px-4 py-3 sm:py-3.5 text-sm',\n lg: 'px-5 py-4 sm:py-5 text-base sm:text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface TextAreaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textAreaVariants> {\n label?: string;\n description?: string;\n error?: string;\n placeholder?: string;\n maxLength?: number;\n showCount?: boolean;\n rows?: number;\n icon?: React.ReactNode;\n secondaryIcon?: React.ReactNode;\n actionButton?: React.ReactNode;\n}\n\nconst TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n variant,\n size,\n label,\n description,\n error,\n placeholder,\n maxLength,\n showCount,\n rows,\n id,\n disabled,\n value,\n icon,\n secondaryIcon,\n actionButton,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const textareaId = id || generatedId;\n const errorId = `${textareaId}-error`;\n const descriptionId = `${textareaId}-description`;\n const characterCount = typeof value === 'string' ? value.length : 0;\n\n return (\n <div className=\"flex flex-col gap-2\">\n {label && (\n <label\n htmlFor={textareaId}\n className={cn(\n 'text-sm font-sans leading-none',\n disabled ? 'text-muted-foreground cursor-not-allowed' : 'text-foreground',\n error && 'text-berget-destructive-foreground',\n )}\n >\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n {icon && <div className=\"absolute left-2 top-1/2 -translate-y-1/2\">{icon}</div>}\n <TextAreaPrimitive\n ref={ref}\n id={textareaId}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={cn(error && errorId, description && descriptionId)}\n className={cn(\n textAreaVariants({ variant, size }),\n error && 'border-berget-destructive-foreground/50 bg-berget-destructive',\n disabled && 'cursor-not-allowed',\n icon && 'pl-11',\n secondaryIcon && 'pr-20',\n actionButton && !secondaryIcon && 'pr-12',\n secondaryIcon && actionButton && 'pr-20',\n className,\n )}\n placeholder={placeholder}\n maxLength={maxLength}\n rows={rows}\n value={value}\n {...props}\n />\n {secondaryIcon && (\n <div className=\"absolute right-12 top-1/2 -translate-y-1/2\">{secondaryIcon}</div>\n )}\n {actionButton && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">{actionButton}</div>\n )}\n </div>\n\n {(description || error || (showCount && maxLength)) && (\n <div className=\"flex items-center justify-between gap-2\">\n {description && (\n <Typography variant=\"xs\" color=\"muted\" id={descriptionId}>\n {description}\n </Typography>\n )}\n {(error || (showCount && maxLength)) && (\n <div className=\"flex items-center gap-2 ml-auto\">\n {showCount && maxLength && (\n <Typography\n variant=\"xs\"\n className={cn(\n characterCount >= maxLength\n ? 'text-berget-destructive-foreground'\n : 'text-muted-foreground',\n )}\n >\n {characterCount}/{maxLength}\n </Typography>\n )}\n {error && (\n <Typography\n variant=\"xs\"\n id={errorId}\n className=\"text-berget-destructive-foreground\"\n >\n {error}\n </Typography>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nTextArea.displayName = 'TextArea';\n\nexport { TextArea, textAreaVariants };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, React.ComponentProps<'textarea'>>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\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> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import { useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/primitives/label';\nimport { Separator } from '@/primitives/separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-6',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-3 font-medium',\n 'data-[variant=legend]:text-base',\n 'data-[variant=label]:text-sm',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field data-[invalid=true]:text-destructive flex w-full gap-3', {\n variants: {\n orientation: {\n vertical: ['flex-col [&>*]:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '[&>[data-slot=field-label]]:flex-auto',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start',\n ],\n responsive: [\n '@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n '@md/field-group:[&>[data-slot=field-label]]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-1.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4',\n 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance',\n 'nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\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>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\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));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { ExternalLink } from 'lucide-react';\n\nconst linkVariants = cva(\n 'inline-flex items-center gap-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'text-foreground hover:text-foreground/80',\n primary: 'text-berget-secondary hover:text-berget-secondary/80',\n secondary: 'text-berget-accent hover:text-berget-accent/80',\n ghost: 'text-muted-foreground hover:text-foreground',\n muted: 'text-muted-foreground hover:text-muted-foreground/80',\n code: 'text-berget-secondary hover:text-berget-secondary/80 font-mono text-sm bg-berget-primary-tint px-2 py-1 rounded hover:bg-berget-primary-tint-hover',\n },\n size: {\n sm: 'text-sm',\n default: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof linkVariants> {\n children: React.ReactNode;\n external?: boolean;\n icon?: React.ReactNode;\n showExternalIcon?: boolean;\n disabled?: boolean;\n}\n\nconst Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n className,\n variant,\n size,\n external = false,\n icon,\n showExternalIcon = false,\n disabled = false,\n children,\n ...props\n },\n ref,\n ) => {\n const isExternal =\n external ||\n (typeof props.href === 'string' &&\n (props.href.startsWith('http://') ||\n props.href.startsWith('https://') ||\n props.href.startsWith('mailto:') ||\n props.href.startsWith('tel:')));\n\n return (\n <a\n ref={ref}\n className={cn(linkVariants({ variant, size }), className)}\n {...(disabled && {\n 'aria-disabled': true,\n onClick: (e: React.MouseEvent) => e.preventDefault(),\n })}\n {...props}\n {...(isExternal &&\n !disabled && {\n rel: 'noopener noreferrer',\n target: '_blank',\n })}\n >\n {children}\n {icon && <span className=\"inline-flex items-center\">{icon}</span>}\n {showExternalIcon && isExternal && !disabled && (\n <span className=\"inline-flex items-center ml-1 opacity-60\" aria-hidden=\"true\">\n <Icon icon={ExternalLink} size={16} />\n </span>\n )}\n </a>\n );\n },\n);\nLink.displayName = 'Link';\n\nexport { Link, linkVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Container } from '../container';\n\nconst sectionVariants = cva('relative', {\n variants: {\n padding: {\n none: '',\n sm: 'py-12',\n md: 'py-16',\n lg: 'py-24',\n xl: 'py-32',\n },\n background: {\n transparent: '',\n muted: 'bg-berget-section-muted-bg',\n },\n },\n defaultVariants: {\n padding: 'lg',\n background: 'transparent',\n },\n});\n\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof sectionVariants> {\n children: React.ReactNode;\n}\n\nconst Section = React.forwardRef<HTMLElement, SectionProps>(\n ({ className, padding, background, children, ...props }, ref) => {\n return (\n <section\n ref={ref}\n className={cn(sectionVariants({ padding, background }), className)}\n {...props}\n >\n <Container>{children}</Container>\n </section>\n );\n },\n);\nSection.displayName = 'Section';\n\nexport { Section, sectionVariants };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst containerVariants = cva('w-full mx-auto', {\n variants: {\n size: {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-7xl',\n xl: 'max-w-screen-xl',\n full: 'max-w-full',\n },\n padding: {\n none: 'px-0',\n sm: 'px-4 sm:px-6',\n md: 'px-4 sm:px-6 lg:px-8',\n lg: 'px-4 sm:px-8 lg:px-12',\n },\n },\n defaultVariants: {\n size: 'lg',\n padding: 'md',\n },\n});\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof containerVariants> {\n children: React.ReactNode;\n asChild?: boolean;\n}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, size, padding, asChild = false, children, ...props }, ref) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(containerVariants({ size, padding }), className)}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nContainer.displayName = 'Container';\n\nexport { Container, containerVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Badge } from '../badge';\nimport { Typography } from '../typography';\n\nexport interface SectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n description?: string;\n descriptionVariant?: 'h2' | 'h3' | 'h4' | 'large' | 'body';\n tagline?: string;\n action?: React.ReactNode;\n headingLevel?: 'h1' | 'h2' | 'h3' | 'h4';\n id?: string;\n}\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n (\n {\n className,\n title,\n description,\n descriptionVariant = 'large',\n tagline,\n action,\n headingLevel = 'h2',\n id,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n id={id}\n ref={ref}\n className={cn('w-full px-fluid-md py-fluid-xl text-center', className)}\n {...props}\n >\n <div className=\"flex flex-col items-center gap-fluid-lg\">\n <div className=\"max-w-3xl mx-auto flex flex-col items-center gap-fluid-lg\">\n {tagline && (\n <Badge variant=\"default\" className=\"text-sm\">\n {tagline}\n </Badge>\n )}\n\n <div className=\"flex flex-col items-center gap-fluid-sm\">\n <Typography variant={headingLevel}>{title}</Typography>\n\n {description && (\n <Typography variant={descriptionVariant} color=\"muted\">\n {description}\n </Typography>\n )}\n </div>\n </div>\n\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n </div>\n );\n },\n);\nSectionHeader.displayName = 'SectionHeader';\n\nexport { SectionHeader };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst gridVariants = cva('grid', {\n variants: {\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n },\n defaultVariants: {\n align: 'stretch',\n justify: 'start',\n },\n});\n\nexport type SpacingScale =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10\n | 12\n | 16\n | 20\n | 24\n | 32\n | 40\n | 48\n | 56\n | 64\n | 72\n | 80\n | 96;\n\nexport type GridColsScale = 1 | 2 | 3 | 4 | 6 | 12;\n\nexport type GridRowsScale = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface GridProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof gridVariants> {\n children: React.ReactNode;\n cols?: GridColsScale;\n rows?: GridRowsScale;\n gap?: SpacingScale;\n gapX?: SpacingScale;\n gapY?: SpacingScale;\n asChild?: boolean;\n}\n\nconst Grid = React.forwardRef<HTMLElement, GridProps>(\n (\n { className, align, justify, cols, rows, gap, gapX, gapY, asChild = false, children, ...props },\n ref,\n ) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref as React.RefObject<HTMLDivElement>}\n className={cn(\n gridVariants({ align, justify }),\n cols !== undefined && `grid-cols-${cols}`,\n rows !== undefined && `grid-rows-${rows}`,\n gap !== undefined && `gap-${gap}`,\n gapX !== undefined && `gap-x-${gapX}`,\n gapY !== undefined && `gap-y-${gapY}`,\n className,\n )}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nGrid.displayName = 'Grid';\n\nexport { Grid, gridVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst boxVariants = cva('flex', {\n variants: {\n direction: {\n row: 'flex-row',\n column: 'flex-col',\n 'row-reverse': 'flex-row-reverse',\n 'column-reverse': 'flex-col-reverse',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n direction: 'column',\n align: 'start',\n justify: 'start',\n wrap: 'nowrap',\n },\n});\n\nexport type SpacingScale =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10\n | 12\n | 16\n | 20\n | 24\n | 32\n | 40\n | 48\n | 56\n | 64\n | 72\n | 80\n | 96;\n\nexport interface BoxProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof boxVariants> {\n children: React.ReactNode;\n gap?: SpacingScale;\n asChild?: boolean;\n}\n\nconst Box = React.forwardRef<HTMLElement, BoxProps>(\n (\n { className, direction, align, justify, wrap, gap, asChild = false, children, ...props },\n ref,\n ) => {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n ref={ref as React.RefObject<HTMLDivElement>}\n className={cn(\n boxVariants({ direction, align, justify, wrap }),\n gap !== undefined && `gap-${gap}`,\n className,\n )}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\nBox.displayName = 'Box';\n\nexport { Box, boxVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface BergetLogoProps extends React.SVGAttributes<SVGSVGElement> {\n /** Shape variant */\n variant?: 'logotype' | 'symbol';\n /** Fill color — `auto` follows the theme via CSS variables */\n color?: 'white' | 'black' | 'auto';\n /** Size (height) in pixels */\n size?: number;\n}\n\nconst BergetLogo = React.forwardRef<SVGSVGElement, BergetLogoProps>(\n ({ variant = 'logotype', color = 'auto', size = 48, className, ...props }, ref) => {\n const fillColor =\n color === 'auto'\n ? 'var(--berget-logo-light)'\n : color === 'white'\n ? 'var(--berget-logo-light)'\n : 'var(--berget-logo-dark)';\n\n if (variant === 'symbol') {\n const aspectRatio = 463 / 419;\n const width = size * aspectRatio;\n const height = size;\n\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox=\"0 0 463 419\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Berget symbol\"\n className={cn('inline-block', className)}\n {...props}\n >\n <path\n d=\"M208.739 17L255.261 17L446 403L398 403L313.5 255L261.5 176L233.163 96.1677L237.815 98.6522H226.185L230.837 96.1677L113 331L64.5 403L18 403L208.739 17Z\"\n style={{ fill: fillColor }}\n />\n </svg>\n );\n }\n\n // variant === 'logotype'\n const aspectRatio = 793.63 / 204.37;\n const width = size * aspectRatio;\n const height = size;\n\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox=\"0 0 793.63 204.37\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Berget\"\n className={cn('inline-block', className)}\n {...props}\n >\n <g style={{ fill: fillColor }}>\n <path\n className=\"berget-logotype-fill\"\n d=\"M268.78,172.54v-96.04h37.74c10.39,0,18.26,2.33,23.6,7,5.33,4.67,8.01,10.52,8.01,17.56,0,6.13-1.72,11-5.15,14.61-3.43,3.61-7.58,6.06-12.44,7.34,3.81.73,7.22,2.2,10.22,4.39,3.01,2.2,5.36,4.94,7.08,8.23,1.72,3.29,2.58,6.86,2.58,10.7,0,4.94-1.27,9.4-3.79,13.38-2.53,3.98-6.22,7.11-11.08,9.4-4.86,2.29-10.82,3.43-17.87,3.43h-38.89ZM283.93,117.66h20.74c5.81,0,10.24-1.3,13.29-3.91,3.05-2.61,4.58-6.19,4.58-10.77s-1.51-8.05-4.51-10.7c-3-2.65-7.55-3.98-13.65-3.98h-20.45v29.36ZM283.93,160.61h21.74c6.1,0,10.84-1.37,14.22-4.11,3.38-2.75,5.08-6.59,5.08-11.53s-1.76-8.85-5.29-11.73-8.29-4.32-14.3-4.32h-21.45v31.69Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M382.45,174.19c-6.96,0-13.13-1.49-18.52-4.46-5.39-2.97-9.6-7.11-12.65-12.42-3.05-5.3-4.57-11.48-4.57-18.52s1.5-13.4,4.5-18.79,7.19-9.61,12.58-12.62c5.39-3.02,11.65-4.53,18.81-4.53s13,1.48,18.15,4.46c5.15,2.97,9.16,6.93,12.01,11.87,2.86,4.94,4.29,10.38,4.29,16.33,0,.92-.02,1.9-.07,2.95-.05,1.05-.12,2.22-.22,3.5h-55.19c.48,6.59,2.75,11.59,6.79,15.02,4.05,3.43,8.75,5.14,14.09,5.14,4.29,0,7.89-.93,10.79-2.81,2.91-1.88,5.08-4.41,6.51-7.61h15.16c-1.91,6.4-5.7,11.75-11.37,16.05-5.68,4.3-12.71,6.45-21.09,6.45ZM382.45,114.78c-5.05,0-9.54,1.44-13.44,4.32-3.91,2.88-6.29,7.2-7.15,12.97h40.04c-.29-5.3-2.24-9.51-5.87-12.62-3.62-3.11-8.15-4.67-13.58-4.67Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M425.62,172.54v-68.05h13.59l1.29,12.9c2.47-4.48,5.93-8.03,10.37-10.63,4.43-2.61,9.79-3.91,16.08-3.91v15.23h-4.15c-4.19,0-7.93.67-11.22,1.99-3.29,1.33-5.91,3.57-7.86,6.72-1.96,3.16-2.93,7.53-2.93,13.1v32.65h-15.16Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M500.25,151.69c-3.72,0-7.14-.41-10.29-1.24l-6.15,5.76c1.05.64,2.34,1.19,3.86,1.65,1.52.46,3.66.87,6.43,1.23,2.76.37,6.53.73,11.29,1.1,9.43.82,16.25,3,20.44,6.52,4.2,3.52,6.29,8.21,6.29,14.06,0,4.02-1.12,7.84-3.35,11.45-2.24,3.61-5.72,6.54-10.44,8.78s-10.74,3.36-18.09,3.36c-9.91,0-17.94-1.8-24.09-5.42-6.15-3.62-9.22-9.08-9.22-16.4,0-2.84.78-5.65,2.35-8.44,1.57-2.79,4.08-5.42,7.51-7.89-2-.83-3.74-1.72-5.22-2.68-1.48-.96-2.79-1.94-3.94-2.95v-3.29l12.3-12.07c-5.53-4.57-8.29-10.56-8.29-17.97,0-4.48,1.12-8.58,3.36-12.28,2.24-3.7,5.5-6.65,9.79-8.85,4.29-2.2,9.43-3.29,15.44-3.29,4.01,0,7.72.55,11.15,1.64h26.45v9.6l-12.58.69c2.28,3.75,3.43,7.91,3.43,12.49s-1.13,8.69-3.36,12.35c-2.24,3.66-5.48,6.59-9.72,8.78-4.25,2.2-9.37,3.29-15.37,3.29ZM481.24,181.19c0,3.93,1.81,6.88,5.44,8.85,3.62,1.97,8.15,2.95,13.58,2.95s9.48-1.07,12.72-3.22c3.24-2.15,4.86-5,4.86-8.57,0-2.65-1.09-4.92-3.29-6.79-2.19-1.87-6.34-3.04-12.44-3.5-4.57-.27-8.63-.68-12.15-1.23-3.34,1.74-5.63,3.61-6.86,5.63-1.25,2.01-1.86,3.98-1.86,5.9ZM500.25,140.3c4.38,0,7.93-1.12,10.66-3.36,2.71-2.24,4.07-5.42,4.07-9.53s-1.36-7.41-4.07-9.6c-2.72-2.2-6.27-3.29-10.66-3.29s-8.08,1.1-10.79,3.29c-2.71,2.2-4.08,5.4-4.08,9.6s1.36,7.3,4.08,9.53c2.71,2.24,6.31,3.36,10.79,3.36Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M574.61,174.19c-6.96,0-13.13-1.49-18.52-4.46-5.39-2.97-9.6-7.11-12.65-12.42-3.05-5.3-4.57-11.48-4.57-18.52s1.5-13.4,4.5-18.79c3-5.4,7.19-9.61,12.58-12.62c5.39-3.02,11.65-4.53,18.81-4.53s13,1.48,18.15,4.46c5.15,2.97,9.16,6.93,12.01,11.87,2.86,4.94,4.29,10.38,4.29,16.33,0,.92-.02,1.9-.07,2.95-.05,1.05-.12,2.22-.22,3.5h-55.19c.48,6.59,2.75,11.59,6.79,15.02,4.05,3.43,8.75,5.14,14.09,5.14,4.29,0,7.89-.93,10.79-2.81s5.08-4.41,6.51-7.61h15.16c-1.91,6.4-5.7,11.75-11.37,16.05-5.68,4.3-12.71,6.45-21.09,6.45ZM574.61,114.78c-5.05,0-9.54,1.44-13.44,4.32-3.91,2.88-6.29,7.2-7.15,12.97h40.04c-.29-5.3-2.24-9.51-5.87-12.62-3.62-3.11-8.15-4.67-13.58-4.67Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M646.23,172.54c-6.96,0-12.49-1.62-16.59-4.87-4.1-3.25-6.15-9.03-6.15-17.36v-33.61h-12.16v-12.21h12.16l1.86-17.29h13.29v17.29h20.02v12.21h-20.02v33.61c0,3.75.84,6.33,2.51,7.75,1.67,1.42,4.55,2.13,8.65,2.13h8.14v12.35h-11.72Z\"\n />\n <path\n className=\"berget-logotype-fill\"\n d=\"M684.4,172.54l36.89-96.04h16.59l36.6,96.04h-16.01l-8.58-23.46h-40.88l-8.58,23.46h-16.01ZM713.28,137.56h32.31l-16.16-43.77-16.16,43.77Z\"\n />\n <path className=\"berget-logotype-fill\" d=\"M778.48,172.54v-96.04h15.15v96.04h-15.15Z\" />\n </g>\n <path\n style={{ fill: fillColor }}\n d=\"M99.9,0h24.37l99.9,202.18h-25.14l-44.26-77.52-27.24-41.38-14.84-41.81,2.44,1.3h-6.09l2.44-1.3-61.72,123-25.4,37.71H0L99.9,0Z\"\n />\n </svg>\n );\n },\n);\n\nBergetLogo.displayName = 'BergetLogo';\n\nexport { BergetLogo };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { type LucideIcon, Menu, X } from 'lucide-react';\nimport { BergetLogo } from '../berget-logo';\nimport { Link } from '../link';\nimport { Box } from '../box';\nimport { Icon } from '../icon';\nimport { LanguageSelect } from '../language-select';\nimport type { LanguageSelectOption } from '../language-select';\nimport { Container } from '../container';\n\nconst headerVariants = cva(\n 'sticky top-0 z-50 header-backdrop backdrop-blur-xl border-b border-berget-border transition-all duration-200',\n {\n variants: {\n variant: {\n default: '',\n transparent: 'border-transparent bg-transparent backdrop-blur-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface HeaderLink {\n label: string;\n href: string;\n icon?: LucideIcon;\n active?: boolean;\n}\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof headerVariants> {\n logo?: React.ReactNode;\n links: HeaderLink[];\n languageOptions: LanguageSelectOption[];\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n}\n\nconst HeaderContext = React.createContext<{\n isMobileMenuOpen: boolean;\n setIsMobileMenuOpen: (open: boolean) => void;\n}>({\n isMobileMenuOpen: false,\n setIsMobileMenuOpen: () => {},\n});\n\nconst useHeaderContext = () => React.useContext(HeaderContext);\n\nconst HeaderLogo = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props}>\n {children}\n </div>\n ),\n);\nHeaderLogo.displayName = 'HeaderLogo';\n\nconst HeaderNav = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n links: HeaderLink[];\n }\n>(({ className, links, ...props }, ref) => {\n return (\n <nav ref={ref} className={cn('hidden md:flex items-center gap-fluid-lg', className)} {...props}>\n <ul className=\"flex items-center gap-fluid-lg\">\n {links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n variant={link.active ? 'primary' : 'default'}\n size=\"sm\"\n className={cn('relative transition-all duration-200', link.active && 'font-medium')}\n >\n {link.icon && (\n <span className=\"inline-flex items-center mr-2\">\n <Icon icon={link.icon} size={16} />\n </span>\n )}\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\nHeaderNav.displayName = 'HeaderNav';\n\nconst HeaderActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n languageOptions: LanguageSelectOption[];\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n }\n>(\n (\n {\n className,\n languageOptions,\n currentLanguage,\n onLanguageChange,\n loginButton,\n ctaButton,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn('hidden md:flex items-center gap-2', className)} {...props}>\n {languageOptions.length > 0 && (\n <LanguageSelect\n options={languageOptions}\n value={currentLanguage}\n onValueChange={onLanguageChange}\n />\n )}\n {loginButton}\n {ctaButton}\n </div>\n );\n },\n);\nHeaderActions.displayName = 'HeaderActions';\n\nconst MobileMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { isMobileMenuOpen, setIsMobileMenuOpen } = useHeaderContext();\n\n return (\n <button\n ref={ref}\n className={cn(\n 'md:hidden flex items-center justify-center w-8 h-8 rounded-full',\n 'cursor-pointer transition-all duration-200',\n 'hover:bg-berget-surface-hover',\n className,\n )}\n onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}\n aria-label={isMobileMenuOpen ? 'Close menu' : 'Open menu'}\n aria-expanded={isMobileMenuOpen}\n aria-controls=\"mobile-menu\"\n {...props}\n >\n {isMobileMenuOpen ? <Icon icon={X} size={16} /> : <Icon icon={Menu} size={16} />}\n </button>\n );\n});\nMobileMenuButton.displayName = 'MobileMenuButton';\n\nconst MobileMenu = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n links: HeaderLink[];\n languageOptions: LanguageSelectOption[];\n currentLanguage?: string;\n onLanguageChange?: (value: string) => void;\n loginButton?: React.ReactNode;\n ctaButton?: React.ReactNode;\n }\n>(\n (\n {\n className,\n links,\n languageOptions,\n currentLanguage,\n onLanguageChange,\n loginButton,\n ctaButton,\n ...props\n },\n ref,\n ) => {\n const { isMobileMenuOpen, setIsMobileMenuOpen } = useHeaderContext();\n\n if (!isMobileMenuOpen) return null;\n\n return (\n <nav\n ref={ref}\n id=\"mobile-menu\"\n aria-label=\"Mobile navigation menu\"\n className={cn(\n 'md:hidden absolute top-full left-0 right-0 bg-berget-background border-b border-berget-border shadow-berget-lg',\n className,\n )}\n {...props}\n >\n <Box direction=\"column\" gap={0} className=\"py-fluid-md\">\n <ul className=\"px-fluid-md pb-fluid-md border-b border-berget-border/50\">\n {links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n variant={link.active ? 'primary' : 'default'}\n className={cn(\n 'w-full py-3 px-4 rounded-lg transition-all duration-200 hover:bg-berget-surface-hover',\n link.active && 'bg-berget-primary-tint font-medium',\n )}\n onClick={() => setIsMobileMenuOpen(false)}\n >\n {link.icon && (\n <span className=\"inline-flex items-center mr-2\">\n <Icon icon={link.icon} size={16} />\n </span>\n )}\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n\n <div className=\"px-fluid-md py-fluid-md\">\n {languageOptions.length > 0 && (\n <div className=\"mb-fluid-md\">\n <LanguageSelect\n options={languageOptions}\n value={currentLanguage}\n onValueChange={onLanguageChange}\n />\n </div>\n )}\n {loginButton && <div className=\"mb-fluid-md w-full\">{loginButton}</div>}\n {ctaButton && <div className=\"w-full\">{ctaButton}</div>}\n </div>\n </Box>\n </nav>\n );\n },\n);\nMobileMenu.displayName = 'MobileMenu';\n\nconst Header = React.forwardRef<HTMLElement, HeaderProps>(\n (\n {\n className,\n variant,\n logo,\n links,\n languageOptions,\n loginButton,\n ctaButton,\n currentLanguage,\n onLanguageChange,\n ...props\n },\n ref,\n ) => {\n const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (isMobileMenuOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = 'unset';\n }\n return () => {\n document.body.style.overflow = 'unset';\n };\n }, [isMobileMenuOpen]);\n\n return (\n <HeaderContext.Provider value={{ isMobileMenuOpen, setIsMobileMenuOpen }}>\n <header ref={ref} className={cn(headerVariants({ variant }), className)} {...props}>\n <Container size=\"xl\">\n <Box direction=\"row\" align=\"center\" justify=\"between\" className=\"h-16\">\n <HeaderLogo>\n {logo || <BergetLogo variant=\"logotype\" color=\"auto\" size={32} />}\n </HeaderLogo>\n\n <HeaderNav links={links} />\n\n <Box direction=\"row\" align=\"center\" gap={3}>\n <HeaderActions\n languageOptions={languageOptions}\n currentLanguage={currentLanguage}\n onLanguageChange={onLanguageChange}\n loginButton={loginButton}\n ctaButton={ctaButton}\n />\n\n {ctaButton && <div className=\"md:hidden\">{ctaButton}</div>}\n\n <MobileMenuButton />\n </Box>\n </Box>\n </Container>\n\n <MobileMenu\n links={links}\n languageOptions={languageOptions}\n currentLanguage={currentLanguage}\n onLanguageChange={onLanguageChange}\n loginButton={loginButton}\n ctaButton={ctaButton}\n />\n </header>\n </HeaderContext.Provider>\n );\n },\n);\nHeader.displayName = 'Header';\n\nexport {\n Header,\n HeaderLogo,\n HeaderNav,\n HeaderActions,\n MobileMenuButton,\n MobileMenu,\n headerVariants,\n};\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Globe } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon';\n\nexport interface LanguageSelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface LanguageSelectProps {\n options: LanguageSelectOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\nconst LanguageSelect = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n LanguageSelectProps\n>(({ className, options, value, onValueChange }, ref) => {\n return (\n <SelectPrimitive.Root value={value} onValueChange={onValueChange}>\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n // Base styles\n 'h-8 w-8 p-0 rounded-full',\n 'flex items-center justify-center',\n // Border and background\n 'border border-berget-border-subtle',\n 'bg-transparent',\n // Hover effect\n 'hover:bg-berget-surface-hover',\n // Transitions\n 'transition-all duration-200',\n // Focus styles - remove all focus rings\n 'focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0',\n // Disabled state\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n >\n <Icon icon={Globe} size={16} />\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n // Positioning and z-index\n 'relative z-50 min-w-[8rem]',\n // Overflow handling\n 'overflow-y-auto overflow-x-hidden',\n // Border and background\n 'border border-berget-border bg-berget-background',\n 'text-berget-foreground',\n // Shadow\n 'shadow-berget-lg',\n // Rounded corners\n 'rounded-md',\n // Animations\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n // Position-based animations\n 'data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2',\n 'data-[side=top]:slide-in-from-bottom-2',\n // Origin for transforms\n 'origin-[--radix-select-content-transform-origin]',\n )}\n position=\"popper\"\n >\n <SelectPrimitive.Viewport className=\"p-1\">\n {options.map((option) => (\n <SelectPrimitive.Item\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n // Layout\n 'relative flex w-full cursor-default',\n 'select-none items-center rounded-sm py-2 px-3',\n // Text\n 'text-sm outline-none',\n // Focus/hover styles\n 'focus:bg-berget-primary-tint focus:text-berget-foreground',\n 'hover:bg-berget-primary-tint',\n // Disabled state\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n >\n <SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n});\n\nLanguageSelect.displayName = 'LanguageSelect';\n\nexport { LanguageSelect };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport type { LucideIcon } from 'lucide-react';\nimport { Card, type CardProps } from '../card';\nimport { FeatureList } from '../list';\nimport { Typography } from '../typography';\n\nconst featureCardVariants = cva('', {\n variants: {\n variant: {\n highlight: '',\n glass: '',\n solid: '',\n },\n },\n defaultVariants: {\n variant: 'highlight',\n },\n});\n\nexport interface FeatureCardProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof featureCardVariants> {\n /**\n * Icon to display\n */\n icon?: LucideIcon;\n /**\n * Custom color for the icon (e.g., \"#52B788\" or \"text-[#52B788]\")\n */\n iconColor?: string;\n /**\n * Title of the feature\n */\n title: string;\n /**\n * Description of the feature\n */\n description: string;\n /**\n * Optional badge text\n */\n badge?: string;\n /**\n * Optional link text\n */\n linkText?: string;\n /**\n * Optional link href\n */\n linkHref?: string;\n /**\n * Optional list items to display below description\n */\n items?: string[];\n /**\n * Number of columns in the grid\n * @default 3\n */\n columns?: 1 | 2 | 3 | 4;\n}\n\n/**\n * Feature Card Component\n *\n * Feature card with icon, badge, title, description, and optional list items.\n * Based on Card highlight variant.\n *\n * **Use Cases:**\n * - Feature showcases\n * - Product highlights\n * - Service descriptions\n * - Benefits sections\n *\n * @example\n * ```tsx\n * <FeatureCard\n * icon={Cpu}\n * title=\"Dedicated Inference\"\n * description=\"Run and scale any model, including your own fine-tuned models on dedicated capacity.\"\n * badge=\"Coming Soon\"\n * items={[\n * \"Customizable instances\",\n * \"High-demand workloads\",\n * \"Dedicated resources\"\n * ]}\n * />\n * ```\n */\nconst FeatureCard = React.forwardRef<HTMLDivElement, FeatureCardProps>(\n (\n {\n className,\n variant = 'highlight',\n icon: Icon,\n iconColor,\n title,\n description,\n badge,\n linkText,\n linkHref,\n items,\n columns: _columns,\n ...props\n },\n ref,\n ) => {\n return (\n <Card\n ref={ref}\n variant={variant as CardProps['variant']}\n className={cn('w-full py-fluid-lg px-fluid-md', className)}\n {...props}\n >\n <div className=\"flex flex-col items-start gap-fluid-md\">\n {/* Icon and badge on same row */}\n {(Icon || badge) && (\n <div className=\"flex items-center justify-between w-full\">\n {Icon && (\n <div className=\"flex h-7 w-7 items-center justify-center\">\n <Icon\n className={cn('h-7 w-7', iconColor || 'text-foreground')}\n strokeWidth={1.5}\n />\n </div>\n )}\n\n {badge && (\n <div className=\"flex h-6 items-center justify-start px-6 bg-berget-feature-card-badge-bg rounded-full\">\n <Typography\n variant=\"body\"\n as=\"span\"\n className=\"text-berget-feature-card-badge-fg\"\n >\n {badge}\n </Typography>\n </div>\n )}\n </div>\n )}\n\n <Typography variant=\"h3\" className=\"text-foreground\">\n {title}\n </Typography>\n\n <Typography variant=\"body\" className=\"text-foreground/80\">\n {description}\n </Typography>\n\n {items && items.length > 0 && <FeatureList items={items} variant=\"bullet\" />}\n\n {linkText && linkHref && (\n <a href={linkHref} className=\"text-p font-p leading-p text-berget-accent\">\n {linkText} →\n </a>\n )}\n </div>\n </Card>\n );\n },\n);\nFeatureCard.displayName = 'FeatureCard';\n\nexport interface FeatureCardsProps {\n /**\n * Array of feature cards to display\n */\n features: FeatureCardProps[];\n /**\n * Number of columns in the grid\n * @default 3\n */\n columns?: 1 | 2 | 3 | 4;\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\n/**\n * Feature Cards Component\n *\n * Displays multiple feature cards in a responsive grid layout.\n * Perfect for feature showcases, product highlights, and benefits sections.\n *\n * @example\n * ```tsx\n * const features = [\n * {\n * icon: Cpu,\n * title: \"Dedicated Inference\",\n * description: \"Run and scale any model on dedicated capacity.\",\n * badge: \"Coming Soon\",\n * items: [\"Customizable instances\", \"High-demand workloads\", \"Dedicated resources\"]\n * },\n * {\n * icon: Zap,\n * title: \"Lightning Fast\",\n * description: \"Optimized for speed and performance.\",\n * badge: \"New\"\n * },\n * ]\n *\n * <FeatureCards features={features} columns={3} />\n * ```\n */\nexport const FeatureCards = React.forwardRef<HTMLDivElement, FeatureCardsProps>(\n ({ features, columns = 3, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'grid gap-fluid-lg p-fluid-md',\n // Explicit classes so Tailwind compiles them\n columns === 1 && 'grid-cols-1 max-w-md mx-auto',\n columns === 2 && 'grid-cols-1 md:grid-cols-2',\n columns === 3 && 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n columns === 4 && 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n className,\n )}\n >\n {features.map((feature, index) => (\n <FeatureCard key={index} {...feature} />\n ))}\n </div>\n );\n },\n);\nFeatureCards.displayName = 'FeatureCards';\n\nexport { FeatureCard, featureCardVariants };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-4 px-4 py-3 sm:px-6 sm:py-4',\n interactive && 'transition-all duration-200 hover:bg-berget-surface-hover cursor-pointer',\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex-shrink-0 flex items-center justify-center\">{icon}</div>}\n <div className=\"flex-1 min-w-0\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('px-4 py-2 sm:px-6 sm:py-3 text-sm text-muted-foreground', className)}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span className=\"w-1.5 h-1.5 rounded-full bg-berget-icon-muted flex-shrink-0 mt-2\" />\n ) : (\n <div className=\"flex-shrink-0 mt-0.5\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Separator } from '../../primitives/separator';\nimport { Typography } from '../typography';\n\nconst dividerVariants = cva('', {\n variants: {\n variant: {\n default: 'bg-berget-separator',\n subtle: 'bg-berget-separator-subtle',\n strong: 'bg-berget-border-interactive',\n primary: 'bg-berget-primary-border',\n muted: 'bg-berget-separator-subtle',\n },\n size: {\n thin: '',\n medium: '!h-[2px]',\n thick: '!h-[4px]',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'thin',\n },\n});\n\nexport interface DividerProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof dividerVariants> {\n orientation?: 'horizontal' | 'vertical';\n label?: string;\n labelPosition?: 'center' | 'left' | 'right';\n}\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n className,\n orientation = 'horizontal',\n variant,\n size,\n label,\n labelPosition = 'center',\n ...props\n },\n ref,\n ) => {\n if (label) {\n return (\n <div ref={ref} className={cn('flex items-center w-full', className)} {...props}>\n {labelPosition !== 'right' && (\n <Separator\n orientation=\"horizontal\"\n className={cn(dividerVariants({ variant, size }), 'flex-1')}\n />\n )}\n <Typography variant=\"small\" color=\"muted\" className=\"px-4 whitespace-nowrap\">\n {label}\n </Typography>\n {labelPosition !== 'left' && (\n <Separator\n orientation=\"horizontal\"\n className={cn(dividerVariants({ variant, size }), 'flex-1')}\n />\n )}\n </div>\n );\n }\n\n return (\n <Separator\n ref={ref as React.Ref<never>}\n orientation={orientation}\n className={cn(\n dividerVariants({ variant, size }),\n orientation === 'vertical' && 'h-full !w-[1px]',\n className,\n )}\n />\n );\n },\n);\nDivider.displayName = 'Divider';\n\nexport { Divider, dividerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { LucideIcon } from 'lucide-react';\nimport { Badge } from '../badge';\nimport { Icon } from '../icon';\nimport { Typography } from '../typography';\n\nconst heroBlockVariants = cva(\n 'relative overflow-hidden min-h-[40dvh] flex items-center py-fluid-2xl',\n {\n variants: {\n variant: {\n default: '',\n moss: '',\n gradient: '',\n },\n withPattern: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n withPattern: false,\n },\n },\n);\n\nexport interface HeroBlockProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof heroBlockVariants> {\n /**\n * Optional icon for the tagline badge\n */\n taglineIcon?: LucideIcon;\n /**\n * Tagline text (appears in badge)\n */\n tagline?: string;\n /**\n * Main hero title\n */\n title: string;\n /**\n * Hero description\n */\n description: string;\n /**\n * Call-to-action buttons\n */\n actions?: React.ReactNode;\n /**\n * Show pattern background\n * @default true\n */\n withPattern?: boolean;\n}\n\n/**\n * Hero Block Component\n *\n * Full-width hero section with optional grid background, tagline, title, description, and CTAs.\n * Based on the pattern from why-berget and other landing pages.\n *\n * **Variants:**\n * - `default` - Simple gradient\n * - `moss` - Green gradient overlay\n * - `gradient` - Diagonal gradient\n *\n * **Features:**\n * - Optional grid background\n * - Tagline badge with optional icon\n * - Responsive sizing\n * - CTA button slots\n *\n * **Use Cases:**\n * - Page heroes\n * - Landing page intros\n * - Feature announcements\n * - Product showcases\n *\n * @example\n * ```tsx\n * <HeroBlock\n * tagline=\"Built for Europe\"\n * taglineIcon={Shield}\n * title=\"European AI Infrastructure\"\n * description=\"Deploy and scale AI models with data residency in Europe\"\n * variant=\"moss\"\n * actions={\n * <>\n * <Button size=\"lg\">Get Started</Button>\n * <Button size=\"lg\" variant=\"outline\">Learn More</Button>\n * </>\n * }\n * />\n * ```\n */\nconst HeroBlock = React.forwardRef<HTMLDivElement, HeroBlockProps>(\n (\n {\n className,\n variant,\n withPattern,\n taglineIcon: TaglineIcon,\n tagline,\n title,\n description,\n actions,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={cn(heroBlockVariants({ variant, withPattern }), className)}\n {...props}\n >\n {/* Content */}\n <div className=\"mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"mx-auto text-center max-w-4xl\">\n {tagline && (\n <Badge\n variant=\"default\"\n icon={TaglineIcon ? <Icon icon={TaglineIcon} size={16} /> : undefined}\n iconGap={2}\n className=\"mb-fluid-md\"\n >\n {tagline}\n </Badge>\n )}\n\n <Typography variant=\"h1\" className=\"mb-fluid-md\">\n {title}\n </Typography>\n\n <Typography variant=\"h3\" color=\"muted\" className=\"mb-fluid-lg\">\n {description}\n </Typography>\n\n {actions && <div className=\"flex flex-wrap gap-fluid-md justify-center\">{actions}</div>}\n </div>\n </div>\n </div>\n );\n },\n);\nHeroBlock.displayName = 'HeroBlock';\n\nexport { HeroBlock, heroBlockVariants };\n","import { useState, useEffect, useCallback } from 'react';\nimport { Copy, Check } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { getHighlighter } from '../../lib/shiki';\n\nexport interface CodeBlockProps {\n code: string;\n language?: string;\n title?: string;\n className?: string;\n}\n\nexport function CodeBlock({ code, language = 'text', title, className }: CodeBlockProps) {\n const [html, setHtml] = useState<string | null>(null);\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n getHighlighter().then((highlighter) => {\n const loadedLangs = highlighter.getLoadedLanguages();\n const lang = loadedLangs.includes(language) ? language : 'text';\n setHtml(highlighter.codeToHtml(code, { lang, theme: 'berget' }));\n });\n }, [code, language]);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }, [code]);\n\n const copyButton = (\n <button\n onClick={handleCopy}\n className=\"flex items-center justify-center w-6 h-6 text-berget-muted-foreground hover:text-berget-foreground transition-colors\"\n aria-label=\"Copy code\"\n >\n {copied ? <Check className=\"w-3.5 h-3.5\" /> : <Copy className=\"w-3.5 h-3.5\" />}\n </button>\n );\n\n return (\n <div\n className={cn(\n 'rounded-berget-sm border bg-berget-codeblock-bg border-berget-border backdrop-blur-[12px] relative overflow-hidden isolate',\n className,\n )}\n >\n {title && (\n <div className=\"!h-10 flex items-center !px-4 !text-xs !leading-normal border-b border-berget-border bg-berget-codeblock-header-bg\">\n <span className=\"text-berget-muted-foreground\">{title}</span>\n </div>\n )}\n <div className=\"absolute right-2 top-2 z-10\">{copyButton}</div>\n {html ? (\n <div\n className=\"[&_.shiki]:!p-4 [&_.shiki]:!m-0 [&_.shiki]:overflow-x-auto [&_.shiki]:!text-sm [&_.shiki]:!leading-relaxed [&_.shiki]:bg-transparent\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n ) : (\n <pre className=\"!p-4 !m-0 overflow-x-auto !text-sm !leading-relaxed text-berget-muted-foreground\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n );\n}\n","import { createHighlighterCore, type HighlighterCore } from 'shiki/core';\nimport { createOnigurumaEngine } from 'shiki/engine/oniguruma';\nimport { bergetShikiTheme } from './shiki-theme';\n\nexport const defaultLanguages = [\n import('shiki/langs/typescript.mjs'),\n import('shiki/langs/javascript.mjs'),\n import('shiki/langs/bash.mjs'),\n import('shiki/langs/yaml.mjs'),\n import('shiki/langs/json.mjs'),\n import('shiki/langs/python.mjs'),\n import('shiki/langs/dockerfile.mjs'),\n import('shiki/langs/markdown.mjs'),\n import('shiki/langs/html.mjs'),\n import('shiki/langs/css.mjs'),\n import('shiki/langs/shell.mjs'),\n];\n\nlet highlighterPromise: Promise<HighlighterCore> | null = null;\n\nexport function getHighlighter(): Promise<HighlighterCore> {\n if (!highlighterPromise) {\n highlighterPromise = createHighlighterCore({\n themes: [bergetShikiTheme],\n langs: defaultLanguages,\n engine: createOnigurumaEngine(import('shiki/wasm')),\n });\n }\n return highlighterPromise;\n}\n","import type { ThemeRegistration } from 'shiki';\n\nexport const bergetShikiTheme: ThemeRegistration = {\n name: 'berget',\n type: 'dark',\n colors: {\n 'editor.background': '#1a1a1a',\n 'editor.foreground': '#e7e0d9',\n },\n settings: [\n {\n settings: {\n foreground: '#e7e0d9', // sandstone-100\n },\n },\n {\n scope: ['comment', 'punctuation.definition.comment'],\n settings: {\n foreground: '#e7e0d980',\n fontStyle: 'italic',\n },\n },\n {\n scope: ['keyword', 'keyword.control', 'keyword.operator.new', 'storage', 'storage.type'],\n settings: {\n foreground: '#57a57f', // moss-400\n },\n },\n {\n scope: ['string', 'string.quoted', 'string.template'],\n settings: {\n foreground: '#86c0a2', // moss-300\n },\n },\n {\n scope: ['entity.name.function', 'support.function', 'meta.function-call'],\n settings: {\n foreground: '#5b9ac1', // fjord-400\n },\n },\n {\n scope: ['entity.name.type', 'entity.name.class', 'support.type', 'support.class'],\n settings: {\n foreground: '#e3a500', // chanterelle-300\n },\n },\n {\n scope: ['constant.numeric', 'constant.language'],\n settings: {\n foreground: '#86c0a2', // moss-300\n },\n },\n {\n scope: ['variable', 'variable.other'],\n settings: {\n foreground: '#e7e0d9', // sandstone-100\n },\n },\n {\n scope: ['variable.parameter'],\n settings: {\n foreground: '#e7e0d9e6',\n },\n },\n {\n scope: ['punctuation', 'keyword.operator', 'keyword.operator.assignment'],\n settings: {\n foreground: '#e7e0d9b3',\n },\n },\n {\n scope: ['entity.name.tag', 'support.type.property-name'],\n settings: {\n foreground: '#57a57f', // moss-400 (for YAML keys, HTML tags)\n },\n },\n {\n scope: ['meta.object-literal.key'],\n settings: {\n foreground: '#5b9ac1', // fjord-400\n },\n },\n ],\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,eAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAAC;AAAA,EAAA;AAAA;AAAA,wBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AA+Gd;AAlGT,IAAM,uBAA6B,oBAAqD,MAAS;AAEjG,IAAM,cAAc;AAEpB,SAAS,iBAAmC;AAC1C,SAAO,OAAO,WAAW,+BAA+B,EAAE,UAAU,UAAU;AAChF;AAEA,SAAS,aAAa,OAA0B;AAC9C,SAAO;AAAA,IACL;AAAA,IACA,eAAe,UAAU,WAAW,eAAe,IAAI;AAAA,EACzD;AACF;AASA,IAAM,gBAAsB,WAAK,SAASC,eAAc;AAAA,EACtD;AAAA,EACA,OAAO;AACT,GAAuB;AACrB,QAAM,eAAe,oBAAoB;AAEzC,QAAM,CAAC,OAAO,QAAQ,IAAU,eAAqB,MAAM;AACzD,QAAI,cAAc;AAChB,aAAO,aAAa,eAAe;AAAA,IACrC;AAEA,QAAI,QAAe;AACnB,QAAI;AACF,YAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,UAAI,UAAU,CAAC,QAAQ,SAAS,QAAQ,EAAE,SAAS,MAAM,GAAG;AAC1D,gBAAQ;AAAA,MACV;AAAA,IACF,QAAQ;AAAA,IAER;AAEA,WAAO,aAAa,KAAK;AAAA,EAC3B,CAAC;AAGD,EAAM,gBAAU,MAAM;AACpB,aAAS,gBAAgB,aAAa,cAAc,MAAM,aAAa;AAAA,EACzE,GAAG,CAAC,MAAM,aAAa,CAAC;AAGxB,EAAM,gBAAU,MAAM;AACpB,QAAI,gBAAgB,MAAM,UAAU,iBAAiB;AACnD,eAAS,aAAa,eAAe,CAAC;AAAA,IACxC;AAAA,EACF,GAAG,CAAC,cAAc,iBAAiB,MAAM,KAAK,CAAC;AAE/C,QAAM,WAAiB;AAAA,IACrB,CAAC,UAAiB;AAChB,UAAI,aAAc;AAElB,YAAM,OAAO,aAAa,KAAK;AAC/B,eAAS,IAAI;AAEb,UAAI;AACF,qBAAa,QAAQ,aAAa,KAAK;AAAA,MACzC,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAGA,EAAM,gBAAU,MAAM;AACpB,QAAI,gBAAgB,MAAM,UAAU,SAAU;AAE9C,UAAM,QAAQ,OAAO,WAAW,+BAA+B;AAC/D,UAAM,UAAU,MAAM;AACpB,eAAS,CAAC,UAAU;AAAA,QAClB,GAAG;AAAA,QACH,eAAe,eAAe;AAAA,MAChC,EAAE;AAAA,IACJ;AAEA,UAAM,iBAAiB,UAAU,OAAO;AACxC,WAAO,MAAM,MAAM,oBAAoB,UAAU,OAAO;AAAA,EAC1D,GAAG,CAAC,cAAc,MAAM,KAAK,CAAC;AAE9B,QAAM,QAAc;AAAA,IAClB,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,OAAO,QAAQ;AAAA,EAClB;AAEA,SAAO,4CAAC,qBAAqB,UAArB,EAA8B,OAAe,UAAS;AAChE,CAAC;AAED,SAAS,WAAsC;AAC7C,QAAM,UAAgB,iBAAW,oBAAoB;AACrD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACA,SAAO;AACT;;;ACxHA,IAAAC,SAAuB;;;ACAvB,kBAAsC;AACtC,4BAAoC;AAGpC,IAAM,cAAU,2CAAoB;AAAA,EAClC,QAAQ;AAAA,IACN,aAAa;AAAA,MACX,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAa,CAAC,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW;AAAA,IACjF;AAAA,EACF;AACF,CAAC;AAEM,SAAS,MAAM,QAAsB;AAC1C,SAAO,YAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADiBQ,IAAAC,sBAAA;AA5BR,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,WAAW,QAAQ,gBAAgB,OAAO,MAAM,GAAG,MAAM,GAAG,QAAQ;AACrE,UAAM,EAAE,OAAO,eAAe,SAAS,IAAI,SAAS;AAEpD,UAAM,SAAe,mBAAY,MAAM;AACrC,eAAS,UAAU,SAAS,UAAU,MAAM;AAAA,IAC9C,GAAG,CAAC,OAAO,QAAQ,CAAC;AAEpB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,SAAS;AAAA,QACT,cAAY;AAAA,QACZ,OAAO,UAAU,kBAAkB,SAAS,UAAU,MAAM;AAAA,QAC5D,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,QAAQ;AAAA,UACjB,SAAS,QAAQ;AAAA,UACjB,SAAS,QAAQ;AAAA,UACjB;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAGJ;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,kBAAkB,SACd,mCACA;AAAA,gBACJ,SAAS,QAAQ;AAAA,gBACjB,SAAS,QAAQ;AAAA,gBACjB,SAAS,QAAQ;AAAA,cACnB;AAAA,cACA,OAAM;AAAA,cACN,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,QAAO;AAAA,cACP,aAAa;AAAA,cAEb;AAAA,6DAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI;AAAA,gBAC9B;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAc;AAAA,oBACd,GAAE;AAAA;AAAA,gBACJ;AAAA;AAAA;AAAA,UACF;AAAA,UAGA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,kBAAkB,UACd,mCACA;AAAA,gBACJ,SAAS,QAAQ;AAAA,gBACjB,SAAS,QAAQ;AAAA,gBACjB,SAAS,QAAQ;AAAA,cACnB;AAAA,cACA,OAAM;AAAA,cACN,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,QAAO;AAAA,cACP,aAAa;AAAA,cAEb;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAc;AAAA,kBACd,gBAAe;AAAA,kBACf,GAAE;AAAA;AAAA,cACJ;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;;;AE1F1B,IAAAC,SAAuB;AACvB,IAAAC,mCAAuC;;;ACDvC,IAAAC,SAAuB;AACvB,wBAAqB;AACrB,sCAAuC;AAuCjC,IAAAC,sBAAA;AAnCN,IAAM,qBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAOA,IAAM,SAAe;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AAChE,UAAM,OAAO,UAAU,yBAAO;AAC9B,WACE,6CAAC,QAAK,WAAW,GAAG,eAAe,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,GAAG,KAAW,GAAG,OAAO;AAAA,EAE5F;AACF;AACA,OAAO,cAAc;;;AC7CrB,IAAAC,SAAuB;AAoCjB,IAAAC,sBAAA;AAxBN,IAAM,gBAAmD;AAAA,EACvD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,OAAa;AAAA,EACjB,CACE;AAAA,IACE,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,eAAe,aAAa;AAAA,IAC5B,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,cAAc,cAAc,IAAI;AACtC,UAAM,YAAY,SAAS,KAAK,YAAY,SAAS,KAAK,YAAY;AAEtE,UAAM,iBAAiB,YAAY,EAAE,cAAc,UAAU,IAAI,EAAE,eAAe,WAAW;AAE7F,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,WAAW,SAAS;AAAA,QAClC;AAAA,QACC,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;;;AF1CnB,0BAAwB;AAgFhB,IAAAC,sBAAA;AA9ER,IAAMC,sBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,WACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAwBA,IAAMC,UAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,cAAc,YAAY;AAChC,UAAM,SAAS,YAAY;AAE3B,QAAI,SAAS;AACX,aACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAGD,gBAAe,EAAE,SAAS,MAAM,MAAM,CAAC,GAAG,SAAS;AAAA,UACjE;AAAA,UACA,SAAO;AAAA,UACP;AAAA,UACA,iBAAe,aAAa;AAAA,UAC5B,aAAW,aAAa;AAAA,UACvB,GAAG;AAAA,UAEH;AAAA;AAAA,MACH;AAAA,IAEJ;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAGA,gBAAe,EAAE,SAAS,MAAM,MAAM,CAAC,GAAG,SAAS;AAAA,QACjE;AAAA,QACA;AAAA,QACA,iBAAe,aAAa;AAAA,QAC5B,aAAW,aAAa;AAAA,QACvB,GAAG;AAAA,QAEH;AAAA,yBACC,8EACE;AAAA,yDAAC,SAAI,WAAU,yMAAwM;AAAA,YACvN,6CAAC,SAAI,WAAU,uKAAsK;AAAA,aACvL;AAAA,UAEF;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,CAAC,UAAU;AAAA,gBACX,eAAe;AAAA,cACjB;AAAA,cAEC,sBACC,8EACE;AAAA,6DAAC,QAAK,MAAM,6BAAS,MAAM,IAAI,WAAU,gBAAe,eAAa,MAAM;AAAA,gBAC1E,CAAC,UAAU;AAAA,iBACd,IAEA;AAAA;AAAA,UAEJ;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACAC,QAAO,cAAc;;;AGtIrB,IAAAC,SAAuB;AACvB,IAAAC,mCAAuC;AAmEjC,IAAAC,sBAAA;AAhEN,IAAM,yBAAqB,sCAAI,IAAI;AAAA,EACjC,UAAU;AAAA,IACR,SAAS;AAAA;AAAA,MAEP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA;AAAA,MAEJ,IAAI;AAAA;AAAA,MAEJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,IAAI;AAAA;AAAA,MAEJ,MAAM;AAAA;AAAA,MAEN,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACF,CAAC;AAED,IAAM,oBAAqF;AAAA,EACzF,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AACR;AASA,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,UAAU,QAAQ,QAAQ,WAAW,IAAI,UAAU,GAAG,MAAM,GAAG,QAAQ;AACnF,UAAM,YAAa,MAAM,kBAAkB,WAAW,MAAM,KAAK;AAQjE,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,mBAAmB,EAAE,SAAS,MAAM,CAAC,GAAG,SAAS;AAAA,QAC/D;AAAA,QACC,GAAI;AAAA,QAEJ;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;;;AC9EzB,IAAAC,SAAuB;AACvB,IAAAC,mCAAuC;;;ACDvC,IAAAC,SAAuB;AAMnB,IAAAC,sBAAA;AAFJ,IAAM,OAAa;AAAA,EACjB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,4DAA4D,SAAS;AAAA,MAClF,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,KAAK,cAAc;AAEnB,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,6CAAC,SAAI,KAAU,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO;AAEzF;AACA,WAAW,cAAc;AAEzB,IAAM,YAAkB;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,6CAAC,QAAG,KAAU,WAAW,GAAG,wCAAwC,SAAS,GAAI,GAAG,OAAO;AAE/F;AACA,UAAU,cAAc;AAExB,IAAM,kBAAwB;AAAA,EAC5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,6CAAC,SAAI,KAAU,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO;AAEzF;AACA,gBAAgB,cAAc;AAE9B,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,6CAAC,SAAI,KAAU,WAAW,GAAG,YAAY,SAAS,GAAI,GAAG,OAAO;AAEpE;AACA,YAAY,cAAc;AAE1B,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,6CAAC,SAAI,KAAU,WAAW,GAAG,8BAA8B,SAAS,GAAI,GAAG,OAAO;AAEtF;AACA,WAAW,cAAc;;;ADXnB,IAAAC,sBAAA;AAzBN,IAAM,mBAAe,sCAAI,qBAAqB;AAAA,EAC5C,UAAU;AAAA,IACR,SAAS;AAAA,MACP,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AACF,CAAC;AAKD,IAAMC,QAAa;AAAA,EACjB,CAAC,EAAE,WAAW,SAAS,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC5D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,aAAa,EAAE,SAAS,QAAQ,CAAC,GAAG,SAAS;AAAA,QAC1D,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACAA,MAAK,cAAc;;;AE/CnB,IAAAC,SAAuB;AACvB,IAAAC,mCAAuC;AA6CjC,IAAAC,sBAAA;AA1CN,IAAM,oBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,UAAU;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,IAAM,QAAc;AAAA,EAClB,CAAC,EAAE,WAAW,SAAS,QAAQ,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ;AACpF,WACE,8CAAC,SAAI,WAAW,GAAG,cAAc,EAAE,SAAS,QAAQ,KAAK,CAAC,GAAG,SAAS,GAAG,KAAW,GAAG,OACpF;AAAA,cAAQ,6CAAC,SAAI,OAAO,EAAE,aAAa,WAAW,GAAG,UAAU,IAAI,QAAQ,IAAI,GAAI,gBAAK;AAAA,MACpF;AAAA,OACH;AAAA,EAEJ;AACF;AACA,MAAM,cAAc;;;ACrDpB,IAAAC,UAAuB;AACvB,IAAAC,mCAAuC;;;ACDvC,IAAAC,UAAuB;AACvB,IAAAC,mCAAuC;AAuBrC,IAAAC,uBAAA;AAnBF,IAAM,oBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,IAAM,QAAc,mBAGlB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACnC,8CAAC,SAAI,KAAU,MAAK,SAAQ,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO,CAC9F;AACD,MAAM,cAAc;AAEpB,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,8CAAC,QAAG,KAAU,WAAW,GAAG,oCAAoC,SAAS,GAAI,GAAG,OAAO;AAE3F;AACA,WAAW,cAAc;AAEzB,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,8CAAC,SAAI,KAAU,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO,CACtF;AACD,iBAAiB,cAAc;;;ADhB3B,IAAAC,uBAAA;AApBJ,IAAMC,qBAAgB,sCAAI,IAAI;AAAA,EAC5B,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC;AAKD,IAAMC,SAAc;AAAA,EAClB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,8CAAC,SAAe,KAAU,WAAW,GAAGD,eAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAE/F;AACAC,OAAM,cAAc;;;AE5BpB,IAAAC,UAAuB;;;ACAvB,IAAAC,UAAuB;AAOjB,IAAAC,uBAAA;AAHN,IAAM,QAAc;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAAQ;AACtC,WACE;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;;;ADEd,IAAAC,uBAAA;AARN,IAAMC,SAAc;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,cAAc,OAAO,aAAa,OAAO,IAAI,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC7F,UAAM,cAAoB,cAAM;AAChC,UAAM,UAAU,MAAM;AACtB,UAAM,UAAU,GAAG,OAAO;AAC1B,UAAM,gBAAgB,GAAG,OAAO;AAEhC,UAAM,eACJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,QACA,gBAAc,CAAC,CAAC;AAAA,QAChB,oBAAkB,GAAG,SAAS,SAAS,eAAe,aAAa;AAAA,QACnE,WAAW;AAAA,UACT;AAAA,UACA,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS;AAAA,UACT,YAAY;AAAA,UACZ;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAGF,QAAI,CAAC,QAAQ,CAAC,cAAc;AAC1B,aACE,+CAAC,SAAI,WAAU,uBACZ;AAAA,iBACC;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,WAAW;AAAA,cACT;AAAA,cACA,WAAW,6CAA6C;AAAA,cACxD,SAAS;AAAA,YACX;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QAED;AAAA,SACC,eAAe,UACf,+CAAC,SAAI,WAAU,uBACZ;AAAA,yBACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAAQ,IAAI,eACxC,uBACH;AAAA,UAED,SACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,IAAI;AAAA,cACJ,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,WAEJ;AAAA,SAEJ;AAAA,IAEJ;AAEA,WACE,+CAAC,SAAI,WAAU,uBACZ;AAAA,eACC;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA,WAAW,6CAA6C;AAAA,YACxD,SAAS;AAAA,UACX;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,MAEF,+CAAC,SAAI,WAAU,mBACZ;AAAA,gBAAQ,8CAAC,SAAI,WAAU,4CAA4C,gBAAK;AAAA,QACxE;AAAA,QACA,gBACC,8CAAC,SAAI,WAAU,6CAA6C,wBAAa;AAAA,SAE7E;AAAA,OACE,eAAe,UACf,+CAAC,SAAI,WAAU,uBACZ;AAAA,uBACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAAQ,IAAI,eACxC,uBACH;AAAA,QAED,SACC,8CAAC,cAAW,SAAQ,MAAK,IAAI,SAAS,WAAU,sCAC7C,iBACH;AAAA,SAEJ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACAA,OAAM,cAAc;;;AEpHpB,IAAAC,UAAuB;AACvB,IAAAC,qBAAmC;AACnC,IAAAC,uBAAsB;AACtB,IAAAC,mCAAuC;;;ACHvC,IAAAC,UAAuB;AACvB,wBAAmC;AACnC,IAAAC,uBAAsB;AAkBd,IAAAC,uBAAA;AAdR,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH,sBACC,8CAAmB,6BAAlB,EAA4B,WAAW,GAAG,2BAA2B,GACpE,wDAAC,8BAAM,WAAU,WAAU,GAC7B;AAAA;AAEJ,CACD;AACD,SAAS,cAAgC,uBAAK;AAE9C,IAAM,oBAA0B,mBAG9B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,6BAA6B,SAAS;AAAA,IACnD,GAAG;AAAA,IAEH,sBAAY,8CAAC,8BAAM,WAAU,WAAU;AAAA;AAC1C,CACD;AACD,kBAAkB,cAAgC,4BAAU;;;AD4B9C,IAAAC,uBAAA;AA3Dd,IAAM,uBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,OACE;AAAA,QACF,SACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAYA,IAAMC,YAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,SAAS,MAAM,OAAO,aAAa,OAAO,IAAI,UAAU,GAAG,MAAM,GAAG,QAAQ;AACxF,UAAM,cAAoB,cAAM;AAChC,UAAM,aAAa,MAAM;AACzB,UAAM,UAAU,GAAG,UAAU;AAE7B,WACE,+CAAC,SAAI,WAAU,0BACb;AAAA,oDAAC,SAAI,WAAU,oCACb;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ;AAAA,UACA,gBAAc,CAAC,CAAC;AAAA,UAChB,oBAAkB,QAAQ,UAAU;AAAA,UACpC,WAAW;AAAA,YACT,iBAAiB,EAAE,SAAS,KAAK,CAAC;AAAA,YAClC;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,UACF;AAAA,UACC,GAAG;AAAA,UAEJ,wDAAmB,8BAAlB,EACC;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,OAAO,gBAAgB,QAAQ,eAAe;AAAA;AAAA,UACzD,GACF;AAAA;AAAA,MACF,GACF;AAAA,OAEE,SAAS,eAAe,UACxB,+CAAC,SAAI,WAAU,uBACZ;AAAA,iBACC;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,WAAW;AAAA,cACT;AAAA,cACA,WACI,qCACA,YAAY,UACV,sDACA,YAAY,YACV,kDACA;AAAA,cACR,SAAS;AAAA,YACX;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QAED,eACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAC5B,uBACH;AAAA,QAED,SACC,8CAAC,cAAW,SAAQ,MAAK,IAAI,SAAS,WAAU,sCAC7C,iBACH;AAAA,SAEJ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACAA,UAAS,cAAc;;;AE/GvB,IAAAC,UAAuB;AACvB,uBAAkC;AAClC,IAAAC,mCAAuC;AA2E7B,IAAAC,uBAAA;AAvEV,IAAM,yBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,QACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,0BAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAYA,IAAM,SAAe;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,OAAO,aAAa,OAAO,IAAI,UAAU,GAAG,MAAM,GAAG,QAAQ;AACxF,UAAM,cAAoB,cAAM;AAChC,UAAM,WAAW,MAAM;AACvB,UAAM,UAAU,GAAG,QAAQ;AAE3B,WACE,+CAAC,SAAI,WAAU,2BACb;AAAA;AAAA,QAAkB;AAAA,QAAjB;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ;AAAA,UACA,gBAAc,CAAC,CAAC;AAAA,UAChB,oBAAkB,QAAQ,UAAU;AAAA,UACpC,WAAW;AAAA,YACT,mBAAmB,EAAE,SAAS,KAAK,CAAC;AAAA,YACpC,YAAY;AAAA,YACZ;AAAA,UACF;AAAA,UACC,GAAG;AAAA,UAEJ,wDAAkB,wBAAjB,EAAuB,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,CAAC,GAAG;AAAA;AAAA,MACxE;AAAA,OAEE,SAAS,eAAe,UACxB,+CAAC,SAAI,WAAU,uBACZ;AAAA,iBACC;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,WAAW;AAAA,cACT;AAAA,cACA,WACI,6CACA,QACE,sDACA;AAAA,YACR;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QAED,eACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAC5B,uBACH;AAAA,QAED,SACC,8CAAC,cAAW,SAAQ,MAAK,IAAI,SAAS,WAAU,sCAC7C,iBACH;AAAA,SAEJ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;;;ACjHrB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;;;ACCvC,IAAAC,UAAuB;AACvB,sBAAiC;AACjC,IAAAC,uBAA8C;AAc5C,IAAAC,uBAAA;AAVF,IAAM,SAAyB;AAI/B,IAAM,cAA8B;AAEpC,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,8CAAiB,sBAAhB,EAAqB,SAAO,MAC3B,wDAAC,oCAAY,WAAU,sBAAqB,GAC9C;AAAA;AAAA;AACF,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,uBAA6B,mBAGjC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,wDAAwD,SAAS;AAAA,IAC9E,GAAG;AAAA,IAEJ,wDAAC,kCAAU,WAAU,WAAU;AAAA;AACjC,CACD;AACD,qBAAqB,cAA8B,+BAAe;AAElE,IAAM,yBAA+B,mBAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,wDAAwD,SAAS;AAAA,IAC9E,GAAG;AAAA,IAEJ,wDAAC,oCAAY,WAAU,WAAU;AAAA;AACnC,CACD;AACD,uBAAuB,cAA8B,iCAAiB;AAEtE,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,UAAU,WAAW,UAAU,GAAG,MAAM,GAAG,QACzD,8CAAiB,wBAAhB,EACC;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,oDAAC,wBAAqB;AAAA,MACtB;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,aAAa,YACX;AAAA,UACJ;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,MACA,8CAAC,0BAAuB;AAAA;AAAA;AAC1B,GACF,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,6BAA6B,SAAS;AAAA,IACnD,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAEhD,IAAM,aAAmB,mBAGvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,oDAAC,UAAK,WAAU,gEACd,wDAAiB,+BAAhB,EACC,wDAAC,8BAAM,WAAU,WAAU,GAC7B,GACF;AAAA,MAEA,8CAAiB,0BAAhB,EAA0B,UAAS;AAAA;AAAA;AACtC,CACD;AACD,WAAW,cAA8B,qBAAK;AAE9C,IAAM,kBAAwB,mBAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,gBAAgB,cAA8B,0BAAU;;;ADpD9C,IAAAC,uBAAA;AA3EV,IAAM,qBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,QAAQ;AAAA,QACR,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAwBA,IAAMC,UAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GACA,QACG;AACH,UAAM,cAAoB,cAAM;AAChC,UAAM,WAAW,MAAM;AACvB,UAAM,UAAU,GAAG,QAAQ;AAC3B,UAAM,gBAAgB,GAAG,QAAQ;AAEjC,WACE,+CAAC,SAAI,WAAU,uBACZ;AAAA,eACC;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA,WAAW,6CAA6C;AAAA,YACxD,SAAS;AAAA,UACX;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,MAGF;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UAEA;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA,IAAI;AAAA,gBACJ,gBAAc,CAAC,CAAC;AAAA,gBAChB,oBAAkB,GAAG,SAAS,SAAS,eAAe,aAAa;AAAA,gBACnE,WAAW;AAAA,kBACT,eAAe,EAAE,SAAS,KAAK,CAAC;AAAA,kBAChC,SAAS;AAAA,kBACT;AAAA,gBACF;AAAA,gBAEA,wDAAC,eAAY,aAA0B;AAAA;AAAA,YACzC;AAAA,YACA,8CAAC,iBACE,kBAAQ,IAAI,CAAC,WACZ,8CAAC,cAA8B,OAAO,OAAO,OAAO,UAAU,OAAO,UAClE,iBAAO,SADO,OAAO,KAExB,CACD,GACH;AAAA;AAAA;AAAA,MACF;AAAA,MAEC,eACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAAQ,IAAI,eACxC,uBACH;AAAA,MAGD,SACC,8CAAC,cAAW,SAAQ,MAAK,IAAI,SAAS,WAAU,sCAC7C,iBACH;AAAA,OAEJ;AAAA,EAEJ;AACF;AACAA,QAAO,cAAc;;;AEhJrB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;;;ACDvC,IAAAC,UAAuB;AAOjB,IAAAC,uBAAA;AAHN,IAAM,WAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;;;AD0Db,IAAAC,uBAAA;AAtEV,IAAM,uBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,QAAQ;AAAA,QACR,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAgBA,IAAM,WAAiB;AAAA,EACrB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,cAAoB,cAAM;AAChC,UAAM,aAAa,MAAM;AACzB,UAAM,UAAU,GAAG,UAAU;AAC7B,UAAM,gBAAgB,GAAG,UAAU;AACnC,UAAM,iBAAiB,OAAO,UAAU,WAAW,MAAM,SAAS;AAElE,WACE,+CAAC,SAAI,WAAU,uBACZ;AAAA,eACC;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA,WAAW,6CAA6C;AAAA,YACxD,SAAS;AAAA,UACX;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,MAGF,+CAAC,SAAI,WAAU,YACZ;AAAA,gBAAQ,8CAAC,SAAI,WAAU,4CAA4C,gBAAK;AAAA,QACzE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,IAAI;AAAA,YACJ;AAAA,YACA,gBAAc,CAAC,CAAC;AAAA,YAChB,oBAAkB,GAAG,SAAS,SAAS,eAAe,aAAa;AAAA,YACnE,WAAW;AAAA,cACT,iBAAiB,EAAE,SAAS,KAAK,CAAC;AAAA,cAClC,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,QAAQ;AAAA,cACR,iBAAiB;AAAA,cACjB,gBAAgB,CAAC,iBAAiB;AAAA,cAClC,iBAAiB,gBAAgB;AAAA,cACjC;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACC,GAAG;AAAA;AAAA,QACN;AAAA,QACC,iBACC,8CAAC,SAAI,WAAU,8CAA8C,yBAAc;AAAA,QAE5E,gBACC,8CAAC,SAAI,WAAU,6CAA6C,wBAAa;AAAA,SAE7E;AAAA,OAEE,eAAe,SAAU,aAAa,cACtC,+CAAC,SAAI,WAAU,2CACZ;AAAA,uBACC,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAAQ,IAAI,eACxC,uBACH;AAAA,SAEA,SAAU,aAAa,cACvB,+CAAC,SAAI,WAAU,mCACZ;AAAA,uBAAa,aACZ;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,WAAW;AAAA,gBACT,kBAAkB,YACd,uCACA;AAAA,cACN;AAAA,cAEC;AAAA;AAAA,gBAAe;AAAA,gBAAE;AAAA;AAAA;AAAA,UACpB;AAAA,UAED,SACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,IAAI;AAAA,cACJ,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,WAEJ;AAAA,SAEJ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;;;AE9JvB,IAAAC,UAAuB;AACvB,qBAAgC;AAChC,IAAAC,oCAAuC;AAYrC,IAAAC,uBAAA;AARF,IAAM,oBAAgB;AAAA,EACpB;AACF;AAEA,IAAMC,SAAc,mBAGlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,8CAAgB,qBAAf,EAAoB,KAAU,WAAW,GAAG,cAAc,GAAG,SAAS,GAAI,GAAG,OAAO,CACtF;AACDA,OAAM,cAA6B,oBAAK;;;AChBxC,mBAAwB;AACxB,IAAAC,oCAAuC;;;ACCvC,IAAAC,UAAuB;AACvB,yBAAoC;AAQlC,IAAAC,uBAAA;AAJF,IAAMC,aAAkB,mBAGtB,CAAC,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GAAG,QACzE;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,gBAAgB,eAAe,mBAAmB;AAAA,MAClD;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACDA,WAAU,cAAiC,wBAAK;;;ADd5C,IAAAC,uBAAA;AAFJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAAsE;AACpE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,IAAM,oBAAgB,uCAAI,sEAAsE;AAAA,EAC9F,UAAU;AAAA,IACR,aAAa;AAAA,MACX,UAAU,CAAC,2CAA2C;AAAA,MACtD,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,aAAa;AAAA,EACf;AACF,CAAC;AAED,SAAS,MAAM;AAAA,EACb;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAAqE;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkB;AAAA,MAClB,WAAW,GAAG,cAAc,EAAE,YAAY,CAAC,GAAG,SAAS;AAAA,MACtD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iEAAiE,SAAS;AAAA,MACvF,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAuC;AAC/E,SACE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,MAAM,GAA8B;AAC5E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc,CAAC,CAAC;AAAA,MAChB,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,sDAACC,YAAA,EAAU,WAAU,4BAA2B;AAAA,QAC/C,YACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,aAAU;AAAA,YAET;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,QAAM,cAAU,sBAAQ,MAAM;AAC5B,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AAEA,QAAI,QAAQ,WAAW,KAAK,OAAO,CAAC,GAAG,SAAS;AAC9C,aAAO,OAAO,CAAC,EAAE;AAAA,IACnB;AAEA,WACE,8CAAC,QAAG,WAAU,sCACX,iBAAO,IAAI,CAAC,OAAO,UAAU,OAAO,WAAW,8CAAC,QAAgB,gBAAM,WAAd,KAAsB,CAAK,GACtF;AAAA,EAEJ,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,WAAW,GAAG,wCAAwC,SAAS;AAAA,MAC9D,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;;;AExNA,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;AAGvC,IAAAC,uBAA6B;AA4DvB,IAAAC,uBAAA;AA1DN,IAAM,mBAAe;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAWA,IAAM,OAAa;AAAA,EACjB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,aACJ,YACC,OAAO,MAAM,SAAS,aACpB,MAAM,KAAK,WAAW,SAAS,KAC9B,MAAM,KAAK,WAAW,UAAU,KAChC,MAAM,KAAK,WAAW,SAAS,KAC/B,MAAM,KAAK,WAAW,MAAM;AAElC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,aAAa,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,QACvD,GAAI,YAAY;AAAA,UACf,iBAAiB;AAAA,UACjB,SAAS,CAAC,MAAwB,EAAE,eAAe;AAAA,QACrD;AAAA,QACC,GAAG;AAAA,QACH,GAAI,cACH,CAAC,YAAY;AAAA,UACX,KAAK;AAAA,UACL,QAAQ;AAAA,QACV;AAAA,QAED;AAAA;AAAA,UACA,QAAQ,8CAAC,UAAK,WAAU,4BAA4B,gBAAK;AAAA,UACzD,oBAAoB,cAAc,CAAC,YAClC,8CAAC,UAAK,WAAU,4CAA2C,eAAY,QACrE,wDAAC,QAAK,MAAM,mCAAc,MAAM,IAAI,GACtC;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;;;ACzFnB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;;;ACDvC,IAAAC,UAAuB;AACvB,IAAAC,qBAAqB;AACrB,IAAAC,oCAAuC;AAoCjC,IAAAC,uBAAA;AAjCN,IAAM,wBAAoB,uCAAI,kBAAkB;AAAA,EAC9C,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAC;AAQD,IAAM,YAAkB;AAAA,EACtB,CAAC,EAAE,WAAW,MAAM,SAAS,UAAU,OAAO,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1E,UAAM,YAAY,UAAU,0BAAO;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,kBAAkB,EAAE,MAAM,QAAQ,CAAC,GAAG,SAAS;AAAA,QAC5D,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,UAAU,cAAc;;;ADVhB,IAAAC,uBAAA;AAjCR,IAAM,sBAAkB,uCAAI,YAAY;AAAA,EACtC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,YAAY;AAAA,MACV,aAAa;AAAA,MACb,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AACF,CAAC;AAOD,IAAM,UAAgB;AAAA,EACpB,CAAC,EAAE,WAAW,SAAS,YAAY,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC/D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,gBAAgB,EAAE,SAAS,WAAW,CAAC,GAAG,SAAS;AAAA,QAChE,GAAG;AAAA,QAEJ,wDAAC,aAAW,UAAS;AAAA;AAAA,IACvB;AAAA,EAEJ;AACF;AACA,QAAQ,cAAc;;;AE3CtB,IAAAC,UAAuB;AAwCT,IAAAC,uBAAA;AAzBd,IAAM,gBAAsB;AAAA,EAC1B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW,GAAG,8CAA8C,SAAS;AAAA,QACpE,GAAG;AAAA,QAEJ,yDAAC,SAAI,WAAU,2CACb;AAAA,yDAAC,SAAI,WAAU,6DACZ;AAAA,uBACC,8CAAC,SAAM,SAAQ,WAAU,WAAU,WAChC,mBACH;AAAA,YAGF,+CAAC,SAAI,WAAU,2CACb;AAAA,4DAAC,cAAW,SAAS,cAAe,iBAAM;AAAA,cAEzC,eACC,8CAAC,cAAW,SAAS,oBAAoB,OAAM,SAC5C,uBACH;AAAA,eAEJ;AAAA,aACF;AAAA,UAEC,UAAU,8CAAC,SAAI,WAAU,QAAQ,kBAAO;AAAA,WAC3C;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;;;AC9D5B,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;AAEvC,IAAAC,qBAAqB;AAuEf,IAAAC,uBAAA;AArEN,IAAM,mBAAe,uCAAI,QAAQ;AAAA,EAC/B,UAAU;AAAA,IACR,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AACF,CAAC;AAwCD,IAAM,OAAa;AAAA,EACjB,CACE,EAAE,WAAW,OAAO,SAAS,MAAM,MAAM,KAAK,MAAM,MAAM,UAAU,OAAO,UAAU,GAAG,MAAM,GAC9F,QACG;AACH,UAAM,YAAY,UAAU,0BAAO;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT,aAAa,EAAE,OAAO,QAAQ,CAAC;AAAA,UAC/B,SAAS,UAAa,aAAa,IAAI;AAAA,UACvC,SAAS,UAAa,aAAa,IAAI;AAAA,UACvC,QAAQ,UAAa,OAAO,GAAG;AAAA,UAC/B,SAAS,UAAa,SAAS,IAAI;AAAA,UACnC,SAAS,UAAa,SAAS,IAAI;AAAA,UACnC;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;;;AC5FnB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;AAEvC,IAAAC,qBAAqB;AA6Ef,IAAAC,uBAAA;AA3EN,IAAM,kBAAc,uCAAI,QAAQ;AAAA,EAC9B,UAAU;AAAA,IACR,WAAW;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,kBAAkB;AAAA,IACpB;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,WAAW;AAAA,IACX,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACF,CAAC;AAgCD,IAAM,MAAY;AAAA,EAChB,CACE,EAAE,WAAW,WAAW,OAAO,SAAS,MAAM,KAAK,UAAU,OAAO,UAAU,GAAG,MAAM,GACvF,QACG;AACH,UAAM,YAAY,UAAU,0BAAO;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT,YAAY,EAAE,WAAW,OAAO,SAAS,KAAK,CAAC;AAAA,UAC/C,QAAQ,UAAa,OAAO,GAAG;AAAA,UAC/B;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,IAAI,cAAc;;;AC9FlB,IAAAC,UAAuB;AAuCb,IAAAC,uBAAA;AA3BV,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,UAAU,YAAY,QAAQ,QAAQ,OAAO,IAAI,WAAW,GAAG,MAAM,GAAG,QAAQ;AACjF,UAAM,YACJ,UAAU,SACN,6BACA,UAAU,UACR,6BACA;AAER,QAAI,YAAY,UAAU;AACxB,YAAMC,eAAc,MAAM;AAC1B,YAAMC,SAAQ,OAAOD;AACrB,YAAME,UAAS;AAEf,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,OAAOD;AAAA,UACP,QAAQC;AAAA,UACR,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,MAAK;AAAA,UACL,cAAW;AAAA,UACX,WAAW,GAAG,gBAAgB,SAAS;AAAA,UACtC,GAAG;AAAA,UAEJ;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,OAAO,EAAE,MAAM,UAAU;AAAA;AAAA,UAC3B;AAAA;AAAA,MACF;AAAA,IAEJ;AAGA,UAAM,cAAc,SAAS;AAC7B,UAAM,QAAQ,OAAO;AACrB,UAAM,SAAS;AAEf,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,MAAK;AAAA,QACL,cAAW;AAAA,QACX,WAAW,GAAG,gBAAgB,SAAS;AAAA,QACtC,GAAG;AAAA,QAEJ;AAAA,yDAAC,OAAE,OAAO,EAAE,MAAM,UAAU,GAC1B;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,GAAE;AAAA;AAAA,YACJ;AAAA,YACA,8CAAC,UAAK,WAAU,wBAAuB,GAAE,6CAA4C;AAAA,aACvF;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,EAAE,MAAM,UAAU;AAAA,cACzB,GAAE;AAAA;AAAA,UACJ;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;;;ACzGzB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;AAEvC,IAAAC,uBAAyC;;;ACHzC,IAAAC,UAAuB;AACvB,IAAAC,mBAAiC;AACjC,IAAAC,uBAAsB;AAsBlB,IAAAC,uBAAA;AALJ,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,SAAS,OAAO,cAAc,GAAG,QAAQ;AACvD,SACE,+CAAiB,uBAAhB,EAAqB,OAAc,eAClC;AAAA;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC;AAAA,QACA,WAAW;AAAA;AAAA,UAET;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,QACF;AAAA,QAEA,wDAAC,QAAK,MAAM,4BAAO,MAAM,IAAI;AAAA;AAAA,IAC/B;AAAA,IACA,8CAAiB,yBAAhB,EACC;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC,WAAW;AAAA;AAAA,UAET;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,QACF;AAAA,QACA,UAAS;AAAA,QAET,wDAAiB,2BAAhB,EAAyB,WAAU,OACjC,kBAAQ,IAAI,CAAC,WACZ;AAAA,UAAiB;AAAA,UAAhB;AAAA,YAEC,OAAO,OAAO;AAAA,YACd,UAAU,OAAO;AAAA,YACjB,WAAW;AAAA;AAAA,cAET;AAAA,cACA;AAAA;AAAA,cAEA;AAAA;AAAA,cAEA;AAAA,cACA;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YAEA,wDAAiB,2BAAhB,EAA0B,iBAAO,OAAM;AAAA;AAAA,UAhBnC,OAAO;AAAA,QAiBd,CACD,GACH;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ,CAAC;AAED,eAAe,cAAc;;;AD/CzB,IAAAC,uBAAA;AA7CJ,IAAM,qBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAoBA,IAAM,gBAAsB,sBAGzB;AAAA,EACD,kBAAkB;AAAA,EAClB,qBAAqB,MAAM;AAAA,EAAC;AAC9B,CAAC;AAED,IAAM,mBAAmB,MAAY,mBAAW,aAAa;AAE7D,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC,8CAAC,SAAI,KAAU,WAAW,GAAG,qBAAqB,SAAS,GAAI,GAAG,OAC/D,UACH;AAEJ;AACA,WAAW,cAAc;AAEzB,IAAM,YAAkB,mBAKtB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QAAQ;AACzC,SACE,8CAAC,SAAI,KAAU,WAAW,GAAG,4CAA4C,SAAS,GAAI,GAAG,OACvF,wDAAC,QAAG,WAAU,kCACX,gBAAM,IAAI,CAAC,SACV,8CAAC,QACC;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,KAAK;AAAA,MACX,SAAS,KAAK,SAAS,YAAY;AAAA,MACnC,MAAK;AAAA,MACL,WAAW,GAAG,wCAAwC,KAAK,UAAU,aAAa;AAAA,MAEjF;AAAA,aAAK,QACJ,8CAAC,UAAK,WAAU,iCACd,wDAAC,QAAK,MAAM,KAAK,MAAM,MAAM,IAAI,GACnC;AAAA,QAED,KAAK;AAAA;AAAA;AAAA,EACR,KAbO,KAAK,IAcd,CACD,GACH,GACF;AAEJ,CAAC;AACD,UAAU,cAAc;AAExB,IAAM,gBAAsB;AAAA,EAU1B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,WACE,+CAAC,SAAI,KAAU,WAAW,GAAG,qCAAqC,SAAS,GAAI,GAAG,OAC/E;AAAA,sBAAgB,SAAS,KACxB;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,OAAO;AAAA,UACP,eAAe;AAAA;AAAA,MACjB;AAAA,MAED;AAAA,MACA;AAAA,OACH;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAE5B,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,kBAAkB,oBAAoB,IAAI,iBAAiB;AAEnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,SAAS,MAAM,oBAAoB,CAAC,gBAAgB;AAAA,MACpD,cAAY,mBAAmB,eAAe;AAAA,MAC9C,iBAAe;AAAA,MACf,iBAAc;AAAA,MACb,GAAG;AAAA,MAEH,6BAAmB,8CAAC,QAAK,MAAM,wBAAG,MAAM,IAAI,IAAK,8CAAC,QAAK,MAAM,2BAAM,MAAM,IAAI;AAAA;AAAA,EAChF;AAEJ,CAAC;AACD,iBAAiB,cAAc;AAE/B,IAAM,aAAmB;AAAA,EAWvB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,kBAAkB,oBAAoB,IAAI,iBAAiB;AAEnE,QAAI,CAAC,iBAAkB,QAAO;AAE9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,IAAG;AAAA,QACH,cAAW;AAAA,QACX,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ,yDAAC,OAAI,WAAU,UAAS,KAAK,GAAG,WAAU,eACxC;AAAA,wDAAC,QAAG,WAAU,4DACX,gBAAM,IAAI,CAAC,SACV,8CAAC,QACC;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,KAAK;AAAA,cACX,SAAS,KAAK,SAAS,YAAY;AAAA,cACnC,WAAW;AAAA,gBACT;AAAA,gBACA,KAAK,UAAU;AAAA,cACjB;AAAA,cACA,SAAS,MAAM,oBAAoB,KAAK;AAAA,cAEvC;AAAA,qBAAK,QACJ,8CAAC,UAAK,WAAU,iCACd,wDAAC,QAAK,MAAM,KAAK,MAAM,MAAM,IAAI,GACnC;AAAA,gBAED,KAAK;AAAA;AAAA;AAAA,UACR,KAhBO,KAAK,IAiBd,CACD,GACH;AAAA,UAEA,+CAAC,SAAI,WAAU,2BACZ;AAAA,4BAAgB,SAAS,KACxB,8CAAC,SAAI,WAAU,eACb;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,OAAO;AAAA,gBACP,eAAe;AAAA;AAAA,YACjB,GACF;AAAA,YAED,eAAe,8CAAC,SAAI,WAAU,sBAAsB,uBAAY;AAAA,YAChE,aAAa,8CAAC,SAAI,WAAU,UAAU,qBAAU;AAAA,aACnD;AAAA,WACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAEzB,IAAM,SAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,CAAC,kBAAkB,mBAAmB,IAAU,iBAAS,KAAK;AAEpE,IAAM,kBAAU,MAAM;AACpB,UAAI,kBAAkB;AACpB,iBAAS,KAAK,MAAM,WAAW;AAAA,MACjC,OAAO;AACL,iBAAS,KAAK,MAAM,WAAW;AAAA,MACjC;AACA,aAAO,MAAM;AACX,iBAAS,KAAK,MAAM,WAAW;AAAA,MACjC;AAAA,IACF,GAAG,CAAC,gBAAgB,CAAC;AAErB,WACE,8CAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,kBAAkB,oBAAoB,GACrE,yDAAC,YAAO,KAAU,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAC3E;AAAA,oDAAC,aAAU,MAAK,MACd,yDAAC,OAAI,WAAU,OAAM,OAAM,UAAS,SAAQ,WAAU,WAAU,QAC9D;AAAA,sDAAC,cACE,kBAAQ,8CAAC,cAAW,SAAQ,YAAW,OAAM,QAAO,MAAM,IAAI,GACjE;AAAA,QAEA,8CAAC,aAAU,OAAc;AAAA,QAEzB,+CAAC,OAAI,WAAU,OAAM,OAAM,UAAS,KAAK,GACvC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACF;AAAA,UAEC,aAAa,8CAAC,SAAI,WAAU,aAAa,qBAAU;AAAA,UAEpD,8CAAC,oBAAiB;AAAA,WACpB;AAAA,SACF,GACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,OACF,GACF;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;;;AE1TrB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;;;ACDvC,IAAAC,UAAuB;;;ACAvB,IAAAC,UAAuB;AACvB,IAAAC,oCAAuC;AAgD/B,IAAAC,uBAAA;AA3CR,IAAM,sBAAkB,uCAAI,IAAI;AAAA,EAC9B,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACF,CAAC;AASD,IAAM,UAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,OAAO;AACT,aACE,+CAAC,SAAI,KAAU,WAAW,GAAG,4BAA4B,SAAS,GAAI,GAAG,OACtE;AAAA,0BAAkB,WACjB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,aAAY;AAAA,YACZ,WAAW,GAAG,gBAAgB,EAAE,SAAS,KAAK,CAAC,GAAG,QAAQ;AAAA;AAAA,QAC5D;AAAA,QAEF,8CAAC,cAAW,SAAQ,SAAQ,OAAM,SAAQ,WAAU,0BACjD,iBACH;AAAA,QACC,kBAAkB,UACjB;AAAA,UAACA;AAAA,UAAA;AAAA,YACC,aAAY;AAAA,YACZ,WAAW,GAAG,gBAAgB,EAAE,SAAS,KAAK,CAAC,GAAG,QAAQ;AAAA;AAAA,QAC5D;AAAA,SAEJ;AAAA,IAEJ;AAEA,WACE;AAAA,MAACA;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,gBAAgB,EAAE,SAAS,KAAK,CAAC;AAAA,UACjC,gBAAgB,cAAc;AAAA,UAC9B;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,QAAQ,cAAc;;;AD7EtB,IAAAC,uBAAsB;AAYZ,IAAAC,uBAAA;AANV,IAAM,OAAa;AAAA,EACjB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,UAAM,gBAAsB,iBAAS,QAAQ,QAAQ;AACrD,WACE,8CAAC,SAAI,KAAU,WAAW,GAAG,iBAAiB,SAAS,GAAI,GAAG,OAC3D,wBAAc,IAAI,CAAC,OAAO,UACzB,+CAAO,kBAAN,EACE;AAAA;AAAA,MACA,QAAQ,cAAc,SAAS,KAAK,8CAAC,WAAQ,SAAQ,UAAS;AAAA,SAF5C,KAGrB,CACD,GACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;AAQnB,IAAM,WAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,MAAM,UAAU,cAAc,MAAM,GAAG,MAAM,GAAG,QAC5D;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,eAAe;AAAA,QACf;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,gBAAQ,8CAAC,SAAI,WAAU,kDAAkD,gBAAK;AAAA,QAC/E,8CAAC,SAAI,WAAU,kBAAkB,UAAS;AAAA;AAAA;AAAA,EAC5C;AAEJ;AACA,SAAS,cAAc;AAMvB,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,2DAA2D,SAAS;AAAA,MACjF,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AACA,WAAW,cAAc;AAOzB,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,MAAM,GAAG,QAAQ;AAC3D,WACE,8CAAC,QAAG,KAAU,WAAW,GAAG,8BAA8B,SAAS,GAAI,GAAG,OACvE,gBAAM,IAAI,CAAC,MAAM,UAChB,+CAAC,QAAe,WAAU,iCACvB;AAAA,kBAAY,WACX,8CAAC,UAAK,WAAU,oEAAmE,IAEnF,8CAAC,SAAI,WAAU,wBACb,wDAAC,QAAK,MAAM,4BAAO,MAAM,IAAI,WAAU,0BAAyB,GAClE;AAAA,MAEF,8CAAC,cAAW,SAAQ,QAAO,OAAM,SAC9B,gBACH;AAAA,SAVO,KAWT,CACD,GACH;AAAA,EAEJ;AACF;AACA,YAAY,cAAc;;;ADqBd,IAAAC,uBAAA;AA7GZ,IAAM,0BAAsB,uCAAI,IAAI;AAAA,EAClC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC;AAsED,IAAM,cAAoB;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,UAAU;AAAA,IACV,MAAMC;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EACL,GACA,QACG;AACH,WACE;AAAA,MAACC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW,GAAG,kCAAkC,SAAS;AAAA,QACxD,GAAG;AAAA,QAEJ,yDAAC,SAAI,WAAU,0CAEX;AAAA,WAAAD,SAAQ,UACR,+CAAC,SAAI,WAAU,4CACZ;AAAA,YAAAA,SACC,8CAAC,SAAI,WAAU,4CACb;AAAA,cAACA;AAAA,cAAA;AAAA,gBACC,WAAW,GAAG,WAAW,aAAa,iBAAiB;AAAA,gBACvD,aAAa;AAAA;AAAA,YACf,GACF;AAAA,YAGD,SACC,8CAAC,SAAI,WAAU,yFACb;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,IAAG;AAAA,gBACH,WAAU;AAAA,gBAET;AAAA;AAAA,YACH,GACF;AAAA,aAEJ;AAAA,UAGF,8CAAC,cAAW,SAAQ,MAAK,WAAU,mBAChC,iBACH;AAAA,UAEA,8CAAC,cAAW,SAAQ,QAAO,WAAU,sBAClC,uBACH;AAAA,UAEC,SAAS,MAAM,SAAS,KAAK,8CAAC,eAAY,OAAc,SAAQ,UAAS;AAAA,UAEzE,YAAY,YACX,+CAAC,OAAE,MAAM,UAAU,WAAU,8CAC1B;AAAA;AAAA,YAAS;AAAA,aACZ;AAAA,WAEJ;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,YAAY,cAAc;AA6CnB,IAAM,eAAqB;AAAA,EAChC,CAAC,EAAE,UAAU,UAAU,GAAG,UAAU,GAAG,QAAQ;AAC7C,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA;AAAA,UAEA,YAAY,KAAK;AAAA,UACjB,YAAY,KAAK;AAAA,UACjB,YAAY,KAAK;AAAA,UACjB,YAAY,KAAK;AAAA,UACjB;AAAA,QACF;AAAA,QAEC,mBAAS,IAAI,CAAC,SAAS,UACtB,8CAAC,eAAyB,GAAG,WAAX,KAAoB,CACvC;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,aAAa,cAAc;;;AGpO3B,IAAAE,UAAuB;AACvB,IAAAC,oCAAuC;AAwH7B,IAAAC,uBAAA;AAjHV,IAAM,wBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,QACN,UAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AACF;AAuEA,IAAM,YAAkB;AAAA,EACtB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,kBAAkB,EAAE,SAAS,YAAY,CAAC,GAAG,SAAS;AAAA,QACnE,GAAG;AAAA,QAGJ,wDAAC,SAAI,WAAU,gCACb,yDAAC,SAAI,WAAU,iCACZ;AAAA,qBACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAM,cAAc,8CAAC,QAAK,MAAM,aAAa,MAAM,IAAI,IAAK;AAAA,cAC5D,SAAS;AAAA,cACT,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,UAGF,8CAAC,cAAW,SAAQ,MAAK,WAAU,eAChC,iBACH;AAAA,UAEA,8CAAC,cAAW,SAAQ,MAAK,OAAM,SAAQ,WAAU,eAC9C,uBACH;AAAA,UAEC,WAAW,8CAAC,SAAI,WAAU,8CAA8C,mBAAQ;AAAA,WACnF,GACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,UAAU,cAAc;;;ACpJxB,IAAAC,gBAAiD;AACjD,IAAAC,uBAA4B;;;ACD5B,kBAA4D;AAC5D,uBAAsC;;;ACC/B,IAAM,mBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACvB;AAAA,EACA,UAAU;AAAA,IACR;AAAA,MACE,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,WAAW,gCAAgC;AAAA,MACnD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,WAAW,mBAAmB,wBAAwB,WAAW,cAAc;AAAA,MACvF,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,UAAU,iBAAiB,iBAAiB;AAAA,MACpD,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,wBAAwB,oBAAoB,oBAAoB;AAAA,MACxE,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,oBAAoB,qBAAqB,gBAAgB,eAAe;AAAA,MAChF,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,oBAAoB,mBAAmB;AAAA,MAC/C,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,YAAY,gBAAgB;AAAA,MACpC,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,oBAAoB;AAAA,MAC5B,UAAU;AAAA,QACR,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,eAAe,oBAAoB,6BAA6B;AAAA,MACxE,UAAU;AAAA,QACR,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,mBAAmB,4BAA4B;AAAA,MACvD,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,yBAAyB;AAAA,MACjC,UAAU;AAAA,QACR,YAAY;AAAA;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;;;AD/EO,IAAM,mBAAmB;AAAA,EAC9B,OAAO,4BAA4B;AAAA,EACnC,OAAO,4BAA4B;AAAA,EACnC,OAAO,sBAAsB;AAAA,EAC7B,OAAO,sBAAsB;AAAA,EAC7B,OAAO,sBAAsB;AAAA,EAC7B,OAAO,wBAAwB;AAAA,EAC/B,OAAO,4BAA4B;AAAA,EACnC,OAAO,0BAA0B;AAAA,EACjC,OAAO,sBAAsB;AAAA,EAC7B,OAAO,qBAAqB;AAAA,EAC5B,OAAO,uBAAuB;AAChC;AAEA,IAAI,qBAAsD;AAEnD,SAAS,iBAA2C;AACzD,MAAI,CAAC,oBAAoB;AACvB,6BAAqB,mCAAsB;AAAA,MACzC,QAAQ,CAAC,gBAAgB;AAAA,MACzB,OAAO;AAAA,MACP,YAAQ,wCAAsB,OAAO,YAAY,CAAC;AAAA,IACpD,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;ADOgB,IAAAC,uBAAA;AAxBT,SAAS,UAAU,EAAE,MAAM,WAAW,QAAQ,OAAO,UAAU,GAAmB;AACvF,QAAM,CAAC,MAAM,OAAO,QAAI,wBAAwB,IAAI;AACpD,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAS,KAAK;AAE1C,+BAAU,MAAM;AACd,mBAAe,EAAE,KAAK,CAAC,gBAAgB;AACrC,YAAM,cAAc,YAAY,mBAAmB;AACnD,YAAM,OAAO,YAAY,SAAS,QAAQ,IAAI,WAAW;AACzD,cAAQ,YAAY,WAAW,MAAM,EAAE,MAAM,OAAO,SAAS,CAAC,CAAC;AAAA,IACjE,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,QAAM,iBAAa,2BAAY,YAAY;AACzC,UAAM,UAAU,UAAU,UAAU,IAAI;AACxC,cAAU,IAAI;AACd,eAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AAAA,EACzC,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aACJ;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,WAAU;AAAA,MACV,cAAW;AAAA,MAEV,mBAAS,8CAAC,8BAAM,WAAU,eAAc,IAAK,8CAAC,6BAAK,WAAU,eAAc;AAAA;AAAA,EAC9E;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA,iBACC,8CAAC,SAAI,WAAU,sHACb,wDAAC,UAAK,WAAU,gCAAgC,iBAAM,GACxD;AAAA,QAEF,8CAAC,SAAI,WAAU,+BAA+B,sBAAW;AAAA,QACxD,OACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,yBAAyB,EAAE,QAAQ,KAAK;AAAA;AAAA,QAC1C,IAEA,8CAAC,SAAI,WAAU,oFACb,wDAAC,UAAM,gBAAK,GACd;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":["Alert","Button","Card","Checkbox","Input","Label","Select","alertVariants","buttonVariants","ThemeProvider","React","import_jsx_runtime","React","import_class_variance_authority","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","buttonVariants","Button","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_jsx_runtime","import_jsx_runtime","Card","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","alertVariants","Alert","React","React","import_jsx_runtime","import_jsx_runtime","Input","React","CheckboxPrimitive","import_lucide_react","import_class_variance_authority","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Checkbox","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Select","React","import_class_variance_authority","React","import_jsx_runtime","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","Label","import_class_variance_authority","React","import_jsx_runtime","Separator","import_jsx_runtime","Label","Separator","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","React","import_class_variance_authority","import_react_slot","import_jsx_runtime","React","import_class_variance_authority","import_react_slot","import_jsx_runtime","React","import_jsx_runtime","aspectRatio","width","height","React","import_class_variance_authority","import_lucide_react","React","SelectPrimitive","import_lucide_react","import_jsx_runtime","import_jsx_runtime","React","import_class_variance_authority","React","React","import_class_variance_authority","import_jsx_runtime","Separator","import_lucide_react","import_jsx_runtime","import_jsx_runtime","Icon","Card","React","import_class_variance_authority","import_jsx_runtime","import_react","import_lucide_react","import_jsx_runtime"]}
|