- Name
service- Kind
- parameter
- Type
MessageScrollerService- Requirement
- required
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
connectMessageScroller
functiondeclare function connectMessageScroller(service: MessageScrollerService, scope: PartScope, options?: MessageScrollerConnectOptions): MessageScrollerApi;serviceMessageScrollerServicescopePartScopeoptionsMessageScrollerConnectOptionsreturnMessageScrollerApi- 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
createMessageScrollerController
functiondeclare function createMessageScrollerController(host: MessageScrollerControllerHost, initialOptions?: MessageScrollerControllerOptions): MessageScrollerController;hostMessageScrollerControllerHostinitialOptionsMessageScrollerControllerOptionsreturnMessageScrollerController- 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
export declare const MESSAGE_SCROLLER_JUMP_DELAY_MS: 260;export declare const MESSAGE_SCROLLER_JUMP_KEY: "message-scroller.jump";messageScrollerAnatomy
valueexport declare const messageScrollerAnatomy: { readonly scope: "message-scroller"; readonly parts: readonly ["root", "viewport", "content", "item", "spacer", "button"];};partsreadonly ["root", "viewport", "content", "item", "spacer", "button"]scope"message-scroller"- Name
parts- Kind
- property
- Type
readonly ["root", "viewport", "content", "item", "spacer", "button"]- Requirement
- required
- Name
scope- Kind
- property
- Type
"message-scroller"- Requirement
- required
MessageScrollerApi
interfaceinterface 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;}anchoredbooleananchorIdstring | nullbusybooleancontentProps() => PartPropsfollowingbooleanitemProps(id: string, scrollAnchor?: boolean) => PartPropsjumpingbooleanlabelstringrootProps() => PartPropsspacerProps() => PartPropsviewportProps() => PartProps- 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
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;MessageScrollerConnectOptions
interfaceinterface MessageScrollerConnectOptions { readonly label?: string; readonly busy?: boolean; readonly buttonDirection?: "start" | "end"; readonly getScrollable?: () => MessageScrollerScrollable;}busybooleangetScrollable() => MessageScrollerScrollablelabelstring- 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
type MessageScrollerContext = { readonly jumping: boolean; readonly anchorId: string | null; readonly defaultApplied: boolean; readonly pendingJumpId: string | null;};anchorIdstring | nulldefaultAppliedbooleanjumpingbooleanpendingJumpIdstring | null- 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
MessageScrollerController
interfaceinterface 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;}applyPreservePrepend() => voidapplyReanchor() => voidapplyScroll(target: MessageScrollerScrollTarget, behavior: MessageScrollerScrollBehavior) => voidattach(service: MessageScrollerService) => voidclearSpacer() => voiddestroy() => voidensureStarted(service: MessageScrollerService) => voidlistenerCount() => numberobserverCount() => numberrefresh() => voidscrollToEnd(options?: MessageScrollerScrollOptions) => booleanscrollToMessage(messageId: string, options?: MessageScrollerScrollOptions) => booleanscrollToStart(options?: MessageScrollerScrollOptions) => booleanupdate(options: MessageScrollerControllerOptions) => void- 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
MessageScrollerControllerHost
interfaceinterface 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[];}cancelAnimationFrame(handle: number) => voidcreateIntersectionObserver(callback: IntersectionObserverCallback, options?: IntersectionObserverInit) => MessageScrollerObserverLikecreateMutationObserver(callback: MutationCallback) => MessageScrollerObserverLike & {
observe(target: Node, options?: MutationObserverInit): void;
}createResizeObserver(callback: ResizeObserverCallback) => MessageScrollerObserverLikeelementsFromPoint(x: number, y: number) => Element[]getContent() => HTMLElement | nullgetRoot() => HTMLElement | nullgetSelection() => Selection | nullgetViewport() => HTMLElement | nullmatchMedia(query: string) => {
readonly matches: boolean;
}requestAnimationFrame(callback: FrameRequestCallback) => number- 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
MessageScrollerControllerOptions
interfaceinterface MessageScrollerControllerOptions { autoScroll?: boolean; defaultScrollPosition?: MessageScrollerDefaultScrollPosition; preserveScrollOnPrepend?: boolean; scrollEdgeThreshold?: number; scrollMargin?: number; scrollPreviousItemPeek?: number; onScrollableChange?: (state: MessageScrollerScrollable) => void; onVisibilityChange?: (state: MessageScrollerVisibility) => void;}autoScrollbooleandefaultScrollPositionMessageScrollerDefaultScrollPositiononScrollableChange(state: MessageScrollerScrollable) => voidonVisibilityChange(state: MessageScrollerVisibility) => voidpreserveScrollOnPrependbooleanscrollEdgeThresholdnumberscrollMarginnumberscrollPreviousItemPeeknumber- 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
MessageScrollerEvent
typetype 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";};MessageScrollerInput
typetype 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";};autoScrollbooleanbusybooleandefaultScrollPositionMessageScrollerDefaultScrollPositionlabelstringpreserveScrollOnPrependboolean- 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
- —
messageScrollerMachine
valueexport declare const messageScrollerMachine: MessageScrollerMachine;MessageScrollerMount
interfaceinterface MessageScrollerMount { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly controller: MessageScrollerController; readonly root: HTMLElement; readonly viewport: HTMLElement; readonly content: HTMLElement; destroy(): void;}connectorMessageScrollerApicontentHTMLElementcontrollerMessageScrollerControllerdestroy() => voidrootHTMLElementserviceMessageScrollerServiceviewportHTMLElement- 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
MessageScrollerObserverLike
interfaceinterface MessageScrollerObserverLike { observe(target: Element): void; disconnect(): void;}disconnect() => voidobserve(target: Element) => void- Name
disconnect- Kind
- method
- Type
() => void- Requirement
- required
- Name
observe- Kind
- method
- Type
(target: Element) => void- Requirement
- required
MessageScrollerPart
typetype MessageScrollerPart = (typeof messageScrollerAnatomy.parts)[number];type MessageScrollerScrollable = { readonly start: boolean; readonly end: boolean;};endbooleanstartboolean- Name
end- Kind
- property
- Type
boolean- Requirement
- required
- Name
start- Kind
- property
- Type
boolean- Requirement
- required
MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
messageScrollerSelectors
valueexport 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;};anchored(snapshot: MessageScrollerSnapshot) => booleananchorId(snapshot: MessageScrollerSnapshot) => string | nulldefaultApplied(snapshot: MessageScrollerSnapshot) => booleanfollowing(snapshot: MessageScrollerSnapshot) => booleanidle(snapshot: MessageScrollerSnapshot) => booleanjumping(snapshot: MessageScrollerSnapshot) => booleanpendingJumpId(snapshot: MessageScrollerSnapshot) => string | null- 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
type MessageScrollerService = Service<MessageScrollerInput, MessageScrollerStateValue, MessageScrollerContext, MessageScrollerEvent, MessageScrollerCommand>;type MessageScrollerSnapshot = Snapshot<MessageScrollerStateValue, MessageScrollerContext>;type MessageScrollerStateValue = "idle" | "following" | "anchored";mountMessageScroller
functiondeclare function mountMessageScroller(container: HTMLElement, options?: MountMessageScrollerOptions): MessageScrollerMount;containerHTMLElementoptionsMountMessageScrollerOptionsreturnMessageScrollerMount- 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
MountMessageScrollerOptions
interfaceinterface 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; }>;}busybooleanhostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>labelstringmessagesReadonlyArray<{
readonly id: string;
readonly content: string;
readonly scrollAnchor?: boolean;
}>schedulerSchedulershowButtonboolean- 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
runMessageScrollerCommand
functiondeclare function runMessageScrollerCommand(command: MessageScrollerCommand, _scope: PartScope, options?: { readonly controller?: Pick<MessageScrollerController, "applyScroll" | "applyPreservePrepend" | "clearSpacer" | "applyReanchor">;}): void;commandMessageScrollerCommand_scopePartScopeoptions{
readonly controller?: Pick<MessageScrollerController, "applyScroll" | "applyPreservePrepend" | "clearSpacer" | "applyReanchor">;
}returnvoid- 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 imports
import { Button, Content, Item, MessageScroller, Root, Spacer, Viewport } from "@grassroot/ui-headless-react/message-scroller";Vue imports
<script setup lang="ts">import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-vue/message-scroller";</script>Angular imports
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
<script lang="ts"> import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-svelte/message-scroller";</script>Solid imports
import { MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerRoot, MessageScrollerSpacer, MessageScrollerViewport } from "@grassroot/ui-headless-solid/message-scroller";@grassroot/ui-headless-react/message-scroller
React adapter
Button
valueexport declare const Button: import("react").ForwardRefExoticComponent<MessageScrollerButtonProps & import("react").RefAttributes<HTMLButtonElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Content
valueexport declare const Content: import("react").ForwardRefExoticComponent<MessageScrollerContentProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Item
valueexport declare const Item: import("react").ForwardRefExoticComponent<MessageScrollerItemProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
MessageScroller
valueexport 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>>;};Buttonimport("react").ForwardRefExoticComponent<MessageScrollerButtonProps & import("react").RefAttributes<HTMLButtonElement>>Contentimport("react").ForwardRefExoticComponent<MessageScrollerContentProps & import("react").RefAttributes<HTMLDivElement>>Itemimport("react").ForwardRefExoticComponent<MessageScrollerItemProps & import("react").RefAttributes<HTMLDivElement>>Rootimport("react").ForwardRefExoticComponent<MessageScrollerRootProps & import("react").RefAttributes<HTMLDivElement>>Spacerimport("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & import("react").RefAttributes<HTMLDivElement>>Viewportimport("react").ForwardRefExoticComponent<MessageScrollerViewportProps & import("react").RefAttributes<HTMLDivElement>>- 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
MessageScrollerButtonProps
interfaceinterface MessageScrollerButtonProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> { readonly asChild?: boolean;}asChildboolean- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
MessageScrollerContentProps
interfaceinterface MessageScrollerContentProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean; readonly children?: ReactNode;}asChildbooleanchildrenReactNode- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
- Name
children- Kind
- property
- Type
ReactNode- Requirement
- optional
MessageScrollerContext
valueexport declare const MessageScrollerContext: import("react").Context<MessageScrollerContextValue | null>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
MessageScrollerContextValue
interfaceinterface MessageScrollerContextValue { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerService- 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
MessageScrollerItemProps
interfaceinterface MessageScrollerItemProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean; readonly id: string; readonly scrollAnchor?: boolean; readonly children?: ReactNode;}asChildbooleanchildrenReactNodeidstringscrollAnchorboolean- 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
MessageScrollerRootProps
interfaceinterface 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;}asChildbooleanautoScrollMessageScrollerInput["autoScroll"]busybooleanchildrenReactNodedefaultScrollPositionMessageScrollerInput["defaultScrollPosition"]hostUseMessageScrollerOptions["host"]labelstringonScrollableChangeUseMessageScrollerOptions["onScrollableChange"]preserveScrollOnPrependMessageScrollerInput["preserveScrollOnPrepend"]schedulerUseMessageScrollerOptions["scheduler"]scrollEdgeThresholdnumberscrollMarginnumberscrollPreviousItemPeeknumber- 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
MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
MessageScrollerSpacerProps
interfaceinterface MessageScrollerSpacerProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean;}asChildboolean- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
MessageScrollerViewportProps
interfaceinterface MessageScrollerViewportProps extends ComponentPropsWithoutRef<"div"> { readonly asChild?: boolean; readonly children?: ReactNode;}asChildbooleanchildrenReactNode- Name
asChild- Kind
- property
- Type
boolean- Requirement
- optional
- Name
children- Kind
- property
- Type
ReactNode- Requirement
- optional
Root
valueexport declare const Root: import("react").ForwardRefExoticComponent<MessageScrollerRootProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
Spacer
valueexport declare const Spacer: import("react").ForwardRefExoticComponent<MessageScrollerSpacerProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
useMessageScroller
functiondeclare function useMessageScroller(input?: MessageScrollerInput, options?: UseMessageScrollerOptions): UseMessageScrollerResult;inputMessageScrollerInputoptionsUseMessageScrollerOptionsreturnUseMessageScrollerResult- 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
useMessageScrollerContext
functiondeclare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;partNamestringreturnMessageScrollerContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
MessageScrollerContextValue- Requirement
- n/a
UseMessageScrollerOptions
interfaceinterface 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">>;}busybooleangetScrollable() => {
readonly start: boolean;
readonly end: boolean;
}hostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>labelstringschedulerScheduler- 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
UseMessageScrollerResult
interfaceinterface UseMessageScrollerResult { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly snapshot: MessageScrollerSnapshot; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicesnapshotMessageScrollerSnapshot- 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
valueexport declare const Viewport: import("react").ForwardRefExoticComponent<MessageScrollerViewportProps & import("react").RefAttributes<HTMLDivElement>>;propsPreturnReactNode- 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
MessageScrollerButton
valueexport 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>;MessageScrollerContent
valueexport 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>;export declare const MessageScrollerContextKey: InjectionKey<MessageScrollerContextValue>;MessageScrollerContextValue
interfaceinterface MessageScrollerContextValue { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly snapshot: ShallowRef<MessageScrollerSnapshot>; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicesnapshotShallowRef<MessageScrollerSnapshot>- 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
MessageScrollerItem
valueexport 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>;MessageScrollerRoot
valueexport 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>;MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
MessageScrollerSpacer
valueexport 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>;MessageScrollerViewport
valueexport 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>;useMessageScroller
functiondeclare function useMessageScroller(input?: MessageScrollerInput | (() => MessageScrollerInput), options?: UseMessageScrollerOptions): UseMessageScrollerResult;inputMessageScrollerInput | (() => MessageScrollerInput)optionsUseMessageScrollerOptionsreturnUseMessageScrollerResult- 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
useMessageScrollerContext
functiondeclare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;partNamestringreturnMessageScrollerContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
MessageScrollerContextValue- Requirement
- n/a
UseMessageScrollerOptions
interfaceinterface UseMessageScrollerOptions extends MessageScrollerControllerOptions { readonly label?: string; readonly busy?: boolean; readonly buttonDirection?: "start" | "end"; readonly scheduler?: Scheduler; readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;}busybooleanhostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>labelstringschedulerScheduler- 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
UseMessageScrollerResult
interfaceinterface UseMessageScrollerResult { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly snapshot: ShallowRef<MessageScrollerSnapshot>; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicesnapshotShallowRef<MessageScrollerSnapshot>- 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
applyProps
functionApplies a connector prop bag to a persistent Angular DOM element.
export declare function applyProps(el: Element, props: PartProps, listeners: Map<string, EventListener>): void;elElementpropsPartPropslistenersMap<string, EventListener>returnvoid- 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
createMessageScrollerStore
functionexport declare function createMessageScrollerStore(initialInput?: MessageScrollerInput, options?: CreateMessageScrollerStoreOptions): MessageScrollerStore;initialInputMessageScrollerInputoptionsCreateMessageScrollerStoreOptionsreturnMessageScrollerStore- 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
CreateMessageScrollerStoreOptions
interfaceexport 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;}hostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>onCommit() => voidonScrollableChange(state: {
readonly start: boolean;
readonly end: boolean;
}) => voidschedulerScheduler- 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
createReentrantSafeTick
functionOne re-entrancy policy for every Angular store's zoneless commit nudge.
export declare function createReentrantSafeTick(appRef: ApplicationRef): () => void;appRefApplicationRefreturn() => void- Name
appRef- Kind
- parameter
- Type
ApplicationRef- Requirement
- required
- Name
return- Kind
- return value
- Type
() => void- Requirement
- n/a
export declare const GR_MESSAGE_SCROLLER_DECLARATIONS: readonly [typeof GrMessageScrollerRoot, typeof GrMessageScrollerViewport, typeof GrMessageScrollerContent, typeof GrMessageScrollerItem, typeof GrMessageScrollerSpacer, typeof GrMessageScrollerButton];GrMessageScrollerButton
classexport 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>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrMessageScrollerButton, "[grMessageScrollerButton]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerButton, never>storeany- Name
consumerProps- Kind
- property
- Type
any- Requirement
- required
- Name
elementRef- Kind
- property
- Type
any- Requirement
- required
- Name
listeners- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵdir- Kind
- property
- Type
i0.ɵɵDirectiveDeclaration<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
GrMessageScrollerContent
classexport 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>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrMessageScrollerContent, "[grMessageScrollerContent]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerContent, never>storeany- Name
consumerProps- Kind
- property
- Type
any- Requirement
- required
- Name
elementRef- Kind
- property
- Type
any- Requirement
- required
- Name
listeners- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵdir- Kind
- property
- Type
i0.ɵɵDirectiveDeclaration<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
GrMessageScrollerItem
classexport 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>;}consumerPropsanyelementRefanyitemIdimport("@angular/core").InputSignal<string>listenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrMessageScrollerItem, "[grMessageScrollerItem]", never, { "itemId": { "alias": "itemId"; "required": true; "isSignal": true; }; "scrollAnchor": { "alias": "scrollAnchor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerItem, never>registeredKeyanyscrollAnchorimport("@angular/core").InputSignal<boolean>storeany- 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
GrMessageScrollerRoot
classexport 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>;}autoScrollimport("@angular/core").InputSignal<boolean | undefined>busyimport("@angular/core").InputSignal<boolean | undefined>defaultScrollPositionimport("@angular/core").InputSignal<import("@grassroot/ui-machines/message-scroller").MessageScrollerDefaultScrollPosition | undefined>elementanyinjectoranylabelimport("@angular/core").InputSignal<string | undefined>lastSyncedanylistenersanyngOnDestroy() => voidɵcmpi0.ɵɵ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>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerRoot, never>preserveScrollOnPrependimport("@angular/core").InputSignal<boolean | undefined>scrollableChangeimport("@angular/core").OutputEmitterRef<{
readonly start: boolean;
readonly end: boolean;
}>- 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
GrMessageScrollerSpacer
classexport 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>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrMessageScrollerSpacer, "[grMessageScrollerSpacer]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerSpacer, never>storeany- Name
consumerProps- Kind
- property
- Type
any- Requirement
- required
- Name
elementRef- Kind
- property
- Type
any- Requirement
- required
- Name
listeners- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵdir- Kind
- property
- Type
i0.ɵɵDirectiveDeclaration<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
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>;}consumerPropsanyelementRefanylistenersanyngOnDestroy() => voidɵdiri0.ɵɵDirectiveDeclaration<GrMessageScrollerViewport, "[grMessageScrollerViewport]", never, {}, {}, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrMessageScrollerViewport, never>storeany- Name
consumerProps- Kind
- property
- Type
any- Requirement
- required
- Name
elementRef- Kind
- property
- Type
any- Requirement
- required
- Name
listeners- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵdir- Kind
- property
- Type
i0.ɵɵDirectiveDeclaration<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
MESSAGE_SCROLLER_HOST
valueexport declare const MESSAGE_SCROLLER_HOST: InjectionToken<Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>>;export declare const MESSAGE_SCROLLER_SCHEDULER: InjectionToken<Scheduler>;MESSAGE_SCROLLER_STORE
valueexport declare const MESSAGE_SCROLLER_STORE: InjectionToken<MessageScrollerStore>;MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
MessageScrollerStore
interfaceexport 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;}connectorMessageScrollerApicontrollerMessageScrollerController | undefinedgetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicestart() => voidstop() => voidsync(input: MessageScrollerInput) => voidversionWritableSignal<number>- 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
provideMessageScrollerStore
functionexport declare function provideMessageScrollerStore(): Provider;returnProvider- Name
return- Kind
- return value
- Type
Provider- Requirement
- n/a
@grassroot/ui-headless-svelte/message-scroller
Svelte adapter
createMessageScroller
functionexport declare function createMessageScroller(inputGetter: () => MessageScrollerInput, options?: UseMessageScrollerOptions): UseMessageScrollerResult;inputGetter() => MessageScrollerInputoptionsUseMessageScrollerOptionsreturnUseMessageScrollerResult- 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
MessageScrollerButton
valueexport declare const MessageScrollerButton: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
MessageScrollerContent
valueexport declare const MessageScrollerContent: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
MessageScrollerContextValue
interfaceexport interface MessageScrollerContextValue { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly version: () => number; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServiceversion() => number- 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
MessageScrollerItem
valueexport declare const MessageScrollerItem: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
MessageScrollerRoot
valueexport declare const MessageScrollerRoot: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
MessageScrollerSpacer
valueexport declare const MessageScrollerSpacer: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
MessageScrollerViewport
valueexport declare const MessageScrollerViewport: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
splitProps
functionSplit the core prop bag, then apply Svelte-specific style/event handling.
export declare function splitProps(props: PartProps): SplitProps;propsPartPropsreturnSplitProps- Name
props- Kind
- parameter
- Type
PartProps- Requirement
- required
- Name
return- Kind
- return value
- Type
SplitProps- Requirement
- n/a
useMessageScrollerContext
functionexport declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;partNamestringreturnMessageScrollerContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
MessageScrollerContextValue- Requirement
- n/a
UseMessageScrollerOptions
interfaceexport interface UseMessageScrollerOptions extends MessageScrollerControllerOptions { readonly scheduler?: Scheduler; readonly host?: Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>;}hostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>schedulerScheduler- Name
host- Kind
- property
- Type
Partial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>- Requirement
- optional
- Name
scheduler- Kind
- property
- Type
Scheduler- Requirement
- optional
UseMessageScrollerResult
interfaceexport interface UseMessageScrollerResult { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly version: () => number; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServiceversion() => number- 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
functionexport declare function wireEvents(node: Element, params: { events: Record<string, EventListener>; ref?: (node: Element | null) => void;}): { update(next: typeof params): void; destroy(): void;};nodeElementparams{
events: Record<string, EventListener>;
ref?: (node: Element | null) => void;
}return{
update(next: typeof params): void;
destroy(): void;
}- 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
MessageScrollerButton
functionexport declare function MessageScrollerButton(props: MessageScrollerButtonProps): JSX.Element;propsMessageScrollerButtonPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerButtonProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerButtonProps
interfaceexport interface MessageScrollerButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
MessageScrollerContent
functionexport declare function MessageScrollerContent(props: MessageScrollerContentProps): JSX.Element;propsMessageScrollerContentPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerContentProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerContentProps
interfaceexport interface MessageScrollerContentProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
MessageScrollerContext
valueexport declare const MessageScrollerContext: import("solid-js").Context<MessageScrollerContextValue | undefined>;MessageScrollerContextValue
interfaceexport interface MessageScrollerContextValue { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly snapshot: Accessor<MessageScrollerSnapshot>; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicesnapshotAccessor<MessageScrollerSnapshot>- 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
MessageScrollerItem
functionexport declare function MessageScrollerItem(props: MessageScrollerItemProps): JSX.Element;propsMessageScrollerItemPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerItemProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerItemProps
interfaceexport interface MessageScrollerItemProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp; readonly id: string; readonly scrollAnchor?: boolean;}asAsPropidstringscrollAnchorboolean- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
- Name
id- Kind
- property
- Type
string- Requirement
- required
- Name
scrollAnchor- Kind
- property
- Type
boolean- Requirement
- optional
MessageScrollerRoot
functionexport declare function MessageScrollerRoot(props: MessageScrollerRootProps): JSX.Element;propsMessageScrollerRootPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerRootProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerRootProps
interfaceexport 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"];}asAsPropautoScrollMessageScrollerInput["autoScroll"]busybooleandefaultScrollPositionMessageScrollerInput["defaultScrollPosition"]hostUseMessageScrollerOptions["host"]labelstringonScrollableChangeUseMessageScrollerOptions["onScrollableChange"]preserveScrollOnPrependMessageScrollerInput["preserveScrollOnPrepend"]schedulerUseMessageScrollerOptions["scheduler"]- 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
MessageScrollerScrollOptions
interfaceinterface MessageScrollerScrollOptions { align?: MessageScrollerScrollAlign; behavior?: ScrollBehavior | "instant"; scrollMargin?: number;}alignMessageScrollerScrollAlignbehaviorScrollBehavior | "instant"scrollMarginnumber- 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
MessageScrollerSpacer
functionexport declare function MessageScrollerSpacer(props: MessageScrollerSpacerProps): JSX.Element;propsMessageScrollerSpacerPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerSpacerProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerSpacerProps
interfaceexport interface MessageScrollerSpacerProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
MessageScrollerViewport
functionexport declare function MessageScrollerViewport(props: MessageScrollerViewportProps): JSX.Element;propsMessageScrollerViewportPropsreturnJSX.Element- Name
props- Kind
- parameter
- Type
MessageScrollerViewportProps- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
MessageScrollerViewportProps
interfaceexport interface MessageScrollerViewportProps extends JSX.HTMLAttributes<HTMLDivElement> { readonly as?: AsProp;}asAsProp- Name
as- Kind
- property
- Type
AsProp- Requirement
- optional
useMessageScroller
functionexport declare function useMessageScroller(input: Accessor<MessageScrollerInput>, options?: UseMessageScrollerOptions): UseMessageScrollerResult;inputAccessor<MessageScrollerInput>optionsUseMessageScrollerOptionsreturnUseMessageScrollerResult- 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
useMessageScrollerContext
functionexport declare function useMessageScrollerContext(partName: string): MessageScrollerContextValue;partNamestringreturnMessageScrollerContextValue- Name
partName- Kind
- parameter
- Type
string- Requirement
- required
- Name
return- Kind
- return value
- Type
MessageScrollerContextValue- Requirement
- n/a
UseMessageScrollerOptions
interfaceexport 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">>;}busybooleanhostPartial<Omit<MessageScrollerControllerHost, "getRoot" | "getViewport" | "getContent">>labelstringschedulerScheduler- 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
UseMessageScrollerResult
interfaceexport interface UseMessageScrollerResult { readonly service: MessageScrollerService; readonly connector: MessageScrollerApi; readonly scope: PartScope; readonly snapshot: Accessor<MessageScrollerSnapshot>; readonly getController: () => MessageScrollerController | undefined;}connectorMessageScrollerApigetController() => MessageScrollerController | undefinedscopePartScopeserviceMessageScrollerServicesnapshotAccessor<MessageScrollerSnapshot>- 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