DocsAPI referenceHeadlesscollapsible

collapsible headless API

The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.

@grassroot/ui-headless-core/collapsible

Core connector and vanilla API

19 exports
View source packages/ui-headless/core/src/collapsible/index.ts
DeclarationView source
collapsibleAnatomyts
export declare const collapsibleAnatomy: {
readonly scope: "collapsible";
readonly parts: readonly ["root", "trigger", "content"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "trigger", "content"]
required
scope
property
"collapsible"
required
Name
parts
Kind
property
Type
readonly ["root", "trigger", "content"]
Requirement
required
Name
scope
Kind
property
Type
"collapsible"
Requirement
required

CollapsibleApi

interface
DeclarationView source
CollapsibleApits
interface CollapsibleApi {
rootProps(): PartProps;
triggerProps(): PartProps;
contentProps(): PartProps;
readonly open: boolean;
}
Name
Kind
Type
Requirement
contentProps
method
() => PartProps
required
open
property
boolean
required
rootProps
method
() => PartProps
required
triggerProps
method
() => PartProps
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
rootProps
Kind
method
Type
() => PartProps
Requirement
required
Name
triggerProps
Kind
method
Type
() => PartProps
Requirement
required
DeclarationView source
CollapsibleChangeDetailts
interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
DeclarationView source
CollapsibleChangeReasonts
type CollapsibleChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
CollapsibleCommandts
type CollapsibleCommand = CommandObject & {
readonly type: "OPEN_CHANGE_REQUEST";
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
};
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
type
property
string
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
Name
type
Kind
property
Type
string
Requirement
required
DeclarationView source
CollapsibleContextts
type CollapsibleContext = {
readonly mode: "controlled" | "uncontrolled";
};
Name
Kind
Type
Requirement
mode
property
"controlled" | "uncontrolled"
required
Name
mode
Kind
property
Type
"controlled" | "uncontrolled"
Requirement
required
DeclarationView source
CollapsibleEventts
type CollapsibleEvent = {
readonly type: "TOGGLE";
readonly reason: CollapsibleChangeReason;
} | {
readonly type: "RESET";
};
DeclarationView source
CollapsibleInputts
type CollapsibleInput = {
/** Controlled committed open state. Defining it fixes controlled mode. */
readonly open?: boolean;
/** Uncontrolled initial open state. */
readonly defaultOpen?: boolean;
/** Disabled prevents user toggles. */
readonly disabled?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultOpen
property
boolean
optional
Uncontrolled initial open state.
disabled
property
boolean
optional
Disabled prevents user toggles.
open
property
boolean
optional
Controlled committed open state. Defining it fixes controlled mode.
Name
defaultOpen
Kind
property
Type
boolean
Requirement
optional
Description
Uncontrolled initial open state.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Disabled prevents user toggles.
Name
open
Kind
property
Type
boolean
Requirement
optional
Description
Controlled committed open state. Defining it fixes controlled mode.
DeclarationView source
collapsibleMachinets
export declare const collapsibleMachine: CollapsibleMachine;

CollapsibleMount

interface
DeclarationView source
CollapsibleMountts
interface CollapsibleMount {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly root: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
CollapsibleService
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
DeclarationView source
CollapsiblePartts
type CollapsiblePart = (typeof collapsibleAnatomy.parts)[number];
DeclarationView source
collapsibleSelectorsts
export declare const collapsibleSelectors: {
open: (snapshot: CollapsibleSnapshot) => boolean;
};
Name
Kind
Type
Requirement
open
property
(snapshot: CollapsibleSnapshot) => boolean
required
Name
open
Kind
property
Type
(snapshot: CollapsibleSnapshot) => boolean
Requirement
required
DeclarationView source
CollapsibleServicets
type CollapsibleService = Service<CollapsibleInput, CollapsibleStateValue, CollapsibleContext, CollapsibleEvent, CollapsibleCommand>;
DeclarationView source
CollapsibleSnapshotts
type CollapsibleSnapshot = Snapshot<CollapsibleStateValue, CollapsibleContext>;
DeclarationView source
CollapsibleStateValuets
type CollapsibleStateValue = "open" | "closed";
DeclarationView source
connectCollapsiblets
declare function connectCollapsible(service: CollapsibleService, scope: PartScope): CollapsibleApi;
Name
Kind
Type
Requirement
service
parameter
CollapsibleService
required
scope
parameter
PartScope
required
return
return value
CollapsibleApi
n/a
Name
service
Kind
parameter
Type
CollapsibleService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
return
Kind
return value
Type
CollapsibleApi
Requirement
n/a

mountCollapsible

function
DeclarationView source
mountCollapsiblets
declare function mountCollapsible(container: HTMLElement, options: MountCollapsibleOptions): CollapsibleMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountCollapsibleOptions
required
return
return value
CollapsibleMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountCollapsibleOptions
Requirement
required
Name
return
Kind
return value
Type
CollapsibleMount
Requirement
n/a
DeclarationView source
MountCollapsibleOptionsts
interface MountCollapsibleOptions extends CollapsibleInput {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
readonly renderTrigger?: (button: HTMLElement) => void;
readonly renderContent?: (content: HTMLElement) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
renderContent
property
(content: HTMLElement) => void
optional
renderTrigger
property
(button: HTMLElement) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
Name
renderContent
Kind
property
Type
(content: HTMLElement) => void
Requirement
optional
Name
renderTrigger
Kind
property
Type
(button: HTMLElement) => void
Requirement
optional

Resolves the one machine command to the adapter's public callback.

DeclarationView source
runCollapsibleCommandts
declare function runCollapsibleCommand(command: CollapsibleCommand, _scope: PartScope, options?: {
readonly onOpenChange?: (detail: {
open: boolean;
reason: CollapsibleChangeReason;
}) => void;
}): void;
Name
Kind
Type
Requirement
command
parameter
CollapsibleCommand
required
_scope
parameter
PartScope
required
options
parameter
{ readonly onOpenChange?: (detail: { open: boolean; reason: CollapsibleChangeReason; }) => void; }
optional
return
return value
void
n/a
Name
command
Kind
parameter
Type
CollapsibleCommand
Requirement
required
Name
_scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
{ readonly onOpenChange?: (detail: { open: boolean; reason: CollapsibleChangeReason; }) => void; }
Requirement
optional
Name
return
Kind
return value
Type
void
Requirement
n/a

Framework adapters

Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.

React example follows below.

React imports

@grassroot/ui-headless-react/collapsiblets
import { Collapsible, Content, Root, Trigger } from "@grassroot/ui-headless-react/collapsible";

Vue imports

@grassroot/ui-headless-vue/collapsiblets
<script setup lang="ts">
import { CollapsibleContent, CollapsibleRoot, CollapsibleTrigger } from "@grassroot/ui-headless-vue/collapsible";
</script>

Angular imports

@grassroot/ui-headless-angular/collapsiblets
import { Component } from "@angular/core";
import { GR_COLLAPSIBLE_DECLARATIONS } from "@grassroot/ui-headless-angular/collapsible";
@Component({ standalone: true, imports: [GR_COLLAPSIBLE_DECLARATIONS], template: `<!-- compose the collapsible parts here -->` })
export class Example {}

Svelte imports

@grassroot/ui-headless-svelte/collapsiblets
<script lang="ts">
import { CollapsibleContent, CollapsibleRoot, CollapsibleTrigger } from "@grassroot/ui-headless-svelte/collapsible";
</script>

Solid imports

@grassroot/ui-headless-solid/collapsiblets
import { CollapsibleContent, CollapsibleRoot, CollapsibleTrigger } from "@grassroot/ui-headless-solid/collapsible";

@grassroot/ui-headless-react/collapsible

React adapter

14 exports
View source packages/ui-headless/react/src/collapsible/index.ts

Collapsible

value
DeclarationView source
Collapsiblets
export declare const Collapsible: {
Root: import("react").ForwardRefExoticComponent<CollapsibleRootProps & import("react").RefAttributes<HTMLDivElement>>;
Trigger: import("react").ForwardRefExoticComponent<CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
Content: import("react").ForwardRefExoticComponent<CollapsibleContentProps & import("react").RefAttributes<HTMLDivElement>>;
};
Name
Kind
Type
Requirement
Content
property
import("react").ForwardRefExoticComponent<CollapsibleContentProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
import("react").ForwardRefExoticComponent<CollapsibleRootProps & import("react").RefAttributes<HTMLDivElement>>
required
Trigger
property
import("react").ForwardRefExoticComponent<CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
required
Name
Content
Kind
property
Type
import("react").ForwardRefExoticComponent<CollapsibleContentProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
import("react").ForwardRefExoticComponent<CollapsibleRootProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Trigger
Kind
property
Type
import("react").ForwardRefExoticComponent<CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
DeclarationView source
CollapsibleChangeDetailts
interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
DeclarationView source
CollapsibleContentPropsts
interface CollapsibleContentProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
children
property
ReactNode
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
DeclarationView source
CollapsibleContextts
export declare const CollapsibleContext: import("react").Context<CollapsibleContextValue | null>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a
DeclarationView source
CollapsibleContextValuets
interface CollapsibleContextValue {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
DeclarationView source
CollapsibleRootPropsts
interface CollapsibleRootProps extends Omit<ComponentPropsWithoutRef<"div">, "open" | "defaultOpen" | "onChange"> {
readonly asChild?: boolean;
readonly open?: CollapsibleInput["open"];
readonly defaultOpen?: CollapsibleInput["defaultOpen"];
readonly disabled?: CollapsibleInput["disabled"];
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
children
property
ReactNode
optional
defaultOpen
property
CollapsibleInput["defaultOpen"]
optional
disabled
property
CollapsibleInput["disabled"]
optional
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
open
property
CollapsibleInput["open"]
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
defaultOpen
Kind
property
Type
CollapsibleInput["defaultOpen"]
Requirement
optional
Name
disabled
Kind
property
Type
CollapsibleInput["disabled"]
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
Name
open
Kind
property
Type
CollapsibleInput["open"]
Requirement
optional
DeclarationView source
CollapsibleTriggerPropsts
interface CollapsibleTriggerProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional

Content

value
DeclarationView source
Contentts
export declare const Content: import("react").ForwardRefExoticComponent<CollapsibleContentProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Root

value
DeclarationView source
Rootts
export declare const Root: import("react").ForwardRefExoticComponent<CollapsibleRootProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Trigger

value
DeclarationView source
Triggerts
export declare const Trigger: import("react").ForwardRefExoticComponent<CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

useCollapsible

function
DeclarationView source
useCollapsiblets
declare function useCollapsible(input: CollapsibleInput, options?: UseCollapsibleOptions): UseCollapsibleResult;
Name
Kind
Type
Requirement
input
parameter
CollapsibleInput
required
options
parameter
UseCollapsibleOptions
optional
return
return value
UseCollapsibleResult
n/a
Name
input
Kind
parameter
Type
CollapsibleInput
Requirement
required
Name
options
Kind
parameter
Type
UseCollapsibleOptions
Requirement
optional
Name
return
Kind
return value
Type
UseCollapsibleResult
Requirement
n/a
DeclarationView source
useCollapsibleContextts
declare function useCollapsibleContext(partName: string): CollapsibleContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
CollapsibleContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
CollapsibleContextValue
Requirement
n/a
DeclarationView source
UseCollapsibleOptionsts
interface UseCollapsibleOptions {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
DeclarationView source
UseCollapsibleResultts
interface UseCollapsibleResult {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly snapshot: CollapsibleSnapshot;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
snapshot
property
CollapsibleSnapshot
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
snapshot
Kind
property
Type
CollapsibleSnapshot
Requirement
required

@grassroot/ui-headless-vue/collapsible

Vue adapter

10 exports
View source packages/ui-headless/vue/src/collapsible/index.ts
DeclarationView source
CollapsibleChangeDetailts
interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
DeclarationView source
CollapsibleContentts
export declare const CollapsibleContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
CollapsibleContextKeyts
export declare const CollapsibleContextKey: InjectionKey<CollapsibleContextValue>;
DeclarationView source
CollapsibleContextValuets
interface CollapsibleContextValue {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<CollapsibleSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
snapshot
property
ShallowRef<CollapsibleSnapshot>
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<CollapsibleSnapshot>
Requirement
required
DeclarationView source
CollapsibleRootts
export declare const CollapsibleRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
open: {
type: PropType<boolean | undefined>;
default: undefined;
};
defaultOpen: {
type: PropType<boolean | undefined>;
default: undefined;
};
disabled: {
type: PropType<boolean | undefined>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
openChange: (_detail: CollapsibleChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
open: {
type: PropType<boolean | undefined>;
default: undefined;
};
defaultOpen: {
type: PropType<boolean | undefined>;
default: undefined;
};
disabled: {
type: PropType<boolean | undefined>;
default: undefined;
};
}>> & Readonly<{
onOpenChange?: ((_detail: CollapsibleChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
open: boolean | undefined;
defaultOpen: boolean | undefined;
disabled: boolean | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
CollapsibleTriggerts
export declare const CollapsibleTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

useCollapsible

function
DeclarationView source
useCollapsiblets
declare function useCollapsible(input: CollapsibleInput | (() => CollapsibleInput), options?: UseCollapsibleOptions): UseCollapsibleResult;
Name
Kind
Type
Requirement
input
parameter
CollapsibleInput | (() => CollapsibleInput)
required
options
parameter
UseCollapsibleOptions
optional
return
return value
UseCollapsibleResult
n/a
Name
input
Kind
parameter
Type
CollapsibleInput | (() => CollapsibleInput)
Requirement
required
Name
options
Kind
parameter
Type
UseCollapsibleOptions
Requirement
optional
Name
return
Kind
return value
Type
UseCollapsibleResult
Requirement
n/a
DeclarationView source
useCollapsibleContextts
declare function useCollapsibleContext(partName: string): CollapsibleContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
CollapsibleContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
CollapsibleContextValue
Requirement
n/a
DeclarationView source
UseCollapsibleOptionsts
interface UseCollapsibleOptions {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
DeclarationView source
UseCollapsibleResultts
interface UseCollapsibleResult {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<CollapsibleSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
snapshot
property
ShallowRef<CollapsibleSnapshot>
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<CollapsibleSnapshot>
Requirement
required

@grassroot/ui-headless-angular/collapsible

Angular adapter

10 exports
View source packages/ui-headless/angular/src/collapsible/index.ts
DeclarationView source
COLLAPSIBLE_STOREts
export declare const COLLAPSIBLE_STORE: InjectionToken<CollapsibleStore>;
DeclarationView source
CollapsibleChangeDetailts
export interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required

CollapsibleStore

interface
DeclarationView source
CollapsibleStorets
export interface CollapsibleStore {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly version: WritableSignal<number>;
start(): void;
stop(): void;
sync(input: CollapsibleInput): void;
bindOpenChange(handler: (detail: import("./use-collapsible.js").CollapsibleChangeDetail) => void): void;
}
Name
Kind
Type
Requirement
bindOpenChange
method
(handler: (detail: import("./use-collapsible.js").CollapsibleChangeDetail) => void) => void
required
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
start
method
() => void
required
stop
method
() => void
required
sync
method
(input: CollapsibleInput) => void
required
version
property
WritableSignal<number>
required
Name
bindOpenChange
Kind
method
Type
(handler: (detail: import("./use-collapsible.js").CollapsibleChangeDetail) => void) => void
Requirement
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
start
Kind
method
Type
() => void
Requirement
required
Name
stop
Kind
method
Type
() => void
Requirement
required
Name
sync
Kind
method
Type
(input: CollapsibleInput) => void
Requirement
required
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required
DeclarationView source
createCollapsibleStorets
export declare function createCollapsibleStore(initialInput: CollapsibleInput, options?: CreateCollapsibleStoreOptions): CollapsibleStore;
Name
Kind
Type
Requirement
initialInput
parameter
CollapsibleInput
required
options
parameter
CreateCollapsibleStoreOptions
optional
return
return value
CollapsibleStore
n/a
Name
initialInput
Kind
parameter
Type
CollapsibleInput
Requirement
required
Name
options
Kind
parameter
Type
CreateCollapsibleStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
CollapsibleStore
Requirement
n/a
DeclarationView source
CreateCollapsibleStoreOptionsts
export interface CreateCollapsibleStoreOptions {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
readonly onCommit?: () => void;
}
Name
Kind
Type
Requirement
onCommit
property
() => void
optional
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
DeclarationView source
GR_COLLAPSIBLE_DECLARATIONSts
export declare const GR_COLLAPSIBLE_DECLARATIONS: readonly [typeof GrCollapsibleRoot, typeof GrCollapsibleTrigger, typeof GrCollapsibleContent];
DeclarationView source
GrCollapsibleContentts
export declare class GrCollapsibleContent implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrCollapsibleContent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrCollapsibleContent, "[grCollapsibleContent]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrCollapsibleContent, "[grCollapsibleContent]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrCollapsibleContent, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrCollapsibleContent, "[grCollapsibleContent]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrCollapsibleContent, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrCollapsibleRootts
export declare class GrCollapsibleRoot implements OnDestroy {
readonly open: import("@angular/core").InputSignal<boolean | undefined>;
readonly defaultOpen: import("@angular/core").InputSignal<boolean | undefined>;
readonly disabled: import("@angular/core").InputSignal<boolean | undefined>;
readonly openChange: import("@angular/core").OutputEmitterRef<CollapsibleChangeDetail>;
private readonly elementRef;
private readonly injector;
private readonly listeners;
private lastSynced;
readonly store: CollapsibleStore;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrCollapsibleRoot, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrCollapsibleRoot, "gr-collapsible-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
defaultOpen
property
import("@angular/core").InputSignal<boolean | undefined>
required
disabled
property
import("@angular/core").InputSignal<boolean | undefined>
required
elementRef
property
any
required
injector
property
any
required
lastSynced
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
open
property
import("@angular/core").InputSignal<boolean | undefined>
required
openChange
property
import("@angular/core").OutputEmitterRef<CollapsibleChangeDetail>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrCollapsibleRoot, "gr-collapsible-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrCollapsibleRoot, never>
required
store
property
CollapsibleStore
required
Name
defaultOpen
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
disabled
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
injector
Kind
property
Type
any
Requirement
required
Name
lastSynced
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
open
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
openChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<CollapsibleChangeDetail>
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrCollapsibleRoot, "gr-collapsible-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrCollapsibleRoot, never>
Requirement
required
Name
store
Kind
property
Type
CollapsibleStore
Requirement
required
DeclarationView source
GrCollapsibleTriggerts
export declare class GrCollapsibleTrigger implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrCollapsibleTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrCollapsibleTrigger, "[grCollapsibleTrigger]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrCollapsibleTrigger, "[grCollapsibleTrigger]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrCollapsibleTrigger, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrCollapsibleTrigger, "[grCollapsibleTrigger]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrCollapsibleTrigger, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
provideCollapsibleStorets
export declare function provideCollapsibleStore(): Provider;
Name
Kind
Type
Requirement
return
return value
Provider
n/a
Name
return
Kind
return value
Type
Provider
Requirement
n/a

@grassroot/ui-headless-svelte/collapsible

Svelte adapter

9 exports
View source packages/ui-headless/svelte/src/collapsible/index.ts
DeclarationView source
CollapsibleChangeDetailts
export interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
DeclarationView source
CollapsibleContentts
export declare const CollapsibleContent: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
CollapsibleContextValuets
export interface CollapsibleContextValue {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
version
property
() => number
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required
DeclarationView source
CollapsibleRootts
export declare const CollapsibleRoot: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
CollapsibleTriggerts
export declare const CollapsibleTrigger: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
createCollapsiblets
export declare function createCollapsible(inputGetter: () => CollapsibleInput, options?: UseCollapsibleOptions): UseCollapsibleResult;
Name
Kind
Type
Requirement
inputGetter
parameter
() => CollapsibleInput
required
options
parameter
UseCollapsibleOptions
optional
return
return value
UseCollapsibleResult
n/a
Name
inputGetter
Kind
parameter
Type
() => CollapsibleInput
Requirement
required
Name
options
Kind
parameter
Type
UseCollapsibleOptions
Requirement
optional
Name
return
Kind
return value
Type
UseCollapsibleResult
Requirement
n/a
DeclarationView source
useCollapsibleContextts
export declare function useCollapsibleContext(partName: string): CollapsibleContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
CollapsibleContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
CollapsibleContextValue
Requirement
n/a
DeclarationView source
UseCollapsibleOptionsts
export interface UseCollapsibleOptions {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
DeclarationView source
UseCollapsibleResultts
export interface UseCollapsibleResult {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
version
property
() => number
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required

@grassroot/ui-headless-solid/collapsible

Solid adapter

13 exports
View source packages/ui-headless/solid/src/collapsible/index.ts
DeclarationView source
CollapsibleChangeDetailts
export interface CollapsibleChangeDetail {
readonly open: boolean;
readonly reason: CollapsibleChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
CollapsibleChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
CollapsibleChangeReason
Requirement
required
DeclarationView source
CollapsibleContentts
export declare function CollapsibleContent(props: CollapsibleContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
CollapsibleContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
CollapsibleContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
CollapsibleContentPropsts
export interface CollapsibleContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
CollapsibleContextts
export declare const CollapsibleContext: import("solid-js").Context<CollapsibleContextValue | undefined>;
DeclarationView source
CollapsibleContextValuets
export interface CollapsibleContextValue {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly snapshot: Accessor<CollapsibleSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
snapshot
property
Accessor<CollapsibleSnapshot>
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<CollapsibleSnapshot>
Requirement
required

CollapsibleRoot

function
DeclarationView source
CollapsibleRootts
export declare function CollapsibleRoot(props: CollapsibleRootProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
CollapsibleRootProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
CollapsibleRootProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
CollapsibleRootPropsts
export interface CollapsibleRootProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
readonly as?: AsProp;
readonly open?: CollapsibleInput["open"];
readonly defaultOpen?: CollapsibleInput["defaultOpen"];
readonly disabled?: CollapsibleInput["disabled"];
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
defaultOpen
property
CollapsibleInput["defaultOpen"]
optional
disabled
property
CollapsibleInput["disabled"]
optional
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
open
property
CollapsibleInput["open"]
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
defaultOpen
Kind
property
Type
CollapsibleInput["defaultOpen"]
Requirement
optional
Name
disabled
Kind
property
Type
CollapsibleInput["disabled"]
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
Name
open
Kind
property
Type
CollapsibleInput["open"]
Requirement
optional
DeclarationView source
CollapsibleTriggerts
export declare function CollapsibleTrigger(props: CollapsibleTriggerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
CollapsibleTriggerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
CollapsibleTriggerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
CollapsibleTriggerPropsts
export interface CollapsibleTriggerProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

useCollapsible

function
DeclarationView source
useCollapsiblets
export declare function useCollapsible(input: Accessor<CollapsibleInput>, options?: UseCollapsibleOptions): UseCollapsibleResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<CollapsibleInput>
required
options
parameter
UseCollapsibleOptions
optional
return
return value
UseCollapsibleResult
n/a
Name
input
Kind
parameter
Type
Accessor<CollapsibleInput>
Requirement
required
Name
options
Kind
parameter
Type
UseCollapsibleOptions
Requirement
optional
Name
return
Kind
return value
Type
UseCollapsibleResult
Requirement
n/a
DeclarationView source
useCollapsibleContextts
export declare function useCollapsibleContext(partName: string): CollapsibleContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
CollapsibleContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
CollapsibleContextValue
Requirement
n/a
DeclarationView source
UseCollapsibleOptionsts
export interface UseCollapsibleOptions {
readonly onOpenChange?: (detail: CollapsibleChangeDetail) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: CollapsibleChangeDetail) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: CollapsibleChangeDetail) => void
Requirement
optional
DeclarationView source
UseCollapsibleResultts
export interface UseCollapsibleResult {
readonly service: CollapsibleService;
readonly connector: CollapsibleApi;
readonly scope: PartScope;
readonly snapshot: Accessor<CollapsibleSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
CollapsibleApi
required
scope
property
PartScope
required
service
property
CollapsibleService
required
snapshot
property
Accessor<CollapsibleSnapshot>
required
Name
connector
Kind
property
Type
CollapsibleApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
CollapsibleService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<CollapsibleSnapshot>
Requirement
required