yukit-web 0.0.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 (196) hide show
  1. package/.npm/_logs/2026-08-20T08_40_55_706Z-debug-0.log +38 -0
  2. package/.npm/_logs/2026-08-20T08_40_56_280Z-debug-0.log +14 -0
  3. package/README.md +1465 -0
  4. package/fesm2022/yukit-web-helm-accordion.mjs +141 -0
  5. package/fesm2022/yukit-web-helm-accordion.mjs.map +1 -0
  6. package/fesm2022/yukit-web-helm-alert-dialog.mjs +250 -0
  7. package/fesm2022/yukit-web-helm-alert-dialog.mjs.map +1 -0
  8. package/fesm2022/yukit-web-helm-alert.mjs +94 -0
  9. package/fesm2022/yukit-web-helm-alert.mjs.map +1 -0
  10. package/fesm2022/yukit-web-helm-aspect-ratio.mjs +47 -0
  11. package/fesm2022/yukit-web-helm-aspect-ratio.mjs.map +1 -0
  12. package/fesm2022/yukit-web-helm-attachment.mjs +211 -0
  13. package/fesm2022/yukit-web-helm-attachment.mjs.map +1 -0
  14. package/fesm2022/yukit-web-helm-autocomplete.mjs +361 -0
  15. package/fesm2022/yukit-web-helm-autocomplete.mjs.map +1 -0
  16. package/fesm2022/yukit-web-helm-avatar.mjs +152 -0
  17. package/fesm2022/yukit-web-helm-avatar.mjs.map +1 -0
  18. package/fesm2022/yukit-web-helm-badge.mjs +47 -0
  19. package/fesm2022/yukit-web-helm-badge.mjs.map +1 -0
  20. package/fesm2022/yukit-web-helm-breadcrumb.mjs +196 -0
  21. package/fesm2022/yukit-web-helm-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/yukit-web-helm-bubble.mjs +121 -0
  23. package/fesm2022/yukit-web-helm-bubble.mjs.map +1 -0
  24. package/fesm2022/yukit-web-helm-button-group.mjs +86 -0
  25. package/fesm2022/yukit-web-helm-button-group.mjs.map +1 -0
  26. package/fesm2022/yukit-web-helm-button.mjs +77 -0
  27. package/fesm2022/yukit-web-helm-button.mjs.map +1 -0
  28. package/fesm2022/yukit-web-helm-calendar.mjs +937 -0
  29. package/fesm2022/yukit-web-helm-calendar.mjs.map +1 -0
  30. package/fesm2022/yukit-web-helm-card.mjs +141 -0
  31. package/fesm2022/yukit-web-helm-card.mjs.map +1 -0
  32. package/fesm2022/yukit-web-helm-carousel.mjs +270 -0
  33. package/fesm2022/yukit-web-helm-carousel.mjs.map +1 -0
  34. package/fesm2022/yukit-web-helm-checkbox.mjs +147 -0
  35. package/fesm2022/yukit-web-helm-checkbox.mjs.map +1 -0
  36. package/fesm2022/yukit-web-helm-collapsible.mjs +62 -0
  37. package/fesm2022/yukit-web-helm-collapsible.mjs.map +1 -0
  38. package/fesm2022/yukit-web-helm-combobox.mjs +624 -0
  39. package/fesm2022/yukit-web-helm-combobox.mjs.map +1 -0
  40. package/fesm2022/yukit-web-helm-command.mjs +315 -0
  41. package/fesm2022/yukit-web-helm-command.mjs.map +1 -0
  42. package/fesm2022/yukit-web-helm-context-menu.mjs +71 -0
  43. package/fesm2022/yukit-web-helm-context-menu.mjs.map +1 -0
  44. package/fesm2022/yukit-web-helm-date-picker.mjs +1517 -0
  45. package/fesm2022/yukit-web-helm-date-picker.mjs.map +1 -0
  46. package/fesm2022/yukit-web-helm-dialog.mjs +271 -0
  47. package/fesm2022/yukit-web-helm-dialog.mjs.map +1 -0
  48. package/fesm2022/yukit-web-helm-drawer.mjs +233 -0
  49. package/fesm2022/yukit-web-helm-drawer.mjs.map +1 -0
  50. package/fesm2022/yukit-web-helm-dropdown-menu.mjs +508 -0
  51. package/fesm2022/yukit-web-helm-dropdown-menu.mjs.map +1 -0
  52. package/fesm2022/yukit-web-helm-empty.mjs +125 -0
  53. package/fesm2022/yukit-web-helm-empty.mjs.map +1 -0
  54. package/fesm2022/yukit-web-helm-field.mjs +325 -0
  55. package/fesm2022/yukit-web-helm-field.mjs.map +1 -0
  56. package/fesm2022/yukit-web-helm-hover-card.mjs +102 -0
  57. package/fesm2022/yukit-web-helm-hover-card.mjs.map +1 -0
  58. package/fesm2022/yukit-web-helm-input-group.mjs +171 -0
  59. package/fesm2022/yukit-web-helm-input-group.mjs.map +1 -0
  60. package/fesm2022/yukit-web-helm-input-otp.mjs +127 -0
  61. package/fesm2022/yukit-web-helm-input-otp.mjs.map +1 -0
  62. package/fesm2022/yukit-web-helm-input.mjs +32 -0
  63. package/fesm2022/yukit-web-helm-input.mjs.map +1 -0
  64. package/fesm2022/yukit-web-helm-item.mjs +242 -0
  65. package/fesm2022/yukit-web-helm-item.mjs.map +1 -0
  66. package/fesm2022/yukit-web-helm-kbd.mjs +46 -0
  67. package/fesm2022/yukit-web-helm-kbd.mjs.map +1 -0
  68. package/fesm2022/yukit-web-helm-label.mjs +30 -0
  69. package/fesm2022/yukit-web-helm-label.mjs.map +1 -0
  70. package/fesm2022/yukit-web-helm-marker.mjs +77 -0
  71. package/fesm2022/yukit-web-helm-marker.mjs.map +1 -0
  72. package/fesm2022/yukit-web-helm-menubar.mjs +90 -0
  73. package/fesm2022/yukit-web-helm-menubar.mjs.map +1 -0
  74. package/fesm2022/yukit-web-helm-message.mjs +115 -0
  75. package/fesm2022/yukit-web-helm-message.mjs.map +1 -0
  76. package/fesm2022/yukit-web-helm-native-select.mjs +180 -0
  77. package/fesm2022/yukit-web-helm-native-select.mjs.map +1 -0
  78. package/fesm2022/yukit-web-helm-navigation-menu.mjs +173 -0
  79. package/fesm2022/yukit-web-helm-navigation-menu.mjs.map +1 -0
  80. package/fesm2022/yukit-web-helm-pagination.mjs +745 -0
  81. package/fesm2022/yukit-web-helm-pagination.mjs.map +1 -0
  82. package/fesm2022/yukit-web-helm-popover.mjs +136 -0
  83. package/fesm2022/yukit-web-helm-popover.mjs.map +1 -0
  84. package/fesm2022/yukit-web-helm-progress.mjs +60 -0
  85. package/fesm2022/yukit-web-helm-progress.mjs.map +1 -0
  86. package/fesm2022/yukit-web-helm-radio-group.mjs +185 -0
  87. package/fesm2022/yukit-web-helm-radio-group.mjs.map +1 -0
  88. package/fesm2022/yukit-web-helm-resizable.mjs +98 -0
  89. package/fesm2022/yukit-web-helm-resizable.mjs.map +1 -0
  90. package/fesm2022/yukit-web-helm-scroll-area.mjs +36 -0
  91. package/fesm2022/yukit-web-helm-scroll-area.mjs.map +1 -0
  92. package/fesm2022/yukit-web-helm-select.mjs +412 -0
  93. package/fesm2022/yukit-web-helm-select.mjs.map +1 -0
  94. package/fesm2022/yukit-web-helm-separator.mjs +33 -0
  95. package/fesm2022/yukit-web-helm-separator.mjs.map +1 -0
  96. package/fesm2022/yukit-web-helm-sheet.mjs +254 -0
  97. package/fesm2022/yukit-web-helm-sheet.mjs.map +1 -0
  98. package/fesm2022/yukit-web-helm-sidebar.mjs +857 -0
  99. package/fesm2022/yukit-web-helm-sidebar.mjs.map +1 -0
  100. package/fesm2022/yukit-web-helm-skeleton.mjs +29 -0
  101. package/fesm2022/yukit-web-helm-skeleton.mjs.map +1 -0
  102. package/fesm2022/yukit-web-helm-slider.mjs +123 -0
  103. package/fesm2022/yukit-web-helm-slider.mjs.map +1 -0
  104. package/fesm2022/yukit-web-helm-sonner.mjs +126 -0
  105. package/fesm2022/yukit-web-helm-sonner.mjs.map +1 -0
  106. package/fesm2022/yukit-web-helm-spinner.mjs +48 -0
  107. package/fesm2022/yukit-web-helm-spinner.mjs.map +1 -0
  108. package/fesm2022/yukit-web-helm-switch.mjs +126 -0
  109. package/fesm2022/yukit-web-helm-switch.mjs.map +1 -0
  110. package/fesm2022/yukit-web-helm-table.mjs +180 -0
  111. package/fesm2022/yukit-web-helm-table.mjs.map +1 -0
  112. package/fesm2022/yukit-web-helm-tabs.mjs +251 -0
  113. package/fesm2022/yukit-web-helm-tabs.mjs.map +1 -0
  114. package/fesm2022/yukit-web-helm-textarea.mjs +32 -0
  115. package/fesm2022/yukit-web-helm-textarea.mjs.map +1 -0
  116. package/fesm2022/yukit-web-helm-toggle-group.mjs +95 -0
  117. package/fesm2022/yukit-web-helm-toggle-group.mjs.map +1 -0
  118. package/fesm2022/yukit-web-helm-toggle.mjs +61 -0
  119. package/fesm2022/yukit-web-helm-toggle.mjs.map +1 -0
  120. package/fesm2022/yukit-web-helm-tooltip.mjs +57 -0
  121. package/fesm2022/yukit-web-helm-tooltip.mjs.map +1 -0
  122. package/fesm2022/yukit-web-helm-typography.mjs +205 -0
  123. package/fesm2022/yukit-web-helm-typography.mjs.map +1 -0
  124. package/fesm2022/yukit-web-helm-utils.mjs +272 -0
  125. package/fesm2022/yukit-web-helm-utils.mjs.map +1 -0
  126. package/fesm2022/yukit-web.mjs +3592 -0
  127. package/fesm2022/yukit-web.mjs.map +1 -0
  128. package/package.json +291 -0
  129. package/src/lib/theme/spartan-overwrites/accordion.css +4 -0
  130. package/src/lib/theme/theme.css +161 -0
  131. package/src/lib/theme/tokens/color.css +356 -0
  132. package/src/lib/theme/tokens/component-colors.css +167 -0
  133. package/src/lib/theme/tokens/radius.css +18 -0
  134. package/src/lib/theme/tokens/typography.css +201 -0
  135. package/types/yukit-web-helm-accordion.d.ts +32 -0
  136. package/types/yukit-web-helm-alert-dialog.d.ts +85 -0
  137. package/types/yukit-web-helm-alert.d.ts +37 -0
  138. package/types/yukit-web-helm-aspect-ratio.d.ts +16 -0
  139. package/types/yukit-web-helm-attachment.d.ts +80 -0
  140. package/types/yukit-web-helm-autocomplete.d.ts +91 -0
  141. package/types/yukit-web-helm-avatar.d.ts +45 -0
  142. package/types/yukit-web-helm-badge.d.ts +19 -0
  143. package/types/yukit-web-helm-breadcrumb.d.ts +52 -0
  144. package/types/yukit-web-helm-bubble.d.ts +46 -0
  145. package/types/yukit-web-helm-button-group.d.ts +25 -0
  146. package/types/yukit-web-helm-button.d.ts +33 -0
  147. package/types/yukit-web-helm-calendar.d.ts +89 -0
  148. package/types/yukit-web-helm-card.d.ts +49 -0
  149. package/types/yukit-web-helm-carousel.d.ts +79 -0
  150. package/types/yukit-web-helm-checkbox.d.ts +60 -0
  151. package/types/yukit-web-helm-collapsible.d.ts +22 -0
  152. package/types/yukit-web-helm-combobox.d.ts +150 -0
  153. package/types/yukit-web-helm-command.d.ts +84 -0
  154. package/types/yukit-web-helm-context-menu.d.ts +29 -0
  155. package/types/yukit-web-helm-date-picker.d.ts +574 -0
  156. package/types/yukit-web-helm-dialog.d.ts +90 -0
  157. package/types/yukit-web-helm-drawer.d.ts +71 -0
  158. package/types/yukit-web-helm-dropdown-menu.d.ts +171 -0
  159. package/types/yukit-web-helm-empty.d.ts +49 -0
  160. package/types/yukit-web-helm-field.d.ts +102 -0
  161. package/types/yukit-web-helm-hover-card.d.ts +31 -0
  162. package/types/yukit-web-helm-input-group.d.ts +47 -0
  163. package/types/yukit-web-helm-input-otp.d.ts +40 -0
  164. package/types/yukit-web-helm-input.d.ts +13 -0
  165. package/types/yukit-web-helm-item.d.ts +96 -0
  166. package/types/yukit-web-helm-kbd.d.ts +17 -0
  167. package/types/yukit-web-helm-label.d.ts +12 -0
  168. package/types/yukit-web-helm-marker.d.ts +31 -0
  169. package/types/yukit-web-helm-menubar.d.ts +35 -0
  170. package/types/yukit-web-helm-message.d.ts +44 -0
  171. package/types/yukit-web-helm-native-select.d.ts +65 -0
  172. package/types/yukit-web-helm-navigation-menu.d.ts +49 -0
  173. package/types/yukit-web-helm-pagination.d.ts +187 -0
  174. package/types/yukit-web-helm-popover.d.ts +49 -0
  175. package/types/yukit-web-helm-progress.d.ts +22 -0
  176. package/types/yukit-web-helm-radio-group.d.ts +66 -0
  177. package/types/yukit-web-helm-resizable.d.ts +27 -0
  178. package/types/yukit-web-helm-scroll-area.d.ts +11 -0
  179. package/types/yukit-web-helm-select.d.ts +114 -0
  180. package/types/yukit-web-helm-separator.d.ts +13 -0
  181. package/types/yukit-web-helm-sheet.d.ts +75 -0
  182. package/types/yukit-web-helm-sidebar.d.ts +232 -0
  183. package/types/yukit-web-helm-skeleton.d.ts +11 -0
  184. package/types/yukit-web-helm-slider.d.ts +14 -0
  185. package/types/yukit-web-helm-sonner.d.ts +52 -0
  186. package/types/yukit-web-helm-spinner.d.ts +18 -0
  187. package/types/yukit-web-helm-switch.d.ts +54 -0
  188. package/types/yukit-web-helm-table.d.ts +82 -0
  189. package/types/yukit-web-helm-tabs.d.ts +66 -0
  190. package/types/yukit-web-helm-textarea.d.ts +13 -0
  191. package/types/yukit-web-helm-toggle-group.d.ts +34 -0
  192. package/types/yukit-web-helm-toggle.d.ts +22 -0
  193. package/types/yukit-web-helm-tooltip.d.ts +17 -0
  194. package/types/yukit-web-helm-typography.d.ts +89 -0
  195. package/types/yukit-web-helm-utils.d.ts +44 -0
  196. package/types/yukit-web.d.ts +2426 -0
