myk-library 1.1.2 → 1.1.4

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.
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { AccordionProps } from './Accordion.types';
3
- declare const Accordion: React.FC<AccordionProps>;
3
+ declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
4
4
  export default Accordion;
@@ -1,17 +1,36 @@
1
- export declare const AccordionContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
- export declare const AccordionItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
1
+ import { AccordionVariant, AccordionSize, AccordionIconPosition } from './Accordion.types';
2
+ interface AccordionContainerProps {
3
+ $variant: AccordionVariant;
4
+ }
5
+ export declare const AccordionContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AccordionContainerProps>> & string;
6
+ interface AccordionItemContainerProps {
7
+ $variant: AccordionVariant;
8
+ $isActive: boolean;
9
+ }
10
+ export declare const AccordionItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AccordionItemContainerProps>> & string;
3
11
  interface AccordionHeaderProps {
4
12
  $isActive: boolean;
5
13
  $disabled: boolean;
14
+ $variant: AccordionVariant;
15
+ $size: AccordionSize;
16
+ $iconPosition: AccordionIconPosition;
6
17
  }
7
18
  export declare const AccordionHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, AccordionHeaderProps>> & string;
8
- interface AccordionIconProps {
19
+ interface AccordionIconWrapperProps {
9
20
  $isActive: boolean;
21
+ $size: AccordionSize;
22
+ $disabled: boolean;
23
+ $transitionDuration: number;
10
24
  }
11
- export declare const AccordionIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, AccordionIconProps>> & string;
25
+ export declare const AccordionIconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, AccordionIconWrapperProps>> & string;
12
26
  interface AccordionContentProps {
13
27
  $isActive: boolean;
28
+ $transitionDuration: number;
14
29
  }
15
30
  export declare const AccordionContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AccordionContentProps>> & string;
16
- export declare const AccordionContentInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
31
+ interface AccordionContentInnerProps {
32
+ $size: AccordionSize;
33
+ $variant: AccordionVariant;
34
+ }
35
+ export declare const AccordionContentInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AccordionContentInnerProps>> & string;
17
36
  export {};
@@ -1,15 +1,59 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode, HTMLAttributes } from 'react';
2
+ export type AccordionVariant = 'default' | 'bordered' | 'separated' | 'flush' | 'contained';
3
+ export type AccordionSize = 'sm' | 'md' | 'lg';
4
+ export type AccordionIconPosition = 'left' | 'right';
2
5
  export interface AccordionItem {
6
+ /** Unique identifier for the item */
3
7
  key: string;
8
+ /** Header content - can be string or ReactNode */
4
9
  label: ReactNode;
10
+ /** Content displayed when expanded */
5
11
  children: ReactNode;
12
+ /** Disable this specific item */
6
13
  disabled?: boolean;
14
+ /** Custom icon for this specific item (overrides accordion-level icon) */
15
+ icon?: ReactNode;
7
16
  }
8
- export interface AccordionProps {
17
+ export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
18
+ /** Array of accordion items */
9
19
  items: AccordionItem[];
20
+ /** Initially expanded item keys (uncontrolled mode) */
10
21
  defaultActiveKeys?: string[];
22
+ /** Currently expanded item keys (controlled mode) */
11
23
  activeKeys?: string[];
24
+ /** Callback when expanded items change */
12
25
  onChange?: (keys: string[]) => void;
26
+ /** Allow multiple items to be expanded simultaneously */
13
27
  allowMultiple?: boolean;
28
+ /** Visual variant of the accordion */
29
+ variant?: AccordionVariant;
30
+ /** Size of the accordion */
31
+ size?: AccordionSize;
32
+ /** Position of the expand/collapse icon */
33
+ iconPosition?: AccordionIconPosition;
34
+ /** Custom expand icon (receives isExpanded prop) */
35
+ chevronIcon?: ReactNode | ((isExpanded: boolean) => ReactNode);
36
+ /** Hide the expand/collapse icon */
37
+ hideChevron?: boolean;
38
+ /** Disable all accordion items */
39
+ disabled?: boolean;
40
+ /** Custom class name */
14
41
  className?: string;
42
+ /** Animation duration in milliseconds */
43
+ transitionDuration?: number;
44
+ }
45
+ export interface AccordionContextValue {
46
+ activeKeys: string[];
47
+ toggleItem: (key: string, disabled?: boolean) => void;
48
+ variant: AccordionVariant;
49
+ size: AccordionSize;
50
+ iconPosition: AccordionIconPosition;
51
+ chevronIcon?: ReactNode | ((isExpanded: boolean) => ReactNode);
52
+ hideChevron: boolean;
53
+ disabled: boolean;
54
+ transitionDuration: number;
55
+ registerItem: (key: string, element: HTMLButtonElement | null) => void;
56
+ getItemIndex: (key: string) => number;
57
+ focusItem: (index: number) => void;
58
+ itemCount: number;
15
59
  }
