DocsAPI referenceHeadlesstheme-menu

theme-menu 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/theme-menu

Core connector and vanilla API

26 exports
View source packages/ui-headless/core/src/theme-menu/index.ts

Non-modal layer activation copied from DropdownMenu's seam. Escape and outside pointerdown are owned by the layer, not by the connector's parts.

DeclarationView source
activateThemeMenuLayerts
declare function activateThemeMenuLayer(service: ThemeMenuService, scope: PartScope, doc: Document): () => void;
Name
Kind
Type
Requirement
service
parameter
ThemeMenuService
required
scope
parameter
PartScope
required
doc
parameter
Document
required
return
return value
() => void
n/a
Name
service
Kind
parameter
Type
ThemeMenuService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
doc
Kind
parameter
Type
Document
Requirement
required
Name
return
Kind
return value
Type
() => void
Requirement
n/a

connectThemeMenu

function
DeclarationView source
connectThemeMenuts
declare function connectThemeMenu(service: ThemeMenuService, scope: PartScope, options?: ThemeMenuConnectOptions): ThemeMenuApi;
Name
Kind
Type
Requirement
service
parameter
ThemeMenuService
required
scope
parameter
PartScope
required
options
parameter
ThemeMenuConnectOptions
optional
return
return value
ThemeMenuApi
n/a
Name
service
Kind
parameter
Type
ThemeMenuService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
ThemeMenuConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
ThemeMenuApi
Requirement
n/a

mountThemeMenu

function
DeclarationView source
mountThemeMenuts
declare function mountThemeMenu(container: HTMLElement, options: MountThemeMenuOptions): ThemeMenuMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountThemeMenuOptions
required
return
return value
ThemeMenuMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountThemeMenuOptions
Requirement
required
Name
return
Kind
return value
Type
ThemeMenuMount
Requirement
n/a
DeclarationView source
MountThemeMenuOptionsts
interface MountThemeMenuOptions extends ThemeMenuInput {
readonly align?: "start" | "end";
readonly onOpenChange?: (detail: {
open: boolean;
reason: ThemeMenuChangeReason;
}) => void;
readonly onThemeChange?: (detail: {
theme: string;
}) => void;
readonly scheduler?: Scheduler;
readonly renderTrigger?: (button: HTMLElement) => void;
readonly renderItem?: (button: HTMLElement, item: ThemeMenuItem) => void;
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
onOpenChange
property
(detail: { open: boolean; reason: ThemeMenuChangeReason; }) => void
optional
onThemeChange
property
(detail: { theme: string; }) => void
optional
renderItem
property
(button: HTMLElement, item: ThemeMenuItem) => void
optional
renderTrigger
property
(button: HTMLElement) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: { open: boolean; reason: ThemeMenuChangeReason; }) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: { theme: string; }) => void
Requirement
optional
Name
renderItem
Kind
property
Type
(button: HTMLElement, item: ThemeMenuItem) => void
Requirement
optional
Name
renderTrigger
Kind
property
Type
(button: HTMLElement) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

Resolves machine commands. Reserved scheduler commands are intercepted before this function by `createScheduledEventRunner`.

