@frame-kit/ui-ng 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/COMPONENTS.md +683 -0
  2. package/DEVELOPMENT_GUIDE.md +1102 -0
  3. package/LICENSE +21 -0
  4. package/README.md +69 -0
  5. package/THEMING.md +130 -0
  6. package/core/headline/README.md +121 -0
  7. package/core/icon/README.md +173 -0
  8. package/core/image/README.md +210 -0
  9. package/core/link/README.md +297 -0
  10. package/core/separator/README.md +145 -0
  11. package/core/text/README.md +240 -0
  12. package/directives/infinite-scroll/README.md +102 -0
  13. package/directives/spotlight/README.md +154 -0
  14. package/directives/tooltip/README.md +147 -0
  15. package/docs/endpoint-link/README.md +142 -0
  16. package/docs/method-badge/README.md +154 -0
  17. package/fesm2022/frame-kit-ui-ng-core-headline.mjs +122 -0
  18. package/fesm2022/frame-kit-ui-ng-core-headline.mjs.map +1 -0
  19. package/fesm2022/frame-kit-ui-ng-core-icon.mjs +189 -0
  20. package/fesm2022/frame-kit-ui-ng-core-icon.mjs.map +1 -0
  21. package/fesm2022/frame-kit-ui-ng-core-image.mjs +123 -0
  22. package/fesm2022/frame-kit-ui-ng-core-image.mjs.map +1 -0
  23. package/fesm2022/frame-kit-ui-ng-core-link.mjs +369 -0
  24. package/fesm2022/frame-kit-ui-ng-core-link.mjs.map +1 -0
  25. package/fesm2022/frame-kit-ui-ng-core-separator.mjs +59 -0
  26. package/fesm2022/frame-kit-ui-ng-core-separator.mjs.map +1 -0
  27. package/fesm2022/frame-kit-ui-ng-core-text.mjs +204 -0
  28. package/fesm2022/frame-kit-ui-ng-core-text.mjs.map +1 -0
  29. package/fesm2022/frame-kit-ui-ng-directives-infinite-scroll.mjs +74 -0
  30. package/fesm2022/frame-kit-ui-ng-directives-infinite-scroll.mjs.map +1 -0
  31. package/fesm2022/frame-kit-ui-ng-directives-spotlight.mjs +76 -0
  32. package/fesm2022/frame-kit-ui-ng-directives-spotlight.mjs.map +1 -0
  33. package/fesm2022/frame-kit-ui-ng-directives-tooltip.mjs +425 -0
  34. package/fesm2022/frame-kit-ui-ng-directives-tooltip.mjs.map +1 -0
  35. package/fesm2022/frame-kit-ui-ng-docs-endpoint-link.mjs +63 -0
  36. package/fesm2022/frame-kit-ui-ng-docs-endpoint-link.mjs.map +1 -0
  37. package/fesm2022/frame-kit-ui-ng-docs-method-badge.mjs +43 -0
  38. package/fesm2022/frame-kit-ui-ng-docs-method-badge.mjs.map +1 -0
  39. package/fesm2022/frame-kit-ui-ng-forms.mjs +3632 -0
  40. package/fesm2022/frame-kit-ui-ng-forms.mjs.map +1 -0
  41. package/fesm2022/frame-kit-ui-ng-layouts-app-shell.mjs +239 -0
  42. package/fesm2022/frame-kit-ui-ng-layouts-app-shell.mjs.map +1 -0
  43. package/fesm2022/frame-kit-ui-ng-layouts-content-split.mjs +132 -0
  44. package/fesm2022/frame-kit-ui-ng-layouts-content-split.mjs.map +1 -0
  45. package/fesm2022/frame-kit-ui-ng-services-overlay-orchestrator.mjs +133 -0
  46. package/fesm2022/frame-kit-ui-ng-services-overlay-orchestrator.mjs.map +1 -0
  47. package/fesm2022/frame-kit-ui-ng-services-spotlight.mjs +60 -0
  48. package/fesm2022/frame-kit-ui-ng-services-spotlight.mjs.map +1 -0
  49. package/fesm2022/frame-kit-ui-ng-services-toast.mjs +166 -0
  50. package/fesm2022/frame-kit-ui-ng-services-toast.mjs.map +1 -0
  51. package/fesm2022/frame-kit-ui-ng-ui-accordion.mjs +214 -0
  52. package/fesm2022/frame-kit-ui-ng-ui-accordion.mjs.map +1 -0
  53. package/fesm2022/frame-kit-ui-ng-ui-alert.mjs +82 -0
  54. package/fesm2022/frame-kit-ui-ng-ui-alert.mjs.map +1 -0
  55. package/fesm2022/frame-kit-ui-ng-ui-avatar-stack.mjs +76 -0
  56. package/fesm2022/frame-kit-ui-ng-ui-avatar-stack.mjs.map +1 -0
  57. package/fesm2022/frame-kit-ui-ng-ui-avatar.mjs +81 -0
  58. package/fesm2022/frame-kit-ui-ng-ui-avatar.mjs.map +1 -0
  59. package/fesm2022/frame-kit-ui-ng-ui-badge.mjs +81 -0
  60. package/fesm2022/frame-kit-ui-ng-ui-badge.mjs.map +1 -0
  61. package/fesm2022/frame-kit-ui-ng-ui-breadcrumb.mjs +68 -0
  62. package/fesm2022/frame-kit-ui-ng-ui-breadcrumb.mjs.map +1 -0
  63. package/fesm2022/frame-kit-ui-ng-ui-button.mjs +108 -0
  64. package/fesm2022/frame-kit-ui-ng-ui-button.mjs.map +1 -0
  65. package/fesm2022/frame-kit-ui-ng-ui-callout.mjs +58 -0
  66. package/fesm2022/frame-kit-ui-ng-ui-callout.mjs.map +1 -0
  67. package/fesm2022/frame-kit-ui-ng-ui-card.mjs +70 -0
  68. package/fesm2022/frame-kit-ui-ng-ui-card.mjs.map +1 -0
  69. package/fesm2022/frame-kit-ui-ng-ui-copyable-field.mjs +113 -0
  70. package/fesm2022/frame-kit-ui-ng-ui-copyable-field.mjs.map +1 -0
  71. package/fesm2022/frame-kit-ui-ng-ui-data-table.mjs +1288 -0
  72. package/fesm2022/frame-kit-ui-ng-ui-data-table.mjs.map +1 -0
  73. package/fesm2022/frame-kit-ui-ng-ui-dialog.mjs +456 -0
  74. package/fesm2022/frame-kit-ui-ng-ui-dialog.mjs.map +1 -0
  75. package/fesm2022/frame-kit-ui-ng-ui-drawer.mjs +398 -0
  76. package/fesm2022/frame-kit-ui-ng-ui-drawer.mjs.map +1 -0
  77. package/fesm2022/frame-kit-ui-ng-ui-dropdown-menu.mjs +398 -0
  78. package/fesm2022/frame-kit-ui-ng-ui-dropdown-menu.mjs.map +1 -0
  79. package/fesm2022/frame-kit-ui-ng-ui-editable-field.mjs +125 -0
  80. package/fesm2022/frame-kit-ui-ng-ui-editable-field.mjs.map +1 -0
  81. package/fesm2022/frame-kit-ui-ng-ui-icon-badge.mjs +113 -0
  82. package/fesm2022/frame-kit-ui-ng-ui-icon-badge.mjs.map +1 -0
  83. package/fesm2022/frame-kit-ui-ng-ui-icon-list.mjs +111 -0
  84. package/fesm2022/frame-kit-ui-ng-ui-icon-list.mjs.map +1 -0
  85. package/fesm2022/frame-kit-ui-ng-ui-inline-edit.mjs +103 -0
  86. package/fesm2022/frame-kit-ui-ng-ui-inline-edit.mjs.map +1 -0
  87. package/fesm2022/frame-kit-ui-ng-ui-list-editor.mjs +135 -0
  88. package/fesm2022/frame-kit-ui-ng-ui-list-editor.mjs.map +1 -0
  89. package/fesm2022/frame-kit-ui-ng-ui-loader.mjs +81 -0
  90. package/fesm2022/frame-kit-ui-ng-ui-loader.mjs.map +1 -0
  91. package/fesm2022/frame-kit-ui-ng-ui-menu-item.mjs +79 -0
  92. package/fesm2022/frame-kit-ui-ng-ui-menu-item.mjs.map +1 -0
  93. package/fesm2022/frame-kit-ui-ng-ui-nav-brand.mjs +40 -0
  94. package/fesm2022/frame-kit-ui-ng-ui-nav-brand.mjs.map +1 -0
  95. package/fesm2022/frame-kit-ui-ng-ui-nav-group.mjs +110 -0
  96. package/fesm2022/frame-kit-ui-ng-ui-nav-group.mjs.map +1 -0
  97. package/fesm2022/frame-kit-ui-ng-ui-nav-separator.mjs +91 -0
  98. package/fesm2022/frame-kit-ui-ng-ui-nav-separator.mjs.map +1 -0
  99. package/fesm2022/frame-kit-ui-ng-ui-node-tree-breadcrumb.mjs +86 -0
  100. package/fesm2022/frame-kit-ui-ng-ui-node-tree-breadcrumb.mjs.map +1 -0
  101. package/fesm2022/frame-kit-ui-ng-ui-node-tree.mjs +443 -0
  102. package/fesm2022/frame-kit-ui-ng-ui-node-tree.mjs.map +1 -0
  103. package/fesm2022/frame-kit-ui-ng-ui-note.mjs +56 -0
  104. package/fesm2022/frame-kit-ui-ng-ui-note.mjs.map +1 -0
  105. package/fesm2022/frame-kit-ui-ng-ui-numbered-list.mjs +105 -0
  106. package/fesm2022/frame-kit-ui-ng-ui-numbered-list.mjs.map +1 -0
  107. package/fesm2022/frame-kit-ui-ng-ui-pagination.mjs +110 -0
  108. package/fesm2022/frame-kit-ui-ng-ui-pagination.mjs.map +1 -0
  109. package/fesm2022/frame-kit-ui-ng-ui-progress-bar.mjs +129 -0
  110. package/fesm2022/frame-kit-ui-ng-ui-progress-bar.mjs.map +1 -0
  111. package/fesm2022/frame-kit-ui-ng-ui-sidenav-link.mjs +42 -0
  112. package/fesm2022/frame-kit-ui-ng-ui-sidenav-link.mjs.map +1 -0
  113. package/fesm2022/frame-kit-ui-ng-ui-tabs.mjs +894 -0
  114. package/fesm2022/frame-kit-ui-ng-ui-tabs.mjs.map +1 -0
  115. package/fesm2022/frame-kit-ui-ng-ui-timeline.mjs +81 -0
  116. package/fesm2022/frame-kit-ui-ng-ui-timeline.mjs.map +1 -0
  117. package/fesm2022/frame-kit-ui-ng-ui-toast.mjs +179 -0
  118. package/fesm2022/frame-kit-ui-ng-ui-toast.mjs.map +1 -0
  119. package/fesm2022/frame-kit-ui-ng-ui-user-menu.mjs +143 -0
  120. package/fesm2022/frame-kit-ui-ng-ui-user-menu.mjs.map +1 -0
  121. package/fesm2022/frame-kit-ui-ng-ui-wizard-dialog.mjs +191 -0
  122. package/fesm2022/frame-kit-ui-ng-ui-wizard-dialog.mjs.map +1 -0
  123. package/fesm2022/frame-kit-ui-ng.mjs +58 -0
  124. package/fesm2022/frame-kit-ui-ng.mjs.map +1 -0
  125. package/layouts/app-shell/README.md +357 -0
  126. package/layouts/content-split/README.md +180 -0
  127. package/package.json +253 -0
  128. package/services/overlay-orchestrator/README.md +184 -0
  129. package/services/spotlight/README.md +61 -0
  130. package/services/toast/README.md +118 -0
  131. package/types/frame-kit-ui-ng-core-headline.d.ts +38 -0
  132. package/types/frame-kit-ui-ng-core-icon.d.ts +74 -0
  133. package/types/frame-kit-ui-ng-core-image.d.ts +93 -0
  134. package/types/frame-kit-ui-ng-core-link.d.ts +251 -0
  135. package/types/frame-kit-ui-ng-core-separator.d.ts +28 -0
  136. package/types/frame-kit-ui-ng-core-text.d.ts +186 -0
  137. package/types/frame-kit-ui-ng-directives-infinite-scroll.d.ts +42 -0
  138. package/types/frame-kit-ui-ng-directives-spotlight.d.ts +51 -0
  139. package/types/frame-kit-ui-ng-directives-tooltip.d.ts +70 -0
  140. package/types/frame-kit-ui-ng-docs-endpoint-link.d.ts +43 -0
  141. package/types/frame-kit-ui-ng-docs-method-badge.d.ts +30 -0
  142. package/types/frame-kit-ui-ng-forms.d.ts +1674 -0
  143. package/types/frame-kit-ui-ng-layouts-app-shell.d.ts +75 -0
  144. package/types/frame-kit-ui-ng-layouts-content-split.d.ts +43 -0
  145. package/types/frame-kit-ui-ng-services-overlay-orchestrator.d.ts +96 -0
  146. package/types/frame-kit-ui-ng-services-spotlight.d.ts +32 -0
  147. package/types/frame-kit-ui-ng-services-toast.d.ts +100 -0
  148. package/types/frame-kit-ui-ng-ui-accordion.d.ts +86 -0
  149. package/types/frame-kit-ui-ng-ui-alert.d.ts +34 -0
  150. package/types/frame-kit-ui-ng-ui-avatar-stack.d.ts +38 -0
  151. package/types/frame-kit-ui-ng-ui-avatar.d.ts +36 -0
  152. package/types/frame-kit-ui-ng-ui-badge.d.ts +33 -0
  153. package/types/frame-kit-ui-ng-ui-breadcrumb.d.ts +45 -0
  154. package/types/frame-kit-ui-ng-ui-button.d.ts +48 -0
  155. package/types/frame-kit-ui-ng-ui-callout.d.ts +26 -0
  156. package/types/frame-kit-ui-ng-ui-card.d.ts +30 -0
  157. package/types/frame-kit-ui-ng-ui-copyable-field.d.ts +62 -0
  158. package/types/frame-kit-ui-ng-ui-data-table.d.ts +482 -0
  159. package/types/frame-kit-ui-ng-ui-dialog.d.ts +166 -0
  160. package/types/frame-kit-ui-ng-ui-drawer.d.ts +130 -0
  161. package/types/frame-kit-ui-ng-ui-dropdown-menu.d.ts +77 -0
  162. package/types/frame-kit-ui-ng-ui-editable-field.d.ts +65 -0
  163. package/types/frame-kit-ui-ng-ui-icon-badge.d.ts +45 -0
  164. package/types/frame-kit-ui-ng-ui-icon-list.d.ts +67 -0
  165. package/types/frame-kit-ui-ng-ui-inline-edit.d.ts +44 -0
  166. package/types/frame-kit-ui-ng-ui-list-editor.d.ts +56 -0
  167. package/types/frame-kit-ui-ng-ui-loader.d.ts +32 -0
  168. package/types/frame-kit-ui-ng-ui-menu-item.d.ts +27 -0
  169. package/types/frame-kit-ui-ng-ui-nav-brand.d.ts +25 -0
  170. package/types/frame-kit-ui-ng-ui-nav-group.d.ts +60 -0
  171. package/types/frame-kit-ui-ng-ui-nav-separator.d.ts +33 -0
  172. package/types/frame-kit-ui-ng-ui-node-tree-breadcrumb.d.ts +35 -0
  173. package/types/frame-kit-ui-ng-ui-node-tree.d.ts +135 -0
  174. package/types/frame-kit-ui-ng-ui-note.d.ts +22 -0
  175. package/types/frame-kit-ui-ng-ui-numbered-list.d.ts +52 -0
  176. package/types/frame-kit-ui-ng-ui-pagination.d.ts +49 -0
  177. package/types/frame-kit-ui-ng-ui-progress-bar.d.ts +50 -0
  178. package/types/frame-kit-ui-ng-ui-sidenav-link.d.ts +24 -0
  179. package/types/frame-kit-ui-ng-ui-tabs.d.ts +266 -0
  180. package/types/frame-kit-ui-ng-ui-timeline.d.ts +42 -0
  181. package/types/frame-kit-ui-ng-ui-toast.d.ts +56 -0
  182. package/types/frame-kit-ui-ng-ui-user-menu.d.ts +87 -0
  183. package/types/frame-kit-ui-ng-ui-wizard-dialog.d.ts +116 -0
  184. package/types/frame-kit-ui-ng.d.ts +53 -0
  185. package/ui/accordion/README.md +261 -0
  186. package/ui/alert/README.md +211 -0
  187. package/ui/avatar/README.md +167 -0
  188. package/ui/avatar-stack/README.md +164 -0
  189. package/ui/badge/README.md +162 -0
  190. package/ui/breadcrumb/README.md +240 -0
  191. package/ui/button/README.md +184 -0
  192. package/ui/callout/README.md +159 -0
  193. package/ui/card/README.md +174 -0
  194. package/ui/copyable-field/README.md +235 -0
  195. package/ui/data-table/README.md +408 -0
  196. package/ui/dialog/README.md +222 -0
  197. package/ui/drawer/README.md +274 -0
  198. package/ui/dropdown-menu/README.md +336 -0
  199. package/ui/editable-field/README.md +171 -0
  200. package/ui/icon-badge/README.md +131 -0
  201. package/ui/icon-list/README.md +205 -0
  202. package/ui/inline-edit/README.md +135 -0
  203. package/ui/list-editor/README.md +162 -0
  204. package/ui/loader/README.md +160 -0
  205. package/ui/menu-item/README.md +204 -0
  206. package/ui/nav-brand/README.md +111 -0
  207. package/ui/nav-group/README.md +145 -0
  208. package/ui/nav-separator/README.md +44 -0
  209. package/ui/node-tree/README.md +278 -0
  210. package/ui/node-tree-breadcrumb/README.md +164 -0
  211. package/ui/note/README.md +146 -0
  212. package/ui/numbered-list/README.md +187 -0
  213. package/ui/pagination/README.md +174 -0
  214. package/ui/progress-bar/README.md +223 -0
  215. package/ui/sidenav-link/README.md +214 -0
  216. package/ui/tabs/README.md +204 -0
  217. package/ui/timeline/README.md +285 -0
  218. package/ui/toast/README.md +243 -0
  219. package/ui/user-menu/README.md +260 -0
  220. package/ui/wizard-dialog/README.md +283 -0
