@ngneers/controls 0.0.1-next.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 (186) hide show
  1. package/fesm2022/ngneers-controls-accordion.mjs +234 -0
  2. package/fesm2022/ngneers-controls-accordion.mjs.map +1 -0
  3. package/fesm2022/ngneers-controls-api-ng.mjs +959 -0
  4. package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -0
  5. package/fesm2022/ngneers-controls-api-resize.mjs +712 -0
  6. package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
  7. package/fesm2022/ngneers-controls-api.mjs +347 -0
  8. package/fesm2022/ngneers-controls-api.mjs.map +1 -0
  9. package/fesm2022/ngneers-controls-avatar.mjs +77 -0
  10. package/fesm2022/ngneers-controls-avatar.mjs.map +1 -0
  11. package/fesm2022/ngneers-controls-base.mjs +620 -0
  12. package/fesm2022/ngneers-controls-base.mjs.map +1 -0
  13. package/fesm2022/ngneers-controls-breadcrumb.mjs +100 -0
  14. package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -0
  15. package/fesm2022/ngneers-controls-button-group.mjs +110 -0
  16. package/fesm2022/ngneers-controls-button-group.mjs.map +1 -0
  17. package/fesm2022/ngneers-controls-button.mjs +83 -0
  18. package/fesm2022/ngneers-controls-button.mjs.map +1 -0
  19. package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs +74 -0
  20. package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs.map +1 -0
  21. package/fesm2022/ngneers-controls-calendar.mjs +801 -0
  22. package/fesm2022/ngneers-controls-calendar.mjs.map +1 -0
  23. package/fesm2022/ngneers-controls-checkbox.mjs +63 -0
  24. package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -0
  25. package/fesm2022/ngneers-controls-chip.mjs +55 -0
  26. package/fesm2022/ngneers-controls-chip.mjs.map +1 -0
  27. package/fesm2022/ngneers-controls-default-icons.mjs +82 -0
  28. package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -0
  29. package/fesm2022/ngneers-controls-defer.mjs +72 -0
  30. package/fesm2022/ngneers-controls-defer.mjs.map +1 -0
  31. package/fesm2022/ngneers-controls-dialog.mjs +407 -0
  32. package/fesm2022/ngneers-controls-dialog.mjs.map +1 -0
  33. package/fesm2022/ngneers-controls-directives.mjs +498 -0
  34. package/fesm2022/ngneers-controls-directives.mjs.map +1 -0
  35. package/fesm2022/ngneers-controls-drawer.mjs +271 -0
  36. package/fesm2022/ngneers-controls-drawer.mjs.map +1 -0
  37. package/fesm2022/ngneers-controls-edit-inplace.mjs +127 -0
  38. package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -0
  39. package/fesm2022/ngneers-controls-errors.mjs +329 -0
  40. package/fesm2022/ngneers-controls-errors.mjs.map +1 -0
  41. package/fesm2022/ngneers-controls-filter.mjs +708 -0
  42. package/fesm2022/ngneers-controls-filter.mjs.map +1 -0
  43. package/fesm2022/ngneers-controls-hint.mjs +153 -0
  44. package/fesm2022/ngneers-controls-hint.mjs.map +1 -0
  45. package/fesm2022/ngneers-controls-i18n-translations-de.mjs +170 -0
  46. package/fesm2022/ngneers-controls-i18n-translations-de.mjs.map +1 -0
  47. package/fesm2022/ngneers-controls-i18n-translations-en.mjs +170 -0
  48. package/fesm2022/ngneers-controls-i18n-translations-en.mjs.map +1 -0
  49. package/fesm2022/ngneers-controls-i18n.mjs +57 -0
  50. package/fesm2022/ngneers-controls-i18n.mjs.map +1 -0
  51. package/fesm2022/ngneers-controls-icon.mjs +195 -0
  52. package/fesm2022/ngneers-controls-icon.mjs.map +1 -0
  53. package/fesm2022/ngneers-controls-inplace.mjs +150 -0
  54. package/fesm2022/ngneers-controls-inplace.mjs.map +1 -0
  55. package/fesm2022/ngneers-controls-input-field.mjs +165 -0
  56. package/fesm2022/ngneers-controls-input-field.mjs.map +1 -0
  57. package/fesm2022/ngneers-controls-input.mjs +72 -0
  58. package/fesm2022/ngneers-controls-input.mjs.map +1 -0
  59. package/fesm2022/ngneers-controls-item-view.mjs +473 -0
  60. package/fesm2022/ngneers-controls-item-view.mjs.map +1 -0
  61. package/fesm2022/ngneers-controls-list-box.mjs +281 -0
  62. package/fesm2022/ngneers-controls-list-box.mjs.map +1 -0
  63. package/fesm2022/ngneers-controls-mask-input.mjs +888 -0
  64. package/fesm2022/ngneers-controls-mask-input.mjs.map +1 -0
  65. package/fesm2022/ngneers-controls-menu.mjs +371 -0
  66. package/fesm2022/ngneers-controls-menu.mjs.map +1 -0
  67. package/fesm2022/ngneers-controls-message.mjs +30 -0
  68. package/fesm2022/ngneers-controls-message.mjs.map +1 -0
  69. package/fesm2022/ngneers-controls-number-input.mjs +366 -0
  70. package/fesm2022/ngneers-controls-number-input.mjs.map +1 -0
  71. package/fesm2022/ngneers-controls-paginator.mjs +129 -0
  72. package/fesm2022/ngneers-controls-paginator.mjs.map +1 -0
  73. package/fesm2022/ngneers-controls-popover.mjs +215 -0
  74. package/fesm2022/ngneers-controls-popover.mjs.map +1 -0
  75. package/fesm2022/ngneers-controls-progress.mjs +98 -0
  76. package/fesm2022/ngneers-controls-progress.mjs.map +1 -0
  77. package/fesm2022/ngneers-controls-radio.mjs +152 -0
  78. package/fesm2022/ngneers-controls-radio.mjs.map +1 -0
  79. package/fesm2022/ngneers-controls-roving-focus.mjs +323 -0
  80. package/fesm2022/ngneers-controls-roving-focus.mjs.map +1 -0
  81. package/fesm2022/ngneers-controls-scroll-shadow.mjs +65 -0
  82. package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -0
  83. package/fesm2022/ngneers-controls-scroller.mjs +308 -0
  84. package/fesm2022/ngneers-controls-scroller.mjs.map +1 -0
  85. package/fesm2022/ngneers-controls-select-button.mjs +58 -0
  86. package/fesm2022/ngneers-controls-select-button.mjs.map +1 -0
  87. package/fesm2022/ngneers-controls-select.mjs +417 -0
  88. package/fesm2022/ngneers-controls-select.mjs.map +1 -0
  89. package/fesm2022/ngneers-controls-slider.mjs +167 -0
  90. package/fesm2022/ngneers-controls-slider.mjs.map +1 -0
  91. package/fesm2022/ngneers-controls-snackbar.mjs +414 -0
  92. package/fesm2022/ngneers-controls-snackbar.mjs.map +1 -0
  93. package/fesm2022/ngneers-controls-spin-buttons.mjs +126 -0
  94. package/fesm2022/ngneers-controls-spin-buttons.mjs.map +1 -0
  95. package/fesm2022/ngneers-controls-spinner.mjs +184 -0
  96. package/fesm2022/ngneers-controls-spinner.mjs.map +1 -0
  97. package/fesm2022/ngneers-controls-splitter.mjs +604 -0
  98. package/fesm2022/ngneers-controls-splitter.mjs.map +1 -0
  99. package/fesm2022/ngneers-controls-state.mjs +185 -0
  100. package/fesm2022/ngneers-controls-state.mjs.map +1 -0
  101. package/fesm2022/ngneers-controls-switch.mjs +39 -0
  102. package/fesm2022/ngneers-controls-switch.mjs.map +1 -0
  103. package/fesm2022/ngneers-controls-table.mjs +2634 -0
  104. package/fesm2022/ngneers-controls-table.mjs.map +1 -0
  105. package/fesm2022/ngneers-controls-tabs.mjs +336 -0
  106. package/fesm2022/ngneers-controls-tabs.mjs.map +1 -0
  107. package/fesm2022/ngneers-controls-tag.mjs +30 -0
  108. package/fesm2022/ngneers-controls-tag.mjs.map +1 -0
  109. package/fesm2022/ngneers-controls-toast.mjs +350 -0
  110. package/fesm2022/ngneers-controls-toast.mjs.map +1 -0
  111. package/fesm2022/ngneers-controls-toggle-button.mjs +70 -0
  112. package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -0
  113. package/fesm2022/ngneers-controls-tooltip.mjs +506 -0
  114. package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -0
  115. package/fesm2022/ngneers-controls-tree.mjs +599 -0
  116. package/fesm2022/ngneers-controls-tree.mjs.map +1 -0
  117. package/fesm2022/ngneers-controls-upload.mjs +377 -0
  118. package/fesm2022/ngneers-controls-upload.mjs.map +1 -0
  119. package/fesm2022/ngneers-controls-utils-ng.mjs +411 -0
  120. package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -0
  121. package/fesm2022/ngneers-controls-utils.mjs +261 -0
  122. package/fesm2022/ngneers-controls-utils.mjs.map +1 -0
  123. package/fesm2022/ngneers-controls.mjs +6 -0
  124. package/fesm2022/ngneers-controls.mjs.map +1 -0
  125. package/package.json +302 -0
  126. package/types/ngneers-controls-accordion.d.ts +139 -0
  127. package/types/ngneers-controls-api-ng.d.ts +364 -0
  128. package/types/ngneers-controls-api-resize.d.ts +318 -0
  129. package/types/ngneers-controls-api.d.ts +145 -0
  130. package/types/ngneers-controls-avatar.d.ts +54 -0
  131. package/types/ngneers-controls-base.d.ts +277 -0
  132. package/types/ngneers-controls-breadcrumb.d.ts +272 -0
  133. package/types/ngneers-controls-button-group.d.ts +46 -0
  134. package/types/ngneers-controls-button.d.ts +48 -0
  135. package/types/ngneers-controls-calendar.d.ts +466 -0
  136. package/types/ngneers-controls-checkbox.d.ts +40 -0
  137. package/types/ngneers-controls-chip.d.ts +202 -0
  138. package/types/ngneers-controls-default-icons.d.ts +5 -0
  139. package/types/ngneers-controls-defer.d.ts +48 -0
  140. package/types/ngneers-controls-dialog.d.ts +399 -0
  141. package/types/ngneers-controls-directives.d.ts +171 -0
  142. package/types/ngneers-controls-drawer.d.ts +308 -0
  143. package/types/ngneers-controls-edit-inplace.d.ts +263 -0
  144. package/types/ngneers-controls-errors.d.ts +155 -0
  145. package/types/ngneers-controls-filter.d.ts +609 -0
  146. package/types/ngneers-controls-hint.d.ts +88 -0
  147. package/types/ngneers-controls-i18n-translations-de.d.ts +164 -0
  148. package/types/ngneers-controls-i18n-translations-en.d.ts +164 -0
  149. package/types/ngneers-controls-i18n.d.ts +186 -0
  150. package/types/ngneers-controls-icon.d.ts +68 -0
  151. package/types/ngneers-controls-inplace.d.ts +98 -0
  152. package/types/ngneers-controls-input-field.d.ts +248 -0
  153. package/types/ngneers-controls-input.d.ts +30 -0
  154. package/types/ngneers-controls-item-view.d.ts +215 -0
  155. package/types/ngneers-controls-list-box.d.ts +334 -0
  156. package/types/ngneers-controls-mask-input.d.ts +434 -0
  157. package/types/ngneers-controls-menu.d.ts +192 -0
  158. package/types/ngneers-controls-message.d.ts +21 -0
  159. package/types/ngneers-controls-number-input.d.ts +146 -0
  160. package/types/ngneers-controls-paginator.d.ts +255 -0
  161. package/types/ngneers-controls-popover.d.ts +116 -0
  162. package/types/ngneers-controls-progress.d.ts +49 -0
  163. package/types/ngneers-controls-radio.d.ts +91 -0
  164. package/types/ngneers-controls-roving-focus.d.ts +107 -0
  165. package/types/ngneers-controls-scroll-shadow.d.ts +25 -0
  166. package/types/ngneers-controls-scroller.d.ts +151 -0
  167. package/types/ngneers-controls-select-button.d.ts +51 -0
  168. package/types/ngneers-controls-select.d.ts +409 -0
  169. package/types/ngneers-controls-slider.d.ts +57 -0
  170. package/types/ngneers-controls-snackbar.d.ts +330 -0
  171. package/types/ngneers-controls-spin-buttons.d.ts +69 -0
  172. package/types/ngneers-controls-spinner.d.ts +117 -0
  173. package/types/ngneers-controls-splitter.d.ts +465 -0
  174. package/types/ngneers-controls-state.d.ts +102 -0
  175. package/types/ngneers-controls-switch.d.ts +18 -0
  176. package/types/ngneers-controls-table.d.ts +3127 -0
  177. package/types/ngneers-controls-tabs.d.ts +118 -0
  178. package/types/ngneers-controls-tag.d.ts +21 -0
  179. package/types/ngneers-controls-toast.d.ts +298 -0
  180. package/types/ngneers-controls-toggle-button.d.ts +48 -0
  181. package/types/ngneers-controls-tooltip.d.ts +189 -0
  182. package/types/ngneers-controls-tree.d.ts +409 -0
  183. package/types/ngneers-controls-upload.d.ts +347 -0
  184. package/types/ngneers-controls-utils-ng.d.ts +129 -0
  185. package/types/ngneers-controls-utils.d.ts +130 -0
  186. package/types/ngneers-controls.d.ts +2 -0
