@nanahoshi/mona-ui 0.1.0 → 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.
Files changed (72) hide show
  1. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +11 -11
  2. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +17 -17
  3. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +26 -26
  4. package/fesm2022/nanahoshi-mona-ui-button.mjs +109 -107
  5. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +53 -53
  6. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +80 -80
  7. package/fesm2022/nanahoshi-mona-ui-chip.mjs +98 -98
  8. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +2 -2
  9. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +38 -38
  10. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +25 -25
  11. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +41 -37
  12. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +17 -19
  13. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +6 -6
  14. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +11 -13
  15. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +18 -20
  16. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +40 -40
  17. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +14 -16
  18. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +52 -52
  19. package/fesm2022/nanahoshi-mona-ui-editor.mjs +462 -81
  20. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +26 -26
  21. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +8 -8
  22. package/fesm2022/nanahoshi-mona-ui-filter.mjs +14 -14
  23. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-B2ETh-uI.mjs} +14 -14
  24. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DZk18LJC.mjs} +2 -2
  25. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-C7WKhhig.mjs +128 -0
  26. package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-BRiY0CDX.mjs} +13 -13
  27. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-BrYpFMyF.mjs +240 -0
  28. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-T9Bj98kl.mjs} +120 -120
  29. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  30. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +81 -81
  31. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +35 -35
  32. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +8 -8
  33. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +7 -7
  34. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +50 -50
  35. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +12 -14
  36. package/fesm2022/nanahoshi-mona-ui-notification.mjs +24 -24
  37. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +69 -69
  38. package/fesm2022/nanahoshi-mona-ui-pager.mjs +29 -29
  39. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +9 -9
  40. package/fesm2022/nanahoshi-mona-ui-popover.mjs +12 -12
  41. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +26 -26
  42. package/fesm2022/nanahoshi-mona-ui-popup.mjs +4 -4
  43. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +2 -2
  44. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +55 -55
  45. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +49 -49
  46. package/fesm2022/nanahoshi-mona-ui-slider.mjs +96 -96
  47. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +30 -30
  48. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +24 -24
  49. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +29 -29
  50. package/fesm2022/nanahoshi-mona-ui-switch.mjs +42 -42
  51. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +35 -39
  52. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +22 -22
  53. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +54 -54
  54. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +11 -19
  55. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +29 -29
  56. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +51 -51
  57. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +2 -2
  58. package/fesm2022/nanahoshi-mona-ui-window.mjs +27 -28
  59. package/package.json +30 -5
  60. package/types/nanahoshi-mona-ui-button.d.ts +4 -3
  61. package/types/nanahoshi-mona-ui-color-picker.d.ts +0 -3
  62. package/types/nanahoshi-mona-ui-dialog.d.ts +2 -2
  63. package/types/nanahoshi-mona-ui-editor.d.ts +17 -17
  64. package/types/nanahoshi-mona-ui-fieldset.d.ts +1 -1
  65. package/types/nanahoshi-mona-ui-filter.d.ts +2 -2
  66. package/types/nanahoshi-mona-ui-grid.d.ts +3 -3
  67. package/types/nanahoshi-mona-ui-internal-tree.d.ts +16 -16
  68. package/types/nanahoshi-mona-ui-menubar.d.ts +2 -2
  69. package/types/nanahoshi-mona-ui-stepper.d.ts +2 -2
  70. package/types/nanahoshi-mona-ui-tabs.d.ts +2 -2
  71. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +0 -130
  72. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +0 -240
@@ -3,12 +3,12 @@ import * as i0 from '@angular/core';
3
3
  import { inject, TemplateRef, Directive, computed, input, output, DestroyRef, ElementRef, signal, contentChild, linkedSignal, model, afterNextRender, effect, untracked, Component } from '@angular/core';
4
4
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { LucideChevronLeft, LucideChevronRight } from '@lucide/angular';
6
+ import { any, exactly, Dictionary, lastOrDefault, range, index, select } from '@mirei/ts-collections';
6
7
  import { ButtonDirective } from '@nanahoshi/mona-ui/button';
7
8
  import { PreventableEvent, TakeFirstPipe } from '@nanahoshi/mona-ui/common';
8
9
  import { CalendarService } from '@nanahoshi/mona-ui/date-input';
9
10
  import { createElementControlId, rxTimeout } from '@nanahoshi/mona-ui/internal';
10
11
  import { ThemeService } from '@nanahoshi/mona-ui/theme';
11
- import { any, exactly, Dictionary, lastOrDefault, range, index, select } from '@mirei/ts-collections';
12
12
  import { DateTime } from 'luxon';
13
13
  import { skip, fromEvent } from 'rxjs';
14
14
  import { twMerge } from 'tailwind-merge';
@@ -56,13 +56,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
56
56
  }]
57
57
  }] });
58
58
 
59
- const calendarBaseVariants = cva(`
60
- flex flex-col gap-2 p-2 min-w-64
61
- bg-background text-foreground
62
- border border-input-border
63
- shadow-sm select-none
64
- data-[invalid='true']:border-error
65
- data-[invalid='true']:ring-2 data-[invalid='true']:ring-error/40
59
+ const calendarBaseVariants = cva(`
60
+ flex flex-col gap-2 p-2 min-w-64
61
+ bg-background text-foreground
62
+ border border-input-border
63
+ shadow-sm select-none
64
+ data-[invalid='true']:border-error
65
+ data-[invalid='true']:ring-2 data-[invalid='true']:ring-error/40
66
66
  `, {
67
67
  variants: {
68
68
  disabled: {
@@ -80,18 +80,18 @@ const calendarBaseVariants = cva(`
80
80
  }
81
81
  }
82
82
  });
