@design-factory/angular 21.1.0-next.0 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/fesm2022/design-factory-angular-drawer.mjs +22 -29
  2. package/fesm2022/design-factory-angular-drawer.mjs.map +1 -1
  3. package/fesm2022/design-factory-angular-internals.mjs +5 -5
  4. package/fesm2022/design-factory-angular-internals.mjs.map +1 -1
  5. package/fesm2022/design-factory-angular-sidenav.mjs +139 -62
  6. package/fesm2022/design-factory-angular-sidenav.mjs.map +1 -1
  7. package/fesm2022/design-factory-angular-theme.mjs +1 -1
  8. package/fesm2022/design-factory-angular-theme.mjs.map +1 -1
  9. package/fesm2022/design-factory-angular-topnav.mjs +152 -75
  10. package/fesm2022/design-factory-angular-topnav.mjs.map +1 -1
  11. package/package.json +3 -6
  12. package/types/design-factory-angular-drawer.d.ts +13 -14
  13. package/types/design-factory-angular-internals.d.ts +3 -3
  14. package/types/design-factory-angular-sidenav.d.ts +19 -6
  15. package/types/design-factory-angular-topnav.d.ts +13 -6
  16. package/node_modules/@agnos-ui/core/README.md +0 -5
  17. package/node_modules/@agnos-ui/core/accordion-BC_9xn23.cjs +0 -314
  18. package/node_modules/@agnos-ui/core/accordion-Ca_0T8Bc.js +0 -315
  19. package/node_modules/@agnos-ui/core/alert-AhaliJ17.cjs +0 -9
  20. package/node_modules/@agnos-ui/core/alert-Cb9FhbFQ.js +0 -10
  21. package/node_modules/@agnos-ui/core/collapse-COriZO7o.cjs +0 -94
  22. package/node_modules/@agnos-ui/core/collapse-CP79atna.js +0 -95
  23. package/node_modules/@agnos-ui/core/common-B5jS-Ih_.cjs +0 -73
  24. package/node_modules/@agnos-ui/core/common-DFyZvkII.js +0 -74
  25. package/node_modules/@agnos-ui/core/components/accordion/accordion.d.ts +0 -333
  26. package/node_modules/@agnos-ui/core/components/accordion/index.cjs +0 -7
  27. package/node_modules/@agnos-ui/core/components/accordion/index.d.ts +0 -1
  28. package/node_modules/@agnos-ui/core/components/accordion/index.js +0 -7
  29. package/node_modules/@agnos-ui/core/components/alert/alert.d.ts +0 -37
  30. package/node_modules/@agnos-ui/core/components/alert/common.d.ts +0 -138
  31. package/node_modules/@agnos-ui/core/components/alert/index.cjs +0 -5
  32. package/node_modules/@agnos-ui/core/components/alert/index.d.ts +0 -1
  33. package/node_modules/@agnos-ui/core/components/alert/index.js +0 -5
  34. package/node_modules/@agnos-ui/core/components/carousel/carousel.d.ts +0 -247
  35. package/node_modules/@agnos-ui/core/components/carousel/index.cjs +0 -292
  36. package/node_modules/@agnos-ui/core/components/carousel/index.d.ts +0 -1
  37. package/node_modules/@agnos-ui/core/components/carousel/index.js +0 -292
  38. package/node_modules/@agnos-ui/core/components/collapse/collapse.d.ts +0 -135
  39. package/node_modules/@agnos-ui/core/components/collapse/index.cjs +0 -5
  40. package/node_modules/@agnos-ui/core/components/collapse/index.d.ts +0 -1
  41. package/node_modules/@agnos-ui/core/components/collapse/index.js +0 -5
  42. package/node_modules/@agnos-ui/core/components/commonProps.d.ts +0 -11
  43. package/node_modules/@agnos-ui/core/components/drawer/drawer.d.ts +0 -279
  44. package/node_modules/@agnos-ui/core/components/drawer/index.cjs +0 -5
  45. package/node_modules/@agnos-ui/core/components/drawer/index.d.ts +0 -1
  46. package/node_modules/@agnos-ui/core/components/drawer/index.js +0 -5
  47. package/node_modules/@agnos-ui/core/components/modal/index.cjs +0 -8
  48. package/node_modules/@agnos-ui/core/components/modal/index.d.ts +0 -1
  49. package/node_modules/@agnos-ui/core/components/modal/index.js +0 -8
  50. package/node_modules/@agnos-ui/core/components/modal/modal.d.ts +0 -245
  51. package/node_modules/@agnos-ui/core/components/pagination/index.cjs +0 -5
  52. package/node_modules/@agnos-ui/core/components/pagination/index.d.ts +0 -1
  53. package/node_modules/@agnos-ui/core/components/pagination/index.js +0 -5
  54. package/node_modules/@agnos-ui/core/components/pagination/pagination.d.ts +0 -313
  55. package/node_modules/@agnos-ui/core/components/progressbar/index.cjs +0 -5
  56. package/node_modules/@agnos-ui/core/components/progressbar/index.d.ts +0 -1
  57. package/node_modules/@agnos-ui/core/components/progressbar/index.js +0 -5
  58. package/node_modules/@agnos-ui/core/components/progressbar/progressbar.d.ts +0 -91
  59. package/node_modules/@agnos-ui/core/components/rating/index.cjs +0 -5
  60. package/node_modules/@agnos-ui/core/components/rating/index.d.ts +0 -1
  61. package/node_modules/@agnos-ui/core/components/rating/index.js +0 -5
  62. package/node_modules/@agnos-ui/core/components/rating/rating.d.ts +0 -191
  63. package/node_modules/@agnos-ui/core/components/slider/index.cjs +0 -5
  64. package/node_modules/@agnos-ui/core/components/slider/index.d.ts +0 -1
  65. package/node_modules/@agnos-ui/core/components/slider/index.js +0 -5
  66. package/node_modules/@agnos-ui/core/components/slider/slider-utils.d.ts +0 -25
  67. package/node_modules/@agnos-ui/core/components/slider/slider.d.ts +0 -383
  68. package/node_modules/@agnos-ui/core/components/toast/index.cjs +0 -7
  69. package/node_modules/@agnos-ui/core/components/toast/index.d.ts +0 -2
  70. package/node_modules/@agnos-ui/core/components/toast/index.js +0 -7
  71. package/node_modules/@agnos-ui/core/components/toast/toast.d.ts +0 -66
  72. package/node_modules/@agnos-ui/core/components/toast/toaster.d.ts +0 -128
  73. package/node_modules/@agnos-ui/core/components/tree/index.cjs +0 -5
  74. package/node_modules/@agnos-ui/core/components/tree/index.d.ts +0 -1
  75. package/node_modules/@agnos-ui/core/components/tree/index.js +0 -5
  76. package/node_modules/@agnos-ui/core/components/tree/tree.d.ts +0 -143
  77. package/node_modules/@agnos-ui/core/config.cjs +0 -36
  78. package/node_modules/@agnos-ui/core/config.d.ts +0 -117
  79. package/node_modules/@agnos-ui/core/config.js +0 -36
  80. package/node_modules/@agnos-ui/core/directive-Bsreu2z1.js +0 -523
  81. package/node_modules/@agnos-ui/core/directive-DCaXmRe_.cjs +0 -522
  82. package/node_modules/@agnos-ui/core/drawer-BbFAHV07.cjs +0 -328
  83. package/node_modules/@agnos-ui/core/drawer-C6Qa0xEu.js +0 -329
  84. package/node_modules/@agnos-ui/core/index.cjs +0 -134
  85. package/node_modules/@agnos-ui/core/index.d.ts +0 -29
  86. package/node_modules/@agnos-ui/core/index.js +0 -134
  87. package/node_modules/@agnos-ui/core/isFocusable-Ckwus82R.js +0 -32
  88. package/node_modules/@agnos-ui/core/isFocusable-DfzDLeAN.cjs +0 -31
  89. package/node_modules/@agnos-ui/core/modal-BsNuHhT7.cjs +0 -252
  90. package/node_modules/@agnos-ui/core/modal-CgzY8ezz.js +0 -253
  91. package/node_modules/@agnos-ui/core/package.json +0 -57
  92. package/node_modules/@agnos-ui/core/pagination-ZxGaNWZz.js +0 -255
  93. package/node_modules/@agnos-ui/core/pagination-xbcOHnhd.cjs +0 -254
  94. package/node_modules/@agnos-ui/core/progressbar-CRbMKp4b.cjs +0 -86
  95. package/node_modules/@agnos-ui/core/progressbar-CSEIFnlD.js +0 -87
  96. package/node_modules/@agnos-ui/core/promise-CxCD3NYv.cjs +0 -118
  97. package/node_modules/@agnos-ui/core/promise-D-RZVPuv.js +0 -119
  98. package/node_modules/@agnos-ui/core/rating-BIdiiPUo.js +0 -184
  99. package/node_modules/@agnos-ui/core/rating-qx1xaBmz.cjs +0 -183
  100. package/node_modules/@agnos-ui/core/scrollbars-CT87iv_6.cjs +0 -30
  101. package/node_modules/@agnos-ui/core/scrollbars-CcxSrnCx.js +0 -31
  102. package/node_modules/@agnos-ui/core/services/extendWidget.cjs +0 -41
  103. package/node_modules/@agnos-ui/core/services/extendWidget.d.ts +0 -31
  104. package/node_modules/@agnos-ui/core/services/extendWidget.js +0 -41
  105. package/node_modules/@agnos-ui/core/services/floatingUI.cjs +0 -111
  106. package/node_modules/@agnos-ui/core/services/floatingUI.d.ts +0 -76
  107. package/node_modules/@agnos-ui/core/services/floatingUI.js +0 -111
  108. package/node_modules/@agnos-ui/core/services/focusElement.cjs +0 -46
  109. package/node_modules/@agnos-ui/core/services/focusElement.d.ts +0 -9
  110. package/node_modules/@agnos-ui/core/services/focusElement.js +0 -46
  111. package/node_modules/@agnos-ui/core/services/focustrack.cjs +0 -47
  112. package/node_modules/@agnos-ui/core/services/focustrack.d.ts +0 -40
  113. package/node_modules/@agnos-ui/core/services/focustrack.js +0 -47
  114. package/node_modules/@agnos-ui/core/services/hash.cjs +0 -15
  115. package/node_modules/@agnos-ui/core/services/hash.d.ts +0 -3
  116. package/node_modules/@agnos-ui/core/services/hash.js +0 -15
  117. package/node_modules/@agnos-ui/core/services/intersection.cjs +0 -53
  118. package/node_modules/@agnos-ui/core/services/intersection.d.ts +0 -30
  119. package/node_modules/@agnos-ui/core/services/intersection.js +0 -53
  120. package/node_modules/@agnos-ui/core/services/matchMedia.cjs +0 -14
  121. package/node_modules/@agnos-ui/core/services/matchMedia.d.ts +0 -8
  122. package/node_modules/@agnos-ui/core/services/matchMedia.js +0 -14
  123. package/node_modules/@agnos-ui/core/services/navManager.cjs +0 -166
  124. package/node_modules/@agnos-ui/core/services/navManager.d.ts +0 -144
  125. package/node_modules/@agnos-ui/core/services/navManager.js +0 -166
  126. package/node_modules/@agnos-ui/core/services/pointerdownPosition.cjs +0 -60
  127. package/node_modules/@agnos-ui/core/services/pointerdownPosition.d.ts +0 -42
  128. package/node_modules/@agnos-ui/core/services/pointerdownPosition.js +0 -60
  129. package/node_modules/@agnos-ui/core/services/portal.cjs +0 -42
  130. package/node_modules/@agnos-ui/core/services/portal.d.ts +0 -16
  131. package/node_modules/@agnos-ui/core/services/portal.js +0 -42
  132. package/node_modules/@agnos-ui/core/services/resizeObserver.cjs +0 -54
  133. package/node_modules/@agnos-ui/core/services/resizeObserver.d.ts +0 -18
  134. package/node_modules/@agnos-ui/core/services/resizeObserver.js +0 -54
  135. package/node_modules/@agnos-ui/core/services/siblingsInert.cjs +0 -44
  136. package/node_modules/@agnos-ui/core/services/siblingsInert.d.ts +0 -16
  137. package/node_modules/@agnos-ui/core/services/siblingsInert.js +0 -44
  138. package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.cjs +0 -186
  139. package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.d.ts +0 -166
  140. package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.js +0 -186
  141. package/node_modules/@agnos-ui/core/services/transitions/collapse.cjs +0 -40
  142. package/node_modules/@agnos-ui/core/services/transitions/collapse.d.ts +0 -49
  143. package/node_modules/@agnos-ui/core/services/transitions/collapse.js +0 -40
  144. package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.cjs +0 -32
  145. package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.d.ts +0 -25
  146. package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.js +0 -32
  147. package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.cjs +0 -37
  148. package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.d.ts +0 -47
  149. package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.js +0 -37
  150. package/node_modules/@agnos-ui/core/slider-B93hE0ag.cjs +0 -807
  151. package/node_modules/@agnos-ui/core/slider-Cjiq9FgI.js +0 -808
  152. package/node_modules/@agnos-ui/core/textDirection-cNgt24LJ.js +0 -4
  153. package/node_modules/@agnos-ui/core/textDirection-zqcZ5-eK.cjs +0 -3
  154. package/node_modules/@agnos-ui/core/toaster-BQWqxYv-.cjs +0 -190
  155. package/node_modules/@agnos-ui/core/toaster-BzEkshT2.js +0 -191
  156. package/node_modules/@agnos-ui/core/tree-DY04XPPg.cjs +0 -228
  157. package/node_modules/@agnos-ui/core/tree-HwcvZ0_p.js +0 -229
  158. package/node_modules/@agnos-ui/core/types.cjs +0 -6
  159. package/node_modules/@agnos-ui/core/types.d.ts +0 -246
  160. package/node_modules/@agnos-ui/core/types.js +0 -6
  161. package/node_modules/@agnos-ui/core/utils/directive.cjs +0 -28
  162. package/node_modules/@agnos-ui/core/utils/directive.d.ts +0 -352
  163. package/node_modules/@agnos-ui/core/utils/directive.js +0 -28
  164. package/node_modules/@agnos-ui/core/utils/func.cjs +0 -7
  165. package/node_modules/@agnos-ui/core/utils/func.d.ts +0 -11
  166. package/node_modules/@agnos-ui/core/utils/func.js +0 -7
  167. package/node_modules/@agnos-ui/core/utils/id.cjs +0 -5
  168. package/node_modules/@agnos-ui/core/utils/id.d.ts +0 -6
  169. package/node_modules/@agnos-ui/core/utils/id.js +0 -5
  170. package/node_modules/@agnos-ui/core/utils/internal/assign.d.ts +0 -10
  171. package/node_modules/@agnos-ui/core/utils/internal/checks.d.ts +0 -57
  172. package/node_modules/@agnos-ui/core/utils/internal/dom.d.ts +0 -75
  173. package/node_modules/@agnos-ui/core/utils/internal/isFocusable.d.ts +0 -9
  174. package/node_modules/@agnos-ui/core/utils/internal/math.d.ts +0 -5
  175. package/node_modules/@agnos-ui/core/utils/internal/promise.d.ts +0 -98
  176. package/node_modules/@agnos-ui/core/utils/internal/scrollbars.d.ts +0 -8
  177. package/node_modules/@agnos-ui/core/utils/internal/sort.d.ts +0 -16
  178. package/node_modules/@agnos-ui/core/utils/internal/ssrHTMLElement.d.ts +0 -17
  179. package/node_modules/@agnos-ui/core/utils/internal/textDirection.d.ts +0 -7
  180. package/node_modules/@agnos-ui/core/utils/internal/traversal.d.ts +0 -54
  181. package/node_modules/@agnos-ui/core/utils/stores.cjs +0 -172
  182. package/node_modules/@agnos-ui/core/utils/stores.d.ts +0 -224
  183. package/node_modules/@agnos-ui/core/utils/stores.js +0 -172
  184. package/node_modules/@agnos-ui/core/utils/widget.cjs +0 -8
  185. package/node_modules/@agnos-ui/core/utils/widget.d.ts +0 -11
  186. package/node_modules/@agnos-ui/core/utils/widget.js +0 -8
  187. package/node_modules/@agnos-ui/core/utils/writables.cjs +0 -16
  188. package/node_modules/@agnos-ui/core/utils/writables.d.ts +0 -95
  189. package/node_modules/@agnos-ui/core/utils/writables.js +0 -16
  190. package/node_modules/@agnos-ui/core/writables-DYGjj5T3.js +0 -103
  191. package/node_modules/@agnos-ui/core/writables-Dt68gADJ.cjs +0 -102
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
2
2
  import { Signal, FactoryProvider, OnChanges, WritableSignal as WritableSignal$1, OnInit, SimpleChanges } from '@angular/core';