@@ -1,2 +1,2 @@
1
1
  export { default } from './Accordion';
2
- export type { AccordionProps, AccordionItem } from './Accordion.types';
2
+ export type { AccordionProps, AccordionItem, AccordionVariant, AccordionSize, AccordionIconPosition, } from './Accordion.types';
@@ -1,12 +1,17 @@
1
- import { ActionIconVariant, ActionIconSize, ActionIconRadius } from './ActionIcon.types';
2
- export declare const StyledActionIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
1
+ import { ActionIconVariant, ActionIconSize, ActionIconRadius, ActionIconColor, ActionIconGradient } from './ActionIcon.types';
2
+ interface StyledActionIconProps {
3
3
  $variant: ActionIconVariant;
4
4
  $size: ActionIconSize;
5
5
  $radius: ActionIconRadius;
6
- $color: string;
6
+ $color: ActionIconColor | string;
7
+ $gradient?: ActionIconGradient;
7
8
  $loading?: boolean;
9
+ }
10
+ export declare const StyledActionIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, StyledActionIconProps>> & string;
11
+ export declare const LoadingSpinner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
12
+ $size: ActionIconSize;
8
13
  }>> & string;
9
- export declare const LoadingSpinner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
10
14
  export declare const IconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
11
15
  $loading?: boolean;
12
16
  }>> & string;
17
+ export {};
@@ -1,20 +1,38 @@
1
1
  import { ButtonHTMLAttributes, ReactNode } from 'react';
2
- export type ActionIconVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'transparent';
2
+ export type ActionIconVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'transparent' | 'white' | 'gradient';
3
3
  export type ActionIconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
4
  export type ActionIconRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
5
+ export type ActionIconColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'gray';
6
+ export interface ActionIconGradient {
7
+ from: string;
8
+ to: string;
9
+ deg?: number;
10
+ }
5
11
  export interface ActionIconProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
6
12
  /** Icon element to display */
7
13
  children: ReactNode;
8
14
  /** Visual style variant */
9
15
  variant?: ActionIconVariant;
10
- /** Color from theme or custom color */
11
- color?: string;
16
+ /**
17
+ * Color from theme palette or custom color
18
+ * Can be a theme color name ('primary', 'error', etc.) or a hex color
19
+ */
20
+ color?: ActionIconColor | string;
21
+ /** Gradient configuration (only used when variant="gradient") */
22
+ gradient?: ActionIconGradient;
12
23
  /** Button size */
13
24
  size?: ActionIconSize;
14
25
  /** Border radius */
15
26
  radius?: ActionIconRadius;
16
27
  /** Disabled state */
17
28
  disabled?: boolean;
18
- /** Loading state - shows spinner */
29
+ /** Loading state - shows spinner and disables interaction */
19
30
  loading?: boolean;
31
+ /**
32
+ * Accessible label for the button (required for accessibility)
33
+ * If not provided via aria-label, ensure the icon is self-descriptive
34
+ */
35
+ 'aria-label'?: string;
36
+ /** Additional CSS class name */
37
+ className?: string;
20
38
  }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export { defaultTheme, legacyTheme } from './theme';
2
+ export { darkTheme } from './theme';
3
+ export { GlobalStyles } from './theme';
4
+ export type { Theme, LegacyTheme, ColorScale, SemanticColors, Typography, Spacing, BorderRadius, Shadows, ZIndex, Breakpoints, Transitions, ComponentTokens, } from './theme';
1
5
  export { default as Button } from './components/Button';
2
6
  export { default as Input } from './components/Input';
3
7
  export type { InputProps, InputVariant, InputSize } from './components/Input';