carbon-components-svelte
Version:
Svelte implementation of the Carbon Design System
40 lines (32 loc) • 1.11 kB
TypeScript
import { SvelteComponentTyped } from "svelte";
import type { SvelteHTMLElements } from "svelte/elements";
export type CarbonFormContext = {
/** Context published under the key `"carbon:Form"` for descendant inputs.
Custom fluid-aware inputs can subscribe with:
`const ctx = getContext("carbon:Form");`
and read `ctx.isFluid` to adapt their rendering. */
formContext: { isFluid: boolean };
};
type $RestProps = SvelteHTMLElements["form"];
type $Props = {
/**
* Obtain a reference to the form element.
* @default null
*/
ref?: null | HTMLFormElement;
children?: (this: void) => void;
[key: `data-${string}`]: unknown;
};
export type FluidFormProps = Omit<$RestProps, keyof $Props> & $Props;
export default class FluidForm extends SvelteComponentTyped<
FluidFormProps,
{
click: WindowEventMap["click"];
keydown: WindowEventMap["keydown"];
mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"];
mouseover: WindowEventMap["mouseover"];
submit: WindowEventMap["submit"];
},
{ default: Record<string, never> }
> {}