timetide 1.0.3
timetide: ^1.0.3 copied to clipboard
A comprehensive Flutter scheduling calendar with 13 views, multi-resource scheduling, drag & drop, RRULE recurrence, and iCalendar support. Widget-layer only.
1.0.3 #
- Fix automated publishing with tag-based OIDC workflow.
1.0.2 #
- Fix automated publishing via GitHub Actions OIDC.
1.0.1 #
- Fix repository and issue tracker URLs in pubspec.yaml.
1.0.0 #
Initial stable release of timetide.
Views #
- 13 calendar views: day, week, work week, month, schedule, timeline day/week/work week/month, multi-week, year, resource day, resource week
TideResourceDayView— vertical time axis with side-by-side resource columns and avatar+name headersTideResourceWeekView— same layout with day sub-columns per resource and two-level headers- 2 new
TideViewenum values:resourceDay,resourceWeek - Shared time axis (
TideTimeAxis) and synchronized scrolling (TideScrollSync) across timeline views - Timeline views migrated to the shared
TideScrollSyncutility, reducing duplication - All-day event panels with collapsible headers
- Current time indicator
Core #
TideController— central state management withValueNotifiers for granular rebuildsTideDatasourceabstraction withTideInMemoryDatasourceandTideStreamDatasourceTideEvent,TideResource,TideTimeRegiondata models- Preset configurations via
TidePreset
Recurrence #
- RFC 5545 RRULE parser (
TideRRuleParser) and generator (TideRRuleGenerator) - Lazy occurrence engine (
TideOccurrenceEngine) usingsync*generators - Human-readable descriptions in English and German
- EXDATE and RDATE support
Interaction #
TideDragHandlerwired end-to-end into all 7 drag-capable views (day, week, work week, timeline day, timeline week, timeline work week, resource day, resource week)- Platform-adaptive drag: long-press on mobile, click-and-drag on desktop
- Cross-resource drag — dragging an event to a different resource column updates
resourceIdautomatically TideResizeHandler— event edge resize (drag start or end boundary) with snap-to-gridTideSnapEngine— configurable grid snapping for both drag and resizeTideConflictDetector— live overlap detection computed during drag, before the event is committedTideAutoScroll— edge-scrolling activates when the pointer approaches a viewport boundaryTideExternalDragScope— enables dragging events into the calendar from an external sidebar or widget treeTideTimeAxis— pixel-to-time and time-to-pixel conversion abstraction shared by all time-based views- Event and date selection with rubber-band
- Keyboard shortcuts and focus traversal
- Undo/redo with configurable history
Widgets #
TideCalendar— main entry-point widgetTideCalendarHeader— navigation and view switcherTideResourceHeader— resource display for timeline viewsTideContextMenu— design-agnostic overlay context menuTideTooltip— custom overlay tooltipTideRecurrenceEditor— visual RRULE builder with live previewTideScrollbar— custom painted scrollbarTideAdaptiveLayout— responsive breakpoint layout
Theme #
TideThemeDatawith 40+ visual propertiesTideThemeInheritedWidget for injectionlerp()support for animated theme transitions
Export/Import #
- iCalendar (
.ics) export and import - RFC 5545 compliant VEVENT generation
Localization #
- Built-in English and German translations
- Custom locale support via
TideLocalizations
Architecture #
- Widget-layer only — no Material or Cupertino imports
- Monolithic package with tree-shaking
- Custom RRULE parser — no external dependency