3
3
  import * as _amadeus_it_group_tansu from '@amadeus-it-group/tansu';
4
4
  import { ReadableSignal, WritableSignal } from '@amadeus-it-group/tansu';
5
- import * as _agnos_ui_core_types from '@agnos-ui/core/types';
6
- import { Widget, WidgetState, WidgetFactory, WidgetProps, Directive, DirectiveAndParam, DirectivesAndOptParam } from '@agnos-ui/core/types';
5
+ import * as _design_factory_core_types from '@design-factory/core/types';
6
+ import { Widget, WidgetState, WidgetFactory, WidgetProps, Directive, DirectiveAndParam, DirectivesAndOptParam } from '@design-factory/core/types';
7
7
 
8
8
  /**
9
9
  * Represents the state of an Angular widget, where each key in the widget's state
@@ -129,7 +129,7 @@ declare class UseMultiDirective<T extends any[]> implements OnChanges {
129
129
  /**
130
130
  * An input property that takes a tuple of directives and their optional parameters.
131
131
  */
132
- readonly useMulti: i0.InputSignal<DirectivesAndOptParam<T, _agnos_ui_core_types.SSRHTMLElement>>;
132
+ readonly useMulti: i0.InputSignal<DirectivesAndOptParam<T, _design_factory_core_types.SSRHTMLElement>>;
133
133
  /** @internal */
