Componente

Calendar

Uma grade de mês inline para escolher datas. Seleciona um único dia, um intervalo ou vários dias, respeita min, max e datas desabilitadas, e oferece presets, legendas em dropdown, múltiplos meses e seletor de hora.

Único

July 2026
SuMoTuWeThFrSa

Selected: Mon Jul 13 2026

import { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';

import { HbCalendarImports, type HbCalendarValue } from '@herbst/ui';

@Component({
  selector: 'hb-demo-calendar-single',
  imports: [HbCalendarImports],
  template: `
    <div class="flex flex-col gap-2">
      <hb-calendar
        [hbValue]="date()"
        (hbValueChange)="date.set($event)"
        class="w-fit rounded-lg border border-border"
      />
      <p class="font-mono text-[12px] text-muted-foreground">Selected: {{ label() }}</p>
    </div>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoCalendarSingleComponent {
  protected readonly date = signal<HbCalendarValue>(new Date(2026, 6, 13));

  protected readonly label = computed(() => {
    const value = this.date();
    return value instanceof Date ? value.toDateString() : '—';
  });
}

Intervalo e dois meses

July 2026
SuMoTuWeThFrSa
August 2026
SuMoTuWeThFrSa

Múltiplo, min/max e desabilitados

July 2026
MoTuWeThFrSaSu

Presets, dropdowns e hora

SuMoTuWeThFrSa

Célula do dia customizada

October 2026
SuMoTuWeThFrSa

Dots mark days with an autumn walk planned.

Referência de API

hb-calendar

PropriedadeDescriçãoTipoPadrão
[(hbValue)] Valor selecionado: um Date, um intervalo { start, end }, um array de Dates ou null. HbCalendarValue null
[hbMode] Comportamento de seleção. 'single' | 'range' | 'multiple' 'single'
[hbDefaultDate] Mês exibido inicialmente quando não há valor. Date | null null
[hbMin] / [hbMax] Datas mínima e máxima selecionáveis. Date | null null
[hbDisabledDates] Uma lista de datas ou um predicado que desabilita dias. Date[] | ((date: Date) => boolean) []
[hbNumberOfMonths] Quantos meses renderizar lado a lado. number 1
[hbWeekStartsOn] Primeiro dia da semana (0 = domingo … 6 = sábado). 0 | 1 | 2 | 3 | 4 | 5 | 6 0
[hbCaption] Cabeçalho como rótulo estático ou dropdowns de mês/ano. 'label' | 'dropdowns' 'label'
[hbPresets] Presets rápidos: um rótulo e um valor (ou uma função que o retorna). HbCalendarPreset[] []
[hbShowTime] Adiciona um seletor de hora abaixo da grade. boolean false
[hbLocale] Locale do date-fns para nomes de mês e dias da semana. Locale | null null
[hbTimezone] Timezone IANA usado para calcular o dia atual. string | null null
[hbDisabled] Desabilita o calendário inteiro. boolean false
ng-template[hbCalendarDay] Substitui o conteúdo de cada célula de dia. Contexto: $implicit = date, mais selected, today, disabled, outside e inRange. template