@okam/stack-ui 1.19.2 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import type { TAccordionItemProps } from '../interface';
2
+ declare const _AccordionItem: (props: TAccordionItemProps) => JSX.Element;
3
+ export default _AccordionItem;
@@ -0,0 +1,3 @@
1
+ import type { TAriaAccordionItemProps } from '../interface';
2
+ declare const AriaAccordionItem: (props: TAriaAccordionItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default AriaAccordionItem;
@@ -0,0 +1,10 @@
1
+ import type { AccordionProps } from '../interface';
2
+ /**
3
+ * Wraps react stately's `useTreeState` hook while automatically setting expanded keys props
4
+ * to selected keys props for convenience.
5
+ *
6
+ * Also sets `defaultSelectedKeys` and `defaultExpandedKeys` based on the children's props
7
+ *
8
+ * If the expanded keys props are set, they will act like the regular `useTreeState` hook
9
+ */
10
+ export default function useAccordionState(params: AccordionProps): import("react-stately").TreeState<import("../interface").TAccordionItemProps>;
@@ -1,15 +1,27 @@
1
- import type React from 'react';
1
+ import type { AccordionItemAriaProps } from '@react-aria/accordion';
2
+ import type { ComponentType, ReactElement } from 'react';
3
+ import type { ItemProps, TreeProps } from 'react-stately';
2
4
  import type { TToken } from '../../providers/Theme/interface';
3
- import type { TDefaultComponent } from '../../types/components';
4
- export interface TAccordionProps extends TDefaultComponent<TAccordionTokens> {
5
+ import type { TDefaultComponent, TTransition } from '../../types/components';
6
+ type TAccordionDefaultComponent = Omit<TDefaultComponent<TAccordionTokens>, 'children'>;
7
+ export interface AccordionProps extends TreeProps<TAccordionItemProps> {
8
+ children: ReactElement<TAccordionItemProps> | ReactElement<TAccordionItemProps>[];
9
+ }
10
+ export interface TAccordionProps extends TAccordionDefaultComponent, AccordionProps {
5
11
  id: string;
6
- title: string;
12
+ TransitionAnimation?: ComponentType<TTransition>;
13
+ }
14
+ export interface TAccordionItemProps extends ItemProps<TAccordionItemProps>, TAccordionDefaultComponent {
7
15
  icon?: React.ReactNode;
8
- ariaLabel: string;
9
- children: React.ReactNode;
10
- onClick?: (isOpen: boolean) => void;
11
- defaultIsOpen?: boolean;
16
+ onOpenChange: (isOpen: boolean) => void;
17
+ defaultOpen?: boolean;
18
+ isOpen?: boolean;
12
19
  }
20
+ export type TAriaAccordionItemProps = TAccordionDefaultComponent & Omit<AccordionItemAriaProps<TAccordionItemProps>, 'item'> & {
21
+ item: Omit<AccordionItemAriaProps<TAccordionItemProps>['item'], 'props'> & {
22
+ props?: TAccordionItemProps;
23
+ };
24
+ };
13
25
  interface TAccordionTokens extends TToken {
14
26
  titleBold: boolean;
15
27
  textAlign: 'center' | 'left';
package/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as ThemeProvider } from './theme';
2
2
  export { default as Typography } from './components/Typography';
3
3
  export { default as Accordion } from './components/Accordion';
4
+ export { default as AccordionItem } from './components/Accordion/components/AccordionItem';
4
5
  export { default as Button, ButtonWithForwardRef } from './components/Button';
5
6
  export { default as ShareButton } from './components/ShareButton';
6
7
  export { default as SidePanel } from './components/SidePanel';
@@ -35,6 +36,7 @@ export { useIsClient, IsClientContextProvider } from './providers/Client';
35
36
  export { useSidePanel, SidePanelContextProvider } from './providers/SidePanel';
36
37
  export { MenuContextProvider, useMenu } from './providers/Menu';
37
38
  export { RadioGroupProvider, useRadioGroupCtx } from './providers/RadioGroup/RadioGroup';
39
+ export { AccordionContextProvider, useAccordionCtx } from './providers/Accordion';
38
40
  export type { TButtonProps } from './components/Button/interface';
39
41
  export type { TTypographyProps } from './components/Typography/interface';
40
42
  export type { TTheme, TToken, TCustomTheme, TStyle, TDefaultTheme, TStyleCollection, TStyleValue, } from './providers/Theme/interface';
@@ -44,3 +46,4 @@ export { default as useWindow } from './components/ShareButton/utils/useWindow';
44
46
  export { default as useFacebookShareUrl } from './components/ShareButton/utils/useFacebookShareUrl';
45
47
  export { default as useMailToShareUrl } from './components/ShareButton/utils/useMailToShareUrl';
46
48
  export { default as useTwitterShareUrl } from './components/ShareButton/utils/useTwitterShareUrl';
49
+ export { default as useAccordionState } from './components/Accordion/hooks/useAccordionState';