@llamaindex/ui
Version:
A comprehensive UI component library built with React, TypeScript, and Tailwind CSS for LlamaIndex applications
100 lines (97 loc) • 2.93 kB
JavaScript
import { cn } from './chunk-MG2ARK3A.mjs';
import { __objRest, __spreadValues } from './chunk-4AMAFZLZ.mjs';
import * as TabsPrimitive from '@radix-ui/react-tabs';
import { cva } from 'class-variance-authority';
import { jsx } from 'react/jsx-runtime';
function Tabs(_a) {
var _b = _a, {
className
} = _b, props = __objRest(_b, [
"className"
]);
return /* @__PURE__ */ jsx(
TabsPrimitive.Root,
__spreadValues({
"data-slot": "tabs",
className: cn("flex flex-col gap-2", className)
}, props)
);
}
var tabsListVariants = cva(
"inline-flex w-fit items-center justify-center rounded-lg bg-muted text-muted-foreground",
{
variants: {
size: {
default: "h-9 p-[3px]",
xs: "h-7 p-[2px]",
sm: "h-8 p-[2px]",
lg: "h-10 p-1"
}
},
defaultVariants: {
size: "default"
}
}
);
function TabsList(_a) {
var _b = _a, {
className,
size
} = _b, props = __objRest(_b, [
"className",
"size"
]);
return /* @__PURE__ */ jsx(
TabsPrimitive.List,
__spreadValues({
"data-slot": "tabs-list",
className: cn(tabsListVariants({ size }), className)
}, props)
);
}
var tabsTriggerVariants = cva(
"focus-visible:ring-ring/50 dark:data-[state=active]:bg-input/30 inline-flex flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent font-medium text-muted-foreground transition-[color,box-shadow] hover:cursor-pointer focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm dark:text-muted-foreground dark:data-[state=active]:border-input dark:data-[state=active]:text-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
{
variants: {
size: {
default: "h-[calc(100%-1px)] px-2 py-1 text-sm",
sm: "h-[calc(100%-1px)] px-1.5 py-0.5 text-xs",
lg: "h-[calc(100%-1px)] px-3 py-1.5 text-sm"
}
},
defaultVariants: {
size: "default"
}
}
);
function TabsTrigger(_a) {
var _b = _a, {
className,
size
} = _b, props = __objRest(_b, [
"className",
"size"
]);
return /* @__PURE__ */ jsx(
TabsPrimitive.Trigger,
__spreadValues({
"data-slot": "tabs-trigger",
className: cn(tabsTriggerVariants({ size }), className)
}, props)
);
}
function TabsContent(_a) {
var _b = _a, {
className
} = _b, props = __objRest(_b, [
"className"
]);
return /* @__PURE__ */ jsx(
TabsPrimitive.Content,
__spreadValues({
"data-slot": "tabs-content",
className: cn("flex-1 outline-none", className)
}, props)
);
}
export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };