@nanahoshi/mona-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 (134) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +590 -0
  3. package/fesm2022/nanahoshi-mona-ui-avatar.mjs +168 -0
  4. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +220 -0
  5. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +225 -0
  6. package/fesm2022/nanahoshi-mona-ui-button.mjs +497 -0
  7. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +1569 -0
  8. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +339 -0
  9. package/fesm2022/nanahoshi-mona-ui-chip.mjs +453 -0
  10. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +200 -0
  11. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +853 -0
  12. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +923 -0
  13. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +495 -0
  14. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +686 -0
  15. package/fesm2022/nanahoshi-mona-ui-common.mjs +642 -0
  16. package/fesm2022/nanahoshi-mona-ui-contextmenu.mjs +485 -0
  17. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +132 -0
  18. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +460 -0
  19. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +659 -0
  20. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +828 -0
  21. package/fesm2022/nanahoshi-mona-ui-dropdown-button.mjs +523 -0
  22. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +615 -0
  23. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +701 -0
  24. package/fesm2022/nanahoshi-mona-ui-editor.mjs +1400 -0
  25. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +245 -0
  26. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +170 -0
  27. package/fesm2022/nanahoshi-mona-ui-filter.mjs +680 -0
  28. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs +105 -0
  29. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs +42 -0
  30. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +130 -0
  31. package/fesm2022/nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs +773 -0
  32. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +240 -0
  33. package/fesm2022/nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs +5374 -0
  34. package/fesm2022/nanahoshi-mona-ui-grid.mjs +2 -0
  35. package/fesm2022/nanahoshi-mona-ui-internal-filter-input.mjs +87 -0
  36. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +154 -0
  37. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +1356 -0
  38. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +2263 -0
  39. package/fesm2022/nanahoshi-mona-ui-internal.mjs +379 -0
  40. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +630 -0
  41. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +527 -0
  42. package/fesm2022/nanahoshi-mona-ui-list.mjs +4 -0
  43. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +966 -0
  44. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +641 -0
  45. package/fesm2022/nanahoshi-mona-ui-notification.mjs +536 -0
  46. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +597 -0
  47. package/fesm2022/nanahoshi-mona-ui-pager.mjs +790 -0
  48. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +83 -0
  49. package/fesm2022/nanahoshi-mona-ui-popover.mjs +325 -0
  50. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +1559 -0
  51. package/fesm2022/nanahoshi-mona-ui-popup.mjs +1321 -0
  52. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +294 -0
  53. package/fesm2022/nanahoshi-mona-ui-query.mjs +175 -0
  54. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +339 -0
  55. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +565 -0
  56. package/fesm2022/nanahoshi-mona-ui-slider.mjs +1049 -0
  57. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +636 -0
  58. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +843 -0
  59. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +537 -0
  60. package/fesm2022/nanahoshi-mona-ui-switch.mjs +308 -0
  61. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +664 -0
  62. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +111 -0
  63. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +369 -0
  64. package/fesm2022/nanahoshi-mona-ui-theme.mjs +314 -0
  65. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +450 -0
  66. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +723 -0
  67. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +716 -0
  68. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +733 -0
  69. package/fesm2022/nanahoshi-mona-ui-window.mjs +1329 -0
  70. package/fesm2022/nanahoshi-mona-ui.mjs +9 -0
  71. package/package.json +289 -0
  72. package/types/nanahoshi-mona-ui-auto-complete.d.ts +223 -0
  73. package/types/nanahoshi-mona-ui-avatar.d.ts +642 -0
  74. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +70 -0
  75. package/types/nanahoshi-mona-ui-button-group.d.ts +77 -0
  76. package/types/nanahoshi-mona-ui-button.d.ts +111 -0
  77. package/types/nanahoshi-mona-ui-calendar.d.ts +262 -0
  78. package/types/nanahoshi-mona-ui-check-box.d.ts +133 -0
  79. package/types/nanahoshi-mona-ui-chip.d.ts +130 -0
  80. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +113 -0
  81. package/types/nanahoshi-mona-ui-color-gradient.d.ts +201 -0
  82. package/types/nanahoshi-mona-ui-color-palette.d.ts +102 -0
  83. package/types/nanahoshi-mona-ui-color-picker.d.ts +156 -0
  84. package/types/nanahoshi-mona-ui-combo-box.d.ts +232 -0
  85. package/types/nanahoshi-mona-ui-common.d.ts +386 -0
  86. package/types/nanahoshi-mona-ui-contextmenu.d.ts +129 -0
  87. package/types/nanahoshi-mona-ui-date-input.d.ts +60 -0
  88. package/types/nanahoshi-mona-ui-date-picker.d.ts +177 -0
  89. package/types/nanahoshi-mona-ui-datetime-picker.d.ts +199 -0
  90. package/types/nanahoshi-mona-ui-dialog.d.ts +261 -0
  91. package/types/nanahoshi-mona-ui-dropdown-button.d.ts +159 -0
  92. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +219 -0
  93. package/types/nanahoshi-mona-ui-dropdowns.d.ts +176 -0
  94. package/types/nanahoshi-mona-ui-editor.d.ts +113 -0
  95. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +87 -0
  96. package/types/nanahoshi-mona-ui-fieldset.d.ts +68 -0
  97. package/types/nanahoshi-mona-ui-filter.d.ts +115 -0
  98. package/types/nanahoshi-mona-ui-grid.d.ts +1114 -0
  99. package/types/nanahoshi-mona-ui-internal-filter-input.d.ts +25 -0
  100. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +28 -0
  101. package/types/nanahoshi-mona-ui-internal-list.d.ts +269 -0
  102. package/types/nanahoshi-mona-ui-internal-tree.d.ts +391 -0
  103. package/types/nanahoshi-mona-ui-internal.d.ts +136 -0
  104. package/types/nanahoshi-mona-ui-list-box.d.ts +225 -0
  105. package/types/nanahoshi-mona-ui-list-view.d.ts +188 -0
  106. package/types/nanahoshi-mona-ui-list.d.ts +1 -0
  107. package/types/nanahoshi-mona-ui-menubar.d.ts +198 -0
  108. package/types/nanahoshi-mona-ui-multi-select.d.ts +247 -0
  109. package/types/nanahoshi-mona-ui-notification.d.ts +106 -0
  110. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +161 -0
  111. package/types/nanahoshi-mona-ui-pager.d.ts +238 -0
  112. package/types/nanahoshi-mona-ui-placeholder.d.ts +35 -0
  113. package/types/nanahoshi-mona-ui-popover.d.ts +130 -0
  114. package/types/nanahoshi-mona-ui-popup-menu.d.ts +412 -0
  115. package/types/nanahoshi-mona-ui-popup.d.ts +485 -0
  116. package/types/nanahoshi-mona-ui-progress-bar.d.ts +139 -0
  117. package/types/nanahoshi-mona-ui-query.d.ts +89 -0
  118. package/types/nanahoshi-mona-ui-radio-button.d.ts +128 -0
  119. package/types/nanahoshi-mona-ui-scroll-view.d.ts +166 -0
  120. package/types/nanahoshi-mona-ui-slider.d.ts +305 -0
  121. package/types/nanahoshi-mona-ui-split-button.d.ts +182 -0
  122. package/types/nanahoshi-mona-ui-splitter.d.ts +70 -0
  123. package/types/nanahoshi-mona-ui-stepper.d.ts +173 -0
  124. package/types/nanahoshi-mona-ui-switch.d.ts +125 -0
  125. package/types/nanahoshi-mona-ui-tabs.d.ts +158 -0
  126. package/types/nanahoshi-mona-ui-text-area.d.ts +42 -0
  127. package/types/nanahoshi-mona-ui-text-box.d.ts +164 -0
  128. package/types/nanahoshi-mona-ui-theme.d.ts +23 -0
  129. package/types/nanahoshi-mona-ui-time-picker.d.ts +184 -0
  130. package/types/nanahoshi-mona-ui-time-selector.d.ts +143 -0
  131. package/types/nanahoshi-mona-ui-tooltip.d.ts +130 -0
  132. package/types/nanahoshi-mona-ui-tree-view.d.ts +274 -0
  133. package/types/nanahoshi-mona-ui-window.d.ts +295 -0
  134. package/types/nanahoshi-mona-ui.d.ts +2 -0
