@weeehaoooz/talos-ui 0.1.0

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 (180) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -0
  3. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs +237 -0
  4. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +1 -0
  5. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +93 -0
  6. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +1 -0
  7. package/fesm2022/weeehaoooz-talos-ui-core.mjs +438 -0
  8. package/fesm2022/weeehaoooz-talos-ui-core.mjs.map +1 -0
  9. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +233 -0
  10. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +1 -0
  11. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +361 -0
  12. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +1 -0
  13. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +312 -0
  14. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +1 -0
  15. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +235 -0
  16. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +1 -0
  17. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +462 -0
  18. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +1 -0
  19. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +805 -0
  20. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +1 -0
  21. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +267 -0
  22. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +1 -0
  23. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +351 -0
  24. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +1 -0
  25. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +566 -0
  26. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +1 -0
  27. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +534 -0
  28. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +1 -0
  29. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +446 -0
  30. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +1 -0
  31. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +376 -0
  32. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +1 -0
  33. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +147 -0
  34. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +1 -0
  35. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +242 -0
  36. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +1 -0
  37. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +514 -0
  38. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +1 -0
  39. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +548 -0
  40. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +1 -0
  41. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +692 -0
  42. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +1 -0
  43. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +761 -0
  44. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +1 -0
  45. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +896 -0
  46. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +1 -0
  47. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +872 -0
  48. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +1 -0
  49. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +119 -0
  50. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +1 -0
  51. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +135 -0
  52. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +1 -0
  53. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +666 -0
  54. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +1 -0
  55. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +147 -0
  56. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +1 -0
  57. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +33 -0
  58. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +1 -0
  59. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +455 -0
  60. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +1 -0
  61. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +379 -0
  62. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +1 -0
  63. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +297 -0
  64. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +1 -0
  65. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +661 -0
  66. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +1 -0
  67. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +346 -0
  68. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +1 -0
  69. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +896 -0
  70. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +1 -0
  71. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +252 -0
  72. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +1 -0
  73. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +916 -0
  74. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +1 -0
  75. package/fesm2022/weeehaoooz-talos-ui-layout.mjs +851 -0
  76. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -0
  77. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +897 -0
  78. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -0
  79. package/fesm2022/weeehaoooz-talos-ui.mjs +17058 -0
  80. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -0
  81. package/package.json +203 -0
  82. package/schematics/collection.json +10 -0
  83. package/schematics/ng-add/index.d.ts +3 -0
  84. package/schematics/ng-add/index.js +99 -0
  85. package/schematics/ng-add/schema.d.ts +10 -0
  86. package/schematics/ng-add/schema.js +2 -0
  87. package/schematics/ng-add/schema.json +52 -0
  88. package/styles/_alert.scss +56 -0
  89. package/styles/_badge.scss +279 -0
  90. package/styles/_button-group.scss +470 -0
  91. package/styles/_buttons.scss +442 -0
  92. package/styles/_card.scss +18 -0
  93. package/styles/_dialog.scss +116 -0
  94. package/styles/_drop-zone.scss +19 -0
  95. package/styles/_form-controls.scss +660 -0
  96. package/styles/_slide-toggle.scss +171 -0
  97. package/styles/_status-tag.scss +108 -0
  98. package/styles/_timeline.scss +19 -0
  99. package/styles/_tooltip.scss +32 -0
  100. package/styles/_typography.scss +279 -0
  101. package/styles/_variables.scss +590 -0
  102. package/styles/index.scss +15 -0
  103. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +59 -0
  104. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +1 -0
  105. package/types/weeehaoooz-talos-ui-button-button.d.ts +38 -0
  106. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +1 -0
  107. package/types/weeehaoooz-talos-ui-core.d.ts +95 -0
  108. package/types/weeehaoooz-talos-ui-core.d.ts.map +1 -0
  109. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +119 -0
  110. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +1 -0
  111. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +135 -0
  112. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +1 -0
  113. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +144 -0
  114. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +1 -0
  115. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +83 -0
  116. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +1 -0
  117. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +255 -0
  118. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +1 -0
  119. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +204 -0
  120. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +1 -0
  121. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +101 -0
  122. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +1 -0
  123. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +138 -0
  124. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +1 -0
  125. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +161 -0
  126. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +1 -0
  127. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +212 -0
  128. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +1 -0
  129. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +259 -0
  130. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +1 -0
  131. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +147 -0
  132. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +1 -0
  133. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +32 -0
  134. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +1 -0
  135. package/types/weeehaoooz-talos-ui-form-affix.d.ts +88 -0
  136. package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +1 -0
  137. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +113 -0
  138. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +1 -0
  139. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +165 -0
  140. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +1 -0
  141. package/types/weeehaoooz-talos-ui-form-chips.d.ts +152 -0
  142. package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +1 -0
  143. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +144 -0
  144. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +1 -0
  145. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +138 -0
  146. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +1 -0
  147. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +148 -0
  148. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +1 -0
  149. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +44 -0
  150. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +1 -0
  151. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +48 -0
  152. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +1 -0
  153. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +227 -0
  154. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +1 -0
  155. package/types/weeehaoooz-talos-ui-form-form-field.d.ts +42 -0
  156. package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +1 -0
  157. package/types/weeehaoooz-talos-ui-form-input.d.ts +15 -0
  158. package/types/weeehaoooz-talos-ui-form-input.d.ts.map +1 -0
  159. package/types/weeehaoooz-talos-ui-form-otp.d.ts +111 -0
  160. package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +1 -0
  161. package/types/weeehaoooz-talos-ui-form-password-input.d.ts +145 -0
  162. package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +1 -0
  163. package/types/weeehaoooz-talos-ui-form-radio.d.ts +84 -0
  164. package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +1 -0
  165. package/types/weeehaoooz-talos-ui-form-range-input.d.ts +181 -0
  166. package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +1 -0
  167. package/types/weeehaoooz-talos-ui-form-rating.d.ts +110 -0
  168. package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +1 -0
  169. package/types/weeehaoooz-talos-ui-form-select-input.d.ts +195 -0
  170. package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +1 -0
  171. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +79 -0
  172. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +1 -0
  173. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +192 -0
  174. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +1 -0
  175. package/types/weeehaoooz-talos-ui-layout.d.ts +286 -0
  176. package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -0
  177. package/types/weeehaoooz-talos-ui-nav.d.ts +384 -0
  178. package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -0
  179. package/types/weeehaoooz-talos-ui.d.ts +5050 -0
  180. package/types/weeehaoooz-talos-ui.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weeehaoooz-talos-ui-form-date-picker.mjs","sources":["../../../projects/talos-ui/form/date-picker/date-picker.component.ts","../../../projects/talos-ui/form/date-picker/date-picker.component.html","../../../projects/talos-ui/form/date-picker/weeehaoooz-talos-ui-form-date-picker.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n ViewChild,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, OverlayModule } from '@angular/cdk/overlay';\nimport {\n addDays,\n addMonths,\n addWeeks,\n addYears,\n endOfDay,\n endOfMonth,\n getDate,\n getHours,\n getMinutes,\n getMonth,\n getSeconds,\n getYear,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isValid,\n set,\n setMonth,\n setYear,\n startOfDay,\n startOfMonth,\n startOfWeek,\n subDays,\n subMonths,\n subWeeks,\n subYears\n} from 'date-fns';\nimport { formatDate, parseFlexibleDate } from '@weeehaoooz/talos-ui/core';\n\nexport interface CalendarDay {\n date: Date;\n dayNumber: number;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isDisabled: boolean;\n isFocused: boolean;\n}\n\nexport interface CalendarMonth {\n name: string;\n monthIndex: number;\n isSelected: boolean;\n isCurrentMonth: boolean;\n isDisabled: boolean;\n}\n\nexport interface CalendarYear {\n year: number;\n isSelected: boolean;\n isCurrentYear: boolean;\n isDisabled: boolean;\n}\n\nlet uniqueDatePickerId = 0;\n\n@Component({\n selector: 'talos-date-picker',\n imports: [OverlayModule, CdkConnectedOverlay, CdkOverlayOrigin],\n templateUrl: './date-picker.component.html',\n styleUrl: './date-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-datepicker-host',\n '[class.is-open]': 'isOpen()',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.has-label]': '!!label()',\n '[class.is-floating]': 'isFloatingMode()',\n '[class.is-floated]': 'isFloated()',\n '[class.datepicker-sm]': 'size() === \"sm\"',\n '[class.datepicker-md]': 'size() === \"md\"',\n '[class.datepicker-lg]': 'size() === \"lg\"',\n '(keydown)': 'onKeyDown($event)',\n '(document:click)': 'onDocumentClick($event)'\n }\n})\nexport class DatePickerComponent implements ControlValueAccessor {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly placeholder = input<string>('Select date');\n readonly label = input<string>('');\n readonly floatingLabel = input<boolean>(false);\n readonly floating = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly clearable = input<boolean>(true);\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly displayFormat = input<string>('');\n readonly valueFormat = input<string>(''); // 'yyyy-MM-dd', 'yyyy-MM-dd HH:mm', 'date', or custom format tokens\n readonly showTime = input<boolean>(false);\n readonly use24Hour = input<boolean>(true);\n readonly showSeconds = input<boolean>(false);\n readonly minuteStep = input<number>(1);\n readonly minDate = input<string | Date | number | null>(null);\n readonly maxDate = input<string | Date | number | null>(null);\n readonly firstDayOfWeek = input<number>(0); // 0 = Sunday, 1 = Monday\n readonly filterDate = input<((date: Date) => boolean) | null>(null);\n\n // Signal Outputs\n readonly dateChange = output<unknown>();\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n // Element Refs\n @ViewChild('triggerEl') triggerEl?: ElementRef<HTMLDivElement>;\n @ViewChild('inputEl') inputEl?: ElementRef<HTMLInputElement>;\n\n // CDK Overlay Flexible Positioning Strategy\n readonly positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -4\n }\n ];\n\n // Component unique IDs for accessibility\n readonly componentId = `talos-datepicker-${uniqueDatePickerId++}`;\n readonly dialogId = `${this.componentId}-dialog`;\n\n // Component Internal State Signals\n readonly selectedDate = signal<Date | null>(null);\n readonly viewDate = signal<Date>(new Date());\n readonly viewMode = signal<'day' | 'month' | 'year'>('day');\n readonly isOpen = signal<boolean>(false);\n readonly isFocused = signal<boolean>(false);\n readonly isDisabledSignal = signal<boolean>(false);\n readonly isTouched = signal<boolean>(false);\n readonly focusedDate = signal<Date | null>(null);\n readonly inputText = signal<string>('');\n\n // Draft time signals (active when showTime is true)\n readonly draftHour = signal<number>(new Date().getHours());\n readonly draftMinute = signal<number>(new Date().getMinutes());\n readonly draftSecond = signal<number>(new Date().getSeconds());\n\n // Computed state\n readonly isFloatingMode = computed(() => this.floatingLabel() || this.floating());\n readonly isFloated = computed(() => {\n if (!this.isFloatingMode()) return false;\n return this.isOpen() || this.isFocused() || !!this.inputText() || this.selectedDate() !== null;\n });\n readonly effectiveDisabled = computed(() => this.disabled() || this.isDisabledSignal());\n\n readonly effectiveDisplayFormat = computed(() => {\n const fmt = this.displayFormat();\n if (fmt) return fmt;\n return this.showTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n });\n\n readonly effectiveValueFormat = computed(() => {\n const fmt = this.valueFormat();\n if (fmt) return fmt;\n return this.showTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n });\n\n readonly formattedValue = computed(() => {\n const sel = this.selectedDate();\n if (!sel || !isValid(sel)) {\n return '';\n }\n return formatDate(sel, this.effectiveDisplayFormat());\n });\n\n readonly displayHour = computed(() => {\n const h = this.draftHour();\n if (this.use24Hour()) {\n return h.toString().padStart(2, '0');\n }\n const h12 = h % 12 === 0 ? 12 : h % 12;\n return h12.toString().padStart(2, '0');\n });\n\n readonly displayMinute = computed(() => {\n return this.draftMinute().toString().padStart(2, '0');\n });\n\n readonly displaySecond = computed(() => {\n return this.draftSecond().toString().padStart(2, '0');\n });\n\n readonly meridiem = computed<'AM' | 'PM'>(() => {\n return this.draftHour() >= 12 ? 'PM' : 'AM';\n });\n\n readonly parsedMinDate = computed(() => {\n const min = this.minDate();\n if (!min) return null;\n const d = parseFlexibleDate(min);\n return d && isValid(d) ? (this.showTime() ? d : startOfDay(d)) : null;\n });\n\n readonly parsedMaxDate = computed(() => {\n const max = this.maxDate();\n if (!max) return null;\n const d = parseFlexibleDate(max);\n return d && isValid(d) ? (this.showTime() ? d : endOfDay(d)) : null;\n });\n\n readonly weekDayNames = computed(() => {\n const names: string[] = [];\n const firstDay = (this.firstDayOfWeek() % 7) as 0 | 1 | 2 | 3 | 4 | 5 | 6;\n const base = startOfWeek(new Date(), { weekStartsOn: firstDay });\n for (let i = 0; i < 7; i++) {\n names.push(formatDate(addDays(base, i), 'EEEEEE'));\n }\n return names;\n });\n\n readonly calendarDays = computed(() => {\n const view = this.viewDate();\n const sel = this.selectedDate();\n const foc = this.focusedDate();\n const min = this.parsedMinDate();\n const max = this.parsedMaxDate();\n const filter = this.filterDate();\n const firstDay = (this.firstDayOfWeek() % 7) as 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n const days: CalendarDay[] = [];\n const monthStart = startOfMonth(view);\n const gridStart = startOfWeek(monthStart, { weekStartsOn: firstDay });\n const today = startOfDay(new Date());\n\n for (let i = 0; i < 42; i++) {\n const current = addDays(gridStart, i);\n const isCurrentMonth = isSameMonth(current, view);\n const isToday = isSameDay(current, today);\n const isSelected = sel ? isSameDay(current, sel) : false;\n const isFocused = foc ? isSameDay(current, foc) : false;\n\n let isDisabled = false;\n if (min && isBefore(startOfDay(current), startOfDay(min))) {\n isDisabled = true;\n }\n if (max && isAfter(startOfDay(current), startOfDay(max))) {\n isDisabled = true;\n }\n if (filter && !filter(current)) {\n isDisabled = true;\n }\n\n days.push({\n date: current,\n dayNumber: getDate(current),\n isCurrentMonth,\n isToday,\n isSelected,\n isDisabled,\n isFocused\n });\n }\n\n return days;\n });\n\n readonly monthList = computed(() => {\n const view = this.viewDate();\n const sel = this.selectedDate();\n const min = this.parsedMinDate();\n const max = this.parsedMaxDate();\n const months: CalendarMonth[] = [];\n const now = new Date();\n const currentMonthIdx = getMonth(now);\n const viewYear = getYear(view);\n\n for (let i = 0; i < 12; i++) {\n const m = setMonth(view, i);\n const mEnd = endOfMonth(m);\n const mStart = startOfMonth(m);\n let isDisabled = false;\n if (min && isBefore(mEnd, startOfDay(min))) {\n isDisabled = true;\n }\n if (max && isAfter(mStart, endOfDay(max))) {\n isDisabled = true;\n }\n\n months.push({\n name: formatDate(m, 'MMM'),\n monthIndex: i,\n isSelected: sel ? getYear(sel) === viewYear && getMonth(sel) === i : false,\n isCurrentMonth: getYear(now) === viewYear && currentMonthIdx === i,\n isDisabled\n });\n }\n return months;\n });\n\n readonly yearList = computed(() => {\n const viewYear = getYear(this.viewDate());\n const sel = this.selectedDate();\n const min = this.parsedMinDate();\n const max = this.parsedMaxDate();\n const startYear = Math.floor(viewYear / 12) * 12;\n const years: CalendarYear[] = [];\n const currentYear = getYear(new Date());\n\n for (let i = 0; i < 12; i++) {\n const y = startYear + i;\n let isDisabled = false;\n if (min && y < getYear(min)) {\n isDisabled = true;\n }\n if (max && y > getYear(max)) {\n isDisabled = true;\n }\n\n years.push({\n year: y,\n isSelected: sel ? getYear(sel) === y : false,\n isCurrentYear: currentYear === y,\n isDisabled\n });\n }\n return years;\n });\n\n readonly isPrevDisabled = computed(() => {\n const min = this.parsedMinDate();\n if (!min) return false;\n const view = this.viewDate();\n const mode = this.viewMode();\n if (mode === 'day') {\n return !isAfter(startOfMonth(view), startOfMonth(min));\n } else if (mode === 'month') {\n return getYear(view) <= getYear(min);\n } else {\n const startYear = Math.floor(getYear(view) / 12) * 12;\n return startYear <= getYear(min);\n }\n });\n\n readonly isNextDisabled = computed(() => {\n const max = this.parsedMaxDate();\n if (!max) return false;\n const view = this.viewDate();\n const mode = this.viewMode();\n if (mode === 'day') {\n return !isBefore(endOfMonth(view), endOfMonth(max));\n } else if (mode === 'month') {\n return getYear(view) >= getYear(max);\n } else {\n const startYear = Math.floor(getYear(view) / 12) * 12;\n return startYear + 11 >= getYear(max);\n }\n });\n\n readonly isTodayDisabled = computed(() => {\n return this.isDateDisabled(startOfDay(new Date()));\n });\n\n readonly isNowDisabled = computed(() => {\n return this.isDateDisabled(new Date());\n });\n\n readonly currentHeaderLabel = computed(() => {\n const view = this.viewDate();\n const mode = this.viewMode();\n if (mode === 'day') {\n return formatDate(view, 'MMMM yyyy');\n } else if (mode === 'month') {\n return formatDate(view, 'yyyy');\n } else {\n const start = Math.floor(getYear(view) / 12) * 12;\n return `${start} - ${start + 11}`;\n }\n });\n\n // ControlValueAccessor Callbacks\n private onChange: (val: unknown) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor() {\n // Keep focused date synced with viewDate when viewDate changes\n effect(() => {\n if (!this.focusedDate()) {\n this.focusedDate.set(this.viewDate());\n }\n });\n\n // Keep inputText synced with selectedDate\n effect(() => {\n const sel = this.selectedDate();\n if (sel && isValid(sel)) {\n if (this.showTime()) {\n this.draftHour.set(getHours(sel));\n this.draftMinute.set(getMinutes(sel));\n this.draftSecond.set(getSeconds(sel));\n }\n this.inputText.set(formatDate(sel, this.effectiveDisplayFormat()));\n } else {\n this.inputText.set('');\n }\n });\n }\n\n // ControlValueAccessor Implementation\n writeValue(val: unknown): void {\n if (val === null || val === undefined || val === '') {\n this.selectedDate.set(null);\n return;\n }\n\n const parsed = parseFlexibleDate(val, [this.effectiveValueFormat(), this.effectiveDisplayFormat()]);\n\n if (parsed && isValid(parsed)) {\n this.selectedDate.set(parsed);\n this.viewDate.set(parsed);\n this.focusedDate.set(parsed);\n if (this.showTime()) {\n this.draftHour.set(getHours(parsed));\n this.draftMinute.set(getMinutes(parsed));\n this.draftSecond.set(getSeconds(parsed));\n }\n } else {\n this.selectedDate.set(null);\n }\n }\n\n registerOnChange(fn: (val: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabledSignal.set(isDisabled);\n }\n\n // Dropdown Controls\n toggleOpen(): void {\n if (this.effectiveDisabled()) return;\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.effectiveDisabled() || this.isOpen()) return;\n this.isOpen.set(true);\n this.viewMode.set('day');\n\n const sel = this.selectedDate();\n if (sel && isValid(sel)) {\n this.viewDate.set(sel);\n this.focusedDate.set(sel);\n if (this.showTime()) {\n this.draftHour.set(getHours(sel));\n this.draftMinute.set(getMinutes(sel));\n this.draftSecond.set(getSeconds(sel));\n }\n } else {\n const now = new Date();\n this.viewDate.set(now);\n this.focusedDate.set(now);\n if (this.showTime()) {\n this.draftHour.set(getHours(now));\n this.draftMinute.set(getMinutes(now));\n this.draftSecond.set(getSeconds(now));\n }\n }\n\n this.opened.emit();\n }\n\n close(): void {\n if (!this.isOpen()) return;\n this.isOpen.set(false);\n this.markAsTouched();\n this.closed.emit();\n }\n\n // Navigation & Selection Logic\n prevPeriod(): void {\n if (this.isPrevDisabled()) return;\n const mode = this.viewMode();\n if (mode === 'day') {\n this.viewDate.update((d) => subMonths(d, 1));\n } else if (mode === 'month') {\n this.viewDate.update((d) => subYears(d, 1));\n } else {\n this.viewDate.update((d) => subYears(d, 12));\n }\n }\n\n nextPeriod(): void {\n if (this.isNextDisabled()) return;\n const mode = this.viewMode();\n if (mode === 'day') {\n this.viewDate.update((d) => addMonths(d, 1));\n } else if (mode === 'month') {\n this.viewDate.update((d) => addYears(d, 1));\n } else {\n this.viewDate.update((d) => addYears(d, 12));\n }\n }\n\n toggleViewMode(): void {\n const current = this.viewMode();\n if (current === 'day') {\n this.viewMode.set('month');\n } else if (current === 'month') {\n this.viewMode.set('year');\n } else {\n this.viewMode.set('day');\n }\n }\n\n selectMonth(monthIdx: number): void {\n this.viewDate.update((d) => setMonth(d, monthIdx));\n this.viewMode.set('day');\n }\n\n selectYear(year: number): void {\n this.viewDate.update((d) => setYear(d, year));\n this.viewMode.set('month');\n }\n\n selectDay(day: CalendarDay): void {\n if (day.isDisabled) return;\n if (this.showTime()) {\n const baseDate = set(day.date, {\n hours: this.draftHour(),\n minutes: this.draftMinute(),\n seconds: this.draftSecond()\n });\n this.commitSelection(baseDate);\n } else {\n this.commitSelection(day.date);\n this.close();\n }\n }\n\n selectToday(): void {\n const today = startOfDay(new Date());\n if (this.isDateDisabled(today)) return;\n this.commitSelection(today);\n this.close();\n }\n\n selectNow(): void {\n const now = new Date();\n if (this.isDateDisabled(now)) return;\n this.draftHour.set(getHours(now));\n this.draftMinute.set(getMinutes(now));\n this.draftSecond.set(getSeconds(now));\n this.commitSelection(now);\n this.close();\n }\n\n applySelection(): void {\n const sel = this.selectedDate() || this.viewDate();\n const finalVal = set(sel, {\n hours: this.draftHour(),\n minutes: this.draftMinute(),\n seconds: this.draftSecond()\n });\n this.commitSelection(finalVal);\n this.close();\n }\n\n // Time Manipulations\n adjustHour(delta: number): void {\n this.draftHour.update((h) => (h + delta + 24) % 24);\n if (this.showTime()) this.updateSelectedTime();\n }\n\n adjustMinute(delta: number): void {\n const step = this.minuteStep();\n this.draftMinute.update((m) => (m + delta * step + 60) % 60);\n if (this.showTime()) this.updateSelectedTime();\n }\n\n adjustSecond(delta: number): void {\n this.draftSecond.update((s) => (s + delta + 60) % 60);\n if (this.showTime()) this.updateSelectedTime();\n }\n\n onHourInput(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n const rawVal = inputEl.value.replace(/\\D/g, '');\n if (rawVal === '') return;\n\n let num = parseInt(rawVal, 10);\n if (isNaN(num)) return;\n\n if (this.use24Hour()) {\n num = Math.max(0, Math.min(23, num));\n this.draftHour.set(num);\n } else {\n num = Math.max(1, Math.min(12, num));\n const isPm = this.meridiem() === 'PM';\n let h24: number;\n if (isPm) {\n h24 = num === 12 ? 12 : num + 12;\n } else {\n h24 = num === 12 ? 0 : num;\n }\n this.draftHour.set(h24);\n }\n this.updateSelectedTime();\n }\n\n onHourBlur(event: FocusEvent): void {\n const inputEl = event.target as HTMLInputElement;\n inputEl.value = this.displayHour();\n }\n\n onMinuteInput(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n const rawVal = inputEl.value.replace(/\\D/g, '');\n if (rawVal === '') return;\n\n let num = parseInt(rawVal, 10);\n if (isNaN(num)) return;\n\n num = Math.max(0, Math.min(59, num));\n this.draftMinute.set(num);\n this.updateSelectedTime();\n }\n\n onMinuteBlur(event: FocusEvent): void {\n const inputEl = event.target as HTMLInputElement;\n inputEl.value = this.displayMinute();\n }\n\n onSecondInput(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n const rawVal = inputEl.value.replace(/\\D/g, '');\n if (rawVal === '') return;\n\n let num = parseInt(rawVal, 10);\n if (isNaN(num)) return;\n\n num = Math.max(0, Math.min(59, num));\n this.draftSecond.set(num);\n this.updateSelectedTime();\n }\n\n onSecondBlur(event: FocusEvent): void {\n const inputEl = event.target as HTMLInputElement;\n inputEl.value = this.displaySecond();\n }\n\n onTimeInputKeydown(event: KeyboardEvent, type: 'hour' | 'minute' | 'second'): void {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n if (type === 'hour') this.adjustHour(1);\n else if (type === 'minute') this.adjustMinute(1);\n else if (type === 'second') this.adjustSecond(1);\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (type === 'hour') this.adjustHour(-1);\n else if (type === 'minute') this.adjustMinute(-1);\n else if (type === 'second') this.adjustSecond(-1);\n } else if (event.key === 'Enter') {\n event.preventDefault();\n this.applySelection();\n }\n }\n\n toggleMeridiem(): void {\n this.draftHour.update((h) => (h >= 12 ? h - 12 : h + 12));\n this.updateSelectedTime();\n }\n\n private updateSelectedTime(): void {\n const current = this.selectedDate() || this.viewDate();\n const updated = set(current, {\n hours: this.draftHour(),\n minutes: this.draftMinute(),\n seconds: this.draftSecond()\n });\n this.draftHour.set(getHours(updated));\n this.draftMinute.set(getMinutes(updated));\n this.draftSecond.set(getSeconds(updated));\n this.commitSelection(updated);\n }\n\n onClear(event: MouseEvent): void {\n event.stopPropagation();\n if (this.effectiveDisabled()) return;\n this.selectedDate.set(null);\n this.inputText.set('');\n this.onChange(null);\n this.dateChange.emit(null);\n }\n\n // Direct typing in trigger input field\n onInputChange(event: Event): void {\n const val = (event.target as HTMLInputElement).value;\n this.inputText.set(val);\n\n if (!val.trim()) {\n this.selectedDate.set(null);\n this.onChange(null);\n this.dateChange.emit(null);\n return;\n }\n\n const parsed = parseFlexibleDate(val, [this.effectiveDisplayFormat(), this.effectiveValueFormat()]);\n if (parsed && isValid(parsed) && !this.isDateDisabled(parsed)) {\n this.selectedDate.set(parsed);\n this.viewDate.set(parsed);\n this.focusedDate.set(parsed);\n if (this.showTime()) {\n this.draftHour.set(getHours(parsed));\n this.draftMinute.set(getMinutes(parsed));\n this.draftSecond.set(getSeconds(parsed));\n }\n const outValue = this.formatOutputValue(parsed);\n this.onChange(outValue);\n this.dateChange.emit(outValue);\n }\n }\n\n onInputFocus(): void {\n this.isFocused.set(true);\n }\n\n onInputBlur(event: FocusEvent): void {\n this.isFocused.set(false);\n const sel = this.selectedDate();\n if (sel && isValid(sel)) {\n this.inputText.set(formatDate(sel, this.effectiveDisplayFormat()));\n } else {\n this.inputText.set('');\n }\n this.markAsTouched();\n }\n\n onInputKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n const val = this.inputText();\n if (val.trim()) {\n const parsed = parseFlexibleDate(val, [this.effectiveDisplayFormat(), this.effectiveValueFormat()]);\n if (parsed && isValid(parsed) && !this.isDateDisabled(parsed)) {\n if (this.showTime()) {\n this.draftHour.set(getHours(parsed));\n this.draftMinute.set(getMinutes(parsed));\n this.draftSecond.set(getSeconds(parsed));\n }\n this.commitSelection(parsed);\n }\n }\n this.close();\n } else if (event.key === 'ArrowDown' || (event.altKey && event.key === 'ArrowDown')) {\n if (!this.isOpen()) {\n event.preventDefault();\n this.open();\n }\n } else if (event.key === 'Escape') {\n if (this.isOpen()) {\n event.preventDefault();\n this.close();\n }\n }\n }\n\n private commitSelection(date: Date): void {\n this.selectedDate.set(date);\n const outValue = this.formatOutputValue(date);\n this.onChange(outValue);\n this.dateChange.emit(outValue);\n }\n\n private formatOutputValue(date: Date): unknown {\n const fmt = this.effectiveValueFormat();\n if (fmt === 'date') {\n return date;\n } else if (fmt === 'iso') {\n return date.toISOString();\n } else {\n return formatDate(date, fmt);\n }\n }\n\n private isDateDisabled(date: Date): boolean {\n const min = this.parsedMinDate();\n const max = this.parsedMaxDate();\n const filter = this.filterDate();\n\n if (min && isBefore(startOfDay(date), startOfDay(min))) return true;\n if (max && isAfter(startOfDay(date), startOfDay(max))) return true;\n if (filter && !filter(date)) return true;\n return false;\n }\n\n markAsTouched(): void {\n if (!this.isTouched()) {\n this.isTouched.set(true);\n this.onTouched();\n }\n }\n\n // Keyboard accessibility\n onKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled()) return;\n\n if (!this.isOpen()) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n this.open();\n }\n return;\n }\n\n const currentFocused = this.focusedDate() || this.viewDate();\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n this.navigateKeyboardDay(subDays(currentFocused, 1));\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.navigateKeyboardDay(addDays(currentFocused, 1));\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.navigateKeyboardDay(subWeeks(currentFocused, 1));\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.navigateKeyboardDay(addWeeks(currentFocused, 1));\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (currentFocused && !this.isDateDisabled(currentFocused)) {\n if (this.showTime()) {\n const baseDate = set(currentFocused, {\n hours: this.draftHour(),\n minutes: this.draftMinute(),\n seconds: this.draftSecond()\n });\n this.commitSelection(baseDate);\n } else {\n this.commitSelection(currentFocused);\n this.close();\n }\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.close();\n this.triggerEl?.nativeElement.focus();\n break;\n\n case 'Tab':\n this.close();\n break;\n }\n }\n\n private navigateKeyboardDay(newDate: Date): void {\n if (!isSameMonth(newDate, this.viewDate())) {\n this.viewDate.set(newDate);\n }\n this.focusedDate.set(newDate);\n }\n\n onDocumentClick(event: MouseEvent): void {\n if (!this.isOpen()) return;\n const target = event.target as Node;\n const clickedInsideHost = this.elementRef.nativeElement.contains(target);\n const clickedInsideOverlay = target instanceof Element && !!target.closest('.datepicker-dropdown-panel');\n\n if (!clickedInsideHost && !clickedInsideOverlay) {\n this.close();\n }\n }\n}\n","@if (label() && !isFloatingMode()) {\n <label class=\"talos-field-label\" (click)=\"toggleOpen()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n}\n\n<div class=\"datepicker-control-container\">\n <!-- DatePicker Input Trigger -->\n <div #triggerEl cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"datepicker-trigger\" role=\"combobox\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-haspopup]=\"'dialog'\" [attr.aria-controls]=\"dialogId\"\n [attr.aria-disabled]=\"effectiveDisabled()\">\n <div class=\"datepicker-value-container\">\n <svg class=\"datepicker-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n aria-hidden=\"true\" (click)=\"toggleOpen()\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\n @if (showTime()) {\n <circle cx=\"12\" cy=\"15\" r=\"2.5\"></circle>\n <path d=\"M12 14v1.5l1 0.5\"></path>\n }\n </svg>\n <input #inputEl type=\"text\" class=\"datepicker-input\" [value]=\"inputText()\" [placeholder]=\"isFloatingMode() && !isFloated() ? '' : placeholder()\"\n [disabled]=\"effectiveDisabled()\" (input)=\"onInputChange($event)\" (focus)=\"onInputFocus()\" (blur)=\"onInputBlur($event)\"\n (keydown)=\"onInputKeyDown($event)\" aria-label=\"Date input\" />\n </div>\n\n @if (label() && isFloatingMode()) {\n <label class=\"talos-floating-label\" [class.is-floated]=\"isFloated()\" (click)=\"toggleOpen()\">\n {{ label() }}\n @if (required()) {\n <span class=\"required-star\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"datepicker-actions\">\n @if (clearable() && inputText() && !effectiveDisabled()) {\n <button type=\"button\" class=\"datepicker-clear-btn\" aria-label=\"Clear date\" title=\"Clear date\"\n (click)=\"onClear($event)\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n </div>\n</div>\n\n<!-- Calendar Dropdown Dialog -->\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayLockPosition]=\"false\" [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayPush]=\"true\" (detach)=\"close()\">\n <div class=\"datepicker-dropdown-panel\" [class.datetime-dropdown]=\"showTime()\" [id]=\"dialogId\" role=\"dialog\"\n aria-label=\"Date Picker Calendar\">\n <!-- Calendar Header Navigation -->\n <div class=\"datepicker-header\">\n <button type=\"button\" class=\"datepicker-nav-btn\" aria-label=\"Previous period\" title=\"Previous period\"\n [disabled]=\"isPrevDisabled()\" (click)=\"prevPeriod()\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n\n <button type=\"button\" class=\"datepicker-view-btn\" (click)=\"toggleViewMode()\">\n {{ currentHeaderLabel() }}\n </button>\n\n <button type=\"button\" class=\"datepicker-nav-btn\" aria-label=\"Next period\" title=\"Next period\"\n [disabled]=\"isNextDisabled()\" (click)=\"nextPeriod()\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n\n <!-- Day View -->\n @if (viewMode() === 'day') {\n <div class=\"datepicker-body\">\n <div class=\"datepicker-weekdays\">\n @for (dayName of weekDayNames(); track dayName) {\n <span class=\"weekday-cell\">{{ dayName }}</span>\n }\n </div>\n\n <div class=\"datepicker-days-grid\">\n @for (day of calendarDays(); track day.date.valueOf()) {\n <button type=\"button\" class=\"day-cell\" [class.is-other-month]=\"!day.isCurrentMonth\"\n [class.is-today]=\"day.isToday\" [class.is-selected]=\"day.isSelected\" [class.is-disabled]=\"day.isDisabled\"\n [class.is-focused]=\"day.isFocused\" [disabled]=\"day.isDisabled\" (click)=\"selectDay(day)\">\n {{ day.dayNumber }}\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Month View -->\n @if (viewMode() === 'month') {\n <div class=\"datepicker-months-grid\">\n @for (month of monthList(); track month.monthIndex) {\n <button type=\"button\" class=\"month-cell\" [class.is-selected]=\"month.isSelected\"\n [class.is-current]=\"month.isCurrentMonth\" [class.is-disabled]=\"month.isDisabled\" [disabled]=\"month.isDisabled\"\n (click)=\"selectMonth(month.monthIndex)\">\n {{ month.name }}\n </button>\n }\n </div>\n }\n\n <!-- Year View -->\n @if (viewMode() === 'year') {\n <div class=\"datepicker-years-grid\">\n @for (yr of yearList(); track yr.year) {\n <button type=\"button\" class=\"year-cell\" [class.is-selected]=\"yr.isSelected\" [class.is-current]=\"yr.isCurrentYear\"\n [class.is-disabled]=\"yr.isDisabled\" [disabled]=\"yr.isDisabled\" (click)=\"selectYear(yr.year)\">\n {{ yr.year }}\n </button>\n }\n </div>\n }\n\n <!-- Optional Time Picker Controls Bar -->\n @if (showTime()) {\n <div class=\"time-picker-section\">\n <div class=\"time-picker-label\">Time</div>\n <div class=\"time-picker-controls\">\n <!-- Hour Spinner -->\n <div class=\"time-spinner\">\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Increase hour\" (click)=\"adjustHour(1)\"\n tabindex=\"-1\">▲</button>\n <input type=\"text\" inputmode=\"numeric\" class=\"spinner-input\" [value]=\"displayHour()\"\n (input)=\"onHourInput($event)\" (blur)=\"onHourBlur($event)\" (keydown)=\"onTimeInputKeydown($event, 'hour')\"\n aria-label=\"Hour input\" />\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Decrease hour\" (click)=\"adjustHour(-1)\"\n tabindex=\"-1\">▼</button>\n </div>\n\n <span class=\"time-separator\">:</span>\n\n <!-- Minute Spinner -->\n <div class=\"time-spinner\">\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Increase minute\" (click)=\"adjustMinute(1)\"\n tabindex=\"-1\">▲</button>\n <input type=\"text\" inputmode=\"numeric\" class=\"spinner-input\" [value]=\"displayMinute()\"\n (input)=\"onMinuteInput($event)\" (blur)=\"onMinuteBlur($event)\"\n (keydown)=\"onTimeInputKeydown($event, 'minute')\" aria-label=\"Minute input\" />\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Decrease minute\" (click)=\"adjustMinute(-1)\"\n tabindex=\"-1\">▼</button>\n </div>\n\n <!-- Second Spinner (Optional) -->\n @if (showSeconds()) {\n <span class=\"time-separator\">:</span>\n <div class=\"time-spinner\">\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Increase second\" (click)=\"adjustSecond(1)\"\n tabindex=\"-1\">▲</button>\n <input type=\"text\" inputmode=\"numeric\" class=\"spinner-input\" [value]=\"displaySecond()\"\n (input)=\"onSecondInput($event)\" (blur)=\"onSecondBlur($event)\"\n (keydown)=\"onTimeInputKeydown($event, 'second')\" aria-label=\"Second input\" />\n <button type=\"button\" class=\"spinner-btn\" aria-label=\"Decrease second\" (click)=\"adjustSecond(-1)\"\n tabindex=\"-1\">▼</button>\n </div>\n }\n\n <!-- Meridiem Toggle (12h format) -->\n @if (!use24Hour()) {\n <button type=\"button\" class=\"meridiem-toggle-btn\" (click)=\"toggleMeridiem()\">\n {{ meridiem() }}\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Footer Actions -->\n <div class=\"datepicker-footer\" [class.datetime-footer]=\"showTime()\">\n @if (showTime()) {\n <button type=\"button\" class=\"datepicker-now-btn\" [disabled]=\"isNowDisabled()\" (click)=\"selectNow()\">\n Now\n </button>\n <button type=\"button\" class=\"datepicker-apply-btn\" (click)=\"applySelection()\">\n Apply\n </button>\n } @else {\n <button type=\"button\" class=\"datepicker-today-btn\" [disabled]=\"isTodayDisabled()\" (click)=\"selectToday()\">\n Today\n </button>\n }\n </div>\n </div>\n</ng-template>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}