UNPKG

svelte-object

Version:

A nested component Svelte 5 Runes pattern for structuring objects/arrays and their properties

56 lines (55 loc) 2.48 kB
export interface Props<T extends Record<PropertyKey, unknown> | unknown[]> { children?: Snippet<[ props: { value: T; attributes: Record<PropertyKey, unknown>; } ]>; name?: string | number; default?: T; value?: T; /** What the unmodified object is */ origin?: T; /** Whether there's a difference between the modified and unmodified */ modified?: boolean; attributes?: Record<PropertyKey, unknown>; onSubmit?: (value: T) => void; } type Prescriptor = { name: PropertyKey; get: () => unknown; set: (value: unknown) => void; }; type SvelteObjectGeneric = Record<PropertyKey, unknown> | unknown[]; type SvelteObjectContext<T extends SvelteObjectGeneric = SvelteObjectGeneric> = { addPrescriptor: (name: Prescriptor['name'], getter: Prescriptor['get'], setter: Prescriptor['set']) => void; addValidator(fn: (trigger?: ValidationType) => boolean): void; removeValidator(fn: (trigger?: ValidationType) => boolean): void; submit: () => void; validate: (trigger?: ValidationType) => boolean; value: T | undefined; attributes: Record<string, unknown>; }; export declare function getContextSvelteObject(): SvelteObjectContext; import { type Snippet } from 'svelte'; import type { ValidationType } from './validation-types'; declare class __sveltets_Render<T extends SvelteObjectGeneric> { props(): Props<T>; events(): {}; slots(): {}; bindings(): "value" | "modified" | "attributes"; exports(): { submit: () => void; validate: (trigger?: ValidationType) => boolean; }; } interface $$IsomorphicComponent { new <T extends SvelteObjectGeneric>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & { $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>; } & ReturnType<__sveltets_Render<T>['exports']>; <T extends SvelteObjectGeneric>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>; z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>; } declare const SvelteObject: $$IsomorphicComponent; type SvelteObject<T extends SvelteObjectGeneric> = InstanceType<typeof SvelteObject<T>>; export default SvelteObject;