@@ -0,0 +1,574 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ValueProvider } from '@angular/core';
3
+ import { BrnDateInput, BrnDatePickerTriggerBase, BrnDatePickerBase } from '@spartan-ng/brain/date-picker';
4
+ import * as i1 from 'yukit-web/helm/input-group';
5
+ import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
6
+ import { ControlValueAccessor } from '@angular/forms';
7
+ import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
8
+ import { BrnOverlayState } from '@spartan-ng/brain/overlay';
9
+ import * as _spartan_ng_brain_popover from '@spartan-ng/brain/popover';
10
+ import { BrnPopover, BrnPopoverAlign } from '@spartan-ng/brain/popover';
11
+ import * as i1$1 from '@spartan-ng/brain/field';
12
+ import { ClassValue } from 'clsx';
13
+
14
+ declare class HlmDateMultiInput<T> extends BrnDateInput<T[]> implements BrnDatePickerTriggerBase {
15
+ private readonly _config;
16
+ private readonly _fieldControl;
17
+ private readonly _invalid;
18
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
19
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
20
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
21
+ protected readonly _ariaInvalid: _angular_core.Signal<"true" | null>;
22
+ /**
23
+ * Parses input text into dates. Return `null` for invalid input - the
24
+ * picker's dates are cleared while the text is preserved so the user can
25
+ * fix it.
26
+ *
27
+ * Defaults to `parseDate` from `HlmDatePickerMultiConfig`.
28
+ */
29
+ readonly parseDate: _angular_core.InputSignal<(value: string) => T[] | null>;
30
+ /**
31
+ * Formats the current dates into the input/edit format shown while the
32
+ * input is focused. On blur the picker's display format is restored.
33
+ *
34
+ * Defaults to `formatInputDates` from `HlmDatePickerMultiConfig`.
35
+ */
36
+ readonly formatInputDates: _angular_core.InputSignal<(dates: T[]) => string>;
37
+ protected parseValue(value: string): T[] | null;
38
+ protected formatInputValue(value: T[]): string;
39
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDateMultiInput<any>, never>;
40
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDateMultiInput<any>, "hlm-date-multi-input", never, { "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; "formatInputDates": { "alias": "formatInputDates"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.HlmInputGroup; inputs: {}; outputs: {}; }]>;
41
+ }
42
+
43
+ declare const HLM_DATE_PICKER_VALUE_ACCESSOR: {
44
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
45
+ useExisting: _angular_core.Type<any>;
46
+ multi: boolean;
47
+ };
48
+ declare class HlmDatePicker<T> implements BrnDatePickerBase<T>, ControlValueAccessor {
49
+ private readonly _config;
50
+ readonly popover: _angular_core.Signal<BrnPopover>;
51
+ private readonly _trigger;
52
+ readonly align: _angular_core.InputSignal<BrnPopoverAlign>;
53
+ /** Show dropdowns to navigate between months or years. */
54
+ readonly captionLayout: _angular_core.InputSignal<"dropdown" | "label" | "dropdown-months" | "dropdown-years">;
55
+ /** The minimum date that can be selected. */
56
+ readonly minDate: _angular_core.InputSignal<T | undefined>;
57
+ /** The maximum date that can be selected. */
58
+ readonly maxDate: _angular_core.InputSignal<T | undefined>;
59
+ /** Determine if the date picker is disabled. */
60
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
61
+ /** The selected value. */
62
+ readonly date: _angular_core.InputSignal<T | undefined>;
63
+ /** The date the calendar focuses on first open when no date is selected. */
64
+ readonly defaultFocusedDate: _angular_core.InputSignal<T | undefined>;
65
+ protected readonly _mutableDate: _angular_core.WritableSignal<T | undefined>;
66
+ /** If true, the date picker will close when a date is selected. */
67
+ readonly autoCloseOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
68
+ /** Defines how the date should be displayed in the UI. */
69
+ readonly formatDate: _angular_core.InputSignal<(date: T) => string>;
70
+ /** Defines how the date should be transformed before saving to model/form. */
71
+ readonly transformDate: _angular_core.InputSignal<(date: T) => T>;
72
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnOverlayState | null>;
73
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
74
+ /** @internal The disabled state as a readonly signal */
75
+ readonly disabledState: _angular_core.Signal<boolean>;
76
+ readonly formattedDate: _angular_core.Signal<string | undefined>;
77
+ readonly dateChange: _angular_core.OutputEmitterRef<T | null>;
78
+ readonly labelableId: _angular_core.Signal<string | undefined>;
79
+ readonly hasDate: _angular_core.Signal<boolean>;
80
+ /** @internal The current raw value, used by inputs to reformat on focus. */
81
+ readonly value: _angular_core.Signal<NonNullable<T> | null>;
82
+ protected _onChange?: ChangeFn<T | null>;
83
+ protected _onTouched?: TouchFn;
84
+ protected _onStateChange(state: BrnOverlayState): void;
85
+ protected _handleChange(value: T | undefined): void;
86
+ /**
87
+ * Commit a date to the picker. Updates the internal model, notifies form
88
+ * controls, and emits `dateChange`. Unlike `_handleChange`, this does not
89
+ * close the popover - it's intended to be called from a text input that
90
+ * is parsing user-entered values while typing.
91
+ */
92
+ updateDate(value: T | null): void;
93
+ /** CONTROL VALUE ACCESSOR */
94
+ writeValue(value: T | null): void;
95
+ registerOnChange(fn: ChangeFn<T | null>): void;
96
+ registerOnTouched(fn: TouchFn): void;
97
+ touched(): void;
98
+ setDisabledState(isDisabled: boolean): void;
99
+ open(): void;
100
+ close(): void;
101
+ reset(): void;
102
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePicker<any>, never>;
103
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePicker<any>, "hlm-date-picker", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "captionLayout": { "alias": "captionLayout"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "defaultFocusedDate": { "alias": "defaultFocusedDate"; "required": false; "isSignal": true; }; "autoCloseOnSelect": { "alias": "autoCloseOnSelect"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "transformDate": { "alias": "transformDate"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, ["_trigger"], ["*", "[hlmDatePickerHeader]", "[hlmDatePickerFooter]"], true, [{ directive: typeof i1$1.BrnFieldControl; inputs: {}; outputs: {}; }]>;
104
+ }
105
+
106
+ declare class HlmDatePickerAnchor {
107
+ private readonly _host;
108
+ private readonly _brnOverlay;
109
+ readonly hlmDatePickerAnchorForInput: _angular_core.InputSignal<BrnPopover | undefined>;
110
+ readonly hlmDatePickerAnchorFor: _angular_core.WritableSignal<BrnPopover | undefined>;
111
+ constructor();
112
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerAnchor, never>;
113
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmDatePickerAnchor, "[hlmDatePickerAnchor]", never, { "hlmDatePickerAnchorForInput": { "alias": "hlmDatePickerAnchorFor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
114
+ }
115
+
116
+ declare class HlmDatePickerInput<T> extends BrnDateInput<T> implements BrnDatePickerTriggerBase {
117
+ private readonly _config;
118
+ private readonly _fieldControl;
119
+ private readonly _invalid;
120
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
121
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
122
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
123
+ protected readonly _ariaInvalid: _angular_core.Signal<"true" | null>;
124
+ /**
125
+ * Parses input text into a date value. Return `null` for invalid
126
+ * input - the picker's date is cleared while the text is preserved so
127
+ * the user can fix it.
128
+ *
129
+ * Defaults to `parseDate` from `HlmDatePickerConfig`.
130
+ */
131
+ readonly parseDate: _angular_core.InputSignal<(value: string) => T | null>;
132
+ /**
133
+ * Formats the current date into the input/edit format shown while the
134
+ * input is focused. On blur the picker's display format is restored.
135
+ *
136
+ * Defaults to `formatInputDate` from `HlmDatePickerConfig`.
137
+ */
138
+ readonly formatInputDate: _angular_core.InputSignal<(date: T) => string>;
139
+ protected parseValue(value: string): T | null;
140
+ protected formatInputValue(value: T): string;
141
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerInput<any>, never>;
142
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePickerInput<any>, "hlm-date-picker-input", never, { "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; "formatInputDate": { "alias": "formatInputDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.HlmInputGroup; inputs: {}; outputs: {}; }]>;
143
+ }
144
+
145
+ declare const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR: {
146
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
147
+ useExisting: _angular_core.Type<any>;
148
+ multi: boolean;
149
+ };
150
+ declare class HlmDatePickerMulti<T> implements BrnDatePickerBase<T[]>, ControlValueAccessor {
151
+ private readonly _config;
152
+ readonly popover: _angular_core.Signal<BrnPopover>;
153
+ private readonly _trigger;
154
+ readonly align: _angular_core.InputSignal<BrnPopoverAlign>;
155
+ /** Show dropdowns to navigate between months or years. */
156
+ readonly captionLayout: _angular_core.InputSignal<"dropdown" | "label" | "dropdown-months" | "dropdown-years">;
157
+ /** The minimum date that can be selected.*/
158
+ readonly minDate: _angular_core.InputSignal<T | undefined>;
159
+ /** The maximum date that can be selected. */
160
+ readonly maxDate: _angular_core.InputSignal<T | undefined>;
161
+ /** The minimum selectable dates. */
162
+ readonly minSelection: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
163
+ /** The maximum selectable dates. */
164
+ readonly maxSelection: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
165
+ /** Determine if the date picker is disabled. */
166
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
167
+ /** The selected value. */
168
+ readonly date: _angular_core.InputSignal<T[] | undefined>;
169
+ protected readonly _mutableDate: _angular_core.WritableSignal<T[] | undefined>;
170
+ /** If true, the date picker will close when the max selection of dates is reached. */
171
+ readonly autoCloseOnMaxSelection: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
172
+ /** Defines how the date should be displayed in the UI. */
173
+ readonly formatDates: _angular_core.InputSignal<(date: T[]) => string>;
174
+ /** Defines how the date should be transformed before saving to model/form. */
175
+ readonly transformDates: _angular_core.InputSignal<(date: T[]) => T[]>;
176
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnOverlayState | null>;
177
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
178
+ /** @internal The disabled state as a readonly signal */
179
+ readonly disabledState: _angular_core.Signal<boolean>;
180
+ readonly formattedDate: _angular_core.Signal<string | undefined>;
181
+ readonly dateChange: _angular_core.OutputEmitterRef<T[]>;
182
+ readonly labelableId: _angular_core.Signal<string | undefined>;
183
+ readonly hasDate: _angular_core.Signal<boolean>;
184
+ /** @internal The current raw value, used by inputs to reformat on focus. */
185
+ readonly value: _angular_core.Signal<T[] | null>;
186
+ protected _onChange?: ChangeFn<T[]>;
187
+ protected _onTouched?: TouchFn;
188
+ protected _onStateChange(state: BrnOverlayState): void;
189
+ protected _handleChange(value: T[] | undefined): void;
190
+ /**
191
+ * Commit dates to the picker. Updates the internal model, notifies form
192
+ * controls, and emits `dateChange`. Intended to be called from a text input
193
+ * that parses user-entered values. Pass `null` to clear the selection.
194
+ */
195
+ updateDate(value: T[] | null): void;
196
+ touched(): void;
197
+ /** CONTROL VALUE ACCESSOR */
198
+ writeValue(value: T[] | null): void;
199
+ registerOnChange(fn: ChangeFn<T[]>): void;
200
+ registerOnTouched(fn: TouchFn): void;
201
+ setDisabledState(isDisabled: boolean): void;
202
+ open(): void;
203
+ close(): void;
204
+ reset(): void;
205
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerMulti<any>, never>;
206
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePickerMulti<any>, "hlm-date-picker-multi", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "captionLayout": { "alias": "captionLayout"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minSelection": { "alias": "minSelection"; "required": false; "isSignal": true; }; "maxSelection": { "alias": "maxSelection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "autoCloseOnMaxSelection": { "alias": "autoCloseOnMaxSelection"; "required": false; "isSignal": true; }; "formatDates": { "alias": "formatDates"; "required": false; "isSignal": true; }; "transformDates": { "alias": "transformDates"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, ["_trigger"], ["*", "[hlmDatePickerHeader]", "[hlmDatePickerFooter]"], true, [{ directive: typeof i1$1.BrnFieldControl; inputs: {}; outputs: {}; }]>;
207
+ }
208
+
209
+ declare class HlmDatePickerTrigger implements BrnDatePickerTriggerBase {
210
+ private static _nextId;
211
+ private readonly _fieldControl;
212
+ private readonly _datePicker;
213
+ private readonly _invalid;
214
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
215
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
216
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
217
+ protected readonly _ariaInvalid: _angular_core.Signal<"true" | null>;
218
+ readonly userClass: _angular_core.InputSignal<ClassValue>;
219
+ protected readonly _computedClass: _angular_core.Signal<string>;
220
+ protected readonly _isPlaceholder: _angular_core.Signal<boolean>;
221
+ /** The id of the button that opens the date picker. */
222
+ readonly buttonId: _angular_core.InputSignal<string>;
223
+ /** @internal The id of the button that opens the date picker, used for labeling. */
224
+ readonly triggerId: _angular_core.InputSignal<string>;
225
+ /** Forces the invalid state visually, regardless of form control state. */
226
+ readonly forceInvalid: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
227
+ readonly variant: _angular_core.InputSignal<"default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined>;
228
+ readonly showTrigger: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
229
+ protected readonly _popover: _angular_core.Signal<_spartan_ng_brain_popover.BrnPopover>;
230
+ protected readonly _disabled: _angular_core.Signal<boolean>;
231
+ protected readonly _formattedDate: _angular_core.Signal<string | undefined>;
232
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerTrigger, never>;
233
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePickerTrigger, "hlm-date-picker-trigger", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "buttonId": { "alias": "buttonId"; "required": false; "isSignal": true; }; "forceInvalid": { "alias": "forceInvalid"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "showTrigger": { "alias": "showTrigger"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
234
+ }
235
+
236
+ declare class HlmDateRangeInput<T> extends BrnDateInput<[T, T]> implements BrnDatePickerTriggerBase {
237
+ private readonly _config;
238
+ private readonly _fieldControl;
239
+ private readonly _invalid;
240
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
241
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
242
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
243
+ protected readonly _ariaInvalid: _angular_core.Signal<"true" | null>;
244
+ /**
245
+ * Parses input text into a date range. Return `null` for invalid
246
+ * input - the picker's range is cleared while the text is preserved so
247
+ * the user can fix it.
248
+ *
249
+ * Defaults to `parseDate` from `HlmDateRangePickerConfig`.
250
+ */
251
+ readonly parseDate: _angular_core.InputSignal<(value: string) => [T, T] | null>;
252
+ /**
253
+ * Formats the current range into the input/edit format shown while the
254
+ * input is focused. On blur the picker's display format is restored.
255
+ *
256
+ * Defaults to `formatInputDates` from `HlmDateRangePickerConfig`.
257
+ */
258
+ readonly formatInputDates: _angular_core.InputSignal<(dates: [T | null, T | null]) => string>;
259
+ protected parseValue(value: string): [T, T] | null;
260
+ protected formatInputValue(value: [T, T]): string;
261
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDateRangeInput<any>, never>;
262
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDateRangeInput<any>, "hlm-date-range-input", never, { "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; "formatInputDates": { "alias": "formatInputDates"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.HlmInputGroup; inputs: {}; outputs: {}; }]>;
263
+ }
264
+
265
+ declare const HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR: {
266
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
267
+ useExisting: _angular_core.Type<any>;
268
+ multi: boolean;
269
+ };
270
+ declare class HlmDateRangePicker<T> implements BrnDatePickerBase<[T, T]>, ControlValueAccessor {
271
+ private readonly _config;
272
+ readonly popover: _angular_core.Signal<BrnPopover>;
273
+ private readonly _trigger;
274
+ readonly align: _angular_core.InputSignal<BrnPopoverAlign>;
275
+ /** Show dropdowns to navigate between months or years. */
276
+ readonly captionLayout: _angular_core.InputSignal<"dropdown" | "label" | "dropdown-months" | "dropdown-years">;
277
+ /** The minimum date that can be selected.*/
278
+ readonly minDate: _angular_core.InputSignal<T | undefined>;
279
+ /** The maximum date that can be selected. */
280
+ readonly maxDate: _angular_core.InputSignal<T | undefined>;
281
+ /** Determine if the date picker is disabled. */
282
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
283
+ /** The selected value. */
284
+ readonly date: _angular_core.InputSignal<[T, T] | undefined>;
285
+ protected readonly _mutableDate: _angular_core.WritableSignal<[T, T] | undefined>;
286
+ protected readonly _start: _angular_core.WritableSignal<T | undefined>;
287
+ protected readonly _end: _angular_core.WritableSignal<T | undefined>;
288
+ /** If true, the date picker will close when the end date is selected */
289
+ readonly autoCloseOnEndSelection: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
290
+ /** Defines how the date should be displayed in the UI. */
291
+ readonly formatDates: _angular_core.InputSignal<(dates: [T | null, T | null]) => string>;
292
+ /** Defines how the date should be transformed before saving to model/form. */
293
+ readonly transformDates: _angular_core.InputSignal<(date: [T, T]) => [T, T]>;
294
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnOverlayState | null>;
295
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
296
+ /** @internal The disabled state as a readonly signal */
297
+ readonly disabledState: _angular_core.Signal<boolean>;
298
+ readonly formattedDate: _angular_core.Signal<string | undefined>;
299
+ readonly dateChange: _angular_core.OutputEmitterRef<[T, T] | null>;
300
+ readonly labelableId: _angular_core.Signal<string | undefined>;
301
+ readonly hasDate: _angular_core.Signal<boolean>;
302
+ /** @internal The current raw value, used by inputs to reformat on focus. */
303
+ readonly value: _angular_core.Signal<[T, T] | null>;
304
+ protected _onChange?: ChangeFn<[T, T] | null>;
305
+ protected _onTouched?: TouchFn;
306
+ protected _onStateChange(state: BrnOverlayState): void;
307
+ protected _handleStartDayChange(value: T | undefined): void;
308
+ protected _handleEndDateChange(value: T | undefined): void;
309
+ /**
310
+ * Commit a range to the picker. Updates the internal model, notifies form
311
+ * controls, and emits `dateChange`. Intended to be called from a text input
312
+ * that parses user-entered values. Pass `null` to clear the range.
313
+ */
314
+ updateDate(value: [T, T] | null): void;
315
+ touched(): void;
316
+ /** CONTROL VALUE ACCESSOR */
317
+ writeValue(value: [T, T] | null): void;
318
+ registerOnChange(fn: ChangeFn<[T, T] | null>): void;
319
+ registerOnTouched(fn: TouchFn): void;
320
+ setDisabledState(isDisabled: boolean): void;
321
+ open(): void;
322
+ close(): void;
323
+ reset(): void;
324
+ protected _onClose(): void;
325
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDateRangePicker<any>, never>;
326
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDateRangePicker<any>, "hlm-date-range-picker", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "captionLayout": { "alias": "captionLayout"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "autoCloseOnEndSelection": { "alias": "autoCloseOnEndSelection"; "required": false; "isSignal": true; }; "formatDates": { "alias": "formatDates"; "required": false; "isSignal": true; }; "transformDates": { "alias": "transformDates"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, ["_trigger"], ["*", "[hlmDatePickerHeader]", "[hlmDatePickerFooter]"], true, [{ directive: typeof i1$1.BrnFieldControl; inputs: {}; outputs: {}; }]>;
327
+ }
328
+
329
+ declare class HlmMonthYearInput<T> extends BrnDateInput<T> implements BrnDatePickerTriggerBase {
330
+ private readonly _config;
331
+ private readonly _fieldControl;
332
+ private readonly _invalid;
333
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
334
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
335
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
336
+ protected readonly _ariaInvalid: _angular_core.Signal<"true" | null>;
337
+ /**
338
+ * Parses input text into a date value. Return `null` for invalid
339
+ * input - the picker's date is cleared while the text is preserved so
340
+ * the user can fix it.
341
+ *
342
+ * Defaults to `parseDate` from `HlmMonthYearPickerConfig`.
343
+ */
344
+ readonly parseDate: _angular_core.InputSignal<(value: string) => T | null>;
345
+ /**
346
+ * Formats the current date into the input/edit format shown while the
347
+ * input is focused. On blur the picker's display format is restored.
348
+ *
349
+ * Defaults to `formatInputDate` from `HlmMonthYearPickerConfig`.
350
+ */
351
+ readonly formatInputDate: _angular_core.InputSignal<(date: T) => string>;
352
+ protected parseValue(value: string): T | null;
353
+ protected formatInputValue(value: T): string;
354
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmMonthYearInput<any>, never>;
355
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmMonthYearInput<any>, "hlm-month-year-input", never, { "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; "formatInputDate": { "alias": "formatInputDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.HlmInputGroup; inputs: {}; outputs: {}; }]>;
356
+ }
357
+
358
+ declare const HLM_MONTH_YEAR_PICKER_VALUE_ACCESSOR: {
359
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
360
+ useExisting: _angular_core.Type<any>;
361
+ multi: boolean;
362
+ };
363
+ declare class HlmMonthYearPicker<T> implements BrnDatePickerBase<T>, ControlValueAccessor {
364
+ private readonly _config;
365
+ readonly popover: _angular_core.Signal<BrnPopover>;
366
+ private readonly _trigger;
367
+ readonly align: _angular_core.InputSignal<BrnPopoverAlign>;
368
+ /** The minimum date that can be selected.*/
369
+ readonly minDate: _angular_core.InputSignal<T | undefined>;
370
+ /** The maximum date that can be selected. */
371
+ readonly maxDate: _angular_core.InputSignal<T | undefined>;
372
+ /** Determine if the date picker is disabled. */
373
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
374
+ /** The selected value. */
375
+ readonly date: _angular_core.InputSignal<T | undefined>;
376
+ /** The date the calendar focuses on first open when no date is selected. */
377
+ readonly defaultFocusedDate: _angular_core.InputSignal<T | undefined>;
378
+ protected readonly _mutableDate: _angular_core.WritableSignal<T | undefined>;
379
+ /** If true, the date picker will close when a date is selected. */
380
+ readonly autoCloseOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
381
+ /** Defines how the date should be displayed in the UI. */
382
+ readonly formatDate: _angular_core.InputSignal<(date: T) => string>;
383
+ /** Defines how the date should be transformed before saving to model/form. */
384
+ readonly transformDate: _angular_core.InputSignal<(date: T) => T>;
385
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnOverlayState | null>;
386
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
387
+ /** @internal The disabled state as a readonly signal */
388
+ readonly disabledState: _angular_core.Signal<boolean>;
389
+ readonly formattedDate: _angular_core.Signal<string | undefined>;
390
+ readonly dateChange: _angular_core.OutputEmitterRef<T | null>;
391
+ readonly labelableId: _angular_core.Signal<string | undefined>;
392
+ readonly hasDate: _angular_core.Signal<boolean>;
393
+ /** @internal The current raw value, used by inputs to reformat on focus. */
394
+ readonly value: _angular_core.Signal<NonNullable<T> | null>;
395
+ protected _onChange?: ChangeFn<T | null>;
396
+ protected _onTouched?: TouchFn;
397
+ protected _onStateChange(state: BrnOverlayState): void;
398
+ protected _handleChange(value: T | undefined): void;
399
+ /**
400
+ * Commit a date to the picker. Updates the internal model, notifies form
401
+ * controls, and emits `dateChange`. Unlike `_handleChange`, this does not
402
+ * close the popover - it's intended to be called from a text input that
403
+ * is parsing user-entered values while typing.
404
+ */
405
+ updateDate(value: T | null): void;
406
+ /** CONTROL VALUE ACCESSOR */
407
+ writeValue(value: T | null): void;
408
+ registerOnChange(fn: ChangeFn<T | null>): void;
409
+ registerOnTouched(fn: TouchFn): void;
410
+ touched(): void;
411
+ setDisabledState(isDisabled: boolean): void;
412
+ open(): void;
413
+ close(): void;
414
+ reset(): void;
415
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmMonthYearPicker<any>, never>;
416
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmMonthYearPicker<any>, "hlm-month-year-picker", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "defaultFocusedDate": { "alias": "defaultFocusedDate"; "required": false; "isSignal": true; }; "autoCloseOnSelect": { "alias": "autoCloseOnSelect"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "transformDate": { "alias": "transformDate"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, ["_trigger"], ["*", "[hlmDatePickerHeader]", "[hlmDatePickerFooter]"], true, [{ directive: typeof i1$1.BrnFieldControl; inputs: {}; outputs: {}; }]>;
417
+ }
418
+
419
+ interface HlmDatePickerMultiConfig<T> {
420
+ /**
421
+ * If true, the date picker will close when the max selection of dates is reached.
422
+ */
423
+ autoCloseOnMaxSelection: boolean;
424
+ /**
425
+ * Defines how the date should be displayed in the UI.
426
+ *
427
+ * @param dates
428
+ * @returns formatted date
429
+ */
430
+ formatDates: (dates: T[]) => string;
431
+ /**
432
+ * Defines how the dates should be displayed while the input is focused,
433
+ * i.e. the format the user is expected to type in.
434
+ *
435
+ * @param dates
436
+ * @returns formatted dates in the input/edit format
437
+ */
438
+ formatInputDates: (dates: T[]) => string;
439
+ /**
440
+ * Defines how the date should be transformed before saving to model/form.
441
+ *
442
+ * @param dates
443
+ * @returns transformed date
444
+ */
445
+ transformDates: (dates: T[]) => T[];
446
+ /**
447
+ * Parse a user-entered string into a date.
448
+ *
449
+ * @param value the raw string from the input
450
+ * @returns the parsed date, or `null` when the value can't be parsed
451
+ */
452
+ parseDate: (value: string) => T[] | null;
453
+ }
454
+ declare function provideHlmDatePickerMultiConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider;
455
+ declare function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T>;
456
+
457
+ interface HlmDatePickerConfig<T> {
458
+ /**
459
+ * If true, the date picker will close when a date is selected.
460
+ */
461
+ autoCloseOnSelect: boolean;
462
+ /**
463
+ * Defines how the date should be displayed in the UI.
464
+ *
465
+ * @param date
466
+ * @returns formatted date
467
+ */
468
+ formatDate: (date: T) => string;
469
+ /**
470
+ * Defines how the date should be displayed while the input is focused,
471
+ * i.e. the format the user is expected to type in.
472
+ *
473
+ * @param date
474
+ * @returns formatted date in the input/edit format
475
+ */
476
+ formatInputDate: (date: T) => string;
477
+ /**
478
+ * Defines how the date should be transformed before saving to model/form.
479
+ *
480
+ * @param date
481
+ * @returns transformed date
482
+ */
483
+ transformDate: (date: T) => T;
484
+ /**
485
+ * Parse a user-entered string into a date.
486
+ *
487
+ * @param value the raw string from the input
488
+ * @returns the parsed date, or `null` when the value can't be parsed
489
+ */
490
+ parseDate: (value: string) => T | null;
491
+ }
492
+ declare function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider;
493
+ declare function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T>;
494
+
495
+ interface HlmDateRangePickerConfig<T> {
496
+ /**
497
+ * If true, the date picker will close when the max selection of dates is reached.
498
+ */
499
+ autoCloseOnEndSelection: boolean;
500
+ /**
501
+ * Defines how the date should be displayed in the UI.
502
+ *
503
+ * @param dates
504
+ * @returns formatted date
505
+ */
506
+ formatDates: (dates: [T | null, T | null]) => string;
507
+ /**
508
+ * Defines how the range should be displayed while the input is focused,
509
+ * i.e. the format the user is expected to type in.
510
+ *
511
+ * @param dates
512
+ * @returns formatted range in the input/edit format
513
+ */
514
+ formatInputDates: (dates: [T | null, T | null]) => string;
515
+ /**
516
+ * Defines how the date should be transformed before saving to model/form.
517
+ *
518
+ * @param dates
519
+ * @returns transformed date
520
+ */
521
+ transformDates: (dates: [T, T]) => [T, T];
522
+ /**
523
+ * Parse a user-entered string into a date range.
524
+ *
525
+ * @param value the raw string from the input
526
+ * @returns the parsed range, or `null` when the value can't be parsed
527
+ */
528
+ parseDate: (value: string) => [T, T] | null;
529
+ }
530
+ declare function provideHlmDateRangePickerConfig<T>(config: Partial<HlmDateRangePickerConfig<T>>): ValueProvider;
531
+ declare function injectHlmDateRangePickerConfig<T>(): HlmDateRangePickerConfig<T>;
532
+
533
+ interface HlmMonthYearPickerConfig<T> {
534
+ /**
535
+ * If true, the date picker will close when a date is selected.
536
+ */
537
+ autoCloseOnSelect: boolean;
538
+ /**
539
+ * Defines how the date should be displayed in the UI.
540
+ *
541
+ * @param date
542
+ * @returns formatted date
543
+ */
544
+ formatDate: (date: T) => string;
545
+ /**
546
+ * Defines how the date should be displayed while the input is focused,
547
+ * i.e. the format the user is expected to type in.
548
+ *
549
+ * @param date
550
+ * @returns formatted date in the input/edit format
551
+ */
552
+ formatInputDate: (date: T) => string;
553
+ /**
554
+ * Defines how the date should be transformed before saving to model/form.
555
+ *
556
+ * @param date
557
+ * @returns transformed date
558
+ */
559
+ transformDate: (date: T) => T;
560
+ /**
561
+ * Parse a user-entered string into a date.
562
+ *
563
+ * @param value the raw string from the input
564
+ * @returns the parsed date, or `null` when the value can't be parsed
565
+ */
566
+ parseDate: (value: string) => T | null;
567
+ }
568
+ declare function provideHlmMonthYearPickerConfig<T>(config: Partial<HlmMonthYearPickerConfig<T>>): ValueProvider;
569
+ declare function injectHlmMonthYearPickerConfig<T>(): HlmMonthYearPickerConfig<T>;
570
+
571
+ declare const HlmDatePickerImports: readonly [typeof HlmDatePicker, typeof HlmDatePickerAnchor, typeof HlmDatePickerInput, typeof HlmDatePickerMulti, typeof HlmDateMultiInput, typeof HlmDateRangeInput, typeof HlmDateRangePicker, typeof HlmDatePickerTrigger, typeof HlmMonthYearPicker, typeof HlmMonthYearInput];
572
+
573
+ export { HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, HLM_DATE_PICKER_VALUE_ACCESSOR, HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR, HLM_MONTH_YEAR_PICKER_VALUE_ACCESSOR, HlmDateMultiInput, HlmDatePicker, HlmDatePickerAnchor, HlmDatePickerImports, HlmDatePickerInput, HlmDatePickerMulti, HlmDatePickerTrigger, HlmDateRangeInput, HlmDateRangePicker, HlmMonthYearInput, HlmMonthYearPicker, injectHlmDatePickerConfig, injectHlmDatePickerMultiConfig, injectHlmDateRangePickerConfig, injectHlmMonthYearPickerConfig, provideHlmDatePickerConfig, provideHlmDatePickerMultiConfig, provideHlmDateRangePickerConfig, provideHlmMonthYearPickerConfig };
574
+ export type { HlmDatePickerConfig, HlmDatePickerMultiConfig, HlmDateRangePickerConfig, HlmMonthYearPickerConfig };