@easy-shadcn/react
Version:
Use shadcn/ui easy&enhance like component library
55 lines (52 loc) • 2.26 kB
JavaScript
import * as React from 'react';
import React__default, { createElement } from 'react';
import * as TabsPrimitive from '@radix-ui/react-tabs';
import { cn } from '@easy-shadcn/utils';
import { jsx, jsxs } from 'react/jsx-runtime';
var Tabs = TabsPrimitive.Root;
var TabsList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
TabsPrimitive.List,
{
ref,
className: cn(
"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
className
),
...props
}
));
TabsList.displayName = TabsPrimitive.List.displayName;
var TabsTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
TabsPrimitive.Trigger,
{
ref,
className: cn(
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
className
),
...props
}
));
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
var TabsContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
TabsPrimitive.Content,
{
ref,
className: cn(
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
className
),
...props
}
));
TabsContent.displayName = TabsPrimitive.Content.displayName;
var Tabs2 = React__default.forwardRef(
({ option, listProps, triggerProps, contentProps, ...props }, ref) => {
return /* @__PURE__ */ jsxs(Tabs, { ref, ...props, children: [
/* @__PURE__ */ jsx(TabsList, { ...listProps, children: option.map((opt) => /* @__PURE__ */ createElement(TabsTrigger, { ...triggerProps, ...opt.triggerProps, key: opt.value, value: opt.value }, opt.title)) }),
option.map((opt) => /* @__PURE__ */ createElement(TabsContent, { ...contentProps, ...opt.contentProps, key: opt.value, value: opt.value }, opt.content))
] });
}
);
Tabs2.displayName = "Tabs";
export { Tabs2 as Tabs };