DeclarationView source
runThemeMenuCommandts
declare function runThemeMenuCommand(command: ThemeMenuCommand, _scope: PartScope, environment?: ThemeMenuCommandEnvironment): void;
Name
Kind
Type
Requirement
command
parameter
ThemeMenuCommand
required
_scope
parameter
PartScope
required
environment
parameter
ThemeMenuCommandEnvironment
optional
return
return value
void
n/a
Name
command
Kind
parameter
Type
ThemeMenuCommand
Requirement
required
Name
_scope
Kind
parameter
Type
PartScope
Requirement
required
Name
environment
Kind
parameter
Type
ThemeMenuCommandEnvironment
Requirement
optional
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
themeMenuAnatomyts
export declare const themeMenuAnatomy: {
readonly scope: "theme-menu";
readonly parts: readonly ["trigger", "positioner", "content", "item"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["trigger", "positioner", "content", "item"]
required
scope
property
"theme-menu"
required
Name
parts
Kind
property
Type
readonly ["trigger", "positioner", "content", "item"]
Requirement
required
Name
scope
Kind
property
Type
"theme-menu"
Requirement
required

ThemeMenuApi

interface
DeclarationView source
ThemeMenuApits
interface ThemeMenuApi {
triggerProps(): PartProps;
positionerProps(): PartProps;
contentProps(): PartProps;
itemProps(item: ThemeMenuItem): PartProps;
readonly open: boolean;
}
Name
Kind
Type
Requirement
contentProps
method
() => PartProps
required
itemProps
method
(item: ThemeMenuItem) => PartProps
required
open
property
boolean
required
positionerProps
method
() => PartProps
required
triggerProps
method
() => PartProps
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
itemProps
Kind
method
Type
(item: ThemeMenuItem) => PartProps
Requirement
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
positionerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
triggerProps
Kind
method
Type
() => PartProps
Requirement
required
DeclarationView source
ThemeMenuChangeDetailts
interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuChangeReasonts
type ThemeMenuChangeReason = ThemeMenuOpenReason | ThemeMenuCloseReason;
DeclarationView source
ThemeMenuCloseReasonts
type ThemeMenuCloseReason = "escape" | "outside-click" | "select" | "programmatic";
DeclarationView source
ThemeMenuCommandts
type ThemeMenuCommand = (CommandObject & {
readonly type: "OPEN_CHANGE_REQUEST";
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}) | (CommandObject & {
readonly type: "THEME_CHANGE_REQUEST";
readonly theme: string;
readonly storageKey: string;
readonly reason: "select";
}) | ScheduleCommand<ThemeMenuEvent> | CancelCommand;
DeclarationView source
ThemeMenuCommandEnvironmentts
interface ThemeMenuCommandEnvironment {
readonly document?: Document;
readonly storage?: Storage;
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
}
Name
Kind
Type
Requirement
document
property
Document
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
storage
property
Storage
optional
Name
document
Kind
property
Type
Document
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
storage
Kind
property
Type
Storage
Requirement
optional
DeclarationView source
ThemeMenuConnectOptionsts
interface ThemeMenuConnectOptions {
readonly align?: "start" | "end";
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
DeclarationView source
ThemeMenuContextts
type ThemeMenuContext = MenuContext & {
readonly theme: string;
};
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuEventts
type ThemeMenuEvent = {
readonly type: "TOGGLE";
readonly reason: "trigger";
} | {
readonly type: "OPEN";
readonly reason: ThemeMenuOpenReason;
readonly highlight?: "first" | "last";
} | {
readonly type: "CLOSE";
readonly reason: ThemeMenuCloseReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HIGHLIGHT";
readonly index: number;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "SELECT";
} | {
readonly type: "TYPEAHEAD";
readonly char: string;
} | {
readonly type: "SYNC_THEME";
readonly theme: string;
};
DeclarationView source
ThemeMenuInputts
type ThemeMenuInput = {
readonly open?: boolean;
readonly defaultOpen?: boolean;
readonly items: readonly ThemeMenuItem[];
readonly theme?: string;
/** Required uncontrolled seed when no current theme is supplied. */
readonly defaultTheme: string;
/** Required key copied into the persistence command. */
readonly storageKey: string;
readonly typeaheadTimeoutMs?: number;
};
Name
Kind
Type
Requirement
Description
defaultOpen
property
boolean
optional
defaultTheme
property
string
required
Required uncontrolled seed when no current theme is supplied.
items
property
readonly ThemeMenuItem[]
required
open
property
boolean
optional
storageKey
property
string
required
Required key copied into the persistence command.
theme
property
string
optional
typeaheadTimeoutMs
property
number
optional
Name
defaultOpen
Kind
property
Type
boolean
Requirement
optional
Description
Name
defaultTheme
Kind
property
Type
string
Requirement
required
Description
Required uncontrolled seed when no current theme is supplied.
Name
items
Kind
property
Type
readonly ThemeMenuItem[]
Requirement
required
Description
Name
open
Kind
property
Type
boolean
Requirement
optional
Description
Name
storageKey
Kind
property
Type
string
Requirement
required
Description
Required key copied into the persistence command.
Name
theme
Kind
property
Type
string
Requirement
optional
Description
Name
typeaheadTimeoutMs
Kind
property
Type
number
Requirement
optional
Description

ThemeMenuItem

interface
DeclarationView source
ThemeMenuItemts
interface ThemeMenuItem {
readonly id: string;
readonly value: string;
readonly disabled?: boolean;
readonly textValue?: string;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
required
textValue
property
string
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
textValue
Kind
property
Type
string
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
themeMenuMachinets
export declare const themeMenuMachine: ThemeMenuMachine;

ThemeMenuMount

interface
DeclarationView source
ThemeMenuMountts
interface ThemeMenuMount {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly root: HTMLElement;
readonly trigger: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
ThemeMenuService
required
trigger
property
HTMLElement
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
trigger
Kind
property
Type
HTMLElement
Requirement
required
DeclarationView source
ThemeMenuOpenChangeDetailts
interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required
DeclarationView source
ThemeMenuOpenReasonts
type ThemeMenuOpenReason = "trigger" | "programmatic";
DeclarationView source
ThemeMenuPartts
type ThemeMenuPart = (typeof themeMenuAnatomy.parts)[number];
DeclarationView source
themeMenuSelectorsts
export declare const themeMenuSelectors: {
open: (snapshot: ThemeMenuSnapshot) => boolean;
highlightedIndex: (snapshot: ThemeMenuSnapshot) => number;
typeaheadBuffer: (snapshot: ThemeMenuSnapshot) => string;
theme: (snapshot: ThemeMenuSnapshot) => string;
};
Name
Kind
Type
Requirement
highlightedIndex
property
(snapshot: ThemeMenuSnapshot) => number
required
open
property
(snapshot: ThemeMenuSnapshot) => boolean
required
theme
property
(snapshot: ThemeMenuSnapshot) => string
required
typeaheadBuffer
property
(snapshot: ThemeMenuSnapshot) => string
required
Name
highlightedIndex
Kind
property
Type
(snapshot: ThemeMenuSnapshot) => number
Requirement
required
Name
open
Kind
property
Type
(snapshot: ThemeMenuSnapshot) => boolean
Requirement
required
Name
theme
Kind
property
Type
(snapshot: ThemeMenuSnapshot) => string
Requirement
required
Name
typeaheadBuffer
Kind
property
Type
(snapshot: ThemeMenuSnapshot) => string
Requirement
required
DeclarationView source
ThemeMenuServicets
type ThemeMenuService = Service<ThemeMenuInput, ThemeMenuStateValue, ThemeMenuContext, ThemeMenuEvent, ThemeMenuCommand>;
DeclarationView source
ThemeMenuSnapshotts
type ThemeMenuSnapshot = Snapshot<ThemeMenuStateValue, ThemeMenuContext>;
DeclarationView source
ThemeMenuStateValuets
type ThemeMenuStateValue = "open" | "closed";

Framework adapters

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

React example follows below.

React imports

@grassroot/ui-headless-react/theme-menuts
import { Content, Item, Positioner, Root, ThemeMenu, Trigger } from "@grassroot/ui-headless-react/theme-menu";

Vue imports

@grassroot/ui-headless-vue/theme-menuts
<script setup lang="ts">
import { ThemeMenuContent, ThemeMenuItem, ThemeMenuPositioner, ThemeMenuRoot, ThemeMenuTrigger } from "@grassroot/ui-headless-vue/theme-menu";
</script>

Angular imports

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

Svelte imports

@grassroot/ui-headless-svelte/theme-menuts
<script lang="ts">
import { ThemeMenuContent, ThemeMenuItem, ThemeMenuPositioner, ThemeMenuRoot, ThemeMenuTrigger } from "@grassroot/ui-headless-svelte/theme-menu";
</script>

Solid imports

@grassroot/ui-headless-solid/theme-menuts
import { ThemeMenuContent, ThemeMenuItem, ThemeMenuPositioner, ThemeMenuRoot, ThemeMenuTrigger } from "@grassroot/ui-headless-solid/theme-menu";

@grassroot/ui-headless-react/theme-menu

React adapter

20 exports
View source packages/ui-headless/react/src/theme-menu/index.ts

Content

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

Positioner

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

Root

function
DeclarationView source
Rootts
declare function Root(props: ThemeMenuRootProps): import("react").JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuRootProps
required
return
return value
import("react").JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuRootProps
Requirement
required
Name
return
Kind
return value
Type
import("react").JSX.Element
Requirement
n/a

ThemeMenu

value
DeclarationView source
ThemeMenuts
export declare const ThemeMenu: {
Root: typeof Root;
Trigger: import("react").ForwardRefExoticComponent<ThemeMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
Positioner: import("react").ForwardRefExoticComponent<ThemeMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
Content: import("react").ForwardRefExoticComponent<ThemeMenuContentProps & import("react").RefAttributes<HTMLDivElement>>;
Item: import("react").ForwardRefExoticComponent<ThemeMenuItemProps & import("react").RefAttributes<HTMLButtonElement>>;
};
Name
Kind
Type
Requirement
Content
property
import("react").ForwardRefExoticComponent<ThemeMenuContentProps & import("react").RefAttributes<HTMLDivElement>>
required
Item
property
import("react").ForwardRefExoticComponent<ThemeMenuItemProps & import("react").RefAttributes<HTMLButtonElement>>
required
Positioner
property
import("react").ForwardRefExoticComponent<ThemeMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
typeof Root
required
Trigger
property
import("react").ForwardRefExoticComponent<ThemeMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
required
Name
Content
Kind
property
Type
import("react").ForwardRefExoticComponent<ThemeMenuContentProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<ThemeMenuItemProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
Name
Positioner
Kind
property
Type
import("react").ForwardRefExoticComponent<ThemeMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
typeof Root
Requirement
required
Name
Trigger
Kind
property
Type
import("react").ForwardRefExoticComponent<ThemeMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
DeclarationView source
ThemeMenuChangeDetailts
interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuContentPropsts
interface ThemeMenuContentProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
ThemeMenuContextts
export declare const ThemeMenuContext: import("react").Context<ThemeMenuContextValue | 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
ThemeMenuContextValuets
interface ThemeMenuContextValue {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required

ThemeMenuItemProps

interface
DeclarationView source
ThemeMenuItemPropsts
interface ThemeMenuItemProps extends ComponentPropsWithoutRef<"button"> {
readonly asChild?: boolean;
readonly item: ThemeMenuItem;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
item
property
ThemeMenuItem
required
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
item
Kind
property
Type
ThemeMenuItem
Requirement
required
DeclarationView source
ThemeMenuOpenChangeDetailts
interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required
DeclarationView source
ThemeMenuPositionerPropsts
interface ThemeMenuPositionerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional

ThemeMenuRootProps

interface
DeclarationView source
ThemeMenuRootPropsts
interface ThemeMenuRootProps {
readonly open?: ThemeMenuInput["open"];
readonly defaultOpen?: ThemeMenuInput["defaultOpen"];
readonly items: ThemeMenuInput["items"];
readonly theme?: ThemeMenuInput["theme"];
readonly defaultTheme: ThemeMenuInput["defaultTheme"];
readonly storageKey: ThemeMenuInput["storageKey"];
readonly typeaheadTimeoutMs?: ThemeMenuInput["typeaheadTimeoutMs"];
readonly align?: UseThemeMenuOptions["align"];
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly scheduler?: UseThemeMenuOptions["scheduler"];
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
align
property
UseThemeMenuOptions["align"]
optional
children
property
ReactNode
optional
defaultOpen
property
ThemeMenuInput["defaultOpen"]
optional
defaultTheme
property
ThemeMenuInput["defaultTheme"]
required
items
property
ThemeMenuInput["items"]
required
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
open
property
ThemeMenuInput["open"]
optional
scheduler
property
UseThemeMenuOptions["scheduler"]
optional
storageKey
property
ThemeMenuInput["storageKey"]
required
theme
property
ThemeMenuInput["theme"]
optional
typeaheadTimeoutMs
property
ThemeMenuInput["typeaheadTimeoutMs"]
optional
Name
align
Kind
property
Type
UseThemeMenuOptions["align"]
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
defaultOpen
Kind
property
Type
ThemeMenuInput["defaultOpen"]
Requirement
optional
Name
defaultTheme
Kind
property
Type
ThemeMenuInput["defaultTheme"]
Requirement
required
Name
items
Kind
property
Type
ThemeMenuInput["items"]
Requirement
required
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
open
Kind
property
Type
ThemeMenuInput["open"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseThemeMenuOptions["scheduler"]
Requirement
optional
Name
storageKey
Kind
property
Type
ThemeMenuInput["storageKey"]
Requirement
required
Name
theme
Kind
property
Type
ThemeMenuInput["theme"]
Requirement
optional
Name
typeaheadTimeoutMs
Kind
property
Type
ThemeMenuInput["typeaheadTimeoutMs"]
Requirement
optional
DeclarationView source
ThemeMenuTriggerPropsts
interface ThemeMenuTriggerProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional

Trigger

value
DeclarationView source
Triggerts
export declare const Trigger: import("react").ForwardRefExoticComponent<ThemeMenuTriggerProps & 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

Subscribes a component to a service's committed-snapshot version.

DeclarationView source
useServiceVersionts
declare function useServiceVersion<S extends Service<any, any, any, any, any, any>>(service: S): ReturnType<S["getSnapshot"]>;
Name
Kind
Type
Requirement
service
parameter
S
required
return
return value
ReturnType<S["getSnapshot"]>
n/a
Name
service
Kind
parameter
Type
S
Requirement
required
Name
return
Kind
return value
Type
ReturnType<S["getSnapshot"]>
Requirement
n/a

useThemeMenu

function
DeclarationView source
useThemeMenuts
declare function useThemeMenu(input: ThemeMenuInput, options?: UseThemeMenuOptions): UseThemeMenuResult;
Name
Kind
Type
Requirement
input
parameter
ThemeMenuInput
required
options
parameter
UseThemeMenuOptions
optional
return
return value
UseThemeMenuResult
n/a
Name
input
Kind
parameter
Type
ThemeMenuInput
Requirement
required
Name
options
Kind
parameter
Type
UseThemeMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseThemeMenuResult
Requirement
n/a
DeclarationView source
useThemeMenuContextts
declare function useThemeMenuContext(partName: string): ThemeMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ThemeMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ThemeMenuContextValue
Requirement
n/a
DeclarationView source
UseThemeMenuOptionsts
interface UseThemeMenuOptions {
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly align?: "start" | "end";
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

UseThemeMenuResult

interface
DeclarationView source
UseThemeMenuResultts
interface UseThemeMenuResult {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly snapshot: ThemeMenuSnapshot;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
snapshot
property
ThemeMenuSnapshot
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ThemeMenuSnapshot
Requirement
required

@grassroot/ui-headless-vue/theme-menu

Vue adapter

13 exports
View source packages/ui-headless/vue/src/theme-menu/index.ts
DeclarationView source
ThemeMenuChangeDetailts
interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuContentts
export declare const ThemeMenuContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, 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
ThemeMenuContextKeyts
export declare const ThemeMenuContextKey: InjectionKey<ThemeMenuContextValue>;
DeclarationView source
ThemeMenuContextValuets
interface ThemeMenuContextValue {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<ThemeMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
snapshot
property
ShallowRef<ThemeMenuSnapshot>
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<ThemeMenuSnapshot>
Requirement
required
DeclarationView source
ThemeMenuItemts
export declare const ThemeMenuItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: PropType<ThemeMenuItem$1>;
required: true;
};
}>, () => 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;
};
item: {
type: PropType<ThemeMenuItem$1>;
required: true;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ThemeMenuOpenChangeDetailts
interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required
DeclarationView source
ThemeMenuPositionerts
export declare const ThemeMenuPositioner: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, 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
ThemeMenuRootts
export declare const ThemeMenuRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
open: {
type: PropType<ThemeMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: PropType<ThemeMenuInput["defaultOpen"]>;
default: undefined;
};
items: {
type: PropType<ThemeMenuInput["items"]>;
required: true;
};
theme: {
type: PropType<ThemeMenuInput["theme"]>;
default: undefined;
};
defaultTheme: {
type: PropType<ThemeMenuInput["defaultTheme"]>;
required: true;
};
storageKey: {
type: PropType<ThemeMenuInput["storageKey"]>;
required: true;
};
typeaheadTimeoutMs: {
type: PropType<ThemeMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
align: {
type: PropType<UseThemeMenuOptions["align"]>;
default: undefined;
};
scheduler: {
type: PropType<UseThemeMenuOptions["scheduler"]>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
openChange: (_detail: ThemeMenuOpenChangeDetail) => true;
themeChange: (_detail: ThemeMenuChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
open: {
type: PropType<ThemeMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: PropType<ThemeMenuInput["defaultOpen"]>;
default: undefined;
};
items: {
type: PropType<ThemeMenuInput["items"]>;
required: true;
};
theme: {
type: PropType<ThemeMenuInput["theme"]>;
default: undefined;
};
defaultTheme: {
type: PropType<ThemeMenuInput["defaultTheme"]>;
required: true;
};
storageKey: {
type: PropType<ThemeMenuInput["storageKey"]>;
required: true;
};
typeaheadTimeoutMs: {
type: PropType<ThemeMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
align: {
type: PropType<UseThemeMenuOptions["align"]>;
default: undefined;
};
scheduler: {
type: PropType<UseThemeMenuOptions["scheduler"]>;
default: undefined;
};
}>> & Readonly<{
onOpenChange?: ((_detail: ThemeMenuOpenChangeDetail) => any) | undefined;
onThemeChange?: ((_detail: ThemeMenuChangeDetail) => any) | undefined;
}>, {
open: boolean | undefined;
defaultOpen: boolean | undefined;
theme: string | undefined;
typeaheadTimeoutMs: number | undefined;
align: "end" | "start" | undefined;
scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ThemeMenuTriggerts
export declare const ThemeMenuTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, 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>;

useThemeMenu

function
DeclarationView source
useThemeMenuts
declare function useThemeMenu(input: ThemeMenuInput | (() => ThemeMenuInput), options?: UseThemeMenuOptions): UseThemeMenuResult;
Name
Kind
Type
Requirement
input
parameter
ThemeMenuInput | (() => ThemeMenuInput)
required
options
parameter
UseThemeMenuOptions
optional
return
return value
UseThemeMenuResult
n/a
Name
input
Kind
parameter
Type
ThemeMenuInput | (() => ThemeMenuInput)
Requirement
required
Name
options
Kind
parameter
Type
UseThemeMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseThemeMenuResult
Requirement
n/a
DeclarationView source
useThemeMenuContextts
declare function useThemeMenuContext(partName: string): ThemeMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ThemeMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ThemeMenuContextValue
Requirement
n/a
DeclarationView source
UseThemeMenuOptionsts
interface UseThemeMenuOptions {
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly align?: "start" | "end";
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

UseThemeMenuResult

interface
DeclarationView source
UseThemeMenuResultts
interface UseThemeMenuResult {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<ThemeMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
snapshot
property
ShallowRef<ThemeMenuSnapshot>
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<ThemeMenuSnapshot>
Requirement
required

@grassroot/ui-headless-angular/theme-menu

Angular adapter

13 exports
View source packages/ui-headless/angular/src/theme-menu/index.ts
DeclarationView source
createThemeMenuStorets
export declare function createThemeMenuStore(initialInput: ThemeMenuInput, options?: CreateThemeMenuStoreOptions): ThemeMenuStore;
Name
Kind
Type
Requirement
initialInput
parameter
ThemeMenuInput
required
options
parameter
CreateThemeMenuStoreOptions
optional
return
return value
ThemeMenuStore
n/a
Name
initialInput
Kind
parameter
Type
ThemeMenuInput
Requirement
required
Name
options
Kind
parameter
Type
CreateThemeMenuStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
ThemeMenuStore
Requirement
n/a
DeclarationView source
CreateThemeMenuStoreOptionsts
export interface CreateThemeMenuStoreOptions {
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly onCommit?: () => void;
readonly align?: "start" | "end" | (() => "start" | "end" | undefined);
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
align
property
"start" | "end" | (() => "start" | "end" | undefined)
optional
onCommit
property
() => void
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end" | (() => "start" | "end" | undefined)
Requirement
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
GR_THEME_MENU_DECLARATIONSts
export declare const GR_THEME_MENU_DECLARATIONS: readonly [typeof ThemeMenuRoot, typeof GrThemeMenuTrigger, typeof GrThemeMenuOpen, typeof GrThemeMenuPositioner, typeof GrThemeMenuContent, typeof GrThemeMenuItem];
DeclarationView source
GrThemeMenuContentts
export declare class GrThemeMenuContent implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuContent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuContent, "[grThemeMenuContent]", 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<GrThemeMenuContent, "[grThemeMenuContent]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuContent, 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<GrThemeMenuContent, "[grThemeMenuContent]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuContent, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrThemeMenuItemts
export declare class GrThemeMenuItem implements OnDestroy {
readonly item: import("@angular/core").InputSignal<ThemeMenuItem>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
private registeredKey;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuItem, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuItem, "[grThemeMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
item
property
import("@angular/core").InputSignal<ThemeMenuItem>
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrThemeMenuItem, "[grThemeMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuItem, never>
required
registeredKey
property
any
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
item
Kind
property
Type
import("@angular/core").InputSignal<ThemeMenuItem>
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<GrThemeMenuItem, "[grThemeMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuItem, never>
Requirement
required
Name
registeredKey
Kind
property
Type
any
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrThemeMenuOpents
export declare class GrThemeMenuOpen implements OnDestroy {
private readonly store;
private readonly templateRef;
private readonly viewContainerRef;
private hasView;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuOpen, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuOpen, "[grThemeMenuOpen]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
hasView
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrThemeMenuOpen, "[grThemeMenuOpen]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuOpen, never>
required
store
property
any
required
templateRef
property
any
required
viewContainerRef
property
any
required
Name
hasView
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrThemeMenuOpen, "[grThemeMenuOpen]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuOpen, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
Name
templateRef
Kind
property
Type
any
Requirement
required
Name
viewContainerRef
Kind
property
Type
any
Requirement
required
DeclarationView source
GrThemeMenuPositionerts
export declare class GrThemeMenuPositioner implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuPositioner, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuPositioner, "[grThemeMenuPositioner]", 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<GrThemeMenuPositioner, "[grThemeMenuPositioner]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuPositioner, 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<GrThemeMenuPositioner, "[grThemeMenuPositioner]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuPositioner, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrThemeMenuRootts
export declare class GrThemeMenuRoot implements OnDestroy {
readonly open: import("@angular/core").InputSignal<boolean | undefined>;
readonly defaultOpen: import("@angular/core").InputSignal<boolean | undefined>;
readonly items: import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/theme-menu").ThemeMenuItem[]>;
readonly theme: import("@angular/core").InputSignal<string | undefined>;
readonly defaultTheme: import("@angular/core").InputSignal<string>;
readonly storageKey: import("@angular/core").InputSignal<string>;
readonly typeaheadTimeoutMs: import("@angular/core").InputSignal<number | undefined>;
readonly align: import("@angular/core").InputSignal<"start" | "end" | undefined>;
readonly openChange: import("@angular/core").OutputEmitterRef<ThemeMenuOpenChangeDetail>;
readonly themeChange: import("@angular/core").OutputEmitterRef<ThemeMenuChangeDetail>;
private readonly injector;
private lastSynced;
private releaseManagers;
readonly store: ThemeMenuStore;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuRoot, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuRoot, "[grThemeMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultTheme": { "alias": "defaultTheme"; "required": true; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": true; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "themeChange": "themeChange"; }, never, never, true, never>;
}
Name
Kind
Type
Requirement
align
property
import("@angular/core").InputSignal<"start" | "end" | undefined>
required
defaultOpen
property
import("@angular/core").InputSignal<boolean | undefined>
required
defaultTheme
property
import("@angular/core").InputSignal<string>
required
injector
property
any
required
items
property
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/theme-menu").ThemeMenuItem[]>
required
lastSynced
property
any
required
ngOnDestroy
method
() => void
required
open
property
import("@angular/core").InputSignal<boolean | undefined>
required
openChange
property
import("@angular/core").OutputEmitterRef<ThemeMenuOpenChangeDetail>
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrThemeMenuRoot, "[grThemeMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultTheme": { "alias": "defaultTheme"; "required": true; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": true; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "themeChange": "themeChange"; }, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuRoot, never>
required
releaseManagers
property
any
required
storageKey
property
import("@angular/core").InputSignal<string>
required
store
property
ThemeMenuStore
required
Name
align
Kind
property
Type
import("@angular/core").InputSignal<"start" | "end" | undefined>
Requirement
required
Name
defaultOpen
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
defaultTheme
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Name
injector
Kind
property
Type
any
Requirement
required
Name
items
Kind
property
Type
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/theme-menu").ThemeMenuItem[]>
Requirement
required
Name
lastSynced
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
open
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
openChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<ThemeMenuOpenChangeDetail>
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrThemeMenuRoot, "[grThemeMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultTheme": { "alias": "defaultTheme"; "required": true; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": true; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "themeChange": "themeChange"; }, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuRoot, never>
Requirement
required
Name
releaseManagers
Kind
property
Type
any
Requirement
required
Name
storageKey
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Name
store
Kind
property
Type
ThemeMenuStore
Requirement
required
Name
theme
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Name
themeChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<ThemeMenuChangeDetail>
Requirement
required
Name
typeaheadTimeoutMs
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
DeclarationView source
GrThemeMenuTriggerts
export declare class GrThemeMenuTrigger implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrThemeMenuTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrThemeMenuTrigger, "[grThemeMenuTrigger]", 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<GrThemeMenuTrigger, "[grThemeMenuTrigger]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrThemeMenuTrigger, 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<GrThemeMenuTrigger, "[grThemeMenuTrigger]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrThemeMenuTrigger, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
THEME_MENU_STOREts
export declare const THEME_MENU_STORE: InjectionToken<ThemeMenuStore>;
DeclarationView source
ThemeMenuChangeDetailts
export interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuOpenChangeDetailts
export interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required

ThemeMenuStore

interface
DeclarationView source
ThemeMenuStorets
export interface ThemeMenuStore {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly version: WritableSignal<number>;
start(): void;
stop(): void;
sync(input: ThemeMenuInput): void;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
start
method
() => void
required
stop
method
() => void
required
sync
method
(input: ThemeMenuInput) => void
required
version
property
WritableSignal<number>
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
start
Kind
method
Type
() => void
Requirement
required
Name
stop
Kind
method
Type
() => void
Requirement
required
Name
sync
Kind
method
Type
(input: ThemeMenuInput) => void
Requirement
required
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required

@grassroot/ui-headless-svelte/theme-menu

Svelte adapter

13 exports
View source packages/ui-headless/svelte/src/theme-menu/index.ts

createThemeMenu

function
DeclarationView source
createThemeMenuts
export declare function createThemeMenu(inputGetter: () => ThemeMenuInput, options?: UseThemeMenuOptions): UseThemeMenuResult;
Name
Kind
Type
Requirement
inputGetter
parameter
() => ThemeMenuInput
required
options
parameter
UseThemeMenuOptions
optional
return
return value
UseThemeMenuResult
n/a
Name
inputGetter
Kind
parameter
Type
() => ThemeMenuInput
Requirement
required
Name
options
Kind
parameter
Type
UseThemeMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseThemeMenuResult
Requirement
n/a
DeclarationView source
ThemeMenuChangeDetailts
export interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuContentts
export declare const ThemeMenuContent: 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
ThemeMenuContextValuets
export interface ThemeMenuContextValue {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
version
property
() => number
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required
DeclarationView source
ThemeMenuItemts
export declare const ThemeMenuItem: 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

ThemeMenuItemModel

interface
DeclarationView source
ThemeMenuItemModelts
interface ThemeMenuItem {
readonly id: string;
readonly value: string;
readonly disabled?: boolean;
readonly textValue?: string;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
required
textValue
property
string
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
textValue
Kind
property
Type
string
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
ThemeMenuOpenChangeDetailts
export interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required
DeclarationView source
ThemeMenuPositionerts
export declare const ThemeMenuPositioner: 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
ThemeMenuRootts
export declare const ThemeMenuRoot: 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
ThemeMenuTriggerts
export declare const ThemeMenuTrigger: 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
useThemeMenuContextts
export declare function useThemeMenuContext(partName: string): ThemeMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ThemeMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ThemeMenuContextValue
Requirement
n/a
DeclarationView source
UseThemeMenuOptionsts
export interface UseThemeMenuOptions {
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly align?: "start" | "end";
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

UseThemeMenuResult

interface
DeclarationView source
UseThemeMenuResultts
export interface UseThemeMenuResult {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
version
property
() => number
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required

@grassroot/ui-headless-solid/theme-menu

Solid adapter

18 exports
View source packages/ui-headless/solid/src/theme-menu/index.ts
DeclarationView source
ThemeMenuChangeDetailts
export interface ThemeMenuChangeDetail {
readonly theme: string;
}
Name
Kind
Type
Requirement
theme
property
string
required
Name
theme
Kind
property
Type
string
Requirement
required

ThemeMenuContent

function
DeclarationView source
ThemeMenuContentts
export declare function ThemeMenuContent(props: ThemeMenuContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ThemeMenuContentPropsts
export interface ThemeMenuContentProps 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
ThemeMenuContextts
export declare const ThemeMenuContext: import("solid-js").Context<ThemeMenuContextValue | undefined>;
DeclarationView source
ThemeMenuContextValuets
export interface ThemeMenuContextValue {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly snapshot: Accessor<ThemeMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
snapshot
property
Accessor<ThemeMenuSnapshot>
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<ThemeMenuSnapshot>
Requirement
required

ThemeMenuItem

function
DeclarationView source
ThemeMenuItemts
export declare function ThemeMenuItem(props: ThemeMenuItemProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuItemProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuItemProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

ThemeMenuItemProps

interface
DeclarationView source
ThemeMenuItemPropsts
export interface ThemeMenuItemProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
readonly as?: AsProp;
readonly item: ThemeMenuItem;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
item
property
ThemeMenuItem
required
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
item
Kind
property
Type
ThemeMenuItem
Requirement
required
DeclarationView source
ThemeMenuOpenChangeDetailts
export interface ThemeMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ThemeMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ThemeMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ThemeMenuChangeReason
Requirement
required
DeclarationView source
ThemeMenuPositionerts
export declare function ThemeMenuPositioner(props: ThemeMenuPositionerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuPositionerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuPositionerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ThemeMenuPositionerPropsts
export interface ThemeMenuPositionerProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

ThemeMenuRoot

function
DeclarationView source
ThemeMenuRootts
export declare function ThemeMenuRoot(props: ThemeMenuRootProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuRootProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuRootProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

ThemeMenuRootProps

interface
DeclarationView source
ThemeMenuRootPropsts
export interface ThemeMenuRootProps {
readonly open?: ThemeMenuInput["open"];
readonly defaultOpen?: ThemeMenuInput["defaultOpen"];
readonly items: ThemeMenuInput["items"];
readonly theme?: ThemeMenuInput["theme"];
readonly defaultTheme: ThemeMenuInput["defaultTheme"];
readonly storageKey: ThemeMenuInput["storageKey"];
readonly typeaheadTimeoutMs?: ThemeMenuInput["typeaheadTimeoutMs"];
readonly align?: UseThemeMenuOptions["align"];
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly scheduler?: UseThemeMenuOptions["scheduler"];
readonly children?: JSX.Element;
}
Name
Kind
Type
Requirement
align
property
UseThemeMenuOptions["align"]
optional
children
property
JSX.Element
optional
defaultOpen
property
ThemeMenuInput["defaultOpen"]
optional
defaultTheme
property
ThemeMenuInput["defaultTheme"]
required
items
property
ThemeMenuInput["items"]
required
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
open
property
ThemeMenuInput["open"]
optional
scheduler
property
UseThemeMenuOptions["scheduler"]
optional
storageKey
property
ThemeMenuInput["storageKey"]
required
theme
property
ThemeMenuInput["theme"]
optional
typeaheadTimeoutMs
property
ThemeMenuInput["typeaheadTimeoutMs"]
optional
Name
align
Kind
property
Type
UseThemeMenuOptions["align"]
Requirement
optional
Name
children
Kind
property
Type
JSX.Element
Requirement
optional
Name
defaultOpen
Kind
property
Type
ThemeMenuInput["defaultOpen"]
Requirement
optional
Name
defaultTheme
Kind
property
Type
ThemeMenuInput["defaultTheme"]
Requirement
required
Name
items
Kind
property
Type
ThemeMenuInput["items"]
Requirement
required
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
open
Kind
property
Type
ThemeMenuInput["open"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseThemeMenuOptions["scheduler"]
Requirement
optional
Name
storageKey
Kind
property
Type
ThemeMenuInput["storageKey"]
Requirement
required
Name
theme
Kind
property
Type
ThemeMenuInput["theme"]
Requirement
optional
Name
typeaheadTimeoutMs
Kind
property
Type
ThemeMenuInput["typeaheadTimeoutMs"]
Requirement
optional

ThemeMenuTrigger

function
DeclarationView source
ThemeMenuTriggerts
export declare function ThemeMenuTrigger(props: ThemeMenuTriggerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ThemeMenuTriggerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ThemeMenuTriggerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ThemeMenuTriggerPropsts
export interface ThemeMenuTriggerProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

useThemeMenu

function
DeclarationView source
useThemeMenuts
export declare function useThemeMenu(input: Accessor<ThemeMenuInput>, options?: UseThemeMenuOptions): UseThemeMenuResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<ThemeMenuInput>
required
options
parameter
UseThemeMenuOptions
optional
return
return value
UseThemeMenuResult
n/a
Name
input
Kind
parameter
Type
Accessor<ThemeMenuInput>
Requirement
required
Name
options
Kind
parameter
Type
UseThemeMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseThemeMenuResult
Requirement
n/a
DeclarationView source
useThemeMenuContextts
export declare function useThemeMenuContext(partName: string): ThemeMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ThemeMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ThemeMenuContextValue
Requirement
n/a
DeclarationView source
UseThemeMenuOptionsts
export interface UseThemeMenuOptions {
readonly onOpenChange?: (detail: ThemeMenuOpenChangeDetail) => void;
readonly onThemeChange?: (detail: ThemeMenuChangeDetail) => void;
readonly align?: "start" | "end";
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
align
property
"start" | "end"
optional
onOpenChange
property
(detail: ThemeMenuOpenChangeDetail) => void
optional
onThemeChange
property
(detail: ThemeMenuChangeDetail) => void
optional
scheduler
property
Scheduler
optional
Name
align
Kind
property
Type
"start" | "end"
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ThemeMenuOpenChangeDetail) => void
Requirement
optional
Name
onThemeChange
Kind
property
Type
(detail: ThemeMenuChangeDetail) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional

UseThemeMenuResult

interface
DeclarationView source
UseThemeMenuResultts
export interface UseThemeMenuResult {
readonly service: ThemeMenuService;
readonly connector: ThemeMenuApi;
readonly scope: PartScope;
readonly snapshot: Accessor<ThemeMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ThemeMenuApi
required
scope
property
PartScope
required
service
property
ThemeMenuService
required
snapshot
property
Accessor<ThemeMenuSnapshot>
required
Name
connector
Kind
property
Type
ThemeMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ThemeMenuService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<ThemeMenuSnapshot>
Requirement
required