Repository navigation
Releases: ndlabdev/sv5ui-scheduler
Releases · ndlabdev/sv5ui-scheduler
Release list
v0.1.0
Added
- Scheduler: one component with month, week, day, year and agenda views.
bind:eventskeeps a plain array as the single source of truth; every change made through the UI is written back into it, and a change to any field of an event in the array, itsrecurrenceincluded, reaches the calendar.viewanddateare bindable. - Scheduler: saving through
onMutate. Changes show immediately, run in order per event and in parallel across events, and animate back withonErrorwhen a save fails.onConflictpickskeep-serverorkeep-localwhen the server answers with a different version, an id assigned by the server is adopted, a confirmed save survives a refetch ofeventsthat lands while it is in flight, and an answer that cannot be read rolls back like a rejection. - Scheduler:
sourceloads events for the visible range only. Covered ranges are not requested again, stale requests are aborted, a slow request shows a thin progress bar, andonLoadErrorreports failures. - Scheduler:
createPaneland bindabledraftopen your own form inside the calendar after a drag over empty slots or Enter on a focused slot;createsaves through the same pipeline as drag and drop.onSelectSlotandonEventClicklet an app open its own dialog instead. - Scheduler: event details with
detail="popover",detail="slideover"(a panel inside the calendar whose bodyeventPanelcan replace, withupdateandremovegoing through the save pipeline) ordetail={false};eventDetailadds content to both. Popover actions carry tooltips, and witheventPanelset the popover gains an Open details button. - Scheduler:
daysfor custom week lengths,weekStartsOn,hiddenDays,dayStartHouranddayEndHour,slotMinutesandslotHeight, ISO 8601weekNumbers,businessHoursandholidays. - Scheduler:
heightin pixels or any CSS length; without one the scheduler fills a bounded parent or grows with its content. - Scheduler: a layout for phones below
compactBreakpoint(640px of scheduler width): a one row toolbar with a view menu and short titles,compactDaysdays in the week view, month cells without week numbers and holiday names, details in a slide-over, and popovers kept inside the screen.SchedulerContext.compactexposes the switch to views. - Scheduler:
timeZoneaccepts any IANA zone and can change at runtime without a refetch. ISO strings withZor an offset, naive strings, date-only strings andZonedDateTimevalues are read; events that cannot be read are skipped with a development warning. The week and day views name the zone, and event details name it when it differs from the device zone. - Scheduler:
locale,hour12,dir="rtl"and label packs for ar, de, en, es, fr, it, ja, ko, nl, pt, ru, vi and zh through@sv5ui/scheduler/locales. Partiallabelsfall back to English. - Scheduler: recurring events with
freq,interval,byDay,count,untilandexDates, expanded for the visible range only. A series given as aZonedDateTimekeeps its zone, foruntilandexDateswritten as plain strings as well. Other RFC 5545 fields are accepted, reported once in development and ignored. - Scheduler:
calendarswith colours, bindablehiddenCalendarsandsearch, and afilterpredicate. - Scheduler:
sidebarwith a date navigator, search, calendar list and drag list, docked atsidebarSideor opened as a slide-over belowsidebarBreakpoint.sidebarOpenis bindable;sidebarHeader,sidebarFooteror asidebarsnippet customise it. - Scheduler: snippets for
event,cell,header,eventDetail,eventPanel,createPanel,empty,toolbarandtoolbarActions;toolbar={false}hides the toolbar. Theeventsnippet is used in every place an event is drawn, including the all-day row and the+Nlist, keeps the click behaviour of the default chip (onEventClickonce per opening click, the configureddetailand selection), and tells a move from a resize throughisDraggingandisResizing. Theheadersnippet also covers the day view title. - Scheduler: per instance extension points
views,layouts,interactionsandmiddleware, used by the built-in features as well. - Interactions: select, drag to create, move, resize from both ends and across days, drop a timed event on the all-day row, and move month events to another day keeping their time. Touch drags start after a short press so the page still scrolls.
creatableandeditableswitch creation and editing off, andeditable: falselocks a single event. - Interactions:
dragSourceturns any element into something that can be dropped on the grid to create an event. - Keyboard and screen readers: the grid is a single named tab stop with arrow, Home, End, Page Up, Page Down, Enter, Space, Escape and Delete keys; Space selects the event at the focused slot and cycles through overlapping ones. Delete on an event that may not be edited, a locked one or an occurrence of a series, announces why nothing happened. Moves, creations, deletions, rollbacks and conflicts are announced.
- DateNavigator, CalendarList, SearchBox, DragSourceList, EventChip: exported for layouts of your own, together with the five views. Each forwards HTML attributes to its root element.
- Package: the manifest now carries the description, license, author, homepage, repository and issue tracker, so the npm page describes the package and links back to the repository.
- Package:
@internationalized/dateis accepted in the same range as sv5ui asks for, so one copy serves both packages. - Theming:
@sv5ui/scheduler/theme.csstells Tailwind where the classes of the package live, so an app imports it next tosv5ui/theme.cssinstead of writing a path into its own stylesheet. - Theming: drawn with sv5ui theme tokens, including dark mode.
uislots per instance anddefineSchedulerConfigfor defaults across instances. Rendering on the server never toucheswindow.