@raqm/ui 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/NOTICE.md +28 -0
- package/README.md +126 -3
- package/combobox/README.md +17 -0
- package/fesm2022/raqm-ui-accordion.mjs +414 -0
- package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
- package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
- package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
- package/fesm2022/raqm-ui-alert.mjs +195 -0
- package/fesm2022/raqm-ui-alert.mjs.map +1 -0
- package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
- package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
- package/fesm2022/raqm-ui-attachment.mjs +435 -0
- package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
- package/fesm2022/raqm-ui-avatar.mjs +337 -0
- package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
- package/fesm2022/raqm-ui-badge.mjs +68 -0
- package/fesm2022/raqm-ui-badge.mjs.map +1 -0
- package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
- package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
- package/fesm2022/raqm-ui-button-group.mjs +138 -0
- package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-button.mjs +295 -0
- package/fesm2022/raqm-ui-button.mjs.map +1 -0
- package/fesm2022/raqm-ui-calendar.mjs +1394 -0
- package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
- package/fesm2022/raqm-ui-card.mjs +331 -0
- package/fesm2022/raqm-ui-card.mjs.map +1 -0
- package/fesm2022/raqm-ui-carousel.mjs +410 -0
- package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
- package/fesm2022/raqm-ui-checkbox.mjs +86 -0
- package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
- package/fesm2022/raqm-ui-collapsible.mjs +266 -0
- package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
- package/fesm2022/raqm-ui-combobox.mjs +1584 -0
- package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
- package/fesm2022/raqm-ui-command.mjs +1210 -0
- package/fesm2022/raqm-ui-command.mjs.map +1 -0
- package/fesm2022/raqm-ui-context-menu.mjs +723 -0
- package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-dialog.mjs +1214 -0
- package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
- package/fesm2022/raqm-ui-drawer.mjs +687 -0
- package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
- package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
- package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-empty.mjs +272 -0
- package/fesm2022/raqm-ui-empty.mjs.map +1 -0
- package/fesm2022/raqm-ui-field.mjs +517 -0
- package/fesm2022/raqm-ui-field.mjs.map +1 -0
- package/fesm2022/raqm-ui-hover-card.mjs +828 -0
- package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
- package/fesm2022/raqm-ui-input-group.mjs +270 -0
- package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-input-otp.mjs +788 -0
- package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
- package/fesm2022/raqm-ui-input.mjs +73 -0
- package/fesm2022/raqm-ui-input.mjs.map +1 -0
- package/fesm2022/raqm-ui-item.mjs +495 -0
- package/fesm2022/raqm-ui-item.mjs.map +1 -0
- package/fesm2022/raqm-ui-kbd.mjs +80 -0
- package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
- package/fesm2022/raqm-ui-label.mjs +44 -0
- package/fesm2022/raqm-ui-label.mjs.map +1 -0
- package/fesm2022/raqm-ui-menubar.mjs +536 -0
- package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
- package/fesm2022/raqm-ui-native-select.mjs +131 -0
- package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
- package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
- package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
- package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
- package/fesm2022/raqm-ui-pagination.mjs +440 -0
- package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
- package/fesm2022/raqm-ui-popover.mjs +1495 -0
- package/fesm2022/raqm-ui-popover.mjs.map +1 -0
- package/fesm2022/raqm-ui-progress.mjs +369 -0
- package/fesm2022/raqm-ui-progress.mjs.map +1 -0
- package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
- package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
- package/fesm2022/raqm-ui-radio-group.mjs +151 -0
- package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-resizable.mjs +439 -0
- package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
- package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
- package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
- package/fesm2022/raqm-ui-select.mjs +1073 -0
- package/fesm2022/raqm-ui-select.mjs.map +1 -0
- package/fesm2022/raqm-ui-separator.mjs +103 -0
- package/fesm2022/raqm-ui-separator.mjs.map +1 -0
- package/fesm2022/raqm-ui-sheet.mjs +411 -0
- package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
- package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
- package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
- package/fesm2022/raqm-ui-skeleton.mjs +50 -0
- package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
- package/fesm2022/raqm-ui-slider.mjs +609 -0
- package/fesm2022/raqm-ui-slider.mjs.map +1 -0
- package/fesm2022/raqm-ui-spinner.mjs +137 -0
- package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
- package/fesm2022/raqm-ui-switch.mjs +109 -0
- package/fesm2022/raqm-ui-switch.mjs.map +1 -0
- package/fesm2022/raqm-ui-table.mjs +271 -0
- package/fesm2022/raqm-ui-table.mjs.map +1 -0
- package/fesm2022/raqm-ui-tabs.mjs +536 -0
- package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
- package/fesm2022/raqm-ui-textarea.mjs +37 -0
- package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
- package/fesm2022/raqm-ui-toast.mjs +918 -0
- package/fesm2022/raqm-ui-toast.mjs.map +1 -0
- package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
- package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-toggle.mjs +158 -0
- package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
- package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
- package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
- package/fesm2022/raqm-ui.mjs +50 -0
- package/input-otp/README.md +12 -0
- package/package.json +275 -3
- package/styles/theme.css +4324 -0
- package/types/raqm-ui-accordion.d.ts +124 -0
- package/types/raqm-ui-alert-dialog.d.ts +81 -0
- package/types/raqm-ui-alert.d.ts +29 -0
- package/types/raqm-ui-aspect-ratio.d.ts +13 -0
- package/types/raqm-ui-attachment.d.ts +72 -0
- package/types/raqm-ui-avatar.d.ts +67 -0
- package/types/raqm-ui-badge.d.ts +20 -0
- package/types/raqm-ui-breadcrumb.d.ts +35 -0
- package/types/raqm-ui-button-group.d.ts +27 -0
- package/types/raqm-ui-button.d.ts +80 -0
- package/types/raqm-ui-calendar.d.ts +359 -0
- package/types/raqm-ui-card.d.ts +34 -0
- package/types/raqm-ui-carousel.d.ts +81 -0
- package/types/raqm-ui-checkbox.d.ts +24 -0
- package/types/raqm-ui-collapsible.d.ts +72 -0
- package/types/raqm-ui-combobox.d.ts +405 -0
- package/types/raqm-ui-command.d.ts +256 -0
- package/types/raqm-ui-context-menu.d.ts +196 -0
- package/types/raqm-ui-dialog.d.ts +232 -0
- package/types/raqm-ui-drawer.d.ts +121 -0
- package/types/raqm-ui-dropdown-menu.d.ts +319 -0
- package/types/raqm-ui-empty.d.ts +35 -0
- package/types/raqm-ui-field.d.ts +88 -0
- package/types/raqm-ui-hover-card.d.ts +139 -0
- package/types/raqm-ui-input-group.d.ts +45 -0
- package/types/raqm-ui-input-otp.d.ts +197 -0
- package/types/raqm-ui-input.d.ts +16 -0
- package/types/raqm-ui-item.d.ts +71 -0
- package/types/raqm-ui-kbd.d.ts +12 -0
- package/types/raqm-ui-label.d.ts +6 -0
- package/types/raqm-ui-menubar.d.ts +159 -0
- package/types/raqm-ui-native-select.d.ts +23 -0
- package/types/raqm-ui-navigation-menu.d.ts +230 -0
- package/types/raqm-ui-overlay-internal.d.ts +5 -0
- package/types/raqm-ui-pagination.d.ts +84 -0
- package/types/raqm-ui-popover.d.ts +235 -0
- package/types/raqm-ui-progress.d.ts +79 -0
- package/types/raqm-ui-questionnaire.d.ts +217 -0
- package/types/raqm-ui-radio-group.d.ts +48 -0
- package/types/raqm-ui-resizable.d.ts +98 -0
- package/types/raqm-ui-scroll-area.d.ts +132 -0
- package/types/raqm-ui-select.d.ts +205 -0
- package/types/raqm-ui-separator.d.ts +21 -0
- package/types/raqm-ui-sheet.d.ts +79 -0
- package/types/raqm-ui-sidebar.d.ts +285 -0
- package/types/raqm-ui-skeleton.d.ts +6 -0
- package/types/raqm-ui-slider.d.ts +129 -0
- package/types/raqm-ui-spinner.d.ts +32 -0
- package/types/raqm-ui-switch.d.ts +32 -0
- package/types/raqm-ui-table.d.ts +36 -0
- package/types/raqm-ui-tabs.d.ts +154 -0
- package/types/raqm-ui-textarea.d.ts +6 -0
- package/types/raqm-ui-toast.d.ts +190 -0
- package/types/raqm-ui-toggle-group.d.ts +167 -0
- package/types/raqm-ui-toggle.d.ts +42 -0
- package/types/raqm-ui-tooltip.d.ts +207 -0
- package/types/raqm-ui.d.ts +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raqm-ui-calendar.mjs","names":[],"sources":["../../../projects/ui/calendar/calendar-date.ts","../../../projects/ui/calendar/calendar-day-button.directive.ts","../../../projects/ui/calendar/calendar-effects.ts","../../../projects/ui/calendar/calendar-format.ts","../../../projects/ui/calendar/calendar-keyboard.ts","../../../projects/ui/calendar/calendar-navigation.ts","../../../projects/ui/calendar/calendar-selection.ts","../../../projects/ui/calendar/calendar-view-state.ts","../../../projects/ui/calendar/calendar.ts","../../../projects/ui/calendar/calendar.component.html","../../../projects/ui/calendar/public-api.ts"],"sourcesContent":["import type { RaqmDateMatcher, RaqmDateMatchers } from './calendar.types';\r\n\r\n/** Noon avoids midnight transitions; setFullYear handles years 0–99 correctly. */\r\nexport function civil(year: number, month = 0, day = 1): Date {\r\n const date = new Date(0);\r\n date.setHours(12, 0, 0, 0);\r\n date.setFullYear(year, month, day);\r\n return date;\r\n}\r\nexport function valid(date: Date | undefined): date is Date {\r\n return date instanceof Date && Number.isFinite(date.getTime());\r\n}\r\nexport function clean(date: Date): Date {\r\n return civil(date.getFullYear(), date.getMonth(), date.getDate());\r\n}\r\nexport function key(date: Date): string {\r\n return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\r\n}\r\n/** Proleptic Gregorian ordinal, not elapsed local milliseconds divided by 24h. */\r\nexport function ordinal(date: Date): number {\r\n let y = date.getFullYear();\r\n const m = date.getMonth() + 1;\r\n y -= m <= 2 ? 1 : 0;\r\n const era = Math.floor(y / 400);\r\n const yo = y - era * 400;\r\n const doy = Math.floor((153 * (m + (m > 2 ? -3 : 9)) + 2) / 5) + date.getDate() - 1;\r\n return era * 146097 + yo * 365 + Math.floor(yo / 4) - Math.floor(yo / 100) + doy;\r\n}\r\nexport function same(a: Date | undefined, b: Date | undefined): boolean {\r\n return valid(a) && valid(b) && ordinal(a) === ordinal(b);\r\n}\r\nexport function addDays(date: Date, days: number): Date {\r\n return civil(date.getFullYear(), date.getMonth(), date.getDate() + days);\r\n}\r\nexport function addMonths(date: Date, months: number): Date {\r\n const start = civil(date.getFullYear(), date.getMonth() + months);\r\n const last = civil(start.getFullYear(), start.getMonth() + 1, 0).getDate();\r\n return civil(start.getFullYear(), start.getMonth(), Math.min(date.getDate(), last));\r\n}\r\nexport function monthIndex(date: Date): number {\r\n return date.getFullYear() * 12 + date.getMonth();\r\n}\r\nfunction match(date: Date, matcher: RaqmDateMatcher): boolean {\r\n if (typeof matcher === 'boolean') return matcher;\r\n if (typeof matcher === 'function') return matcher(clean(date));\r\n if (matcher instanceof Date) return same(date, matcher);\r\n if (Array.isArray(matcher)) return matcher.some((day) => same(date, day));\r\n const n = ordinal(date);\r\n if ('dayOfWeek' in matcher) return matcher.dayOfWeek.includes(date.getDay());\r\n if ('from' in matcher) return n >= ordinal(matcher.from) && n <= ordinal(matcher.to);\r\n if ('before' in matcher && 'after' in matcher) {\r\n const before = ordinal(matcher.before),\r\n after = ordinal(matcher.after);\r\n return before > after ? n < before && n > after : n < before || n > after;\r\n }\r\n if ('before' in matcher) return n < ordinal(matcher.before);\r\n return n > ordinal(matcher.after);\r\n}\r\nexport function matches(date: Date, matchers: RaqmDateMatchers | undefined): boolean {\r\n return matchers === undefined\r\n ? false\r\n : Array.isArray(matchers)\r\n ? matchers.some((matcher) => match(date, matcher))\r\n : match(date, matchers);\r\n}\r\nexport function weekNumber(\r\n date: Date,\r\n weekStartsOn: number,\r\n firstWeekContainsDate: number,\r\n): number {\r\n const start = (year: number) => {\r\n const anchor = civil(year, 0, firstWeekContainsDate);\r\n return addDays(anchor, -((anchor.getDay() - weekStartsOn + 7) % 7));\r\n };\r\n const year = date.getFullYear(),\r\n first = start(year),\r\n next = start(year + 1);\r\n const base =\r\n ordinal(date) < ordinal(first)\r\n ? start(year - 1)\r\n : ordinal(date) >= ordinal(next)\r\n ? next\r\n : first;\r\n return Math.floor((ordinal(date) - ordinal(base)) / 7) + 1;\r\n}\r\n","import { Directive, input } from '@angular/core';\r\nimport type { RaqmCalendarModifiers } from './calendar.types';\r\n\r\n/** Compose with native Button; disabled, tabindex, name, focus and activation stay caller-owned. */\r\n@Directive({\r\n selector: 'button[raqm-calendar-day-button]',\r\n host: {\r\n class: 'raqm-calendar-day-button',\r\n '[attr.data-raqm-day]': 'date().toLocaleDateString(locale())',\r\n '[attr.data-raqm-selected-single]':\r\n 'modifiers()[\"selected\"] && !modifiers()[\"range_start\"] && !modifiers()[\"range_end\"] && !modifiers()[\"range_middle\"] ? \"\" : null',\r\n '[attr.data-raqm-range-start]': 'modifiers()[\"range_start\"] ? \"\" : null',\r\n '[attr.data-raqm-range-end]': 'modifiers()[\"range_end\"] ? \"\" : null',\r\n '[attr.data-raqm-range-middle]': 'modifiers()[\"range_middle\"] ? \"\" : null',\r\n },\r\n})\r\nexport class RaqmCalendarDayButtonDirective {\r\n readonly date = input.required<Date>();\r\n readonly locale = input('en-US');\r\n readonly modifiers = input<RaqmCalendarModifiers>({});\r\n}\r\n","// Calendar effects: the post-render focus placement, registered from the component constructor.\r\n\r\nimport { afterRenderEffect } from '@angular/core';\r\n\r\nimport { CalendarDay } from './calendar-model';\r\n\r\nexport interface RaqmCalendarEffectsHost {\r\n tabDay(): CalendarDay | undefined;\r\n months(): readonly unknown[];\r\n pendingFocus(): boolean;\r\n focusOwned(): boolean;\r\n element(): HTMLElement;\r\n setPendingFocus(value: boolean): void;\r\n}\r\n\r\nexport function connectCalendarEffects(host: RaqmCalendarEffectsHost): void {\r\n afterRenderEffect(() => {\r\n const target = host.tabDay();\r\n host.months();\r\n const pending = host.pendingFocus();\r\n if (!pending && !host.focusOwned()) return;\r\n const element = host.element(),\r\n active = element.ownerDocument.activeElement;\r\n const button = Array.from(\r\n element.querySelectorAll<HTMLButtonElement>('button[data-raqm-key]'),\r\n ).find((button) => button.dataset['raqmKey'] === target?.key && button.tabIndex === 0);\r\n // Never steal focus from caption/nav or elsewhere on the page.\r\n if (\r\n pending ||\r\n (host.focusOwned() &&\r\n (!active ||\r\n active === element.ownerDocument.body ||\r\n (element.contains(active) && active.hasAttribute('data-raqm-key'))))\r\n ) {\r\n (\r\n button ??\r\n element.querySelector<HTMLButtonElement>('.raqm-calendar-nav button:not(:disabled)') ??\r\n element\r\n ).focus();\r\n }\r\n if (pending) host.setPendingFocus(false);\r\n });\r\n}\r\n","// Calendar text: locale-formatted captions, weekday names, day and week labels.\r\n\r\nimport { civil } from './calendar-date';\r\nimport { CalendarDay } from './calendar-model';\r\nimport type { RaqmCalendarFormatters, RaqmCalendarLabels } from './calendar.types';\r\n\r\nexport interface RaqmCalendarFormatHost {\r\n locale(): string;\r\n formatters(): RaqmCalendarFormatters;\r\n labels(): RaqmCalendarLabels;\r\n}\r\n\r\nexport class RaqmCalendarFormat {\r\n constructor(private readonly host: RaqmCalendarFormatHost) {}\r\n\r\n format(date: Date, options: Intl.DateTimeFormatOptions): string {\r\n return new Intl.DateTimeFormat(this.host.locale(), {\r\n ...options,\r\n calendar: 'gregory',\r\n // Latin digits always: Intl would pick Arabic-Indic digits for locales such as ar-SA.\r\n numberingSystem: 'latn',\r\n }).format(date);\r\n }\r\n\r\n caption(date: Date): string {\r\n return (\r\n this.host.formatters().formatCaption?.(date) ??\r\n this.format(date, { month: 'long', year: 'numeric' })\r\n );\r\n }\r\n\r\n monthLabel(date: Date, month: number): string {\r\n const value = civil(date.getFullYear(), month);\r\n return (\r\n this.host.formatters().formatMonthDropdown?.(value) ?? this.format(value, { month: 'short' })\r\n );\r\n }\r\n\r\n yearLabel(year: number): string {\r\n const value = civil(year);\r\n return (\r\n this.host.formatters().formatYearDropdown?.(value) ?? this.format(value, { year: 'numeric' })\r\n );\r\n }\r\n\r\n weekday(date: Date): string {\r\n const custom = this.host.formatters().formatWeekdayName?.(date);\r\n if (custom) return custom;\r\n const short = this.format(date, { weekday: 'short' });\r\n // Arabic short names keep their leading article in Intl, Hebrew its \"יום\" prefix.\r\n const language = this.host.locale().split('-')[0].toLowerCase();\r\n if (language === 'ar') return short.replace(/^ال/, '');\r\n if (language === 'he') return short.replace(/^יום\\s+/, '');\r\n return Array.from(short).slice(0, 2).join('');\r\n }\r\n\r\n dayLabel(day: CalendarDay): string {\r\n // Only the date: state is exposed through aria-current/aria-selected, not English status text.\r\n return (\r\n this.host.labels().day?.(day.date, day.modifiers) ??\r\n this.format(day.date, {\r\n weekday: 'long',\r\n month: 'long',\r\n day: 'numeric',\r\n year: 'numeric',\r\n })\r\n );\r\n }\r\n\r\n dayText(date: Date): string {\r\n return this.host.formatters().formatDay?.(date) ?? this.format(date, { day: 'numeric' });\r\n }\r\n\r\n weekText(week: number): string {\r\n return (\r\n this.host.formatters().formatWeekNumber?.(week) ??\r\n new Intl.NumberFormat(this.host.locale(), { numberingSystem: 'latn' }).format(week)\r\n );\r\n }\r\n}\r\n","// Calendar keyboard and focus ownership: the roving day keys and the focus-in/out tracking.\r\n\r\nimport { addDays, addMonths, key, matches, monthIndex, ordinal, same } from './calendar-date';\r\nimport { CalendarDay } from './calendar-model';\r\nimport type { RaqmDateMatchers } from './calendar.types';\r\n\r\nexport interface RaqmCalendarKeyboardHost {\r\n element(): HTMLElement;\r\n dir(): 'ltr' | 'rtl' | undefined;\r\n weekStart(): number;\r\n lower(): Date;\r\n upper(): Date;\r\n availableDays(): readonly CalendarDay[];\r\n disableNavigation(): boolean;\r\n isDisabled(date: Date): boolean;\r\n hidden(): RaqmDateMatchers | undefined;\r\n changeMonth(date: Date): void;\r\n setFocused(key: string): void;\r\n setPendingFocus(value: boolean): void;\r\n setFocusOwned(value: boolean): void;\r\n}\r\n\r\nexport class RaqmCalendarKeyboard {\r\n constructor(private readonly host: RaqmCalendarKeyboardHost) {}\r\n\r\n focusIn(event: FocusEvent): void {\r\n const id = (event.target as HTMLElement).dataset['raqmKey'];\r\n this.host.setFocusOwned(!!id);\r\n if (id) this.host.setFocused(id);\r\n }\r\n\r\n focusOut(event: FocusEvent): void {\r\n if (event.relatedTarget && !this.host.element().contains(event.relatedTarget as Node))\r\n this.host.setFocusOwned(false);\r\n }\r\n\r\n keydown(event: KeyboardEvent, day: CalendarDay): void {\r\n const element = this.host.element();\r\n const rtl =\r\n (element.ownerDocument.defaultView?.getComputedStyle(element).direction ??\r\n this.host.dir()) === 'rtl';\r\n let candidate: Date,\r\n step = 1;\r\n const offset = (day.date.getDay() - this.host.weekStart() + 7) % 7;\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n step = rtl ? 1 : -1;\r\n candidate = addDays(day.date, step);\r\n break;\r\n case 'ArrowRight':\r\n step = rtl ? -1 : 1;\r\n candidate = addDays(day.date, step);\r\n break;\r\n case 'ArrowUp':\r\n step = -7;\r\n candidate = addDays(day.date, -7);\r\n break;\r\n case 'ArrowDown':\r\n step = 7;\r\n candidate = addDays(day.date, 7);\r\n break;\r\n case 'Home':\r\n candidate = addDays(day.date, -offset);\r\n break;\r\n case 'End':\r\n step = -1;\r\n candidate = addDays(day.date, 6 - offset);\r\n break;\r\n case 'PageUp':\r\n step = -1;\r\n candidate = addMonths(day.date, event.shiftKey ? -12 : -1);\r\n break;\r\n case 'PageDown':\r\n candidate = addMonths(day.date, event.shiftKey ? 12 : 1);\r\n break;\r\n default:\r\n return;\r\n }\r\n event.preventDefault();\r\n const homeEnd = event.key === 'Home' || event.key === 'End';\r\n // Finite scan, bounded by the supported civil window, with no hidden/disabled trap.\r\n for (let i = 0; i < (homeEnd ? 7 : 366 * 100); i++, candidate = addDays(candidate, step)) {\r\n if (\r\n monthIndex(candidate) < monthIndex(this.host.lower()) ||\r\n monthIndex(candidate) > monthIndex(this.host.upper())\r\n )\r\n return;\r\n if (\r\n homeEnd &&\r\n (ordinal(candidate) < ordinal(day.date) - offset ||\r\n ordinal(candidate) > ordinal(day.date) + 6 - offset)\r\n )\r\n return;\r\n if (this.host.isDisabled(candidate) || matches(candidate, this.host.hidden())) continue;\r\n if (!this.host.availableDays().some((day) => same(day.date, candidate))) {\r\n if (this.host.disableNavigation()) return;\r\n this.host.changeMonth(candidate);\r\n }\r\n this.host.setFocused(key(candidate));\r\n this.host.setPendingFocus(true);\r\n return;\r\n }\r\n }\r\n}\r\n","// Calendar navigation: month paging, the dropdown jumps and the month/year bounds.\r\n\r\nimport { addMonths, civil, clean, monthIndex } from './calendar-date';\r\n\r\nexport interface RaqmCalendarNavigationHost {\r\n displayedMonth(): Date;\r\n count(): number;\r\n disableNavigation(): boolean;\r\n pagedNavigation(): boolean;\r\n monthControlled(): boolean;\r\n lower(): Date;\r\n upper(): Date;\r\n clampMonth(date: Date): Date;\r\n setInternalMonth(date: Date): void;\r\n emitMonth(date: Date): void;\r\n}\r\n\r\nexport class RaqmCalendarNavigation {\r\n constructor(private readonly host: RaqmCalendarNavigationHost) {}\r\n\r\n canNavigate(direction: number): boolean {\r\n return (\r\n !this.host.disableNavigation() &&\r\n monthIndex(\r\n this.host.clampMonth(\r\n addMonths(\r\n this.host.displayedMonth(),\r\n direction * (this.host.pagedNavigation() ? this.host.count() : 1),\r\n ),\r\n ),\r\n ) !== monthIndex(this.host.displayedMonth())\r\n );\r\n }\r\n\r\n navigate(direction: number): void {\r\n if (this.canNavigate(direction))\r\n this.changeMonth(\r\n addMonths(\r\n this.host.displayedMonth(),\r\n direction * (this.host.pagedNavigation() ? this.host.count() : 1),\r\n ),\r\n );\r\n }\r\n\r\n changeMonth(date: Date): void {\r\n const next = this.host.clampMonth(date);\r\n if (monthIndex(next) === monthIndex(this.host.displayedMonth())) return;\r\n if (!this.host.monthControlled()) this.host.setInternalMonth(next);\r\n this.host.emitMonth(clean(next));\r\n }\r\n\r\n dropdown(date: Date, index: number, event: Event, year: boolean): void {\r\n const value = Number((event.target as HTMLSelectElement).value);\r\n this.changeMonth(\r\n addMonths(civil(year ? value : date.getFullYear(), year ? date.getMonth() : value), -index),\r\n );\r\n }\r\n\r\n monthDisabled(date: Date, month: number): boolean {\r\n const index = monthIndex(civil(date.getFullYear(), month));\r\n return index < monthIndex(this.host.lower()) || index > monthIndex(this.host.upper());\r\n }\r\n}\r\n","// Calendar selection: the disabled-date rule and the single commit path for single,\r\n// multiple and range values.\r\n\r\nimport { addDays, clean, matches, monthIndex, ordinal, same, valid } from './calendar-date';\r\nimport { CalendarDay } from './calendar-model';\r\nimport type { RaqmCalendarValue, RaqmDateMatchers, RaqmDateRange } from './calendar.types';\r\n\r\nexport interface RaqmCalendarSelectionHost {\r\n mode(): 'single' | 'multiple' | 'range';\r\n min(): number | undefined;\r\n max(): number | undefined;\r\n required(): boolean;\r\n excludeDisabled(): boolean;\r\n controlledSelection(): boolean;\r\n selectedDates(): Date[];\r\n range(): RaqmDateRange | undefined;\r\n lower(): Date;\r\n upper(): Date;\r\n disabled(): RaqmDateMatchers | undefined;\r\n setInternalSelection(value: { value: RaqmCalendarValue }): void;\r\n emit(value: RaqmCalendarValue): void;\r\n setFocused(key: string): void;\r\n disableNavigation(): boolean;\r\n changeMonth(date: Date): void;\r\n}\r\n\r\nexport class RaqmCalendarSelection {\r\n constructor(private readonly host: RaqmCalendarSelectionHost) {}\r\n\r\n isDisabled(date: Date): boolean {\r\n return (\r\n monthIndex(date) < monthIndex(this.host.lower()) ||\r\n monthIndex(date) > monthIndex(this.host.upper()) ||\r\n matches(date, this.host.disabled())\r\n );\r\n }\r\n\r\n selectDay(day: CalendarDay): void {\r\n if (day.modifiers['hidden'] || day.modifiers['disabled']) return;\r\n const date = clean(day.date),\r\n min = Math.max(0, this.host.min() ?? 0),\r\n max = this.host.max();\r\n let next: RaqmCalendarValue;\r\n if (this.host.mode() === 'single')\r\n next = same(this.host.selectedDates()[0], date) && !this.host.required() ? undefined : date;\r\n else if (this.host.mode() === 'multiple') {\r\n const current = this.host.selectedDates(),\r\n exists = current.some((value) => same(value, date));\r\n if (exists && current.length <= Math.max(min, this.host.required() ? 1 : 0)) return;\r\n if (!exists && max !== undefined && current.length >= max) return;\r\n next = exists\r\n ? current.filter((value) => !same(value, date)).map(clean)\r\n : [...current.map(clean), date];\r\n } else {\r\n const range = this.host.range();\r\n if (!valid(range?.from)) next = { from: date, to: min > 0 ? undefined : date };\r\n else if (range.to && (same(range.from, date) || same(range.to, date)))\r\n next =\r\n same(range.from, date) && same(range.to, date) && !this.host.required()\r\n ? undefined\r\n : { from: date, to: min > 0 ? undefined : date };\r\n else {\r\n if (!range.to && same(range.from, date) && min === 0 && !this.host.required()) {\r\n next = undefined;\r\n } else {\r\n const from = ordinal(date) < ordinal(range.from) ? date : clean(range.from),\r\n to = ordinal(date) < ordinal(range.from) ? clean(range.to ?? range.from) : date;\r\n const nights = ordinal(to) - ordinal(from);\r\n if ((max !== undefined && nights > max) || nights < min)\r\n next = { from: date, to: min > 0 ? undefined : date };\r\n else if (this.host.excludeDisabled() && this.rangeHasDisabled(from, to))\r\n next = { from: date, to: min > 0 ? undefined : date };\r\n else next = { from, to };\r\n }\r\n }\r\n }\r\n if (!this.host.controlledSelection()) this.host.setInternalSelection({ value: next });\r\n this.host.emit(next);\r\n this.host.setFocused(day.key);\r\n if (day.modifiers['outside'] && !this.host.disableNavigation()) this.host.changeMonth(date);\r\n }\r\n\r\n private rangeHasDisabled(from: Date, to: Date): boolean {\r\n const span = ordinal(to) - ordinal(from);\r\n for (let i = 0; i <= span; i++) if (this.isDisabled(addDays(from, i))) return true;\r\n return false;\r\n }\r\n}\r\n","// Calendar derived state: the controlled/internal selection and month bookkeeping, the grid\r\n// shape and the focus target the keyboard paths move.\r\n\r\nimport { computed, signal } from '@angular/core';\r\n\r\nimport {\r\n addDays,\r\n addMonths,\r\n civil,\r\n key,\r\n matches,\r\n monthIndex,\r\n ordinal,\r\n same,\r\n valid,\r\n weekNumber,\r\n} from './calendar-date';\r\nimport { CalendarDay } from './calendar-model';\r\nimport type {\r\n RaqmCalendarModifiers,\r\n RaqmCalendarValue,\r\n RaqmDateMatchers,\r\n RaqmDateRange,\r\n} from './calendar.types';\r\n\r\nexport interface RaqmCalendarViewStateHost {\r\n defaultSelected(): RaqmCalendarValue;\r\n selected(): RaqmCalendarValue;\r\n defaultMonth(): Date | undefined;\r\n month(): Date | undefined;\r\n numberOfMonths(): number;\r\n startMonth(): Date | undefined;\r\n endMonth(): Date | undefined;\r\n captionLayout(): 'label' | 'dropdown' | 'dropdown-months' | 'dropdown-years';\r\n locale(): string;\r\n today(): Date;\r\n mode(): 'single' | 'multiple' | 'range';\r\n weekStartsOn(): number | undefined;\r\n firstWeekContainsDate(): number | undefined;\r\n ISOWeek(): boolean;\r\n fixedWeeks(): boolean;\r\n showOutsideDays(): boolean;\r\n hidden(): RaqmDateMatchers | undefined;\r\n modifiers(): Record<string, RaqmDateMatchers>;\r\n modifiersClassNames(): Record<string, string>;\r\n isDisabled(date: Date): boolean;\r\n format(date: Date, options: Intl.DateTimeFormatOptions): string;\r\n}\r\n\r\nexport class RaqmCalendarViewState {\r\n readonly controlledSelection = signal(false);\r\n\r\n private readonly internalSelection = signal<{ value: RaqmCalendarValue } | undefined>(undefined);\r\n\r\n readonly monthControlled = signal(false);\r\n\r\n private readonly internalMonth = signal<Date | undefined>(undefined);\r\n\r\n private readonly initialMonth = civil(new Date().getFullYear(), new Date().getMonth());\r\n\r\n readonly focused = signal<string | undefined>(undefined);\r\n\r\n readonly pendingFocus = signal(false);\r\n\r\n readonly focusOwned = signal(false);\r\n\r\n readonly selection = computed(() =>\r\n this.controlledSelection()\r\n ? this.host.selected()\r\n : (this.internalSelection() ?? { value: this.host.defaultSelected() }).value,\r\n );\r\n\r\n readonly count = computed(() =>\r\n Math.max(\r\n 1,\r\n Math.min(\r\n 12,\r\n Math.trunc(this.host.numberOfMonths()) || 1,\r\n monthIndex(this.upper()) - monthIndex(this.lower()) + 1,\r\n ),\r\n ),\r\n );\r\n\r\n // Dropdowns span the hundred-year default window; label navigation spans civil years 1–9999.\r\n readonly lower = computed(() =>\r\n valid(this.host.startMonth())\r\n ? civil(\r\n Math.min(9999, Math.max(1, this.host.startMonth()!.getFullYear())),\r\n this.host.startMonth()!.getMonth(),\r\n )\r\n : this.host.captionLayout() !== 'label'\r\n ? civil(Math.max(1, this.host.today().getFullYear() - 100))\r\n : civil(1),\r\n );\r\n\r\n readonly upper = computed(() => {\r\n const candidate = valid(this.host.endMonth())\r\n ? civil(\r\n Math.max(1, Math.min(9999, this.host.endMonth()!.getFullYear())),\r\n this.host.endMonth()!.getMonth(),\r\n )\r\n : this.host.captionLayout() !== 'label'\r\n ? civil(this.host.today().getFullYear(), 11)\r\n : civil(9999, 11);\r\n return monthIndex(candidate) < monthIndex(this.lower()) ? this.lower() : candidate;\r\n });\r\n\r\n readonly displayedMonth = computed(() => {\r\n const candidate = this.monthControlled()\r\n ? this.host.month()\r\n : (this.internalMonth() ?? this.host.defaultMonth());\r\n return this.clampMonth(valid(candidate) ? candidate : this.initialMonth);\r\n });\r\n\r\n private readonly weekInfo = computed(() => {\r\n try {\r\n const locale = new Intl.Locale(this.host.locale()) as Intl.Locale & {\r\n weekInfo?: { firstDay: number; minimalDays: number };\r\n getWeekInfo?: () => { firstDay: number; minimalDays: number };\r\n };\r\n const info = locale.getWeekInfo?.() ?? locale.weekInfo;\r\n return { start: (info?.firstDay ?? 7) % 7, first: info?.minimalDays === 4 ? 4 : 1 };\r\n } catch {\r\n return { start: 0, first: 1 };\r\n }\r\n });\r\n\r\n readonly weekStart = computed(() =>\r\n this.host.ISOWeek()\r\n ? 1\r\n : this.host.weekStartsOn() === undefined\r\n ? this.weekInfo().start\r\n : ((Math.trunc(this.host.weekStartsOn()!) % 7) + 7) % 7,\r\n );\r\n\r\n readonly weekdays = computed(() =>\r\n Array.from({ length: 7 }, (_, i) => addDays(civil(2024, 0, 7), (this.weekStart() + i) % 7)),\r\n );\r\n\r\n readonly years = computed(() =>\r\n Array.from(\r\n { length: Math.max(0, this.upper().getFullYear() - this.lower().getFullYear() + 1) },\r\n (_, i) => this.lower().getFullYear() + i,\r\n ),\r\n );\r\n\r\n readonly months = computed(() =>\r\n Array.from({ length: this.count() }, (_, index) => {\r\n const month = addMonths(this.displayedMonth(), index);\r\n const first = addDays(month, -((month.getDay() - this.weekStart() + 7) % 7));\r\n const days = civil(month.getFullYear(), month.getMonth() + 1, 0).getDate();\r\n const weeks = this.host.fixedWeeks()\r\n ? 6\r\n : Math.ceil((((month.getDay() - this.weekStart() + 7) % 7) + days) / 7);\r\n return {\r\n date: month,\r\n key: key(month),\r\n weeks: Array.from({ length: weeks }, (_, w) => {\r\n const start = addDays(first, w * 7);\r\n return {\r\n key: key(start),\r\n number: weekNumber(\r\n start,\r\n this.weekStart(),\r\n this.host.ISOWeek()\r\n ? 4\r\n : (this.host.firstWeekContainsDate() ?? this.weekInfo().first),\r\n ),\r\n days: Array.from({ length: 7 }, (_, d) => this.day(addDays(start, d), month)),\r\n };\r\n }),\r\n };\r\n }),\r\n );\r\n\r\n readonly availableDays = computed(() =>\r\n this.months()\r\n .flatMap((month) => month.weeks.flatMap((week) => week.days))\r\n .filter((day) => !day.modifiers['hidden'] && !day.modifiers['disabled']),\r\n );\r\n\r\n readonly tabDay = computed(() => {\r\n const days = this.availableDays();\r\n return (\r\n days.find((day) => day.key === this.focused() && !day.modifiers['outside']) ??\r\n days.find((day) => day.key === this.focused()) ??\r\n days.find((day) => day.modifiers['selected'] && !day.modifiers['outside']) ??\r\n days.find((day) => day.modifiers['today'] && !day.modifiers['outside']) ??\r\n days.find((day) => !day.modifiers['outside']) ??\r\n days[0]\r\n );\r\n });\r\n\r\n readonly selectionAnnouncement = computed(() => {\r\n const value = this.selection();\r\n const dates =\r\n value instanceof Date\r\n ? [value]\r\n : Array.isArray(value)\r\n ? value\r\n : value\r\n ? [value.from, value.to]\r\n : [];\r\n return dates\r\n .filter(valid)\r\n .map((date) => this.host.format(date, { dateStyle: 'long' }))\r\n .join(', ');\r\n });\r\n\r\n constructor(private readonly host: RaqmCalendarViewStateHost) {}\r\n\r\n // The initial month is seeded once, when the required inputs are bound.\r\n init(): void {\r\n this.internalSelection.set({ value: this.host.defaultSelected() });\r\n this.internalMonth.set(\r\n valid(this.host.defaultMonth()) ? this.host.defaultMonth() : this.initialMonth,\r\n );\r\n }\r\n\r\n markSelectionControlled(): void {\r\n this.controlledSelection.set(true);\r\n }\r\n\r\n markMonthControlled(): void {\r\n this.monthControlled.set(true);\r\n }\r\n\r\n setInternalSelection(value: { value: RaqmCalendarValue }): void {\r\n this.internalSelection.set(value);\r\n }\r\n\r\n setInternalMonth(date: Date): void {\r\n this.internalMonth.set(date);\r\n }\r\n\r\n clampMonth(date: Date): Date {\r\n const lower = monthIndex(this.lower()),\r\n upper = Math.max(lower, monthIndex(this.upper()) - this.count() + 1);\r\n const index = Math.max(lower, Math.min(upper, monthIndex(date)));\r\n return civil(Math.floor(index / 12), index % 12);\r\n }\r\n\r\n selectedDates(): Date[] {\r\n const value = this.selection();\r\n return value instanceof Date ? [value] : Array.isArray(value) ? value : [];\r\n }\r\n\r\n range(): RaqmDateRange | undefined {\r\n const value = this.selection();\r\n return value && !(value instanceof Date) && !Array.isArray(value) ? value : undefined;\r\n }\r\n\r\n private day(date: Date, month: Date): CalendarDay {\r\n const outside = date.getMonth() !== month.getMonth();\r\n const range = this.host.mode() === 'range' ? this.range() : undefined,\r\n from = range?.from,\r\n to = range?.to;\r\n const selected = range\r\n ? valid(from) &&\r\n (same(date, from) ||\r\n (valid(to) && ordinal(date) >= ordinal(from) && ordinal(date) <= ordinal(to)))\r\n : this.selectedDates().some((selected) => same(date, selected));\r\n const custom = Object.fromEntries(\r\n Object.entries(this.host.modifiers()).map(([name, matcher]) => [\r\n name,\r\n matches(date, matcher),\r\n ]),\r\n );\r\n const modifiers: RaqmCalendarModifiers = {\r\n ...custom,\r\n outside,\r\n selected,\r\n today: same(date, this.host.today()),\r\n disabled: this.host.isDisabled(date),\r\n hidden: matches(date, this.host.hidden()) || (outside && !this.host.showOutsideDays()),\r\n range_start: !!range && same(date, from),\r\n range_end: !!range && same(date, to),\r\n range_middle:\r\n !!range &&\r\n valid(from) &&\r\n valid(to) &&\r\n ordinal(date) > ordinal(from) &&\r\n ordinal(date) < ordinal(to),\r\n };\r\n const classes = Object.entries(this.host.modifiersClassNames())\r\n .filter(([name]) => modifiers[name])\r\n .map(([, value]) => value)\r\n .join(' ');\r\n return { date, key: key(date), modifiers, classes };\r\n }\r\n}\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n contentChild,\r\n Directive,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RaqmButton } from '@raqm/ui/button';\r\nimport { clean } from './calendar-date';\r\nimport { RaqmCalendarDayButtonDirective } from './calendar-day-button.directive';\r\nimport { connectCalendarEffects } from './calendar-effects';\r\nimport { RaqmCalendarFormat } from './calendar-format';\r\nimport { RaqmCalendarKeyboard } from './calendar-keyboard';\r\nimport { CalendarButtonAppearance, CalendarDay } from './calendar-model';\r\nimport { RaqmCalendarNavigation } from './calendar-navigation';\r\nimport { RaqmCalendarSelection } from './calendar-selection';\r\nimport type {\r\n RaqmCalendarDayContext,\r\n RaqmCalendarFormatters,\r\n RaqmCalendarLabels,\r\n RaqmCalendarValue,\r\n RaqmDateMatchers,\r\n} from './calendar.types';\r\nimport { RaqmCalendarViewState } from './calendar-view-state';\r\n\r\n/**\r\n * A native Gregorian grid of real day buttons.\r\n *\r\n * @remarks\r\n * `selected` and `month` are controlled bindings; `defaultSelected`/`defaultMonth` seed the internal\r\n * state once. There is no `ControlValueAccessor`, so the app owns the value. The grid is a real\r\n * `<table role=\"grid\">` with roving tabindex, and every accessible name comes from `labels`.\r\n */\r\n@Component({\r\n selector: 'raqm-calendar',\r\n imports: [NgTemplateOutlet, RaqmButton, RaqmCalendarDayButtonDirective],\r\n templateUrl: './calendar.component.html',\r\n styleUrl: './calendar.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-calendar',\r\n tabindex: '-1',\r\n 'data-raqm-slot': 'calendar',\r\n '[attr.dir]': 'dir()',\r\n '(focusin)': 'focusIn($event)',\r\n '(focusout)': 'focusOut($event)',\r\n },\r\n})\r\nexport class RaqmCalendarComponent {\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n readonly mode = input<'single' | 'multiple' | 'range'>('single');\r\n readonly defaultSelected = input<RaqmCalendarValue>();\r\n readonly defaultMonth = input<Date>();\r\n readonly selected = input<RaqmCalendarValue>();\r\n readonly selectedChange = output<RaqmCalendarValue>();\r\n readonly month = input<Date>();\r\n readonly monthChange = output<Date>();\r\n readonly numberOfMonths = input(1);\r\n readonly startMonth = input<Date>();\r\n readonly endMonth = input<Date>();\r\n readonly disableNavigation = input(false, { transform: booleanAttribute });\r\n readonly hideNavigation = input(false, { transform: booleanAttribute });\r\n readonly pagedNavigation = input(false, { transform: booleanAttribute });\r\n readonly captionLayout = input<'label' | 'dropdown' | 'dropdown-months' | 'dropdown-years'>(\r\n 'label',\r\n );\r\n readonly appearance = input<CalendarButtonAppearance | ''>('');\r\n protected readonly navAppearance = computed(() => this.appearance() || 'ghost');\r\n readonly locale = input('en-US');\r\n readonly dir = input<'ltr' | 'rtl'>();\r\n readonly weekStartsOn = input<number>();\r\n readonly firstWeekContainsDate = input<number>();\r\n readonly ISOWeek = input(false, { transform: booleanAttribute });\r\n readonly fixedWeeks = input(false, { transform: booleanAttribute });\r\n readonly showOutsideDays = input(true, { transform: booleanAttribute });\r\n readonly showWeekNumber = input(false, { transform: booleanAttribute });\r\n readonly disabled = input<RaqmDateMatchers>();\r\n readonly hidden = input<RaqmDateMatchers>();\r\n readonly required = input(false, { transform: booleanAttribute });\r\n /** Multiple: day count. Range: night count. */\r\n readonly min = input<number>();\r\n readonly max = input<number>();\r\n readonly excludeDisabled = input(false, { transform: booleanAttribute });\r\n readonly today = input<Date>(clean(new Date()));\r\n readonly modifiers = input<Record<string, RaqmDateMatchers>>({});\r\n readonly modifiersClassNames = input<Record<string, string>>({});\r\n /** Custom cell content, rendered in its declaring view so Calendar styles do not cross in. */\r\n private readonly dayTemplateDirective = contentChild(RaqmCalendarDayDirective);\r\n readonly dayContent = computed(() => this.dayTemplateDirective()?.template);\r\n readonly formatters = input<RaqmCalendarFormatters>({});\r\n readonly labels = input<RaqmCalendarLabels>({});\r\n readonly footer = input('');\r\n\r\n private readonly view: RaqmCalendarViewState = new RaqmCalendarViewState({\r\n defaultSelected: () => this.defaultSelected(),\r\n selected: () => this.selected(),\r\n defaultMonth: () => this.defaultMonth(),\r\n month: () => this.month(),\r\n numberOfMonths: () => this.numberOfMonths(),\r\n startMonth: () => this.startMonth(),\r\n endMonth: () => this.endMonth(),\r\n captionLayout: () => this.captionLayout(),\r\n locale: () => this.locale(),\r\n today: () => this.today(),\r\n mode: () => this.mode(),\r\n weekStartsOn: () => this.weekStartsOn(),\r\n firstWeekContainsDate: () => this.firstWeekContainsDate(),\r\n ISOWeek: () => this.ISOWeek(),\r\n fixedWeeks: () => this.fixedWeeks(),\r\n showOutsideDays: () => this.showOutsideDays(),\r\n hidden: () => this.hidden(),\r\n modifiers: () => this.modifiers(),\r\n modifiersClassNames: () => this.modifiersClassNames(),\r\n isDisabled: (date) => this.selectionControl.isDisabled(date),\r\n format: (date, options) => this.formats.format(date, options),\r\n });\r\n\r\n readonly selection = this.view.selection;\r\n readonly count = this.view.count;\r\n // Dropdowns span the hundred-year default window; label navigation spans civil years 1–9999.\r\n readonly lower = this.view.lower;\r\n readonly upper = this.view.upper;\r\n readonly displayedMonth = this.view.displayedMonth;\r\n readonly weekStart = this.view.weekStart;\r\n readonly weekdays = this.view.weekdays;\r\n readonly years = this.view.years;\r\n readonly months = this.view.months;\r\n readonly availableDays = this.view.availableDays;\r\n readonly tabDay = this.view.tabDay;\r\n readonly monthOptions = Array.from({ length: 12 }, (_, i) => i);\r\n readonly selectionAnnouncement = this.view.selectionAnnouncement;\r\n\r\n private readonly formats: RaqmCalendarFormat = new RaqmCalendarFormat({\r\n locale: () => this.locale(),\r\n formatters: () => this.formatters(),\r\n labels: () => this.labels(),\r\n });\r\n\r\n private readonly selectionControl: RaqmCalendarSelection = new RaqmCalendarSelection({\r\n mode: () => this.mode(),\r\n min: () => this.min(),\r\n max: () => this.max(),\r\n required: () => this.required(),\r\n excludeDisabled: () => this.excludeDisabled(),\r\n controlledSelection: () => this.view.controlledSelection(),\r\n selectedDates: () => this.view.selectedDates(),\r\n range: () => this.view.range(),\r\n lower: () => this.lower(),\r\n upper: () => this.upper(),\r\n disabled: () => this.disabled(),\r\n setInternalSelection: (value) => this.view.setInternalSelection(value),\r\n emit: (value) => this.selectedChange.emit(value),\r\n setFocused: (key) => this.view.focused.set(key),\r\n disableNavigation: () => this.disableNavigation(),\r\n changeMonth: (date) => this.navigation.changeMonth(date),\r\n });\r\n\r\n private readonly navigation: RaqmCalendarNavigation = new RaqmCalendarNavigation({\r\n displayedMonth: () => this.displayedMonth(),\r\n count: () => this.count(),\r\n disableNavigation: () => this.disableNavigation(),\r\n pagedNavigation: () => this.pagedNavigation(),\r\n monthControlled: () => this.view.monthControlled(),\r\n lower: () => this.lower(),\r\n upper: () => this.upper(),\r\n clampMonth: (date) => this.view.clampMonth(date),\r\n setInternalMonth: (date) => this.view.setInternalMonth(date),\r\n emitMonth: (date) => this.monthChange.emit(date),\r\n });\r\n\r\n private readonly keyboard: RaqmCalendarKeyboard = new RaqmCalendarKeyboard({\r\n element: () => this.host.nativeElement,\r\n dir: () => this.dir(),\r\n weekStart: () => this.weekStart(),\r\n lower: () => this.lower(),\r\n upper: () => this.upper(),\r\n availableDays: () => this.availableDays(),\r\n disableNavigation: () => this.disableNavigation(),\r\n isDisabled: (date) => this.selectionControl.isDisabled(date),\r\n hidden: () => this.hidden(),\r\n changeMonth: (date) => this.navigation.changeMonth(date),\r\n setFocused: (key) => this.view.focused.set(key),\r\n setPendingFocus: (value) => this.view.pendingFocus.set(value),\r\n setFocusOwned: (value) => this.view.focusOwned.set(value),\r\n });\r\n\r\n constructor() {\r\n connectCalendarEffects({\r\n tabDay: () => this.tabDay(),\r\n months: () => this.months(),\r\n pendingFocus: () => this.view.pendingFocus(),\r\n focusOwned: () => this.view.focusOwned(),\r\n element: () => this.host.nativeElement,\r\n setPendingFocus: (value) => this.view.pendingFocus.set(value),\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('selected' in changes) this.view.markSelectionControlled();\r\n if ('month' in changes) this.view.markMonthControlled();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.view.init();\r\n }\r\n\r\n isDisabled(date: Date): boolean {\r\n return this.selectionControl.isDisabled(date);\r\n }\r\n\r\n format(date: Date, options: Intl.DateTimeFormatOptions): string {\r\n return this.formats.format(date, options);\r\n }\r\n\r\n caption(date: Date): string {\r\n return this.formats.caption(date);\r\n }\r\n\r\n monthLabel(date: Date, month: number): string {\r\n return this.formats.monthLabel(date, month);\r\n }\r\n\r\n yearLabel(year: number): string {\r\n return this.formats.yearLabel(year);\r\n }\r\n\r\n weekday(date: Date): string {\r\n return this.formats.weekday(date);\r\n }\r\n\r\n dayLabel(day: CalendarDay): string {\r\n return this.formats.dayLabel(day);\r\n }\r\n\r\n dayText(date: Date): string {\r\n return this.formats.dayText(date);\r\n }\r\n\r\n weekText(week: number): string {\r\n return this.formats.weekText(week);\r\n }\r\n\r\n context(day: CalendarDay): RaqmCalendarDayContext {\r\n return { $implicit: day.date, date: day.date, modifiers: day.modifiers };\r\n }\r\n\r\n isTabDay(day: CalendarDay): boolean {\r\n return this.tabDay() === day;\r\n }\r\n\r\n canNavigate(direction: number): boolean {\r\n return this.navigation.canNavigate(direction);\r\n }\r\n\r\n navigate(direction: number): void {\r\n this.navigation.navigate(direction);\r\n }\r\n\r\n dropdown(date: Date, index: number, event: Event, year: boolean): void {\r\n this.navigation.dropdown(date, index, event, year);\r\n }\r\n\r\n monthDisabled(date: Date, month: number): boolean {\r\n return this.navigation.monthDisabled(date, month);\r\n }\r\n\r\n selectDay(day: CalendarDay): void {\r\n this.selectionControl.selectDay(day);\r\n }\r\n\r\n focusIn(event: FocusEvent): void {\r\n this.keyboard.focusIn(event);\r\n }\r\n\r\n focusOut(event: FocusEvent): void {\r\n this.keyboard.focusOut(event);\r\n }\r\n\r\n keydown(event: KeyboardEvent, day: CalendarDay): void {\r\n this.keyboard.keydown(event, day);\r\n }\r\n}\r\n\r\n/**\r\n * Projected day-cell template; renders with the day context (`$implicit`/`date`, `modifiers`) and\r\n * must stay noninteractive — the day button remains the focus stop and accessible name.\r\n */\r\n@Directive({\r\n selector: 'ng-template[raqm-calendar-day]',\r\n})\r\nexport class RaqmCalendarDayDirective {\r\n readonly template = inject<TemplateRef<RaqmCalendarDayContext>>(TemplateRef);\r\n}\r\n","<div class=\"raqm-calendar-months\">\r\n @if (!hideNavigation()) {\r\n <nav class=\"raqm-calendar-nav\" [attr.aria-label]=\"labels().navigation\">\r\n <button\r\n [raqm-button]=\"navAppearance()\"\r\n icon\r\n class=\"raqm-calendar-nav-button\"\r\n [disabled]=\"!canNavigate(-1)\"\r\n [attr.aria-label]=\"labels().previous\"\r\n (click)=\"navigate(-1)\"\r\n >\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n aria-hidden=\"true\"\r\n >\r\n <path d=\"m15 18-6-6 6-6\" />\r\n </svg>\r\n </button>\r\n <button\r\n [raqm-button]=\"navAppearance()\"\r\n icon\r\n class=\"raqm-calendar-nav-button\"\r\n [disabled]=\"!canNavigate(1)\"\r\n [attr.aria-label]=\"labels().next\"\r\n (click)=\"navigate(1)\"\r\n >\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n aria-hidden=\"true\"\r\n >\r\n <path d=\"m9 18 6-6-6-6\" />\r\n </svg>\r\n </button>\r\n </nav>\r\n }\r\n @for (month of months(); track month.key; let index = $index) {\r\n <div class=\"raqm-calendar-month\">\r\n <div class=\"raqm-calendar-caption\">\r\n @if (captionLayout() === 'label') {\r\n <span>{{ caption(month.date) }}</span>\r\n } @else {\r\n <div class=\"raqm-calendar-dropdowns\">\r\n @if (captionLayout() !== 'dropdown-years') {\r\n <span class=\"raqm-calendar-dropdown-root\">\r\n <span class=\"raqm-calendar-caption-label\" aria-hidden=\"true\"\r\n >{{ monthLabel(month.date, month.date.getMonth())\r\n }}<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path d=\"m6 9 6 6 6-6\" /></svg\r\n ></span>\r\n <select\r\n [attr.aria-label]=\"labels().monthDropdown\"\r\n [disabled]=\"disableNavigation()\"\r\n (change)=\"dropdown(month.date, index, $event, false)\"\r\n >\r\n @for (option of monthOptions; track option) {\r\n <option\r\n [value]=\"option\"\r\n [selected]=\"option === month.date.getMonth()\"\r\n [disabled]=\"monthDisabled(month.date, option)\"\r\n >\r\n {{ monthLabel(month.date, option) }}\r\n </option>\r\n }\r\n </select>\r\n </span>\r\n } @else {\r\n <span>{{ monthLabel(month.date, month.date.getMonth()) }}</span>\r\n }\r\n @if (captionLayout() !== 'dropdown-months') {\r\n <span class=\"raqm-calendar-dropdown-root\">\r\n <span class=\"raqm-calendar-caption-label\" aria-hidden=\"true\"\r\n >{{ yearLabel(month.date.getFullYear())\r\n }}<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path d=\"m6 9 6 6 6-6\" /></svg\r\n ></span>\r\n <select\r\n [attr.aria-label]=\"labels().yearDropdown\"\r\n [disabled]=\"disableNavigation()\"\r\n (change)=\"dropdown(month.date, index, $event, true)\"\r\n >\r\n @for (year of years(); track year) {\r\n <option [value]=\"year\" [selected]=\"year === month.date.getFullYear()\">\r\n {{ yearLabel(year) }}\r\n </option>\r\n }\r\n </select>\r\n </span>\r\n } @else {\r\n <span>{{ yearLabel(month.date.getFullYear()) }}</span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <table\r\n role=\"grid\"\r\n [attr.aria-label]=\"caption(month.date)\"\r\n [attr.aria-multiselectable]=\"mode() !== 'single' ? true : null\"\r\n class=\"raqm-calendar-grid\"\r\n >\r\n <thead>\r\n <tr class=\"raqm-calendar-weekdays\">\r\n @if (showWeekNumber()) {\r\n <th class=\"raqm-calendar-week-number\" scope=\"col\">\r\n <span class=\"raqm-calendar-sr\">{{ labels().weekNumber }}</span>\r\n </th>\r\n }\r\n @for (weekdayDate of weekdays(); track $index) {\r\n <th\r\n scope=\"col\"\r\n [attr.aria-label]=\"format(weekdayDate, { weekday: 'long' })\"\r\n class=\"raqm-calendar-weekday\"\r\n >\r\n {{ weekday(weekdayDate) }}\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (week of month.weeks; track week.key) {\r\n <tr class=\"raqm-calendar-week\">\r\n @if (showWeekNumber()) {\r\n <th scope=\"row\" class=\"raqm-calendar-week-number\">{{ weekText(week.number) }}</th>\r\n }\r\n @for (day of week.days; track day.key) {\r\n <td\r\n [class]=\"'raqm-calendar-day ' + day.classes\"\r\n [attr.data-raqm-selected]=\"day.modifiers['selected'] ? '' : null\"\r\n [attr.data-raqm-today]=\"day.modifiers['today'] ? '' : null\"\r\n [attr.data-raqm-outside]=\"day.modifiers['outside'] ? '' : null\"\r\n [attr.data-raqm-disabled]=\"day.modifiers['disabled'] ? '' : null\"\r\n [attr.data-raqm-range-start]=\"day.modifiers['range_start'] ? '' : null\"\r\n [attr.data-raqm-range-end]=\"day.modifiers['range_end'] ? '' : null\"\r\n [attr.data-raqm-range-middle]=\"day.modifiers['range_middle'] ? '' : null\"\r\n [attr.aria-selected]=\"day.modifiers['selected']\"\r\n [attr.aria-disabled]=\"day.modifiers['disabled'] || null\"\r\n >\r\n @if (!day.modifiers['hidden']) {\r\n <button\r\n raqm-button=\"ghost\"\r\n raqm-calendar-day-button\r\n icon\r\n [date]=\"day.date\"\r\n [locale]=\"locale()\"\r\n [modifiers]=\"day.modifiers\"\r\n [disabled]=\"day.modifiers['disabled']\"\r\n [attr.tabindex]=\"isTabDay(day) ? 0 : -1\"\r\n [attr.data-raqm-key]=\"day.key\"\r\n [attr.aria-label]=\"dayLabel(day)\"\r\n [attr.aria-current]=\"day.modifiers['today'] ? 'date' : null\"\r\n (click)=\"selectDay(day)\"\r\n (keydown)=\"keydown($event, day)\"\r\n >\r\n @if (dayContent(); as content) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"content\"\r\n [ngTemplateOutletContext]=\"context(day)\"\r\n />\r\n } @else {\r\n {{ dayText(day.date) }}\r\n }\r\n </button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n</div>\r\n<div class=\"raqm-calendar-sr\" aria-live=\"polite\" aria-atomic=\"true\">\r\n @for (month of months(); track month.key) {\r\n {{ caption(month.date) }}\r\n }\r\n</div>\r\n@if (footer()) {\r\n <div role=\"status\">{{ footer() }}</div>\r\n}\r\n<div class=\"raqm-calendar-sr\" aria-live=\"polite\" aria-atomic=\"true\">\r\n {{ selectionAnnouncement() }}\r\n</div>\r\n","import { RaqmCalendarComponent, RaqmCalendarDayDirective } from './calendar';\r\nimport { RaqmCalendarDayButtonDirective } from './calendar-day-button.directive';\r\n\r\nexport { RaqmCalendarComponent, RaqmCalendarDayButtonDirective, RaqmCalendarDayDirective };\r\nexport const RaqmCalendar = [\r\n RaqmCalendarComponent,\r\n RaqmCalendarDayButtonDirective,\r\n RaqmCalendarDayDirective,\r\n] as const;\r\nexport type {\r\n RaqmDateRange,\r\n RaqmDateMatcher,\r\n RaqmDateMatchers,\r\n RaqmCalendarValue,\r\n RaqmCalendarModifiers,\r\n RaqmCalendarDayContext,\r\n RaqmCalendarFormatters,\r\n RaqmCalendarLabels,\r\n} from './calendar.types';\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, contentChildren } from "@angular/core";
|
|
3
|
+
var RaqmCardComponent = class RaqmCardComponent {
|
|
4
|
+
footers = contentChildren(RaqmCardFooterComponent, {
|
|
5
|
+
...ngDevMode ? { debugName: "footers" } : /* istanbul ignore next */ {},
|
|
6
|
+
descendants: false
|
|
7
|
+
});
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
9
|
+
minVersion: "12.0.0",
|
|
10
|
+
version: "22.2.2",
|
|
11
|
+
ngImport: i0,
|
|
12
|
+
type: RaqmCardComponent,
|
|
13
|
+
deps: [],
|
|
14
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
15
|
+
});
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
17
|
+
minVersion: "17.2.0",
|
|
18
|
+
version: "22.2.2",
|
|
19
|
+
type: RaqmCardComponent,
|
|
20
|
+
isStandalone: true,
|
|
21
|
+
selector: "raqm-card",
|
|
22
|
+
host: {
|
|
23
|
+
properties: { "class.raqm-card--has-footer": "footers().length > 0" },
|
|
24
|
+
classAttribute: "raqm-card"
|
|
25
|
+
},
|
|
26
|
+
queries: [{
|
|
27
|
+
propertyName: "footers",
|
|
28
|
+
predicate: RaqmCardFooterComponent,
|
|
29
|
+
isSignal: true
|
|
30
|
+
}],
|
|
31
|
+
ngImport: i0,
|
|
32
|
+
template: "<ng-content />",
|
|
33
|
+
isInline: true,
|
|
34
|
+
styles: [":host{--raqm-card-spacing: calc(var(--raqm-spacing) * 4);display:flex;flex-direction:column;gap:var(--raqm-card-spacing);min-inline-size:0;padding-block:var(--raqm-card-spacing);border-radius:var(--raqm-radius-xl);background-color:var(--raqm-card);color:var(--raqm-card-foreground);font-size:var(--raqm-font-size-sm);overflow:clip;box-shadow:0 0 0 1px color-mix(in srgb,var(--raqm-foreground) 10%,transparent)}:host.raqm-card--has-footer{padding-block-end:0}\n"],
|
|
35
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
39
|
+
minVersion: "12.0.0",
|
|
40
|
+
version: "22.2.2",
|
|
41
|
+
ngImport: i0,
|
|
42
|
+
type: RaqmCardComponent,
|
|
43
|
+
decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: "raqm-card",
|
|
47
|
+
template: "<ng-content />",
|
|
48
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49
|
+
host: {
|
|
50
|
+
class: "raqm-card",
|
|
51
|
+
"[class.raqm-card--has-footer]": "footers().length > 0"
|
|
52
|
+
},
|
|
53
|
+
styles: [":host{--raqm-card-spacing: calc(var(--raqm-spacing) * 4);display:flex;flex-direction:column;gap:var(--raqm-card-spacing);min-inline-size:0;padding-block:var(--raqm-card-spacing);border-radius:var(--raqm-radius-xl);background-color:var(--raqm-card);color:var(--raqm-card-foreground);font-size:var(--raqm-font-size-sm);overflow:clip;box-shadow:0 0 0 1px color-mix(in srgb,var(--raqm-foreground) 10%,transparent)}:host.raqm-card--has-footer{padding-block-end:0}\n"]
|
|
54
|
+
}]
|
|
55
|
+
}],
|
|
56
|
+
propDecorators: { footers: [{
|
|
57
|
+
type: i0.ContentChildren,
|
|
58
|
+
args: [i0.forwardRef(() => RaqmCardFooterComponent), {
|
|
59
|
+
descendants: false,
|
|
60
|
+
isSignal: true
|
|
61
|
+
}]
|
|
62
|
+
}] }
|
|
63
|
+
});
|
|
64
|
+
var RaqmCardHeaderComponent = class RaqmCardHeaderComponent {
|
|
65
|
+
actions = contentChildren(RaqmCardActionComponent, {
|
|
66
|
+
...ngDevMode ? { debugName: "actions" } : /* istanbul ignore next */ {},
|
|
67
|
+
descendants: false
|
|
68
|
+
});
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
70
|
+
minVersion: "12.0.0",
|
|
71
|
+
version: "22.2.2",
|
|
72
|
+
ngImport: i0,
|
|
73
|
+
type: RaqmCardHeaderComponent,
|
|
74
|
+
deps: [],
|
|
75
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
76
|
+
});
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
78
|
+
minVersion: "17.2.0",
|
|
79
|
+
version: "22.2.2",
|
|
80
|
+
type: RaqmCardHeaderComponent,
|
|
81
|
+
isStandalone: true,
|
|
82
|
+
selector: "raqm-card-header",
|
|
83
|
+
host: {
|
|
84
|
+
properties: { "class.raqm-card-header--has-action": "actions().length > 0" },
|
|
85
|
+
classAttribute: "raqm-card-header"
|
|
86
|
+
},
|
|
87
|
+
queries: [{
|
|
88
|
+
propertyName: "actions",
|
|
89
|
+
predicate: RaqmCardActionComponent,
|
|
90
|
+
isSignal: true
|
|
91
|
+
}],
|
|
92
|
+
ngImport: i0,
|
|
93
|
+
template: "<ng-content />",
|
|
94
|
+
isInline: true,
|
|
95
|
+
styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;grid-auto-rows:min-content;align-items:start;gap:var(--raqm-spacing);padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));min-inline-size:0;overflow-wrap:anywhere}:host.raqm-card-header--has-action{grid-template-columns:minmax(0,1fr) auto}\n"],
|
|
96
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
100
|
+
minVersion: "12.0.0",
|
|
101
|
+
version: "22.2.2",
|
|
102
|
+
ngImport: i0,
|
|
103
|
+
type: RaqmCardHeaderComponent,
|
|
104
|
+
decorators: [{
|
|
105
|
+
type: Component,
|
|
106
|
+
args: [{
|
|
107
|
+
selector: "raqm-card-header",
|
|
108
|
+
template: "<ng-content />",
|
|
109
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
110
|
+
host: {
|
|
111
|
+
class: "raqm-card-header",
|
|
112
|
+
"[class.raqm-card-header--has-action]": "actions().length > 0"
|
|
113
|
+
},
|
|
114
|
+
styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;grid-auto-rows:min-content;align-items:start;gap:var(--raqm-spacing);padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));min-inline-size:0;overflow-wrap:anywhere}:host.raqm-card-header--has-action{grid-template-columns:minmax(0,1fr) auto}\n"]
|
|
115
|
+
}]
|
|
116
|
+
}],
|
|
117
|
+
propDecorators: { actions: [{
|
|
118
|
+
type: i0.ContentChildren,
|
|
119
|
+
args: [i0.forwardRef(() => RaqmCardActionComponent), {
|
|
120
|
+
descendants: false,
|
|
121
|
+
isSignal: true
|
|
122
|
+
}]
|
|
123
|
+
}] }
|
|
124
|
+
});
|
|
125
|
+
var RaqmCardTitleComponent = class RaqmCardTitleComponent {
|
|
126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
127
|
+
minVersion: "12.0.0",
|
|
128
|
+
version: "22.2.2",
|
|
129
|
+
ngImport: i0,
|
|
130
|
+
type: RaqmCardTitleComponent,
|
|
131
|
+
deps: [],
|
|
132
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
133
|
+
});
|
|
134
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
135
|
+
minVersion: "14.0.0",
|
|
136
|
+
version: "22.2.2",
|
|
137
|
+
type: RaqmCardTitleComponent,
|
|
138
|
+
isStandalone: true,
|
|
139
|
+
selector: "raqm-card-title, h1[raqm-card-title], h2[raqm-card-title], h3[raqm-card-title], h4[raqm-card-title], h5[raqm-card-title], h6[raqm-card-title]",
|
|
140
|
+
host: { classAttribute: "raqm-card-title" },
|
|
141
|
+
ngImport: i0,
|
|
142
|
+
template: "<ng-content />",
|
|
143
|
+
isInline: true,
|
|
144
|
+
styles: [":host{display:block;min-inline-size:0;font-size:var(--raqm-font-size-base);font-weight:var(--raqm-font-weight-medium);line-height:var(--raqm-line-height-snug);overflow-wrap:anywhere}:host:is(h1,h2,h3,h4,h5,h6){margin:0}\n"],
|
|
145
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
149
|
+
minVersion: "12.0.0",
|
|
150
|
+
version: "22.2.2",
|
|
151
|
+
ngImport: i0,
|
|
152
|
+
type: RaqmCardTitleComponent,
|
|
153
|
+
decorators: [{
|
|
154
|
+
type: Component,
|
|
155
|
+
args: [{
|
|
156
|
+
selector: "raqm-card-title, h1[raqm-card-title], h2[raqm-card-title], h3[raqm-card-title], h4[raqm-card-title], h5[raqm-card-title], h6[raqm-card-title]",
|
|
157
|
+
template: "<ng-content />",
|
|
158
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
159
|
+
host: { class: "raqm-card-title" },
|
|
160
|
+
styles: [":host{display:block;min-inline-size:0;font-size:var(--raqm-font-size-base);font-weight:var(--raqm-font-weight-medium);line-height:var(--raqm-line-height-snug);overflow-wrap:anywhere}:host:is(h1,h2,h3,h4,h5,h6){margin:0}\n"]
|
|
161
|
+
}]
|
|
162
|
+
}]
|
|
163
|
+
});
|
|
164
|
+
var RaqmCardDescriptionComponent = class RaqmCardDescriptionComponent {
|
|
165
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
166
|
+
minVersion: "12.0.0",
|
|
167
|
+
version: "22.2.2",
|
|
168
|
+
ngImport: i0,
|
|
169
|
+
type: RaqmCardDescriptionComponent,
|
|
170
|
+
deps: [],
|
|
171
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
172
|
+
});
|
|
173
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
174
|
+
minVersion: "14.0.0",
|
|
175
|
+
version: "22.2.2",
|
|
176
|
+
type: RaqmCardDescriptionComponent,
|
|
177
|
+
isStandalone: true,
|
|
178
|
+
selector: "raqm-card-description, p[raqm-card-description]",
|
|
179
|
+
host: { classAttribute: "raqm-card-description" },
|
|
180
|
+
ngImport: i0,
|
|
181
|
+
template: "<ng-content />",
|
|
182
|
+
isInline: true,
|
|
183
|
+
styles: [":host{display:block;min-inline-size:0;margin:0;color:var(--raqm-muted-foreground);font-size:var(--raqm-font-size-sm);overflow-wrap:anywhere}\n"],
|
|
184
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
188
|
+
minVersion: "12.0.0",
|
|
189
|
+
version: "22.2.2",
|
|
190
|
+
ngImport: i0,
|
|
191
|
+
type: RaqmCardDescriptionComponent,
|
|
192
|
+
decorators: [{
|
|
193
|
+
type: Component,
|
|
194
|
+
args: [{
|
|
195
|
+
selector: "raqm-card-description, p[raqm-card-description]",
|
|
196
|
+
template: "<ng-content />",
|
|
197
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
198
|
+
host: { class: "raqm-card-description" },
|
|
199
|
+
styles: [":host{display:block;min-inline-size:0;margin:0;color:var(--raqm-muted-foreground);font-size:var(--raqm-font-size-sm);overflow-wrap:anywhere}\n"]
|
|
200
|
+
}]
|
|
201
|
+
}]
|
|
202
|
+
});
|
|
203
|
+
var RaqmCardContentComponent = class RaqmCardContentComponent {
|
|
204
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
205
|
+
minVersion: "12.0.0",
|
|
206
|
+
version: "22.2.2",
|
|
207
|
+
ngImport: i0,
|
|
208
|
+
type: RaqmCardContentComponent,
|
|
209
|
+
deps: [],
|
|
210
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
211
|
+
});
|
|
212
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
213
|
+
minVersion: "14.0.0",
|
|
214
|
+
version: "22.2.2",
|
|
215
|
+
type: RaqmCardContentComponent,
|
|
216
|
+
isStandalone: true,
|
|
217
|
+
selector: "raqm-card-content",
|
|
218
|
+
host: { classAttribute: "raqm-card-content" },
|
|
219
|
+
ngImport: i0,
|
|
220
|
+
template: "<ng-content />",
|
|
221
|
+
isInline: true,
|
|
222
|
+
styles: [":host{display:block;min-inline-size:0;padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4))}\n"],
|
|
223
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
227
|
+
minVersion: "12.0.0",
|
|
228
|
+
version: "22.2.2",
|
|
229
|
+
ngImport: i0,
|
|
230
|
+
type: RaqmCardContentComponent,
|
|
231
|
+
decorators: [{
|
|
232
|
+
type: Component,
|
|
233
|
+
args: [{
|
|
234
|
+
selector: "raqm-card-content",
|
|
235
|
+
template: "<ng-content />",
|
|
236
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
237
|
+
host: { class: "raqm-card-content" },
|
|
238
|
+
styles: [":host{display:block;min-inline-size:0;padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4))}\n"]
|
|
239
|
+
}]
|
|
240
|
+
}]
|
|
241
|
+
});
|
|
242
|
+
var RaqmCardFooterComponent = class RaqmCardFooterComponent {
|
|
243
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
244
|
+
minVersion: "12.0.0",
|
|
245
|
+
version: "22.2.2",
|
|
246
|
+
ngImport: i0,
|
|
247
|
+
type: RaqmCardFooterComponent,
|
|
248
|
+
deps: [],
|
|
249
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
250
|
+
});
|
|
251
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
252
|
+
minVersion: "14.0.0",
|
|
253
|
+
version: "22.2.2",
|
|
254
|
+
type: RaqmCardFooterComponent,
|
|
255
|
+
isStandalone: true,
|
|
256
|
+
selector: "raqm-card-footer",
|
|
257
|
+
host: { classAttribute: "raqm-card-footer" },
|
|
258
|
+
ngImport: i0,
|
|
259
|
+
template: "<ng-content />",
|
|
260
|
+
isInline: true,
|
|
261
|
+
styles: [":host{display:flex;flex-wrap:wrap;align-items:center;min-inline-size:0;padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));padding-block:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));border-block-start:1px solid var(--raqm-border);border-end-start-radius:var(--raqm-radius-xl);border-end-end-radius:var(--raqm-radius-xl);background-color:color-mix(in srgb,var(--raqm-muted) 50%,transparent)}\n"],
|
|
262
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
266
|
+
minVersion: "12.0.0",
|
|
267
|
+
version: "22.2.2",
|
|
268
|
+
ngImport: i0,
|
|
269
|
+
type: RaqmCardFooterComponent,
|
|
270
|
+
decorators: [{
|
|
271
|
+
type: Component,
|
|
272
|
+
args: [{
|
|
273
|
+
selector: "raqm-card-footer",
|
|
274
|
+
template: "<ng-content />",
|
|
275
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
276
|
+
host: { class: "raqm-card-footer" },
|
|
277
|
+
styles: [":host{display:flex;flex-wrap:wrap;align-items:center;min-inline-size:0;padding-inline:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));padding-block:var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));border-block-start:1px solid var(--raqm-border);border-end-start-radius:var(--raqm-radius-xl);border-end-end-radius:var(--raqm-radius-xl);background-color:color-mix(in srgb,var(--raqm-muted) 50%,transparent)}\n"]
|
|
278
|
+
}]
|
|
279
|
+
}]
|
|
280
|
+
});
|
|
281
|
+
var RaqmCardActionComponent = class RaqmCardActionComponent {
|
|
282
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
283
|
+
minVersion: "12.0.0",
|
|
284
|
+
version: "22.2.2",
|
|
285
|
+
ngImport: i0,
|
|
286
|
+
type: RaqmCardActionComponent,
|
|
287
|
+
deps: [],
|
|
288
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
289
|
+
});
|
|
290
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
291
|
+
minVersion: "14.0.0",
|
|
292
|
+
version: "22.2.2",
|
|
293
|
+
type: RaqmCardActionComponent,
|
|
294
|
+
isStandalone: true,
|
|
295
|
+
selector: "raqm-card-action",
|
|
296
|
+
host: { classAttribute: "raqm-card-action" },
|
|
297
|
+
ngImport: i0,
|
|
298
|
+
template: "<ng-content />",
|
|
299
|
+
isInline: true,
|
|
300
|
+
styles: [":host{grid-column:2;grid-row:1 / span 2;align-self:start;justify-self:end;min-inline-size:0}\n"],
|
|
301
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
305
|
+
minVersion: "12.0.0",
|
|
306
|
+
version: "22.2.2",
|
|
307
|
+
ngImport: i0,
|
|
308
|
+
type: RaqmCardActionComponent,
|
|
309
|
+
decorators: [{
|
|
310
|
+
type: Component,
|
|
311
|
+
args: [{
|
|
312
|
+
selector: "raqm-card-action",
|
|
313
|
+
template: "<ng-content />",
|
|
314
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
315
|
+
host: { class: "raqm-card-action" },
|
|
316
|
+
styles: [":host{grid-column:2;grid-row:1 / span 2;align-self:start;justify-self:end;min-inline-size:0}\n"]
|
|
317
|
+
}]
|
|
318
|
+
}]
|
|
319
|
+
});
|
|
320
|
+
const RaqmCard = [
|
|
321
|
+
RaqmCardComponent,
|
|
322
|
+
RaqmCardHeaderComponent,
|
|
323
|
+
RaqmCardTitleComponent,
|
|
324
|
+
RaqmCardDescriptionComponent,
|
|
325
|
+
RaqmCardContentComponent,
|
|
326
|
+
RaqmCardFooterComponent,
|
|
327
|
+
RaqmCardActionComponent
|
|
328
|
+
];
|
|
329
|
+
export { RaqmCard, RaqmCardActionComponent, RaqmCardComponent, RaqmCardContentComponent, RaqmCardDescriptionComponent, RaqmCardFooterComponent, RaqmCardHeaderComponent, RaqmCardTitleComponent };
|
|
330
|
+
|
|
331
|
+
//# sourceMappingURL=raqm-ui-card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raqm-ui-card.mjs","names":[],"sources":["../../../projects/ui/card/card.ts","../../../projects/ui/card/public-api.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, contentChildren } from '@angular/core';\r\n\r\n/** Passive surface; no role, tab stop, click output or state. */\r\n@Component({\r\n selector: 'raqm-card',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n --raqm-card-spacing: calc(var(--raqm-spacing) * 4);\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--raqm-card-spacing);\r\n min-inline-size: 0;\r\n padding-block: var(--raqm-card-spacing);\r\n border-radius: var(--raqm-radius-xl);\r\n background-color: var(--raqm-card);\r\n color: var(--raqm-card-foreground);\r\n font-size: var(--raqm-font-size-sm);\r\n overflow: clip;\r\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--raqm-foreground) 10%, transparent);\r\n }\r\n\r\n :host.raqm-card--has-footer {\r\n padding-block-end: 0;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-card',\r\n '[class.raqm-card--has-footer]': 'footers().length > 0',\r\n },\r\n})\r\nexport class RaqmCardComponent {\r\n /** Direct children only, so a nested card's footer cannot affect this layout. */\r\n protected readonly footers = contentChildren(RaqmCardFooterComponent, { descendants: false });\r\n}\r\n\r\n@Component({\r\n selector: 'raqm-card-header',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n grid-template-rows: auto auto;\r\n grid-auto-rows: min-content;\r\n align-items: start;\r\n gap: var(--raqm-spacing);\r\n padding-inline: var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));\r\n min-inline-size: 0;\r\n overflow-wrap: anywhere;\r\n }\r\n\r\n :host.raqm-card-header--has-action {\r\n grid-template-columns: minmax(0, 1fr) auto;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-card-header',\r\n '[class.raqm-card-header--has-action]': 'actions().length > 0',\r\n },\r\n})\r\nexport class RaqmCardHeaderComponent {\r\n protected readonly actions = contentChildren(RaqmCardActionComponent, { descendants: false });\r\n}\r\n\r\n@Component({\r\n selector:\r\n 'raqm-card-title, h1[raqm-card-title], h2[raqm-card-title], h3[raqm-card-title], h4[raqm-card-title], h5[raqm-card-title], h6[raqm-card-title]',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n min-inline-size: 0;\r\n font-size: var(--raqm-font-size-base);\r\n font-weight: var(--raqm-font-weight-medium);\r\n line-height: var(--raqm-line-height-snug);\r\n overflow-wrap: anywhere;\r\n }\r\n\r\n :host:is(h1, h2, h3, h4, h5, h6) {\r\n margin: 0;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-card-title' },\r\n})\r\nexport class RaqmCardTitleComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-card-description, p[raqm-card-description]',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n min-inline-size: 0;\r\n margin: 0;\r\n color: var(--raqm-muted-foreground);\r\n font-size: var(--raqm-font-size-sm);\r\n overflow-wrap: anywhere;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-card-description' },\r\n})\r\nexport class RaqmCardDescriptionComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-card-content',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n min-inline-size: 0;\r\n padding-inline: var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-card-content' },\r\n})\r\nexport class RaqmCardContentComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-card-footer',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n min-inline-size: 0;\r\n padding-inline: var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));\r\n padding-block: var(--raqm-card-spacing, calc(var(--raqm-spacing) * 4));\r\n border-block-start: 1px solid var(--raqm-border);\r\n border-end-start-radius: var(--raqm-radius-xl);\r\n border-end-end-radius: var(--raqm-radius-xl);\r\n background-color: color-mix(in srgb, var(--raqm-muted) 50%, transparent);\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-card-footer' },\r\n})\r\nexport class RaqmCardFooterComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-card-action',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n grid-column: 2;\r\n grid-row: 1 / span 2;\r\n align-self: start;\r\n justify-self: end;\r\n min-inline-size: 0;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-card-action' },\r\n})\r\nexport class RaqmCardActionComponent {}\r\n","// Public API for `@raqm/ui/card`; the root entry point re-exports these symbols.\r\nimport {\r\n RaqmCardActionComponent,\r\n RaqmCardComponent,\r\n RaqmCardContentComponent,\r\n RaqmCardDescriptionComponent,\r\n RaqmCardFooterComponent,\r\n RaqmCardHeaderComponent,\r\n RaqmCardTitleComponent,\r\n} from './card';\r\n\r\nexport {\r\n RaqmCardActionComponent,\r\n RaqmCardComponent,\r\n RaqmCardContentComponent,\r\n RaqmCardDescriptionComponent,\r\n RaqmCardFooterComponent,\r\n RaqmCardHeaderComponent,\r\n RaqmCardTitleComponent,\r\n};\r\n\r\n// A nested readonly array lets Angular imports accept `RaqmCard` directly.\r\nexport const RaqmCard = [\r\n RaqmCardComponent,\r\n RaqmCardHeaderComponent,\r\n RaqmCardTitleComponent,\r\n RaqmCardDescriptionComponent,\r\n RaqmCardContentComponent,\r\n RaqmCardFooterComponent,\r\n RaqmCardActionComponent,\r\n] as const;\r\n"],"mappings":"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"}
|