UNPKG

bits-ui

Version:

The headless components for Svelte.

96 lines (95 loc) 3.67 kB
import { type WritableBox, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt"; import type { Orientation } from "../../shared/index.js"; import type { BitsKeyboardEvent, BitsMouseEvent, RefAttachment, WithRefOpts } from "../../internal/types.js"; import { RovingFocusGroup } from "../../internal/roving-focus-group.js"; export declare const toggleGroupAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "item"]>; interface ToggleGroupBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{ disabled: boolean; rovingFocus: boolean; loop: boolean; orientation: Orientation; }> { } declare abstract class ToggleGroupBaseState { readonly opts: ToggleGroupBaseStateOpts; readonly rovingFocusGroup: RovingFocusGroup; readonly attachment: RefAttachment; constructor(opts: ToggleGroupBaseStateOpts); readonly props: { readonly id: string; readonly role: "group"; readonly "data-orientation": "horizontal" | "vertical"; readonly "data-disabled": "" | undefined; }; } interface ToggleGroupSingleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{ value: string; }> { } declare class ToggleGroupSingleState extends ToggleGroupBaseState { readonly opts: ToggleGroupSingleStateOpts; isMulti: boolean; readonly anyPressed: boolean; constructor(opts: ToggleGroupSingleStateOpts); includesItem(item: string): boolean; toggleItem(item: string, id: string): void; } interface ToggleGroupMultipleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{ value: string[]; }> { } declare class ToggleGroupMultipleState extends ToggleGroupBaseState { readonly opts: ToggleGroupMultipleStateOpts; isMulti: boolean; readonly anyPressed: boolean; constructor(opts: ToggleGroupMultipleStateOpts); includesItem(item: string): boolean; toggleItem(item: string, id: string): void; } type ToggleGroup = ToggleGroupSingleState | ToggleGroupMultipleState; interface ToggleGroupRootOpts extends WithRefOpts, ReadableBoxedValues<{ disabled: boolean; rovingFocus: boolean; loop: boolean; orientation: Orientation; }> { type: "single" | "multiple"; value: WritableBox<string> | WritableBox<string[]>; } export declare class ToggleGroupRootState { static create(opts: ToggleGroupRootOpts): ToggleGroup; } interface ToggleGroupItemStateOpts extends WithRefOpts, ReadableBoxedValues<{ value: string; disabled: boolean; }> { } export declare class ToggleGroupItemState { #private; static create(opts: ToggleGroupItemStateOpts): ToggleGroupItemState; readonly opts: ToggleGroupItemStateOpts; readonly root: ToggleGroup; readonly attachment: RefAttachment; readonly isPressed: boolean; constructor(opts: ToggleGroupItemStateOpts, root: ToggleGroup); onclick(_: BitsMouseEvent): void; onkeydown(e: BitsKeyboardEvent): void; readonly snippetProps: { pressed: boolean; }; readonly props: { readonly id: string; readonly role: "radio" | undefined; readonly tabindex: number; readonly "data-orientation": "horizontal" | "vertical"; readonly "data-disabled": "" | undefined; readonly "data-state": "off" | "on"; readonly "data-value": string; readonly "aria-pressed": "true" | "false" | undefined; readonly "aria-checked": "true" | "false" | "mixed" | undefined; readonly disabled: true | undefined; readonly onclick: (_: BitsMouseEvent) => void; readonly onkeydown: (e: BitsKeyboardEvent) => void; }; } export {};