@@ -0,0 +1,164 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ElementRef, TemplateRef } from '@angular/core';
3
+ import { FormValueControl } from '@angular/forms/signals';
4
+ import { VariantInputs, AttributeConfig } from '@nanahoshi/mona-ui/internal';
5
+ import * as class_variance_authority_types from 'class-variance-authority/types';
6
+ import { VariantProps } from 'class-variance-authority';
7
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
8
+
9
+ type InputType = "email" | "password" | "text";
10
+
11
+ declare const textBoxThemeVariants: (theme: ThemeStyle) => (props?: ({
12
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
13
+ size?: "large" | "medium" | "small" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ declare const inputThemeVariants: (theme: ThemeStyle) => (props?: ({
16
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
17
+ size?: "large" | "medium" | "small" | null | undefined;
18
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
19
+ type TextBoxVariantProps = VariantProps<ReturnType<typeof textBoxThemeVariants>>;
20
+ type TextBoxVariantInput = VariantInputs<TextBoxVariantProps>;
21
+ type InputVariantProps = VariantProps<ReturnType<typeof inputThemeVariants>>;
22
+ type InputVariantInput = VariantInputs<InputVariantProps>;
23
+
24
+ declare class TextBoxComponent implements TextBoxVariantInput, FormValueControl<string> {
25
+ #private;
26
+ protected readonly classes: _angular_core.Signal<string>;
27
+ protected readonly inputRef: _angular_core.Signal<ElementRef<HTMLInputElement>>;
28
+ protected readonly invalidInput: _angular_core.Signal<boolean>;
29
+ protected readonly prefixTemplateList: _angular_core.Signal<readonly TemplateRef<any>[]>;
30
+ protected readonly suffixTemplateList: _angular_core.Signal<readonly TemplateRef<any>[]>;
31
+ /**
32
+ * @description Displays a clear button that resets the value to empty.
33
+ * @default false
34
+ */
35
+ readonly clearButton: _angular_core.InputSignal<boolean>;
36
+ /**
37
+ * @description Renders the component with reduced visual emphasis and removes pointer interaction.
38
+ * @default false
39
+ */
40
+ readonly disabled: _angular_core.InputSignal<boolean>;
41
+ /**
42
+ * @description Additional HTML attributes applied directly to the inner `<input>` element.
43
+ * @default {}
44
+ */
45
+ readonly inputAttributes: _angular_core.InputSignal<AttributeConfig>;
46
+ /**
47
+ * @description Emitted when the inner input loses focus.
48
+ */
49
+ readonly inputBlur: _angular_core.OutputEmitterRef<FocusEvent>;
50
+ /**
51
+ * @description Emitted when the inner input gains focus.
52
+ */
53
+ readonly inputFocus: _angular_core.OutputEmitterRef<FocusEvent>;
54
+ /**
55
+ * @description Additional CSS classes applied to the inner `<input>` element.
56
+ * @default ""
57
+ */
58
+ readonly inputClass: _angular_core.InputSignal<string | string[]>;
59
+ /**
60
+ * @description Inline styles applied to the inner `<input>` element.
61
+ * Accepts a style string or a `CSSStyleDeclaration` partial.
62
+ * @default null
63
+ */
64
+ readonly inputStyle: _angular_core.InputSignal<string | Partial<CSSStyleDeclaration> | null>;
65
+ /**
66
+ * @description Marks the text box as invalid. When bound to a signal form field via `[formField]`,
67
+ * this is written by the `FormField` directive.
68
+ * @default false
69
+ */
70
+ readonly invalid: _angular_core.InputSignal<boolean>;
71
+ /**
72
+ * @description Placeholder text shown when no value has been entered.
73
+ * @default ""
74
+ */
75
+ readonly placeholder: _angular_core.InputSignal<string>;
76
+ /**
77
+ * @description Prevents value changes while preserving the component's visual state.
78
+ * @default false
79
+ */
80
+ readonly readonly: _angular_core.InputSignal<boolean>;
81
+ /**
82
+ * @description Marks the text box as required.
83
+ * Triggers the invalid state when the value is empty and the field has been touched.
84
+ * @default false
85
+ */
86
+ readonly required: _angular_core.InputSignal<boolean>;
87
+ /**
88
+ * @description Border-radius preset applied to the component.
89
+ * @default "medium"
90
+ */
91
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
92
+ /**
93
+ * @description Size preset controlling the component's dimensions.
94
+ * @default "medium"
95
+ */
96
+ readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
97
+ /**
98
+ * @description Emitted when the text box is interacted with — on blur, value change, or clear.
99
+ * The `FormField` directive listens to this to mark the field as touched.
100
+ */
101
+ readonly touch: _angular_core.OutputEmitterRef<void>;
102
+ /**
103
+ * @description Sets the touched state of the text box. When bound to a signal form field via `[formField]`,
104
+ * this is written by the `FormField` directive.
105
+ * @default false
106
+ */
107
+ readonly touched: _angular_core.InputSignal<boolean>;
108
+ /**
109
+ * @description Sets the `type` attribute of the inner `<input>` element.
110
+ * @default "text"
111
+ */
112
+ readonly type: _angular_core.InputSignal<InputType>;
113
+ /**
114
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
115
+ * @default ""
116
+ */
117
+ readonly userClass: _angular_core.InputSignal<string>;
118
+ /**
119
+ * @description Two-way bindable current value of the text box.
120
+ * @default ""
121
+ */
122
+ readonly value: _angular_core.ModelSignal<string>;
123
+ focus(): void;
124
+ onClearClick(): void;
125
+ onInputBlur(event: FocusEvent): void;
126
+ onValueChange(value: string): void;
127
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextBoxComponent, never>;
128
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextBoxComponent, "mona-text-box", never, { "clearButton": { "alias": "clearButton"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputAttributes": { "alias": "inputAttributes"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "inputStyle": { "alias": "inputStyle"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "inputBlur": "inputBlur"; "inputFocus": "inputFocus"; "touch": "touch"; "value": "valueChange"; }, ["prefixTemplateList", "suffixTemplateList"], never, true, never>;
129
+ }
130
+
131
+ declare class TextBoxDirective implements InputVariantInput {
132
+ #private;
133
+ protected readonly classes: _angular_core.Signal<string>;
134
+ /**
135
+ * @description Border-radius preset applied to the component.
136
+ * @default "medium"
137
+ */
138
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
139
+ /**
140
+ * @description Size preset controlling the component's dimensions.
141
+ * @default "medium"
142
+ */
143
+ readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
144
+ /**
145
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
146
+ * @default ""
147
+ */
148
+ readonly userClass: _angular_core.InputSignal<string>;
149
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextBoxDirective, never>;
150
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TextBoxDirective, "input[monaTextBox]", never, { "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
151
+ }
152
+
153
+ declare class TextBoxPrefixTemplateDirective {
154
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextBoxPrefixTemplateDirective, never>;
155
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TextBoxPrefixTemplateDirective, "ng-template[monaTextBoxPrefixTemplate]", never, {}, {}, never, never, true, never>;
156
+ }
157
+
158
+ declare class TextBoxSuffixTemplateDirective {
159
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextBoxSuffixTemplateDirective, never>;
160
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TextBoxSuffixTemplateDirective, "ng-template[monaTextBoxSuffixTemplate]", never, {}, {}, never, never, true, never>;
161
+ }
162
+
163
+ export { TextBoxComponent, TextBoxDirective, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
164
+ export type { InputType, TextBoxVariantProps };
@@ -0,0 +1,23 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type ThemeStyle = "mona";
4
+ type ThemeVariant = "light" | "dark";
5
+ type ThemeId = `${ThemeStyle}-${ThemeVariant}`;
6
+
7
+ declare class ThemeService {
8
+ #private;
9
+ readonly themeId: _angular_core.WritableSignal<"mona-light" | "mona-dark">;
10
+ readonly theme: _angular_core.Signal<"mona">;
11
+ readonly themeVariant: _angular_core.Signal<ThemeVariant>;
12
+ constructor();
13
+ setThemeId(themeId: ThemeId): void;
14
+ private getActiveThemeVariables;
15
+ private getMonaDarkThemeVariables;
16
+ private getMonaLightThemeVariables;
17
+ private updateThemeVariables;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
19
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
20
+ }
21
+
22
+ export { ThemeService };
23
+ export type { ThemeId, ThemeStyle, ThemeVariant };
@@ -0,0 +1,184 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal, TemplateRef } from '@angular/core';
3
+ import { FormValueControl } from '@angular/forms/signals';
4
+ import { PreventableEvent } from '@nanahoshi/mona-ui/common';
5
+ import { HourFormat } from '@nanahoshi/mona-ui/date-input';
6
+ import { VariantInputs, AttributeConfig } from '@nanahoshi/mona-ui/internal';
7
+ import { ListSizeInputType } from '@nanahoshi/mona-ui/internal/list';
8
+ import { PopupCloseEvent } from '@nanahoshi/mona-ui/popup';
9
+ import * as class_variance_authority_types from 'class-variance-authority/types';
10
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
11
+ import { VariantProps } from 'class-variance-authority';
12
+ import * as i1 from '@nanahoshi/mona-ui/dropdowns';
13
+
14
+ declare const timePickerBaseThemeVariants: (theme: ThemeStyle) => (props?: ({
15
+ focused?: boolean | null | undefined;
16
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
17
+ size?: "large" | "medium" | "small" | null | undefined;
18
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
19
+ type TimePickerBaseVariantProps = VariantProps<ReturnType<typeof timePickerBaseThemeVariants>>;
20
+ type TimePickerBaseVariantInput = VariantInputs<TimePickerBaseVariantProps>;
21
+ type TimePickerVariantProps = TimePickerBaseVariantProps;
22
+ type TimePickerVariantInput = Omit<TimePickerBaseVariantInput, "focused">;
23
+
24
+ declare class TimePickerComponent implements FormValueControl<Date | null>, TimePickerVariantInput {
25
+ #private;
26
+ protected readonly baseClass: Signal<string>;
27
+ protected readonly currentDateString: _angular_core.WritableSignal<string>;
28
+ protected readonly expanded: Signal<boolean>;
29
+ protected readonly inputAttributes: Signal<AttributeConfig>;
30
+ protected readonly invalidState: Signal<boolean>;
31
+ protected readonly navigatedDate: _angular_core.WritableSignal<Date>;
32
+ protected readonly pickerPopupClass: Signal<string>;
33
+ protected readonly popupId: string;
34
+ protected readonly timePopupTemplateRef: Signal<TemplateRef<unknown>>;
35
+ /**
36
+ * @description Emits when the popup is about to close. This event is preventable.
37
+ */
38
+ readonly close: _angular_core.OutputEmitterRef<PopupCloseEvent<unknown>>;
39
+ /**
40
+ * @description Emits after the popup is closed.
41
+ */
42
+ readonly closed: _angular_core.OutputEmitterRef<void>;
43
+ /**
44
+ * @description Sets the disabled state of the time picker.
45
+ */
46
+ readonly disabled: _angular_core.InputSignal<boolean>;
47
+ /**
48
+ * @description Sets the format of the time picker.
49
+ */
50
+ readonly format: _angular_core.InputSignal<string>;
51
+ /**
52
+ * @description Sets the hour format of the time picker.
53
+ * @default 24
54
+ */
55
+ readonly hourFormat: _angular_core.InputSignal<HourFormat>;
56
+ /**
57
+ * @description Sets the hour step of the time picker.
58
+ * @default 1
59
+ */
60
+ readonly hourStep: _angular_core.InputSignal<number>;
61
+ /**
62
+ * @description Marks the time picker as invalid. When bound to a signal form field via `[formField]`,
63
+ * this is written by the `FormField` directive.
64
+ * @default false
65
+ */
66
+ readonly invalid: _angular_core.InputSignal<boolean>;
67
+ /**
68
+ * @description Sets the maximum date of the time picker.
69
+ * @default null
70
+ */
71
+ readonly max: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
72
+ /**
73
+ * @description Sets the minimum date of the time picker.
74
+ * @default null
75
+ */
76
+ readonly min: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
77
+ /**
78
+ * @description Sets the minute step of the time picker.
79
+ * @default 1
80
+ */
81
+ readonly minuteStep: _angular_core.InputSignal<number>;
82
+ /**
83
+ * @description Emits when the popup is about to open. This event is preventable.
84
+ */
85
+ readonly open: _angular_core.OutputEmitterRef<PreventableEvent<Event>>;
86
+ /**
87
+ * @description Emits after the popup is opened.
88
+ */
89
+ readonly opened: _angular_core.OutputEmitterRef<void>;
90
+ /**
91
+ * @description Sets the placeholder of the time picker.
92
+ */
93
+ readonly placeholder: _angular_core.InputSignal<string>;
94
+ /**
95
+ * @description Sets the class of the popup element.
96
+ * @default ""
97
+ */
98
+ readonly popupClass: _angular_core.InputSignal<string>;
99
+ /**
100
+ * @description Sets the height of the popup element.
101
+ * @default 200
102
+ */
103
+ readonly popupHeight: _angular_core.InputSignal<ListSizeInputType>;
104
+ /**
105
+ * @description Sets the width of the popup element.
106
+ * @default null
107
+ */
108
+ readonly popupWidth: _angular_core.InputSignal<ListSizeInputType>;
109
+ /**
110
+ * @description Sets the readonly state of the time picker.
111
+ */
112
+ readonly readonly: _angular_core.InputSignal<boolean>;
113
+ /**
114
+ * @description When true, the input is readonly but the popup button remains enabled.
115
+ * @default false
116
+ */
117
+ readonly readonlyInput: _angular_core.InputSignal<boolean>;
118
+ /**
119
+ * @description Sets the required state of the time picker.
120
+ * When bound to a signal form field via `[formField]`, this is written by the `FormField` directive.
121
+ * @default false
122
+ */
123
+ readonly required: _angular_core.InputSignal<boolean>;
124
+ /**
125
+ * @description Sets the border radius of the time picker.
126
+ */
127
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
128
+ /**
129
+ * @description Sets the second step of the time picker.
130
+ * @default 1
131
+ */
132
+ readonly secondStep: _angular_core.InputSignal<number>;
133
+ /**
134
+ * @description Sets the visibility of the clear button.
135
+ */
136
+ readonly showClearButton: _angular_core.InputSignal<boolean>;
137
+ /**
138
+ * @description Sets the visibility of the second selector.
139
+ */
140
+ readonly showSeconds: _angular_core.InputSignal<boolean>;
141
+ /**
142
+ * @description Sets the size of the time picker.
143
+ */
144
+ readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
145
+ /**
146
+ * @description Emitted when the time picker is interacted with via blur, selection, or clear.
147
+ * The `FormField` directive listens to this to mark the field as touched.
148
+ */
149
+ readonly touch: _angular_core.OutputEmitterRef<void>;
150
+ /**
151
+ * @description Sets the touched state of the time picker. When bound to a signal form field via `[formField]`,
152
+ * this is written by the `FormField` directive.
153
+ * @default false
154
+ */
155
+ readonly touched: _angular_core.InputSignal<boolean>;
156
+ readonly userClass: _angular_core.InputSignal<string>;
157
+ /**
158
+ * @description Two-way bindable current time value.
159
+ * @default null
160
+ */
161
+ readonly value: _angular_core.ModelSignal<Date | null>;
162
+ constructor();
163
+ protected onDateStringEdit(dateString: string): void;
164
+ protected onTimeInputBlur(): void;
165
+ protected onTimeInputButtonClick(): void;
166
+ protected onTimeSelectorValueChange(date: Date | null): void;
167
+ private dateStringEquals;
168
+ focus(): void;
169
+ private generateValidDateTime;
170
+ private handleKeydown;
171
+ private openPopup;
172
+ private processTimeInput;
173
+ private setCurrentDate;
174
+ private setCurrentDateString;
175
+ private setDateValues;
176
+ private setKeyboardNavigation;
177
+ private setSubscriptions;
178
+ private updateCurrentDateString;
179
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimePickerComponent, never>;
180
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimePickerComponent, "mona-time-picker", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "hourStep": { "alias": "hourStep"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "popupClass": { "alias": "popupClass"; "required": false; "isSignal": true; }; "popupHeight": { "alias": "popupHeight"; "required": false; "isSignal": true; }; "popupWidth": { "alias": "popupWidth"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "readonlyInput": { "alias": "readonlyInput"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "secondStep": { "alias": "secondStep"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "close": "close"; "closed": "closed"; "open": "open"; "opened": "opened"; "touch": "touch"; "value": "valueChange"; }, never, never, true, [{ directive: typeof i1.DropdownPopupHandlerDirective; inputs: {}; outputs: {}; }]>;
181
+ }
182
+
183
+ export { TimePickerComponent };
184
+ export type { TimePickerVariantProps };
@@ -0,0 +1,143 @@
1
+ import * as _mirei_ts_collections from '@mirei/ts-collections';
2
+ import * as _nanahoshi_mona_ui_date_input from '@nanahoshi/mona-ui/date-input';
3
+ import { Meridiem, HourFormat } from '@nanahoshi/mona-ui/date-input';
4
+ import * as luxon from 'luxon';
5
+ import { DateTime } from 'luxon';
6
+ import * as _angular_core from '@angular/core';
7
+ import { ElementRef } from '@angular/core';
8
+ import { FormValueControl } from '@angular/forms/signals';
9
+ import * as class_variance_authority_types from 'class-variance-authority/types';
10
+ import { VariantProps } from 'class-variance-authority';
11
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
12
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
13
+
14
+ type TimeListType = "hours" | "minutes" | "seconds" | "meridiem";
15
+
16
+ declare const timeSelectorBaseThemeVariants: (theme: ThemeStyle) => (props?: ({
17
+ disabled?: boolean | null | undefined;
18
+ size?: "small" | "medium" | "large" | null | undefined;
19
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
20
+ declare const timeSelectorHeaderThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
21
+ declare const timeSelectorInfoContainerThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
22
+ declare const timeSelectorListThemeVariants: (theme: ThemeStyle) => (props?: ({
23
+ size?: "small" | "medium" | "large" | null | undefined;
24
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
25
+ declare const timeSelectorListItemThemeVariants: (theme: ThemeStyle) => (props?: ({
26
+ selected?: boolean | null | undefined;
27
+ size?: "small" | "medium" | "large" | null | undefined;
28
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
29
+ type TimeSelectorBaseVariantProps = VariantProps<ReturnType<typeof timeSelectorBaseThemeVariants>>;
30
+ type TimeSelectorBaseVariantInput = VariantInputs<TimeSelectorBaseVariantProps>;
31
+ type TimeSelectorHeaderVariantProps = VariantProps<ReturnType<typeof timeSelectorHeaderThemeVariants>>;
32
+ type TimeSelectorHeaderVariantInput = VariantInputs<TimeSelectorHeaderVariantProps>;
33
+ type TimeSelectorInfoContainerVariantProps = VariantProps<ReturnType<typeof timeSelectorInfoContainerThemeVariants>>;
34
+ type TimeSelectorInfoContainerVariantInput = VariantInputs<TimeSelectorInfoContainerVariantProps>;
35
+ type TimeSelectorListVariantProps = VariantProps<ReturnType<typeof timeSelectorListThemeVariants>>;
36
+ type TimeSelectorListVariantInput = VariantInputs<TimeSelectorListVariantProps>;
37
+ type TimeSelectorListItemVariantProps = VariantProps<ReturnType<typeof timeSelectorListItemThemeVariants>>;
38
+ type TimeSelectorListItemVariantInput = VariantInputs<TimeSelectorListItemVariantProps>;
39
+ type TimeSelectorVariantProps = TimeSelectorBaseVariantProps & TimeSelectorHeaderVariantProps & TimeSelectorInfoContainerVariantProps & Omit<TimeSelectorListVariantProps, "size"> & Omit<TimeSelectorListItemVariantProps, "size">;
40
+ type TimeSelectorVariantInput = TimeSelectorBaseVariantInput & TimeSelectorHeaderVariantInput & TimeSelectorInfoContainerVariantInput & Omit<TimeSelectorListVariantInput, "size"> & Omit<TimeSelectorListItemVariantInput, "size" | "selected">;
41
+
42
+ declare class TimeSelectorComponent implements FormValueControl<Date | null>, TimeSelectorVariantInput {
43
+ #private;
44
+ protected readonly amMeridiemVisible: _angular_core.Signal<boolean>;
45
+ protected readonly baseClass: _angular_core.Signal<string>;
46
+ protected readonly computedPopupHeight: _angular_core.Signal<number>;
47
+ protected readonly focusedList: _angular_core.WritableSignal<TimeListType>;
48
+ protected readonly footerClass: _angular_core.Signal<string>;
49
+ protected readonly headerClass: _angular_core.Signal<string>;
50
+ protected readonly hour: _angular_core.Signal<number>;
51
+ protected readonly hourListId: string;
52
+ protected readonly hourListRef: _angular_core.Signal<ElementRef<HTMLOListElement>>;
53
+ protected readonly infoContainerClass: _angular_core.Signal<string>;
54
+ protected readonly listContainerClass: _angular_core.Signal<string>;
55
+ protected readonly maxDate: _angular_core.Signal<DateTime<true> | DateTime<false> | null>;
56
+ protected readonly meridiem: _angular_core.WritableSignal<Meridiem>;
57
+ protected readonly meridiemListId: string;
58
+ protected readonly meridiemListRef: _angular_core.Signal<ElementRef<HTMLOListElement> | undefined>;
59
+ protected readonly minDate: _angular_core.Signal<DateTime<true> | DateTime<false> | null>;
60
+ protected readonly minute: _angular_core.Signal<luxon.SecondNumbers>;
61
+ protected readonly minuteListId: string;
62
+ protected readonly minuteListRef: _angular_core.Signal<ElementRef<HTMLOListElement>>;
63
+ protected readonly minutes: _angular_core.Signal<_mirei_ts_collections.ImmutableSet<_nanahoshi_mona_ui_date_input.TimeUnit>>;
64
+ protected readonly navigatedDate: _angular_core.WritableSignal<DateTime<true>>;
65
+ protected readonly navigatedDateText: _angular_core.Signal<string>;
66
+ protected readonly pmMeridiemVisible: _angular_core.Signal<boolean>;
67
+ protected readonly second: _angular_core.Signal<luxon.SecondNumbers>;
68
+ protected readonly secondListId: string;
69
+ protected readonly secondListRef: _angular_core.Signal<ElementRef<HTMLOListElement> | undefined>;
70
+ protected readonly seconds: _angular_core.Signal<_mirei_ts_collections.ImmutableSet<_nanahoshi_mona_ui_date_input.TimeUnit>>;
71
+ protected readonly viewHours: _angular_core.Signal<_mirei_ts_collections.ImmutableSet<_nanahoshi_mona_ui_date_input.TimeUnit>>;
72
+ readonly ariaLabel: _angular_core.InputSignal<string>;
73
+ readonly disabled: _angular_core.InputSignal<boolean>;
74
+ readonly focusOnMount: _angular_core.InputSignal<boolean>;
75
+ readonly footer: _angular_core.InputSignal<boolean>;
76
+ readonly hourFormat: _angular_core.InputSignal<HourFormat>;
77
+ readonly hourStep: _angular_core.InputSignal<number>;
78
+ /**
79
+ * @description Marks the time selector as invalid. When bound to a signal form field via `[formField]`,
80
+ * this is written by the `FormField` directive.
81
+ * @default false
82
+ */
83
+ readonly invalid: _angular_core.InputSignal<boolean>;
84
+ readonly max: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
85
+ readonly min: _angular_core.InputSignalWithTransform<Date | undefined, unknown>;
86
+ readonly minuteStep: _angular_core.InputSignal<number>;
87
+ /**
88
+ * @description Prevents value changes while preserving the component's visual state.
89
+ * @default false
90
+ */
91
+ readonly readonly: _angular_core.InputSignal<boolean>;
92
+ /**
93
+ * @description Sets whether the time selector is required. When bound to a signal form field via `[formField]`,
94
+ * this is written by the `FormField` directive.
95
+ * @default false
96
+ */
97
+ readonly required: _angular_core.InputSignal<boolean>;
98
+ readonly rounded: _angular_core.InputSignal<"small" | "medium" | "large" | "full" | "none" | null | undefined>;
99
+ readonly secondStep: _angular_core.InputSignal<number>;
100
+ readonly showSeconds: _angular_core.InputSignal<boolean>;
101
+ readonly size: _angular_core.InputSignal<"small" | "medium" | "large" | null | undefined>;
102
+ /**
103
+ * @description Emitted when the time selector is interacted with via blur or value selection.
104
+ * The `FormField` directive listens to this to mark the field as touched.
105
+ */
106
+ readonly touch: _angular_core.OutputEmitterRef<void>;
107
+ /**
108
+ * @description Sets the touched state of the time selector. When bound to a signal form field via `[formField]`,
109
+ * this is written by the `FormField` directive.
110
+ * @default false
111
+ */
112
+ readonly touched: _angular_core.InputSignal<boolean>;
113
+ /**
114
+ * @description Two-way bindable current time value.
115
+ * @default null
116
+ */
117
+ readonly value: _angular_core.ModelSignal<Date | null>;
118
+ constructor();
119
+ focus(): void;
120
+ protected onBlur(): void;
121
+ protected onHourChange(hour: number): void;
122
+ protected onMeridiemClick(meridiem: "AM" | "PM"): void;
123
+ protected onMinuteChange(minute: number): void;
124
+ protected onNowClick(event: Event): void;
125
+ protected onSecondChange(second: number): void;
126
+ protected onSetTimeClick(): void;
127
+ private getListRef;
128
+ private getNextList;
129
+ private handleKeydown;
130
+ private focusList;
131
+ private dateValuesEqual;
132
+ private initializeNavigatedDate;
133
+ private navigateItem;
134
+ private navigateToEdge;
135
+ private setDateValues;
136
+ private setupKeyboardNavigation;
137
+ private updateValue;
138
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimeSelectorComponent, never>;
139
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimeSelectorComponent, "mona-time-selector", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusOnMount": { "alias": "focusOnMount"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "hourStep": { "alias": "hourStep"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "secondStep": { "alias": "secondStep"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "value": "valueChange"; }, never, never, true, never>;
140
+ }
141
+
142
+ export { TimeSelectorComponent };
143
+ export type { TimeSelectorVariantProps };
@@ -0,0 +1,130 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { Position } from '@nanahoshi/mona-ui/common';
4
+ import { PopupAnchor, PopupOffset, ConnectionPoint } from '@nanahoshi/mona-ui/popup';
5
+ import * as class_variance_authority_types from 'class-variance-authority/types';
6
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
7
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
8
+ import { VariantProps } from 'class-variance-authority';
9
+
10
+ declare const tooltipBaseThemeVariants: (theme: ThemeStyle) => (props?: ({
11
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
12
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
13
+ declare const tooltipArrowThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
14
+ type TooltipBaseVariantProps = VariantProps<ReturnType<typeof tooltipBaseThemeVariants>>;
15
+ type TooltipBaseVariantInputs = VariantInputs<TooltipBaseVariantProps>;
16
+ type TooltipArrowVariantsProps = VariantProps<ReturnType<typeof tooltipArrowThemeVariants>>;
17
+ type TooltipArrowVariantsInputs = VariantInputs<TooltipArrowVariantsProps>;
18
+ type TooltipVariantInputs = TooltipBaseVariantInputs & TooltipArrowVariantsInputs;
19
+
20
+ declare class TooltipComponent implements TooltipVariantInputs {
21
+ #private;
22
+ protected readonly arrowClasses: _angular_core.Signal<string>;
23
+ protected readonly baseClasses: _angular_core.Signal<string>;
24
+ protected readonly currentArrowPosition: _angular_core.WritableSignal<Position>;
25
+ protected readonly templateRef: _angular_core.Signal<TemplateRef<any>>;
26
+ protected readonly tooltipId: string;
27
+ /**
28
+ * @description Whether the tooltip is disabled. When disabled, the tooltip will not be shown.
29
+ */
30
+ readonly disabled: _angular_core.InputSignal<boolean>;
31
+ /**
32
+ * @description Emitted when the tooltip popup is hidden.
33
+ */
34
+ readonly hidden: _angular_core.OutputEmitterRef<void>;
35
+ /**
36
+ * @description The delay in milliseconds before hiding the tooltip after the trigger event ends.
37
+ */
38
+ readonly hideDelay: _angular_core.InputSignal<number>;
39
+ /**
40
+ * @description The position of the tooltip relative to the target element.
41
+ */
42
+ readonly position: _angular_core.InputSignal<Position>;
43
+ /**
44
+ * @description The border radius of the tooltip.
45
+ */
46
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
47
+ /**
48
+ * @description The delay in milliseconds before showing the tooltip after the trigger event.
49
+ */
50
+ readonly showDelay: _angular_core.InputSignal<number>;
51
+ /**
52
+ * @description Emitted when the tooltip popup is shown.
53
+ */
54
+ readonly shown: _angular_core.OutputEmitterRef<void>;
55
+ /**
56
+ * @description The target element(s) to which the tooltip is attached.
57
+ * Can be an Element, ElementRef, or CSS selector string.
58
+ */
59
+ readonly target: _angular_core.InputSignal<PopupAnchor>;
60
+ constructor();
61
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
62
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "mona-tooltip", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": true; "isSignal": true; }; }, { "hidden": "hidden"; "shown": "shown"; }, never, ["*"], true, never>;
63
+ }
64
+
65
+ declare class TooltipDirective implements TooltipVariantInputs {
66
+ #private;
67
+ protected readonly originalTitle: _angular_core.WritableSignal<string>;
68
+ /**
69
+ * @description Whether the tooltip is disabled. When disabled, the tooltip will not be shown.
70
+ * @default false
71
+ */
72
+ readonly disabled: _angular_core.InputSignal<boolean>;
73
+ /**
74
+ * @description The filter to select elements that will have tooltips.
75
+ * It can be a CSS selector that matches elements within the host element.
76
+ * Only applies when `mode` is set to `content`.
77
+ * @default "[title]"
78
+ */
79
+ readonly filter: _angular_core.InputSignal<string>;
80
+ /**
81
+ * @description The delay in milliseconds before hiding the tooltip.
82
+ * @default 0
83
+ */
84
+ readonly hideDelay: _angular_core.InputSignal<number>;
85
+ /**
86
+ * @description The mode of the tooltip.
87
+ * "host" mode receives the tooltip from the host element's title attribute.
88
+ * "content" mode uses the title attribute of elements matching the filter.
89
+ * @default "host"
90
+ */
91
+ readonly mode: _angular_core.InputSignal<"host" | "content">;
92
+ /**
93
+ * @description The position of the tooltip relative to the target element.
94
+ * @default "top"
95
+ */
96
+ readonly position: _angular_core.InputSignal<Position>;
97
+ /**
98
+ * @description The border radius of the tooltip.
99
+ * @default "medium"
100
+ */
101
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
102
+ /**
103
+ * @description The delay in milliseconds before showing the tooltip after the trigger event.
104
+ * @default 0
105
+ */
106
+ readonly showDelay: _angular_core.InputSignal<number>;
107
+ /**
108
+ * @description Emitted when the tooltip popup is hidden.
109
+ */
110
+ readonly hidden: _angular_core.OutputEmitterRef<void>;
111
+ /**
112
+ * @description Emitted when the tooltip popup is shown.
113
+ */
114
+ readonly shown: _angular_core.OutputEmitterRef<void>;
115
+ constructor();
116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
117
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[monaTooltip]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "rounded": { "alias": "tooltipRounded"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; }, { "hidden": "hidden"; "shown": "shown"; }, never, never, true, never>;
118
+ }
119
+
120
+ /**
121
+ * Gets the appropriate offset for a tooltip based on its position.
122
+ * The offset ensures proper spacing between the tooltip and its anchor element.
123
+ */
124
+ declare function getOffsetForPosition(position: Position, arrowVisible: boolean): PopupOffset;
125
+ declare function getPositionConnectionPoints(position: Position): {
126
+ anchor: ConnectionPoint;
127
+ popup: ConnectionPoint;
128
+ };
129
+
130
+ export { TooltipComponent, TooltipDirective, getOffsetForPosition, getPositionConnectionPoints, tooltipArrowThemeVariants };