@still-ui/accordion
Version:
Highly customizable and accessible Accordion component.
72 lines (69 loc) • 1.62 kB
JavaScript
"use client";
import {
AccordionContext
} from "./chunk-MDNHWMKB.js";
// src/AccordionItem.tsx
import { useContext } from "react";
import { tv } from "tailwind-variants";
import React from "react";
import { Item } from "@radix-ui/react-accordion";
import { jsx } from "react/jsx-runtime";
var item = tv({
base: "group border-b border-b-slate-200 last:border-0",
variants: {
splitted: {
true: "rounded border border-slate-200 shadow-md last:border"
},
ui: {
brutal: "",
glassmorphic: "",
neumorphic: ""
}
},
compoundVariants: [
{
splitted: true,
ui: void 0,
class: "shadow-slate-100"
},
{
splitted: true,
ui: "brutal",
class: "rounded-2xl border-0 bg-white shadow-none outline outline-2 outline-black drop-shadow-[4px_6px_#000] last:border-0"
},
{
splitted: void 0,
ui: "brutal",
class: "border-black"
},
{
ui: "glassmorphic",
class: "border-slate-300 bg-white/50 backdrop-blur-md"
},
{
ui: "glassmorphic",
splitted: true,
class: "shadow-none"
},
{
splitted: true,
ui: "neumorphic",
class: "border-0 shadow-[-5px_5px_20px_#9ca3af,5px_-5px_20px_#ffffff]"
}
]
});
var AccordionItem = React.forwardRef(({ className, ...props }, ref) => {
const { splitted, ui } = useContext(AccordionContext);
return /* @__PURE__ */ jsx(
Item,
{
ref,
className: item({ splitted, ui, class: className }),
...props
}
);
});
var AccordionItem_default = AccordionItem;
export {
AccordionItem_default
};