Components

Resource Scheduler Panel

Resource Scheduler Panel component.

Client Only

Installation

pnpm dlx @docyrus/cli add @docyrus/ui-resource-scheduler-panel
Required Packages(4 packages)
pnpm add date-fns @dnd-kit/core @dnd-kit/modifiers @tanstack/react-table
UI Primitives(5 components)
npx shadcn@latest add avatar badge button popover select

Usage

import {
  ResourceSchedulerPanel
} from "@docyrus/ui/components/resource-scheduler-panel";
import type {
  ResourceSchedulerPanelProps,
  SchedulerEvent,
  SchedulerResource,
  TimelinePreset,
  TimelinePresetConfig,
  TimeUnit,
  TimelineColumn,
  TimelineGroupHeader
} from "@docyrus/ui/components/resource-scheduler-panel";

<ResourceSchedulerPanel />

API Reference

PropTypeDefault
classNamestring—

Components

ComponentDescription
ResourceSchedulerPanelPublic export
ResourceSchedulerProviderInternal — resource-scheduler-context.tsx
ResourceSchedulerDraggableEventInternal — resource-scheduler-draggable-event.tsx
ResourceSchedulerEventBarInternal — resource-scheduler-event-bar.tsx
ResourceSchedulerEventPopoverInternal — resource-scheduler-event-popover.tsx
ResourceSchedulerEventRowInternal — resource-scheduler-event-row.tsx
ResourceSchedulerHeaderInternal — resource-scheduler-header.tsx
ResourceSchedulerResourceListInternal — resource-scheduler-resource-list.tsx
ResourceSchedulerTimelineHeaderInternal — resource-scheduler-timeline-header.tsx
ResourceSchedulerTimelineInternal — resource-scheduler-timeline.tsx
ResourceSchedulerTodayInternal — resource-scheduler-today.tsx

Type Exports

TypeDescription
ResourceSchedulerPanelProps—
SchedulerEvent—
SchedulerResource—
TimelinePreset—
TimelinePresetConfig—
TimeUnit—
TimelineColumn—
TimelineGroupHeader—

Type Reference

ResourceSchedulerPanelProps

FieldTypeDescription
resourcesArray<SchedulerResource>—
eventsArray<SchedulerEvent>—
presetsArray<TimelinePreset>—
defaultPresetIdstring—
startDateDate—
endDateDate—
resourceColumnsArray<ColumnDef<SchedulerResource>>—
onEventClick(event: SchedulerEvent) => void—
onEventMove(event: SchedulerEvent, newStart: Date, newEnd: Date, newResourceId?: string) => void—
onEventResize(event: SchedulerEvent, newStart: Date, newEnd: Date) => void—
onSlotClick(resourceId: string, date: Date) => void—
onDateRangeChange(start: Date, end: Date) => void—
onPresetChange(presetId: string) => void—
isLoadingboolean—
readOnlyboolean—
showTodayIndicatorboolean—
showResourceCountboolean—
heightnumber | 'auto'—
resourcePanelWidthnumber—
rowHeightnumber—
classNamestring—
localestring—

SchedulerEvent

FieldTypeDescription
idstring—
resourceIdstring—
titlestring—
startDateDate—
endDateDate—
colorstring—
variant'solid' | 'outlined' | 'subtle'—
iconReactNode—
descriptionstring—
locationstring—
metadataRecord<string, unknown>—

SchedulerResource

FieldTypeDescription
idstring—
namestring—
avatarstring—
subtitlestring—
groupstring—

TimelinePreset

FieldTypeDescription
unitWidthnumber—
interval{ unit: TimeUnit; format: string }—
groupsArray<{ unit: TimeUnit; format: string }>—

TimelinePresetConfig

FieldTypeDescription
unitWidthnumber—
interval{ unit: TimeUnit; format: string }—
groupsArray<{ unit: TimeUnit; format: string }>—

TimeUnit

"hour" | "day" | "week" | "month" | "year"

TimelineColumn

FieldTypeDescription
startDate—
endDate—
labelstring—
indexnumber—

TimelineGroupHeader

FieldTypeDescription
startDate—
endDate—
labelstring—
spanCountnumber—

On this page