Resource Selector

Resource selection dropdown

SaaSResource

Overview

ResourceSelector provides a dropdown-style selector for picking a resource from a list. It includes built-in search filtering, status badges per option, status-based filtering, clear selection, and keyboard navigation (Escape to close, click outside to dismiss). Supports both controlled and uncontrolled value modes.

Usage

import { ResourceSelector } from "@leanicon/web-builder-library/saas";

<ResourceSelector
  resources={[
    {
      id: "room-1",
      name: "Conference Room A",
      type: "meeting-room",
      status: "active",
      capacity: { min: 1, max: 10, unit: "people" },
    },
    {
      id: "room-2",
      name: "Conference Room B",
      type: "meeting-room",
      status: "active",
      capacity: { min: 1, max: 6, unit: "people" },
    },
    { id: "equip-1", name: "Projector HP-2000", type: "equipment", status: "maintenance" },
  ]}
  onChange={(id, resource) => console.log("Selected:", id, resource)}
/>;

Variants

Default

Default (Dark)

With Pre-selected Value

With Status Filter (Active Only)

Disabled

Loading

Custom Placeholder

Props

NameTypeDefaultRequiredDescription
resources(ResourceSummary | ResourceData)[]—YesAvailable resources
valuestring | null—NoCurrently selected resource ID (controlled)
defaultValuestring | null—NoDefault selected resource ID (uncontrolled)
disabledbooleanfalseNoWhether selector is disabled
loadingbooleanfalseNoWhether component is loading
placeholderstring—NoPlaceholder text
statusFilterResourceStatus[]—NoFilter to only show resources with certain statuses
labelsRecord<string, string>—NoOptional label overrides
classNamestring—NoCustom class name
onChange((resourceId: string | null, resource: ResourceSummary | ResourceData | null) => void)—NoCalled when selection changes