83
- const calendarHeaderVariants = cva(`
84
- flex items-center justify-center
85
- [&>button+button]:not-focus:border-s-0
86
- [&>button:nth-of-type(2)]:flex-1
87
- [&>button:nth-of-type(3)]:rounded-se-none
88
- [&>button:nth-of-type(3)]:rounded-ee-none
89
- [&>button:nth-of-type(4)]:rounded-ss-none
90
- [&>button:nth-of-type(4)]:rounded-es-none
91
- [&>button]:outline-none
83
+ const calendarHeaderVariants = cva(`
84
+ flex items-center justify-center
85
+ [&>button+button]:not-focus:border-s-0
86
+ [&>button:nth-of-type(2)]:flex-1
87
+ [&>button:nth-of-type(3)]:rounded-se-none
88
+ [&>button:nth-of-type(3)]:rounded-ee-none
89
+ [&>button:nth-of-type(4)]:rounded-ss-none
90
+ [&>button:nth-of-type(4)]:rounded-es-none
91
+ [&>button]:outline-none
92
92
  `);
93
- const calendarMonthViewDayVariants = cva(`
94
- hover:bg-hover cursor-pointer
93
+ const calendarMonthViewDayVariants = cva(`
94
+ hover:bg-hover cursor-pointer
95
95
  `, {
96
96
  variants: {
97
97
  disabled: {
@@ -131,31 +131,31 @@ const calendarMonthViewDayVariants = cva(`
131
131
  rounded: "medium"
132
132
  }
133
133
  });
134
- const calendarMonthViewGridVariants = cva(`
135
- grid gap-0.5
136
- justify-center
137
- [&>div]:h-full [&>div]:flex
138
- [&>div]:items-center [&>div]:justify-center
139
- [&>div]:aspect-square
134
+ const calendarMonthViewGridVariants = cva(`
135
+ grid gap-0.5
136
+ justify-center
137
+ [&>div]:h-full [&>div]:flex
138
+ [&>div]:items-center [&>div]:justify-center
139
+ [&>div]:aspect-square
140
140
  `);
141
- const calendarMonthViewGridHeaderVariants = cva(`
142
- grid justify-center
143
- gap-0.5 font-semibold text-sm
144
- [&>div]:h-full [&>div]:flex
145
- [&>div]:items-center [&>div]:justify-center
146
- [&>div]:aspect-square
141
+ const calendarMonthViewGridHeaderVariants = cva(`
142
+ grid justify-center
143
+ gap-0.5 font-semibold text-sm
144
+ [&>div]:h-full [&>div]:flex
145
+ [&>div]:items-center [&>div]:justify-center
146
+ [&>div]:aspect-square
147
147
  `);
148
- const calendarYearViewGridVariants = cva(`
149
- grid grid-cols-3 gap-0.5
150
- justify-center
151
- [&>div]:h-full [&>div]:flex
152
- [&>div]:items-center [&>div]:justify-center
153
- [&>div]:h-12
148
+ const calendarYearViewGridVariants = cva(`
149
+ grid grid-cols-3 gap-0.5
150
+ justify-center
151
+ [&>div]:h-full [&>div]:flex
152
+ [&>div]:items-center [&>div]:justify-center
153
+ [&>div]:h-12
154
154
  `);
155
- const calendarYearViewCellVariants = cva(`
156
- py-2 cursor-pointer
157
- hover:bg-hover
158
- active:bg-active
155
+ const calendarYearViewCellVariants = cva(`
156
+ py-2 cursor-pointer
157
+ hover:bg-hover
158
+ active:bg-active
159
159
  `, {
160
160
  variants: {
161
161
  focused: {
@@ -170,17 +170,17 @@ const calendarYearViewCellVariants = cva(`
170
170
  }
171
171
  }
172
172
  });
173
- const calendarDecadeViewGridVariants = cva(`
174
- grid grid-cols-4 gap-0.5
175
- justify-center
176
- [&>div]:h-full [&>div]:flex
177
- [&>div]:items-center [&>div]:justify-center
178
- [&>div]:h-12
173
+ const calendarDecadeViewGridVariants = cva(`
174
+ grid grid-cols-4 gap-0.5
175
+ justify-center
176
+ [&>div]:h-full [&>div]:flex
177
+ [&>div]:items-center [&>div]:justify-center
178
+ [&>div]:h-12
179
179
  `);
180
- const calendarDecadeViewCellVariants = cva(`
181
- py-2 cursor-pointer
182
- hover:bg-hover
183
- active:bg-active
180
+ const calendarDecadeViewCellVariants = cva(`
181
+ py-2 cursor-pointer
182
+ hover:bg-hover
183
+ active:bg-active
184
184
  `, {
185
185
  variants: {
186
186
  focused: {
@@ -1532,7 +1532,7 @@ class CalendarComponent {
1532
1532
  }
1533
1533
  }
1534
1534
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1535
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CalendarComponent, isStandalone: true, selector: "mona-calendar", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, firstDay: { classPropertyName: "firstDay", publicName: "firstDay", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, weekNumber: { classPropertyName: "weekNumber", publicName: "weekNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", touch: "touch", value: "valueChange" }, host: { attributes: { "role": "application" }, properties: { "attr.aria-label": "ariaLabel()", "attr.aria-invalid": "invalidState() ? 'true' : null", "attr.data-invalid": "invalidState() || null", "attr.data-required": "required() || null", "attr.tabindex": "disabled() ? -1 : 0", "class": "baseClass()" } }, queries: [{ propertyName: "decadeCellTemplate", first: true, predicate: CalendarDecadeCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "monthCellTemplate", first: true, predicate: CalendarMonthCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "yearCellTemplate", first: true, predicate: CalendarYearCellTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"headerClass()\">\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"'small'\"\r\n (click)=\"onTodayButtonClick()\"\r\n [attr.aria-label]=\"todayButtonLabel()\">\r\n <span>Today</span>\r\n </button>\r\n @switch (calendarView()) {\r\n @case (\"month\") {\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onViewChangeClick('year')\"\r\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\r\n navigatedDate() | date: \"MMMM yyyy\" : timezone\r\n }}</span>\r\n </button>\r\n }\r\n @case (\"year\") {\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onViewChangeClick('decade')\"\r\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\r\n navigatedDate() | date: \"yyyy\" : timezone\r\n }}</span>\r\n </button>\r\n }\r\n @case (\"decade\") {\r\n <button monaButton look=\"ghost\" [rounded]=\"rounded()\" [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\"\r\n >{{ decadeStart() }} - {{ decadeEnd() }}</span\r\n >\r\n </button>\r\n }\r\n }\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [iconOnly]=\"true\"\r\n [size]=\"'small'\"\r\n (click)=\"onNavigationClick('prev')\"\r\n [attr.aria-label]=\"prevButtonLabel()\">\r\n <svg lucideChevronLeft></svg>\r\n </button>\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [iconOnly]=\"true\"\r\n [size]=\"'small'\"\r\n (click)=\"onNavigationClick('next')\"\r\n [attr.aria-label]=\"nextButtonLabel()\">\r\n <svg lucideChevronRight></svg>\r\n </button>\r\n</div>\r\n\r\n<div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">{{ ariaLabel() }}</div>\r\n\r\n@if (calendarView() === \"month\") {\r\n @let columnCount = weekNumber() ? 8 : 7;\r\n <div [class]=\"monthGridHeaderClass()\" [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\r\n @if (weekNumber()) {\r\n <div></div>\r\n }\r\n @for (day of weekdays(); track day.short) {\r\n <div>{{ day.short }}</div>\r\n }\r\n </div>\r\n <div\r\n [class]=\"monthGridClass()\"\r\n [attr.aria-labelledby]=\"gridId + '-heading'\"\r\n (pointerleave)=\"onMonthGridPointerLeave()\"\r\n [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\r\n @for (row of monthDictChunked(); track $index) {\r\n @if (weekNumber()) {\r\n @let firstEntry = row | monaTakeFirst;\r\n @if (firstEntry) {\r\n @let week = firstEntry.key | date: \"w\";\r\n <div>{{ week }}</div>\r\n }\r\n }\r\n @for (entry of row; track entry.key) {\r\n <div\r\n (dayPointerEnter)=\"onDayPointerEnter($event)\"\r\n (daySelect)=\"onDayClick($event.date, $event.event)\"\r\n monaMonthDay\r\n [disabled]=\"disabled()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [monthBounds]=\"[monthBounds().start, monthBounds().end]\"\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rangePreview]=\"rangePreviewDates()\"\r\n [rounded]=\"rounded()\"\r\n [value]=\"selectedDates()\"\r\n [entry]=\"entry\">\r\n @if (monthCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"monthCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: entry.value, date: entry.key }\"></ng-container>\r\n } @else {\r\n <span>{{ entry.value }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n} @else if (calendarView() === \"year\") {\r\n <div [class]=\"yearGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\r\n @for (row of months(); track $index) {\r\n @for (monthItem of row; track monthItem) {\r\n <div\r\n (click)=\"onMonthClick(monthItem[0])\"\r\n monaYearMonth\r\n [month]=\"monthItem[0]\"\r\n [monthName]=\"monthItem[1]\"\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rounded]=\"rounded()\"\r\n [selectedDate]=\"selectedDates()[0]\">\r\n @if (yearCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"yearCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: monthItem[0], text: monthItem[1] }\">\r\n </ng-container>\r\n } @else {\r\n <span>{{ monthItem[1] }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n} @else if (calendarView() === \"decade\") {\r\n <div [class]=\"decadeGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\r\n @for (row of decadeYears(); track $index) {\r\n @for (year of row; track year) {\r\n <div\r\n (click)=\"onYearClick(year)\"\r\n monaDecadeYear\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rounded]=\"rounded()\"\r\n [year]=\"year\"\r\n [selectedDate]=\"selectedDates()[0]\">\r\n @if (decadeCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"decadeCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: year }\">\r\n </ng-container>\r\n } @else {\r\n <span>{{ year }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "directive", type: MonthDayDirective, selector: "[monaMonthDay]", inputs: ["disabled", "disabledDates", "entry", "max", "min", "monthBounds", "navigatedDate", "rangePreview", "rounded", "value"], outputs: ["dayPointerEnter", "daySelect"] }, { kind: "directive", type: DecadeYearDirective, selector: "[monaDecadeYear]", inputs: ["navigatedDate", "rounded", "selectedDate", "year"] }, { kind: "directive", type: YearMonthDirective, selector: "[monaYearMonth]", inputs: ["month", "monthName", "navigatedDate", "rounded", "selectedDate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TakeFirstPipe, name: "monaTakeFirst" }] }); }
1535
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CalendarComponent, isStandalone: true, selector: "mona-calendar", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, firstDay: { classPropertyName: "firstDay", publicName: "firstDay", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, weekNumber: { classPropertyName: "weekNumber", publicName: "weekNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", touch: "touch", value: "valueChange" }, host: { attributes: { "role": "application" }, properties: { "attr.aria-label": "ariaLabel()", "attr.aria-invalid": "invalidState() ? 'true' : null", "attr.data-invalid": "invalidState() || null", "attr.data-required": "required() || null", "attr.tabindex": "disabled() ? -1 : 0", "class": "baseClass()" } }, queries: [{ propertyName: "decadeCellTemplate", first: true, predicate: CalendarDecadeCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "monthCellTemplate", first: true, predicate: CalendarMonthCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "yearCellTemplate", first: true, predicate: CalendarYearCellTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"headerClass()\">\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [size]=\"'small'\"\n (click)=\"onTodayButtonClick()\"\n [attr.aria-label]=\"todayButtonLabel()\">\n <span>Today</span>\n </button>\n @switch (calendarView()) {\n @case (\"month\") {\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n (click)=\"onViewChangeClick('year')\"\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\n navigatedDate() | date: \"MMMM yyyy\" : timezone\n }}</span>\n </button>\n }\n @case (\"year\") {\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n (click)=\"onViewChangeClick('decade')\"\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\n navigatedDate() | date: \"yyyy\" : timezone\n }}</span>\n </button>\n }\n @case (\"decade\") {\n <button monaButton look=\"ghost\" [rounded]=\"rounded()\" [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\"\n >{{ decadeStart() }} - {{ decadeEnd() }}</span\n >\n </button>\n }\n }\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [iconOnly]=\"true\"\n [size]=\"'small'\"\n (click)=\"onNavigationClick('prev')\"\n [attr.aria-label]=\"prevButtonLabel()\">\n <svg lucideChevronLeft></svg>\n </button>\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [iconOnly]=\"true\"\n [size]=\"'small'\"\n (click)=\"onNavigationClick('next')\"\n [attr.aria-label]=\"nextButtonLabel()\">\n <svg lucideChevronRight></svg>\n </button>\n</div>\n\n<div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">{{ ariaLabel() }}</div>\n\n@if (calendarView() === \"month\") {\n @let columnCount = weekNumber() ? 8 : 7;\n <div [class]=\"monthGridHeaderClass()\" [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\n @if (weekNumber()) {\n <div></div>\n }\n @for (day of weekdays(); track day.short) {\n <div>{{ day.short }}</div>\n }\n </div>\n <div\n [class]=\"monthGridClass()\"\n [attr.aria-labelledby]=\"gridId + '-heading'\"\n (pointerleave)=\"onMonthGridPointerLeave()\"\n [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\n @for (row of monthDictChunked(); track $index) {\n @if (weekNumber()) {\n @let firstEntry = row | monaTakeFirst;\n @if (firstEntry) {\n @let week = firstEntry.key | date: \"w\";\n <div>{{ week }}</div>\n }\n }\n @for (entry of row; track entry.key) {\n <div\n (dayPointerEnter)=\"onDayPointerEnter($event)\"\n (daySelect)=\"onDayClick($event.date, $event.event)\"\n monaMonthDay\n [disabled]=\"disabled()\"\n [disabledDates]=\"disabledDates()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [monthBounds]=\"[monthBounds().start, monthBounds().end]\"\n [navigatedDate]=\"navigatedDate()\"\n [rangePreview]=\"rangePreviewDates()\"\n [rounded]=\"rounded()\"\n [value]=\"selectedDates()\"\n [entry]=\"entry\">\n @if (monthCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"monthCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: entry.value, date: entry.key }\"></ng-container>\n } @else {\n <span>{{ entry.value }}</span>\n }\n </div>\n }\n }\n </div>\n} @else if (calendarView() === \"year\") {\n <div [class]=\"yearGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\n @for (row of months(); track $index) {\n @for (monthItem of row; track monthItem) {\n <div\n (click)=\"onMonthClick(monthItem[0])\"\n monaYearMonth\n [month]=\"monthItem[0]\"\n [monthName]=\"monthItem[1]\"\n [navigatedDate]=\"navigatedDate()\"\n [rounded]=\"rounded()\"\n [selectedDate]=\"selectedDates()[0]\">\n @if (yearCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"yearCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: monthItem[0], text: monthItem[1] }\">\n </ng-container>\n } @else {\n <span>{{ monthItem[1] }}</span>\n }\n </div>\n }\n }\n </div>\n} @else if (calendarView() === \"decade\") {\n <div [class]=\"decadeGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\n @for (row of decadeYears(); track $index) {\n @for (year of row; track year) {\n <div\n (click)=\"onYearClick(year)\"\n monaDecadeYear\n [navigatedDate]=\"navigatedDate()\"\n [rounded]=\"rounded()\"\n [year]=\"year\"\n [selectedDate]=\"selectedDates()[0]\">\n @if (decadeCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"decadeCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: year }\">\n </ng-container>\n } @else {\n <span>{{ year }}</span>\n }\n </div>\n }\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "directive", type: MonthDayDirective, selector: "[monaMonthDay]", inputs: ["disabled", "disabledDates", "entry", "max", "min", "monthBounds", "navigatedDate", "rangePreview", "rounded", "value"], outputs: ["dayPointerEnter", "daySelect"] }, { kind: "directive", type: DecadeYearDirective, selector: "[monaDecadeYear]", inputs: ["navigatedDate", "rounded", "selectedDate", "year"] }, { kind: "directive", type: YearMonthDirective, selector: "[monaYearMonth]", inputs: ["month", "monthName", "navigatedDate", "rounded", "selectedDate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TakeFirstPipe, name: "monaTakeFirst" }] }); }
1536
1536
  }