134
134
  ngOnChanges(): void;
135
135
  static ɵfac: i0.ɵɵFactoryDeclaration<UseMultiDirective<any>, never>;
@@ -1,5 +1,5 @@
1
- import * as _agnos_ui_core_services_navManager from '@agnos-ui/core/services/navManager';
2
- import { NavManagerItemConfig } from '@agnos-ui/core/services/navManager';
1
+ import * as _design_factory_core_services_navManager from '@design-factory/core/services/navManager';
2
+ import { NavManagerItemConfig } from '@design-factory/core/services/navManager';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { ElementRef, Signal, AfterContentInit } from '@angular/core';
5
5
  import { IsActiveMatchOptions } from '@angular/router';
@@ -26,7 +26,14 @@ declare abstract class DfSidenavLinkBaseComponent {
26
26
  */
27
27
  readonly wrapperHasIconContent: _angular_core.InputSignal<boolean>;
28
28
  /**
29
- * Indicates if the link is currently active based on the Router state
29
+ * Explicitly sets the active state of the link. When provided, the link behaves
30
+ * as an external link (plain `<a href>`) and the Angular Router is not used.
31
+ * When `undefined` (default), the active state is determined by the Angular Router.
32
+ */
33
+ readonly active: _angular_core.InputSignal<boolean | undefined>;
34
+ /**
35
+ * Reflects the current active state of the link.
36
+ * Driven by the `active` input when provided, otherwise updated by the router via `(isActiveChange)`.
30
37
  */
31
38
  readonly isActiveLink: _angular_core.WritableSignal<boolean>;
32
39
  /**
@@ -45,7 +52,7 @@ declare abstract class DfSidenavLinkBaseComponent {
45
52
  protected readonly isVisible: _angular_core.Signal<boolean>;
46
53
  protected toggleSidenavOnSmallScreen(): boolean;
47
54
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DfSidenavLinkBaseComponent, never>;
48
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DfSidenavLinkBaseComponent, never, never, { "linkPath": { "alias": "linkPath"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "wrapperHasIconContent": { "alias": "wrapperHasIconContent"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; }, {}, ["iconContent"], never, true, never>;
55
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DfSidenavLinkBaseComponent, never, never, { "linkPath": { "alias": "linkPath"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "wrapperHasIconContent": { "alias": "wrapperHasIconContent"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; }, {}, ["iconContent"], never, true, never>;
49
56
  }
50
57
 
51
58
  /**
@@ -187,6 +194,12 @@ declare class DfSidenavLinkComponent {
187
194
  readonly routerLinkActiveOptions: _angular_core.InputSignal<IsActiveMatchOptions | {
188
195
  exact: boolean;
189
196
  }>;
197
+ /**
198
+ * Explicitly sets the active state of the link. When provided, the link renders as
199
+ * a plain `<a href>` (no Angular Router). When `undefined` (default), the Angular Router determines
200
+ * the active state.
201
+ */
202
+ readonly active: _angular_core.InputSignal<boolean | undefined>;
190
203
  /**
191
204
  * The parent wrapper item component (if any)
192
205
  */
@@ -203,7 +216,7 @@ declare class DfSidenavLinkComponent {
203
216
  protected readonly wrapperHasIconContent: _angular_core.Signal<boolean>;
204
217
  protected readonly sidenav: DfSidenavComponent;
205
218
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DfSidenavLinkComponent, never>;
206
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfSidenavLinkComponent, "df-sidenav-link", never, { "linkPath": { "alias": "linkPath"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; }, {}, ["iconContentQuery"], ["[dfSidenavIcon]", "*"], true, never>;
219
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfSidenavLinkComponent, "df-sidenav-link", never, { "linkPath": { "alias": "linkPath"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, ["iconContentQuery"], ["[dfSidenavIcon]", "*"], true, never>;
207
220
  }
208
221
 
209
222
  /**
@@ -306,7 +319,7 @@ declare class DfSidenavComponent implements AfterContentInit {
306
319
  protected readonly isLargeUpScreen: Signal<boolean>;
307
320
  protected readonly isMobileOrSmallScreen: Signal<boolean>;
308
321
  protected readonly backdrop: Signal<boolean>;
309
- protected readonly navManager: _agnos_ui_core_services_navManager.NavManager<unknown>;
322
+ protected readonly navManager: _design_factory_core_services_navManager.NavManager<unknown>;
310
323
  protected readonly navManagerConfig: NavManagerItemConfig;
311
324
  private readonly injector;
312
325
  constructor();
@@ -20,6 +20,7 @@ type SideNavItem = {
20
20
  type SideNavLink = {
21
21
  label: Signal<string>;
22
22
  href: Signal<string>;
23
+ external: Signal<boolean>;
23
24
  routerLinkActiveOptions: Signal<IsActiveMatchOptions | {
24
25
  exact: boolean;
25
26
  }>;
@@ -172,9 +173,15 @@ declare class DfTopNavNavigationLink extends DfTopNavNavigationElement {
172
173
  */
173
174
  readonly label: _angular_core.InputSignal<string>;
174
175
  /**
175
- * The href of the navigation link, which will be used as the link target. It can be either an internal route or an external URL.
176
+ * The external href of the navigation link, which will be used as the link target. Use {@link routerLink} for internal links.
176
177
  */
177
- readonly href: _angular_core.InputSignal<string>;
178
+ readonly href: _angular_core.InputSignal<string | undefined>;
179
+ /**
180
+ * The internal router link of the navigation link, which will be used as the link target. Use {@link href} for external links.
181
+ */
182
+ readonly routerLink: _angular_core.InputSignal<string | undefined>;
183
+ protected readonly resolvedLink: _angular_core.Signal<string>;
184
+ protected readonly externalLink: _angular_core.Signal<boolean>;
178
185
  /**
179
186
  * The options to determine when the link is active based on the Router state. It can be either an object of type IsActiveMatchOptions or an object with an "exact" boolean property. When not provided, it defaults to { exact: false }.
180
187
  */
@@ -187,7 +194,7 @@ declare class DfTopNavNavigationLink extends DfTopNavNavigationElement {
187
194
  */
188
195
  readonly active: _angular_core.Signal<boolean>;
189
196
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DfTopNavNavigationLink, never>;
190
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfTopNavNavigationLink, "df-topnav-navigation-link", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "href": { "alias": "href"; "required": true; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
197
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfTopNavNavigationLink, "df-topnav-navigation-link", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
191
198
  }
192
199
 
193
200
  /**
@@ -202,9 +209,9 @@ declare class DfTopNavNavigationItem extends DfTopNavNavigationElement {
202
209
  */
203
210
  readonly label: _angular_core.InputSignal<string>;
204
211
  /**
205
- * The href of the navigation item, which will be used as the link target. It can be either an internal route or an external URL.
212
+ * The routerLink of the navigation item, which will be used as the link target. It should be an internal route.
206
213
  */
207
- readonly href: _angular_core.InputSignal<string>;
214
+ readonly routerLink: _angular_core.InputSignal<string>;
208
215
  protected readonly childElements: _angular_core.Signal<readonly DfTopNavNavigationElement[]>;
209
216
  protected readonly deepChildLinks: _angular_core.Signal<readonly DfTopNavNavigationLink[]>;
210
217
  protected readonly rootChildLinks: _angular_core.Signal<DfTopNavNavigationLink[]>;
@@ -216,7 +223,7 @@ declare class DfTopNavNavigationItem extends DfTopNavNavigationElement {
216
223
  */
217
224
  readonly active: _angular_core.Signal<boolean>;
218
225
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DfTopNavNavigationItem, never>;
219
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfTopNavNavigationItem, "df-topnav-navigation-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "href": { "alias": "href"; "required": true; "isSignal": true; }; }, {}, ["childElements", "deepChildLinks"], never, true, never>;
226
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DfTopNavNavigationItem, "df-topnav-navigation-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": true; "isSignal": true; }; }, {}, ["childElements", "deepChildLinks"], never, true, never>;
220
227
  }
221
228
 
222
229
  /**
@@ -1,5 +0,0 @@
1
- # @agnos-ui/core
2
-
3
- This is an internal package maintained within the Design Factory monorepo. It is **not** published to npm independently and is bundled into `@design-factory/angular` during build via `bundledDependencies`.
4
-
5
- AgnosUI is a framework-agnostic component library. This `@agnos-ui/core` package contains the framework-agnostic headless component logic. It is used by [`@design-factory/angular`](../../angular/components/).
@@ -1,314 +0,0 @@
1
- "use strict";
2
- const utils_stores = require("./utils/stores.cjs");
3
- const services_transitions_baseTransitions = require("./services/transitions/baseTransitions.cjs");
4
- const tansu = require("@amadeus-it-group/tansu");
5
- const utils_func = require("./utils/func.cjs");
6
- const utils_writables = require("./writables-Dt68gADJ.cjs");
7
- const utils_directive = require("./directive-DCaXmRe_.cjs");
8
- const utils_widget = require("./utils/widget.cjs");
9
- function adjustItemsCloseOthers(items, openItems, oldOpen) {
10
- let keepOpen;
11
- if (openItems.length == 2) {
12
- oldOpen = oldOpen ?? openItems[0];
13
- keepOpen = openItems.find((id) => id !== oldOpen);
14
- } else if (openItems.length > 2) {
15
- keepOpen = openItems[0];
16
- }
17
- if (keepOpen) {
18
- items.forEach((item) => {
19
- if (item.stores.id$() !== keepOpen && item.stores.visible$()) {
20
- item.patch({ visible: false });
21
- }
22
- });
23
- }
24
- return items;
25
- }
26
- function getItem(items, id) {
27
- return items.find((item) => item.stores.id$() === id);
28
- }
29
- const defaultAccordionConfig = {
30
- closeOthers: false,
31
- onItemShown: utils_func.noop,
32
- onItemHidden: utils_func.noop,
33
- className: "",
34
- itemDestroyOnHide: true,
35
- itemAnimated: true,
36
- itemTransition: utils_func.noop,
37
- itemHeadingLevel: 2,
38
- itemClassName: "",
39
- itemHeaderClassName: "",
40
- itemButtonClassName: "",
41
- itemBodyContainerClassName: "",
42
- itemBodyClassName: ""
43
- };
44
- const defaultItemConfig = {
45
- id: "",
46
- destroyOnHide: defaultAccordionConfig.itemDestroyOnHide,
47
- disabled: false,
48
- visible: false,
49
- animated: defaultAccordionConfig.itemAnimated,
50
- transition: defaultAccordionConfig.itemTransition,
51
- onShown: utils_func.noop,
52
- onHidden: utils_func.noop,
53
- onVisibleChange: utils_func.noop,
54
- className: defaultAccordionConfig.itemClassName,
55
- headerClassName: defaultAccordionConfig.itemHeaderClassName,
56
- buttonClassName: defaultAccordionConfig.itemButtonClassName,
57
- bodyContainerClassName: defaultAccordionConfig.itemBodyContainerClassName,
58
- bodyClassName: defaultAccordionConfig.itemBodyClassName,
59
- headingLevel: defaultAccordionConfig.itemHeadingLevel
60
- };
61
- const coreAccordionItemProps = Object.keys(defaultItemConfig);
62
- function getAccordionDefaultConfig() {
63
- return { ...defaultAccordionConfig };
64
- }
65
- const configAccordionValidator = {
66
- closeOthers: utils_writables.typeBoolean,
67
- onItemShown: utils_writables.typeFunction,
68
- onItemHidden: utils_writables.typeFunction,
69
- className: utils_writables.typeString,
70
- itemDestroyOnHide: utils_writables.typeBoolean,
71
- itemAnimated: utils_writables.typeBoolean,
72
- itemTransition: utils_writables.typeFunction,
73
- itemClassName: utils_writables.typeString,
74
- itemHeaderClassName: utils_writables.typeString,
75
- itemButtonClassName: utils_writables.typeString,
76
- itemBodyContainerClassName: utils_writables.typeString,
77
- itemBodyClassName: utils_writables.typeString,
78
- itemHeadingLevel: utils_writables.createTypeEnum([1, 2, 3, 4, 5, 6])
79
- };
80
- const configItemValidator = {
81
- id: utils_writables.typeString,
82
- destroyOnHide: utils_writables.typeBoolean,
83
- disabled: utils_writables.typeBoolean,
84
- visible: utils_writables.typeBoolean,
85
- animated: utils_writables.typeBoolean,
86
- transition: utils_writables.typeFunction,
87
- onShown: utils_writables.typeFunction,
88
- onHidden: utils_writables.typeFunction,
89
- onVisibleChange: utils_writables.typeFunction,
90
- className: utils_writables.typeString,
91
- headerClassName: utils_writables.typeString,
92
- buttonClassName: utils_writables.typeString,
93
- bodyContainerClassName: utils_writables.typeString,
94
- bodyClassName: utils_writables.typeString,
95
- headingLevel: utils_writables.createTypeEnum([1, 2, 3, 4, 5, 6])
96
- };
97
- function createAccordionItem(config) {
98
- const [
99
- {
100
- bodyClassName$,
101
- buttonClassName$,
102
- bodyContainerClassName$,
103
- headerClassName$,
104
- animated$,
105
- transition$,
106
- destroyOnHide$,
107
- onShown$,
108
- onHidden$,
109
- onVisibleChange$,
110
- visible$,
111
- id$: _dirtyId$,
112
- disabled$,
113
- ...stateProps
114
- },
115
- patch
116
- ] = utils_stores.writablesForProps(defaultItemConfig, config, configItemValidator);
117
- const initDone$ = tansu.writable(false);
118
- const id$ = utils_stores.idWithDefault(_dirtyId$);
119
- const transition = services_transitions_baseTransitions.createTransition({
120
- props: {
121
- transition: transition$,
122
- visible: visible$,
123
- onVisibleChange: onVisibleChange$,
124
- animated: animated$,
125
- animatedOnInit: false,
126
- initDone: initDone$,
127
- onHidden: () => {
128
- onHidden$()();
129
- },
130
- onShown: () => {
131
- onShown$()();
132
- }
133
- }
134
- });
135
- const shouldBeInDOM$ = tansu.computed(() => !destroyOnHide$() || !transition.stores.hidden$());
136
- const toggleDirective = utils_directive.createAttributesDirective(() => ({
137
- attributes: {
138
- id: tansu.computed(() => `${id$()}-toggle`),
139
- "aria-expanded": tansu.computed(() => `${visible$()}`),
140
- "aria-disabled": tansu.computed(() => `${disabled$()}`),
141
- "aria-controls": tansu.computed(() => `${id$()}-body-container`),
142
- disabled: disabled$
143
- },
144
- classNames: { collapsed: tansu.computed(() => !visible$()) },
145
- events: {
146
- click: () => {
147
- if (!disabled$()) {
148
- void transition.api.toggle();
149
- }
150
- }
151
- }
152
- }));
153
- const transitionDirective = transition.directives.directive;
154
- const bodyContainerAttrsDirective = utils_directive.createAttributesDirective(() => ({
155
- attributes: {
156
- id: tansu.computed(() => `${id$()}-body-container`),
157
- class: bodyContainerClassName$,
158
- "aria-labelledby": tansu.computed(() => `${id$()}-toggle`),
159
- role: tansu.readable("region")
160
- }
161
- }));
162
- return {
163
- ...utils_stores.stateStores({
164
- visible$,
165
- id$,
166
- shouldBeInDOM$,
167
- disabled$,
168
- bodyClassName$,
169
- buttonClassName$,
170
- bodyContainerClassName$,
171
- headerClassName$,
172
- ...stateProps
173
- }),
174
- patch,
175
- api: {
176
- initDone: () => {
177
- initDone$.set(true);
178
- },
179
- collapse: transition.api.hide,
180
- expand: transition.api.show,
181
- toggle: (animated) => transition.api.toggle(void 0, animated)
182
- },
183
- directives: {
184
- toggleDirective,
185
- buttonDirective: utils_directive.mergeDirectives(
186
- toggleDirective,
187
- utils_directive.createAttributesDirective(() => ({
188
- attributes: {
189
- type: tansu.readable("button"),
190
- class: buttonClassName$
191
- }
192
- }))
193
- ),
194
- headerDirective: utils_directive.createAttributesDirective(() => ({ attributes: { class: headerClassName$ } })),
195
- bodyDirective: utils_directive.createAttributesDirective(() => ({ attributes: { class: bodyClassName$ } })),
196
- transitionDirective,
197
- bodyContainerAttrsDirective,
198
- bodyContainerDirective: utils_directive.mergeDirectives(transitionDirective, bodyContainerAttrsDirective),
199
- itemDirective: utils_func.noop
200
- }
201
- };
202
- }
203
- function factoryCreateAccordion(itemFactory = createAccordionItem, accordionItemProps = coreAccordionItemProps, accordionConfig = defaultAccordionConfig, accordionValidator = configAccordionValidator) {
204
- return utils_widget.createWidgetFactory("accordion", (config) => {
205
- const [writables, patch] = utils_stores.writablesForProps(accordionConfig, config, accordionValidator);
206
- const { closeOthers$, onItemShown$, onItemHidden$, className$ } = writables;
207
- const accordionItemConfig = Object.fromEntries(
208
- Object.entries(writables).filter((entry) => entry[0].startsWith("item")).map((entry) => [entry[0].charAt(4).toLowerCase() + entry[0].slice(5, -1), entry[1]])
209
- );
210
- const itemWidgets$ = utils_directive.registrationArray();
211
- const openItems$ = tansu.computed(() => {
212
- const openItems = [];
213
- itemWidgets$().forEach((item) => {
214
- if (item.stores.visible$()) {
215
- openItems.push(item.stores.id$());
216
- }
217
- });
218
- return openItems;
219
- });
220
- const oldOpenItem$ = tansu.writable(openItems$()[0]);
221
- const checkCloseOthersAction$ = tansu.computed(() => {
222
- if (closeOthers$()) {
223
- adjustItemsCloseOthers(itemWidgets$(), openItems$(), oldOpenItem$());
224
- oldOpenItem$.set(openItems$()[0]);
225
- }
226
- });
227
- const action$ = tansu.computed(() => {
228
- checkCloseOthersAction$();
229
- });
230
- return {
231
- ...utils_stores.stateStores({ itemWidgets$, className$ }),
232
- patch,
233
- api: {
234
- expand: async (id, animated) => {
235
- await getItem(itemWidgets$(), id)?.api.expand(animated);
236
- },
237
- collapse: async (id, animated) => {
238
- await getItem(itemWidgets$(), id)?.api.collapse(animated);
239
- },
240
- toggle: async (id, animated) => {
241
- await getItem(itemWidgets$(), id)?.api.toggle(animated);
242
- },
243
- expandAll: async (animated) => {
244
- await Promise.all(itemWidgets$().map((i) => i.api.expand(animated)));
245
- },
246
- collapseAll: async (animated) => {
247
- await Promise.all(itemWidgets$().map((i) => i.api.collapse(animated)));
248
- },
249
- registerItem: (propsConfig) => {
250
- const itemProps = accordionItemProps;
251
- const config2 = utils_stores.mergeConfigStores(
252
- itemProps,
253
- utils_stores.normalizeConfigStores(itemProps, propsConfig?.config),
254
- accordionItemConfig
255
- );
256
- const [{ onHidden$, onShown$ }] = utils_stores.writablesForProps(
257
- {
258
- onHidden: defaultItemConfig.onHidden,
259
- onShown: defaultItemConfig.onShown
260
- },
261
- { config: config2, props: propsConfig?.props }
262
- );
263
- const item = itemFactory({
264
- config: config2,
265
- props: {
266
- ...propsConfig?.props,
267
- onHidden: tansu.asWritable(
268
- tansu.readable(() => {
269
- onItemHidden$()(item.stores.id$());
270
- onHidden$()?.();
271
- }),
272
- (val) => {
273
- onItemHidden$.set(val);
274
- }
275
- ),
276
- onShown: tansu.asWritable(
277
- tansu.readable(() => {
278
- onItemShown$()(item.stores.id$());
279
- onShown$()?.();
280
- }),
281
- (val) => {
282
- onItemShown$.set(val);
283
- }
284
- )
285
- }
286
- });
287
- item.directives.itemDirective = utils_directive.mergeDirectives(
288
- () => ({
289
- destroy: itemWidgets$.register(item)
290
- }),
291
- utils_directive.createAttributesDirective(() => ({
292
- attributes: { class: item.stores.className$, id: item.stores.id$ }
293
- }))
294
- );
295
- return item;
296
- }
297
- },
298
- directives: {
299
- accordionDirective: utils_directive.mergeDirectives(
300
- utils_directive.directiveSubscribe(action$),
301
- utils_directive.createAttributesDirective(() => ({
302
- attributes: { class: className$ },
303
- classNames: { "au-accordion": utils_stores.true$ }
304
- }))
305
- )
306
- }
307
- };
308
- });
309
- }
310
- const createAccordion = factoryCreateAccordion();
311
- exports.createAccordion = createAccordion;
312
- exports.createAccordionItem = createAccordionItem;
313
- exports.factoryCreateAccordion = factoryCreateAccordion;
314
- exports.getAccordionDefaultConfig = getAccordionDefaultConfig;