- Name
service- Kind
- parameter
- Type
TooltipService- Requirement
- required
DocsAPI referenceHeadlesstooltip
tooltip 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/tooltip
Core connector and vanilla API
connectTooltip
functiondeclare function connectTooltip(service: TooltipService, scope: PartScope, _options?: TooltipConnectOptions): TooltipApi;serviceTooltipServicescopePartScope_optionsTooltipConnectOptionsreturnTooltipApi- Name
scope- Kind
- parameter
- Type
PartScope- Requirement
- required
- Name
_options- Kind
- parameter
- Type
TooltipConnectOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
TooltipApi- Requirement
- n/a
mountTooltip
functiondeclare function mountTooltip(container: HTMLElement, options?: MountTooltipOptions): TooltipMount;containerHTMLElementoptionsMountTooltipOptionsreturnTooltipMount- Name
container- Kind
- parameter
- Type
HTMLElement- Requirement
- required
- Name
options- Kind
- parameter
- Type
MountTooltipOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
TooltipMount- Requirement
- n/a
MountTooltipOptions
interfaceinterface MountTooltipOptions extends TooltipInput { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; /** Native (production) by default; inject a virtual scheduler for tests. */ readonly scheduler?: Scheduler; /** Render callback for the trigger's content; default = "Trigger" as textContent. */ readonly renderTrigger?: (button: HTMLElement) => void; /** Render callback for the content's content; default = "Tooltip" as textContent. */ readonly renderContent?: (panel: HTMLElement) => void; /** Render callback for the arrow element; default = untouched (empty). */ readonly renderArrow?: (arrow: HTMLElement) => void;}onOpenChange(detail: TooltipOpenChangeDetail) => voidrenderArrow(arrow: HTMLElement) => voidrenderContent(panel: HTMLElement) => voidrenderTrigger(button: HTMLElement) => voidschedulerScheduler- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Description
- —
- Name
renderArrow- Kind
- property
- Type
(arrow: HTMLElement) => void- Requirement
- optional
- Description
- Render callback for the arrow element; default = untouched (empty).
- Name
renderContent- Kind
- property
- Type
(panel: HTMLElement) => void- Requirement
- optional
- Description
- Render callback for the content's content; default = "Tooltip" as textContent.
- Name
renderTrigger- Kind
- property
- Type
(button: HTMLElement) => void- Requirement
- optional
- Description
- Render callback for the trigger's content; default = "Trigger" as textContent.
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
- Description
- Native (production) by default; inject a virtual scheduler for tests.
runTooltipCommand
functionTooltip-shaped command runner. Resolves `OPEN_CHANGE_REQUEST` against the caller-supplied `onOpenChange` callback. `statechart.schedule` / `statechart.cancel` are reserved S13 commands that never reach this runner through `createScheduledEventRunner` (it intercepts and consumes them before delegating here) — the `default` branch stays defensively silent on them (and on any other unrecognized command) rather than throwing, in case a future caller wires this runner directly without the scheduler decorator.
declare function runTooltipCommand(command: TooltipCommand, _scope: PartScope, options?: { readonly onOpenChange?: (detail: { open: boolean; reason: TooltipChangeReason; }) => void;}): void;commandTooltipCommand_scopePartScopeoptions{
readonly onOpenChange?: (detail: {
open: boolean;
reason: TooltipChangeReason;
}) => void;
}returnvoid- Name
command- Kind
- parameter
- Type
TooltipCommand- Requirement
- required
- Name
_scope- Kind
- parameter
- Type
PartScope- Requirement
- required
- Name
options- Kind
- parameter
- Type
{ readonly onOpenChange?: (detail: { open: boolean; reason: TooltipChangeReason; }) => void; }- Requirement
- optional
- Name
return- Kind
- return value
- Type
void- Requirement
- n/a
tooltipAnatomy
valueexport declare const tooltipAnatomy: { readonly scope: "tooltip"; readonly parts: readonly ["root", "trigger", "content", "arrow"];};partsreadonly ["root", "trigger", "content", "arrow"]scope"tooltip"- Name
parts- Kind
- property
- Type
readonly ["root", "trigger", "content", "arrow"]- Requirement
- required
- Name
scope- Kind
- property
- Type
"tooltip"- Requirement
- required
TooltipApi
interfaceinterface TooltipApi { rootProps(): PartProps; triggerProps(): PartProps; contentProps(): PartProps; arrowProps(): PartProps; readonly open: boolean;}arrowProps() => PartPropscontentProps() => PartPropsopenbooleanrootProps() => PartPropstriggerProps() => PartProps- Name
arrowProps- Kind
- method
- Type
() => PartProps- Requirement
- 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
TooltipChangeReason
typetype TooltipChangeReason = "pointer" | "focus" | "escape" | "delay" | "programmatic";TooltipCommand
typetype TooltipCommand = (CommandObject & { readonly type: "OPEN_CHANGE_REQUEST"; readonly open: boolean; readonly reason: TooltipChangeReason;}) | ScheduleCommand<TooltipEvent> | CancelCommand;TooltipConnectOptions
interfaceinterface TooltipConnectOptions {}TooltipContext
typetype TooltipContext = { readonly mode: "controlled" | "uncontrolled";};mode"controlled" | "uncontrolled"- Name
mode- Kind
- property
- Type
"controlled" | "uncontrolled"- Requirement
- required
TooltipEvent
typetype TooltipEvent = { readonly type: "POINTER_ENTER";} | { readonly type: "POINTER_LEAVE";} | { readonly type: "FOCUS";} | { readonly type: "BLUR";} | { readonly type: "ESCAPE";} | { readonly type: "OPEN"; readonly reason: TooltipChangeReason;} | { readonly type: "CLOSE"; readonly reason: TooltipChangeReason;};TooltipInput
typetype TooltipInput = { /** Controlled committed open state. Defining it fixes controlled mode at first start. */ readonly open?: boolean; /** Uncontrolled initial open state. */ readonly defaultOpen?: boolean; /** Delay before an uncontested POINTER_ENTER opens. Default 0 (legacy immediate). */ readonly openDelayMs?: number; /** Delay before an uncontested POINTER_LEAVE closes. Default 0 (legacy immediate). */ readonly closeDelayMs?: number; readonly disabled?: boolean; /** Headless-layer styling hook only — the machine never branches on it. */ readonly side?: "top" | "bottom";};closeDelayMsnumberdefaultOpenbooleandisabledbooleanopenbooleanopenDelayMsnumberside"top" | "bottom"- Name
closeDelayMs- Kind
- property
- Type
number- Requirement
- optional
- Description
- Delay before an uncontested POINTER_LEAVE closes. Default 0 (legacy immediate).
- Name
defaultOpen- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- Uncontrolled initial open state.
- Name
disabled- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- —
- Name
open- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- Controlled committed open state. Defining it fixes controlled mode at first start.
- Name
openDelayMs- Kind
- property
- Type
number- Requirement
- optional
- Description
- Delay before an uncontested POINTER_ENTER opens. Default 0 (legacy immediate).
- Name
side- Kind
- property
- Type
"top" | "bottom"- Requirement
- optional
- Description
- Headless-layer styling hook only — the machine never branches on it.
tooltipMachine
valueexport declare const tooltipMachine: TooltipMachine;TooltipMount
interfaceinterface TooltipMount { readonly service: TooltipService; readonly connector: TooltipApi; readonly root: HTMLElement; readonly trigger: HTMLElement; readonly content: HTMLElement; readonly arrow: HTMLElement; destroy(): void;}arrowHTMLElementconnectorTooltipApicontentHTMLElementdestroy() => voidrootHTMLElementserviceTooltipServicetriggerHTMLElement- Name
arrow- Kind
- property
- Type
HTMLElement- Requirement
- required
- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
content- Kind
- property
- Type
HTMLElement- Requirement
- required
- Name
destroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
root- Kind
- property
- Type
HTMLElement- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Name
trigger- Kind
- property
- Type
HTMLElement- Requirement
- required
TooltipOpenChangeDetail
interfaceinterface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipPart
typetype TooltipPart = (typeof tooltipAnatomy.parts)[number];tooltipSelectors
valueexport declare const tooltipSelectors: { open: (snapshot: TooltipSnapshot) => boolean;};open(snapshot: TooltipSnapshot) => boolean- Name
open- Kind
- property
- Type
(snapshot: TooltipSnapshot) => boolean- Requirement
- required
TooltipService
typetype TooltipService = Service<TooltipInput, TooltipStateValue, TooltipContext, TooltipEvent, TooltipCommand>;TooltipSnapshot
typetype TooltipSnapshot = Snapshot<TooltipStateValue, TooltipContext>;TooltipStateValue
typetype TooltipStateValue = "open" | "closed";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 imports
import { Arrow, Content, Root, Tooltip, Trigger } from "@grassroot/ui-headless-react/tooltip";Vue imports
<script setup lang="ts">import { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger } from "@grassroot/ui-headless-vue/tooltip";</script>Angular imports
import { Component } from "@angular/core";import { GR_TOOLTIP_DECLARATIONS } from "@grassroot/ui-headless-angular/tooltip"; @Component({ standalone: true, imports: [GR_TOOLTIP_DECLARATIONS], template: `<!-- compose the tooltip parts here -->` })export class Example {}Svelte imports
<script lang="ts"> import { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger } from "@grassroot/ui-headless-svelte/tooltip";</script>Solid imports
import { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger } from "@grassroot/ui-headless-solid/tooltip";@grassroot/ui-headless-react/tooltip
React adapter
Arrow
valueexport declare const Arrow: import("react").ForwardRefExoticComponent<TooltipArrowProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Content
valueexport declare const Content: import("react").ForwardRefExoticComponent<TooltipContentProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Root
valueexport declare const Root: import("react").ForwardRefExoticComponent<TooltipRootProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Tooltip
valueexport declare const Tooltip: { Root: import("react").ForwardRefExoticComponent<TooltipRootProps & import("react").RefAttributes<HTMLDivElement>>; Trigger: import("react").ForwardRefExoticComponent<TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>; Content: import("react").ForwardRefExoticComponent<TooltipContentProps & import("react").RefAttributes<HTMLDivElement>>; Arrow: import("react").ForwardRefExoticComponent<TooltipArrowProps & import("react").RefAttributes<HTMLDivElement>>;};Arrowimport("react").ForwardRefExoticComponent<TooltipArrowProps & import("react").RefAttributes<HTMLDivElement>>Contentimport("react").ForwardRefExoticComponent<TooltipContentProps & import("react").RefAttributes<HTMLDivElement>>Rootimport("react").ForwardRefExoticComponent<TooltipRootProps & import("react").RefAttributes<HTMLDivElement>>Triggerimport("react").ForwardRefExoticComponent<TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>- Name
Arrow- Kind
- property
- Type
import("react").ForwardRefExoticComponent<TooltipArrowProps & import("react").RefAttributes<HTMLDivElement>>- Requirement
- required
- Name
Content- Kind
- property
- Type
import("react").ForwardRefExoticComponent<TooltipContentProps & import("react").RefAttributes<HTMLDivElement>>- Requirement
- required
- Name
Root- Kind
- property
- Type
import("react").ForwardRefExoticComponent<TooltipRootProps & import("react").RefAttributes<HTMLDivElement>>- Requirement
- required
- Name
Trigger- Kind
- property
- Type
import("react").ForwardRefExoticComponent<TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>- Requirement
- required
TooltipArrowProps
interfaceinterface TooltipArrowProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean;}asChildboolean- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
TooltipContentProps
interfaceinterface TooltipContentProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean;}asChildboolean- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
TooltipContext
valueexport declare const TooltipContext: import("react").Context<TooltipContextValue | null>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
TooltipContextValue
interfaceinterface TooltipContextValue { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope;}connectorTooltipApiscopePartScopeserviceTooltipService- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
TooltipOpenChangeDetail
interfaceinterface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipRootProps
interfaceinterface TooltipRootProps extends Omit<ComponentPropsWithoutRef<"div">, "open" | "defaultValue"> { readonly asChild?: boolean; readonly open?: TooltipInput["open"]; readonly defaultOpen?: TooltipInput["defaultOpen"]; readonly openDelayMs?: TooltipInput["openDelayMs"]; readonly closeDelayMs?: TooltipInput["closeDelayMs"]; readonly disabled?: TooltipInput["disabled"]; readonly side?: TooltipInput["side"]; readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; /** Native (production) by default; inject a virtual scheduler for tests. */ readonly scheduler?: UseTooltipOptions["scheduler"]; readonly children?: ReactNode;}asChildbooleanchildrenReactNodecloseDelayMsTooltipInput["closeDelayMs"]defaultOpenTooltipInput["defaultOpen"]disabledTooltipInput["disabled"]onOpenChange(detail: TooltipOpenChangeDetail) => voidopenTooltipInput["open"]openDelayMsTooltipInput["openDelayMs"]schedulerUseTooltipOptions["scheduler"]sideTooltipInput["side"]- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- —
- Name
children- Kind
- property
- Type
ReactNode- Requirement
- optional
- Description
- —
- Name
closeDelayMs- Kind
- property
- Type
TooltipInput["closeDelayMs"]- Requirement
- optional
- Description
- —
- Name
defaultOpen- Kind
- property
- Type
TooltipInput["defaultOpen"]- Requirement
- optional
- Description
- —
- Name
disabled- Kind
- property
- Type
TooltipInput["disabled"]- Requirement
- optional
- Description
- —
- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Description
- —
- Name
open- Kind
- property
- Type
TooltipInput["open"]- Requirement
- optional
- Description
- —
- Name
openDelayMs- Kind
- property
- Type
TooltipInput["openDelayMs"]- Requirement
- optional
- Description
- —
- Name
scheduler- Kind
- property
- Type
UseTooltipOptions["scheduler"]- Requirement
- optional
- Description
- Native (production) by default; inject a virtual scheduler for tests.
- Name
side- Kind
- property
- Type
TooltipInput["side"]- Requirement
- optional
- Description
- —
TooltipTriggerProps
interfaceinterface TooltipTriggerProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> { readonly asChild?: boolean;}asChildboolean- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
Trigger
valueexport declare const Trigger: import("react").ForwardRefExoticComponent<TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
useServiceVersion
functionSubscribes a component to a service's committed-snapshot version.
declare function useServiceVersion<S extends Service<any, any, any, any, any, any>>(service: S): ReturnType<S["getSnapshot"]>;serviceSreturnReturnType<S["getSnapshot"]>- Name
service- Kind
- parameter
- Type
S- Requirement
- required
- Name
return- Kind
- return value
- Type
ReturnType<S["getSnapshot"]>- Requirement
- n/a
useTooltip
functiondeclare function useTooltip(input: TooltipInput$1, options?: UseTooltipOptions): UseTooltipResult;inputTooltipInput$1optionsUseTooltipOptionsreturnUseTooltipResult- Name
input- Kind
- parameter
- Type
TooltipInput$1- Requirement
- required
- Name
options- Kind
- parameter
- Type
UseTooltipOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
UseTooltipResult- Requirement
- n/a
useTooltipContext
functiondeclare function useTooltipContext(partName: string): TooltipContextValue;partNamestringreturnTooltipContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
TooltipContextValue- Requirement
- n/a
UseTooltipOptions
interfaceinterface UseTooltipOptions { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; /** Native (production) by default; inject a virtual scheduler for tests. */ readonly scheduler?: Scheduler;}onOpenChange(detail: TooltipOpenChangeDetail) => voidschedulerScheduler- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Description
- —
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
- Description
- Native (production) by default; inject a virtual scheduler for tests.
UseTooltipResult
interfaceinterface UseTooltipResult { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; readonly snapshot: TooltipSnapshot;}connectorTooltipApiscopePartScopeserviceTooltipServicesnapshotTooltipSnapshot- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Name
snapshot- Kind
- property
- Type
TooltipSnapshot- Requirement
- required
@grassroot/ui-headless-vue/tooltip
Vue adapter
TooltipArrow
valueexport declare const TooltipArrow: 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>;TooltipContent
valueexport declare const TooltipContent: 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>;TooltipContextKey
valueexport declare const TooltipContextKey: InjectionKey<TooltipContextValue>;TooltipContextValue
interfaceinterface TooltipContextValue { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; /** Bumped on every committed machine update; parts read `.value` to establish a reactive dependency. */ readonly snapshot: ShallowRef<TooltipSnapshot>;}connectorTooltipApiscopePartScopeserviceTooltipServicesnapshotShallowRef<TooltipSnapshot>- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Description
- —
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Description
- —
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Description
- —
- Name
snapshot- Kind
- property
- Type
ShallowRef<TooltipSnapshot>- Requirement
- required
- Description
- Bumped on every committed machine update; parts read `.value` to establish a reactive dependency.
TooltipOpenChangeDetail
interfaceinterface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipRoot
valueexport declare const TooltipRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; open: { type: PropType<TooltipInput["open"]>; default: undefined; }; defaultOpen: { type: PropType<TooltipInput["defaultOpen"]>; default: undefined; }; openDelayMs: { type: PropType<TooltipInput["openDelayMs"]>; default: undefined; }; closeDelayMs: { type: PropType<TooltipInput["closeDelayMs"]>; default: undefined; }; disabled: { type: PropType<TooltipInput["disabled"]>; default: undefined; }; side: { type: PropType<TooltipInput["side"]>; default: undefined; }; /** Native (production) by default; inject a virtual scheduler for tests. */ scheduler: { type: PropType<UseTooltipOptions["scheduler"]>; default: undefined; };}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any;}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { openChange: (_detail: TooltipOpenChangeDetail) => true;}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; open: { type: PropType<TooltipInput["open"]>; default: undefined; }; defaultOpen: { type: PropType<TooltipInput["defaultOpen"]>; default: undefined; }; openDelayMs: { type: PropType<TooltipInput["openDelayMs"]>; default: undefined; }; closeDelayMs: { type: PropType<TooltipInput["closeDelayMs"]>; default: undefined; }; disabled: { type: PropType<TooltipInput["disabled"]>; default: undefined; }; side: { type: PropType<TooltipInput["side"]>; default: undefined; }; /** Native (production) by default; inject a virtual scheduler for tests. */ scheduler: { type: PropType<UseTooltipOptions["scheduler"]>; default: undefined; };}>> & Readonly<{ onOpenChange?: ((_detail: TooltipOpenChangeDetail) => any) | undefined;}>, { asChild: boolean; open: boolean | undefined; defaultOpen: boolean | undefined; openDelayMs: number | undefined; closeDelayMs: number | undefined; disabled: boolean | undefined; side: "bottom" | "top" | undefined; scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined;}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;TooltipTrigger
valueexport declare const TooltipTrigger: 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>;useTooltip
functiondeclare function useTooltip(input: TooltipInput | (() => TooltipInput), options?: UseTooltipOptions): UseTooltipResult;inputTooltipInput | (() => TooltipInput)optionsUseTooltipOptionsreturnUseTooltipResult- Name
input- Kind
- parameter
- Type
TooltipInput | (() => TooltipInput)- Requirement
- required
- Name
options- Kind
- parameter
- Type
UseTooltipOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
UseTooltipResult- Requirement
- n/a
useTooltipContext
functiondeclare function useTooltipContext(partName: string): TooltipContextValue;partNamestringreturnTooltipContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
TooltipContextValue- Requirement
- n/a
UseTooltipOptions
interfaceinterface UseTooltipOptions { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; readonly scheduler?: Scheduler;}onOpenChange(detail: TooltipOpenChangeDetail) => voidschedulerScheduler- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
UseTooltipResult
interfaceinterface UseTooltipResult { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; readonly snapshot: ShallowRef<TooltipSnapshot>;}connectorTooltipApiscopePartScopeserviceTooltipServicesnapshotShallowRef<TooltipSnapshot>- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Name
snapshot- Kind
- property
- Type
ShallowRef<TooltipSnapshot>- Requirement
- required
@grassroot/ui-headless-angular/tooltip
Angular adapter
createReentrantSafeTick
functionOne re-entrancy policy for every Angular store's zoneless commit nudge.
export declare function createReentrantSafeTick(appRef: ApplicationRef): () => void;appRefApplicationRefreturn() => void- Name
appRef- Kind
- parameter
- Type
ApplicationRef- Requirement
- required
- Name
return- Kind
- return value
- Type
() => void- Requirement
- n/a
createTooltipStore
functionexport declare function createTooltipStore(initialInput: TooltipInput, options?: CreateTooltipStoreOptions): TooltipStore;initialInputTooltipInputoptionsCreateTooltipStoreOptionsreturnTooltipStore- Name
initialInput- Kind
- parameter
- Type
TooltipInput- Requirement
- required
- Name
options- Kind
- parameter
- Type
CreateTooltipStoreOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
TooltipStore- Requirement
- n/a
CreateTooltipStoreOptions
interfaceexport interface CreateTooltipStoreOptions { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; readonly onCommit?: () => void; readonly scheduler?: Scheduler;}onCommit() => voidonOpenChange(detail: TooltipOpenChangeDetail) => voidschedulerScheduler- Name
onCommit- Kind
- property
- Type
() => void- Requirement
- optional
- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
GR_TOOLTIP_DECLARATIONS
valueexport declare const GR_TOOLTIP_DECLARATIONS: readonly [typeof GrTooltipRoot, typeof GrTooltipTrigger, typeof GrTooltipContent, typeof GrTooltipArrow];GrTooltipArrow
classexport declare class GrTooltipArrow implements OnDestroy { private readonly store; private readonly elementRef; private readonly listeners; private readonly consumerProps; constructor(); ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrTooltipArrow, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<GrTooltipArrow, "[grTooltipArrow]", never, {}, {}, never, never, true, never>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrTooltipArrow, "[grTooltipArrow]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrTooltipArrow, never>storeany- 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<GrTooltipArrow, "[grTooltipArrow]", never, {}, {}, never, never, true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrTooltipArrow, never>- Requirement
- required
- Name
store- Kind
- property
- Type
any- Requirement
- required
GrTooltipContent
classexport declare class GrTooltipContent implements OnDestroy { private readonly store; private readonly elementRef; private readonly listeners; private readonly consumerProps; constructor(); ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrTooltipContent, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<GrTooltipContent, "[grTooltipContent]", never, {}, {}, never, never, true, never>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrTooltipContent, "[grTooltipContent]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrTooltipContent, never>storeany- 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<GrTooltipContent, "[grTooltipContent]", never, {}, {}, never, never, true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrTooltipContent, never>- Requirement
- required
- Name
store- Kind
- property
- Type
any- Requirement
- required
GrTooltipRoot
classexport declare class GrTooltipRoot implements OnDestroy { readonly open: import("@angular/core").InputSignal<boolean | undefined>; readonly defaultOpen: import("@angular/core").InputSignal<boolean | undefined>; readonly openDelayMs: import("@angular/core").InputSignal<number | undefined>; readonly closeDelayMs: import("@angular/core").InputSignal<number | undefined>; readonly disabled: import("@angular/core").InputSignal<boolean | undefined>; readonly side: import("@angular/core").InputSignal<"bottom" | "top" | undefined>; readonly openChange: import("@angular/core").OutputEmitterRef<TooltipOpenChangeDetail>; private readonly elementRef; private readonly injector; private readonly listeners; private lastSynced; readonly store: TooltipStore; constructor(); ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrTooltipRoot, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GrTooltipRoot, "gr-tooltip-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "openDelayMs": { "alias": "openDelayMs"; "required": false; "isSignal": true; }; "closeDelayMs": { "alias": "closeDelayMs"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;}closeDelayMsimport("@angular/core").InputSignal<number | undefined>defaultOpenimport("@angular/core").InputSignal<boolean | undefined>disabledimport("@angular/core").InputSignal<boolean | undefined>elementRefanyinjectoranylastSyncedanylistenersanyngOnDestroy() => voidopenimport("@angular/core").InputSignal<boolean | undefined>openChangeimport("@angular/core").OutputEmitterRef<TooltipOpenChangeDetail>openDelayMsimport("@angular/core").InputSignal<number | undefined>ɵcmpi0.ɵɵComponentDeclaration<GrTooltipRoot, "gr-tooltip-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "openDelayMs": { "alias": "openDelayMs"; "required": false; "isSignal": true; }; "closeDelayMs": { "alias": "closeDelayMs"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>ɵfaci0.ɵɵFactoryDeclaration<GrTooltipRoot, never>sideimport("@angular/core").InputSignal<"bottom" | "top" | undefined>- Name
closeDelayMs- Kind
- property
- Type
import("@angular/core").InputSignal<number | undefined>- Requirement
- 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<TooltipOpenChangeDetail>- Requirement
- required
- Name
openDelayMs- Kind
- property
- Type
import("@angular/core").InputSignal<number | undefined>- Requirement
- required
- Name
ɵcmp- Kind
- property
- Type
i0.ɵɵComponentDeclaration<GrTooltipRoot, "gr-tooltip-root", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "openDelayMs": { "alias": "openDelayMs"; "required": false; "isSignal": true; }; "closeDelayMs": { "alias": "closeDelayMs"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrTooltipRoot, never>- Requirement
- required
- Name
side- Kind
- property
- Type
import("@angular/core").InputSignal<"bottom" | "top" | undefined>- Requirement
- required
- Name
store- Kind
- property
- Type
TooltipStore- Requirement
- required
GrTooltipTrigger
classexport declare class GrTooltipTrigger implements OnDestroy { private readonly store; private readonly elementRef; private readonly listeners; private readonly consumerProps; constructor(); ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrTooltipTrigger, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<GrTooltipTrigger, "[grTooltipTrigger]", never, {}, {}, never, never, true, never>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrTooltipTrigger, "[grTooltipTrigger]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrTooltipTrigger, never>storeany- 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<GrTooltipTrigger, "[grTooltipTrigger]", never, {}, {}, never, never, true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrTooltipTrigger, never>- Requirement
- required
- Name
store- Kind
- property
- Type
any- Requirement
- required
provideTooltipStore
functionexport declare function provideTooltipStore(): Provider;returnProvider- Name
return- Kind
- return value
- Type
Provider- Requirement
- n/a
TOOLTIP_STORE
valueexport declare const TOOLTIP_STORE: InjectionToken<TooltipStore>;TooltipOpenChangeDetail
interfaceexport interface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipStore
interfaceexport interface TooltipStore { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; /** * Bumped on every committed machine update. Effects that read the * connector's prop bags must read this signal first — inside the same * `effect()` — so Angular's reactivity re-runs the effect on every * committed change (the staleness bug class called out across every * other adapter). */ readonly version: WritableSignal<number>; /** Starts the underlying service (idempotent) — call from the browser only. */ start(): void; /** Stops the underlying service (idempotent). */ stop(): void; /** Forwards a new committed input to the machine (no-op on the very first call). */ sync(input: TooltipInput): void; /** * Late-binds the open-change handler a `GrTooltipRoot` wires to its * `openChange` output when it ADOPTS a store created above it by * `provideTooltipStore()` (see `use-tooltip.ts`) — such a store exists * before any root does, so the output can't be wired at creation. * Last binder wins (exactly one root per provided store). */ bindOpenChange(handler: (detail: import("./use-tooltip.js").TooltipOpenChangeDetail) => void): void;}bindOpenChange(handler: (detail: import("./use-tooltip.js").TooltipOpenChangeDetail) => void) => voidconnectorTooltipApiscopePartScopeserviceTooltipServicestart() => voidstop() => voidsync(input: TooltipInput) => voidversionWritableSignal<number>- Name
bindOpenChange- Kind
- method
- Type
(handler: (detail: import("./use-tooltip.js").TooltipOpenChangeDetail) => void) => void- Requirement
- required
- Description
- Late-binds the open-change handler a `GrTooltipRoot` wires to its `openChange` output when it ADOPTS a store created above it by `provideTooltipStore()` (see `use-tooltip.ts`) — such a store exists before any root does, so the output can't be wired at creation. Last binder wins (exactly one root per provided store).
- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Description
- —
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Description
- —
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Description
- —
- Name
start- Kind
- method
- Type
() => void- Requirement
- required
- Description
- Starts the underlying service (idempotent) — call from the browser only.
- Name
stop- Kind
- method
- Type
() => void- Requirement
- required
- Description
- Stops the underlying service (idempotent).
- Name
sync- Kind
- method
- Type
(input: TooltipInput) => void- Requirement
- required
- Description
- Forwards a new committed input to the machine (no-op on the very first call).
- Name
version- Kind
- property
- Type
WritableSignal<number>- Requirement
- required
- Description
- Bumped on every committed machine update. Effects that read the connector's prop bags must read this signal first — inside the same `effect()` — so Angular's reactivity re-runs the effect on every committed change (the staleness bug class called out across every other adapter).
@grassroot/ui-headless-svelte/tooltip
Svelte adapter
createTooltip
functionexport declare function createTooltip(inputGetter: () => TooltipInput, options?: UseTooltipOptions): UseTooltipResult;inputGetter() => TooltipInputoptionsUseTooltipOptionsreturnUseTooltipResult- Name
inputGetter- Kind
- parameter
- Type
() => TooltipInput- Requirement
- required
- Name
options- Kind
- parameter
- Type
UseTooltipOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
UseTooltipResult- Requirement
- n/a
TooltipArrow
valueexport declare const TooltipArrow: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
TooltipChangeReason
typetype TooltipChangeReason = "pointer" | "focus" | "escape" | "delay" | "programmatic";TooltipCommand
typetype TooltipCommand = (CommandObject & { readonly type: "OPEN_CHANGE_REQUEST"; readonly open: boolean; readonly reason: TooltipChangeReason;}) | ScheduleCommand<TooltipEvent> | CancelCommand;TooltipContent
valueexport declare const TooltipContent: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
TooltipContext
typetype TooltipContext = { readonly mode: "controlled" | "uncontrolled";};mode"controlled" | "uncontrolled"- Name
mode- Kind
- property
- Type
"controlled" | "uncontrolled"- Requirement
- required
TooltipContextValue
interfaceexport interface TooltipContextValue { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; /** * Bumped on every committed machine update. Parts must read this * (`ctx.version()`) *inside* the `$derived` that computes their prop * bag — not once at setup — so Svelte's fine-grained reactivity tracks * the dependency and recomputes on every committed change (mirrors the * Accordion adapter's equivalent staleness fix; see * `../accordion/context.ts`). */ readonly version: () => number;}connectorTooltipApiscopePartScopeserviceTooltipServiceversion() => number- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Description
- —
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Description
- —
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Description
- —
- Name
version- Kind
- property
- Type
() => number- Requirement
- required
- Description
- Bumped on every committed machine update. Parts must read this (`ctx.version()`) *inside* the `$derived` that computes their prop bag — not once at setup — so Svelte's fine-grained reactivity tracks the dependency and recomputes on every committed change (mirrors the Accordion adapter's equivalent staleness fix; see `../accordion/context.ts`).
TooltipEvent
typetype TooltipEvent = { readonly type: "POINTER_ENTER";} | { readonly type: "POINTER_LEAVE";} | { readonly type: "FOCUS";} | { readonly type: "BLUR";} | { readonly type: "ESCAPE";} | { readonly type: "OPEN"; readonly reason: TooltipChangeReason;} | { readonly type: "CLOSE"; readonly reason: TooltipChangeReason;};TooltipInput
typetype TooltipInput = { /** Controlled committed open state. Defining it fixes controlled mode at first start. */ readonly open?: boolean; /** Uncontrolled initial open state. */ readonly defaultOpen?: boolean; /** Delay before an uncontested POINTER_ENTER opens. Default 0 (legacy immediate). */ readonly openDelayMs?: number; /** Delay before an uncontested POINTER_LEAVE closes. Default 0 (legacy immediate). */ readonly closeDelayMs?: number; readonly disabled?: boolean; /** Headless-layer styling hook only — the machine never branches on it. */ readonly side?: "top" | "bottom";};closeDelayMsnumberdefaultOpenbooleandisabledbooleanopenbooleanopenDelayMsnumberside"top" | "bottom"- Name
closeDelayMs- Kind
- property
- Type
number- Requirement
- optional
- Description
- Delay before an uncontested POINTER_LEAVE closes. Default 0 (legacy immediate).
- Name
defaultOpen- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- Uncontrolled initial open state.
- Name
disabled- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- —
- Name
open- Kind
- property
- Type
boolean- Requirement
- optional
- Description
- Controlled committed open state. Defining it fixes controlled mode at first start.
- Name
openDelayMs- Kind
- property
- Type
number- Requirement
- optional
- Description
- Delay before an uncontested POINTER_ENTER opens. Default 0 (legacy immediate).
- Name
side- Kind
- property
- Type
"top" | "bottom"- Requirement
- optional
- Description
- Headless-layer styling hook only — the machine never branches on it.
TooltipMachine
typetype TooltipMachine = Machine<TooltipInput, TooltipStateValue, TooltipContext, TooltipEvent, TooltipCommand>;TooltipOpenChangeDetail
interfaceexport interface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipRoot
valueexport declare const TooltipRoot: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
TooltipSnapshot
typetype TooltipSnapshot = Snapshot<TooltipStateValue, TooltipContext>;TooltipStateValue
typetype TooltipStateValue = "open" | "closed";TooltipTrigger
valueexport declare const TooltipTrigger: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
useTooltipContext
functionexport declare function useTooltipContext(partName: string): TooltipContextValue;partNamestringreturnTooltipContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
TooltipContextValue- Requirement
- n/a
UseTooltipOptions
interfaceexport interface UseTooltipOptions { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; readonly scheduler?: Scheduler;}onOpenChange(detail: TooltipOpenChangeDetail) => voidschedulerScheduler- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
UseTooltipResult
interfaceexport interface UseTooltipResult { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; readonly version: () => number;}connectorTooltipApiscopePartScopeserviceTooltipServiceversion() => number- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Name
version- Kind
- property
- Type
() => number- Requirement
- required
@grassroot/ui-headless-solid/tooltip
Solid adapter
TooltipArrow
functionexport declare function TooltipArrow(props: TooltipArrowProps): JSX.Element;propsTooltipArrowPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
TooltipArrowProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
TooltipArrowProps
interfaceexport interface TooltipArrowProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
TooltipContent
functionexport declare function TooltipContent(props: TooltipContentProps): JSX.Element;propsTooltipContentPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
TooltipContentProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
TooltipContentProps
interfaceexport interface TooltipContentProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
TooltipContext
valueexport declare const TooltipContext: import("solid-js").Context<TooltipContextValue | undefined>;TooltipContextValue
interfaceexport interface TooltipContextValue { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; /** * Bumped on every committed machine update. Parts must call this * accessor *inside* the JSX/spread thunk that reads the connector's prop * bags — not once at setup — so Solid's fine-grained reactivity tracks * the dependency and re-runs on every committed change. */ readonly snapshot: Accessor<TooltipSnapshot>;}connectorTooltipApiscopePartScopeserviceTooltipServicesnapshotAccessor<TooltipSnapshot>- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Description
- —
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Description
- —
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Description
- —
- Name
snapshot- Kind
- property
- Type
Accessor<TooltipSnapshot>- Requirement
- required
- Description
- Bumped on every committed machine update. Parts must call this accessor *inside* the JSX/spread thunk that reads the connector's prop bags — not once at setup — so Solid's fine-grained reactivity tracks the dependency and re-runs on every committed change.
TooltipOpenChangeDetail
interfaceexport interface TooltipOpenChangeDetail { readonly open: boolean; readonly reason: TooltipChangeReason;}openbooleanreasonTooltipChangeReason- Name
open- Kind
- property
- Type
boolean- Requirement
- required
- Name
reason- Kind
- property
- Type
TooltipChangeReason- Requirement
- required
TooltipRoot
functionexport declare function TooltipRoot(props: TooltipRootProps): JSX.Element;propsTooltipRootPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
TooltipRootProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
TooltipRootProps
interfaceexport interface TooltipRootProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> { readonly as?: AsProp; readonly open?: TooltipInput["open"]; readonly defaultOpen?: TooltipInput["defaultOpen"]; readonly openDelayMs?: TooltipInput["openDelayMs"]; readonly closeDelayMs?: TooltipInput["closeDelayMs"]; readonly disabled?: TooltipInput["disabled"]; readonly side?: TooltipInput["side"]; readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; /** Native (production) by default; inject a virtual scheduler for tests. */ readonly scheduler?: UseTooltipOptions["scheduler"];}asAsPropcloseDelayMsTooltipInput["closeDelayMs"]defaultOpenTooltipInput["defaultOpen"]disabledTooltipInput["disabled"]onOpenChange(detail: TooltipOpenChangeDetail) => voidopenTooltipInput["open"]openDelayMsTooltipInput["openDelayMs"]schedulerUseTooltipOptions["scheduler"]sideTooltipInput["side"]- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
- Description
- —
- Name
closeDelayMs- Kind
- property
- Type
TooltipInput["closeDelayMs"]- Requirement
- optional
- Description
- —
- Name
defaultOpen- Kind
- property
- Type
TooltipInput["defaultOpen"]- Requirement
- optional
- Description
- —
- Name
disabled- Kind
- property
- Type
TooltipInput["disabled"]- Requirement
- optional
- Description
- —
- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Description
- —
- Name
open- Kind
- property
- Type
TooltipInput["open"]- Requirement
- optional
- Description
- —
- Name
openDelayMs- Kind
- property
- Type
TooltipInput["openDelayMs"]- Requirement
- optional
- Description
- —
- Name
scheduler- Kind
- property
- Type
UseTooltipOptions["scheduler"]- Requirement
- optional
- Description
- Native (production) by default; inject a virtual scheduler for tests.
- Name
side- Kind
- property
- Type
TooltipInput["side"]- Requirement
- optional
- Description
- —
TooltipTrigger
functionexport declare function TooltipTrigger(props: TooltipTriggerProps): JSX.Element;propsTooltipTriggerPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
TooltipTriggerProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
TooltipTriggerProps
interfaceexport interface TooltipTriggerProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "type"> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
useTooltip
functionexport declare function useTooltip(input: Accessor<TooltipInput>, options?: UseTooltipOptions): UseTooltipResult;inputAccessor<TooltipInput>optionsUseTooltipOptionsreturnUseTooltipResult- Name
input- Kind
- parameter
- Type
Accessor<TooltipInput>- Requirement
- required
- Name
options- Kind
- parameter
- Type
UseTooltipOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
UseTooltipResult- Requirement
- n/a
useTooltipContext
functionexport declare function useTooltipContext(partName: string): TooltipContextValue;partNamestringreturnTooltipContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
TooltipContextValue- Requirement
- n/a
UseTooltipOptions
interfaceexport interface UseTooltipOptions { readonly onOpenChange?: (detail: TooltipOpenChangeDetail) => void; readonly scheduler?: Scheduler;}onOpenChange(detail: TooltipOpenChangeDetail) => voidschedulerScheduler- Name
onOpenChange- Kind
- property
- Type
(detail: TooltipOpenChangeDetail) => void- Requirement
- optional
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
UseTooltipResult
interfaceexport interface UseTooltipResult { readonly service: TooltipService; readonly connector: TooltipApi; readonly scope: PartScope; readonly snapshot: Accessor<TooltipSnapshot>;}connectorTooltipApiscopePartScopeserviceTooltipServicesnapshotAccessor<TooltipSnapshot>- Name
connector- Kind
- property
- Type
TooltipApi- Requirement
- required
- Name
scope- Kind
- property
- Type
PartScope- Requirement
- required
- Name
service- Kind
- property
- Type
TooltipService- Requirement
- required
- Name
snapshot- Kind
- property
- Type
Accessor<TooltipSnapshot>- Requirement
- required