@cute-widgets/base 20.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 (183) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +191 -0
  3. package/README.md +190 -0
  4. package/abstract/index.d.ts +327 -0
  5. package/alert/index.d.ts +68 -0
  6. package/autocomplete/index.d.ts +442 -0
  7. package/badge/index.d.ts +26 -0
  8. package/bottom-sheet/index.d.ts +231 -0
  9. package/button/index.d.ts +182 -0
  10. package/button-toggle/index.d.ts +225 -0
  11. package/card/index.d.ts +163 -0
  12. package/checkbox/index.d.ts +174 -0
  13. package/chips/index.d.ts +963 -0
  14. package/collapse/index.d.ts +97 -0
  15. package/core/animation/index.d.ts +43 -0
  16. package/core/datetime/index.d.ts +404 -0
  17. package/core/directives/index.d.ts +168 -0
  18. package/core/error/index.d.ts +74 -0
  19. package/core/index.d.ts +1039 -0
  20. package/core/interfaces/index.d.ts +114 -0
  21. package/core/layout/index.d.ts +53 -0
  22. package/core/line/index.d.ts +37 -0
  23. package/core/nav/index.d.ts +321 -0
  24. package/core/observers/index.d.ts +124 -0
  25. package/core/option/index.d.ts +185 -0
  26. package/core/pipes/index.d.ts +53 -0
  27. package/core/ripple/index.d.ts +66 -0
  28. package/core/testing/index.d.ts +154 -0
  29. package/core/theming/index.d.ts +118 -0
  30. package/core/types/index.d.ts +53 -0
  31. package/core/utils/index.d.ts +129 -0
  32. package/cute-widgets-base-20.0.1.tgz +0 -0
  33. package/datepicker/index.d.ts +1817 -0
  34. package/dialog/index.d.ts +484 -0
  35. package/divider/index.d.ts +24 -0
  36. package/expansion/README.md +8 -0
  37. package/expansion/index.d.ts +308 -0
  38. package/fesm2022/cute-widgets-base-abstract.mjs +547 -0
  39. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -0
  40. package/fesm2022/cute-widgets-base-alert.mjs +198 -0
  41. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -0
  42. package/fesm2022/cute-widgets-base-autocomplete.mjs +1217 -0
  43. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -0
  44. package/fesm2022/cute-widgets-base-badge.mjs +75 -0
  45. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -0
  46. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +416 -0
  47. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -0
  48. package/fesm2022/cute-widgets-base-button-toggle.mjs +640 -0
  49. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -0
  50. package/fesm2022/cute-widgets-base-button.mjs +546 -0
  51. package/fesm2022/cute-widgets-base-button.mjs.map +1 -0
  52. package/fesm2022/cute-widgets-base-card.mjs +471 -0
  53. package/fesm2022/cute-widgets-base-card.mjs.map +1 -0
  54. package/fesm2022/cute-widgets-base-checkbox.mjs +390 -0
  55. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -0
  56. package/fesm2022/cute-widgets-base-chips.mjs +2360 -0
  57. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -0
  58. package/fesm2022/cute-widgets-base-collapse.mjs +259 -0
  59. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -0
  60. package/fesm2022/cute-widgets-base-core-animation.mjs +53 -0
  61. package/fesm2022/cute-widgets-base-core-animation.mjs.map +1 -0
  62. package/fesm2022/cute-widgets-base-core-datetime.mjs +568 -0
  63. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -0
  64. package/fesm2022/cute-widgets-base-core-directives.mjs +404 -0
  65. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -0
  66. package/fesm2022/cute-widgets-base-core-error.mjs +105 -0
  67. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -0
  68. package/fesm2022/cute-widgets-base-core-interfaces.mjs +22 -0
  69. package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -0
  70. package/fesm2022/cute-widgets-base-core-layout.mjs +74 -0
  71. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -0
  72. package/fesm2022/cute-widgets-base-core-line.mjs +87 -0
  73. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -0
  74. package/fesm2022/cute-widgets-base-core-nav.mjs +863 -0
  75. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -0
  76. package/fesm2022/cute-widgets-base-core-observers.mjs +304 -0
  77. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -0
  78. package/fesm2022/cute-widgets-base-core-option.mjs +373 -0
  79. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -0
  80. package/fesm2022/cute-widgets-base-core-pipes.mjs +97 -0
  81. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -0
  82. package/fesm2022/cute-widgets-base-core-ripple.mjs +172 -0
  83. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -0
  84. package/fesm2022/cute-widgets-base-core-testing.mjs +210 -0
  85. package/fesm2022/cute-widgets-base-core-testing.mjs.map +1 -0
  86. package/fesm2022/cute-widgets-base-core-theming.mjs +314 -0
  87. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -0
  88. package/fesm2022/cute-widgets-base-core-types.mjs +22 -0
  89. package/fesm2022/cute-widgets-base-core-types.mjs.map +1 -0
  90. package/fesm2022/cute-widgets-base-core-utils.mjs +257 -0
  91. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -0
  92. package/fesm2022/cute-widgets-base-core.mjs +1600 -0
  93. package/fesm2022/cute-widgets-base-core.mjs.map +1 -0
  94. package/fesm2022/cute-widgets-base-datepicker.mjs +4827 -0
  95. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -0
  96. package/fesm2022/cute-widgets-base-dialog.mjs +1046 -0
  97. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -0
  98. package/fesm2022/cute-widgets-base-divider.mjs +86 -0
  99. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -0
  100. package/fesm2022/cute-widgets-base-expansion.mjs +623 -0
  101. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -0
  102. package/fesm2022/cute-widgets-base-form-field.mjs +969 -0
  103. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -0
  104. package/fesm2022/cute-widgets-base-grid-list.mjs +715 -0
  105. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -0
  106. package/fesm2022/cute-widgets-base-icon.mjs +1105 -0
  107. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -0
  108. package/fesm2022/cute-widgets-base-input.mjs +726 -0
  109. package/fesm2022/cute-widgets-base-input.mjs.map +1 -0
  110. package/fesm2022/cute-widgets-base-layout-container.mjs +95 -0
  111. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -0
  112. package/fesm2022/cute-widgets-base-layout-stack.mjs +166 -0
  113. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -0
  114. package/fesm2022/cute-widgets-base-layout.mjs +250 -0
  115. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -0
  116. package/fesm2022/cute-widgets-base-list.mjs +1557 -0
  117. package/fesm2022/cute-widgets-base-list.mjs.map +1 -0
  118. package/fesm2022/cute-widgets-base-menu.mjs +1283 -0
  119. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -0
  120. package/fesm2022/cute-widgets-base-navbar.mjs +359 -0
  121. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -0
  122. package/fesm2022/cute-widgets-base-paginator.mjs +485 -0
  123. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -0
  124. package/fesm2022/cute-widgets-base-progress.mjs +321 -0
  125. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -0
  126. package/fesm2022/cute-widgets-base-radio.mjs +637 -0
  127. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -0
  128. package/fesm2022/cute-widgets-base-select.mjs +1208 -0
  129. package/fesm2022/cute-widgets-base-select.mjs.map +1 -0
  130. package/fesm2022/cute-widgets-base-sidenav.mjs +1095 -0
  131. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -0
  132. package/fesm2022/cute-widgets-base-slider.mjs +99 -0
  133. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -0
  134. package/fesm2022/cute-widgets-base-snack-bar.mjs +897 -0
  135. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -0
  136. package/fesm2022/cute-widgets-base-sort.mjs +639 -0
  137. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -0
  138. package/fesm2022/cute-widgets-base-spinner.mjs +154 -0
  139. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -0
  140. package/fesm2022/cute-widgets-base-stepper.mjs +673 -0
  141. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -0
  142. package/fesm2022/cute-widgets-base-table.mjs +1023 -0
  143. package/fesm2022/cute-widgets-base-table.mjs.map +1 -0
  144. package/fesm2022/cute-widgets-base-tabs.mjs +729 -0
  145. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -0
  146. package/fesm2022/cute-widgets-base-timepicker.mjs +965 -0
  147. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -0
  148. package/fesm2022/cute-widgets-base-toolbar.mjs +120 -0
  149. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -0
  150. package/fesm2022/cute-widgets-base-tooltip.mjs +947 -0
  151. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -0
  152. package/fesm2022/cute-widgets-base-tree.mjs +598 -0
  153. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -0
  154. package/fesm2022/cute-widgets-base.mjs +68 -0
  155. package/fesm2022/cute-widgets-base.mjs.map +1 -0
  156. package/form-field/index.d.ts +401 -0
  157. package/grid-list/index.d.ts +361 -0
  158. package/icon/index.d.ts +477 -0
  159. package/index.d.ts +3 -0
  160. package/input/index.d.ts +256 -0
  161. package/layout/container/index.d.ts +31 -0
  162. package/layout/index.d.ts +78 -0
  163. package/layout/stack/index.d.ts +52 -0
  164. package/list/index.d.ts +659 -0
  165. package/menu/index.d.ts +497 -0
  166. package/navbar/index.d.ts +91 -0
  167. package/package.json +279 -0
  168. package/paginator/index.d.ts +216 -0
  169. package/progress/index.d.ts +130 -0
  170. package/radio/index.d.ts +259 -0
  171. package/select/index.d.ts +426 -0
  172. package/sidenav/index.d.ts +369 -0
  173. package/slider/index.d.ts +48 -0
  174. package/snack-bar/index.d.ts +374 -0
  175. package/sort/index.d.ts +334 -0
  176. package/spinner/index.d.ts +70 -0
  177. package/stepper/index.d.ts +295 -0
  178. package/table/index.d.ts +395 -0
  179. package/tabs/index.d.ts +307 -0
  180. package/timepicker/index.d.ts +350 -0
  181. package/toolbar/index.d.ts +36 -0
  182. package/tooltip/index.d.ts +299 -0
  183. package/tree/index.d.ts +314 -0
