UNPKG

@arolariu/components

Version:

🎨 70+ beautiful, accessible React components built on Base UI. TypeScript-first, CSS Modules styling, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡

119 lines (118 loc) • 4.18 kB
"use client"; import { jsx, jsxs } from "react/jsx-runtime"; import { Accordion } from "@base-ui/react/accordion"; import { mergeProps } from "@base-ui/react/merge-props"; import { useRender } from "@base-ui/react/use-render"; import { ChevronDown } from "lucide-react"; import { cn } from "../../lib/utilities.js"; import accordion_module from "./accordion.module.js"; import * as __rspack_external_react from "react"; function accordion_Accordion(props) { const { className, render, type = "single" } = props; const accordionRender = useRender({ defaultTagName: "div", render: render, props: mergeProps({ className: cn(className) }, {}) }); if ("multiple" === type) { const { defaultValue, onValueChange, value, ...otherProps } = omitAccordionWrapperProps(props); return /*#__PURE__*/ jsx(Accordion.Root, { multiple: true, defaultValue: defaultValue, onValueChange: onValueChange, value: value, ...otherProps, render: accordionRender }); } const { defaultValue, onValueChange, value, ...otherProps } = omitAccordionWrapperProps(props); return /*#__PURE__*/ jsx(Accordion.Root, { multiple: false, defaultValue: defaultValue ? [ defaultValue ] : void 0, onValueChange: (nextValue, eventDetails)=>{ onValueChange?.(nextValue[0], eventDetails); }, value: value ? [ value ] : void 0, ...otherProps, render: accordionRender }); } accordion_Accordion.displayName = "Accordion"; function omitAccordionWrapperProps(props) { const rootProps = { ...props }; Reflect.deleteProperty(rootProps, "className"); Reflect.deleteProperty(rootProps, "collapsible"); Reflect.deleteProperty(rootProps, "render"); Reflect.deleteProperty(rootProps, "type"); return rootProps; } function AccordionItem(props) { const { className, children, render, ...otherProps } = props; return /*#__PURE__*/ jsx(Accordion.Item, { ...otherProps, render: useRender({ defaultTagName: "div", render: render, props: mergeProps({ className: cn(accordion_module.item, className) }, {}) }), children: children }); } AccordionItem.displayName = "AccordionItem"; const AccordionTrigger = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{ const { className, children, render, ...otherProps } = props; return /*#__PURE__*/ jsx(Accordion.Header, { className: accordion_module.header, children: /*#__PURE__*/ jsxs(Accordion.Trigger, { ref: ref, ...otherProps, render: useRender({ defaultTagName: "button", render: render, props: mergeProps({ className: cn(accordion_module.trigger, className) }, {}) }), children: [ /*#__PURE__*/ jsx("span", { children: children }), /*#__PURE__*/ jsx(ChevronDown, { className: accordion_module.icon }) ] }) }); }); AccordionTrigger.displayName = "AccordionTrigger"; const AccordionContent = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{ const { className, children, render, ...otherProps } = props; return /*#__PURE__*/ jsx(Accordion.Panel, { ref: ref, ...otherProps, render: useRender({ defaultTagName: "div", render: render, props: mergeProps({ className: accordion_module.panel }, {}) }), children: /*#__PURE__*/ jsx("div", { className: cn(accordion_module.panelInner, className), children: children }) }); }); AccordionContent.displayName = "AccordionContent"; export { AccordionContent, AccordionItem, AccordionTrigger, accordion_Accordion as Accordion }; //# sourceMappingURL=accordion.js.map