UNPKG

@easy-shadcn/react

Version:

Use shadcn/ui easy&enhance like component library

55 lines (52 loc) 2.26 kB
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 };