@easy-shadcn/react
Version:
Use shadcn/ui easy&enhance like component library
77 lines (71 loc) • 3 kB
JavaScript
;
var React = require('react');
var TabsPrimitive = require('@radix-ui/react-tabs');
var utils = require('@easy-shadcn/utils');
var jsxRuntime = require('react/jsx-runtime');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespace(React);
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
var Tabs = TabsPrimitive__namespace.Root;
var TabsList = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
TabsPrimitive__namespace.List,
{
ref,
className: utils.cn(
"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
className
),
...props
}
));
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
var TabsTrigger = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
TabsPrimitive__namespace.Trigger,
{
ref,
className: utils.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__namespace.Trigger.displayName;
var TabsContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
TabsPrimitive__namespace.Content,
{
ref,
className: utils.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__namespace.Content.displayName;
var Tabs2 = React__namespace.default.forwardRef(
({ option, listProps, triggerProps, contentProps, ...props }, ref) => {
return /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { ref, ...props, children: [
/* @__PURE__ */ jsxRuntime.jsx(TabsList, { ...listProps, children: option.map((opt) => /* @__PURE__ */ React.createElement(TabsTrigger, { ...triggerProps, ...opt.triggerProps, key: opt.value, value: opt.value }, opt.title)) }),
option.map((opt) => /* @__PURE__ */ React.createElement(TabsContent, { ...contentProps, ...opt.contentProps, key: opt.value, value: opt.value }, opt.content))
] });
}
);
Tabs2.displayName = "Tabs";
exports.Tabs = Tabs2;