DmToolbar
DmToolbar documents the DmToolbar export from duskmoon.
@duskmoon-dev/components/dm-toolbar Usage
When to use
- Use it in DuskMoon application screens that need a packaged, opinionated workflow component.
- Reach for the lower-level standard component when the screen needs custom composition.
Implementation notes
Features
Wraps lower-level primitives into a higher-level DuskMoon-prefixed workflow API.
Examples show the defaults and composition points expected by internal DuskMoon app screens.
DmToolbar is most often configured through `items`, `style`, `moreText`, `maxVisibleSecondaryItems`.
Renders secondary actions before primary actions
Feature Demos
Feature demos are authored for the component page, then supplemented with behavior scenarios from the component test coverage.
Basic usage
Import the component stylesheet and DmToolbar from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { DmToolbar } from "@duskmoon-dev/components/dm-toolbar";
export function Example() {
return (<DmToolbar
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>);
} Renders secondary actions before primary actions
test-backedDmToolbar scenario from the component test coverage: renders secondary actions before primary actions.
import "@duskmoon-dev/components/styles.css";
import { DmToolbar } from "@duskmoon-dev/components/dm-toolbar";
export function DmToolbarRendersSecondaryActionsBeforeDemo() {
return (<DmToolbar
// Renders secondary actions before primary actions
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>);
} Collapses older secondary actions into More overflow
test-backedDmToolbar scenario from the component test coverage: collapses older secondary actions into more overflow.
import "@duskmoon-dev/components/styles.css";
import { DmToolbar } from "@duskmoon-dev/components/dm-toolbar";
export function DmToolbarCollapsesOlderSecondaryActionsDemo() {
return (<DmToolbar
// Collapses older secondary actions into More overflow
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>);
} Supports custom more text and all-secondary overflow
test-backedDmToolbar scenario from the component test coverage: supports custom more text and all-secondary overflow.
import "@duskmoon-dev/components/styles.css";
import { DmToolbar } from "@duskmoon-dev/components/dm-toolbar";
export function DmToolbarSupportsCustomMoreTextDemo() {
return (<DmToolbar
// Supports custom more text and all-secondary overflow
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>);
} Renders item dropdown menus with local Dropdown primitive
test-backedDmToolbar scenario from the component test coverage: renders item dropdown menus with local dropdown primitive.
import "@duskmoon-dev/components/styles.css";
import { DmToolbar } from "@duskmoon-dev/components/dm-toolbar";
export function DmToolbarRendersItemDropdownMenusDemo() {
return (<DmToolbar
// Renders item dropdown menus with local Dropdown primitive
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<DmToolbar
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>
</div>
<div data-theme="moonlight">
<DmToolbar
items={[{ key: "main", label: "Main", title: "Main" }]}
title="DuskMoon"
>
DuskMoon Dm Toolbar
</DmToolbar>
</div> API
The API reference below lists every parsed exported type or interface for DmToolbar. Start with `items`, `style`, `moreText`, `maxVisibleSecondaryItems` for common usage.
packages/components/src/components/dm-toolbar/DmToolbar.types.ts
Scenarios: packages/components/src/components/dm-toolbar/DmToolbar.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
items | DmToolbarItem[] | No | items configures DmToolbar. |
className | string | No | className configures DmToolbar. |
style | CSSProperties | No | style configures DmToolbar. |
moreText | ReactNode | No | moreText configures DmToolbar. |
maxVisibleSecondaryItems | number | No | maxVisibleSecondaryItems configures DmToolbar. |
| Prop | Type | Required | Description |
|---|---|---|---|
key | string | number | No | key configures DmToolbar. |
title | ReactNode | Yes | title configures DmToolbar. |
type | DmToolbarItemType | No | type configures DmToolbar. |
htmlType | ButtonProps["type"] | No | htmlType configures DmToolbar. |
menu | DropdownMenu | No | menu configures DmToolbar. |
"primary" | "default"