JSPM

@hss-m/calendar

1.0.7
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q40146F
  • License MIT

A premium, lightweight, fully customizable, and responsive Angular calendar library with support for Month, Week, and Day views.

Package Exports

  • @hss-m/calendar
  • @hss-m/calendar/package.json

Readme

Brainzo - Kids Learning App

Looking for a fun way for kids to learn?
Check out Brainzo.fun - The ultimate kids learning app for ages 4-15!
Quizzes • Puzzles • Alphabet Games • Number Activities • Offline Support


@hss-m/calendar

A lightweight, fully customizable, responsive, and Angular-native calendar library for Angular 17+.

🚀 Recent Updates

  • Multi-day Events: Full support for start and end dates.
  • Improved Views: Enhanced Week and Day views with sticky headers and better scroll performance.
  • Event Badges: New compact badge mode for Month view to avoid clutter.
  • Premium Themes: Refined Light and Dark mode variables for a high-end dashboard feel.

📦 Features

  • 📅 View Modes: High-performance Month, Week, and Day views.
  • 🎨 Templates: Use #dayCellTemplate and #eventTemplate for total UI control.
  • 🌓 Theming: Dark mode support via CSS variables.
  • Signals: Built using the latest Angular Signals for modern reactive state.
  • 📱 Responsive: Mobile-first design for a seamless cross-device experience.

🎪 Live Demo

Try the interactive demo: https://hawkersoftwares.github.io/hss-calendar/

🛠 Installation

npm install @hss-m/calendar

📖 Basic Usage

  1. Import the component:
import { HssCalendarComponent } from '@hss-m/calendar';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [HssCalendarComponent],
  template: `
    <hss-calendar 
      [events]="events" 
      [config]="config"
      (eventClicked)="onEventSelected($event)"
      (dateClicked)="onDateSelected($event)"
    ></hss-calendar>
  `
})
export class AppComponent {
  events = signal<HssCalendarEvent[]>([
    {
      id: 1,
      title: 'Project Launch',
      start: new Date('2026-01-27'),
      end: new Date('2026-01-28'),
      backgroundColor: '#1976d2'
    }
  ]);

  config = {
    dark: false,
    locale: 'en-US',
    showOnlyEventsCount: false // Set to true for badge mode
  };

  onEventSelected(event: HssCalendarEvent) {
    console.log('Selected:', event.title);
  }

  onDateSelected(date: Date) {
    console.log('Selected Date:', date);
  }
}

🎨 Advanced Customization

Theming

Override variables in your global.scss or styles.css:

:root {
  --hss-calendar-bg: #ffffff;
  --hss-calendar-border: #e2e8f0;
  --hss-calendar-today-text: #1976d2;
  /* Dark mode overrides */
  &[data-theme='dark'] {
    --hss-calendar-bg: #0f172a;
  }
}

Templates

<hss-calendar [events]="events">
  <ng-template #eventTemplate let-event>
    <div class="my-event-card">
      📍 {{ event.title }}
    </div>
  </ng-template>
</hss-calendar>

📋 API Reference

Inputs

Property Type Default Description
events HssCalendarEvent[] [] Array of event objects
view 'month' | 'week' | 'day' 'month' Current calendar view
config Partial<HssCalendarConfig> {} Settings (locale, dark, showOnlyEventsCount, etc.)

Outputs

Event Type Description
eventClicked EventEmitter<HssCalendarEvent> Emits when an event block is clicked
dateClicked EventEmitter<Date> Emits when a day cell is clicked
viewChanged EventEmitter<HssCalendarView> Emits when the user switches view mode

Developed by Hawker Team.