dayflow-js/calendar
 Watch   
 Star   
 Fork   
21 days ago
calendar

v3.7.3

What's Changed

Released in this version: @dayflow/core, @dayflow/react, @dayflow/vue, @dayflow/svelte and @dayflow/angular 3.7.3 · @dayflow/plugin-drag 1.6.2 · @dayflow/plugin-sidebar 1.6.3 · @dayflow/ui-context-menu 1.2.1 · @dayflow/sync-core 1.1.2. All other packages are unchanged.

New Features & Enhancements

  • Grouped Calendar Selectors (@dayflow/core, @dayflow/plugin-sidebar):
    • Calendar pickers in the event detail panel, detail dialog and mobile drawer, the event context menu, and the sidebar's import and delete-calendar dialogs now group calendars under headers by their source (for example "Google Calendar" or "iCloud").
    • Calendars without a source are listed ungrouped, and the lists look the same as before when no calendar has one. The sidebar's dialogs list groups in the sidebar's own group order.
  • Theme-Aware Context Menus (@dayflow/core, @dayflow/ui-context-menu):
    • Context menus take their colors from the calendar theme tokens (--df-color-*, with --df-color-card for the surface) instead of a built-in palette, so custom theme colors now apply to them.
    • ContextMenu accepts a style prop, merged with its computed position.
    • Used on its own, the menu falls back to the light palette. Its built-in dark palette has been removed, so define the --df-color-* tokens to style it for dark mode.

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.7.2...v3.7.3

24 days ago
calendar

v3.7.2

What's Changed

New Features & Enhancements

  • Video Conference Integration (@dayflow/core):
    • Added native video conference support on calendar events via event.conference (EventConference), supporting Google Meet, Zoom, Microsoft Teams, Webex, Whereby, Jitsi, and custom meeting URLs.
  • Sidebar Group Management & Reordering (@dayflow/plugin-sidebar):
    • Added sidebar and group context-menu actions for creating, renaming, and deleting calendar groups.
  • Calendar Sync Video Meeting Support (@dayflow/google-sync & @dayflow/outlook-sync):
    • @dayflow/google-sync: Maps Google Calendar conferenceData (Google Meet entries, meeting codes, passcodes) and hangoutLink into DayFlow event.conference.
    • @dayflow/outlook-sync: Queries online meeting metadata from Microsoft Graph (isOnlineMeeting, onlineMeetingProvider, onlineMeeting, onlineMeetingUrl) and maps Teams/Skype meetings into event.conference.
  • Half-Hour Grid Lines (@dayflow/core):
    • Added showHalfHourLines configuration option to DayViewConfig and WeekViewConfig (createDayView, createWeekView) to display dashed divider lines at every half-hour interval.

Performance

  • AgendaView Rendering Optimizations (@dayflow/core):
    • Added WeakMap-based per-event range caching (agendaRangeCache) and coarse year/month pre-filtering to prevent redundant date calculations and accelerate rendering on large event collections.
    • Added event click and detail panel interaction support in AgendaView, with intelligent panel positioning and viewport boundary clamping.

Fixed

  • Time Axis Boundary Labels (@dayflow/core):
    • Fixed Day and Week view midnight and last-hour label calculation (LAST_HOUR % 24) to ensure consistent time-axis rendering across 12-hour and 24-hour formats.
    • Aligned secondary timezone labels in Day view with the primary time-axis.

image

image

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.7.1...v3.7.2

2026-09-01 08:49:59
calendar

v3.7.1

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.7.0...v3.7.1

2026-08-13 21:17:34
calendar

v3.7.0

New Features & Enhancements

Appointment Organiser

image

Booking

image

  • Appointment Schedule Plugin: Introduced the @dayflow-pro/appointment-schedule plugin for booking availability management and schedule windows. Includes comprehensive multi-language documentation (EN/ZH/JA) and interactive video demos.
  • Time Grid Background Layer APIs: Added time grid background layer slots and extension APIs (time-grid background & quick-create), allowing plugins to inject background availability layers, interactive deletion actions, and custom grid UI with accessibility support.
  • Native MouseEvent in Event Callbacks: Passed the native triggering MouseEvent to event callbacks (onEventClick, onEventContextMenu, etc.) and context menu slots for precise mouse coordinate and modifier key access.
  • Scheduling i18n: Added multi-language translation support for scheduling labels, appointment statuses, and time slot indicators.

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.6.0...v3.7.0

2026-05-03 16:25:41
calendar

v3.6.0

[3.6.0] - 2026-05-03

New Features & Enhancements

image

