@bergetai/ui 0.3.2 → 0.3.3
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 +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css +19 -12
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/theme-provider/ThemeProvider.tsx","../src/components/theme-provider/ThemeToggle.tsx","../src/lib/utils.ts","../src/primitives/button.tsx","../src/components/button/Button.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/dialog/Dialog.tsx","../src/components/alert-dialog/AlertDialog.tsx","../src/components/dropdown-menu/DropdownMenu.tsx","../src/components/navigation-menu/NavigationMenu.tsx","../src/components/table/Table.tsx","../src/primitives/table.tsx","../src/components/item/Item.tsx","../src/primitives/item.tsx","../src/primitives/separator.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/country-select/CountrySelect.tsx","../src/components/icon/Icon.tsx","../src/primitives/popover.tsx","../src/primitives/command.tsx","../src/primitives/dialog.tsx","../src/components/country-select/countries.ts","../src/components/text-area/TextArea.tsx","../src/primitives/textarea.tsx","../src/primitives/label.tsx","../src/primitives/field.tsx","../src/components/link/Link.tsx","../src/components/container/Container.tsx","../src/components/grid/Grid.tsx","../src/components/box/Box.tsx","../src/components/berget-logo/BergetLogo.tsx","../src/components/language-select/LanguageSelect.tsx","../src/components/list/List.tsx","../src/components/divider/Divider.tsx","../src/components/hero-block/HeroBlock.tsx","../src/components/code-block/CodeBlock.tsx","../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["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 * as React from 'react';\nimport { 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\n/**\n * Bridge for the legacy Radix `asChild` boolean on Berget primitive wrappers.\n * Base UI replaces `asChild` with a `render` prop: this helper returns the\n * element to pass to `render` (or `undefined` when not composing), so the\n * public design-system API can keep `<Trigger asChild><Button/></Trigger>`.\n */\nexport function asChildRender(\n asChild: boolean | undefined,\n children: React.ReactNode,\n): React.ReactElement | undefined {\n if (!asChild) return undefined;\n return React.Children.only(children) as React.ReactElement;\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\n\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends\n Omit<ButtonPrimitive.Props, 'className' | 'style' | 'render'>,\n VariantProps<typeof buttonVariants> {\n className?: string;\n style?: React.CSSProperties;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, children, ...props }, ref) => {\n const Comp = ButtonPrimitive;\n return (\n <Comp\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n render={asChild ? (children as React.ReactElement) : undefined}\n {...props}\n >\n {asChild ? undefined : children}\n </Comp>\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import type * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Button as ButtonPrimitive, buttonVariants } from '../../primitives/button';\nimport type { VariantProps } from 'class-variance-authority';\n\n/** Variants exposed by the Berget wrapper. */\ntype CustomVariant = 'default' | 'primary' | 'destructive' | 'outline' | 'ghost' | 'link';\n\n/** Props for the Berget Button wrapper. */\nexport interface ButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'variant' | 'ref'\n> {\n /** Visual style variant. `primary` is Berget-specific. */\n variant?: CustomVariant;\n /** Full width or auto width. */\n width?: 'default' | 'full';\n ref?: React.Ref<HTMLButtonElement>;\n}\n\n/** Brand-specific classes applied *on top* of the upstream primitive. */\nfunction brandVariantClasses(variant?: CustomVariant): string {\n switch (variant) {\n case 'primary':\n return 'bg-berget-button-primary-bg text-berget-button-primary-fg shadow-lg hover:bg-berget-button-primary-bg/90 hover:shadow-xl';\n case 'destructive':\n return 'bg-berget-button-destructive-bg text-berget-button-destructive-fg shadow-sm hover:bg-berget-button-destructive-bg/80 hover:shadow dark:hover:bg-berget-button-destructive-bg/80 dark:hover:text-berget-button-destructive-fg';\n case 'outline':\n return 'border-berget-border-interactive bg-transparent text-berget-foreground hover:bg-berget-surface-hover hover:text-berget-foreground hover:border-berget-border-interactive-elevated';\n case 'ghost':\n return 'bg-transparent text-berget-foreground hover:bg-berget-brand-granite-800 hover:text-berget-foreground';\n case 'link':\n return 'bg-transparent hover:bg-transparent focus:bg-transparent active:bg-transparent text-berget-button-link-fg underline-offset-4 hover:underline';\n\n case 'default':\n default:\n return 'bg-berget-button-default-bg text-berget-button-default-fg shadow-lg hover:bg-berget-button-default-bg/90 hover:shadow-xl';\n }\n}\n\n/** Map custom variants to the closest upstream primitive variant. */\nfunction primitiveVariant(variant?: CustomVariant): VariantProps<typeof buttonVariants>['variant'] {\n switch (variant) {\n case 'primary':\n case 'destructive':\n return 'ghost';\n default:\n return variant;\n }\n}\n\nexport function Button({\n className,\n variant = 'default',\n size,\n asChild = false,\n width = 'default',\n type = 'button',\n ref,\n children,\n ...props\n}: ButtonProps) {\n const isIcon = typeof size === 'string' && size.startsWith('icon');\n const isLink = variant === 'link';\n\n const baseClass = cn(\n !isLink && buttonVariants({ variant: primitiveVariant(variant), size }),\n // Berget brand overrides\n !isLink && 'rounded-full',\n brandVariantClasses(variant),\n !isLink && width === 'full' && 'w-full',\n isIcon && 'rounded-full shadow-[0px_1px_3px_rgba(0,0,0,0.1),0px_1px_2px_-1px_rgba(0,0,0,0.1)]',\n className,\n );\n\n const content = (\n <span className={cn('inline-flex items-center', !isIcon && 'gap-2')}>{children}</span>\n );\n\n return (\n <ButtonPrimitive className={baseClass} ref={ref} asChild={asChild} type={type} {...props}>\n {asChild ? children : content}\n </ButtonPrimitive>\n );\n}\n\nexport { buttonVariants };\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/65',\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 { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = Omit<DialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n ),\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-berget-dialog-overlay-bg transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-berget-dialog-bg border-berget-dialog-border rounded-berget-sm p-6 shadow-berget-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-berget-xs opacity-70 ring-offset-berget-dialog-bg transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-berget-focus-ring focus:ring-offset-2 disabled:pointer-events-none data-open:bg-berget-muted data-open:text-berget-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Popup>\n </DialogPortal>\n));\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<DialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n render={<Typography variant=\"h5\" color=\"default\" as=\"h2\" className={className} />}\n {...props}\n >\n {children}\n </DialogPrimitive.Title>\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<DialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n render={<Typography variant=\"small\" color=\"muted\" className={className} />}\n {...props}\n >\n {children}\n </DialogPrimitive.Description>\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { cn, asChildRender } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\ntype AlertDialogTriggerProps = Omit<AlertDialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst AlertDialogTrigger = React.forwardRef<HTMLButtonElement, AlertDialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Trigger>\n ),\n);\nAlertDialogTrigger.displayName = 'AlertDialogTrigger';\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<AlertDialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-berget-dialog-overlay-bg transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = 'AlertDialogOverlay';\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<AlertDialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-berget-dialog-bg border-berget-dialog-border rounded-berget-sm p-6 shadow-berget-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95',\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)} {...props} />\n);\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nconst AlertDialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<AlertDialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n render={<Typography variant=\"h5\" color=\"default\" as=\"h2\" className={className} />}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Title>\n));\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\nconst AlertDialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<AlertDialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n render={<Typography variant=\"small\" color=\"muted\" className={className} />}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Description>\n));\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\n/** Action button — compose with `<Button>` via `asChild` for consistent styling. */\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n Omit<AlertDialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn(className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Close>\n));\nAlertDialogAction.displayName = 'AlertDialogAction';\n\n/** Cancel button — composes with `<Button>` via `asChild`. Includes `mt-2 sm:mt-0` for footer spacing. */\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n Omit<AlertDialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn('mt-2 sm:mt-0', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Close>\n));\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import * as React from 'react';\nimport { Menu as DropdownMenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\n\n/* ------------------------------------------------------------------ */\n/* Root & inert sub-components */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\ntype DropdownMenuTriggerProps = Omit<\n DropdownMenuPrimitive.Trigger.Props,\n 'className' | 'render'\n> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DropdownMenuTrigger = React.forwardRef<HTMLButtonElement, DropdownMenuTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nconst DropdownMenuSub = DropdownMenuPrimitive.SubmenuRoot;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n/* ------------------------------------------------------------------ */\n/* SubTrigger */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.SubmenuTrigger.Props, 'className' | 'render'> & {\n className?: string;\n inset?: boolean;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubmenuTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center gap-2 rounded-berget-xs px-2 py-1.5 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-popup-open:bg-berget-surface-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\n <>\n {children}\n <ChevronRight className=\"ml-auto\" />\n </>\n )}\n </DropdownMenuPrimitive.SubmenuTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\n\n/* ------------------------------------------------------------------ */\n/* SubContent */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSubContent = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Popup.Props, 'className'> &\n Pick<\n DropdownMenuPrimitive.Positioner.Props,\n 'side' | 'sideOffset' | 'align' | 'alignOffset'\n > & {\n className?: string;\n }\n>(\n (\n { className, side = 'right', align = 'start', alignOffset = -3, sideOffset = 0, ...props },\n ref,\n ) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Positioner\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <DropdownMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-berget-xs border border-berget-border bg-berget-popover p-1 text-berget-popover-foreground shadow-berget-lg transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Positioner>\n </DropdownMenuPrimitive.Portal>\n ),\n);\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuContent = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Popup.Props, 'className'> &\n Pick<\n DropdownMenuPrimitive.Positioner.Props,\n 'sideOffset' | 'align' | 'side' | 'alignOffset'\n > & {\n className?: string;\n }\n>(({ className, sideOffset = 4, align = 'center', side, alignOffset, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Positioner\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <DropdownMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 max-h-[var(--available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-berget-xs border border-berget-border bg-berget-popover p-1 text-berget-popover-foreground shadow-berget-md transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Positioner>\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Item.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n inset?: boolean;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center gap-2 rounded-berget-xs px-2 py-1.5 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.Item>\n));\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n/* ------------------------------------------------------------------ */\n/* CheckboxItem */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.CheckboxItem.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-berget-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.CheckboxItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.CheckboxItemIndicator>\n </span>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\n\n/* ------------------------------------------------------------------ */\n/* RadioItem */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuRadioItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.RadioItem.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-berget-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.RadioItemIndicator>\n <Circle className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.RadioItemIndicator>\n </span>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\n\n/* ------------------------------------------------------------------ */\n/* Label */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.GroupLabel.Props, 'className' | 'render'> & {\n className?: string;\n inset?: boolean;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.GroupLabel\n ref={ref}\n className={cn(\n 'px-2 py-1.5 text-sm font-semibold text-berget-foreground',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.GroupLabel>\n));\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n\n/* ------------------------------------------------------------------ */\n/* Separator */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Separator.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-berget-separator', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n/* ------------------------------------------------------------------ */\n/* Shortcut */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-berget-muted-foreground', className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from 'react';\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenu = React.forwardRef<\n HTMLElement,\n Omit<NavigationMenuPrimitive.Root.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = 'NavigationMenu';\n\n/* ------------------------------------------------------------------ */\n/* List */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuList = React.forwardRef<\n HTMLUListElement,\n Omit<NavigationMenuPrimitive.List.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn('group flex flex-1 list-none items-center justify-center gap-1', className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = 'NavigationMenuList';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-10 w-max items-center justify-center rounded-berget-xs px-4 py-2 text-sm font-medium transition-colors hover:bg-berget-surface-02 hover:text-berget-foreground focus:bg-berget-surface-02 focus:text-berget-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-popup-open:text-berget-foreground data-popup-open:bg-berget-border data-popup-open:hover:bg-berget-border data-popup-open:focus:bg-berget-border',\n);\n\nconst NavigationMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n Omit<NavigationMenuPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\n <>\n {children}{' '}\n <ChevronDown\n className=\"relative top-[1px] ml-1 size-3 transition duration-200 group-data-[data-popup-open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </>\n )}\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = 'NavigationMenuTrigger';\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuContent = React.forwardRef<\n HTMLDivElement,\n Omit<NavigationMenuPrimitive.Content.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[activation-direction=left]:fade-in data-[activation-direction=right]:fade-out md:absolute md:w-auto',\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = 'NavigationMenuContent';\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuLink = React.forwardRef<\n HTMLAnchorElement,\n Omit<NavigationMenuPrimitive.Link.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Link\n ref={ref}\n className={className}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </NavigationMenuPrimitive.Link>\n));\nNavigationMenuLink.displayName = 'NavigationMenuLink';\n\n/* ------------------------------------------------------------------ */\n/* Viewport */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuViewport = React.forwardRef<\n HTMLElement,\n Omit<NavigationMenuPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner className=\"isolate z-50 outline-none\">\n <NavigationMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--popup-height)] w-full overflow-hidden rounded-berget-xs border border-berget-border bg-berget-popover text-berget-popover-foreground shadow-berget-lg transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-90 data-ending-style:opacity-0 data-ending-style:scale-90 md:w-[var(--popup-width)]',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Viewport />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n));\nNavigationMenuViewport.displayName = 'NavigationMenuViewport';\n\n/* ------------------------------------------------------------------ */\n/* Indicator */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuIndicator = React.forwardRef<\n HTMLSpanElement,\n Omit<NavigationMenuPrimitive.Icon.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Icon\n ref={ref}\n className={cn(\n 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden transition-[opacity] data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-berget-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n));\nNavigationMenuIndicator.displayName = 'NavigationMenuIndicator';\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Table as TablePrimitive,\n TableHeader as TableHeaderPrimitive,\n TableBody as TableBodyPrimitive,\n TableFooter as TableFooterPrimitive,\n TableHead as TableHeadPrimitive,\n TableRow as TableRowPrimitive,\n TableCell as TableCellPrimitive,\n TableCaption as TableCaptionPrimitive,\n} from '../../primitives/table';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => <TablePrimitive ref={ref} className={className} {...props} />,\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableHeaderPrimitive\n ref={ref}\n className={cn('[&_tr]:border-b border-berget-table-border', className)}\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableBodyPrimitive\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableFooterPrimitive\n ref={ref}\n className={cn(\n 'border-t border-berget-table-border bg-berget-table-footer-bg font-medium [&>tr]:last:border-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <TableRowPrimitive\n ref={ref}\n className={cn(\n 'border-b border-berget-table-border transition-colors hover:bg-berget-table-row-hover data-[state=selected]:bg-berget-table-row-selected',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableHeadPrimitive\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-berget-table-head-text [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableCellPrimitive\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <TableCaptionPrimitive\n ref={ref}\n className={cn('mt-4 text-sm text-berget-table-caption-text', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Item as ItemPrimitive,\n ItemGroup,\n ItemSeparator as ItemSeparatorPrimitive,\n ItemMedia as ItemMediaPrimitive,\n ItemContent,\n ItemTitle as ItemTitlePrimitive,\n ItemDescription as ItemDescriptionPrimitive,\n ItemActions,\n ItemHeader,\n ItemFooter,\n} from '@/primitives/item';\nimport type { VariantProps } from 'class-variance-authority';\n\nexport interface ItemProps extends React.ComponentProps<typeof ItemPrimitive> {\n variant?: VariantProps<typeof ItemPrimitive>['variant'];\n size?: VariantProps<typeof ItemPrimitive>['size'];\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n}\n\nexport function Item({ className, asChild, children, ...props }: ItemProps) {\n return (\n <ItemPrimitive\n render={asChild ? (children as React.ReactElement) : undefined}\n className={cn(\n /* Variant colours — override primitive defaults */\n 'data-[variant=outline]:border-berget-item-outline-border',\n 'data-[variant=muted]:bg-berget-item-muted-bg',\n 'data-[variant=muted]:text-berget-item-muted-fg',\n /* Hover / focus */\n '[&_a]:hover:bg-berget-item-link-hover-surface',\n 'focus-visible:border-berget-item-focus-ring focus-visible:ring-berget-item-focus-ring/50',\n className,\n )}\n {...props}\n >\n {asChild ? undefined : children}\n </ItemPrimitive>\n );\n}\n\n/** Re-export unchanged sub-components. */\nexport { ItemGroup, ItemContent, ItemActions, ItemHeader, ItemFooter };\n\n/** ItemMedia — override icon background. */\nexport const ItemMedia = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ItemMediaPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemMediaPrimitive\n ref={ref}\n className={cn('data-[variant=icon]:bg-berget-item-media-icon-bg', className)}\n {...props}\n />\n );\n});\nItemMedia.displayName = 'ItemMedia';\n\n/** ItemTitle — override to use semantic foreground. */\nexport const ItemTitle = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ItemTitlePrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemTitlePrimitive\n ref={ref}\n className={cn('text-berget-item-default-fg', className)}\n {...props}\n />\n );\n});\nItemTitle.displayName = 'ItemTitle';\n\n/** ItemDescription — override muted text colour. */\nexport const ItemDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof ItemDescriptionPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemDescriptionPrimitive\n ref={ref}\n className={cn('text-berget-item-description-fg', className)}\n {...props}\n />\n );\n});\nItemDescription.displayName = 'ItemDescription';\n\n/** ItemSeparator — override colour. */\nexport const ItemSeparator = React.forwardRef<\n React.ComponentRef<typeof ItemSeparatorPrimitive>,\n React.ComponentProps<typeof ItemSeparatorPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemSeparatorPrimitive\n ref={ref}\n className={cn('bg-berget-item-separator', className)}\n {...props}\n />\n );\n});\nItemSeparator.displayName = 'ItemSeparator';\n","import type * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\n\nimport { cn } from '@/lib/utils';\nimport { Separator } from '@/primitives/separator';\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn('group/item-group flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn('my-0', className)}\n {...props}\n />\n );\n}\n\nconst itemVariants = cva(\n 'group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border-border',\n muted: 'bg-muted/50',\n },\n size: {\n default: 'gap-4 p-4 ',\n sm: 'gap-2.5 px-4 py-3',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Item({\n className,\n variant = 'default',\n size = 'default',\n render,\n ...props\n}: useRender.ComponentProps<'div'> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: 'div',\n render,\n props: mergeProps<'div'>(\n {\n 'data-slot': 'item',\n 'data-variant': variant,\n 'data-size': size,\n className: cn(itemVariants({ variant, size, className })),\n } as React.ComponentProps<'div'>,\n props,\n ),\n });\n}\n\nconst itemMediaVariants = cva(\n 'flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image: 'size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction ItemMedia({\n className,\n variant = 'default',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', className)}\n {...props}\n />\n );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn('flex w-fit items-center gap-2 text-sm font-medium leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n 'text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"item-actions\" className={cn('flex items-center gap-2', className)} {...props} />\n );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn('flex basis-full items-center justify-between gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn('flex basis-full items-center justify-between gap-2', className)}\n {...props}\n />\n );\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { cn } from '@/lib/utils';\n\nconst Separator = React.forwardRef<\n HTMLDivElement,\n Omit<SeparatorPrimitive.Props, 'orientation'> & { orientation?: 'horizontal' | 'vertical' }\n>(({ className, orientation = 'horizontal', ...props }, ref) => (\n <SeparatorPrimitive\n ref={ref}\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 = 'Separator';\n\nexport { Separator };\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 { Checkbox as CheckboxPrimitive } from '@base-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 (\n {\n 'aria-label': ariaLabel,\n className,\n variant,\n size,\n label,\n description,\n error,\n id,\n disabled,\n ...props\n },\n ref,\n ) => {\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 nativeButton\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n aria-label={ariaLabel || label || 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 { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n HTMLElement,\n Omit<CheckboxPrimitive.Root.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer cursor-pointer 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 data-disabled:cursor-not-allowed data-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 = 'Checkbox';\n\nconst CheckboxIndicator = React.forwardRef<\n HTMLSpanElement,\n Omit<CheckboxPrimitive.Indicator.Props, 'className'> & { className?: string }\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 = 'CheckboxIndicator';\n\nexport { Checkbox, CheckboxIndicator };\n","import * as React from 'react';\nimport { Switch as SwitchPrimitives } from '@base-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-unchecked:bg-berget-border data-checked:bg-berget-secondary',\n primary:\n 'data-unchecked:bg-berget-border-subtle data-checked:bg-berget-switch-primary-checked',\n subtle:\n 'data-unchecked:bg-berget-border-subtle data-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-checked:translate-x-4 data-unchecked:translate-x-0',\n default: 'h-5 w-5 data-checked:translate-x-5 data-unchecked:translate-x-0',\n lg: 'h-6 w-6 data-checked:translate-x-6 data-unchecked:translate-x-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport interface SwitchProps\n extends Omit<SwitchPrimitives.Root.Props, 'className'>, VariantProps<typeof switchRootVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Switch = React.forwardRef<HTMLElement, SwitchProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n variant,\n size,\n label,\n description,\n error,\n id,\n disabled,\n ...props\n },\n ref,\n ) => {\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 nativeButton\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n aria-label={ariaLabel || label || 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={\n onValueChange ? (value) => onValueChange((value ?? '') as string) : undefined\n }\n disabled={disabled}\n name={name}\n required={required}\n // Base UI Select.Value renders the raw value by default. Passing `items`\n // makes it render the matching label instead (radix selected ItemText behaviour).\n items={options}\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 { Select as SelectPrimitive } from '@base-ui/react/select';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Select = SelectPrimitive.Root as <Value, Multiple extends boolean | undefined = false>(\n props: SelectPrimitive.Root.Props<Value, Multiple>,\n) => React.JSX.Element;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n HTMLButtonElement,\n Omit<SelectPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-full cursor-pointer 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 render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n {asChild ? null : (\n <SelectPrimitive.Icon render={<ChevronDown className=\"h-4 w-4 opacity-50\" />} />\n )}\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = 'SelectTrigger';\n\nconst SelectScrollUpButton = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.ScrollUpArrow.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpArrow\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.ScrollUpArrow>\n));\nSelectScrollUpButton.displayName = 'SelectScrollUpButton';\n\nconst SelectScrollDownButton = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.ScrollDownArrow.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownArrow\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.ScrollDownArrow>\n));\nSelectScrollDownButton.displayName = 'SelectScrollDownButton';\n\nconst SelectContent = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Popup.Props, 'className'> &\n Pick<SelectPrimitive.Positioner.Props, 'sideOffset' | 'align' | 'side' | 'alignOffset'> & {\n className?: string;\n /**\n * Replaces the Radix `position` prop. `true` (default) = item-aligned\n * (Radix `position=\"item-aligned\"`); `false` = popper (`position=\"popper\"`).\n */\n alignItemWithTrigger?: boolean;\n }\n>(\n (\n {\n className,\n children,\n alignItemWithTrigger = true,\n sideOffset = 4,\n align,\n side,\n alignOffset,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n alignItemWithTrigger={alignItemWithTrigger}\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 max-h-[var(--available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List className={cn('p-1')}>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n ),\n);\nSelectContent.displayName = 'SelectContent';\n\nconst SelectLabel = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.GroupLabel.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <SelectPrimitive.GroupLabel\n ref={ref}\n className={cn('py-1.5 pl-8 pr-2 text-sm ', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </SelectPrimitive.GroupLabel>\n));\nSelectLabel.displayName = 'SelectLabel';\n\nconst SelectItem = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Item.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n label={textValue}\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 render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\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 <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </>\n )}\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nconst SelectSeparator = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Separator.Props, 'className'> & { className?: string }\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 = 'SelectSeparator';\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronDown, Globe } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Icon } from '@/components/icon';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/primitives/popover';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/primitives/command';\nimport { type Country, COUNTRIES } from './countries';\n\nexport interface CountrySelectProps {\n value?: string | null;\n onValueChange?: (code: string) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n align?: 'center' | 'start' | 'end';\n sideOffset?: number;\n}\n\nconst CountrySelect = React.forwardRef<React.ElementRef<'button'>, CountrySelectProps>(\n (\n {\n value,\n onValueChange,\n placeholder = 'Select country',\n disabled = false,\n className,\n align = 'center',\n sideOffset = 4,\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(false);\n const selectedCountry = React.useMemo(() => COUNTRIES.find((c) => c.code === value), [value]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n aria-expanded={open}\n className={cn(\n // Base layout — consistent with Select trigger\n 'flex w-full items-center justify-between',\n 'rounded-berget-xs border bg-card',\n 'px-4 py-3 text-sm',\n 'transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-0',\n 'focus-visible:ring-offset-0 focus-visible:border-berget-form-focus-border',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n // Default border & hover matching Select variant \"default\"\n 'border-berget-border-interactive hover:bg-berget-surface-hover',\n className,\n )}\n >\n <div className=\"flex items-center gap-2 min-w-0 flex-1\">\n {selectedCountry ? (\n <>\n <span className=\"text-xl flex-shrink-0\">{selectedCountry.flag}</span>\n <span className=\"truncate\">{selectedCountry.name}</span>\n <span className=\"text-berget-muted-foreground text-xs flex-shrink-0\">\n ({selectedCountry.code})\n </span>\n </>\n ) : (\n <>\n <Icon\n icon={Globe}\n size={16}\n className=\"flex-shrink-0 text-berget-muted-foreground\"\n />\n <span className=\"text-berget-muted-foreground truncate\">{placeholder}</span>\n </>\n )}\n </div>\n <Icon\n icon={ChevronDown}\n size={16}\n className={cn(\n 'flex-shrink-0 text-berget-muted-foreground',\n 'transition-transform duration-200',\n open && 'rotate-180',\n )}\n />\n </button>\n </PopoverTrigger>\n\n <PopoverContent\n align={align}\n sideOffset={sideOffset}\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n >\n <Command>\n <CommandInput placeholder=\"Search country...\" />\n <CommandList>\n <CommandEmpty>No countries found.</CommandEmpty>\n <CommandGroup>\n {COUNTRIES.map((country) => (\n <CommandItem\n key={country.code}\n value={`${country.name} ${country.code}`}\n onSelect={() => {\n onValueChange?.(country.code);\n setOpen(false);\n }}\n className={cn(\n 'flex items-center gap-3 px-3 py-2.5',\n \"data-[selected='true']:bg-berget-brand-granite-700/40! data-[selected=true]:text-berget-foreground\",\n value === country.code && 'bg-berget-brand-granite-800/40',\n )}\n >\n <span className=\"text-xl flex-shrink-0\">{country.flag}</span>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm truncate\">{country.name}</div>\n <div className=\"text-xs text-berget-muted-foreground\">{country.code}</div>\n </div>\n {value === country.code && (\n <div className=\"w-2 h-2 rounded-full bg-berget-brand-granite-400 flex-shrink-0\" />\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n },\n);\n\nCountrySelect.displayName = 'CountrySelect';\n\nexport { CountrySelect };\nexport type { Country };\nexport {\n COUNTRIES,\n EU_COUNTRY_CODES,\n getCountryByCode,\n getCountryByName,\n isEUCountry,\n} from './countries';\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 { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\ntype PopoverTriggerProps = Omit<PopoverPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <PopoverPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </PopoverPrimitive.Trigger>\n ),\n);\nPopoverTrigger.displayName = 'PopoverTrigger';\n\nconst PopoverContent = React.forwardRef<\n HTMLDivElement,\n Omit<PopoverPrimitive.Popup.Props, 'className'> &\n Pick<PopoverPrimitive.Positioner.Props, 'align' | 'sideOffset'> & { className?: string }\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} sideOffset={sideOffset} className=\"isolate z-50\">\n <PopoverPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95 data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 origin-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = 'PopoverContent';\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","'use client';\n\nimport * as React from 'react';\nimport type { Dialog } from '@base-ui/react/dialog';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Dialog as DialogRoot, DialogContent } from '@/primitives/dialog';\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({\n children,\n ...props\n}: Omit<Dialog.Root.Props, 'children'> & { children?: React.ReactNode }) => {\n return (\n <DialogRoot {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </DialogRoot>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = 'CommandShortcut';\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","import * as React from 'react';\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = Omit<DialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n ),\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = Omit<DialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Close ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n ),\n);\nDialogClose.displayName = 'DialogClose';\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95 sm:rounded-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-open:bg-accent data-open:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Popup>\n </DialogPortal>\n));\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<DialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<DialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","/**\n * List of countries supported by Odoo Fiscal Localization\n * Source: https://www.odoo.com/documentation/saas-15.3/applications/finance/accounting/fiscal_localizations/overview/localizations_list.html\n */\n\nexport interface Country {\n code: string; // ISO 3166-1 alpha-2 code\n name: string; // Country name\n flag: string; // Emoji flag\n}\n\nexport const COUNTRIES: Country[] = [\n { code: 'DZ', name: 'Algeria', flag: '🇩🇿' },\n { code: 'AR', name: 'Argentina', flag: '🇦🇷' },\n { code: 'AU', name: 'Australia', flag: '🇦🇺' },\n { code: 'AT', name: 'Austria', flag: '🇦🇹' },\n { code: 'BE', name: 'Belgium', flag: '🇧🇪' },\n { code: 'BG', name: 'Bulgaria', flag: '🇧🇬' },\n { code: 'BO', name: 'Bolivia', flag: '🇧🇴' },\n { code: 'BR', name: 'Brazil', flag: '🇧🇷' },\n { code: 'CA', name: 'Canada', flag: '🇨🇦' },\n { code: 'CL', name: 'Chile', flag: '🇨🇱' },\n { code: 'CN', name: 'China', flag: '🇨🇳' },\n { code: 'CO', name: 'Colombia', flag: '🇨🇴' },\n { code: 'CR', name: 'Costa Rica', flag: '🇨🇷' },\n { code: 'CY', name: 'Cyprus', flag: '🇨🇾' },\n { code: 'HR', name: 'Croatia', flag: '🇭🇷' },\n { code: 'CZ', name: 'Czech Republic', flag: '🇨🇿' },\n { code: 'DK', name: 'Denmark', flag: '🇩🇰' },\n { code: 'DO', name: 'Dominican Republic', flag: '🇩🇴' },\n { code: 'EC', name: 'Ecuador', flag: '🇪🇨' },\n { code: 'EG', name: 'Egypt', flag: '🇪🇬' },\n { code: 'EE', name: 'Estonia', flag: '🇪🇪' },\n { code: 'ET', name: 'Ethiopia', flag: '🇪🇹' },\n { code: 'FI', name: 'Finland', flag: '🇫🇮' },\n { code: 'FR', name: 'France', flag: '🇫🇷' },\n { code: 'DE', name: 'Germany', flag: '🇩🇪' },\n { code: 'GR', name: 'Greece', flag: '🇬🇷' },\n { code: 'GT', name: 'Guatemala', flag: '🇬🇹' },\n { code: 'HN', name: 'Honduras', flag: '🇭🇳' },\n { code: 'HK', name: 'Hong Kong', flag: '🇭🇰' },\n { code: 'HU', name: 'Hungary', flag: '🇭🇺' },\n { code: 'IN', name: 'India', flag: '🇮🇳' },\n { code: 'ID', name: 'Indonesia', flag: '🇮🇩' },\n { code: 'IE', name: 'Ireland', flag: '🇮🇪' },\n { code: 'IL', name: 'Israel', flag: '🇮🇱' },\n { code: 'IT', name: 'Italy', flag: '🇮🇹' },\n { code: 'JP', name: 'Japan', flag: '🇯🇵' },\n { code: 'KE', name: 'Kenya', flag: '🇰🇪' },\n { code: 'LT', name: 'Lithuania', flag: '🇱🇹' },\n { code: 'LV', name: 'Latvia', flag: '🇱🇻' },\n { code: 'LU', name: 'Luxembourg', flag: '🇱🇺' },\n { code: 'MA', name: 'Morocco', flag: '🇲🇦' },\n { code: 'MT', name: 'Malta', flag: '🇲🇹' },\n { code: 'MX', name: 'Mexico', flag: '🇲🇽' },\n { code: 'MN', name: 'Mongolia', flag: '🇲🇳' },\n { code: 'NL', name: 'Netherlands', flag: '🇳🇱' },\n { code: 'NZ', name: 'New Zealand', flag: '🇳🇿' },\n { code: 'NO', name: 'Norway', flag: '🇳🇴' },\n { code: 'PK', name: 'Pakistan', flag: '🇵🇰' },\n { code: 'PA', name: 'Panama', flag: '🇵🇦' },\n { code: 'PE', name: 'Peru', flag: '🇵🇪' },\n { code: 'PL', name: 'Poland', flag: '🇵🇱' },\n { code: 'PT', name: 'Portugal', flag: '🇵🇹' },\n { code: 'RO', name: 'Romania', flag: '🇷🇴' },\n { code: 'SA', name: 'Saudi Arabia', flag: '🇸🇦' },\n { code: 'SG', name: 'Singapore', flag: '🇸🇬' },\n { code: 'SK', name: 'Slovakia', flag: '🇸🇰' },\n { code: 'SI', name: 'Slovenia', flag: '🇸🇮' },\n { code: 'ZA', name: 'South Africa', flag: '🇿🇦' },\n { code: 'ES', name: 'Spain', flag: '🇪🇸' },\n { code: 'SE', name: 'Sweden', flag: '🇸🇪' },\n { code: 'CH', name: 'Switzerland', flag: '🇨🇭' },\n { code: 'TW', name: 'Taiwan', flag: '🇹🇼' },\n { code: 'TH', name: 'Thailand', flag: '🇹🇭' },\n { code: 'TR', name: 'Turkey', flag: '🇹🇷' },\n { code: 'AE', name: 'United Arab Emirates', flag: '🇦🇪' },\n { code: 'GB', name: 'United Kingdom', flag: '🇬🇧' },\n { code: 'UA', name: 'Ukraine', flag: '🇺🇦' },\n { code: 'US', name: 'United States', flag: '🇺🇸' },\n { code: 'UY', name: 'Uruguay', flag: '🇺🇾' },\n { code: 'VE', name: 'Venezuela', flag: '🇻🇪' },\n { code: 'VN', name: 'Vietnam', flag: '🇻🇳' },\n];\n\n// Helper function to get country by code\nexport const getCountryByCode = (code: string): Country | undefined => {\n return COUNTRIES.find((country) => country.code === code);\n};\n\n// Helper function to get country by name (case-insensitive)\nexport const getCountryByName = (name: string): Country | undefined => {\n return COUNTRIES.find((country) => country.name.toLowerCase() === name.toLowerCase());\n};\n\n// EU member states (ISO 3166-1 alpha-2 codes)\n// Source: https://europa.eu/european-union/about-eu/countries_en\nexport const EU_COUNTRY_CODES = [\n 'AT', // Austria\n 'BE', // Belgium\n 'BG', // Bulgaria\n 'HR', // Croatia\n 'CY', // Cyprus\n 'CZ', // Czech Republic\n 'DK', // Denmark\n 'EE', // Estonia\n 'FI', // Finland\n 'FR', // France\n 'DE', // Germany\n 'GR', // Greece\n 'HU', // Hungary\n 'IE', // Ireland\n 'IT', // Italy\n 'LV', // Latvia\n 'LT', // Lithuania\n 'LU', // Luxembourg\n 'MT', // Malta\n 'NL', // Netherlands\n 'PL', // Poland\n 'PT', // Portugal\n 'RO', // Romania\n 'SK', // Slovakia\n 'SI', // Slovenia\n 'ES', // Spain\n 'SE', // Sweden\n] as const;\n\n// Helper function to check if a country is in the EU\nexport const isEUCountry = (countryCode: string): boolean => {\n return (EU_COUNTRY_CODES as readonly string[]).includes(countryCode);\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 { 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 HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <label ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = 'Label';\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(\n 'group/field data-[invalid=true]:text-berget-destructive-foreground flex w-full gap-3',\n {\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);\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 text-berget-foreground group-data-[disabled=true]/field:text-berget-muted-foreground',\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-berget-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-berget-background text-berget-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-berget-destructive-foreground 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","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 cursor-pointer 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 { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\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 useRender.ComponentProps<'div'>, VariantProps<typeof containerVariants> {\n children?: React.ReactNode;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, size, padding, asChild = false, children, ...props }, ref) => {\n return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\n className: cn(containerVariants({ size, padding }), className),\n children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\n });\n },\n);\nContainer.displayName = 'Container';\n\nexport { Container, containerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\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 useRender.ComponentProps<'div'>, VariantProps<typeof gridVariants> {\n children?: React.ReactNode;\n cols?: GridColsScale;\n rows?: GridRowsScale;\n gap?: SpacingScale;\n gapX?: SpacingScale;\n gapY?: SpacingScale;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\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 return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\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 children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\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 { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\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 useRender.ComponentProps<'div'>, VariantProps<typeof boxVariants> {\n children?: React.ReactNode;\n gap?: SpacingScale;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\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 return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\n className: cn(\n boxVariants({ direction, align, justify, wrap }),\n gap !== undefined && `gap-${gap}`,\n className,\n ),\n children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\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 { Select as SelectPrimitive } from '@base-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<HTMLButtonElement, LanguageSelectProps>(\n ({ className, options, value, onValueChange }, ref) => {\n return (\n <SelectPrimitive.Root\n value={value}\n onValueChange={onValueChange ? (v) => onValueChange((v ?? '') as string) : undefined}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n aria-label=\"Select language\"\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 <span className=\"sr-only\">Select language</span>\n <Icon icon={Globe} size={16} aria-hidden={true} />\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner alignItemWithTrigger={false} className=\"isolate z-50\">\n <SelectPrimitive.Popup\n className={cn(\n // Positioning and z-index\n '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 'transition-[opacity,transform]',\n 'data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n )}\n >\n <SelectPrimitive.List 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.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n },\n);\n\nLanguageSelect.displayName = 'LanguageSelect';\n\nexport { LanguageSelect };\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 * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800',\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div className=\"flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <div className=\"w-3 h-3 rounded-full bg-[#FF5F56]\" />\n <div className=\"w-3 h-3 rounded-full bg-[#FFBD2E]\" />\n <div className=\"w-3 h-3 rounded-full bg-[#27C93F]\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'px-3 py-1 text-sm transition-colors cursor-pointer',\n currentTab === tab.id\n ? 'rounded-lg bg-white/10 text-berget-foreground font-medium'\n : 'rounded text-berget-muted-foreground hover:text-berget-foreground font-medium',\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 text-sm font-mono text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":"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","names":["ThemeProvider","React","React","jsx","React","jsx","jsx","Button","React","cva","jsx","cva","React","cva","React","jsx","jsx","cva","Card","React","cva","jsx","jsxs","cva","React","cva","React","cva","jsx","cva","jsx","alertVariants","cva","Alert","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","cva","Fragment","jsx","jsxs","cva","React","React","jsx","jsx","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","React","cva","React","jsx","jsx","cva","jsx","Item","ItemMedia","jsx","ItemTitle","ItemDescription","ItemSeparator","React","React","jsx","jsx","jsxs","Input","React","CheckboxPrimitive","Check","cva","React","Check","jsx","Check","jsx","jsxs","cva","Checkbox","CheckboxPrimitive","Check","React","cva","jsx","jsxs","cva","React","cva","React","Check","ChevronDown","Fragment","jsx","jsxs","ChevronDown","Check","jsx","jsxs","cva","Select","value","React","ChevronDown","React","jsx","React","jsx","React","React","DialogPrimitive","X","jsx","jsxs","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","DialogContent","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","jsx","jsxs","jsxs","jsx","Fragment","jsx","jsxs","ChevronDown","React","cva","React","jsx","jsx","jsxs","cva","React","cva","jsx","cva","useMemo","cva","jsx","jsxs","cva","useMemo","React","cva","jsx","jsxs","cva","React","mergeProps","useRender","cva","cva","useRender","mergeProps","React","cva","mergeProps","useRender","cva","useRender","mergeProps","React","cva","mergeProps","useRender","cva","useRender","mergeProps","React","jsx","jsxs","aspectRatio","width","height","React","SelectPrimitive","Globe","jsx","jsxs","SelectPrimitive","Globe","React","React","cva","jsx","jsxs","cva","Check","jsx","jsxs","React","cva","jsx","jsxs","cva","useState","useEffect","useCallback","Check","jsx","jsxs","useState","useEffect","useCallback","Check","React","useState","jsx","jsxs","useState"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/theme-provider/ThemeProvider.tsx","../src/components/theme-provider/ThemeToggle.tsx","../src/lib/utils.ts","../src/primitives/button.tsx","../src/components/button/Button.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/dialog/Dialog.tsx","../src/components/alert-dialog/AlertDialog.tsx","../src/components/dropdown-menu/DropdownMenu.tsx","../src/components/navigation-menu/NavigationMenu.tsx","../src/components/table/Table.tsx","../src/primitives/table.tsx","../src/components/item/Item.tsx","../src/primitives/item.tsx","../src/primitives/separator.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/country-select/CountrySelect.tsx","../src/components/icon/Icon.tsx","../src/primitives/popover.tsx","../src/primitives/command.tsx","../src/primitives/dialog.tsx","../src/components/country-select/countries.ts","../src/components/text-area/TextArea.tsx","../src/primitives/textarea.tsx","../src/primitives/label.tsx","../src/primitives/field.tsx","../src/components/link/Link.tsx","../src/components/container/Container.tsx","../src/components/grid/Grid.tsx","../src/components/box/Box.tsx","../src/components/berget-logo/BergetLogo.tsx","../src/components/language-select/LanguageSelect.tsx","../src/components/list/List.tsx","../src/components/divider/Divider.tsx","../src/components/hero-block/HeroBlock.tsx","../src/components/code-block/CodeBlock.tsx","../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["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 * as React from 'react';\nimport { 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\n/**\n * Bridge for the legacy Radix `asChild` boolean on Berget primitive wrappers.\n * Base UI replaces `asChild` with a `render` prop: this helper returns the\n * element to pass to `render` (or `undefined` when not composing), so the\n * public design-system API can keep `<Trigger asChild><Button/></Trigger>`.\n */\nexport function asChildRender(\n asChild: boolean | undefined,\n children: React.ReactNode,\n): React.ReactElement | undefined {\n if (!asChild) return undefined;\n return React.Children.only(children) as React.ReactElement;\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\n\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-xs': \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends\n Omit<ButtonPrimitive.Props, 'className' | 'style' | 'render'>,\n VariantProps<typeof buttonVariants> {\n className?: string;\n style?: React.CSSProperties;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, children, ...props }, ref) => {\n const Comp = ButtonPrimitive;\n return (\n <Comp\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n render={asChild ? (children as React.ReactElement) : undefined}\n {...props}\n >\n {asChild ? undefined : children}\n </Comp>\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import type * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Button as ButtonPrimitive, buttonVariants } from '../../primitives/button';\nimport type { VariantProps } from 'class-variance-authority';\n\n/** Variants exposed by the Berget wrapper. */\ntype CustomVariant = 'default' | 'primary' | 'destructive' | 'outline' | 'ghost' | 'link';\n\n/** Props for the Berget Button wrapper. */\nexport interface ButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'variant' | 'ref'\n> {\n /** Visual style variant. `primary` is Berget-specific. */\n variant?: CustomVariant;\n /** Full width or auto width. */\n width?: 'default' | 'full';\n ref?: React.Ref<HTMLButtonElement>;\n}\n\n/** Brand-specific classes applied *on top* of the upstream primitive. */\nfunction brandVariantClasses(variant?: CustomVariant): string {\n switch (variant) {\n case 'primary':\n return 'bg-berget-button-primary-bg text-berget-button-primary-fg shadow-lg hover:bg-berget-button-primary-bg/90 hover:shadow-xl';\n case 'destructive':\n return 'bg-berget-button-destructive-bg text-berget-button-destructive-fg shadow-sm hover:bg-berget-button-destructive-bg/80 hover:shadow dark:hover:bg-berget-button-destructive-bg/80 dark:hover:text-berget-button-destructive-fg';\n case 'outline':\n return 'border-berget-border-interactive bg-transparent text-berget-foreground hover:bg-berget-surface-hover hover:text-berget-foreground hover:border-berget-border-interactive-elevated';\n case 'ghost':\n return 'bg-transparent text-berget-foreground hover:bg-berget-brand-granite-800 hover:text-berget-foreground';\n case 'link':\n return 'bg-transparent hover:bg-transparent focus:bg-transparent active:bg-transparent text-berget-button-link-fg underline-offset-4 hover:underline';\n\n case 'default':\n default:\n return 'bg-berget-button-default-bg text-berget-button-default-fg shadow-lg hover:bg-berget-button-default-bg/90 hover:shadow-xl';\n }\n}\n\n/** Map custom variants to the closest upstream primitive variant. */\nfunction primitiveVariant(variant?: CustomVariant): VariantProps<typeof buttonVariants>['variant'] {\n switch (variant) {\n case 'primary':\n case 'destructive':\n return 'ghost';\n default:\n return variant;\n }\n}\n\nexport function Button({\n className,\n variant = 'default',\n size,\n asChild = false,\n width = 'default',\n type = 'button',\n ref,\n children,\n ...props\n}: ButtonProps) {\n const isIcon = typeof size === 'string' && size.startsWith('icon');\n const isLink = variant === 'link';\n\n const baseClass = cn(\n !isLink && buttonVariants({ variant: primitiveVariant(variant), size }),\n // Berget brand overrides\n !isLink && 'rounded-full',\n brandVariantClasses(variant),\n !isLink && width === 'full' && 'w-full',\n isIcon && 'rounded-full shadow-[0px_1px_3px_rgba(0,0,0,0.1),0px_1px_2px_-1px_rgba(0,0,0,0.1)]',\n className,\n );\n\n const content = (\n <span className={cn('inline-flex items-center', !isIcon && 'gap-2')}>{children}</span>\n );\n\n return (\n <ButtonPrimitive className={baseClass} ref={ref} asChild={asChild} type={type} {...props}>\n {asChild ? children : content}\n </ButtonPrimitive>\n );\n}\n\nexport { buttonVariants };\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/65',\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 { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = Omit<DialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n ),\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-berget-dialog-overlay-bg transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-berget-dialog-bg border-berget-dialog-border rounded-berget-sm p-6 shadow-berget-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-berget-xs opacity-70 ring-offset-berget-dialog-bg transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-berget-focus-ring focus:ring-offset-2 disabled:pointer-events-none data-open:bg-berget-muted data-open:text-berget-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Popup>\n </DialogPortal>\n));\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<DialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n render={<Typography variant=\"h5\" color=\"default\" as=\"h2\" className={className} />}\n {...props}\n >\n {children}\n </DialogPrimitive.Title>\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<DialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n render={<Typography variant=\"small\" color=\"muted\" className={className} />}\n {...props}\n >\n {children}\n </DialogPrimitive.Description>\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\n\nimport { cn, asChildRender } from '../../lib/utils';\nimport { Typography } from '../typography';\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\ntype AlertDialogTriggerProps = Omit<AlertDialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst AlertDialogTrigger = React.forwardRef<HTMLButtonElement, AlertDialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Trigger>\n ),\n);\nAlertDialogTrigger.displayName = 'AlertDialogTrigger';\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<AlertDialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-berget-dialog-overlay-bg transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = 'AlertDialogOverlay';\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<AlertDialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-berget-dialog-bg border-berget-dialog-border rounded-berget-sm p-6 shadow-berget-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95',\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)} {...props} />\n);\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nconst AlertDialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<AlertDialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n render={<Typography variant=\"h5\" color=\"default\" as=\"h2\" className={className} />}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Title>\n));\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\nconst AlertDialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<AlertDialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n render={<Typography variant=\"small\" color=\"muted\" className={className} />}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Description>\n));\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\n/** Action button — compose with `<Button>` via `asChild` for consistent styling. */\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n Omit<AlertDialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn(className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Close>\n));\nAlertDialogAction.displayName = 'AlertDialogAction';\n\n/** Cancel button — composes with `<Button>` via `asChild`. Includes `mt-2 sm:mt-0` for footer spacing. */\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n Omit<AlertDialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn('mt-2 sm:mt-0', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Close>\n));\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import * as React from 'react';\nimport { Menu as DropdownMenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\n\n/* ------------------------------------------------------------------ */\n/* Root & inert sub-components */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\ntype DropdownMenuTriggerProps = Omit<\n DropdownMenuPrimitive.Trigger.Props,\n 'className' | 'render'\n> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DropdownMenuTrigger = React.forwardRef<HTMLButtonElement, DropdownMenuTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nconst DropdownMenuSub = DropdownMenuPrimitive.SubmenuRoot;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n/* ------------------------------------------------------------------ */\n/* SubTrigger */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.SubmenuTrigger.Props, 'className' | 'render'> & {\n className?: string;\n inset?: boolean;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubmenuTrigger\n ref={ref}\n className={cn(\n 'flex cursor-default select-none items-center gap-2 rounded-berget-xs px-2 py-1.5 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-popup-open:bg-berget-surface-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\n <>\n {children}\n <ChevronRight className=\"ml-auto\" />\n </>\n )}\n </DropdownMenuPrimitive.SubmenuTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\n\n/* ------------------------------------------------------------------ */\n/* SubContent */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSubContent = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Popup.Props, 'className'> &\n Pick<\n DropdownMenuPrimitive.Positioner.Props,\n 'side' | 'sideOffset' | 'align' | 'alignOffset'\n > & {\n className?: string;\n }\n>(\n (\n { className, side = 'right', align = 'start', alignOffset = -3, sideOffset = 0, ...props },\n ref,\n ) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Positioner\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <DropdownMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-berget-xs border border-berget-border bg-berget-popover p-1 text-berget-popover-foreground shadow-berget-lg transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Positioner>\n </DropdownMenuPrimitive.Portal>\n ),\n);\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuContent = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Popup.Props, 'className'> &\n Pick<\n DropdownMenuPrimitive.Positioner.Props,\n 'sideOffset' | 'align' | 'side' | 'alignOffset'\n > & {\n className?: string;\n }\n>(({ className, sideOffset = 4, align = 'center', side, alignOffset, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Positioner\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <DropdownMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 max-h-[var(--available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-berget-xs border border-berget-border bg-berget-popover p-1 text-berget-popover-foreground shadow-berget-md transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Positioner>\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Item.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n inset?: boolean;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center gap-2 rounded-berget-xs px-2 py-1.5 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.Item>\n));\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n/* ------------------------------------------------------------------ */\n/* CheckboxItem */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.CheckboxItem.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-berget-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.CheckboxItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.CheckboxItemIndicator>\n </span>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\n\n/* ------------------------------------------------------------------ */\n/* RadioItem */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuRadioItem = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.RadioItem.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n label={textValue}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-berget-xs py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-berget-surface-hover data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.RadioItemIndicator>\n <Circle className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.RadioItemIndicator>\n </span>\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\n\n/* ------------------------------------------------------------------ */\n/* Label */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.GroupLabel.Props, 'className' | 'render'> & {\n className?: string;\n inset?: boolean;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, inset, asChild, children, ...props }, ref) => (\n <DropdownMenuPrimitive.GroupLabel\n ref={ref}\n className={cn(\n 'px-2 py-1.5 text-sm font-semibold text-berget-foreground',\n inset && 'pl-8',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </DropdownMenuPrimitive.GroupLabel>\n));\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n\n/* ------------------------------------------------------------------ */\n/* Separator */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n Omit<DropdownMenuPrimitive.Separator.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-berget-separator', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n/* ------------------------------------------------------------------ */\n/* Shortcut */\n/* ------------------------------------------------------------------ */\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-berget-muted-foreground', className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from 'react';\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn, asChildRender } from '../../lib/utils';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenu = React.forwardRef<\n HTMLElement,\n Omit<NavigationMenuPrimitive.Root.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = 'NavigationMenu';\n\n/* ------------------------------------------------------------------ */\n/* List */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuList = React.forwardRef<\n HTMLUListElement,\n Omit<NavigationMenuPrimitive.List.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn('group flex flex-1 list-none items-center justify-center gap-1', className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = 'NavigationMenuList';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-10 w-max items-center justify-center rounded-berget-xs px-4 py-2 text-sm font-medium transition-colors hover:bg-berget-surface-02 hover:text-berget-foreground focus:bg-berget-surface-02 focus:text-berget-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-popup-open:text-berget-foreground data-popup-open:bg-berget-border data-popup-open:hover:bg-berget-border data-popup-open:focus:bg-berget-border',\n);\n\nconst NavigationMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n Omit<NavigationMenuPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\n <>\n {children}{' '}\n <ChevronDown\n className=\"relative top-[1px] ml-1 size-3 transition duration-200 group-data-[data-popup-open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </>\n )}\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = 'NavigationMenuTrigger';\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuContent = React.forwardRef<\n HTMLDivElement,\n Omit<NavigationMenuPrimitive.Content.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[activation-direction=left]:fade-in data-[activation-direction=right]:fade-out md:absolute md:w-auto',\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = 'NavigationMenuContent';\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuLink = React.forwardRef<\n HTMLAnchorElement,\n Omit<NavigationMenuPrimitive.Link.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Link\n ref={ref}\n className={className}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </NavigationMenuPrimitive.Link>\n));\nNavigationMenuLink.displayName = 'NavigationMenuLink';\n\n/* ------------------------------------------------------------------ */\n/* Viewport */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuViewport = React.forwardRef<\n HTMLElement,\n Omit<NavigationMenuPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner className=\"isolate z-50 outline-none\">\n <NavigationMenuPrimitive.Popup\n ref={ref}\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--popup-height)] w-full overflow-hidden rounded-berget-xs border border-berget-border bg-berget-popover text-berget-popover-foreground shadow-berget-lg transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-90 data-ending-style:opacity-0 data-ending-style:scale-90 md:w-[var(--popup-width)]',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Viewport />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n));\nNavigationMenuViewport.displayName = 'NavigationMenuViewport';\n\n/* ------------------------------------------------------------------ */\n/* Indicator */\n/* ------------------------------------------------------------------ */\n\nconst NavigationMenuIndicator = React.forwardRef<\n HTMLSpanElement,\n Omit<NavigationMenuPrimitive.Icon.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Icon\n ref={ref}\n className={cn(\n 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden transition-[opacity] data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-berget-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n));\nNavigationMenuIndicator.displayName = 'NavigationMenuIndicator';\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Table as TablePrimitive,\n TableHeader as TableHeaderPrimitive,\n TableBody as TableBodyPrimitive,\n TableFooter as TableFooterPrimitive,\n TableHead as TableHeadPrimitive,\n TableRow as TableRowPrimitive,\n TableCell as TableCellPrimitive,\n TableCaption as TableCaptionPrimitive,\n} from '../../primitives/table';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => <TablePrimitive ref={ref} className={className} {...props} />,\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableHeaderPrimitive\n ref={ref}\n className={cn('[&_tr]:border-b border-berget-table-border', className)}\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableBodyPrimitive\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableFooterPrimitive\n ref={ref}\n className={cn(\n 'border-t border-berget-table-border bg-berget-table-footer-bg font-medium [&>tr]:last:border-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <TableRowPrimitive\n ref={ref}\n className={cn(\n 'border-b border-berget-table-border transition-colors hover:bg-berget-table-row-hover data-[state=selected]:bg-berget-table-row-selected',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableHeadPrimitive\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-berget-table-head-text [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableCellPrimitive\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <TableCaptionPrimitive\n ref={ref}\n className={cn('mt-4 text-sm text-berget-table-caption-text', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Item as ItemPrimitive,\n ItemGroup,\n ItemSeparator as ItemSeparatorPrimitive,\n ItemMedia as ItemMediaPrimitive,\n ItemContent,\n ItemTitle as ItemTitlePrimitive,\n ItemDescription as ItemDescriptionPrimitive,\n ItemActions,\n ItemHeader,\n ItemFooter,\n} from '@/primitives/item';\nimport type { VariantProps } from 'class-variance-authority';\n\nexport interface ItemProps extends React.ComponentProps<typeof ItemPrimitive> {\n variant?: VariantProps<typeof ItemPrimitive>['variant'];\n size?: VariantProps<typeof ItemPrimitive>['size'];\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n}\n\nexport function Item({ className, asChild, children, ...props }: ItemProps) {\n return (\n <ItemPrimitive\n render={asChild ? (children as React.ReactElement) : undefined}\n className={cn(\n /* Variant colours — override primitive defaults */\n 'data-[variant=outline]:border-berget-item-outline-border',\n 'data-[variant=muted]:bg-berget-item-muted-bg',\n 'data-[variant=muted]:text-berget-item-muted-fg',\n /* Hover / focus */\n '[&_a]:hover:bg-berget-item-link-hover-surface',\n 'focus-visible:border-berget-item-focus-ring focus-visible:ring-berget-item-focus-ring/50',\n className,\n )}\n {...props}\n >\n {asChild ? undefined : children}\n </ItemPrimitive>\n );\n}\n\n/** Re-export unchanged sub-components. */\nexport { ItemGroup, ItemContent, ItemActions, ItemHeader, ItemFooter };\n\n/** ItemMedia — override icon background. */\nexport const ItemMedia = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ItemMediaPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemMediaPrimitive\n ref={ref}\n className={cn('data-[variant=icon]:bg-berget-item-media-icon-bg', className)}\n {...props}\n />\n );\n});\nItemMedia.displayName = 'ItemMedia';\n\n/** ItemTitle — override to use semantic foreground. */\nexport const ItemTitle = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof ItemTitlePrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemTitlePrimitive\n ref={ref}\n className={cn('text-berget-item-default-fg', className)}\n {...props}\n />\n );\n});\nItemTitle.displayName = 'ItemTitle';\n\n/** ItemDescription — override muted text colour. */\nexport const ItemDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof ItemDescriptionPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemDescriptionPrimitive\n ref={ref}\n className={cn('text-berget-item-description-fg', className)}\n {...props}\n />\n );\n});\nItemDescription.displayName = 'ItemDescription';\n\n/** ItemSeparator — override colour. */\nexport const ItemSeparator = React.forwardRef<\n React.ComponentRef<typeof ItemSeparatorPrimitive>,\n React.ComponentProps<typeof ItemSeparatorPrimitive>\n>(({ className, ...props }, ref) => {\n return (\n <ItemSeparatorPrimitive\n ref={ref}\n className={cn('bg-berget-item-separator', className)}\n {...props}\n />\n );\n});\nItemSeparator.displayName = 'ItemSeparator';\n","import type * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\n\nimport { cn } from '@/lib/utils';\nimport { Separator } from '@/primitives/separator';\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn('group/item-group flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn('my-0', className)}\n {...props}\n />\n );\n}\n\nconst itemVariants = cva(\n 'group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border-border',\n muted: 'bg-muted/50',\n },\n size: {\n default: 'gap-4 p-4 ',\n sm: 'gap-2.5 px-4 py-3',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Item({\n className,\n variant = 'default',\n size = 'default',\n render,\n ...props\n}: useRender.ComponentProps<'div'> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: 'div',\n render,\n props: mergeProps<'div'>(\n {\n 'data-slot': 'item',\n 'data-variant': variant,\n 'data-size': size,\n className: cn(itemVariants({ variant, size, className })),\n } as React.ComponentProps<'div'>,\n props,\n ),\n });\n}\n\nconst itemMediaVariants = cva(\n 'flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image: 'size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction ItemMedia({\n className,\n variant = 'default',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', className)}\n {...props}\n />\n );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn('flex w-fit items-center gap-2 text-sm font-medium leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n 'text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"item-actions\" className={cn('flex items-center gap-2', className)} {...props} />\n );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn('flex basis-full items-center justify-between gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn('flex basis-full items-center justify-between gap-2', className)}\n {...props}\n />\n );\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { cn } from '@/lib/utils';\n\nconst Separator = React.forwardRef<\n HTMLDivElement,\n Omit<SeparatorPrimitive.Props, 'orientation'> & { orientation?: 'horizontal' | 'vertical' }\n>(({ className, orientation = 'horizontal', ...props }, ref) => (\n <SeparatorPrimitive\n ref={ref}\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 = 'Separator';\n\nexport { Separator };\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 { Checkbox as CheckboxPrimitive } from '@base-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 (\n {\n 'aria-label': ariaLabel,\n className,\n variant,\n size,\n label,\n description,\n error,\n id,\n disabled,\n ...props\n },\n ref,\n ) => {\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 nativeButton\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n aria-label={ariaLabel || label || 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 { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n HTMLElement,\n Omit<CheckboxPrimitive.Root.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer cursor-pointer 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 data-disabled:cursor-not-allowed data-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 = 'Checkbox';\n\nconst CheckboxIndicator = React.forwardRef<\n HTMLSpanElement,\n Omit<CheckboxPrimitive.Indicator.Props, 'className'> & { className?: string }\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 = 'CheckboxIndicator';\n\nexport { Checkbox, CheckboxIndicator };\n","import * as React from 'react';\nimport { Switch as SwitchPrimitives } from '@base-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-unchecked:bg-berget-border data-checked:bg-berget-secondary',\n primary:\n 'data-unchecked:bg-berget-border-subtle data-checked:bg-berget-switch-primary-checked',\n subtle:\n 'data-unchecked:bg-berget-border-subtle data-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-checked:translate-x-4 data-unchecked:translate-x-0',\n default: 'h-5 w-5 data-checked:translate-x-5 data-unchecked:translate-x-0',\n lg: 'h-6 w-6 data-checked:translate-x-6 data-unchecked:translate-x-0',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport interface SwitchProps\n extends Omit<SwitchPrimitives.Root.Props, 'className'>, VariantProps<typeof switchRootVariants> {\n label?: string;\n description?: string;\n error?: string;\n className?: string;\n}\n\nconst Switch = React.forwardRef<HTMLElement, SwitchProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n variant,\n size,\n label,\n description,\n error,\n id,\n disabled,\n ...props\n },\n ref,\n ) => {\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 nativeButton\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n aria-label={ariaLabel || label || 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={\n onValueChange ? (value) => onValueChange((value ?? '') as string) : undefined\n }\n disabled={disabled}\n name={name}\n required={required}\n // Base UI Select.Value renders the raw value by default. Passing `items`\n // makes it render the matching label instead (radix selected ItemText behaviour).\n items={options}\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 { Select as SelectPrimitive } from '@base-ui/react/select';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Select = SelectPrimitive.Root as <Value, Multiple extends boolean | undefined = false>(\n props: SelectPrimitive.Root.Props<Value, Multiple>,\n) => React.JSX.Element;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n HTMLButtonElement,\n Omit<SelectPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-full cursor-pointer 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 render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n {asChild ? null : (\n <SelectPrimitive.Icon render={<ChevronDown className=\"h-4 w-4 opacity-50\" />} />\n )}\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = 'SelectTrigger';\n\nconst SelectScrollUpButton = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.ScrollUpArrow.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpArrow\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.ScrollUpArrow>\n));\nSelectScrollUpButton.displayName = 'SelectScrollUpButton';\n\nconst SelectScrollDownButton = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.ScrollDownArrow.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownArrow\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.ScrollDownArrow>\n));\nSelectScrollDownButton.displayName = 'SelectScrollDownButton';\n\nconst SelectContent = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Popup.Props, 'className'> &\n Pick<SelectPrimitive.Positioner.Props, 'sideOffset' | 'align' | 'side' | 'alignOffset'> & {\n className?: string;\n /**\n * Replaces the Radix `position` prop. `true` (default) = item-aligned\n * (Radix `position=\"item-aligned\"`); `false` = popper (`position=\"popper\"`).\n */\n alignItemWithTrigger?: boolean;\n }\n>(\n (\n {\n className,\n children,\n alignItemWithTrigger = true,\n sideOffset = 4,\n align,\n side,\n alignOffset,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n alignItemWithTrigger={alignItemWithTrigger}\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 max-h-[var(--available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List className={cn('p-1')}>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n ),\n);\nSelectContent.displayName = 'SelectContent';\n\nconst SelectLabel = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.GroupLabel.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, asChild, children, ...props }, ref) => (\n <SelectPrimitive.GroupLabel\n ref={ref}\n className={cn('py-1.5 pl-8 pr-2 text-sm ', className)}\n render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : children}\n </SelectPrimitive.GroupLabel>\n));\nSelectLabel.displayName = 'SelectLabel';\n\nconst SelectItem = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Item.Props, 'className' | 'render' | 'label'> & {\n className?: string;\n /** Typeahead label. Replaces the Radix `textValue` prop. */\n textValue?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n }\n>(({ className, children, asChild, textValue, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n label={textValue}\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 render={asChildRender(asChild, children)}\n {...props}\n >\n {asChild ? undefined : (\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 <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </>\n )}\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nconst SelectSeparator = React.forwardRef<\n HTMLDivElement,\n Omit<SelectPrimitive.Separator.Props, 'className'> & { className?: string }\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 = 'SelectSeparator';\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronDown, Globe } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Icon } from '@/components/icon';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/primitives/popover';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/primitives/command';\nimport { type Country, COUNTRIES } from './countries';\n\nexport interface CountrySelectProps {\n value?: string | null;\n onValueChange?: (code: string) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n align?: 'center' | 'start' | 'end';\n sideOffset?: number;\n}\n\nconst CountrySelect = React.forwardRef<React.ElementRef<'button'>, CountrySelectProps>(\n (\n {\n value,\n onValueChange,\n placeholder = 'Select country',\n disabled = false,\n className,\n align = 'center',\n sideOffset = 4,\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(false);\n const selectedCountry = React.useMemo(() => COUNTRIES.find((c) => c.code === value), [value]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n aria-expanded={open}\n className={cn(\n // Base layout — consistent with Select trigger\n 'flex w-full items-center justify-between',\n 'rounded-berget-xs border bg-card',\n 'px-4 py-3 text-sm',\n 'transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-0',\n 'focus-visible:ring-offset-0 focus-visible:border-berget-form-focus-border',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n // Default border & hover matching Select variant \"default\"\n 'border-berget-border-interactive hover:bg-berget-surface-hover',\n className,\n )}\n >\n <div className=\"flex items-center gap-2 min-w-0 flex-1\">\n {selectedCountry ? (\n <>\n <span className=\"text-xl flex-shrink-0\">{selectedCountry.flag}</span>\n <span className=\"truncate\">{selectedCountry.name}</span>\n <span className=\"text-berget-muted-foreground text-xs flex-shrink-0\">\n ({selectedCountry.code})\n </span>\n </>\n ) : (\n <>\n <Icon\n icon={Globe}\n size={16}\n className=\"flex-shrink-0 text-berget-muted-foreground\"\n />\n <span className=\"text-berget-muted-foreground truncate\">{placeholder}</span>\n </>\n )}\n </div>\n <Icon\n icon={ChevronDown}\n size={16}\n className={cn(\n 'flex-shrink-0 text-berget-muted-foreground',\n 'transition-transform duration-200',\n open && 'rotate-180',\n )}\n />\n </button>\n </PopoverTrigger>\n\n <PopoverContent\n align={align}\n sideOffset={sideOffset}\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n >\n <Command>\n <CommandInput placeholder=\"Search country...\" />\n <CommandList>\n <CommandEmpty>No countries found.</CommandEmpty>\n <CommandGroup>\n {COUNTRIES.map((country) => (\n <CommandItem\n key={country.code}\n value={`${country.name} ${country.code}`}\n onSelect={() => {\n onValueChange?.(country.code);\n setOpen(false);\n }}\n className={cn(\n 'flex items-center gap-3 px-3 py-2.5',\n \"data-[selected='true']:bg-berget-brand-granite-700/40! data-[selected=true]:text-berget-foreground\",\n value === country.code && 'bg-berget-brand-granite-800/40',\n )}\n >\n <span className=\"text-xl flex-shrink-0\">{country.flag}</span>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm truncate\">{country.name}</div>\n <div className=\"text-xs text-berget-muted-foreground\">{country.code}</div>\n </div>\n {value === country.code && (\n <div className=\"w-2 h-2 rounded-full bg-berget-brand-granite-400 flex-shrink-0\" />\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n },\n);\n\nCountrySelect.displayName = 'CountrySelect';\n\nexport { CountrySelect };\nexport type { Country };\nexport {\n COUNTRIES,\n EU_COUNTRY_CODES,\n getCountryByCode,\n getCountryByName,\n isEUCountry,\n} from './countries';\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 { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\ntype PopoverTriggerProps = Omit<PopoverPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <PopoverPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </PopoverPrimitive.Trigger>\n ),\n);\nPopoverTrigger.displayName = 'PopoverTrigger';\n\nconst PopoverContent = React.forwardRef<\n HTMLDivElement,\n Omit<PopoverPrimitive.Popup.Props, 'className'> &\n Pick<PopoverPrimitive.Positioner.Props, 'align' | 'sideOffset'> & { className?: string }\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} sideOffset={sideOffset} className=\"isolate z-50\">\n <PopoverPrimitive.Popup\n ref={ref}\n className={cn(\n 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none transition-[opacity,transform] data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95 data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 origin-[--transform-origin]',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = 'PopoverContent';\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","'use client';\n\nimport * as React from 'react';\nimport type { Dialog } from '@base-ui/react/dialog';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Dialog as DialogRoot, DialogContent } from '@/primitives/dialog';\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({\n children,\n ...props\n}: Omit<Dialog.Root.Props, 'children'> & { children?: React.ReactNode }) => {\n return (\n <DialogRoot {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </DialogRoot>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = 'CommandShortcut';\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","import * as React from 'react';\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\n\nimport { cn, asChildRender } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = Omit<DialogPrimitive.Trigger.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Trigger ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n ),\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = Omit<DialogPrimitive.Close.Props, 'className' | 'render'> & {\n className?: string;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ asChild, children, ...props }, ref) => (\n <DialogPrimitive.Close ref={ref} render={asChildRender(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n ),\n);\nDialogClose.displayName = 'DialogClose';\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Backdrop.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 transition-[opacity] duration-200 data-starting-style:opacity-0 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n Omit<DialogPrimitive.Popup.Props, 'className'> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg transition-[opacity,transform] duration-200 data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-95 sm:rounded-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-open:bg-accent data-open:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Popup>\n </DialogPortal>\n));\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<DialogPrimitive.Title.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n Omit<DialogPrimitive.Description.Props, 'className'> & { className?: string }\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","/**\n * List of countries supported by Odoo Fiscal Localization\n * Source: https://www.odoo.com/documentation/saas-15.3/applications/finance/accounting/fiscal_localizations/overview/localizations_list.html\n */\n\nexport interface Country {\n code: string; // ISO 3166-1 alpha-2 code\n name: string; // Country name\n flag: string; // Emoji flag\n}\n\nexport const COUNTRIES: Country[] = [\n { code: 'AX', name: 'Åland Islands', flag: '🇦🇽' },\n { code: 'DZ', name: 'Algeria', flag: '🇩🇿' },\n { code: 'AR', name: 'Argentina', flag: '🇦🇷' },\n { code: 'AU', name: 'Australia', flag: '🇦🇺' },\n { code: 'AT', name: 'Austria', flag: '🇦🇹' },\n { code: 'BE', name: 'Belgium', flag: '🇧🇪' },\n { code: 'BG', name: 'Bulgaria', flag: '🇧🇬' },\n { code: 'BO', name: 'Bolivia', flag: '🇧🇴' },\n { code: 'BR', name: 'Brazil', flag: '🇧🇷' },\n { code: 'CA', name: 'Canada', flag: '🇨🇦' },\n { code: 'CL', name: 'Chile', flag: '🇨🇱' },\n { code: 'CN', name: 'China', flag: '🇨🇳' },\n { code: 'CO', name: 'Colombia', flag: '🇨🇴' },\n { code: 'CR', name: 'Costa Rica', flag: '🇨🇷' },\n { code: 'CY', name: 'Cyprus', flag: '🇨🇾' },\n { code: 'HR', name: 'Croatia', flag: '🇭🇷' },\n { code: 'CZ', name: 'Czech Republic', flag: '🇨🇿' },\n { code: 'DK', name: 'Denmark', flag: '🇩🇰' },\n { code: 'DO', name: 'Dominican Republic', flag: '🇩🇴' },\n { code: 'EC', name: 'Ecuador', flag: '🇪🇨' },\n { code: 'EG', name: 'Egypt', flag: '🇪🇬' },\n { code: 'EE', name: 'Estonia', flag: '🇪🇪' },\n { code: 'ET', name: 'Ethiopia', flag: '🇪🇹' },\n { code: 'FI', name: 'Finland', flag: '🇫🇮' },\n { code: 'FR', name: 'France', flag: '🇫🇷' },\n { code: 'DE', name: 'Germany', flag: '🇩🇪' },\n { code: 'GR', name: 'Greece', flag: '🇬🇷' },\n { code: 'GT', name: 'Guatemala', flag: '🇬🇹' },\n { code: 'HN', name: 'Honduras', flag: '🇭🇳' },\n { code: 'HK', name: 'Hong Kong', flag: '🇭🇰' },\n { code: 'HU', name: 'Hungary', flag: '🇭🇺' },\n { code: 'IN', name: 'India', flag: '🇮🇳' },\n { code: 'ID', name: 'Indonesia', flag: '🇮🇩' },\n { code: 'IE', name: 'Ireland', flag: '🇮🇪' },\n { code: 'IL', name: 'Israel', flag: '🇮🇱' },\n { code: 'IT', name: 'Italy', flag: '🇮🇹' },\n { code: 'JP', name: 'Japan', flag: '🇯🇵' },\n { code: 'KE', name: 'Kenya', flag: '🇰🇪' },\n { code: 'LT', name: 'Lithuania', flag: '🇱🇹' },\n { code: 'LV', name: 'Latvia', flag: '🇱🇻' },\n { code: 'LU', name: 'Luxembourg', flag: '🇱🇺' },\n { code: 'MA', name: 'Morocco', flag: '🇲🇦' },\n { code: 'MT', name: 'Malta', flag: '🇲🇹' },\n { code: 'MX', name: 'Mexico', flag: '🇲🇽' },\n { code: 'MN', name: 'Mongolia', flag: '🇲🇳' },\n { code: 'NL', name: 'Netherlands', flag: '🇳🇱' },\n { code: 'NZ', name: 'New Zealand', flag: '🇳🇿' },\n { code: 'NO', name: 'Norway', flag: '🇳🇴' },\n { code: 'PK', name: 'Pakistan', flag: '🇵🇰' },\n { code: 'PA', name: 'Panama', flag: '🇵🇦' },\n { code: 'PE', name: 'Peru', flag: '🇵🇪' },\n { code: 'PL', name: 'Poland', flag: '🇵🇱' },\n { code: 'PT', name: 'Portugal', flag: '🇵🇹' },\n { code: 'RO', name: 'Romania', flag: '🇷🇴' },\n { code: 'SA', name: 'Saudi Arabia', flag: '🇸🇦' },\n { code: 'SG', name: 'Singapore', flag: '🇸🇬' },\n { code: 'SK', name: 'Slovakia', flag: '🇸🇰' },\n { code: 'SI', name: 'Slovenia', flag: '🇸🇮' },\n { code: 'ZA', name: 'South Africa', flag: '🇿🇦' },\n { code: 'ES', name: 'Spain', flag: '🇪🇸' },\n { code: 'SE', name: 'Sweden', flag: '🇸🇪' },\n { code: 'CH', name: 'Switzerland', flag: '🇨🇭' },\n { code: 'TW', name: 'Taiwan', flag: '🇹🇼' },\n { code: 'TH', name: 'Thailand', flag: '🇹🇭' },\n { code: 'TR', name: 'Turkey', flag: '🇹🇷' },\n { code: 'AE', name: 'United Arab Emirates', flag: '🇦🇪' },\n { code: 'GB', name: 'United Kingdom', flag: '🇬🇧' },\n { code: 'UA', name: 'Ukraine', flag: '🇺🇦' },\n { code: 'US', name: 'United States', flag: '🇺🇸' },\n { code: 'UY', name: 'Uruguay', flag: '🇺🇾' },\n { code: 'VE', name: 'Venezuela', flag: '🇻🇪' },\n { code: 'VN', name: 'Vietnam', flag: '🇻🇳' },\n];\n\n// Helper function to get country by code\nexport const getCountryByCode = (code: string): Country | undefined => {\n return COUNTRIES.find((country) => country.code === code);\n};\n\n// Helper function to get country by name (case-insensitive)\nexport const getCountryByName = (name: string): Country | undefined => {\n return COUNTRIES.find((country) => country.name.toLowerCase() === name.toLowerCase());\n};\n\n// EU member states (ISO 3166-1 alpha-2 codes)\n// Source: https://europa.eu/european-union/about-eu/countries_en\nexport const EU_COUNTRY_CODES = [\n 'AT', // Austria\n 'BE', // Belgium\n 'BG', // Bulgaria\n 'HR', // Croatia\n 'CY', // Cyprus\n 'CZ', // Czech Republic\n 'DK', // Denmark\n 'EE', // Estonia\n 'FI', // Finland\n 'FR', // France\n 'DE', // Germany\n 'GR', // Greece\n 'HU', // Hungary\n 'IE', // Ireland\n 'IT', // Italy\n 'LV', // Latvia\n 'LT', // Lithuania\n 'LU', // Luxembourg\n 'MT', // Malta\n 'NL', // Netherlands\n 'PL', // Poland\n 'PT', // Portugal\n 'RO', // Romania\n 'SK', // Slovakia\n 'SI', // Slovenia\n 'ES', // Spain\n 'SE', // Sweden\n] as const;\n\n// Helper function to check if a country is in the EU\nexport const isEUCountry = (countryCode: string): boolean => {\n return (EU_COUNTRY_CODES as readonly string[]).includes(countryCode);\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 { 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 HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <label ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = 'Label';\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(\n 'group/field data-[invalid=true]:text-berget-destructive-foreground flex w-full gap-3',\n {\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);\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 text-berget-foreground group-data-[disabled=true]/field:text-berget-muted-foreground',\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-berget-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-berget-background text-berget-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-berget-destructive-foreground 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","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 cursor-pointer 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 { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\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 useRender.ComponentProps<'div'>, VariantProps<typeof containerVariants> {\n children?: React.ReactNode;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\n asChild?: boolean;\n}\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, size, padding, asChild = false, children, ...props }, ref) => {\n return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\n className: cn(containerVariants({ size, padding }), className),\n children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\n });\n },\n);\nContainer.displayName = 'Container';\n\nexport { Container, containerVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\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 useRender.ComponentProps<'div'>, VariantProps<typeof gridVariants> {\n children?: React.ReactNode;\n cols?: GridColsScale;\n rows?: GridRowsScale;\n gap?: SpacingScale;\n gapX?: SpacingScale;\n gapY?: SpacingScale;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\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 return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\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 children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\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 { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\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 useRender.ComponentProps<'div'>, VariantProps<typeof boxVariants> {\n children?: React.ReactNode;\n gap?: SpacingScale;\n /** Render as a different element/component. Replaces the Radix `asChild` prop. */\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 return useRender({\n ref,\n defaultTagName: 'div',\n render: asChild ? (children as React.ReactElement) : undefined,\n props: mergeProps<'div'>(\n {\n className: cn(\n boxVariants({ direction, align, justify, wrap }),\n gap !== undefined && `gap-${gap}`,\n className,\n ),\n children: asChild ? undefined : children,\n } as React.ComponentProps<'div'>,\n props,\n ),\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 { Select as SelectPrimitive } from '@base-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<HTMLButtonElement, LanguageSelectProps>(\n ({ className, options, value, onValueChange }, ref) => {\n return (\n <SelectPrimitive.Root\n value={value}\n onValueChange={onValueChange ? (v) => onValueChange((v ?? '') as string) : undefined}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n aria-label=\"Select language\"\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 <span className=\"sr-only\">Select language</span>\n <Icon icon={Globe} size={16} aria-hidden={true} />\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner alignItemWithTrigger={false} className=\"isolate z-50\">\n <SelectPrimitive.Popup\n className={cn(\n // Positioning and z-index\n '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 'transition-[opacity,transform]',\n 'data-starting-style:opacity-0 data-starting-style:scale-95 data-ending-style:opacity-0 data-ending-style:scale-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-[--transform-origin]',\n )}\n >\n <SelectPrimitive.List 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.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n },\n);\n\nLanguageSelect.displayName = 'LanguageSelect';\n\nexport { LanguageSelect };\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 * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800',\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div className=\"flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <div className=\"w-3 h-3 rounded-full bg-[#FF5F56]\" />\n <div className=\"w-3 h-3 rounded-full bg-[#FFBD2E]\" />\n <div className=\"w-3 h-3 rounded-full bg-[#27C93F]\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'px-3 py-1 text-sm transition-colors cursor-pointer',\n currentTab === tab.id\n ? 'rounded-lg bg-white/10 text-berget-foreground font-medium'\n : 'rounded text-berget-muted-foreground hover:text-berget-foreground font-medium',\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 text-sm font-mono text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":"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","names":["ThemeProvider","React","React","jsx","React","jsx","jsx","Button","React","cva","jsx","cva","React","cva","React","jsx","jsx","cva","Card","React","cva","jsx","jsxs","cva","React","cva","React","cva","jsx","cva","jsx","alertVariants","cva","Alert","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","cva","Fragment","jsx","jsxs","cva","React","React","jsx","jsx","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","React","cva","React","jsx","jsx","cva","jsx","Item","ItemMedia","jsx","ItemTitle","ItemDescription","ItemSeparator","React","React","jsx","jsx","jsxs","Input","React","CheckboxPrimitive","Check","cva","React","Check","jsx","Check","jsx","jsxs","cva","Checkbox","CheckboxPrimitive","Check","React","cva","jsx","jsxs","cva","React","cva","React","Check","ChevronDown","Fragment","jsx","jsxs","ChevronDown","Check","jsx","jsxs","cva","Select","value","React","ChevronDown","React","jsx","React","jsx","React","React","DialogPrimitive","X","jsx","jsxs","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","DialogContent","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","jsx","jsxs","jsxs","jsx","Fragment","jsx","jsxs","ChevronDown","React","cva","React","jsx","jsx","jsxs","cva","React","cva","jsx","cva","useMemo","cva","jsx","jsxs","cva","useMemo","React","cva","jsx","jsxs","cva","React","mergeProps","useRender","cva","cva","useRender","mergeProps","React","cva","mergeProps","useRender","cva","useRender","mergeProps","React","cva","mergeProps","useRender","cva","useRender","mergeProps","React","jsx","jsxs","aspectRatio","width","height","React","SelectPrimitive","Globe","jsx","jsxs","SelectPrimitive","Globe","React","React","cva","jsx","jsxs","cva","Check","jsx","jsxs","React","cva","jsx","jsxs","cva","useState","useEffect","useCallback","Check","jsx","jsxs","useState","useEffect","useCallback","Check","React","useState","jsx","jsxs","useState"]}
|