DocsAPI referenceHeadlessmessage-scroller

message-scroller 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/message-scroller

Core connector and vanilla API

27 exports
View source packages/ui-headless/core/src/message-scroller/index.ts
DeclarationView source
connectMessageScrollerts
declare function connectMessageScroller(service: MessageScrollerService, scope: PartScope, options?: MessageScrollerConnectOptions): MessageScrollerApi;
Name
Kind
Type
Requirement
service
parameter
MessageScrollerService
required
scope
parameter
PartScope
required
options
parameter
MessageScrollerConnectOptions
optional
return
return value
MessageScrollerApi
n/a
Name
service
Kind
parameter
Type
MessageScrollerService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
MessageScrollerConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
MessageScrollerApi
Requirement
n/a
DeclarationView source
createMessageScrollerControllerts
declare function createMessageScrollerController(host: MessageScrollerControllerHost, initialOptions?: MessageScrollerControllerOptions): MessageScrollerController;
Name
Kind
Type
Requirement
host
parameter
MessageScrollerControllerHost
required
initialOptions
parameter
MessageScrollerControllerOptions
optional
return
return value
MessageScrollerController
n/a
Name
host
Kind
parameter
Type
MessageScrollerControllerHost
Requirement
required
Name
initialOptions
Kind
parameter
Type
MessageScrollerControllerOptions
Requirement
optional
Name
return
Kind
return value
Type
MessageScrollerController
Requirement
n/a
DeclarationView source
MESSAGE_SCROLLER_JUMP_DELAY_MSts
export declare const MESSAGE_SCROLLER_JUMP_DELAY_MS: 260;
DeclarationView source
MESSAGE_SCROLLER_JUMP_KEYts
export declare const MESSAGE_SCROLLER_JUMP_KEY: "message-scroller.jump";
DeclarationView source
messageScrollerAnatomyts
export declare const messageScrollerAnatomy: {
readonly scope: "message-scroller";
readonly parts: readonly ["root", "viewport", "content", "item", "spacer", "button"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "viewport", "content", "item", "spacer", "button"]
required
scope
property
"message-scroller"
required
Name
parts
Kind
property
Type
readonly ["root", "viewport", "content", "item", "spacer", "button"]
Requirement
required
Name
scope
Kind
property
Type
"message-scroller"
Requirement
required

MessageScrollerApi

interface
DeclarationView source
MessageScrollerApits
interface MessageScrollerApi {
rootProps(): PartProps;
viewportProps(): PartProps;
contentProps(): PartProps;
itemProps(id: string, scrollAnchor?: boolean): PartProps;
spacerProps(): PartProps;
buttonProps(): PartProps;
readonly following: boolean;
readonly anchored: boolean;
readonly jumping: boolean;
readonly anchorId: string | null;
readonly label: string;
readonly busy: boolean;
}
Name
Kind
Type
Requirement
anchored
property
boolean
required
anchorId
property
string | null
required
busy
property
boolean
required
buttonProps
method
() => PartProps
required
contentProps
method
() => PartProps
required
following
property
boolean
required
itemProps
method
(id: string, scrollAnchor?: boolean) => PartProps
required
jumping
property
boolean
required
label
property
string
required
rootProps
method
() => PartProps
required
spacerProps
method
() => PartProps
required
viewportProps
method
() => PartProps
required
Name
anchored
Kind
property
Type
boolean
Requirement
required
Name
anchorId
Kind
property
Type
string | null
Requirement
required
Name
busy
Kind
property
Type
boolean
Requirement
required
Name
buttonProps
Kind
method
Type
() => PartProps
Requirement
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
following
Kind
property
Type
boolean
Requirement
required
Name
itemProps
Kind
method
Type
(id: string, scrollAnchor?: boolean) => PartProps
Requirement
required
Name
jumping
Kind
property
Type
boolean
Requirement
required
Name
label
Kind
property
Type
string
Requirement
required
Name
rootProps
Kind
method
Type
() => PartProps
Requirement
required
Name
spacerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
viewportProps
Kind
method
Type
() => PartProps
Requirement
required
DeclarationView source
MessageScrollerCommandts
type MessageScrollerCommand = (CommandObject & {
readonly type: "SCROLL_TO";
readonly target: MessageScrollerScrollTarget;
readonly behavior: MessageScrollerScrollBehavior;
}) | (CommandObject & {
readonly type: "PRESERVE_PREPEND";
}) | (CommandObject & {
readonly type: "CLEAR_SPACER";
}) | (CommandObject & {
readonly type: "REANCHOR";
}) | ScheduleCommand<MessageScrollerEvent> | CancelCommand;
DeclarationView source
MessageScrollerConnectOptionsts
interface MessageScrollerConnectOptions {
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly getScrollable?: () => MessageScrollerScrollable;
}
Name
Kind
Type
Requirement
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
getScrollable
property
() => MessageScrollerScrollable
optional
label
property
string
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
getScrollable
Kind
property
Type
() => MessageScrollerScrollable
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
DeclarationView source
MessageScrollerContextts
type MessageScrollerContext = {
readonly jumping: boolean;
readonly anchorId: string | null;
readonly defaultApplied: boolean;
readonly pendingJumpId: string | null;
};
Name
Kind
Type
Requirement
anchorId
property
string | null
required
defaultApplied
property
boolean
required
jumping
property
boolean
required
pendingJumpId
property
string | null
required
Name
anchorId
Kind
property
Type
string | null
Requirement
required
Name
defaultApplied
Kind
property
Type
boolean
Requirement
required
Name
jumping
Kind
property
Type
boolean
Requirement
required
Name
pendingJumpId
Kind
property
Type
string | null
Requirement
required
DeclarationView source
MessageScrollerControllerts
interface MessageScrollerController {
readonly observerCount: () => number;
readonly listenerCount: () => number;
attach(service: MessageScrollerService): void;
ensureStarted(service: MessageScrollerService): void;
destroy(): void;
refresh(): void;
scrollToEnd(options?: MessageScrollerScrollOptions): boolean;
scrollToMessage(messageId: string, options?: MessageScrollerScrollOptions): boolean;
scrollToStart(options?: MessageScrollerScrollOptions): boolean;
update(options: MessageScrollerControllerOptions): void;
applyScroll(target: MessageScrollerScrollTarget, behavior: MessageScrollerScrollBehavior): void;
applyPreservePrepend(): void;
clearSpacer(): void;
applyReanchor(): void;
}
Name
Kind
Type
Requirement
applyPreservePrepend
method
() => void
required
applyReanchor
method
() => void
required
applyScroll
method
(target: MessageScrollerScrollTarget, behavior: MessageScrollerScrollBehavior) => void
required
attach
method
(service: MessageScrollerService) => void
required
clearSpacer
method
() => void
required
destroy
method
() => void
required
ensureStarted
method
(service: MessageScrollerService) => void
required
listenerCount
property
() => number
required
observerCount
property
() => number
required
refresh
method
() => void
required
scrollToEnd
method
(options?: MessageScrollerScrollOptions) => boolean
required
scrollToMessage
method
(messageId: string, options?: MessageScrollerScrollOptions) => boolean
required
scrollToStart
method
(options?: MessageScrollerScrollOptions) => boolean
required
update
method
(options: MessageScrollerControllerOptions) => void
required
Name
applyPreservePrepend
Kind
method
Type
() => void
Requirement
required
Name
applyReanchor
Kind
method
Type
() => void
Requirement
required
Name
applyScroll
Kind
method
Type
(target: MessageScrollerScrollTarget, behavior: MessageScrollerScrollBehavior) => void
Requirement
required
Name
attach
Kind
method
Type
(service: MessageScrollerService) => void
Requirement
required
Name
clearSpacer
Kind
method
Type
() => void
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
ensureStarted
Kind
method
Type
(service: MessageScrollerService) => void
Requirement
required
Name
listenerCount
Kind
property
Type
() => number
Requirement
required
Name
observerCount
Kind
property
Type
() => number
Requirement
required
Name
refresh
Kind
method
Type
() => void
Requirement
required
Name
scrollToEnd
Kind
method
Type
(options?: MessageScrollerScrollOptions) => boolean
Requirement
required
Name
scrollToMessage
Kind
method
Type
(messageId: string, options?: MessageScrollerScrollOptions) => boolean
Requirement
required
Name
scrollToStart
Kind
method
Type
(options?: MessageScrollerScrollOptions) => boolean
Requirement
required
Name
update
Kind
method
Type
(options: MessageScrollerControllerOptions) => void
Requirement
required
DeclarationView source
MessageScrollerControllerHostts
interface MessageScrollerControllerHost {
readonly getRoot: () => HTMLElement | null;
readonly getViewport: () => HTMLElement | null;
readonly getContent: () => HTMLElement | null;
readonly matchMedia?: (query: string) => {
readonly matches: boolean;
};
readonly createMutationObserver?: (callback: MutationCallback) => MessageScrollerObserverLike & {
observe(target: Node, options?: MutationObserverInit): void;
};
readonly createResizeObserver?: (callback: ResizeObserverCallback) => MessageScrollerObserverLike;
readonly createIntersectionObserver?: (callback: IntersectionObserverCallback, options?: IntersectionObserverInit) => MessageScrollerObserverLike;
readonly requestAnimationFrame?: (callback: FrameRequestCallback) => number;
readonly cancelAnimationFrame?: (handle: number) => void;
readonly getSelection?: () => Selection | null;
readonly elementsFromPoint?: (x: number, y: number) => Element[];
}
Name
Kind
Type
Requirement
cancelAnimationFrame
property
(handle: number) => void
optional
createIntersectionObserver
property
(callback: IntersectionObserverCallback, options?: IntersectionObserverInit) => MessageScrollerObserverLike
optional
createMutationObserver
property
(callback: MutationCallback) => MessageScrollerObserverLike & { observe(target: Node, options?: MutationObserverInit): void; }
optional
createResizeObserver
property
(callback: ResizeObserverCallback) => MessageScrollerObserverLike
optional
elementsFromPoint
property
(x: number, y: number) => Element[]
optional
getContent
property
() => HTMLElement | null
required
getRoot
property
() => HTMLElement | null
required
getSelection
property
() => Selection | null
optional
getViewport
property
() => HTMLElement | null
required
matchMedia
property
(query: string) => { readonly matches: boolean; }
optional
requestAnimationFrame
property
(callback: FrameRequestCallback) => number
optional
Name
cancelAnimationFrame
Kind
property
Type
(handle: number) => void
Requirement
optional
Name
createIntersectionObserver
Kind
property
Type
(callback: IntersectionObserverCallback, options?: IntersectionObserverInit) => MessageScrollerObserverLike
Requirement
optional
Name
createMutationObserver
Kind
property
Type
(callback: MutationCallback) => MessageScrollerObserverLike & { observe(target: Node, options?: MutationObserverInit): void; }
Requirement
optional
Name
createResizeObserver
Kind
property
Type
(callback: ResizeObserverCallback) => MessageScrollerObserverLike
Requirement
optional
Name
elementsFromPoint
Kind
property
Type
(x: number, y: number) => Element[]
Requirement
optional
Name
getContent
Kind
property
Type
() => HTMLElement | null
Requirement
required
Name
getRoot
Kind
property
Type
() => HTMLElement | null
Requirement
required
Name
getSelection
Kind
property
Type
() => Selection | null
Requirement
optional
Name
getViewport
Kind
property
Type
() => HTMLElement | null
Requirement
required
Name
matchMedia
Kind
property
Type
(query: string) => { readonly matches: boolean; }
Requirement
optional
Name
requestAnimationFrame
Kind
property
Type
(callback: FrameRequestCallback) => number
Requirement
optional
DeclarationView source
MessageScrollerControllerOptionsts
interface MessageScrollerControllerOptions {
autoScroll?: boolean;
defaultScrollPosition?: MessageScrollerDefaultScrollPosition;
preserveScrollOnPrepend?: boolean;
scrollEdgeThreshold?: number;
scrollMargin?: number;
scrollPreviousItemPeek?: number;
onScrollableChange?: (state: MessageScrollerScrollable) => void;
onVisibilityChange?: (state: MessageScrollerVisibility) => void;
}
Name
Kind
Type
Requirement
autoScroll
property
boolean
optional
defaultScrollPosition
property
MessageScrollerDefaultScrollPosition
optional
onScrollableChange
property
(state: MessageScrollerScrollable) => void
optional
onVisibilityChange
property
(state: MessageScrollerVisibility) => void
optional
preserveScrollOnPrepend
property
boolean
optional
scrollEdgeThreshold
property
number
optional
scrollMargin
property
number
optional
scrollPreviousItemPeek
property
number
optional
Name
autoScroll
Kind
property
Type
boolean
Requirement
optional
Name
defaultScrollPosition
Kind
property
Type
MessageScrollerDefaultScrollPosition
Requirement
optional
Name
onScrollableChange
Kind
property
Type
(state: MessageScrollerScrollable) => void
Requirement
optional
Name
onVisibilityChange
Kind
property
Type
(state: MessageScrollerVisibility) => void
Requirement
optional
Name
preserveScrollOnPrepend
Kind
property
Type
boolean
Requirement
optional
Name
scrollEdgeThreshold
Kind
property
Type
number
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
Name
scrollPreviousItemPeek
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerEventts
type MessageScrollerEvent = {
readonly type: "USER_RELEASE";
} | {
readonly type: "SCROLL_REPORT";
readonly atEnd: boolean;
} | {
readonly type: "PREPEND";
} | {
readonly type: "APPLY_DEFAULT";
readonly action: "start" | "end" | "anchor";
readonly anchorId?: string;
} | {
readonly type: "APPEND";
readonly newAnchorId: string | null;
readonly newAnchorCount: number;
} | {
readonly type: "ANCHOR";
readonly id: string;
} | {
readonly type: "FOLLOW_END";
} | {
readonly type: "JUMP_START";
readonly behavior: MessageScrollerScrollBehavior;
} | {
readonly type: "JUMP_END";
readonly behavior: MessageScrollerScrollBehavior;
} | {
readonly type: "JUMP_MESSAGE";
readonly messageId: string;
readonly found: boolean;
readonly rowsMounted: boolean;
readonly alreadyVisible: boolean;
readonly behavior: MessageScrollerScrollBehavior;
readonly align?: MessageScrollerScrollAlign;
readonly scrollMargin?: number;
} | {
readonly type: "JUMP_COMPLETE";
} | {
readonly type: "REANCHOR_REQUEST";
} | {
readonly type: "ANCHOR_LOST";
} | {
readonly type: "REANCHOR_RELEASED";
} | {
readonly type: "RESIZE";
} | {
readonly type: "AUTO_SCROLL_EDGE";
readonly atEnd: boolean;
} | {
readonly type: "STOP";
};
DeclarationView source
MessageScrollerInputts
type MessageScrollerInput = {
readonly autoScroll?: boolean;
readonly defaultScrollPosition?: MessageScrollerDefaultScrollPosition;
readonly preserveScrollOnPrepend?: boolean;
/** Presentation-only. The machine ignores it. @default "Messages" */
readonly label?: string;
/** Presentation-only. The machine ignores it. @default false */
readonly busy?: boolean;
/** Presentation-only. The machine ignores it. @default "end" */
readonly buttonDirection?: "start" | "end";
};
Name
Kind
Type
Requirement
Description
autoScroll
property
boolean
optional
busy
property
boolean
optional
Presentation-only. The machine ignores it.
buttonDirection
property
"start" | "end"
optional
Presentation-only. The machine ignores it.
defaultScrollPosition
property
MessageScrollerDefaultScrollPosition
optional
label
property
string
optional
Presentation-only. The machine ignores it.
preserveScrollOnPrepend
property
boolean
optional
Name
autoScroll
Kind
property
Type
boolean
Requirement
optional
Description
Name
busy
Kind
property
Type
boolean
Requirement
optional
Description
Presentation-only. The machine ignores it.
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Description
Presentation-only. The machine ignores it.
Name
defaultScrollPosition
Kind
property
Type
MessageScrollerDefaultScrollPosition
Requirement
optional
Description
Name
label
Kind
property
Type
string
Requirement
optional
Description
Presentation-only. The machine ignores it.
Name
preserveScrollOnPrepend
Kind
property
Type
boolean
Requirement
optional
Description
DeclarationView source
messageScrollerMachinets
export declare const messageScrollerMachine: MessageScrollerMachine;
DeclarationView source
MessageScrollerMountts
interface MessageScrollerMount {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly controller: MessageScrollerController;
readonly root: HTMLElement;
readonly viewport: HTMLElement;
readonly content: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
content
property
HTMLElement
required
controller
property
MessageScrollerController
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
MessageScrollerService
required
viewport
property
HTMLElement
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
content
Kind
property
Type
HTMLElement
Requirement
required
Name
controller
Kind
property
Type
MessageScrollerController
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
viewport
Kind
property
Type
HTMLElement
Requirement
required
DeclarationView source
MessageScrollerObserverLikets
interface MessageScrollerObserverLike {
observe(target: Element): void;
disconnect(): void;
}
Name
Kind
Type
Requirement
disconnect
method
() => void
required
observe
method
(target: Element) => void
required
Name
disconnect
Kind
method
Type
() => void
Requirement
required
Name
observe
Kind
method
Type
(target: Element) => void
Requirement
required
DeclarationView source
MessageScrollerPartts
type MessageScrollerPart = (typeof messageScrollerAnatomy.parts)[number];
DeclarationView source
MessageScrollerScrollablets
type MessageScrollerScrollable = {
readonly start: boolean;
readonly end: boolean;
};
Name
Kind
Type
Requirement
end
property
boolean
required
start
property
boolean
required
Name
end
Kind
property
Type
boolean
Requirement
required
Name
start
Kind
property
Type
boolean
Requirement
required
DeclarationView source
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
messageScrollerSelectorsts
export declare const messageScrollerSelectors: {
following: (snapshot: MessageScrollerSnapshot) => boolean;
anchored: (snapshot: MessageScrollerSnapshot) => boolean;
idle: (snapshot: MessageScrollerSnapshot) => boolean;
jumping: (snapshot: MessageScrollerSnapshot) => boolean;
anchorId: (snapshot: MessageScrollerSnapshot) => string | null;
pendingJumpId: (snapshot: MessageScrollerSnapshot) => string | null;
defaultApplied: (snapshot: MessageScrollerSnapshot) => boolean;
};
Name
Kind
Type
Requirement
anchored
property
(snapshot: MessageScrollerSnapshot) => boolean
required
anchorId
property
(snapshot: MessageScrollerSnapshot) => string | null
required
defaultApplied
property
(snapshot: MessageScrollerSnapshot) => boolean
required
following
property
(snapshot: MessageScrollerSnapshot) => boolean
required
idle
property
(snapshot: MessageScrollerSnapshot) => boolean
required
jumping
property
(snapshot: MessageScrollerSnapshot) => boolean
required
pendingJumpId
property
(snapshot: MessageScrollerSnapshot) => string | null
required
Name
anchored
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => boolean
Requirement
required
Name
anchorId
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => string | null
Requirement
required
Name
defaultApplied
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => boolean
Requirement
required
Name
following
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => boolean
Requirement
required
Name
idle
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => boolean
Requirement
required
Name
jumping
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => boolean
Requirement
required
Name
pendingJumpId
Kind
property
Type
(snapshot: MessageScrollerSnapshot) => string | null
Requirement
required
DeclarationView source
MessageScrollerServicets
type MessageScrollerService = Service<MessageScrollerInput, MessageScrollerStateValue, MessageScrollerContext, MessageScrollerEvent, MessageScrollerCommand>;
DeclarationView source
MessageScrollerSnapshotts
type MessageScrollerSnapshot = Snapshot<MessageScrollerStateValue, MessageScrollerContext>;
DeclarationView source
MessageScrollerStateValuets
type MessageScrollerStateValue = "idle" | "following" | "anchored";
DeclarationView source
mountMessageScrollerts
declare function mountMessageScroller(container: HTMLElement, options?: MountMessageScrollerOptions): MessageScrollerMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountMessageScrollerOptions
optional
return
return value
MessageScrollerMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountMessageScrollerOptions
Requirement
optional
Name
return
Kind
return value
Type
MessageScrollerMount
Requirement
n/a
DeclarationView source
MountMessageScrollerOptionsts
interface MountMessageScrollerOptions extends MessageScrollerInput, Omit<MessageScrollerControllerOptions, keyof MessageScrollerInput> {
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly showButton?: boolean;
readonly messages?: ReadonlyArray<{
readonly id: string;
readonly content: string;
readonly scrollAnchor?: boolean;
}>;
}
Name
Kind
Type
Requirement
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
label
property
string
optional
messages
property
ReadonlyArray<{ readonly id: string; readonly content: string; readonly scrollAnchor?: boolean; }>
optional
scheduler
property
Scheduler
optional
showButton
property
boolean
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
messages
Kind
property
Type
ReadonlyArray<{ readonly id: string; readonly content: string; readonly scrollAnchor?: boolean; }>
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
Name
showButton
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
runMessageScrollerCommandts
declare function runMessageScrollerCommand(command: MessageScrollerCommand, _scope: PartScope, options?: {
readonly controller?: Pick<MessageScrollerController, "applyScroll" | "applyPreservePrepend" | "clearSpacer" | "applyReanchor">;
}): void;
Name
Kind
Type
Requirement
command
parameter
MessageScrollerCommand
required
_scope
parameter
PartScope
required
options
parameter
{ readonly controller?: Pick<MessageScrollerController, "applyScroll" | "applyPreservePrepend" | "clearSpacer" | "applyReanchor">; }
optional
return
return value
void
n/a
Name
command
Kind
parameter
Type
MessageScrollerCommand
Requirement
required
Name
_scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
{ readonly controller?: Pick<MessageScrollerController, "applyScroll" | "applyPreservePrepend" | "clearSpacer" | "applyReanchor">; }
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/message-scrollerts
import { Button, Content, Item, MessageScroller, Root, Spacer, Viewport } from "@grassroot/ui-headless-react/message-scroller";

Vue imports

@grassroot/ui-headless-vue/message-scrollerts
<script setup lang="ts">
import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-vue/message-scroller";
</script>

Angular imports

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

Svelte imports

@grassroot/ui-headless-svelte/message-scrollerts
<script lang="ts">
import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-svelte/message-scroller";
</script>

Solid imports

@grassroot/ui-headless-solid/message-scrollerts
import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-solid/message-scroller";

@grassroot/ui-headless-react/message-scroller

React adapter

20 exports
View source packages/ui-headless/react/src/message-scroller/index.ts

Button

value
DeclarationView source
Buttonts
export declare const Button: import("react").ForwardRefExoticComponent<MessageScrollerButtonProps & 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

Content

value
DeclarationView source
Contentts
export declare const Content: import("react").ForwardRefExoticComponent<MessageScrollerContentProps & 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

Item

value
DeclarationView source
Itemts
export declare const Item: import("react").ForwardRefExoticComponent<MessageScrollerItemProps & 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
DeclarationView source
MessageScrollerts
export declare const MessageScroller: {
Root: import("react").ForwardRefExoticComponent<MessageScrollerRootProps & import("react").RefAttributes<HTMLDivElement>>;
Viewport: import("react").ForwardRefExoticComponent<MessageScrollerViewportProps & import("react").RefAttributes<HTMLDivElement>>;
Content: import("react").ForwardRefExoticComponent<MessageScrollerContentProps & import("react").RefAttributes<HTMLDivElement>>;
Item: import("react").ForwardRefExoticComponent<MessageScrollerItemProps & import("react").RefAttributes<HTMLDivElement>>;
Spacer: import("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & import("react").RefAttributes<HTMLDivElement>>;
Button: import("react").ForwardRefExoticComponent<MessageScrollerButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
};
Name
Kind
Type
Requirement
Button
property
import("react").ForwardRefExoticComponent<MessageScrollerButtonProps & import("react").RefAttributes<HTMLButtonElement>>
required
Content
property
import("react").ForwardRefExoticComponent<MessageScrollerContentProps & import("react").RefAttributes<HTMLDivElement>>
required
Item
property
import("react").ForwardRefExoticComponent<MessageScrollerItemProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
import("react").ForwardRefExoticComponent<MessageScrollerRootProps & import("react").RefAttributes<HTMLDivElement>>
required
Spacer
property
import("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & import("react").RefAttributes<HTMLDivElement>>
required
Viewport
property
import("react").ForwardRefExoticComponent<MessageScrollerViewportProps & import("react").RefAttributes<HTMLDivElement>>
required
Name
Button
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerButtonProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
Name
Content
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerContentProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerItemProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerRootProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Spacer
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Viewport
Kind
property
Type
import("react").ForwardRefExoticComponent<MessageScrollerViewportProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
DeclarationView source
MessageScrollerButtonPropsts
interface MessageScrollerButtonProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
MessageScrollerContentPropsts
interface MessageScrollerContentProps 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
MessageScrollerContextts
export declare const MessageScrollerContext: import("react").Context<MessageScrollerContextValue | 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
MessageScrollerContextValuets
interface MessageScrollerContextValue {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
DeclarationView source
MessageScrollerItemPropsts
interface MessageScrollerItemProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
readonly id: string;
readonly scrollAnchor?: boolean;
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
children
property
ReactNode
optional
id
property
string
required
scrollAnchor
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
scrollAnchor
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
MessageScrollerRootPropsts
interface MessageScrollerRootProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
readonly asChild?: boolean;
readonly autoScroll?: MessageScrollerInput["autoScroll"];
readonly defaultScrollPosition?: MessageScrollerInput["defaultScrollPosition"];
readonly preserveScrollOnPrepend?: MessageScrollerInput["preserveScrollOnPrepend"];
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly scheduler?: UseMessageScrollerOptions["scheduler"];
readonly host?: UseMessageScrollerOptions["host"];
readonly scrollEdgeThreshold?: number;
readonly scrollMargin?: number;
readonly scrollPreviousItemPeek?: number;
readonly onScrollableChange?: UseMessageScrollerOptions["onScrollableChange"];
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
autoScroll
property
MessageScrollerInput["autoScroll"]
optional
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
children
property
ReactNode
optional
defaultScrollPosition
property
MessageScrollerInput["defaultScrollPosition"]
optional
host
property
UseMessageScrollerOptions["host"]
optional
label
property
string
optional
onScrollableChange
property
UseMessageScrollerOptions["onScrollableChange"]
optional
preserveScrollOnPrepend
property
MessageScrollerInput["preserveScrollOnPrepend"]
optional
scheduler
property
UseMessageScrollerOptions["scheduler"]
optional
scrollEdgeThreshold
property
number
optional
scrollMargin
property
number
optional
scrollPreviousItemPeek
property
number
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
autoScroll
Kind
property
Type
MessageScrollerInput["autoScroll"]
Requirement
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
defaultScrollPosition
Kind
property
Type
MessageScrollerInput["defaultScrollPosition"]
Requirement
optional
Name
host
Kind
property
Type
UseMessageScrollerOptions["host"]
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
onScrollableChange
Kind
property
Type
UseMessageScrollerOptions["onScrollableChange"]
Requirement
optional
Name
preserveScrollOnPrepend
Kind
property
Type
MessageScrollerInput["preserveScrollOnPrepend"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseMessageScrollerOptions["scheduler"]
Requirement
optional
Name
scrollEdgeThreshold
Kind
property
Type
number
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
Name
scrollPreviousItemPeek
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerSpacerPropsts
interface MessageScrollerSpacerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
MessageScrollerViewportPropsts
interface MessageScrollerViewportProps 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

Root

value
DeclarationView source
Rootts
export declare const Root: import("react").ForwardRefExoticComponent<MessageScrollerRootProps & 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

Spacer

value
DeclarationView source
Spacerts
export declare const Spacer: import("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & 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
DeclarationView source
useMessageScrollerts
declare function useMessageScroller(input?: MessageScrollerInput, options?: UseMessageScrollerOptions): UseMessageScrollerResult;
Name
Kind
Type
Requirement
input
parameter
MessageScrollerInput
optional
options
parameter
UseMessageScrollerOptions
optional
return
return value
UseMessageScrollerResult
n/a
Name
input
Kind
parameter
Type
MessageScrollerInput
Requirement
optional
Name
options
Kind
parameter
Type
UseMessageScrollerOptions
Requirement
optional
Name
return
Kind
return value
Type
UseMessageScrollerResult
Requirement
n/a
DeclarationView source
useMessageScrollerContextts
declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
MessageScrollerContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
MessageScrollerContextValue
Requirement
n/a
DeclarationView source
UseMessageScrollerOptionsts
interface UseMessageScrollerOptions extends MessageScrollerControllerOptions {
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly getScrollable?: () => {
readonly start: boolean;
readonly end: boolean;
};
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
}
Name
Kind
Type
Requirement
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
getScrollable
property
() => { readonly start: boolean; readonly end: boolean; }
optional
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
label
property
string
optional
scheduler
property
Scheduler
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
getScrollable
Kind
property
Type
() => { readonly start: boolean; readonly end: boolean; }
Requirement
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseMessageScrollerResultts
interface UseMessageScrollerResult {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly snapshot: MessageScrollerSnapshot;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
snapshot
property
MessageScrollerSnapshot
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
snapshot
Kind
property
Type
MessageScrollerSnapshot
Requirement
required

Viewport

value
DeclarationView source
Viewportts
export declare const Viewport: import("react").ForwardRefExoticComponent<MessageScrollerViewportProps & 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

@grassroot/ui-headless-vue/message-scroller

Vue adapter

13 exports
View source packages/ui-headless/vue/src/message-scroller/index.ts
DeclarationView source
MessageScrollerButtonts
export declare const MessageScrollerButton: 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
MessageScrollerContentts
export declare const MessageScrollerContent: 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
MessageScrollerContextKeyts
export declare const MessageScrollerContextKey: InjectionKey<MessageScrollerContextValue>;
DeclarationView source
MessageScrollerContextValuets
interface MessageScrollerContextValue {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<MessageScrollerSnapshot>;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
snapshot
property
ShallowRef<MessageScrollerSnapshot>
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<MessageScrollerSnapshot>
Requirement
required
DeclarationView source
MessageScrollerItemts
export declare const MessageScrollerItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
id: {
type: StringConstructor;
required: true;
};
scrollAnchor: {
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;
};
id: {
type: StringConstructor;
required: true;
};
scrollAnchor: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
scrollAnchor: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
MessageScrollerRootts
export declare const MessageScrollerRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
autoScroll: {
type: PropType<boolean | undefined>;
default: undefined;
};
defaultScrollPosition: {
type: PropType<MessageScrollerInput["defaultScrollPosition"]>;
default: undefined;
};
preserveScrollOnPrepend: {
type: PropType<boolean | undefined>;
default: undefined;
};
label: {
type: StringConstructor;
default: undefined;
};
busy: {
type: PropType<boolean | undefined>;
default: undefined;
};
buttonDirection: {
type: PropType<"start" | "end" | undefined>;
default: undefined;
};
host: {
type: PropType<UseMessageScrollerOptions["host"]>;
default: undefined;
};
scheduler: {
type: PropType<UseMessageScrollerOptions["scheduler"]>;
default: undefined;
};
onScrollableChange: {
type: PropType<UseMessageScrollerOptions["onScrollableChange"]>;
default: undefined;
};
}>, () => 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;
};
autoScroll: {
type: PropType<boolean | undefined>;
default: undefined;
};
defaultScrollPosition: {
type: PropType<MessageScrollerInput["defaultScrollPosition"]>;
default: undefined;
};
preserveScrollOnPrepend: {
type: PropType<boolean | undefined>;
default: undefined;
};
label: {
type: StringConstructor;
default: undefined;
};
busy: {
type: PropType<boolean | undefined>;
default: undefined;
};
buttonDirection: {
type: PropType<"start" | "end" | undefined>;
default: undefined;
};
host: {
type: PropType<UseMessageScrollerOptions["host"]>;
default: undefined;
};
scheduler: {
type: PropType<UseMessageScrollerOptions["scheduler"]>;
default: undefined;
};
onScrollableChange: {
type: PropType<UseMessageScrollerOptions["onScrollableChange"]>;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
autoScroll: boolean | undefined;
defaultScrollPosition: import("@grassroot/ui-machines/message-scroller").MessageScrollerDefaultScrollPosition | undefined;
preserveScrollOnPrepend: boolean | undefined;
label: string;
busy: boolean | undefined;
buttonDirection: "end" | "start" | undefined;
host: Partial<Omit<import("@grassroot/ui-headless-core/message-scroller").MessageScrollerControllerHost, "getContent" | "getRoot" | "getViewport">> | undefined;
scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined;
onScrollableChange: ((state: import("@grassroot/ui-core").MessageScrollerScrollable) => void) | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerSpacerts
export declare const MessageScrollerSpacer: 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
MessageScrollerViewportts
export declare const MessageScrollerViewport: 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
useMessageScrollerts
declare function useMessageScroller(input?: MessageScrollerInput | (() => MessageScrollerInput), options?: UseMessageScrollerOptions): UseMessageScrollerResult;
Name
Kind
Type
Requirement
input
parameter
MessageScrollerInput | (() => MessageScrollerInput)
optional
options
parameter
UseMessageScrollerOptions
optional
return
return value
UseMessageScrollerResult
n/a
Name
input
Kind
parameter
Type
MessageScrollerInput | (() => MessageScrollerInput)
Requirement
optional
Name
options
Kind
parameter
Type
UseMessageScrollerOptions
Requirement
optional
Name
return
Kind
return value
Type
UseMessageScrollerResult
Requirement
n/a
DeclarationView source
useMessageScrollerContextts
declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
MessageScrollerContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
MessageScrollerContextValue
Requirement
n/a
DeclarationView source
UseMessageScrollerOptionsts
interface UseMessageScrollerOptions extends MessageScrollerControllerOptions {
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
}
Name
Kind
Type
Requirement
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
label
property
string
optional
scheduler
property
Scheduler
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseMessageScrollerResultts
interface UseMessageScrollerResult {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<MessageScrollerSnapshot>;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
snapshot
property
ShallowRef<MessageScrollerSnapshot>
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<MessageScrollerSnapshot>
Requirement
required

@grassroot/ui-headless-angular/message-scroller

Angular adapter

17 exports
View source packages/ui-headless/angular/src/message-scroller/index.ts

applyProps

function

Applies a connector prop bag to a persistent Angular DOM element.

DeclarationView source
applyPropsts
export declare function applyProps(el: Element, props: PartProps, listeners: Map<string, EventListener>): void;
Name
Kind
Type
Requirement
el
parameter
Element
required
props
parameter
PartProps
required
listeners
parameter
Map<string, EventListener>
required
return
return value
void
n/a
Name
el
Kind
parameter
Type
Element
Requirement
required
Name
props
Kind
parameter
Type
PartProps
Requirement
required
Name
listeners
Kind
parameter
Type
Map<string, EventListener>
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
createMessageScrollerStorets
export declare function createMessageScrollerStore(initialInput?: MessageScrollerInput, options?: CreateMessageScrollerStoreOptions): MessageScrollerStore;
Name
Kind
Type
Requirement
initialInput
parameter
MessageScrollerInput
optional
options
parameter
CreateMessageScrollerStoreOptions
optional
return
return value
MessageScrollerStore
n/a
Name
initialInput
Kind
parameter
Type
MessageScrollerInput
Requirement
optional
Name
options
Kind
parameter
Type
CreateMessageScrollerStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
MessageScrollerStore
Requirement
n/a
DeclarationView source
CreateMessageScrollerStoreOptionsts
export interface CreateMessageScrollerStoreOptions {
readonly onCommit?: () => void;
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
readonly onScrollableChange?: (state: {
readonly start: boolean;
readonly end: boolean;
}) => void;
}
Name
Kind
Type
Requirement
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
onCommit
property
() => void
optional
onScrollableChange
property
(state: { readonly start: boolean; readonly end: boolean; }) => void
optional
scheduler
property
Scheduler
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onScrollableChange
Kind
property
Type
(state: { readonly start: boolean; readonly end: boolean; }) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

One re-entrancy policy for every Angular store's zoneless commit nudge.

DeclarationView source
createReentrantSafeTickts
export declare function createReentrantSafeTick(appRef: ApplicationRef): () => void;
Name
Kind
Type
Requirement
appRef
parameter
ApplicationRef
required
return
return value
() => void
n/a
Name
appRef
Kind
parameter
Type
ApplicationRef
Requirement
required
Name
return
Kind
return value
Type
() => void
Requirement
n/a
DeclarationView source
GR_MESSAGE_SCROLLER_DECLARATIONSts
export declare const GR_MESSAGE_SCROLLER_DECLARATIONS: readonly [typeof GrMessageScrollerRoot, typeof GrMessageScrollerViewport, typeof GrMessageScrollerContent, typeof GrMessageScrollerItem, typeof GrMessageScrollerSpacer, typeof GrMessageScrollerButton];
DeclarationView source
GrMessageScrollerButtonts
export declare class GrMessageScrollerButton implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerButton, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrMessageScrollerButton, "[grMessageScrollerButton]", 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<GrMessageScrollerButton, "[grMessageScrollerButton]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerButton, 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<GrMessageScrollerButton, "[grMessageScrollerButton]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerButton, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrMessageScrollerContentts
export declare class GrMessageScrollerContent implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerContent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrMessageScrollerContent, "[grMessageScrollerContent]", 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<GrMessageScrollerContent, "[grMessageScrollerContent]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerContent, 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<GrMessageScrollerContent, "[grMessageScrollerContent]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerContent, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrMessageScrollerItemts
export declare class GrMessageScrollerItem implements OnDestroy {
readonly itemId: import("@angular/core").InputSignal<string>;
readonly scrollAnchor: import("@angular/core").InputSignal<boolean>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
private registeredKey;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerItem, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrMessageScrollerItem, "[grMessageScrollerItem]", never, { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "scrollAnchor": { "alias": "scrollAnchor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
itemId
property
import("@angular/core").InputSignal<string>
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrMessageScrollerItem, "[grMessageScrollerItem]", never, { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "scrollAnchor": { "alias": "scrollAnchor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerItem, never>
required
registeredKey
property
any
required
scrollAnchor
property
import("@angular/core").InputSignal<boolean>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
itemId
Kind
property
Type
import("@angular/core").InputSignal<string>
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<GrMessageScrollerItem, "[grMessageScrollerItem]", never, { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "scrollAnchor": { "alias": "scrollAnchor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerItem, never>
Requirement
required
Name
registeredKey
Kind
property
Type
any
Requirement
required
Name
scrollAnchor
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrMessageScrollerRootts
export declare class GrMessageScrollerRoot implements OnDestroy {
readonly autoScroll: import("@angular/core").InputSignal<boolean | undefined>;
readonly defaultScrollPosition: import("@angular/core").InputSignal<import("@grassroot/ui-machines/message-scroller").MessageScrollerDefaultScrollPosition | undefined>;
readonly preserveScrollOnPrepend: import("@angular/core").InputSignal<boolean | undefined>;
readonly label: import("@angular/core").InputSignal<string | undefined>;
readonly busy: import("@angular/core").InputSignal<boolean | undefined>;
readonly buttonDirection: import("@angular/core").InputSignal<"start" | "end" | undefined>;
readonly scrollableChange: import("@angular/core").OutputEmitterRef<{
readonly start: boolean;
readonly end: boolean;
}>;
private readonly element;
private readonly injector;
private readonly listeners;
private lastSynced;
readonly store: MessageScrollerStore;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerRoot, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrMessageScrollerRoot, "gr-message-scroller-root", never, { "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "defaultScrollPosition": { "alias": "defaultScrollPosition"; "required": false; "isSignal": true; }; "preserveScrollOnPrepend": { "alias": "preserveScrollOnPrepend"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; "buttonDirection": { "alias": "buttonDirection"; "required": false; "isSignal": true; }; }, { "scrollableChange": "scrollableChange"; }, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
autoScroll
property
import("@angular/core").InputSignal<boolean | undefined>
required
busy
property
import("@angular/core").InputSignal<boolean | undefined>
required
buttonDirection
property
import("@angular/core").InputSignal<"start" | "end" | undefined>
required
defaultScrollPosition
property
import("@angular/core").InputSignal<import("@grassroot/ui-machines/message-scroller").MessageScrollerDefaultScrollPosition | undefined>
required
element
property
any
required
injector
property
any
required
label
property
import("@angular/core").InputSignal<string | undefined>
required
lastSynced
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrMessageScrollerRoot, "gr-message-scroller-root", never, { "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "defaultScrollPosition": { "alias": "defaultScrollPosition"; "required": false; "isSignal": true; }; "preserveScrollOnPrepend": { "alias": "preserveScrollOnPrepend"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; "buttonDirection": { "alias": "buttonDirection"; "required": false; "isSignal": true; }; }, { "scrollableChange": "scrollableChange"; }, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerRoot, never>
required
preserveScrollOnPrepend
property
import("@angular/core").InputSignal<boolean | undefined>
required
scrollableChange
property
import("@angular/core").OutputEmitterRef<{ readonly start: boolean; readonly end: boolean; }>
required
Name
autoScroll
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
busy
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
buttonDirection
Kind
property
Type
import("@angular/core").InputSignal<"start" | "end" | undefined>
Requirement
required
Name
defaultScrollPosition
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/message-scroller").MessageScrollerDefaultScrollPosition | undefined>
Requirement
required
Name
element
Kind
property
Type
any
Requirement
required
Name
injector
Kind
property
Type
any
Requirement
required
Name
label
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
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
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrMessageScrollerRoot, "gr-message-scroller-root", never, { "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "defaultScrollPosition": { "alias": "defaultScrollPosition"; "required": false; "isSignal": true; }; "preserveScrollOnPrepend": { "alias": "preserveScrollOnPrepend"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; "buttonDirection": { "alias": "buttonDirection"; "required": false; "isSignal": true; }; }, { "scrollableChange": "scrollableChange"; }, never, ["*"], true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerRoot, never>
Requirement
required
Name
preserveScrollOnPrepend
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
scrollableChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<{ readonly start: boolean; readonly end: boolean; }>
Requirement
required
Name
store
Kind
property
Type
MessageScrollerStore
Requirement
required
DeclarationView source
GrMessageScrollerSpacerts
export declare class GrMessageScrollerSpacer implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerSpacer, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrMessageScrollerSpacer, "[grMessageScrollerSpacer]", 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<GrMessageScrollerSpacer, "[grMessageScrollerSpacer]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerSpacer, 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<GrMessageScrollerSpacer, "[grMessageScrollerSpacer]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerSpacer, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrMessageScrollerViewportts
export declare class GrMessageScrollerViewport implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrMessageScrollerViewport, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrMessageScrollerViewport, "[grMessageScrollerViewport]", 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<GrMessageScrollerViewport, "[grMessageScrollerViewport]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrMessageScrollerViewport, 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<GrMessageScrollerViewport, "[grMessageScrollerViewport]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrMessageScrollerViewport, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
MESSAGE_SCROLLER_HOSTts
export declare const MESSAGE_SCROLLER_HOST: InjectionToken<Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>>;
DeclarationView source
MESSAGE_SCROLLER_SCHEDULERts
export declare const MESSAGE_SCROLLER_SCHEDULER: InjectionToken<Scheduler>;
DeclarationView source
MESSAGE_SCROLLER_STOREts
export declare const MESSAGE_SCROLLER_STORE: InjectionToken<MessageScrollerStore>;
DeclarationView source
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerStorets
export interface MessageScrollerStore {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly version: WritableSignal<number>;
readonly controller: MessageScrollerController | undefined;
readonly getController: () => MessageScrollerController | undefined;
start(): void;
stop(): void;
sync(input: MessageScrollerInput): void;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
controller
property
MessageScrollerController | undefined
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
start
method
() => void
required
stop
method
() => void
required
sync
method
(input: MessageScrollerInput) => void
required
version
property
WritableSignal<number>
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
controller
Kind
property
Type
MessageScrollerController | undefined
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
start
Kind
method
Type
() => void
Requirement
required
Name
stop
Kind
method
Type
() => void
Requirement
required
Name
sync
Kind
method
Type
(input: MessageScrollerInput) => void
Requirement
required
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required
DeclarationView source
provideMessageScrollerStorets
export declare function provideMessageScrollerStore(): 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/message-scroller

Svelte adapter

14 exports
View source packages/ui-headless/svelte/src/message-scroller/index.ts
DeclarationView source
createMessageScrollerts
export declare function createMessageScroller(inputGetter: () => MessageScrollerInput, options?: UseMessageScrollerOptions): UseMessageScrollerResult;
Name
Kind
Type
Requirement
inputGetter
parameter
() => MessageScrollerInput
required
options
parameter
UseMessageScrollerOptions
optional
return
return value
UseMessageScrollerResult
n/a
Name
inputGetter
Kind
parameter
Type
() => MessageScrollerInput
Requirement
required
Name
options
Kind
parameter
Type
UseMessageScrollerOptions
Requirement
optional
Name
return
Kind
return value
Type
UseMessageScrollerResult
Requirement
n/a
DeclarationView source
MessageScrollerButtonts
export declare const MessageScrollerButton: 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
MessageScrollerContentts
export declare const MessageScrollerContent: 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
MessageScrollerContextValuets
export interface MessageScrollerContextValue {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly version: () => number;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
version
property
() => number
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required
DeclarationView source
MessageScrollerItemts
export declare const MessageScrollerItem: 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
MessageScrollerRootts
export declare const MessageScrollerRoot: 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
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerSpacerts
export declare const MessageScrollerSpacer: 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
MessageScrollerViewportts
export declare const MessageScrollerViewport: 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

splitProps

function

Split the core prop bag, then apply Svelte-specific style/event handling.

DeclarationView source
splitPropsts
export declare function splitProps(props: PartProps): SplitProps;
Name
Kind
Type
Requirement
props
parameter
PartProps
required
return
return value
SplitProps
n/a
Name
props
Kind
parameter
Type
PartProps
Requirement
required
Name
return
Kind
return value
Type
SplitProps
Requirement
n/a
DeclarationView source
useMessageScrollerContextts
export declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
MessageScrollerContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
MessageScrollerContextValue
Requirement
n/a
DeclarationView source
UseMessageScrollerOptionsts
export interface UseMessageScrollerOptions extends MessageScrollerControllerOptions {
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
}
Name
Kind
Type
Requirement
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
scheduler
property
Scheduler
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseMessageScrollerResultts
export interface UseMessageScrollerResult {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly version: () => number;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
version
property
() => number
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required

wireEvents

function
DeclarationView source
wireEventsts
export declare function wireEvents(node: Element, params: {
events: Record<string, EventListener>;
ref?: (node: Element | null) => void;
}): {
update(next: typeof params): void;
destroy(): void;
};
Name
Kind
Type
Requirement
node
parameter
Element
required
params
parameter
{ events: Record<string, EventListener>; ref?: (node: Element | null) => void; }
required
return
return value
{ update(next: typeof params): void; destroy(): void; }
n/a
Name
node
Kind
parameter
Type
Element
Requirement
required
Name
params
Kind
parameter
Type
{ events: Record<string, EventListener>; ref?: (node: Element | null) => void; }
Requirement
required
Name
return
Kind
return value
Type
{ update(next: typeof params): void; destroy(): void; }
Requirement
n/a

@grassroot/ui-headless-solid/message-scroller

Solid adapter

19 exports
View source packages/ui-headless/solid/src/message-scroller/index.ts
DeclarationView source
MessageScrollerButtonts
export declare function MessageScrollerButton(props: MessageScrollerButtonProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerButtonProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerButtonProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerButtonPropsts
export interface MessageScrollerButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
MessageScrollerContentts
export declare function MessageScrollerContent(props: MessageScrollerContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerContentPropsts
export interface MessageScrollerContentProps 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
MessageScrollerContextts
export declare const MessageScrollerContext: import("solid-js").Context<MessageScrollerContextValue | undefined>;
DeclarationView source
MessageScrollerContextValuets
export interface MessageScrollerContextValue {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly snapshot: Accessor<MessageScrollerSnapshot>;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
snapshot
property
Accessor<MessageScrollerSnapshot>
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<MessageScrollerSnapshot>
Requirement
required
DeclarationView source
MessageScrollerItemts
export declare function MessageScrollerItem(props: MessageScrollerItemProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerItemProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerItemProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerItemPropsts
export interface MessageScrollerItemProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
readonly id: string;
readonly scrollAnchor?: boolean;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
id
property
string
required
scrollAnchor
property
boolean
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
scrollAnchor
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
MessageScrollerRootts
export declare function MessageScrollerRoot(props: MessageScrollerRootProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerRootProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerRootProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerRootPropsts
export interface MessageScrollerRootProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
readonly as?: AsProp;
readonly autoScroll?: MessageScrollerInput["autoScroll"];
readonly defaultScrollPosition?: MessageScrollerInput["defaultScrollPosition"];
readonly preserveScrollOnPrepend?: MessageScrollerInput["preserveScrollOnPrepend"];
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly host?: UseMessageScrollerOptions["host"];
readonly scheduler?: UseMessageScrollerOptions["scheduler"];
readonly onScrollableChange?: UseMessageScrollerOptions["onScrollableChange"];
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
autoScroll
property
MessageScrollerInput["autoScroll"]
optional
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
defaultScrollPosition
property
MessageScrollerInput["defaultScrollPosition"]
optional
host
property
UseMessageScrollerOptions["host"]
optional
label
property
string
optional
onScrollableChange
property
UseMessageScrollerOptions["onScrollableChange"]
optional
preserveScrollOnPrepend
property
MessageScrollerInput["preserveScrollOnPrepend"]
optional
scheduler
property
UseMessageScrollerOptions["scheduler"]
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
autoScroll
Kind
property
Type
MessageScrollerInput["autoScroll"]
Requirement
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
defaultScrollPosition
Kind
property
Type
MessageScrollerInput["defaultScrollPosition"]
Requirement
optional
Name
host
Kind
property
Type
UseMessageScrollerOptions["host"]
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
onScrollableChange
Kind
property
Type
UseMessageScrollerOptions["onScrollableChange"]
Requirement
optional
Name
preserveScrollOnPrepend
Kind
property
Type
MessageScrollerInput["preserveScrollOnPrepend"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseMessageScrollerOptions["scheduler"]
Requirement
optional
DeclarationView source
MessageScrollerScrollOptionsts
interface MessageScrollerScrollOptions {
align?: MessageScrollerScrollAlign;
behavior?: ScrollBehavior | "instant";
scrollMargin?: number;
}
Name
Kind
Type
Requirement
align
property
MessageScrollerScrollAlign
optional
behavior
property
ScrollBehavior | "instant"
optional
scrollMargin
property
number
optional
Name
align
Kind
property
Type
MessageScrollerScrollAlign
Requirement
optional
Name
behavior
Kind
property
Type
ScrollBehavior | "instant"
Requirement
optional
Name
scrollMargin
Kind
property
Type
number
Requirement
optional
DeclarationView source
MessageScrollerSpacerts
export declare function MessageScrollerSpacer(props: MessageScrollerSpacerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerSpacerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerSpacerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerSpacerPropsts
export interface MessageScrollerSpacerProps 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
MessageScrollerViewportts
export declare function MessageScrollerViewport(props: MessageScrollerViewportProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
MessageScrollerViewportProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
MessageScrollerViewportProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
MessageScrollerViewportPropsts
export interface MessageScrollerViewportProps 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
useMessageScrollerts
export declare function useMessageScroller(input: Accessor<MessageScrollerInput>, options?: UseMessageScrollerOptions): UseMessageScrollerResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<MessageScrollerInput>
required
options
parameter
UseMessageScrollerOptions
optional
return
return value
UseMessageScrollerResult
n/a
Name
input
Kind
parameter
Type
Accessor<MessageScrollerInput>
Requirement
required
Name
options
Kind
parameter
Type
UseMessageScrollerOptions
Requirement
optional
Name
return
Kind
return value
Type
UseMessageScrollerResult
Requirement
n/a
DeclarationView source
useMessageScrollerContextts
export declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
MessageScrollerContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
MessageScrollerContextValue
Requirement
n/a
DeclarationView source
UseMessageScrollerOptionsts
export interface UseMessageScrollerOptions extends MessageScrollerControllerOptions {
readonly label?: string;
readonly busy?: boolean;
readonly buttonDirection?: "start" | "end";
readonly scheduler?: Scheduler;
readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;
}
Name
Kind
Type
Requirement
busy
property
boolean
optional
buttonDirection
property
"start" | "end"
optional
host
property
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
optional
label
property
string
optional
scheduler
property
Scheduler
optional
Name
busy
Kind
property
Type
boolean
Requirement
optional
Name
buttonDirection
Kind
property
Type
"start" | "end"
Requirement
optional
Name
host
Kind
property
Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseMessageScrollerResultts
export interface UseMessageScrollerResult {
readonly service: MessageScrollerService;
readonly connector: MessageScrollerApi;
readonly scope: PartScope;
readonly snapshot: Accessor<MessageScrollerSnapshot>;
readonly getController: () => MessageScrollerController | undefined;
}
Name
Kind
Type
Requirement
connector
property
MessageScrollerApi
required
getController
property
() => MessageScrollerController | undefined
required
scope
property
PartScope
required
service
property
MessageScrollerService
required
snapshot
property
Accessor<MessageScrollerSnapshot>
required
Name
connector
Kind
property
Type
MessageScrollerApi
Requirement
required
Name
getController
Kind
property
Type
() => MessageScrollerController | undefined
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
MessageScrollerService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<MessageScrollerSnapshot>
Requirement
required