@@ -0,0 +1,118 @@
1
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
2
+ import * as _iconify_types from '@iconify/types';
3
+ import * as _angular_core from '@angular/core';
4
+ import { TemplateRef, AfterViewInit } from '@angular/core';
5
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
6
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
7
+ import { NgnBase } from '@ngneers/controls/base';
8
+
9
+ declare abstract class TabsTemplates extends NgnBase<'tabs'> {
10
+ private readonly _userHeaderLeftTemplate;
11
+ /**
12
+ * Set a custom template for the left side of the tabs header.
13
+ * Can also be set using an `<ng-template>` element with `#headerLeft` template reference variable.
14
+ */
15
+ readonly templateHeaderLeft: _angular_core.InputSignal<TemplateRef<unknown> | null>;
16
+ protected readonly headerLeftTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
17
+ private readonly _userHeaderRightTemplate;
18
+ /**
19
+ * Set a custom template for the right side of the tabs header.
20
+ * Can also be set using an `<ng-template>` element with `#headerRight` template reference variable.
21
+ */
22
+ readonly templateHeaderRight: _angular_core.InputSignal<TemplateRef<unknown> | null>;
23
+ protected readonly headerRightTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
24
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsTemplates, never>;
25
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabsTemplates, never, never, { "templateHeaderLeft": { "alias": "templateHeaderLeft"; "required": false; "isSignal": true; }; "templateHeaderRight": { "alias": "templateHeaderRight"; "required": false; "isSignal": true; }; }, {}, ["_userHeaderLeftTemplate", "_userHeaderRightTemplate"], never, true, never>;
26
+ }
27
+
28
+ /**
29
+ * @category control
30
+ */
31
+ declare class NgnTabs extends TabsTemplates implements AfterViewInit {
32
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"tabs", ["root", "headers-container", "headers", "header", "header-active", "header-active-indicator", "scroll-left", "scroll-right", "content"], readonly []>>;
33
+ /**
34
+ * Whether to lazy load the tab contents when they become visible.
35
+ * @default false
36
+ */
37
+ readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
38
+ /**
39
+ * Whether to cache the tab contents. Only applies to {@link lazy} loaded tabs.
40
+ * @default false
41
+ */
42
+ readonly cache: _angular_core.InputSignalWithTransform<boolean, unknown>;
43
+ /**
44
+ * Get or set the active tab ID.
45
+ */
46
+ readonly activeTab: _angular_core.ModelSignal<string>;
47
+ /**
48
+ * Icon for the left scroll button.
49
+ */
50
+ readonly iconScrollLeft: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
51
+ /**
52
+ * Icon for the right scroll button.
53
+ */
54
+ readonly iconScrollRight: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
55
+ protected readonly isFirstRender: _angular_core.WritableSignal<boolean>;
56
+ protected readonly elementId: string;
57
+ protected readonly indicatorWidth: _angular_core.WritableSignal<number>;
58
+ protected readonly indicatorLeft: _angular_core.WritableSignal<number>;
59
+ private readonly _tabs;
60
+ private readonly _tabList;
61
+ private readonly _tabListScrollDirective;
62
+ private readonly _tabListScroll;
63
+ private readonly _tabListSize;
64
+ private readonly _renderedTabHeaders;
65
+ private readonly _headerElements;
66
+ private readonly _headerSizes;
67
+ protected readonly headers: _angular_core.Signal<{
68
+ id: string;
69
+ template: _angular_core.TemplateRef<unknown> | undefined;
70
+ }[]>;
71
+ protected readonly contents: _angular_core.Signal<{
72
+ id: string;
73
+ template: _angular_core.TemplateRef<unknown> | undefined;
74
+ }[]>;
75
+ /**
76
+ * Inter-header gap (theme-defined — e.g. shade renders the header row as a padded tray with a
77
+ * `gap` between pills). Read from the resolved column-gap and re-evaluated whenever the list
78
+ * resizes or its header set changes (covers theme swaps). Included in the width math below so
79
+ * overflow detection isn't thrown off by the spacing between headers.
80
+ */
81
+ private readonly _platform;
82
+ private readonly _headerGap;
83
+ private readonly _totalTabsWidth;
84
+ protected readonly tabsOverflowingRight: _angular_core.Signal<boolean>;
85
+ protected readonly tabsOverflowingLeft: _angular_core.Signal<boolean>;
86
+ constructor();
87
+ ngAfterViewInit(): void;
88
+ protected selectTab(tabId: string): void;
89
+ protected handleTabKeyPress(event: KeyboardEvent, tabId: string): void;
90
+ private ensureTabHeaderIsScrolledIntoView;
91
+ private calculateHeaderSliceWidth;
92
+ private getCutOffTabHeaders;
93
+ protected scrollHeaders(direction: 'left' | 'right'): void;
94
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnTabs, never>;
95
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnTabs, "ngn-tabs", never, { "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "cache": { "alias": "cache"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "iconScrollLeft": { "alias": "iconScrollLeft"; "required": false; "isSignal": true; }; "iconScrollRight": { "alias": "iconScrollRight"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; }, ["_tabs"], never, true, never>;
96
+ }
97
+
98
+ /**
99
+ * @category control
100
+ */
101
+ declare class NgnTab extends NgnBase<'tabs'> {
102
+ protected readonly theme: null;
103
+ /**
104
+ * The unique identifier for the tab.
105
+ */
106
+ readonly tabId: _angular_core.InputSignal<string>;
107
+ /**
108
+ * Useful for accessing the {@link tabId} in a safe way, without worrying about timing.
109
+ */
110
+ readonly safeTabId: _angular_core.WritableSignal<string | null>;
111
+ readonly content: _angular_core.Signal<TemplateRef<unknown> | undefined>;
112
+ readonly header: _angular_core.Signal<TemplateRef<unknown> | undefined>;
113
+ constructor();
114
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnTab, never>;
115
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnTab, "ngn-tab", never, { "tabId": { "alias": "tabId"; "required": true; "isSignal": true; }; }, {}, ["content", "header"], never, true, never>;
116
+ }
117
+
118
+ export { NgnTab, NgnTabs };
@@ -0,0 +1,21 @@
1
+ import * as i0 from '@angular/core';
2
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
3
+ import * as _iconify_types from '@iconify/types';
4
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
5
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
6
+ import { NgnBase } from '@ngneers/controls/base';
7
+
8
+ /**
9
+ * @category control
10
+ */
11
+ declare class NgnTag extends NgnBase<'tag'> {
12
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"tag", ["root", "content", "icon", `kind-${string}`, `color-${string}`], readonly []>>;
13
+ /**
14
+ * Set an icon to display before the text.
15
+ */
16
+ readonly icon: i0.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgnTag, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgnTag, "ngn-tag", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
19
+ }
20
+
21
+ export { NgnTag };
@@ -0,0 +1,298 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, InjectionToken, Provider, Injector, OnInit } from '@angular/core';
3
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
4
+ import { CustomColor, IconType } from '@ngneers/controls-custom-types';
5
+ import * as _iconify_types from '@iconify/types';
6
+ import * as _ngneers_signal_translate from '@ngneers/signal-translate';
7
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
8
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
9
+ import { NgnBase } from '@ngneers/controls/base';
10
+
11
+ type HeaderTemplateType = {
12
+ header?: string;
13
+ closable: boolean;
14
+ closeToast: () => void;
15
+ };
16
+ type ContentTemplateType = {
17
+ content?: string;
18
+ };
19
+ type NgnToastOptionsMeta = {
20
+ closable?: boolean;
21
+ color?: CustomColor;
22
+ icon?: IconType;
23
+ autoHide?: number | false;
24
+ };
25
+ type NgnToastOptions = NgnToastOptionsMeta & {
26
+ header?: string;
27
+ content?: string;
28
+ headerTemplate?: TemplateRef<HeaderTemplateType>;
29
+ contentTemplate?: TemplateRef<ContentTemplateType>;
30
+ };
31
+ type NgnToastRef = {
32
+ hide: () => void;
33
+ };
34
+
35
+ type NgnToastFeature = {
36
+ providers: Provider[];
37
+ };
38
+ declare const NGN_TOAST_USER_DEFAULTS: InjectionToken<NgnToastOptionsMeta>;
39
+ declare function withToasts(defaultOptions?: NgnToastOptionsMeta): NgnToastFeature;
40
+
41
+ declare class ToastCreator {
42
+ private readonly _manager;
43
+ constructor();
44
+ show(options: NgnToastOptions): NgnToastRef;
45
+ }
46
+ declare function injectToastCreator(injector?: Injector): ToastCreator;
47
+
48
+ /**
49
+ * Template inputs for {@link NgnToast}, extracted into a dedicated base class so the
50
+ * component itself stays focused on behavior.
51
+ */
52
+ declare abstract class ToastTemplates extends NgnBase<'toast'> {
53
+ /** Custom template for the toast body, rendered in place of the plain `content` string. */
54
+ readonly templateContent: _angular_core.InputSignal<TemplateRef<ContentTemplateType> | null | undefined>;
55
+ /** Custom template for the toast header, rendered in place of the plain `header` string. */
56
+ readonly templateHeader: _angular_core.InputSignal<TemplateRef<HeaderTemplateType> | null | undefined>;
57
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastTemplates, never>;
58
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToastTemplates, never, never, { "templateContent": { "alias": "templateContent"; "required": false; "isSignal": true; }; "templateHeader": { "alias": "templateHeader"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
59
+ }
60
+
61
+ /**
62
+ * @category control
63
+ */
64
+ declare class NgnToast extends ToastTemplates implements OnInit {
65
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"toast", ["root", "host", "anim-enter", "anim-leave", "defaultHeader", "defaultHeaderText", "defaultContent", `color-${string}`], readonly []>>;
66
+ protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
67
+ calendar: {
68
+ today: string;
69
+ input: string;
70
+ selectYear: string;
71
+ selectMonth: string;
72
+ previousMonth: string;
73
+ nextMonth: string;
74
+ weekdays: {
75
+ monday: string;
76
+ tuesday: string;
77
+ wednesday: string;
78
+ thursday: string;
79
+ friday: string;
80
+ saturday: string;
81
+ sunday: string;
82
+ };
83
+ weekdaysShort: {
84
+ monday: string;
85
+ tuesday: string;
86
+ wednesday: string;
87
+ thursday: string;
88
+ friday: string;
89
+ saturday: string;
90
+ sunday: string;
91
+ };
92
+ months: {
93
+ january: string;
94
+ february: string;
95
+ march: string;
96
+ april: string;
97
+ may: string;
98
+ june: string;
99
+ july: string;
100
+ august: string;
101
+ september: string;
102
+ october: string;
103
+ november: string;
104
+ december: string;
105
+ };
106
+ };
107
+ editInplace: {
108
+ placeholder: string;
109
+ confirm: string;
110
+ };
111
+ filter: {
112
+ noFilter: string;
113
+ addCondition: string;
114
+ removeCondition: string;
115
+ operator: string;
116
+ value: string;
117
+ clear: string;
118
+ apply: string;
119
+ cancel: string;
120
+ matchModeLabel: string;
121
+ match: {
122
+ all: string;
123
+ any: string;
124
+ and: string;
125
+ or: string;
126
+ };
127
+ selected: string;
128
+ conditions: string;
129
+ operators: {
130
+ isEqual: string;
131
+ isNotEqual: string;
132
+ contains: string;
133
+ startsWith: string;
134
+ endsWith: string;
135
+ in: string;
136
+ isEmpty: string;
137
+ isNotEmpty: string;
138
+ greaterThan: string;
139
+ greaterThanOrEqual: string;
140
+ lessThan: string;
141
+ lessThanOrEqual: string;
142
+ after: string;
143
+ onOrAfter: string;
144
+ before: string;
145
+ onOrBefore: string;
146
+ isTrue: string;
147
+ isFalse: string;
148
+ custom: string;
149
+ };
150
+ };
151
+ splitter: {
152
+ handleLabel: string;
153
+ };
154
+ inputField: {
155
+ clearInput: string;
156
+ };
157
+ maskInput: {
158
+ roleDescription: string;
159
+ segmentRange: string;
160
+ optionSeparator: string;
161
+ };
162
+ drawer: {
163
+ close: string;
164
+ };
165
+ dialog: {
166
+ close: string;
167
+ };
168
+ chip: {
169
+ close: string;
170
+ };
171
+ breadcrumb: {
172
+ overflow: string;
173
+ };
174
+ toast: {
175
+ close: string;
176
+ region: string;
177
+ };
178
+ snackbar: {
179
+ close: string;
180
+ region: string;
181
+ severity: {
182
+ error: string;
183
+ warning: string;
184
+ success: string;
185
+ info: string;
186
+ };
187
+ };
188
+ upload: {
189
+ upload: string;
190
+ uploadNamed: string;
191
+ retryNamed: string;
192
+ cancelNamed: string;
193
+ removeNamed: string;
194
+ progressNamed: string;
195
+ };
196
+ select: {
197
+ filterOptions: string;
198
+ };
199
+ paginator: {
200
+ previousPage: string;
201
+ nextPage: string;
202
+ };
203
+ listBox: {
204
+ noItemsFound: string;
205
+ };
206
+ tree: {
207
+ noItemsFound: string;
208
+ };
209
+ table: {
210
+ selectAllRows: string;
211
+ selectRow: string;
212
+ sortedBy: string;
213
+ sortAscending: string;
214
+ sortDescending: string;
215
+ sortCleared: string;
216
+ selectedCount: string;
217
+ page: string;
218
+ resultCount: string;
219
+ };
220
+ state: {
221
+ loading: string;
222
+ success: string;
223
+ warning: string;
224
+ error: string;
225
+ cancelled: string;
226
+ };
227
+ }, "_">;
228
+ private readonly _host;
229
+ /** The toast header text. For richer markup use {@link templateHeader} instead. */
230
+ readonly header: _angular_core.InputSignal<string | undefined>;
231
+ /** The toast body text. For richer markup use {@link templateContent} instead. */
232
+ readonly content: _angular_core.InputSignal<string | undefined>;
233
+ /**
234
+ * Politeness of the live region used to announce the toast to assistive tech.
235
+ * When omitted, it is derived from {@link color}: `error`/`warning` announce as
236
+ * `assertive` (mapped to `role="alert"`), everything else as `polite`
237
+ * (`role="status"`).
238
+ */
239
+ readonly ariaLive: _angular_core.InputSignal<"polite" | "assertive" | "off" | undefined>;
240
+ /** Resolved live-region politeness — explicit {@link ariaLive} input, else derived from color. */
241
+ protected readonly liveMode: _angular_core.Signal<"polite" | "assertive" | "off">;
242
+ /** Landmark role paired with {@link liveMode} — `alert` when assertive, else `status`. */
243
+ protected readonly role: _angular_core.Signal<"status" | "alert">;
244
+ /** Icon to display alongside the toast content. */
245
+ readonly icon: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
246
+ /** Icon for the close button. */
247
+ readonly iconClose: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
248
+ /**
249
+ * Whether the toast renders a close button and can be dismissed by the user
250
+ * (e.g. via the close button or `Escape`).
251
+ * @default false
252
+ */
253
+ readonly closable: _angular_core.InputSignal<boolean | undefined>;
254
+ /**
255
+ * Time in milliseconds before the toast auto-hides, or `false` to disable
256
+ * auto-hiding. The timer pauses while the toast is hovered or focused.
257
+ * @default 5000
258
+ */
259
+ readonly autoHide: _angular_core.InputSignal<number | false | undefined>;
260
+ /** Emitted when the toast is dismissed, whether by the user or the auto-hide timer. */
261
+ readonly closeToast: _angular_core.OutputEmitterRef<void>;
262
+ private _closeTimeout?;
263
+ private _remaining;
264
+ private _startedAt;
265
+ private _hovered;
266
+ private _focused;
267
+ private _regionPaused;
268
+ /** Element that had focus before the user moved into the toast; focus returns here on close. */
269
+ private _returnFocus;
270
+ ngOnInit(): void;
271
+ private startHideTimer;
272
+ private pauseHideTimer;
273
+ /**
274
+ * Pause the auto-hide timer while the toast is hovered, focused (a WCAG 2.2.1
275
+ * requirement so keyboard and screen-reader users can read it), or while the
276
+ * whole region holds focus, resuming once none holds.
277
+ */
278
+ private updatePause;
279
+ protected close(): void;
280
+ /** Return focus to the pre-toast element when it is dismissed while focused within. */
281
+ private restoreFocus;
282
+ /** Move DOM focus to the toast root (used by the region's roving/hotkey navigation). */
283
+ focus(): void;
284
+ /** Freeze the timer because the notification region as a whole holds focus. */
285
+ regionPause(): void;
286
+ /** Release the region-level freeze; resumes unless still hovered/focused. */
287
+ regionResume(): void;
288
+ protected onEscape(): void;
289
+ protected mouseEnter(): void;
290
+ protected mouseLeave(): void;
291
+ protected focusEnter(event: FocusEvent): void;
292
+ protected focusLeave(event: FocusEvent): void;
293
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnToast, never>;
294
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnToast, "ngn-toast", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "ariaLive": { "alias": "ariaLive"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconClose": { "alias": "iconClose"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; }, { "closeToast": "closeToast"; }, never, never, true, never>;
295
+ }
296
+
297
+ export { NGN_TOAST_USER_DEFAULTS, NgnToast, injectToastCreator, withToasts };
298
+ export type { ContentTemplateType, HeaderTemplateType, NgnToastFeature, NgnToastOptions, NgnToastOptionsMeta, NgnToastRef };
@@ -0,0 +1,48 @@
1
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
2
+ import * as _iconify_types from '@iconify/types';
3
+ import * as _angular_core from '@angular/core';
4
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
5
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
6
+ import { ValueControlBase } from '@ngneers/controls/base';
7
+
8
+ /**
9
+ * @category control
10
+ */
11
+ declare class NgnToggleButton extends ValueControlBase<'toggleButton', boolean> {
12
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"toggle-button", ["root", "invalid", "button", "label", "active", "placeholder", "placeholder-active"], readonly []>>;
13
+ /**
14
+ * Optional labels for on and off states.
15
+ * If not provided, the {@link label} input will be used.
16
+ */
17
+ readonly labelOn: _angular_core.InputSignal<string | undefined>;
18
+ /**
19
+ * Optional labels for on and off states.
20
+ * If not provided, the {@link label} input will be used.
21
+ */
22
+ readonly labelOff: _angular_core.InputSignal<string | undefined>;
23
+ /**
24
+ * Optional icon for the button. Can be used instead of the label or in combination with it.
25
+ * If {@link iconOn} and {@link iconOff} are provided, they will take precedence over this input for their respective states.
26
+ */
27
+ readonly icon: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
28
+ /**
29
+ * Optional icons for on and off states.
30
+ * If not provided, the {@link icon} input will be used.
31
+ */
32
+ readonly iconOn: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
33
+ /**
34
+ * Optional icons for on and off states.
35
+ * If not provided, the {@link icon} input will be used.
36
+ */
37
+ readonly iconOff: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
38
+ /**
39
+ * If true, the button will always have the width of the longest possible content.
40
+ * @default false
41
+ */
42
+ readonly fixedWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
43
+ toggle(): void;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnToggleButton, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnToggleButton, "ngn-toggle-button", never, { "labelOn": { "alias": "labelOn"; "required": false; "isSignal": true; }; "labelOff": { "alias": "labelOff"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconOn": { "alias": "iconOn"; "required": false; "isSignal": true; }; "iconOff": { "alias": "iconOff"; "required": false; "isSignal": true; }; "fixedWidth": { "alias": "fixedWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
+ }
47
+
48
+ export { NgnToggleButton };