carbon-components-svelte
Version:
Svelte implementation of the Carbon Design System
72 lines (58 loc) • 1.52 kB
TypeScript
import { SvelteComponentTyped } from "svelte";
import type { SvelteHTMLElements } from "svelte/elements";
type $RestProps = SvelteHTMLElements["div"];
type $Props<Icon = any> = {
/**
* Specify the primary button text
* @default ""
*/
primaryButtonText?: string;
/**
* Specify the primary button icon.
* @default undefined
*/
primaryButtonIcon?: Icon;
/**
* Set to `true` to disable the primary button
* @default false
*/
primaryButtonDisabled?: boolean;
/**
* Specify a class for the primary button.
* @default undefined
*/
primaryClass?: string;
/**
* Specify the secondary button text
* @default ""
*/
secondaryButtonText?: string;
/**
* 2-tuple prop to render two secondary buttons for a 3 button modal.
* Supersedes `secondaryButtonText`.
* @default []
*/
secondaryButtons?: [] | [{ text: string }, { text: string }];
/**
* Specify a class for the secondary button.
* @default undefined
*/
secondaryClass?: string;
/**
* Set to `true` to use the danger variant
* @default false
*/
danger?: boolean;
children?: (this: void) => void;
[key: `data-${string}`]: unknown;
};
export type ModalFooterProps<Icon = any> = Omit<$RestProps, keyof $Props<Icon>> & $Props<Icon>;
export default class ModalFooter<Icon = any> extends SvelteComponentTyped<
ModalFooterProps<Icon>,
{
"click:button--secondary": CustomEvent<{
text: string;
}>;
},
{ default: Record<string, never> }
> {}