image

  • Agenda List View: Added a new createAgendaView factory for a scrollable agenda-style list layout. Events are grouped by day with configurable options including daysToShow, showEmptyDays, and timeFormat (12h/24h). Supports both timed and all-day events, multi-day event continuation indicators, and full Content Slot integration.
  • Grid Date Click Callbacks: Added gridDateClick and gridDateDoubleClick callbacks to Month and Week views, enabling click and double-click handlers on empty date/time grid cells.
  • Mobile Event Detail as Content Slot: Migrated the internal MobileEventDetailComponent to the Content Slot system, making the mobile event detail panel fully customizable via framework render props.
  • Keyboard Shortcuts Callbacks: Added lifecycle callbacks to the keyboard-shortcuts plugin (onKeyDown, onKeyUp, and per-action hooks) for programmatic integration and custom shortcut handling.
  • Sidebar onReorder Callback: Added an onReorder callback to the sidebar plugin, fired whenever the user drags calendars to reorder them in the list.

Fixed

  • Range Picker startOfWeek Prop: Added startOfWeek configuration to the range picker component so the calendar grid respects the locale or app-level week start setting.
  • useEventDetailPanel API: Moved useEventDetailPanel into useCalendarApp, making the event detail panel controls accessible from the same unified app hook across React, Vue, Angular, and Svelte.
  • Framework Adapter Rendering: Updated core rendering and framework-specific adapters (Vue, Angular, Svelte) to align with the Content Slot architecture introduced in v3.5.0.

Performance

  • View Rendering for Large Datasets: Significantly optimized event layout calculations across Month, Week, Day, and Year views for calendars with large numbers of events.
  • Plugin Bundle Size: Reduced bundle size for the drag, keyboard-shortcuts, localization, sidebar, and UI packages by streamlining rollup configurations.
  • Bundle Shrink & CSS Isolation: Reduced the core bundle footprint and eliminated residual CSS conflicts by refining the build pipeline and library import boundaries.

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.5.0...v3.6.0

2026-04-20 13:08:59
calendar

v3.5.0

New Features & Enhancements

  • Multi-calendar Events: Added native calendarIds support on events. A single event can now belong to multiple calendars, stays visible as long as any linked calendar is visible, and renders with DayFlow's built-in multi-color striped styling.

Image

Image

Fixed

  • Style Self-Containment: Completed the style refactor so DayFlow no longer depends on internal atomic CSS classes or host-side @source scanning. styles.css and styles.components.css are now self-contained distribution artifacts.
  • Host Style Isolation: Tightened df-* semantic styling contracts across core, UI packages, plugins, and dist CSS checks to reduce conflicts with UnoCSS, Tailwind, and other host styling systems.
  • Year / Day / Week View Polish: Refined several view-specific layout details, including year-view event rendering, day/week timezone labels, and overlay/token usage in complex UI surfaces.

Documentation

  • Added multi-calendar event documentation and showcase examples.
  • Refreshed the website live demo controls and interactive examples.
  • Updated setup and theme customization guidance to match the self-contained styling model and remove outdated @source-based integration steps.

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.4.0...v3.5.0

2026-04-06 09:14:02
calendar

v3.4.0

What's Changed

New Features & Enhancements

Mini calendar event dots style image Day/Week View secondary timezone support image

  • Global Calendar Time Zone: Added timeZone to useCalendarApp / CalendarAppConfig as the primary display and editing timezone for all views. Day, Week, Month, and Year views now share the same calendar timezone semantics.
  • Secondary Timeline Refinement: Kept secondaryTimeZone for Day and Week views as a dedicated secondary timeline display setting, independent from the calendar's primary timezone.
  • Mini Calendar Event Dots: Added richer mini calendar event dot support, including calendar-color-aware dots with up to four unique indicators per day.
  • Interactive Demo Controls: Updated the website interactive calendar controls to expose both the global timezone and the Day/Week secondary timezone with clearer guidance.

Fixed

  • Timezone Consistency Across Views:
    • Unified event projection in Day/Week/Month/Year so view filtering, layout, and visible dates stay aligned with the configured calendar timezone.
  • Canonical Callback Semantics:
    • Editing in a different calendar timezone now behaves: switching timezone only changes display, while onEventUpdate, onEventDrop, and onEventResize return canonical events after the edit is applied.
    • Aligned timed event creation flows such as quick create, context-menu paste, sidebar calendar drop, Month view create, and keyboard paste with app.timeZone.

Documentation

  • Updated timezone documentation in English, Chinese, and Japanese to describe:
    • the new app-level timeZone
    • Day/Week-only secondaryTimeZone
    • canonical callback semantics after drag/resize/edit operations
  • Refreshed the website interactive calendar help text and tooltips to match the new timezone model.

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.3.0...v3.4.0

2026-03-20 11:52:34
calendar

v3.3.0