@@ -0,0 +1,114 @@
1
+ import { RichThemeColor } from '@cute-widgets/base/core/theming';
2
+
3
+ interface Focusable {
4
+ focus(): void;
5
+ }
6
+
7
+ interface MenuAction {
8
+ type: "RouterLink" | "ExternalURL" | "AppEvent" | "DwScript";
9
+ text: string;
10
+ target?: "Main" | "Popup" | "Response";
11
+ }
12
+
13
+ /**
14
+ * @license Apache-2.0
15
+ *
16
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
17
+ *
18
+ * You may not use this file except in compliance with the License
19
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
20
+ */
21
+
22
+ /**
23
+ * A structure that populates the properties for individual items in a TreeView control.
24
+ */
25
+ interface TreeNode<D = unknown> {
26
+ /** Unique identifier */
27
+ id?: string;
28
+ /** Identifies the string label associated with the item. */
29
+ label: string;
30
+ /** Specifies whether the item has children. */
31
+ hasChildren?: boolean;
32
+ /** Children items. */
33
+ children?: TreeNode<D>[];
34
+ /** Item short description */
35
+ microHelp?: string;
36
+ /** Indicates the level of the item in the TreeView control. */
37
+ level?: number;
38
+ /** Any user-defined data. */
39
+ data?: D;
40
+ /** Router link. */
41
+ routerLink?: string | string[];
42
+ /** Identifies the picture displayed to the left of the item label. */
43
+ icon?: string;
44
+ /** Icon color. */
45
+ iconColor?: string;
46
+ /** Icon CSS class(es). */
47
+ iconClass?: string | string[] | Record<string, boolean>;
48
+ /** Identifies the state picture associated with the item. */
49
+ stateIcon?: string;
50
+ /** The badge text associated with the item. */
51
+ badge?: string;
52
+ /** Badge theme color. */
53
+ badgeColor?: RichThemeColor;
54
+ /** Is node enabled? Default is _true_. */
55
+ enabled?: (() => boolean) | boolean;
56
+ /** Is node visible? Default is _true_. */
57
+ visible?: (() => boolean) | boolean;
58
+ status?: {
59
+ /** Specifies whether the node is expanded. */
60
+ expanded?: boolean;
61
+ /** Specifies whether the node has been populated with children. */
62
+ populated?: boolean;
63
+ /** Specifies whether the item has focus. */
64
+ hasFocus?: boolean;
65
+ /** Specifies whether the item is selected. */
66
+ selection?: 'checked' | 'indeterminate' | 'unchecked';
67
+ };
68
+ }
69
+
70
+ interface ToolbarItem {
71
+ /** Icon ligature */
72
+ icon?: string;
73
+ /** Icon color */
74
+ iconColor?: string;
75
+ /** Specifies the order of the item in the toolbar */
76
+ order?: number;
77
+ /** Specifies the amount of empty space before the item in the toolbar */
78
+ spaces?: number;
79
+ /** Specifies the text that displays in the toolbar item when the display text option is on for toolbars */
80
+ text?: string;
81
+ /** Specifies whether the toolbar item displays. Default is _false_ */
82
+ visible?: boolean;
83
+ }
84
+
85
+ /**
86
+ * @license Apache-2.0
87
+ *
88
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
89
+ *
90
+ * You may not use this file except in compliance with the License
91
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
92
+ */
93
+
94
+ /**
95
+ * Menu Item interface is used for items in a drop-down or cascading menu
96
+ */
97
+ interface MenuItem<D = unknown> extends TreeNode<D> {
98
+ /** An array of the submenu items. */
99
+ children?: MenuItem<D>[];
100
+ /** Whether an item is the default item. */
101
+ default?: (() => boolean) | boolean;
102
+ /** Is item checked? Default is _false_. */
103
+ checked?: (() => boolean) | boolean;
104
+ /** Item is clicked (selected or unselected). */
105
+ clicked?: () => void;
106
+ /** Toolbar's item definition. */
107
+ toolBarItem?: ToolbarItem;
108
+ }
109
+
110
+ interface MenuOwner extends Focusable {
111
+ menuItemClicked: (mi: MenuItem) => void;
112
+ }
113
+
114
+ export type { Focusable, MenuAction, MenuItem, MenuOwner, ToolbarItem, TreeNode };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license Apache-2.0
3
+ *
4
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
5
+ *
6
+ * You may not use this file except in compliance with the License
7
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
8
+ */
9
+ /**
10
+ * Bootstrap media-queries, or `breakpoints`.
11
+ * PascalCase is being used as Breakpoints is used like an enum.
12
+ */
13
+ declare const bsBreakpoints: {
14
+ SmallAndDown: string;
15
+ MediumAndDown: string;
16
+ LargeAndDown: string;
17
+ XLargeAndDown: string;
18
+ XXLargeAndDown: string;
19
+ XSmall: string;
20
+ Small: string;
21
+ Medium: string;
22
+ Large: string;
23
+ XLarge: string;
24
+ XXLarge: string;
25
+ readonly grid: {
26
+ xs: number;
27
+ sm: number;
28
+ md: number;
29
+ lg: number;
30
+ xl: number;
31
+ xxl: number;
32
+ };
33
+ readonly xs: string;
34
+ readonly sm: string;
35
+ readonly md: string;
36
+ readonly lg: string;
37
+ readonly xl: string;
38
+ readonly xxl: string;
39
+ /**
40
+ * Gets the object's property name of the media-query by its value
41
+ * @param query The media-query text
42
+ * @returns The property name of the media-query or _undefined_ if it was not found
43
+ */
44
+ getQueryName(query: string): string | undefined;
45
+ /**
46
+ * Gets the breakpoint label by Bootstrap's breakpoint abbreviation
47
+ * @param code Bootstrap's breakpoint abbreviation
48
+ * @returns More descriptive text of the abbreviation
49
+ */
50
+ getLabel(code: string): string;
51
+ };
52
+
53
+ export { bsBreakpoints };
@@ -0,0 +1,37 @@
1
+ import * as i0 from '@angular/core';
2
+ import { QueryList, ElementRef } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+
5
+ /**
6
+ * @license Apache-2.0
7
+ *
8
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
9
+ *
10
+ * You may not use this file except in compliance with the License
11
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * This code is a modification of the `@angular/material` original
14
+ * code licensed under MIT-style License (https://angular.dev/license).
15
+ */
16
+
17
+ /**
18
+ * Shared directive to count lines inside a text area, such as a list item.
19
+ * Line elements can be extracted with a @ContentChildren(CuteLine) query, then
20
+ * counted by checking the query list's length.
21
+ */
22
+ declare class CuteLine {
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteLine, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteLine, "[cute-line], [cuteLine]", never, {}, {}, never, never, true, never>;
25
+ }
26
+ /**
27
+ * Helper that takes a query list of lines and sets the correct class on the host.
28
+ */
29
+ declare function setLines(lines: QueryList<unknown>, element: ElementRef<HTMLElement>, prefix?: string): void;
30
+
31
+ declare class CuteLineModule {
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteLineModule, never>;
33
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuteLineModule, never, [typeof i1.CommonModule, typeof CuteLine], [typeof CuteLine]>;
34
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuteLineModule>;
35
+ }
36
+
37
+ export { CuteLine, CuteLineModule, setLines };
@@ -0,0 +1,321 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgZone, ViewContainerRef, InjectionToken, DestroyRef, QueryList, EventEmitter, TemplateRef, OnDestroy } from '@angular/core';
3
+ import { ListKeyManager, FocusOrigin } from '@angular/cdk/a11y';
4
+ import { Directionality } from '@angular/cdk/bidi';
5
+ import { CuteFocusableControl, CuteLayoutControl } from '@cute-widgets/base/abstract';
6
+ import { toThemeColor, RichThemeColor, LayoutOrientation, ContentAlignment } from '@cute-widgets/base/core';
7
+ import * as _cute_widgets_base_core_nav from '@cute-widgets/base/core/nav';
8
+ import { CdkPortal, CdkPortalOutlet } from '@angular/cdk/portal';
9
+ import * as i1 from '@angular/cdk/overlay';
10
+ import * as i1$1 from '@angular/common';
11
+
12
+ /**
13
+ * This class can be used to create a navigation menu, where it is applied to `<a>` elements.
14
+ */
15
+ declare class CuteNavLink extends CuteFocusableControl {
16
+ protected _document: Document;
17
+ protected _ngZone: NgZone;
18
+ protected readonly nav: _cute_widgets_base_core_nav.CuteNav | null;
19
+ protected toThemeColor: typeof toThemeColor;
20
+ /** Whether the link is active. */
21
+ active: boolean;
22
+ /** Explicit element identifier(s) whose content or presence are controlled by the link */
23
+ ariaControls: string | undefined;
24
+ constructor();
25
+ protected generateId(): string;
26
+ /** Gets fallback element identifier(s) whose content or presence are controlled by the link. */
27
+ protected getAriaControls(): string;
28
+ /**
29
+ * MouseDown event handler in `capture` state of the event propagation.
30
+ * @param event MouseEvent
31
+ * @protected
32
+ */
33
+ protected onMouseDown(event: MouseEvent): void;
34
+ protected onClick(event: MouseEvent): void;
35
+ protected onTouchStart(event: TouchEvent): void;
36
+ ngOnInit(): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavLink, never>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteNavLink, "a[cute-nav-link], a[cuteNavLink], button[cute-nav-link], button[cuteNavLink] ", ["cuteNavLink"], { "active": { "alias": "active"; "required": false; }; "ariaControls": { "alias": "aria-controls"; "required": false; }; }, {}, never, never, true, never>;
39
+ static ngAcceptInputType_active: unknown;
40
+ }
41
+
42
+ /**
43
+ * @license Apache-2.0
44
+ *
45
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
46
+ *
47
+ * You may not use this file except in compliance with the License
48
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
49
+ */
50
+
51
+ /**
52
+ * Token used to provide a `CuteNavItem` to `CuteNavLink`.
53
+ * Used to avoid circular imports between `CuteNavItem` and `CuteNavLink`.
54
+ */
55
+ declare const CUTE_NAV_ITEM: InjectionToken<CuteNavItem>;
56
+ /**
57
+ * The purpose of this class is to ensure that the list items in the navigation have the correct spacing in **Bootstrap** framework.
58
+ */
59
+ declare class CuteNavItem extends CuteLayoutControl {
60
+ protected _viewContainerRef: ViewContainerRef;
61
+ readonly nav: CuteNav;
62
+ /** Nested `nav-link` element */
63
+ readonly navLink: CuteNavLink | undefined;
64
+ /** Nested <ng-template cuteNavContent> projected content */
65
+ private _navContent;
66
+ /** Unscoped projected content */
67
+ private _staticContentTemplate;
68
+ /**
69
+ * By default, tabs remove their content from the DOM while it's off-screen. Setting this to _true_ will keep it in
70
+ * the DOM which will prevent elements like `iframes` and `videos` from reloading next time it comes back into the view.
71
+ */
72
+ get preserveTabContent(): boolean;
73
+ set preserveTabContent(value: boolean | undefined);
74
+ private _preserveTabContent;
75
+ /** Portal that will be the hosted content of the nav */
76
+ get content(): CdkPortal | null;
77
+ private _contentPortal;
78
+ /**
79
+ * Whether the tab/nav is currently active.
80
+ */
81
+ get isActive(): boolean;
82
+ /** Override the `color` setting for Tab control */
83
+ get color(): RichThemeColor | undefined;
84
+ set color(value: RichThemeColor | undefined);
85
+ constructor();
86
+ protected generateId(): string;
87
+ ngOnInit(): void;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavItem, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuteNavItem, "cute-nav-item, [cute-nav-item], [cuteNavItem]", ["cuteNavItem"], { "preserveTabContent": { "alias": "preserveTabContent"; "required": false; }; }, {}, ["navLink", "_navContent"], ["[cute-nav-link], [cuteNavLink]", "[cute-nav-content], [cuteNavContent]", "*"], true, never>;
90
+ static ngAcceptInputType_preserveTabContent: unknown;
91
+ }
92
+
93
+ /**
94
+ * @license Apache-2.0
95
+ *
96
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
97
+ *
98
+ * You may not use this file except in compliance with the License
99
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
100
+ */
101
+
102
+ /** Navigation's presentation style */
103
+ type CuteNavStyle = "base" | "tabs" | "pills" | "underline";
104
+ /** Stretching level */
105
+ type CuteNavStretch = "none" | "fill" | "justified";
106
+ /**
107
+ * Token used to provide a `CuteNav` to `CuteNavItem` or `CuteNavLink`.
108
+ * Used to avoid circular imports between `CuteNav` and `CuteNavItem`.
109
+ */
110
+ declare const CUTE_NAV: InjectionToken<CuteNav>;
111
+ /** Event emitted when the `nav-link` selection has changed. */
112
+ declare class CuteNavChangeEvent extends Event {
113
+ /** Index of the currently-selected link item. */
114
+ readonly index: number;
115
+ /** Reference to the currently-selected link item. */
116
+ readonly link: CuteNavLink;
117
+ /** Index of the previously-selected link item. */
118
+ readonly fromIndex: number | null;
119
+ /** Reference to the currently-selected link item. */
120
+ readonly fromLink: CuteNavLink | null;
121
+ /** How the link was focused. */
122
+ readonly origin: FocusOrigin;
123
+ constructor(
124
+ /** Index of the currently-selected link item. */
125
+ index: number,
126
+ /** Reference to the currently-selected link item. */
127
+ link: CuteNavLink,
128
+ /** Index of the previously-selected link item. */
129
+ fromIndex: number | null,
130
+ /** Reference to the currently-selected link item. */
131
+ fromLink: CuteNavLink | null,
132
+ /** How the link was focused. */
133
+ origin: FocusOrigin);
134
+ }
135
+ /** Cancelable event emitted when the current `nav-link` selection is about to change. */
136
+ declare class CuteNavChangingEvent extends Event {
137
+ /** Index of the currently-selected link item. */
138
+ readonly index: number;
139
+ /** Reference to the currently-selected link item. */
140
+ readonly link: CuteNavLink;
141
+ /** Index of the previously-selected link item. */
142
+ readonly fromIndex: number | null;
143
+ /** Reference to the currently-selected link item. */
144
+ readonly fromLink: CuteNavLink | null;
145
+ /** How the link was focused. */
146
+ readonly origin: FocusOrigin;
147
+ constructor(
148
+ /** Index of the currently-selected link item. */
149
+ index: number,
150
+ /** Reference to the currently-selected link item. */
151
+ link: CuteNavLink,
152
+ /** Index of the previously-selected link item. */
153
+ fromIndex: number | null,
154
+ /** Reference to the currently-selected link item. */
155
+ fromLink: CuteNavLink | null,
156
+ /** How the link was focused. */
157
+ origin: FocusOrigin);
158
+ }
159
+ /**
160
+ * The navigation component that is built with `flexbox` and provide a strong foundation for building other types of navigation components.
161
+ * It includes some style overrides (for working with lists), some _link_ padding for larger hit areas, and basic _disabled_ styling.
162
+ * @example
163
+ * ```html
164
+ * <nav cute-nav alignment="center">
165
+ * <a cute-nav-link active href="#">Active</a>
166
+ * <a cute-nav-link href="#">Link</a>
167
+ * <a cute-nav-link href="#">Link</a>
168
+ * <a cute-nav-link disabled>Disabled</a>
169
+ * </nav>
170
+ * ```
171
+ */
172
+ declare class CuteNav extends CuteLayoutControl {
173
+ protected _destroyRef: DestroyRef;
174
+ protected _dir: Directionality;
175
+ protected _keyManager: ListKeyManager<CuteNavLink> | undefined;
176
+ private _oldFocusLink;
177
+ /** To synchronize selectedIndex and keyManager.activeIndex */
178
+ private _selectedIndexToChange;
179
+ readonly navItems: QueryList<CuteNavItem> | undefined;
180
+ protected navLinks: QueryList<CuteNavLink> | undefined;
181
+ /** The type of the navigation component */
182
+ navStyle: CuteNavStyle;
183
+ /** Orientation of the navigation items */
184
+ get orientation(): LayoutOrientation;
185
+ set orientation(value: LayoutOrientation);
186
+ private _orientation;
187
+ /** The alignment of navigation items on the main flexbox' axis */
188
+ alignment: ContentAlignment;
189
+ /**
190
+ * Determines how the `cute-nav`'s content is stretched, such as taking up the entire available width (**none**), proportionally (**fill**) or equally (**justified**).
191
+ * The width is determined by the longest `cute-nav-link`'s label. By default, stretching of items is not used (**none**).
192
+ */
193
+ stretchItems: CuteNavStretch;
194
+ /**
195
+ * By default, tabs remove their content from the DOM while it's off-screen. Setting this to _true_ will keep it in
196
+ * the DOM which will prevent elements like `iframes` and `videos` from reloading next time it comes back into the view.
197
+ */
198
+ preserveTabContent: boolean;
199
+ /** @deprecated */
200
+ animation: boolean;
201
+ /** Should the first not disabled link item be automatically selected if none were activated during initialization. */
202
+ autoSelect: boolean;
203
+ /** The index of the active link item. */
204
+ get selectedIndex(): number | null;
205
+ set selectedIndex(value: number);
206
+ private _selectedIndex;
207
+ /** Output to enable support for two-way binding on `[(selectedIndex)]` */
208
+ selectedIndexChange: EventEmitter<number>;
209
+ /** Event emitted when the `nav` selection has changed. */
210
+ selectedLinkChange: EventEmitter<CuteNavChangeEvent>;
211
+ /** Event emitted when the `nav` selection gets changing. */
212
+ selectedLinkChanging: EventEmitter<CuteNavChangeEvent>;
213
+ /** Event emitted when focus has changed within a `nav`-element. */
214
+ focusChange: EventEmitter<CuteNavChangeEvent>;
215
+ get classBinding(): string;
216
+ constructor();
217
+ protected generateId(): string;
218
+ /** Whether the navigation component has a `tab` presentation style. */
219
+ isTab(): boolean;
220
+ /**
221
+ * Gets an index of the navigation link in the links array.
222
+ * @param link Navigation link reference
223
+ * @returns An index of the navigation link or **-1** if it was not found
224
+ */
225
+ getNavLinkIndex(link: CuteNavLink): number;
226
+ /**
227
+ * Request to activate cute-nav-link element
228
+ * @param linkToActivate `cute-nav-link` or its index in the links array to activate. Set _null_ for use the currently selected or first `cute-nav-link` in the list.
229
+ * @param origin (optional) Tells how the element was focused (via the mouse, keyboard, touch, or programmatically). The latter is the default value.
230
+ * @returns _true_ when succeeded, otherwise _false_.
231
+ */
232
+ activateNavLink(linkToActivate: CuteNavLink | number | null, origin?: FocusOrigin): boolean;
233
+ /**
234
+ * Link focus changed handler
235
+ * @param link Source link
236
+ * @param origin Focus origin
237
+ */
238
+ _focusChanged(link: CuteNavLink | number, origin: FocusOrigin): void;
239
+ /** Whether the specified link index is a valid nav index. */
240
+ protected isValidLinkIndex(index: number): boolean;
241
+ protected onKeydown(event: KeyboardEvent): void;
242
+ ngOnInit(): void;
243
+ ngAfterContentInit(): void;
244
+ ngAfterViewInit(): void;
245
+ ngOnDestroy(): void;
246
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNav, never>;
247
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteNav, "[cute-nav], [cuteNav]", ["cuteNav"], { "navStyle": { "alias": "cuteNav"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; "stretchItems": { "alias": "stretchItems"; "required": false; }; "preserveTabContent": { "alias": "preserveTabContent"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "selectedLinkChange": "selectedLinkChange"; "selectedLinkChanging": "selectedLinkChanging"; "focusChange": "focusChange"; }, ["navItems", "navLinks"], never, true, never>;
248
+ static ngAcceptInputType_preserveTabContent: unknown;
249
+ static ngAcceptInputType_animation: unknown;
250
+ static ngAcceptInputType_autoSelect: unknown;
251
+ static ngAcceptInputType_selectedIndex: unknown;
252
+ }
253
+
254
+ /**
255
+ * @license Apache-2.0
256
+ *
257
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
258
+ *
259
+ * You may not use this file except in compliance with the License
260
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
261
+ */
262
+
263
+ /**
264
+ * Lazy loading content of the `cute-nav-item` element.
265
+ */
266
+ declare class CuteNavContent {
267
+ readonly template: TemplateRef<unknown>;
268
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavContent, never>;
269
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteNavContent, "ng-template[cuteNavContent], ng-template[cute-nav-content]", ["cuteNavContent"], {}, {}, never, never, true, never>;
270
+ }
271
+
272
+ /**
273
+ * @license Apache-2.0
274
+ *
275
+ * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
276
+ *
277
+ * You may not use this file except in compliance with the License
278
+ * that can be found at http://www.apache.org/licenses/LICENSE-2.0
279
+ */
280
+
281
+ declare class CuteNavPaneOutlet extends CdkPortalOutlet implements OnDestroy {
282
+ private _pane;
283
+ constructor();
284
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavPaneOutlet, never>;
285
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteNavPaneOutlet, "[cuteNavPaneOutlet]", ["cuteNavPaneOutlet"], { "portal": { "alias": "cuteNavPaneOutlet"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.CdkScrollable; inputs: {}; outputs: {}; }]>;
286
+ }
287
+ declare class CuteNavPane extends CuteLayoutControl {
288
+ private _subs;
289
+ protected _active: boolean;
290
+ protected _show: boolean;
291
+ /** Pane index */
292
+ index: number;
293
+ /** Navigation item reference */
294
+ item: CuteNavItem | undefined;
295
+ hide: EventEmitter<void>;
296
+ show: EventEmitter<void>;
297
+ constructor();
298
+ protected generateId(): string;
299
+ ngOnInit(): void;
300
+ ngOnDestroy(): void;
301
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavPane, never>;
302
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteNavPane, "[cute-nav-pane], [cuteNavPane]", ["cuteNavPane"], { "index": { "alias": "index"; "required": false; }; "item": { "alias": "item"; "required": false; }; }, { "hide": "hide"; "show": "show"; }, never, never, true, never>;
303
+ static ngAcceptInputType_index: unknown;
304
+ }
305
+
306
+ declare class CuteNavOutlet {
307
+ get nav(): CuteNav | undefined;
308
+ set nav(value: CuteNav | undefined);
309
+ private _nav;
310
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavOutlet, never>;
311
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuteNavOutlet, "cute-nav-outlet", ["cuteNavOutlet"], { "nav": { "alias": "for"; "required": true; }; }, {}, never, never, true, never>;
312
+ }
313
+
314
+ declare class CuteNavModule {
315
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteNavModule, never>;
316
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuteNavModule, never, [typeof i1$1.CommonModule, typeof CuteNav, typeof CuteNavItem, typeof CuteNavLink, typeof CuteNavOutlet, typeof CuteNavContent, typeof CuteNavPane], [typeof CuteNav, typeof CuteNavItem, typeof CuteNavLink, typeof CuteNavOutlet, typeof CuteNavContent, typeof CuteNavPane]>;
317
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuteNavModule>;
318
+ }
319
+
320
+ export { CUTE_NAV, CUTE_NAV_ITEM, CuteNav, CuteNavChangeEvent, CuteNavChangingEvent, CuteNavContent, CuteNavItem, CuteNavLink, CuteNavModule, CuteNavOutlet, CuteNavPane, CuteNavPaneOutlet };
321
+ export type { CuteNavStretch, CuteNavStyle };
@@ -0,0 +1,124 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, OnDestroy, ElementRef, AfterContentInit, EventEmitter } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import * as i1 from '@angular/cdk/observers';
5
+ import * as i1$1 from '@angular/common';
6
+
7
+ declare const CUTE_VISIBILITY_OBSERVER_OPTIONS: InjectionToken<IntersectionObserverInit>;
8
+ /**
9
+ * Factory service that creates a new IntersectionObserver and allows us to stub it out in unit tests.
10
+ */
11
+ declare class IntersectionObserverFactory {
12
+ private _injectedOptions;
13
+ private readonly _defaultOptions;
14
+ constructor(...args: unknown[]);
15
+ /** `IntersectionObserver` factory method. Returns _null_ if the API is not supported. */
16
+ createInstance(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver | null;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<IntersectionObserverFactory, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<IntersectionObserverFactory>;
19
+ }
20
+ /**
21
+ * An injectable service that allows watching elements for visibility changes.
22
+ */
23
+ declare class CuteVisibilityObserver implements OnDestroy {
24
+ private _intersectionObserverFactory;
25
+ /** Keeps track of the existing IntersectionObservers, so they can be reused. */
26
+ private _observedElements;
27
+ constructor();
28
+ ngOnDestroy(): void;
29
+ /**
30
+ * Observe visibility changes on an element.
31
+ * @param element The element to observe for visibility changes.
32
+ * @param options Options to customize the observer
33
+ * @returns Observable object
34
+ */
35
+ observe(element: Element, options?: IntersectionObserverInit): Observable<IntersectionObserverEntry[]>;
36
+ /**
37
+ * Observe visibility changes on an element.
38
+ * @param element The element to observe for visibility changes.
39
+ * @param options Options to customize the observer
40
+ * @returns Observable object
41
+ */
42
+ observe(element: ElementRef<Element>, options?: IntersectionObserverInit): Observable<IntersectionObserverEntry[]>;
43
+ /**
44
+ * Observes the given element by using the existing IntersectionObserver if available, or creating a
45
+ * new one if not.
46
+ */
47
+ private _observeElement;
48
+ /**
49
+ * Un-observes the given element and cleans up the underlying IntersectionObserver if nobody else is
50
+ * observing this element.
51
+ */
52
+ private _unobserveElement;
53
+ /** Clean up the underlying IntersectionObserver for the specified element. */
54
+ private _cleanupObserver;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteVisibilityObserver, never>;
56
+ static ɵprov: i0.ɵɵInjectableDeclaration<CuteVisibilityObserver>;
57
+ }
58
+ /**
59
+ * Directive that triggers intersection event whenever the visibility of its associated element has changed
60
+ * relative to the specified root element. The root element must be the ancestor of the directive's element.
61
+ * Keep in mind that each directive's element will have its own instance of the `IntersectionObserver` class.
62
+ */
63
+ declare class CuteObserveVisibility implements AfterContentInit, OnDestroy {
64
+ private _visibilityObserver;
65
+ private _elementRef;
66
+ private _currentSubscription;
67
+ /** Event emitted for each intersection change between directive's and root elements. */
68
+ readonly intersectionChange: EventEmitter<IntersectionObserverEntry[]>;
69
+ /**
70
+ * Whether observing visibility is disabled. This option can be used
71
+ * to disconnect the underlying IntersectionObserver until it is needed.
72
+ */
73
+ get disabled(): boolean;
74
+ set disabled(value: boolean);
75
+ private _disabled;
76
+ /**
77
+ * Debounce interval in milliseconds for emitting the visibility changes.
78
+ * Default is without delay (0).
79
+ */
80
+ get debounce(): number;
81
+ set debounce(value: number);
82
+ private _debounce;
83
+ /**
84
+ * A single number or an array of numbers which indicate at what percentage of the target's visibility
85
+ * the observer's callback should be executed. Number(s) must be in range 0..1.
86
+ * The default is 0 (meaning as soon as even one pixel is visible, the callback will be run).
87
+ */
88
+ get threshold(): number | number[] | undefined;
89
+ set threshold(value: number | number[] | undefined);
90
+ private _threshold;
91
+ /** Margin around the root. A string of one to four values similar to the CSS margin property, e.g., "10px 20px 30px 40px" (top, right, bottom, left). */
92
+ get rootMargin(): number | string | undefined;
93
+ set rootMargin(value: number | string | undefined);
94
+ private _rootMargin;
95
+ get root(): Element | undefined;
96
+ set root(value: Element | ElementRef | Document | undefined);
97
+ private _root;
98
+ constructor(...args: unknown[]);
99
+ private _subscribe;
100
+ private _unsubscribe;
101
+ ngAfterContentInit(): void;
102
+ ngOnDestroy(): void;
103
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteObserveVisibility, never>;
104
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteObserveVisibility, "[cuteObserveVisibility], [cute-observe-visibility]", ["cuteObserveVisibility"], { "disabled": { "alias": "cuteObserveVisibilityDisabled"; "required": false; }; "debounce": { "alias": "cuteObserveVisibilityDebounce"; "required": false; }; "threshold": { "alias": "cuteObserveVisibility"; "required": false; }; "rootMargin": { "alias": "cuteObserveVisibilityRootMargin"; "required": false; }; "root": { "alias": "cuteObserveVisibilityRoot"; "required": false; }; }, { "intersectionChange": "cuteObserveVisibility"; }, never, never, true, never>;
105
+ static ngAcceptInputType_disabled: unknown;
106
+ static ngAcceptInputType_debounce: unknown;
107
+ }
108
+
109
+ /**
110
+ * Directive that triggers a callback whenever the content of
111
+ * its associated element has changed.
112
+ */
113
+ declare class CuteObserveContent {
114
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteObserveContent, never>;
115
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CuteObserveContent, "[cuteObserveContent]", ["cuteObserveContent"], {}, {}, never, never, true, [{ directive: typeof i1.CdkObserveContent; inputs: { "cdkObserveContentDisabled": "cuteObserveContentDisabled"; "debounce": "cuteObserveContentDebounce"; }; outputs: { "cdkObserveContent": "cuteObserveContent"; }; }]>;
116
+ }
117
+
118
+ declare class CuteObserversModule {
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuteObserversModule, never>;
120
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuteObserversModule, never, [typeof i1$1.CommonModule, typeof CuteObserveVisibility, typeof CuteObserveContent], [typeof CuteObserveVisibility, typeof CuteObserveContent]>;
121
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuteObserversModule>;
122
+ }
123
+
124
+ export { CUTE_VISIBILITY_OBSERVER_OPTIONS, CuteObserveContent, CuteObserveVisibility, CuteObserversModule, CuteVisibilityObserver, IntersectionObserverFactory };