diff --git a/packages/propel/package.json b/packages/propel/package.json index 648a630ac31..2e9786230d7 100644 --- a/packages/propel/package.json +++ b/packages/propel/package.json @@ -25,8 +25,9 @@ "./combobox": "./src/combobox/index.ts", "./tooltip": "./src/tooltip/index.ts", "./styles/fonts": "./src/styles/fonts/index.css", - "./card": "./src/card/index.ts", - "./switch": "./src/switch/index.ts" + "./switch": "./src/switch/index.ts", + "./accordion": "./src/accordion/index.ts", + "./card": "./src/card/index.ts" }, "dependencies": { "@base-ui-components/react": "^1.0.0-beta.2", diff --git a/packages/propel/src/accordion/accordion.tsx b/packages/propel/src/accordion/accordion.tsx new file mode 100644 index 00000000000..1d99019667b --- /dev/null +++ b/packages/propel/src/accordion/accordion.tsx @@ -0,0 +1,88 @@ +import { Accordion as BaseAccordion } from "@base-ui-components/react"; +import { PlusIcon } from "lucide-react"; +import * as React from "react"; + +interface AccordionRootProps { + defaultValue?: string[]; + allowMultiple?: boolean; + className?: string; + children: React.ReactNode; +} + +interface AccordionItemProps { + value: string; + disabled?: boolean; + className?: string; + children: React.ReactNode; +} + +interface AccordionTriggerProps { + className?: string; + icon?: React.ReactNode; + children: React.ReactNode; + asChild?: boolean; + iconClassName?: string; +} + +interface AccordionContentProps { + className?: string; + contentWrapperClassName?: string; + children: React.ReactNode; +} + +const AccordionRoot: React.FC = ({ + defaultValue = [], + allowMultiple = false, + className = "", + children, +}) => ( + + {children} + +); + +const AccordionItem: React.FC = ({ value, disabled, className = "", children }) => ( + + {children} + +); + +const AccordionTrigger: React.FC = ({ + className = "", + icon =