{"version":3,"file":"calendarHeader.mjs","names":[],"sources":["../../../../../../package/common/calendar/components/calendarHeader/calendarHeader.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement } from 'react';\nimport cx from 'classnames';\nimport { faChevronLeft, faChevronRight, faPlus } from '@fortawesome/free-solid-svg-icons';\n\nimport ActionIcon from 'components/common/actionIcon';\nimport Button, { ButtonSize } from 'components/common/button';\nimport OptionPicker from 'components/common/optionPicker';\nimport type { CalendarView } from '../../calendar.types';\nimport type { CalendarHeaderProps } from './calendarHeader.types';\n\nimport styles from './calendarHeader.module.pcss';\n\nfunction CalendarHeader({\n  title,\n  compact,\n  direction,\n  view,\n  views,\n  text,\n  onStep,\n  onToday,\n  onViewChange,\n  onCreate,\n  className,\n  style,\n}: CalendarHeaderProps): ReactElement {\n  return (\n    <div className={cx(styles.calendarHeader, compact && styles.calendarHeaderCompact, className)} style={style}>\n      {/* A live region, so paging is announced; its first content is not, as it was there on mount. */}\n      <div className={styles.calendarHeaderTitle} aria-live='polite'>\n        <span\n          key={title}\n          className={styles.calendarHeaderTitleText}\n          style={{ '--title-from': direction } as CSSProperties}\n        >\n          {title}\n        </span>\n      </div>\n      <div className={styles.calendarHeaderNav}>\n        <Button className={styles.calendarHeaderToday} size={ButtonSize.Small} onClick={onToday}>\n          {text.today}\n        </Button>\n        <ActionIcon icon={faChevronLeft} title={text.previous} aria-label={text.previous} onClick={() => onStep(-1)} />\n        <ActionIcon icon={faChevronRight} title={text.next} aria-label={text.next} onClick={() => onStep(1)} />\n      </div>\n      {views.length > 1 && (\n        <OptionPicker\n          className={styles.calendarHeaderViews}\n          aria-label={text.viewSwitcher}\n          value={view}\n          onChange={(key) => onViewChange(key as CalendarView)}\n          options={views.map((option) => ({ key: option, label: text[option] }))}\n        />\n      )}\n      {onCreate && (\n        <ActionIcon\n          icon={faPlus}\n          title={text.newEvent}\n          aria-label={text.newEvent}\n          onClick={(clickEvent) => onCreate(clickEvent.currentTarget)}\n        />\n      )}\n    </div>\n  );\n}\n\nexport default CalendarHeader;\n"],"mappings":"sbAYA,SAAS,EAAe,CACtB,QACA,UACA,YACA,OACA,QACA,OACA,SACA,UACA,eACA,WACA,YACA,SACoC,CACpC,OACE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,eAAgB,GAAW,EAAO,sBAAuB,CAAS,EAAU,QAAtG,SAAA,CAEE,EAAC,MAAD,CAAK,UAAW,EAAO,oBAAqB,YAAU,SACpD,SAAA,EAAC,OAAD,CAEE,UAAW,EAAO,wBAClB,MAAO,CAAE,eAAgB,CAAU,EAElC,SAAA,CACG,EALC,CAKD,CACH,CAAA,EACL,EAAC,MAAD,CAAK,UAAW,EAAO,kBAAvB,SAAA,CACE,EAAC,EAAD,CAAQ,UAAW,EAAO,oBAAqB,KAAM,EAAW,MAAO,QAAS,EAC7E,SAAA,EAAK,KACA,CAAA,EACR,EAAC,EAAD,CAAY,KAAM,EAAe,MAAO,EAAK,SAAU,aAAY,EAAK,SAAU,YAAe,EAAO,EAAE,CAAI,CAAA,EAC9G,EAAC,EAAD,CAAY,KAAM,EAAgB,MAAO,EAAK,KAAM,aAAY,EAAK,KAAM,YAAe,EAAO,CAAC,CAAI,CAAA,CACnG,IACJ,EAAM,OAAS,GACd,EAAC,EAAD,CACE,UAAW,EAAO,oBAClB,aAAY,EAAK,aACjB,MAAO,EACP,SAAW,GAAQ,EAAa,CAAmB,EACnD,QAAS,EAAM,IAAK,IAAY,CAAE,IAAK,EAAQ,MAAO,EAAK,EAAQ,EAAE,CACtE,CAAA,EAEF,GACC,EAAC,EAAD,CACE,KAAM,EACN,MAAO,EAAK,SACZ,aAAY,EAAK,SACjB,QAAU,GAAe,EAAS,EAAW,aAAa,CAC3D,CAAA,CAEA,GAET"}