Giuliano Silvestro 3277b9eedc Add complete Calendar Elements Demo application
Built comprehensive demo app showcasing 24 calendar components:
- 4 Calendar Views (Month, Week, Day, Agenda)
- 4 Date/Time Pickers (Date, Time, Range, Duration)
- 8 Components (Event Card, Mini Calendar, Headers, Forms, etc.)
- 8 Widgets (Heatmap, Today, Badges, Indicators, etc.)

Features:
- Mist theme with animated gradient background and glassmorphism
- Apple theme with clean solid design
- Dark/light mode support
- Responsive design for all screen sizes
- Signal-based reactive state management
- Comprehensive mock data (13+ events, recurrence rules, time slots)
- Interactive navigation and event handling

Tech stack: Angular 19, TypeScript, SCSS, Luxon, RRule

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09 18:36:25 +10:00

Calendar Elements Demo

Interactive demo application showcasing the calendar-elements-ui library components.

Overview

This demo application provides comprehensive examples of all 24 calendar components including:

  • Calendar Views: Month, Week, Day, and Agenda views
  • Date/Time Pickers: Date, Time, Date Range, and Duration pickers
  • Components: Event Card, Mini Calendar, Time Slot Grid, Calendar Header, Recurring Event Form, Timezone Selector, Availability Panel, and Event Dialog
  • Widgets: Event Indicator Calendar, Calendar Heatmap, Upcoming Events, Today Widget, Week at a Glance, Month Carousel, Date Badge, and Calendar Mini Month

Features

24 Interactive Demos - Showcase of all calendar components 🎨 Dual Themes - Switch between Mist and Apple UI themes 🌓 Dark/Light Mode - Toggle between dark and light modes 📱 Responsive Design - Works on desktop, tablet, and mobile 🎯 Realistic Mock Data - Events, recurrence rules, time slots, and more 🧭 Easy Navigation - Sidebar navigation to explore all components

Prerequisites

  • Node.js 18 or higher
  • npm 9 or higher
  • Angular CLI 19 or higher

Installation

  1. Clone or navigate to the project directory:

    cd /Users/giulianosilvestro/Documents/Projects/calendar-elements-demo
    
  2. Install dependencies:

    npm install
    
  3. Ensure library dependencies are built:

    Build calendar-elements-ui (if not already built):

    cd ../calendar-elements-ui
    npm run build
    cd ../calendar-elements-demo
    

    Build base-ui (if not already built):

    cd ../sda-frontend/libs/base-ui
    npm run build
    cd ../../../calendar-elements-demo
    

Development

Start the development server:

npm start

The app will be available at http://localhost:4200

Build

Build the application for production:

npm run build

The build artifacts will be stored in the dist/ directory.

Project Structure

calendar-elements-demo/
├── src/
│   ├── app/
│   │   ├── mock-data/
│   │   │   └── calendar-data.ts       # Mock events, recurrence rules, time slots
│   │   ├── app.component.ts           # Root component with demo state
│   │   ├── app.component.html         # Main template with navigation
│   │   ├── app.component.scss         # Component styles
│   │   ├── app.config.ts              # App configuration
│   │   └── app.routes.ts              # Routing configuration
│   ├── index.html                     # HTML shell
│   ├── main.ts                        # Bootstrap entry point
│   └── styles.scss                    # Global styles with themes
├── angular.json                       # Angular CLI configuration
├── package.json                       # Dependencies
└── tsconfig.json                      # TypeScript configuration

Mock Data

The application includes comprehensive mock data for demonstrations:

  • 13+ Events: Various types including all-day, timed, and recurring events
  • 7 Recurrence Rules: Daily, weekly, monthly, and yearly patterns
  • 8 Time Slots: Hourly availability slots for today
  • Working Hours: Mon-Fri 9 AM - 5 PM configuration
  • 5 Date Range Presets: Quick selections (today, this week, this month, etc.)
  • 8 Timezones: Major time zones from around the world
  • 365 Days of Activity: Heat map data for the entire year

Features by View

Calendar Views

  • Month View: Full calendar month with events, multi-day event support
  • Week View: 7-day week with hourly time slots and working hours
  • Day View: Single day schedule with detailed time slots
  • Agenda View: List-style view of upcoming events

Pickers

  • Date Picker: Interactive calendar for date selection
  • Time Picker: Time selection with 12h/24h format support
  • Date Range Picker: Select start and end dates with presets
  • Duration Picker: Select duration in hours and minutes

Components

  • Event Card: Display event details in various styles
  • Mini Calendar: Compact month view for quick date selection
  • Time Slot Grid: Grid of available/unavailable time slots
  • Calendar Header: Navigation controls and view switching
  • Recurring Event Form: RRULE builder with frequency options
  • Timezone Selector: Dropdown for timezone selection
  • Availability Panel: Display and manage availability
  • Event Dialog: Full event creation/editing modal

Widgets

  • Event Indicator Calendar: Month view with event dots
  • Calendar Heatmap: GitHub-style activity visualization
  • Upcoming Events: List of next upcoming events
  • Today Widget: Current date with today's events
  • Week at a Glance: 7-day overview with event counts
  • Month Carousel: Horizontal scrollable month selector
  • Date Badge: Single date display with badge indicator
  • Calendar Mini Month: Compact month for date picking

Theme System

The demo supports two themes with dark/light mode:

Mist Theme

  • Modern glassmorphism design
  • Purple accent colors
  • Animated gradient background
  • Soft, blurred UI elements

Apple Theme

  • Clean, minimal Apple-inspired design
  • Blue accent colors
  • Crisp, sharp UI elements
  • High contrast for readability

Toggle between themes using the header controls.

Navigation

Use the sidebar to navigate between component demos:

  1. Calendar Views - Main calendar view components
  2. Date/Time Pickers - Selection and input components
  3. Components - Supporting calendar components
  4. Widgets - Small, focused calendar widgets

Technologies

  • Angular 19 - Latest Angular framework with signals
  • TypeScript - Type-safe development
  • SCSS - Advanced styling with variables
  • Luxon - Date/time manipulation
  • RRule - Recurrence rule handling
  • calendar-elements-ui - Calendar component library
  • base-ui - Base UI component library

Browser Support

  • Chrome/Edge (latest)
  • Firefox (latest)
  • Safari (latest)
  • Mobile browsers (iOS Safari, Chrome Mobile)

Contributing

This is a demo application for the calendar-elements-ui library. For component development and contributions, please refer to the main library repository.

License

MIT License - see the calendar-elements-ui library for details.

Support

For issues, questions, or contributions related to the calendar components, please refer to the calendar-elements-ui library documentation.


Built with ❤️ using Angular 19 and calendar-elements-ui

Description
Demo application for @sda/calendar-elements-ui
Readme 188 KiB
Languages
SCSS 45.3%
HTML 34.8%
TypeScript 19.9%