diff --git a/source/03-components/Accordion/Accordion.tsx b/source/03-components/Accordion/Accordion.tsx index 164e84e6..d33df1a7 100644 --- a/source/03-components/Accordion/Accordion.tsx +++ b/source/03-components/Accordion/Accordion.tsx @@ -7,8 +7,16 @@ import getCssVar from '../../06-utility/getCssVar'; import AccordionItem, { AccordionItemProps } from './AccordionItem'; import styles from './accordion.module.css'; +// The Accordion component provides props itself for the AccordionItems, +// so omit those from the item objects. +interface BaseAccordionItem + extends Omit< + AccordionItemProps, + 'accordionSpeed' | 'handleClick' | 'isStepList' | 'toggleRef' + > {} + interface AccordionProps extends GessoComponent { - accordionItems: AccordionItemProps[]; + accordionItems: BaseAccordionItem[]; accordionSpeed?: string; allowMultiple?: boolean; allowToggle?: boolean; @@ -36,7 +44,7 @@ function Accordion({ return refs; }, [accordionItemsStatus]); - const openAccordionItem = (items: AccordionItemProps[], index: number) => { + const openAccordionItem = (items: BaseAccordionItem[], index: number) => { return [ ...items.slice(0, index), { @@ -47,7 +55,7 @@ function Accordion({ ]; }; - const closeAccordionItem = (items: AccordionItemProps[], index: number) => { + const closeAccordionItem = (items: BaseAccordionItem[], index: number) => { return [ ...items.slice(0, index), { @@ -151,3 +159,4 @@ function Accordion({ } export default Accordion; +export type { AccordionProps }; diff --git a/source/03-components/Article/Article.tsx b/source/03-components/Article/Article.tsx index 54bb98fd..0a516b33 100644 --- a/source/03-components/Article/Article.tsx +++ b/source/03-components/Article/Article.tsx @@ -39,3 +39,4 @@ function Article({ } export default Article; +export type { ArticleProps };