@dvcol/neo-svelte
Version:
Neomorphic ui library for svelte 5
48 lines (47 loc) • 1.63 kB
TypeScript
export declare const NeoCollapseGroupStrategy: {
readonly Readonly: "readonly";
readonly Oldest: "oldest";
};
export type NeoCollapseGroupStrategies = (typeof NeoCollapseGroupStrategy)[keyof typeof NeoCollapseGroupStrategy];
export declare const defaultCollapseGroupStrategy: {
min: NeoCollapseGroupStrategies;
max: NeoCollapseGroupStrategies;
};
export interface NeoCollapseGroupState {
readonly id: string;
readonly min: number;
readonly max: number;
readonly disabled?: boolean;
readonly readonly?: boolean;
readonly strategy?: NeoCollapseGroupStrategies | {
min?: NeoCollapseGroupStrategies;
max?: NeoCollapseGroupStrategies;
};
}
export interface NeoCollapseSection {
readonly id: string;
readonly editable?: boolean;
open: boolean;
changed: number;
}
export declare class NeoCollapseContext {
#private;
get disabled(): boolean | undefined;
get readonly(): boolean | undefined;
get min(): number;
get max(): number;
get opened(): number;
get closed(): number;
get strategy(): {
min?: NeoCollapseGroupStrategies;
max?: NeoCollapseGroupStrategies;
};
get canOpen(): boolean;
get canClose(): boolean;
constructor(group: NeoCollapseGroupState);
register(id: NeoCollapseSection['id'], section: NeoCollapseSection): any;
remove(sectionId: string): void;
update(sectionId: NeoCollapseSection['id']): any;
}
export declare function getNeoCollapseGroupContext(): NeoCollapseContext;
export declare function setCollapseGroupContext(group: NeoCollapseGroupState): NeoCollapseContext;