Data EntryDmduskmoonimplemented4 demos

DmSearch

DmSearch collects table filters across text, choice, date, and custom fields.

Import@duskmoon-dev/components/dm-search
4API sections
28documented props
2behavior scenarios
Key API
itemsonSearchextrafastFilterItemdefaultCollapsedhideCollapseBtn

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

StylesheetImport @duskmoon-dev/components/styles.css once in the app or docs shell.
StateStart with default props for static examples, then switch to controlled props when state must be shared.
ThemeThe preview inherits the active DuskMoon data-theme value from the docs layout.

Features

DuskMoon workflow wrapper

Wraps lower-level primitives into a higher-level DuskMoon-prefixed workflow API.

Application defaults

Examples show the defaults and composition points expected by internal DuskMoon app screens.

Primary API surface

DmSearch is most often configured through `items`, `onSearch`, `extra`, `fastFilterItem`.

Covered behavior

Submits values and toggles collapsed fields

Feature Demos

Feature demos are authored for the component page, then supplemented with behavior scenarios from the component test coverage.

Preview

Basic usage

authored

Import the component stylesheet and DmSearch from its package subpath, then render it with the core props.

Source
import "@duskmoon-dev/components/styles.css";
import { DmSearch } from "@duskmoon-dev/components/dm-search";

export function Example() {
  return (<DmSearch
  items={[{
    key: "name",
    title: "Name",
    dataIndex: "name",
    search: { type: "input" }
  }]}
  onSearch={(values) => console.log(values)}
/>);
}
Preview

Submits values and toggles collapsed fields

test-backed

DmSearch scenario from the component test coverage: submits values and toggles collapsed fields.

Source
import "@duskmoon-dev/components/styles.css";
import { DmSearch } from "@duskmoon-dev/components/dm-search";

export function DmSearchSubmitsValuesAndTogglesDemo() {
  return (<DmSearch
  items={[{
    key: "name",
    title: "Name",
    dataIndex: "name",
    search: { type: "input" }
  }]}
  onSearch={(values) => console.log(values)}
/>);
}
Preview

Honors searchParams and imperative reset

test-backed

DmSearch scenario from the component test coverage: honors searchparams and imperative reset.

Source
import "@duskmoon-dev/components/styles.css";
import { DmSearch } from "@duskmoon-dev/components/dm-search";

export function DmSearchHonorsSearchParamsAndImperativeDemo() {
  return (<DmSearch
  items={[{
    key: "name",
    title: "Name",
    dataIndex: "name",
    search: { type: "input" }
  }]}
  onSearch={(values) => console.log(values)}
/>);
}
Preview
Sunshine Theme
Moonlight Theme

Theme aware

authored

Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.

Source
<div data-theme="sunshine">
  <DmSearch
  items={[{
    key: "name",
    title: "Name",
    dataIndex: "name",
    search: { type: "input" }
  }]}
  onSearch={(values) => console.log(values)}
/>
</div>

<div data-theme="moonlight">
  <DmSearch
  items={[{
    key: "name",
    title: "Name",
    dataIndex: "name",
    search: { type: "input" }
  }]}
  onSearch={(values) => console.log(values)}
/>
</div>

API

The API reference below lists every parsed exported type or interface for DmSearch. Start with `items`, `onSearch`, `extra`, `fastFilterItem` for common usage.

Types: packages/components/src/components/dm-search/DmSearch.types.tsScenarios: packages/components/src/components/dm-search/DmSearch.test.tsx
DmSearchPropsinterface extends RefAttributes<DmSearchRef>
PropTypeRequiredDescription
itemsDmSearchItem[]Noitems configures DmSearch.
onSearch(values: Record<string, unknown>) => voidNoonSearch configures DmSearch.
extraReactNodeNoextra configures DmSearch.
fastFilterItemDmSearchItemNofastFilterItem configures DmSearch.
defaultCollapsedbooleanNodefaultCollapsed configures DmSearch.
hideCollapseBtnbooleanNohideCollapseBtn configures DmSearch.
compactbooleanNocompact configures DmSearch.
searchParamsRecord<string, unknown>NosearchParams configures DmSearch.
loadingbooleanNoloading configures DmSearch.
enableDefaultPlaceHolderbooleanNoenableDefaultPlaceHolder configures DmSearch.
classNamestringNoclassName configures DmSearch.
inputPropsPartial<InputProps>NoinputProps configures DmSearch.
selectPropsPartial<SelectProps>NoselectProps configures DmSearch.
datePickerPropsPartial<DatePickerProps & RangePickerProps>NodatePickerProps configures DmSearch.
DmSearchRefinterface
PropTypeRequiredDescription
onReset() => voidYesonReset configures DmSearch.
DmSearchIteminterface
PropTypeRequiredDescription
keystringYeskey configures DmSearch.
titleReactNodeYestitle configures DmSearch.
dataIndexstringYesdataIndex configures DmSearch.
search{Yessearch configures DmSearch.
typeDmSearchItemTypeYestype configures DmSearch.
extraPropsRecord<string, unknown>NoextraProps configures DmSearch.
formProps{NoformProps configures DmSearch.
initialValueunknownNoinitialValue configures DmSearch.
rulesunknown[]Norules configures DmSearch.
render(Norender configures DmSearch.
valueunknown,Yesvalue configures DmSearch.
setValue(value: unknown) => void,YessetValue configures DmSearch.
itemDmSearchItem,Yesitem configures DmSearch.
DmSearchItemTypetype
| "input" | "input-number" | "select" | "radio" | "checkbox" | "date" | "dateRange" | "custom"