1537
1537
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarComponent, decorators: [{
1538
1538
  type: Component,
@@ -1554,7 +1554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
1554
1554
  "[attr.data-required]": "required() || null",
1555
1555
  "[attr.tabindex]": "disabled() ? -1 : 0",
1556
1556
  "[class]": "baseClass()"
1557
- }, template: "<div [class]=\"headerClass()\">\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"'small'\"\r\n (click)=\"onTodayButtonClick()\"\r\n [attr.aria-label]=\"todayButtonLabel()\">\r\n <span>Today</span>\r\n </button>\r\n @switch (calendarView()) {\r\n @case (\"month\") {\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onViewChangeClick('year')\"\r\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\r\n navigatedDate() | date: \"MMMM yyyy\" : timezone\r\n }}</span>\r\n </button>\r\n }\r\n @case (\"year\") {\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onViewChangeClick('decade')\"\r\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\r\n navigatedDate() | date: \"yyyy\" : timezone\r\n }}</span>\r\n </button>\r\n }\r\n @case (\"decade\") {\r\n <button monaButton look=\"ghost\" [rounded]=\"rounded()\" [attr.aria-label]=\"viewSwitchButtonLabel()\">\r\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\"\r\n >{{ decadeStart() }} - {{ decadeEnd() }}</span\r\n >\r\n </button>\r\n }\r\n }\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [iconOnly]=\"true\"\r\n [size]=\"'small'\"\r\n (click)=\"onNavigationClick('prev')\"\r\n [attr.aria-label]=\"prevButtonLabel()\">\r\n <svg lucideChevronLeft></svg>\r\n </button>\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n [iconOnly]=\"true\"\r\n [size]=\"'small'\"\r\n (click)=\"onNavigationClick('next')\"\r\n [attr.aria-label]=\"nextButtonLabel()\">\r\n <svg lucideChevronRight></svg>\r\n </button>\r\n</div>\r\n\r\n<div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">{{ ariaLabel() }}</div>\r\n\r\n@if (calendarView() === \"month\") {\r\n @let columnCount = weekNumber() ? 8 : 7;\r\n <div [class]=\"monthGridHeaderClass()\" [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\r\n @if (weekNumber()) {\r\n <div></div>\r\n }\r\n @for (day of weekdays(); track day.short) {\r\n <div>{{ day.short }}</div>\r\n }\r\n </div>\r\n <div\r\n [class]=\"monthGridClass()\"\r\n [attr.aria-labelledby]=\"gridId + '-heading'\"\r\n (pointerleave)=\"onMonthGridPointerLeave()\"\r\n [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\r\n @for (row of monthDictChunked(); track $index) {\r\n @if (weekNumber()) {\r\n @let firstEntry = row | monaTakeFirst;\r\n @if (firstEntry) {\r\n @let week = firstEntry.key | date: \"w\";\r\n <div>{{ week }}</div>\r\n }\r\n }\r\n @for (entry of row; track entry.key) {\r\n <div\r\n (dayPointerEnter)=\"onDayPointerEnter($event)\"\r\n (daySelect)=\"onDayClick($event.date, $event.event)\"\r\n monaMonthDay\r\n [disabled]=\"disabled()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [monthBounds]=\"[monthBounds().start, monthBounds().end]\"\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rangePreview]=\"rangePreviewDates()\"\r\n [rounded]=\"rounded()\"\r\n [value]=\"selectedDates()\"\r\n [entry]=\"entry\">\r\n @if (monthCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"monthCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: entry.value, date: entry.key }\"></ng-container>\r\n } @else {\r\n <span>{{ entry.value }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n} @else if (calendarView() === \"year\") {\r\n <div [class]=\"yearGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\r\n @for (row of months(); track $index) {\r\n @for (monthItem of row; track monthItem) {\r\n <div\r\n (click)=\"onMonthClick(monthItem[0])\"\r\n monaYearMonth\r\n [month]=\"monthItem[0]\"\r\n [monthName]=\"monthItem[1]\"\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rounded]=\"rounded()\"\r\n [selectedDate]=\"selectedDates()[0]\">\r\n @if (yearCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"yearCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: monthItem[0], text: monthItem[1] }\">\r\n </ng-container>\r\n } @else {\r\n <span>{{ monthItem[1] }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n} @else if (calendarView() === \"decade\") {\r\n <div [class]=\"decadeGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\r\n @for (row of decadeYears(); track $index) {\r\n @for (year of row; track year) {\r\n <div\r\n (click)=\"onYearClick(year)\"\r\n monaDecadeYear\r\n [navigatedDate]=\"navigatedDate()\"\r\n [rounded]=\"rounded()\"\r\n [year]=\"year\"\r\n [selectedDate]=\"selectedDates()[0]\">\r\n @if (decadeCellTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"decadeCellTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: year }\">\r\n </ng-container>\r\n } @else {\r\n <span>{{ year }}</span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n}\r\n" }]
1557
+ }, template: "<div [class]=\"headerClass()\">\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [size]=\"'small'\"\n (click)=\"onTodayButtonClick()\"\n [attr.aria-label]=\"todayButtonLabel()\">\n <span>Today</span>\n </button>\n @switch (calendarView()) {\n @case (\"month\") {\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n (click)=\"onViewChangeClick('year')\"\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\n navigatedDate() | date: \"MMMM yyyy\" : timezone\n }}</span>\n </button>\n }\n @case (\"year\") {\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n (click)=\"onViewChangeClick('decade')\"\n [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\">{{\n navigatedDate() | date: \"yyyy\" : timezone\n }}</span>\n </button>\n }\n @case (\"decade\") {\n <button monaButton look=\"ghost\" [rounded]=\"rounded()\" [attr.aria-label]=\"viewSwitchButtonLabel()\">\n <span class=\"text-primary font-semibold\" [id]=\"gridId + '-heading'\"\n >{{ decadeStart() }} - {{ decadeEnd() }}</span\n >\n </button>\n }\n }\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [iconOnly]=\"true\"\n [size]=\"'small'\"\n (click)=\"onNavigationClick('prev')\"\n [attr.aria-label]=\"prevButtonLabel()\">\n <svg lucideChevronLeft></svg>\n </button>\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n [iconOnly]=\"true\"\n [size]=\"'small'\"\n (click)=\"onNavigationClick('next')\"\n [attr.aria-label]=\"nextButtonLabel()\">\n <svg lucideChevronRight></svg>\n </button>\n</div>\n\n<div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">{{ ariaLabel() }}</div>\n\n@if (calendarView() === \"month\") {\n @let columnCount = weekNumber() ? 8 : 7;\n <div [class]=\"monthGridHeaderClass()\" [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\n @if (weekNumber()) {\n <div></div>\n }\n @for (day of weekdays(); track day.short) {\n <div>{{ day.short }}</div>\n }\n </div>\n <div\n [class]=\"monthGridClass()\"\n [attr.aria-labelledby]=\"gridId + '-heading'\"\n (pointerleave)=\"onMonthGridPointerLeave()\"\n [style.grid-template-columns]=\"`repeat(${columnCount}, 32px)`\">\n @for (row of monthDictChunked(); track $index) {\n @if (weekNumber()) {\n @let firstEntry = row | monaTakeFirst;\n @if (firstEntry) {\n @let week = firstEntry.key | date: \"w\";\n <div>{{ week }}</div>\n }\n }\n @for (entry of row; track entry.key) {\n <div\n (dayPointerEnter)=\"onDayPointerEnter($event)\"\n (daySelect)=\"onDayClick($event.date, $event.event)\"\n monaMonthDay\n [disabled]=\"disabled()\"\n [disabledDates]=\"disabledDates()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [monthBounds]=\"[monthBounds().start, monthBounds().end]\"\n [navigatedDate]=\"navigatedDate()\"\n [rangePreview]=\"rangePreviewDates()\"\n [rounded]=\"rounded()\"\n [value]=\"selectedDates()\"\n [entry]=\"entry\">\n @if (monthCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"monthCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: entry.value, date: entry.key }\"></ng-container>\n } @else {\n <span>{{ entry.value }}</span>\n }\n </div>\n }\n }\n </div>\n} @else if (calendarView() === \"year\") {\n <div [class]=\"yearGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\n @for (row of months(); track $index) {\n @for (monthItem of row; track monthItem) {\n <div\n (click)=\"onMonthClick(monthItem[0])\"\n monaYearMonth\n [month]=\"monthItem[0]\"\n [monthName]=\"monthItem[1]\"\n [navigatedDate]=\"navigatedDate()\"\n [rounded]=\"rounded()\"\n [selectedDate]=\"selectedDates()[0]\">\n @if (yearCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"yearCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: monthItem[0], text: monthItem[1] }\">\n </ng-container>\n } @else {\n <span>{{ monthItem[1] }}</span>\n }\n </div>\n }\n }\n </div>\n} @else if (calendarView() === \"decade\") {\n <div [class]=\"decadeGridClass()\" [attr.aria-labelledby]=\"gridId + '-heading'\">\n @for (row of decadeYears(); track $index) {\n @for (year of row; track year) {\n <div\n (click)=\"onYearClick(year)\"\n monaDecadeYear\n [navigatedDate]=\"navigatedDate()\"\n [rounded]=\"rounded()\"\n [year]=\"year\"\n [selectedDate]=\"selectedDates()[0]\">\n @if (decadeCellTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"decadeCellTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: year }\">\n </ng-container>\n } @else {\n <span>{{ year }}</span>\n }\n </div>\n }\n }\n </div>\n}\n" }]
1558
1558
  }], ctorParameters: () => [], propDecorators: { decadeCellTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CalendarDecadeCellTemplateDirective), { isSignal: true }] }], monthCellTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CalendarMonthCellTemplateDirective), { isSignal: true }] }], yearCellTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CalendarYearCellTemplateDirective), { isSignal: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], firstDay: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDay", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], weekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekNumber", required: false }] }] } });
