///
import * as react_jsx_runtime from 'react/jsx-runtime';
import React$1 from 'react';
declare const ExperienceProvider: ({ children, }: {
children: React$1.ReactNode;
}) => react_jsx_runtime.JSX.Element;
interface FontFaceProp {
key: string;
value: string;
}
interface FontFace {
fontFamily: string;
srcUrl?: string;
extraProps?: FontFaceProp[];
}
type GetRequiredProperty = {
[Property in Key]-?: Type[Property];
};
type GetOptionalProperty = Partial<{
[Property in Key]: Type[Property];
}>;
/**
* Merge types
*/
type MergeType = Pick;
/**
* Test if types are the same
*/
type Same$1 = T1 extends T2 ? true : false;
/**
* Test if unions / types overlap
*/
type Overlap$1 = Same$1 extends false ? Extract extends never ? false : true : true;
/**
* Get the properties, required and optional
*
* @typeParam TSource - Source Type/Interface
* @typeParam RequiredProperties - required properties in current context. Must be properties of TSource.
* @typeParam OptionalProperties - optional properties in current context. Must be properties of TSource.
*/
type GetProps$1 = Overlap$1 extends true ? never : MergeType> & GetRequiredProperty> & GetOptionalProperty>>;
/**
* Check if given tags are valid
*/
type FilterElements$1 = T;
/**
* Polymorphic properties: Add an "as" property to define the tagname
*/
type AsProp$1 = {
as?: C;
};
/**
* Remove duplicate keys from combined types
*/
type PropsToOmit$1 = keyof (AsProp$1 & P);
/**
* Set polymorphic component properties (only when required!)
*
* @typeParam C - Define the element type (tag)
* @typeParam Props - Non polymorphic properties for component
*/
type PolymorphicComponentProp$1 = MergeType> & Omit, PropsToOmit$1>>;
/**
* Test if types are the same
*/
type Same = T1 extends T2 ? true : false;
/**
* Test if unions / types overlap
*/
type Overlap = Same extends false
? Extract extends never
? false
: true
: true;
/**
* Get the properties, required and optional
*
* @typeParam TSource - Source Type/Interface
* @typeParam RequiredProperties - required properties in current context. Must be properties of TSource.
* @typeParam OptionalProperties - optional properties in current context. Must be properties of TSource.
*/
type GetProps<
TSource,
RequiredProperties extends keyof TSource | null,
OptionalProperties extends keyof TSource | null,
> = Overlap extends true
? never
: MergeType<
Omit> &
GetRequiredProperty> &
GetOptionalProperty>
>;
/**
* Check if given tags are valid
*/
type FilterElements = T;
/**
* Polymorphic properties: Add an "as" property to define the tagname
*/
type AsProp = {
as?: C;
};
/**
* Remove duplicate keys from combined types
*/
type PropsToOmit = keyof (AsProp & P);
/**
* Set polymorphic component properties (only when required!)
*
* @typeParam C - Define the element type (tag)
* @typeParam Props - Non polymorphic properties for component
*/
type PolymorphicComponentProp<
C extends React.ElementType,
Props = object,
> = MergeType<
React.PropsWithChildren> &
Omit, PropsToOmit>
>;
declare const colorPalettes = [
'white',
'primary',
'secondary',
'tertiary',
];
type ColorPalettesDefaults = typeof colorPalettes;
type ColorPaletteDefault = ColorPalettesDefaults[number];
type GetColorPalette = T;
type ButtonColorPalette$1 = GetColorPalette<
'primary' | 'secondary' | 'tertiary'
>;
type ButtonElements$1 = FilterElements<'button'>;
type ButtonProps$1 = PolymorphicComponentProp<
C,
{
color?: ButtonColorPalette$1;
disabled?: boolean;
isLoading?: boolean;
}
>;
type ContentType = string | 'html' | React.ReactNode;
type Content = {
value: CONTENT_TYPE;
renderType: FORMAT_TYPE;
};
type InternalProps = Omit<
React.ComponentPropsWithoutRef,
'children'
>;
type DummyAdvancedProps = {
dummyTitle: {
content: Content;
};
dummyText: {
props?: InternalProps<'p'>;
content: Content;
};
dummyButton: {
props?: Omit & ButtonProps$1<'button'>, 'children'>;
content: Content;
};
} & React.ComponentPropsWithoutRef;
declare const DummyAdvanced: ({ children, dummyTitle, dummyText, dummyButton, ...props }: DummyAdvancedProps<'div'>) => react_jsx_runtime.JSX.Element;
type DummyNoDepsProps = {
dummyTitle: {
content: Content;
};
dummyText: {
props?: InternalProps<'p'>;
content: Content;
};
dummyButton: {
props?: Omit, 'children'>;
content: Content;
};
} & React.ComponentPropsWithoutRef;
declare const DummyNoDeps: ({ children, dummyTitle, dummyButton, dummyText, ...props }: DummyNoDepsProps) => react_jsx_runtime.JSX.Element;
type DummySimpleProps = ButtonProps$1<'button'>;
declare const DummySimple: ({ children, ...props }: DummySimpleProps) => react_jsx_runtime.JSX.Element;
type DummyTextColor = GetColorPalette<'primary' | 'secondary' | 'tertiary'>;
declare const dummyTextSizes: {
readonly sm: "2rem";
readonly md: "3rem";
readonly lg: "5rem";
};
type DummyTextSizes = typeof dummyTextSizes;
type DummyTextSize = keyof DummyTextSizes;
type DummyTextOwnProps = {
size?: DummyTextSize;
color?: DummyTextColor;
children: React$1.ReactNode;
as?: E;
};
type DummyTextProps = DummyTextOwnProps & Omit, keyof DummyTextOwnProps>;
declare const DummyText: >({ size, children, as, ...props }: DummyTextProps) => react_jsx_runtime.JSX.Element;
type ButtonColorPalette = GetColorPalette<'primary' | 'secondary' | 'tertiary'>;
type ButtonElements = FilterElements<'button'>;
type ButtonProps = PolymorphicComponentProp;
declare const Button: ({ children, className, disabled, isLoading, onClick, ...props }: ButtonProps<'button'>) => react_jsx_runtime.JSX.Element;
type DividerProps$1 = PolymorphicComponentProp;
declare const Divider: ({ text, ...props }: DividerProps$1) => react_jsx_runtime.JSX.Element;
type BoxColorPalette = GetColorPalette<'white' | 'secondary' | 'tertiary'>;
type BoxElements = FilterElements<'div' | 'section' | 'aside' | 'header' | 'nav' | 'footer' | 'article'>;
type BoxProps = PolymorphicComponentProp;
declare const Box: ({ as, children, className, color, ...props }: BoxProps) => react_jsx_runtime.JSX.Element;
declare const ProgressBar: ({ progressProps, className, ...props }: ProgressBarProps) => react_jsx_runtime.JSX.Element;
type ProgressBarProps = React.ComponentPropsWithoutRef & {
progressProps: {
value: number;
max?: number;
};
};
declare const ShowMore: ({ button, color, className, divider, progress, ...props }: ShowMoreProps) => react_jsx_runtime.JSX.Element;
type DividerProps = PolymorphicComponentProp<
C,
{
text: string;
}
>;
type ShowMoreColorPaletteProps = GetColorPalette<'white' | 'tertiary'>;
type ShowMoreElements = FilterElements<'div'>;
type ShowMoreProps = PolymorphicComponentProp & {
text: string;
}, 'onClick' | 'aria-label', null>>;
divider: DividerProps<'div'>;
progress: {
value: number;
};
}>;
declare const Container: ({ children, ...props }: ContainerProps) => react_jsx_runtime.JSX.Element;
type ContainerProps = React.ComponentPropsWithoutRef;
declare const Loader: ({ className, ...props }: LoaderProps<'span'>) => react_jsx_runtime.JSX.Element;
type LoaderProps = PolymorphicComponentProp;
export { Box, type BoxColorPalette, type BoxProps, Button, type ButtonProps, Container, type ContainerProps, Divider, type DividerProps$1 as DividerProps, DummyAdvanced, type DummyAdvancedProps, DummyNoDeps, type DummyNoDepsProps, DummySimple, type DummySimpleProps, DummyText, type DummyTextProps, ExperienceProvider, type FilterElements$1 as FilterElements, type FontFace, type FontFaceProp, type GetProps$1 as GetProps, Loader, type LoaderProps, type PolymorphicComponentProp$1 as PolymorphicComponentProp, ProgressBar, type ProgressBarProps, type Same$1 as Same, ShowMore, type ShowMoreColorPaletteProps as ShowMoreColorPalette, type ShowMoreProps };