New Features & Enhancements

  • Grid Year View: Added a new grid mode for createYearView, providing a compact month-grid layout with heatmap intensity colors for event density visualization.
  • @create-dayflow CLI: Introduced the npm create dayflow@latest scaffolding tool. Interactively configures a new project with framework selection (React, Vue, Angular, Svelte), TypeScript support, and Tailwind CSS integration.
  • renderSidebarHeader: Added a renderSidebarHeader render prop to the sidebar plugin, allowing full customization of the sidebar header area (e.g. user avatar, collapse toggle).

Fixed

  • Style Isolation: Fixed tailwind-components.css overriding host application styles. DayFlow's component CSS no longer emits Tailwind utility classes or leaks bare pseudo-class selectors (:focus-visible, :checked) to the host app.
  • bg-primary Pollution: Resolved context menu, sidebar merge menu, and calendar list items using the host application's --color-primary instead of DayFlow's own color variables. All interactive elements now use var(--df-color-*) directly.
  • Month View Scroll: Clicking on cross-month dates (previous month's trailing dates in the first row, next month's leading dates in the last row) no longer triggers unwanted month navigation.
  • Portal Color Scope: Added df-portal class to all createPortal root elements so portaled components (context menus, dialogs, drawers) correctly inherit DayFlow's color token scope.

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.2.0...v3.3.0

2026-02-28 15:15:06
calendar

Release v3.2.0

New Features & Enhancements

  • Drag & Drop Improvements:
    • Added onEventDrop and onEventResize callbacks to the drag plugin for better event handling.
    • Updated Month and Year View all-day event drag indicators for better visual feedback.
  • View Enhancements:
    • Added secondaryTimeZone label support for Day and Week Views.
    • Added timeFormat configuration for Day and Week Views.
    • Updated configuration options for monthView and yearView.
  • Developer Experience:
    • Introduced oxlint for faster linting and improved code quality.
    • Added pre-commit hooks and format:check scripts to ensure code consistency.
    • Migrated to pnpm workspace catalog for better dependency management.
    • Added .editorconfig and improved VSCode settings/extensions recommendations.

Performance

  • Scrolling: Optimized MonthView scrolling performance by memoizing scrollbar checks.

Fixed

  • Layout: Resolved eventLayout stacking issues and improved mobile WeekView layout.
  • Framework Support: Corrected ng-packagr configuration schema path for Angular.
  • Build & Packaging:
    • Fixed CSS export errors and website build issues.
    • Removed duplicate peerDependencies in package.json files.
    • Fixed Tailwind CSS path configurations.
  • UI/UX: Fixed an issue where the "+ more" click in the website had no reaction.
  • Documentation: Corrected README image paths and updated view documentation.

Style

  • Improved Day/Week View event resize pointer display.
  • Cleaned up Tailwind CSS class formatting.
  • Resolved various lint warnings reported by oxlint.

What's Changed

New Contributors

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.1.2...v3.2.0

2026-02-20 09:37:02
calendar

v3.1.0

Plugin Architecture & Decoupling

This release introduces a new plugin-based architecture, further reducing the core bundle size and providing greater flexibility. Core features have been extracted into independent, optional packages.

New Plugin Packages (v1.0.0)

  • @dayflow/plugin-drag: Handles all drag-and-drop interactions (move, resize, and create).
  • @dayflow/plugin-keyboard-shortcuts: Provides keyboard navigation and shortcuts support.
  • @dayflow/plugin-localization: Dedicated package for multi-language support and internationalization.
  • @dayflow/plugin-sidebar: Extracts the sidebar UI and logic into a standalone plugin.

New Features & Enhancements

  • Enhanced Visibility Control:
    • Added onVisibleRangeChange callback with a reason parameter (scroll vs. navigation).
    • Marked onVisibleMonthChange as deprecated in favor of the more flexible range change callback.
  • Improved API: Simplified framework wrappers by removing the sidebarConfig attribute (now handled via the sidebar plugin).
  • UI Refresh: Updated the view switching button styles for a more modern look and feel.

Fixed

  • Accessibility: Fixed an event scaling issue when using the keyboard Tab key for navigation.
  • Search: Improved search result location accuracy within the calendar views.
  • Documentation: Comprehensive updates to plugin documentation and multi-language guides.

Breaking Changes

  • Feature Extraction: Drag-and-drop, keyboard shortcuts, and the sidebar are no longer included in @dayflow/core by default. You must install and register the corresponding plugins to retain these features.
  • Sidebar Configuration: The sidebarConfig prop has been removed from framework adapters. Configuration is now passed directly to the @dayflow/plugin-sidebar during initialization.

What's Changed

New Contributors

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.0.0...v3.1.0