1559
1559
 
1560
1560
  /*
@@ -8,38 +8,38 @@ import { twMerge } from 'tailwind-merge';
8
8
  import { cva } from 'class-variance-authority';
9
9
 
10
10
  const checkboxVariants = cva(`sr-only appearance-none outline-none peer`);
11
- const checkmarkVariants = cva(`
12
- flex items-center justify-center
13
- w-4.5 h-4.5 pl-0.25
14
- overflow-hidden outline-none
15
-
16
- bg-input-background border border-input-border
17
- cursor-pointer
18
-
19
- data-[disabled='true']:pointer-events-none
20
- data-[disabled='true']:cursor-not-allowed
21
- data-[disabled='true']:opacity-50
22
-
23
- peer-focus-visible:ring-2 peer-focus-visible:ring-primary/40
24
- peer-focus-visible:border-primary
25
-
26
- peer-checked:bg-primary
27
- peer-checked:text-primary-foreground
28
-
29
- peer-indeterminate:bg-primary
30
- peer-indeterminate:text-primary-foreground
31
- peer-indeterminate:after:content-['']
32
- peer-indeterminate:after:absolute
33
- peer-indeterminate:after:inset-[3px_0_3px_0]
34
- peer-indeterminate:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14'%2F%3E%3C%2Fsvg%3E")]
35
- peer-indeterminate:after:[mask-repeat:no-repeat]
36
- peer-indeterminate:after:[mask-size:contain]
37
- peer-indeterminate:after:bg-current
38
-
39
- [&.ng-touched.ng-invalid]:border-error
40
-
41
- data-[invalid='true']:border-error
42
- data-[invalid='true']:ring-2 data-[invalid='true']:ring-error/40
11
+ const checkmarkVariants = cva(`
12
+ flex items-center justify-center
13
+ w-4.5 h-4.5 pl-0.25
14
+ overflow-hidden outline-none
15
+
16
+ bg-input-background border border-input-border
17
+ cursor-pointer
18
+
19
+ data-[disabled='true']:pointer-events-none
20
+ data-[disabled='true']:cursor-not-allowed
21
+ data-[disabled='true']:opacity-50
22
+
23
+ peer-focus-visible:ring-2 peer-focus-visible:ring-primary/40
24
+ peer-focus-visible:border-primary
25
+
26
+ peer-checked:bg-primary
27
+ peer-checked:text-primary-foreground
28
+
29
+ peer-indeterminate:bg-primary
30
+ peer-indeterminate:text-primary-foreground
31
+ peer-indeterminate:after:content-['']
32
+ peer-indeterminate:after:absolute
33
+ peer-indeterminate:after:inset-[3px_0_3px_0]
34
+ peer-indeterminate:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14'%2F%3E%3C%2Fsvg%3E")]
35
+ peer-indeterminate:after:[mask-repeat:no-repeat]
36
+ peer-indeterminate:after:[mask-size:contain]
37
+ peer-indeterminate:after:bg-current
38
+
39
+ [&.ng-touched.ng-invalid]:border-error
40
+
41
+ data-[invalid='true']:border-error
42
+ data-[invalid='true']:ring-2 data-[invalid='true']:ring-error/40
43
43
  `, {
44
44
  variants: {
45
45
  rounded: {
@@ -51,16 +51,16 @@ const checkmarkVariants = cva(`
51
51
  }
52
52
  }
53
53
  });
54
- const checkboxContainerLabelVariants = cva(`
55
- w-full h-full
56
- inline-flex items-center gap-2
57
- relative
58
-
59
- select-none
60
-
61
- data-[disabled='true']:pointer-events-none
62
- data-[disabled='true']:cursor-not-allowed
63
- data-[disabled='true']:opacity-50
54
+ const checkboxContainerLabelVariants = cva(`
55
+ w-full h-full
56
+ inline-flex items-center gap-2
57
+ relative
58
+
59
+ select-none
60
+
61
+ data-[disabled='true']:pointer-events-none
62
+ data-[disabled='true']:cursor-not-allowed
63
+ data-[disabled='true']:opacity-50
64
64
  `, {
65
65
  variants: {
66
66
  labelSize: {
@@ -70,42 +70,42 @@ const checkboxContainerLabelVariants = cva(`
70
70
  }
71
71
  }
72
72
  });
73
- const checkboxDirectiveVariants = cva(`
74
- appearance-none outline-none
75
- w-4.5 h-4.5
76
- bg-input-background border border-input-border
77
- cursor-pointer
78
- relative
79
-
80
- disabled:pointer-events-none
81
- disabled:cursor-not-allowed
82
- disabled:opacity-50
83
-
84
- checked:text-primary-foreground
85
- indeterminate:text-primary-foreground
86
- indeterminate:bg-primary
87
- checked:bg-primary
88
-
89
- focus-visible:ring-2 focus-visible:ring-primary/40
90
- focus-visible:border-primary
91
-
92
- checked:after:content-['']
93
- checked:after:absolute
94
- checked:after:inset-[1px_0_0_1px]
95
- checked:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%206%209%2017l-5-5'/%3E%3C/svg%3E")]
96
- checked:after:[mask-repeat:no-repeat]
97
- checked:after:[mask-size:contain]
98
- checked:after:bg-current
99
-
100
- indeterminate:after:content-['']
101
- indeterminate:after:absolute
102
- indeterminate:after:inset-[1px_0_1px_1px]
103
- indeterminate:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14'%2F%3E%3C%2Fsvg%3E")]
104
- indeterminate:after:[mask-repeat:no-repeat]
105
- indeterminate:after:[mask-size:contain]
106
- indeterminate:after:bg-current
107
-
108
- [&.ng-touched.ng-invalid]:border-error
73
+ const checkboxDirectiveVariants = cva(`
74
+ appearance-none outline-none
75
+ w-4.5 h-4.5
76
+ bg-input-background border border-input-border
77
+ cursor-pointer
78
+ relative
79
+
80
+ disabled:pointer-events-none
81
+ disabled:cursor-not-allowed
82
+ disabled:opacity-50
83
+
84
+ checked:text-primary-foreground
85
+ indeterminate:text-primary-foreground
86
+ indeterminate:bg-primary
87
+ checked:bg-primary
88
+
89
+ focus-visible:ring-2 focus-visible:ring-primary/40
90
+ focus-visible:border-primary
91
+
92
+ checked:after:content-['']
93
+ checked:after:absolute
94
+ checked:after:inset-[1px_0_0_1px]
95
+ checked:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%206%209%2017l-5-5'/%3E%3C/svg%3E")]
96
+ checked:after:[mask-repeat:no-repeat]
97
+ checked:after:[mask-size:contain]
98
+ checked:after:bg-current
99
+
100
+ indeterminate:after:content-['']
101
+ indeterminate:after:absolute
102
+ indeterminate:after:inset-[1px_0_1px_1px]
103
+ indeterminate:after:[mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23FFFFFF'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14'%2F%3E%3C%2Fsvg%3E")]
104
+ indeterminate:after:[mask-repeat:no-repeat]
105
+ indeterminate:after:[mask-size:contain]
106
+ indeterminate:after:bg-current
107
+
108
+ [&.ng-touched.ng-invalid]:border-error
109
109
  `, {
110
110
  variants: {
111
111
  rounded: {
@@ -278,7 +278,7 @@ class CheckBoxComponent {
278
278
  this.touch.emit();
279
279
  }
280
280
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CheckBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CheckBoxComponent, isStandalone: true, selector: "mona-check-box", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, labelSize: { classPropertyName: "labelSize", publicName: "labelSize", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", inputBlur: "inputBlur", inputChange: "inputChange", inputFocus: "inputFocus", touch: "touch" }, host: { properties: { "class": "'flex'", "attr.data-checked": "checked()", "attr.data-disabled": "disabled()", "attr.data-indeterminate": "indeterminate()" } }, ngImport: i0, template: "<label [class]=\"containerLabelClasses()\" [attr.data-disabled]=\"disabled()\">\r\n @if (labelPosition() === \"before\") {\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n }\r\n\r\n <input\r\n type=\"checkbox\"\r\n [disabled]=\"disabled()\"\r\n [indeterminate]=\"indeterminate()\"\r\n [required]=\"required()\"\r\n [ngModel]=\"checked()\"\r\n [tabindex]=\"disabled() ? -1 : tabIndex()\"\r\n [class]=\"checkBoxClasses()\"\r\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\r\n [attr.aria-invalid]=\"invalidState() ? 'true' : null\"\r\n [attr.aria-label]=\"label() || null\"\r\n (change)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"inputFocus.emit($event)\"\r\n (ngModelChange)=\"onCheckedChange($event)\"\r\n #checkBox />\r\n\r\n <span [class]=\"checkMarkClasses()\" [attr.data-invalid]=\"invalidState() || null\" aria-hidden=\"true\">\r\n @if (checked()) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"lucide lucide-check stroke-primary-foreground\">\r\n <path d=\"M18 6 9 17l-5-5\" />\r\n </svg>\r\n }\r\n </span>\r\n @if (labelPosition() === \"after\") {\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n }\r\n</label>\r\n\r\n<ng-template #labelTemplate>\r\n @if (label()) {\r\n <span>{{ label() }}</span>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox]:not([ngNoCva])[formControlName],input[type=checkbox]:not([ngNoCva])[formControl],input[type=checkbox]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CheckBoxComponent, isStandalone: true, selector: "mona-check-box", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, labelSize: { classPropertyName: "labelSize", publicName: "labelSize", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", inputBlur: "inputBlur", inputChange: "inputChange", inputFocus: "inputFocus", touch: "touch" }, host: { properties: { "class": "'flex'", "attr.data-checked": "checked()", "attr.data-disabled": "disabled()", "attr.data-indeterminate": "indeterminate()" } }, ngImport: i0, template: "<label [class]=\"containerLabelClasses()\" [attr.data-disabled]=\"disabled()\">\n @if (labelPosition() === \"before\") {\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n }\n\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [required]=\"required()\"\n [ngModel]=\"checked()\"\n [tabindex]=\"disabled() ? -1 : tabIndex()\"\n [class]=\"checkBoxClasses()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-invalid]=\"invalidState() ? 'true' : null\"\n [attr.aria-label]=\"label() || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"inputFocus.emit($event)\"\n (ngModelChange)=\"onCheckedChange($event)\"\n #checkBox />\n\n <span [class]=\"checkMarkClasses()\" [attr.data-invalid]=\"invalidState() || null\" aria-hidden=\"true\">\n @if (checked()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-check stroke-primary-foreground\">\n <path d=\"M18 6 9 17l-5-5\" />\n </svg>\n }\n </span>\n @if (labelPosition() === \"after\") {\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n }\n</label>\n\n<ng-template #labelTemplate>\n @if (label()) {\n <span>{{ label() }}</span>\n } @else {\n <ng-content></ng-content>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox]:not([ngNoCva])[formControlName],input[type=checkbox]:not([ngNoCva])[formControl],input[type=checkbox]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
282
282
  }
283
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CheckBoxComponent, decorators: [{
284
284
  type: Component,
@@ -287,7 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
287
287
  "[attr.data-checked]": "checked()",
288
288
  "[attr.data-disabled]": "disabled()",
289
289
  "[attr.data-indeterminate]": "indeterminate()"
290
- }, template: "<label [class]=\"containerLabelClasses()\" [attr.data-disabled]=\"disabled()\">\r\n @if (labelPosition() === \"before\") {\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n }\r\n\r\n <input\r\n type=\"checkbox\"\r\n [disabled]=\"disabled()\"\r\n [indeterminate]=\"indeterminate()\"\r\n [required]=\"required()\"\r\n [ngModel]=\"checked()\"\r\n [tabindex]=\"disabled() ? -1 : tabIndex()\"\r\n [class]=\"checkBoxClasses()\"\r\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\r\n [attr.aria-invalid]=\"invalidState() ? 'true' : null\"\r\n [attr.aria-label]=\"label() || null\"\r\n (change)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"inputFocus.emit($event)\"\r\n (ngModelChange)=\"onCheckedChange($event)\"\r\n #checkBox />\r\n\r\n <span [class]=\"checkMarkClasses()\" [attr.data-invalid]=\"invalidState() || null\" aria-hidden=\"true\">\r\n @if (checked()) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"lucide lucide-check stroke-primary-foreground\">\r\n <path d=\"M18 6 9 17l-5-5\" />\r\n </svg>\r\n }\r\n </span>\r\n @if (labelPosition() === \"after\") {\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n }\r\n</label>\r\n\r\n<ng-template #labelTemplate>\r\n @if (label()) {\r\n <span>{{ label() }}</span>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n</ng-template>\r\n" }]
290
+ }, template: "<label [class]=\"containerLabelClasses()\" [attr.data-disabled]=\"disabled()\">\n @if (labelPosition() === \"before\") {\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n }\n\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [required]=\"required()\"\n [ngModel]=\"checked()\"\n [tabindex]=\"disabled() ? -1 : tabIndex()\"\n [class]=\"checkBoxClasses()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-invalid]=\"invalidState() ? 'true' : null\"\n [attr.aria-label]=\"label() || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"inputFocus.emit($event)\"\n (ngModelChange)=\"onCheckedChange($event)\"\n #checkBox />\n\n <span [class]=\"checkMarkClasses()\" [attr.data-invalid]=\"invalidState() || null\" aria-hidden=\"true\">\n @if (checked()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-check stroke-primary-foreground\">\n <path d=\"M18 6 9 17l-5-5\" />\n </svg>\n }\n </span>\n @if (labelPosition() === \"after\") {\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n }\n</label>\n\n<ng-template #labelTemplate>\n @if (label()) {\n <span>{{ label() }}</span>\n } @else {\n <ng-content></ng-content>\n }\n</ng-template>\n" }]
291
291
  }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], inputBlur: [{ type: i0.Output, args: ["inputBlur"] }], inputChange: [{ type: i0.Output, args: ["inputChange"] }], inputFocus: [{ type: i0.Output, args: ["inputFocus"] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], labelSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelSize", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
292
292
 
293
293
  class CheckboxDirective {