@@ -0,0 +1,60 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { IconSize } from '@frame-kit/ui-ng/core/icon';
3
+ export { IconSize as NavGroupIconSize } from '@frame-kit/ui-ng/core/icon';
4
+
5
+ /**
6
+ * Expandable nav group — renders a trigger row (icon + label, optionally
7
+ * linked) and reveals projected children when `expanded` is true. Designed
8
+ * to sit inside a collapsible sidenav: when the outer shell is collapsed,
9
+ * clicking the row emits `requestOpen` so the host can pop the sidenav
10
+ * open, and the group auto-expands once it's visible.
11
+ */
12
+ declare class NavGroupComponent {
13
+ /** Primary label text shown in the group trigger row. */
14
+ readonly label: _angular_core.InputSignal<string>;
15
+ /** Optional icon name shown to the leading side of the label. */
16
+ readonly icon: _angular_core.InputSignal<string | null>;
17
+ /** Size of the leading icon. */
18
+ readonly iconSize: _angular_core.InputSignal<IconSize>;
19
+ /** Optional router path; when set, the trigger navigates on click in expanded sidenav mode. */
20
+ readonly routerLink: _angular_core.InputSignal<string | string[] | null>;
21
+ /**
22
+ * True when the containing sidenav is in its collapsed rail state.
23
+ * In that mode, clicking the trigger BOTH navigates via
24
+ * `routerLink` AND emits `requestOpen` so the host can expand the
25
+ * outer shell — the user lands on the group's route with the
26
+ * sidenav already open. The trigger never expands its own children
27
+ * inside the rail (no horizontal room); the rail-to-expanded
28
+ * transition is what reveals them.
29
+ */
30
+ readonly collapsed: _angular_core.InputSignal<boolean>;
31
+ /**
32
+ * When true and the sidenav is in its expanded state, clicking the
33
+ * trigger row does NOT fold the group — children stay visible.
34
+ * Useful when the group's children are permanent navigation rather
35
+ * than a collapsible disclosure (e.g. a parent nav item that should
36
+ * always show its sub-pages while the sidenav is open). Clicks on
37
+ * the trigger still navigate via `routerLink`.
38
+ *
39
+ * Has no effect in collapsed (rail) mode — clicks there still
40
+ * navigate via `routerLink` and emit `requestOpen`, and `expanded`
41
+ * stays untouched regardless of this input.
42
+ */
43
+ readonly lockedOpen: _angular_core.InputSignal<boolean>;
44
+ /** Whether the group is currently expanded, showing projected child links. */
45
+ readonly expanded: _angular_core.ModelSignal<boolean>;
46
+ /**
47
+ * Emitted when the group is clicked while the outer sidenav is
48
+ * collapsed. Hosts typically listen to open their collapsible shell
49
+ * so the projected children become visible.
50
+ */
51
+ readonly requestOpen: _angular_core.OutputEmitterRef<void>;
52
+ readonly className: _angular_core.InputSignal<string>;
53
+ readonly classes: _angular_core.Signal<string>;
54
+ get hostClass(): string;
55
+ protected toggle(): void;
56
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavGroupComponent, never>;
57
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavGroupComponent, "fk-nav-group", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "lockedOpen": { "alias": "lockedOpen"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "requestOpen": "requestOpen"; }, never, ["*"], true, never>;
58
+ }
59
+
60
+ export { NavGroupComponent };
@@ -0,0 +1,33 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NavSeparatorOrientation = 'vertical' | 'horizontal';
4
+
5
+ declare class NavSeparatorComponent {
6
+ /** Direction the separator line runs — vertical fills block height, horizontal fills inline width. */
7
+ readonly orientation: _angular_core.InputSignal<NavSeparatorOrientation>;
8
+ /** Custom length of the separator line as any CSS size value. */
9
+ readonly length: _angular_core.InputSignal<string | null>;
10
+ /** Custom thickness of the separator line as any CSS size value. */
11
+ readonly thickness: _angular_core.InputSignal<string | null>;
12
+ /** Custom margin around the separator as any CSS margin value. */
13
+ readonly margin: _angular_core.InputSignal<string | null>;
14
+ /** Custom color of the separator line as any CSS color value. */
15
+ readonly color: _angular_core.InputSignal<string | null>;
16
+ /** When true, the separator is hidden from assistive technology; when false it carries `role="separator"`. */
17
+ readonly decorative: _angular_core.InputSignal<boolean>;
18
+ readonly className: _angular_core.InputSignal<string>;
19
+ readonly classes: _angular_core.Signal<string>;
20
+ get hostClass(): string;
21
+ get hostLength(): string | null;
22
+ get hostThickness(): string | null;
23
+ get hostMargin(): string | null;
24
+ get hostColor(): string | null;
25
+ get hostAriaHidden(): "true" | null;
26
+ get hostRole(): "separator" | null;
27
+ get hostAriaOrientation(): NavSeparatorOrientation | null;
28
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavSeparatorComponent, never>;
29
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavSeparatorComponent, "fk-nav-separator", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
+ }
31
+
32
+ export { NavSeparatorComponent };
33
+ export type { NavSeparatorOrientation };
@@ -0,0 +1,35 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TreeNode } from '@frame-kit/ui-ng/ui/node-tree';
3
+
4
+ interface NodeTreeBreadcrumbItem {
5
+ id: string;
6
+ label: string;
7
+ icon?: string;
8
+ }
9
+
10
+ declare class NodeTreeBreadcrumbComponent {
11
+ /** Flat array of `TreeNode` objects used to compute the ancestry path. */
12
+ readonly nodes: _angular_core.InputSignal<TreeNode<unknown>[]>;
13
+ /** ID of the node whose full ancestor path is displayed as breadcrumbs. */
14
+ readonly selectedNodeId: _angular_core.InputSignal<string | undefined>;
15
+ readonly className: _angular_core.InputSignal<string>;
16
+ /** Fires when the user clicks a breadcrumb, emitting that crumb's node data. */
17
+ readonly nodeSelect: _angular_core.OutputEmitterRef<NodeTreeBreadcrumbItem>;
18
+ readonly crumbs: _angular_core.Signal<NodeTreeBreadcrumbItem[]>;
19
+ readonly classes: _angular_core.Signal<string>;
20
+ get hostClass(): string;
21
+ readonly role = "navigation";
22
+ readonly ariaLabel = "Breadcrumb";
23
+ onCrumbClick(crumb: NodeTreeBreadcrumbItem): void;
24
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NodeTreeBreadcrumbComponent, never>;
25
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NodeTreeBreadcrumbComponent, "fk-node-tree-breadcrumb", never, { "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "selectedNodeId": { "alias": "selectedNodeId"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "nodeSelect": "nodeSelect"; }, never, never, true, never>;
26
+ }
27
+
28
+ /**
29
+ * Builds an ancestry path from the root to the given node.
30
+ * Returns an array ordered root-first, selected-node-last.
31
+ */
32
+ declare function buildAncestryPath(nodeId: string, nodes: TreeNode[]): NodeTreeBreadcrumbItem[];
33
+
34
+ export { NodeTreeBreadcrumbComponent, buildAncestryPath };
35
+ export type { NodeTreeBreadcrumbItem };
@@ -0,0 +1,135 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { CdkDragStart, CdkDragMove } from '@angular/cdk/drag-drop';
4
+
5
+ interface TreeNode<T = unknown> {
6
+ id: string;
7
+ label: string;
8
+ icon?: string;
9
+ parentId?: string | null;
10
+ draggable?: boolean;
11
+ disabled?: boolean;
12
+ data?: T;
13
+ }
14
+ interface FlatNode {
15
+ id: string;
16
+ label: string;
17
+ icon?: string;
18
+ level: number;
19
+ expandable: boolean;
20
+ expanded: boolean;
21
+ parentId?: string | null;
22
+ draggable: boolean;
23
+ disabled: boolean;
24
+ }
25
+ interface NodeExpandEvent {
26
+ nodeId: string;
27
+ expanded: boolean;
28
+ }
29
+ type DropPosition = 'before' | 'inside' | 'after';
30
+ type CanDropFn = (draggedNode: FlatNode, targetNode: FlatNode, position: DropPosition) => boolean;
31
+ interface NodeDropEvent {
32
+ nodeId: string;
33
+ newParentId: string | null;
34
+ previousParentId: string | null;
35
+ position: DropPosition;
36
+ referenceNodeId: string;
37
+ }
38
+ interface NodeTreeRowContext {
39
+ $implicit: FlatNode;
40
+ node: FlatNode;
41
+ }
42
+
43
+ declare class FkNodeTreeRowDirective {
44
+ readonly templateRef: TemplateRef<any>;
45
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FkNodeTreeRowDirective, never>;
46
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FkNodeTreeRowDirective, "[fkNodeTreeRow]", never, {}, {}, never, never, true, never>;
47
+ }
48
+
49
+ declare class FkNodeTreeComponent {
50
+ private readonly elementRef;
51
+ readonly className: _angular_core.InputSignal<string>;
52
+ /** Flat array of `TreeNode` objects that define the hierarchy via `parentId`. */
53
+ readonly nodes: _angular_core.InputSignal<TreeNode<unknown>[]>;
54
+ /** ID of the currently selected node; drives the selected row highlight. */
55
+ readonly selectedNodeId: _angular_core.InputSignal<string | undefined>;
56
+ /** Controlled set of expanded node IDs; when undefined the tree manages expansion internally. */
57
+ readonly expandedNodeIds: _angular_core.InputSignal<string[] | undefined>;
58
+ /** When true, rows can be dragged to reorder or reparent nodes. */
59
+ readonly draggable: _angular_core.InputSignal<boolean>;
60
+ /** Optional guard called during drag to determine whether a drop at a given position is allowed. */
61
+ readonly canDrop: _angular_core.InputSignal<CanDropFn | undefined>;
62
+ /** Fires when the user clicks a node row, emitting the original `TreeNode`. */
63
+ readonly nodeSelect: _angular_core.OutputEmitterRef<TreeNode<unknown>>;
64
+ /** Fires when a node's expanded state changes, emitting the node id and new expanded boolean. */
65
+ readonly nodeExpand: _angular_core.OutputEmitterRef<NodeExpandEvent>;
66
+ /** Fires when the user drops a dragged node onto a target, emitting the drop event. */
67
+ readonly nodeDrop: _angular_core.OutputEmitterRef<NodeDropEvent>;
68
+ readonly rowTemplate: _angular_core.Signal<FkNodeTreeRowDirective | undefined>;
69
+ private readonly internalExpandedIds;
70
+ private readonly dragState;
71
+ private autoExpandTimer;
72
+ private autoExpandNodeId;
73
+ readonly childrenMap: _angular_core.Signal<Map<string | null, TreeNode<unknown>[]>>;
74
+ readonly nodeMap: _angular_core.Signal<Map<string, TreeNode<unknown>>>;
75
+ readonly effectiveExpandedIds: _angular_core.Signal<Set<string>>;
76
+ readonly visibleNodes: _angular_core.Signal<FlatNode[]>;
77
+ readonly draggedNodeId: _angular_core.Signal<string | null>;
78
+ readonly dropTargetId: _angular_core.Signal<string | null>;
79
+ readonly dropPosition: _angular_core.Signal<DropPosition | null>;
80
+ readonly classes: _angular_core.Signal<string>;
81
+ readonly role = "tree";
82
+ get hostClass(): string;
83
+ onNodeSelect(flatNode: FlatNode): void;
84
+ onNodeToggle(flatNode: FlatNode): void;
85
+ onDragStarted(event: CdkDragStart, flatNode: FlatNode): void;
86
+ onDragMoved(event: CdkDragMove): void;
87
+ onDragEnded(): void;
88
+ private resolveDropTarget;
89
+ private startAutoExpand;
90
+ private clearAutoExpand;
91
+ private resetDragState;
92
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FkNodeTreeComponent, never>;
93
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FkNodeTreeComponent, "fk-node-tree", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "selectedNodeId": { "alias": "selectedNodeId"; "required": false; "isSignal": true; }; "expandedNodeIds": { "alias": "expandedNodeIds"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "canDrop": { "alias": "canDrop"; "required": false; "isSignal": true; }; }, { "nodeSelect": "nodeSelect"; "nodeExpand": "nodeExpand"; "nodeDrop": "nodeDrop"; }, ["rowTemplate"], never, true, never>;
94
+ }
95
+
96
+ declare function isDescendantOf(nodeId: string, ancestorId: string, childrenMap: Map<string | null, TreeNode[]>): boolean;
97
+ declare function buildChildrenMap(nodes: TreeNode[]): Map<string | null, TreeNode[]>;
98
+ declare function flattenTree(childrenMap: Map<string | null, TreeNode[]>, expandedIds: Set<string>, parentId?: string | null, level?: number): FlatNode[];
99
+
100
+ declare class FkNodeTreeRowComponent {
101
+ readonly className: _angular_core.InputSignal<string>;
102
+ /** Flattened node data including level, expandable state, and label. */
103
+ readonly node: _angular_core.InputSignal<FlatNode>;
104
+ /** Whether this row is the currently selected node. */
105
+ readonly selected: _angular_core.InputSignal<boolean>;
106
+ /** Current drop position relative to this row during a drag operation. */
107
+ readonly dropPosition: _angular_core.InputSignal<DropPosition | null>;
108
+ /** When true, this row is the one being dragged (applies ghost styling). */
109
+ readonly isDragSource: _angular_core.InputSignal<boolean>;
110
+ /** When true, renders the CDK drag handle affordance. */
111
+ readonly showDragHandle: _angular_core.InputSignal<boolean>;
112
+ /** Optional custom template used to render the row content. */
113
+ readonly customTemplate: _angular_core.InputSignal<TemplateRef<NodeTreeRowContext> | undefined>;
114
+ /** Fires when the user clicks the expand/collapse chevron. */
115
+ readonly toggleNode: _angular_core.OutputEmitterRef<void>;
116
+ /** Fires when the user clicks the row body to select the node. */
117
+ readonly selectNode: _angular_core.OutputEmitterRef<void>;
118
+ readonly classes: _angular_core.Signal<string>;
119
+ readonly templateContext: _angular_core.Signal<NodeTreeRowContext>;
120
+ get hostClass(): string;
121
+ get dataNodeId(): string;
122
+ readonly role = "treeitem";
123
+ get ariaLevel(): number;
124
+ get ariaExpanded(): boolean | null;
125
+ get ariaSelected(): boolean;
126
+ readonly tabindex = 0;
127
+ get paddingLeft(): string;
128
+ onClick(): void;
129
+ onToggleClick(event: MouseEvent): void;
130
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FkNodeTreeRowComponent, never>;
131
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FkNodeTreeRowComponent, "fk-node-tree-row", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "node": { "alias": "node"; "required": true; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "dropPosition": { "alias": "dropPosition"; "required": false; "isSignal": true; }; "isDragSource": { "alias": "isDragSource"; "required": false; "isSignal": true; }; "showDragHandle": { "alias": "showDragHandle"; "required": false; "isSignal": true; }; "customTemplate": { "alias": "customTemplate"; "required": false; "isSignal": true; }; }, { "toggleNode": "toggleNode"; "selectNode": "selectNode"; }, never, ["*"], true, never>;
132
+ }
133
+
134
+ export { FkNodeTreeComponent, FkNodeTreeRowComponent, FkNodeTreeRowDirective, buildChildrenMap, flattenTree, isDescendantOf };
135
+ export type { CanDropFn, DropPosition, FlatNode, NodeDropEvent, NodeExpandEvent, NodeTreeRowContext, TreeNode };
@@ -0,0 +1,22 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NoteVariant = 'info' | 'success' | 'warning' | 'danger';
4
+
5
+ declare class NoteComponent {
6
+ /** Semantic variant driving the color of the note text. */
7
+ readonly variant: _angular_core.InputSignal<NoteVariant>;
8
+ /** When true, renders the note text in italic style. */
9
+ readonly italic: _angular_core.InputSignal<boolean>;
10
+ readonly className: _angular_core.InputSignal<string>;
11
+ readonly id: _angular_core.InputSignal<string | null>;
12
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
13
+ readonly classes: _angular_core.Signal<string>;
14
+ get hostClass(): string;
15
+ get hostId(): string | null;
16
+ get hostAriaLabel(): string | null;
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NoteComponent, never>;
18
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NoteComponent, "fk-note", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "italic": { "alias": "italic"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
19
+ }
20
+
21
+ export { NoteComponent };
22
+ export type { NoteVariant };
@@ -0,0 +1,52 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal } from '@angular/core';
3
+
4
+ type NumberedListSize = 'sm' | 'md' | 'lg';
5
+ interface NumberedListItem {
6
+ /** The label text shown after the number badge. */
7
+ label: string;
8
+ }
9
+
10
+ /**
11
+ * Parent contract exposed by `fk-numbered-list` to `fk-numbered-list-item`
12
+ * children. Lives in its own file so the two components can reference it
13
+ * without the circular ES-module import that a direct
14
+ * `NumberedListComponent` type import would create (item -> list -> item).
15
+ */
16
+ interface NumberedListParent {
17
+ readonly size: Signal<NumberedListSize>;
18
+ }
19
+
20
+ declare class NumberedListComponent implements NumberedListParent {
21
+ /** Optional array of items to render declaratively; when null, projected `fk-numbered-list-item` elements are used. */
22
+ readonly items: _angular_core.InputSignal<readonly NumberedListItem[] | null>;
23
+ /** Size applied to every item in the list. */
24
+ readonly size: _angular_core.InputSignal<NumberedListSize>;
25
+ readonly className: _angular_core.InputSignal<string>;
26
+ readonly id: _angular_core.InputSignal<string | null>;
27
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
28
+ readonly classes: _angular_core.Signal<string>;
29
+ get hostClass(): string;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberedListComponent, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberedListComponent, "fk-numbered-list", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
32
+ }
33
+
34
+ declare class NumberedListItemComponent {
35
+ private readonly parent;
36
+ /** Size for this item; falls back to the parent numbered-list's `size` when null. */
37
+ readonly size: _angular_core.InputSignal<NumberedListSize | null>;
38
+ readonly className: _angular_core.InputSignal<string>;
39
+ readonly id: _angular_core.InputSignal<string | null>;
40
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
41
+ protected readonly resolvedSize: _angular_core.Signal<NumberedListSize>;
42
+ readonly classes: _angular_core.Signal<string>;
43
+ get hostClass(): string;
44
+ get hostRole(): string | null;
45
+ get hostId(): string | null;
46
+ get hostAriaLabel(): string | null;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberedListItemComponent, never>;
48
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberedListItemComponent, "fk-numbered-list-item", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
49
+ }
50
+
51
+ export { NumberedListComponent, NumberedListItemComponent };
52
+ export type { NumberedListItem, NumberedListSize };
@@ -0,0 +1,49 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface PageChangeEvent {
4
+ page: number;
5
+ take: number;
6
+ }
7
+
8
+ declare class PaginationComponent {
9
+ /** Current 1-based page number. */
10
+ readonly page: _angular_core.InputSignal<number>;
11
+ /** Number of items shown per page (the page size). */
12
+ readonly take: _angular_core.InputSignal<number>;
13
+ /** Total count of items across all pages used to compute `pageCount`. */
14
+ readonly itemCount: _angular_core.InputSignal<number>;
15
+ /** Available page-size values shown in the per-page selector. */
16
+ readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
17
+ /** When true, renders first-page and last-page navigation buttons. */
18
+ readonly showFirstLast: _angular_core.InputSignal<boolean>;
19
+ readonly className: _angular_core.InputSignal<string>;
20
+ readonly id: _angular_core.InputSignal<string | null>;
21
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
22
+ /** Fires when the user navigates to a new page or changes the page size, emitting the new page and take. */
23
+ readonly pageChange: _angular_core.OutputEmitterRef<PageChangeEvent>;
24
+ readonly selectId: string;
25
+ /** Always >= 1. Empty datasets show "1 / 1" rather than "1 / 0". */
26
+ readonly pageCount: _angular_core.Signal<number>;
27
+ readonly hasPreviousPage: _angular_core.Signal<boolean>;
28
+ readonly hasNextPage: _angular_core.Signal<boolean>;
29
+ readonly rangeStart: _angular_core.Signal<number>;
30
+ readonly rangeEnd: _angular_core.Signal<number>;
31
+ readonly classes: _angular_core.Signal<string>;
32
+ get hostClass(): string;
33
+ get hostId(): string | null;
34
+ get hostAriaLabel(): string | null;
35
+ /** Navigates to the first page if the current page is not already the first. */
36
+ goToFirst(): void;
37
+ /** Navigates to the previous page if one exists. */
38
+ goToPrevious(): void;
39
+ /** Navigates to the next page if one exists. */
40
+ goToNext(): void;
41
+ /** Navigates to the last page if the current page is not already the last. */
42
+ goToLast(): void;
43
+ onPageSizeChange(event: Event): void;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginationComponent, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "fk-pagination", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; "take": { "alias": "take"; "required": true; "isSignal": true; }; "itemCount": { "alias": "itemCount"; "required": true; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showFirstLast": { "alias": "showFirstLast"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
46
+ }
47
+
48
+ export { PaginationComponent };
49
+ export type { PageChangeEvent };
@@ -0,0 +1,50 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type ProgressBarMode = 'determinate' | 'indeterminate';
4
+ type ProgressBarSize = 'sm' | 'md' | 'lg';
5
+ type ProgressBarVariant = 'default' | 'success' | 'warning' | 'danger';
6
+
7
+ declare class ProgressBarComponent {
8
+ /** Current progress value; clamped between 0 and `max`. */
9
+ readonly value: _angular_core.InputSignal<number>;
10
+ /** Maximum value representing 100% completion. */
11
+ readonly max: _angular_core.InputSignal<number>;
12
+ /** Whether the bar shows a determinate fill or an indeterminate animation. */
13
+ readonly mode: _angular_core.InputSignal<ProgressBarMode>;
14
+ /** Size preset controlling the bar height. */
15
+ readonly size: _angular_core.InputSignal<ProgressBarSize>;
16
+ /** Color variant applied to the progress fill. */
17
+ readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
18
+ /** Custom fill color as a CSS value, overriding the variant token. */
19
+ readonly color: _angular_core.InputSignal<string | null>;
20
+ /** Custom track (background) color as a CSS value. */
21
+ readonly trackColor: _angular_core.InputSignal<string | null>;
22
+ /** Custom height of the bar as a CSS size value, overriding the size preset. */
23
+ readonly height: _angular_core.InputSignal<string | null>;
24
+ /** When true, renders a text label showing the current percentage. */
25
+ readonly showValue: _angular_core.InputSignal<boolean>;
26
+ /** When true, applies an animated striped pattern to the fill. */
27
+ readonly striped: _angular_core.InputSignal<boolean>;
28
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
29
+ readonly ariaDescribedBy: _angular_core.InputSignal<string | null>;
30
+ readonly id: _angular_core.InputSignal<string | null>;
31
+ readonly className: _angular_core.InputSignal<string>;
32
+ readonly clampedValue: _angular_core.Signal<number>;
33
+ readonly percentage: _angular_core.Signal<number>;
34
+ readonly valueText: _angular_core.Signal<string>;
35
+ readonly classes: _angular_core.Signal<string>;
36
+ get hostClass(): string;
37
+ get hostRole(): string;
38
+ get hostAriaValueMin(): 0 | null;
39
+ get hostAriaValueMax(): number | null;
40
+ get hostAriaValueNow(): number | null;
41
+ get hostAriaValueText(): string;
42
+ get hostAriaLabel(): string | null;
43
+ get hostAriaDescribedBy(): string | null;
44
+ get hostId(): string | null;
45
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
46
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBarComponent, "fk-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
47
+ }
48
+
49
+ export { ProgressBarComponent };
50
+ export type { ProgressBarMode, ProgressBarSize, ProgressBarVariant };
@@ -0,0 +1,24 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { IconSize } from '@frame-kit/ui-ng/core/icon';
3
+
4
+ declare class SidenavLinkComponent {
5
+ /** Optional icon name shown to the leading side of the link label. */
6
+ readonly icon: _angular_core.InputSignal<string | null>;
7
+ /** Size of the leading icon. */
8
+ readonly iconSize: _angular_core.InputSignal<IconSize>;
9
+ /** Link text displayed next to the icon and used as a tooltip when the sidenav is collapsed. */
10
+ readonly label: _angular_core.InputSignal<string>;
11
+ /** Router path the link navigates to; when null the element renders as a non-navigable button. */
12
+ readonly routerLink: _angular_core.InputSignal<string | string[] | null>;
13
+ /** When true, the active class is applied only on an exact route match. */
14
+ readonly exact: _angular_core.InputSignal<boolean>;
15
+ private readonly shell;
16
+ readonly isCollapsed: _angular_core.Signal<boolean>;
17
+ readonly hostClass = "fk-sidenav-link";
18
+ /** Dismisses the parent sidenav on mobile when the link is activated. */
19
+ dismiss(): void;
20
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidenavLinkComponent, never>;
21
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidenavLinkComponent, "fk-sidenav-link", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "exact": { "alias": "exact"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
22
+ }
23
+
24
+ export { SidenavLinkComponent };