{"version":3,"file":"origin-ui-components-calendar-rac.mjs","sources":["../../../../packages/components/calendar-rac/src/calendar-rac.ts","../../../../packages/components/calendar-rac/origin-ui-components-calendar-rac.ts"],"sourcesContent":["import { Component, computed, inject, input } from '@angular/core';\nimport { getLocalTimeZone, today } from '@internationalized/date';\nimport { cn } from '@origin-ui/components/utils';\nimport {\n    RdxCalendarCellDirective,\n    RdxCalendarCellTriggerDirective,\n    RdxCalendarGridBodyDirective,\n    RdxCalendarGridDirective,\n    RdxCalendarGridHeadDirective,\n    RdxCalendarGridRowDirective,\n    RdxCalendarHeadCellDirective,\n    RdxCalendarHeadingDirective,\n    RdxCalendarNextDirective,\n    RdxCalendarPrevDirective,\n    RdxCalendarRootDirective\n} from '@radix-ng/primitives/calendar';\nimport { ChevronLeft, ChevronRight, LucideAngularModule } from 'lucide-angular';\n\n@Component({\n    selector: 'ori-calendar-header',\n    imports: [\n        LucideAngularModule,\n        RdxCalendarPrevDirective,\n        RdxCalendarNextDirective,\n        RdxCalendarHeadingDirective\n    ],\n    template: `\n        <header class=\"flex w-full items-center gap-1 pb-1\">\n            <button\n                class=\"text-muted-foreground/80 hover:bg-accent hover:text-foreground focus-visible:ring-ring/50 flex size-9 items-center justify-center rounded-md transition-[color,box-shadow] outline-none focus-visible:ring-[3px]\"\n                type=\"button\"\n                rdxCalendarPrev\n            >\n                <lucide-angular [img]=\"ChevronLeft\" size=\"16\" />\n            </button>\n            <div class=\"grow text-center text-sm font-medium\" #head=\"rdxCalendarHeading\" rdxCalendarHeading>\n                {{ head.headingValue() }}\n            </div>\n            <button\n                class=\"text-muted-foreground/80 hover:bg-accent hover:text-foreground focus-visible:ring-ring/50 flex size-9 items-center justify-center rounded-md transition-[color,box-shadow] outline-none focus-visible:ring-[3px]\"\n                type=\"button\"\n                rdxCalendarNext\n            >\n                <lucide-angular [img]=\"ChevronRight\" size=\"16\" />\n            </button>\n        </header>\n    `\n})\nexport class OriCalendarHeader {\n    protected readonly ChevronLeft = ChevronLeft;\n    protected readonly ChevronRight = ChevronRight;\n}\n\n@Component({\n    selector: 'ori-calendar-grid-component',\n    imports: [\n        RdxCalendarGridDirective,\n        RdxCalendarGridHeadDirective,\n        RdxCalendarGridBodyDirective,\n        RdxCalendarGridRowDirective,\n        RdxCalendarHeadCellDirective,\n        RdxCalendarCellDirective,\n        RdxCalendarCellTriggerDirective\n    ],\n    template: `\n        <table rdxCalendarGrid>\n            @for (month of rootContext()?.months(); track $index) {\n                <thead rdxCalendarGridHead>\n                    <tr rdxCalendarGridRow>\n                        @for (day of rootContext()?.weekDays(); track $index) {\n                            <th\n                                class=\"text-muted-foreground/80 size-9 rounded-md p-0 text-xs font-medium\"\n                                rdxCalendarHeadCell\n                            >\n                                {{ day }}\n                            </th>\n                        }\n                    </tr>\n                </thead>\n                <tbody class=\"[&_td]:px-0 [&_td]:py-px\" rdxCalendarGridBody>\n                    @for (weekDates of month.weeks; track $index) {\n                        <tr>\n                            @for (weekDate of weekDates; track $index) {\n                                <td [date]=\"weekDate\" rdxCalendarCell>\n                                    <div\n                                        #cell=\"rdxCalendarCellTrigger\"\n                                        [day]=\"weekDate\"\n                                        [month]=\"month.value\"\n                                        [class]=\"\n                                            cn(\n                                                'text-foreground data-hovered:bg-accent data-selected:bg-primary data-hovered:text-foreground data-selected:text-primary-foreground focus:ring-ring/50 relative flex size-9 items-center justify-center rounded-md p-0 text-sm font-normal whitespace-nowrap [transition-property:color,background-color,border-radius,box-shadow] duration-150 outline-none focus:ring-[3px] data-disabled:pointer-events-none data-focus-visible:z-10 data-unavailable:pointer-events-none data-unavailable:line-through data-unavailable:opacity-30 data-[outside-view]:opacity-30',\n                                                isToday(weekDate)\n                                            )\n                                        \"\n                                        rdxCalendarCellTrigger\n                                    >\n                                        {{ cell.dayValue() }}\n                                    </div>\n                                </td>\n                            }\n                        </tr>\n                    }\n                </tbody>\n            }\n        </table>\n    `\n})\nexport class OriCalendarGridComponent {\n    readonly rootContext = input<RdxCalendarRootDirective>();\n\n    protected readonly cn = cn;\n\n    now = today(getLocalTimeZone());\n\n    isRange = false;\n\n    isToday(date: any) {\n        if (date.compare(this.now) === 0) {\n            return cn(\n                'after:bg-primary after:pointer-events-none after:absolute after:start-1/2 after:bottom-1 after:z-10 after:size-[3px] after:-translate-x-1/2 after:rounded-full',\n                this.isRange\n                    ? 'data-selection-end:after:bg-background data-selection-start:after:bg-background'\n                    : 'data-selected:after:bg-background'\n            );\n        }\n        return '';\n    }\n}\n\n@Component({\n    selector: 'ori-calendar',\n    imports: [\n        OriCalendarHeader,\n        OriCalendarGridComponent\n    ],\n    hostDirectives: [{ directive: RdxCalendarRootDirective, inputs: ['fixedWeeks', 'value'] }],\n    host: {\n        '[class]': 'hostClasses()'\n    },\n    template: `\n        <ori-calendar-header />\n        <ori-calendar-grid-component [rootContext]=\"rootContext\" />\n    `\n})\nexport class OriCalendar {\n    protected readonly rootContext = inject(RdxCalendarRootDirective, { host: true });\n\n    readonly class = input<string>();\n\n    protected hostClasses = computed(() => cn('w-fit block', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}