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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/.ai/docs/components/accordion/accessibility.md +45 -0
  2. package/.ai/docs/components/accordion/api.md +279 -0
  3. package/.ai/docs/components/accordion/developer.md +43 -0
  4. package/.ai/docs/components/accordion/guidelines.md +99 -0
  5. package/.ai/docs/components/accordion/overview.md +17 -0
  6. package/.ai/docs/components/alert/accessibility.md +24 -0
  7. package/.ai/docs/components/alert/api.md +65 -0
  8. package/.ai/docs/components/alert/developer.md +63 -0
  9. package/.ai/docs/components/alert/guidelines.md +62 -0
  10. package/.ai/docs/components/alert/overview.md +12 -0
  11. package/.ai/docs/components/button/accessibility.md +25 -0
  12. package/.ai/docs/components/button/api.md +71 -0
  13. package/.ai/docs/components/button/developer.md +52 -0
  14. package/.ai/docs/components/button/guidelines.md +75 -0
  15. package/.ai/docs/components/button/overview.md +15 -0
  16. package/.ai/docs/components/buttongroup/api.md +16 -0
  17. package/.ai/docs/components/buttongroup/developer.md +32 -0
  18. package/.ai/docs/components/drawer/accessibility.md +15 -0
  19. package/.ai/docs/components/drawer/api.md +56 -0
  20. package/.ai/docs/components/drawer/developer.md +36 -0
  21. package/.ai/docs/components/drawer/examples.md +9 -0
  22. package/.ai/docs/components/drawer/guidelines.md +58 -0
  23. package/.ai/docs/components/drawer/overview.md +19 -0
  24. package/.ai/docs/components/dropdown/accessibility.md +27 -0
  25. package/.ai/docs/components/dropdown/api.md +85 -0
  26. package/.ai/docs/components/dropdown/developer.md +59 -0
  27. package/.ai/docs/components/dropdown/guidelines.md +80 -0
  28. package/.ai/docs/components/dropdown/overview.md +16 -0
  29. package/.ai/docs/components/sidenav/accessibility.md +48 -0
  30. package/.ai/docs/components/sidenav/api.md +110 -0
  31. package/.ai/docs/components/sidenav/developer.md +14 -0
  32. package/.ai/docs/components/sidenav/guidelines.md +83 -0
  33. package/.ai/docs/components/sidenav/overview.md +16 -0
  34. package/.ai/docs/components/tooltip/accessibility.md +11 -0
  35. package/.ai/docs/components/tooltip/api.md +39 -0
  36. package/.ai/docs/components/tooltip/developer.md +16 -0
  37. package/.ai/docs/components/tooltip/guidelines.md +84 -0
  38. package/.ai/docs/components/tooltip/overview.md +23 -0
  39. package/.ai/docs/components/topnav/accessibility.md +51 -0
  40. package/.ai/docs/components/topnav/api.md +190 -0
  41. package/.ai/docs/components/topnav/developer.md +43 -0
  42. package/.ai/docs/components/topnav/guidelines.md +121 -0
  43. package/.ai/docs/components/topnav/overview.md +17 -0
  44. package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.html +75 -0
  45. package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.ts +27 -0
  46. package/.ai/docs/demos/accordion/basic/accordion-basic.html +16 -0
  47. package/.ai/docs/demos/accordion/basic/accordion-basic.ts +14 -0
  48. package/.ai/docs/demos/accordion/close-others/accordion-close-others.html +16 -0
  49. package/.ai/docs/demos/accordion/close-others/accordion-close-others.ts +14 -0
  50. package/.ai/docs/demos/accordion/interactive/accordion-interactive.html +84 -0
  51. package/.ai/docs/demos/accordion/interactive/accordion-interactive.ts +30 -0
  52. package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.html +126 -0
  53. package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.ts +33 -0
  54. package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.html +36 -0
  55. package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.ts +15 -0
  56. package/.ai/docs/demos/accordion/selectable/accordion-selectable.html +16 -0
  57. package/.ai/docs/demos/accordion/selectable/accordion-selectable.ts +14 -0
  58. package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.html +28 -0
  59. package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.ts +80 -0
  60. package/.ai/docs/demos/accordion/separator/accordion-separator.html +16 -0
  61. package/.ai/docs/demos/accordion/separator/accordion-separator.ts +14 -0
  62. package/.ai/docs/demos/alert/banner/alert-banner.html +15 -0
  63. package/.ai/docs/demos/alert/banner/alert-banner.ts +16 -0
  64. package/.ai/docs/demos/alert/basic/alert-basic.html +6 -0
  65. package/.ai/docs/demos/alert/basic/alert-basic.ts +9 -0
  66. package/.ai/docs/demos/alert/card/alert-card.html +15 -0
  67. package/.ai/docs/demos/alert/card/alert-card.ts +9 -0
  68. package/.ai/docs/demos/alert/dismissal/alert-dismissal.html +5 -0
  69. package/.ai/docs/demos/alert/dismissal/alert-dismissal.ts +27 -0
  70. package/.ai/docs/demos/alert/expandable/alert-expandable.html +9 -0
  71. package/.ai/docs/demos/alert/expandable/alert-expandable.ts +11 -0
  72. package/.ai/docs/demos/button/basic/button-basic.html +4 -0
  73. package/.ai/docs/demos/button/basic/button-basic.ts +9 -0
  74. package/.ai/docs/demos/button/disabled/button-disabled.html +18 -0
  75. package/.ai/docs/demos/button/disabled/button-disabled.ts +12 -0
  76. package/.ai/docs/demos/button/icons/button-icons.html +17 -0
  77. package/.ai/docs/demos/button/icons/button-icons.ts +10 -0
  78. package/.ai/docs/demos/button/surfaces/button-surfaces.html +13 -0
  79. package/.ai/docs/demos/button/surfaces/button-surfaces.ts +9 -0
  80. package/.ai/docs/demos/button/variants/button-variants.html +49 -0
  81. package/.ai/docs/demos/button/variants/button-variants.ts +9 -0
  82. package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.html +6 -0
  83. package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.ts +10 -0
  84. package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.html +6 -0
  85. package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.ts +10 -0
  86. package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.html +8 -0
  87. package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.ts +10 -0
  88. package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.html +19 -0
  89. package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.ts +10 -0
  90. package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.html +19 -0
  91. package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.ts +10 -0
  92. package/.ai/docs/demos/drawer/inline/drawer-inline-basic.html +46 -0
  93. package/.ai/docs/demos/drawer/inline/drawer-inline-basic.ts +33 -0
  94. package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.html +30 -0
  95. package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.ts +25 -0
  96. package/.ai/docs/demos/dropdown/basic/dropdown-basic.html +8 -0
  97. package/.ai/docs/demos/dropdown/basic/dropdown-basic.ts +15 -0
  98. package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.html +9 -0
  99. package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.ts +21 -0
  100. package/.ai/docs/demos/dropdown/split/dropdown-split.html +9 -0
  101. package/.ai/docs/demos/dropdown/split/dropdown-split.ts +11 -0
  102. package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.html +22 -0
  103. package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.ts +10 -0
  104. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/routes.ts +95 -0
  105. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.html +42 -0
  106. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.ts +12 -0
  107. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/routes.ts +41 -0
  108. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.html +34 -0
  109. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.ts +12 -0
  110. package/.ai/docs/demos/tooltip/basic/tooltip-basic.html +1 -0
  111. package/.ai/docs/demos/tooltip/basic/tooltip-basic.ts +10 -0
  112. package/.ai/docs/demos/tooltip/placements/tooltip-placements.html +35 -0
  113. package/.ai/docs/demos/tooltip/placements/tooltip-placements.ts +12 -0
  114. package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.html +5 -0
  115. package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.ts +10 -0
  116. package/.ai/docs/demos/topnav/brand/topnav-brand.ts +64 -0
  117. package/.ai/docs/demos/topnav/environment-banner/topnav-environment-banner.ts +20 -0
  118. package/.ai/docs/demos/topnav/navigation/routes.ts +35 -0
  119. package/.ai/docs/demos/topnav/navigation/topnav-navigation-flat.ts +67 -0
  120. package/.ai/docs/demos/topnav/navigation/topnav-navigation-tree.ts +82 -0
  121. package/.ai/docs/demos/topnav/quick-actions/notifications.ts +75 -0
  122. package/.ai/docs/demos/topnav/quick-actions/topnav-quick-actions.ts +108 -0
  123. package/.ai/docs/demos/topnav/quick-actions/user-account.ts +23 -0
  124. package/.ai/index.md +26 -0
  125. package/fesm2022/design-factory-angular-accordion.mjs +1153 -0
  126. package/fesm2022/design-factory-angular-accordion.mjs.map +1 -0
  127. package/fesm2022/design-factory-angular-alert.mjs +312 -0
  128. package/fesm2022/design-factory-angular-alert.mjs.map +1 -0
  129. package/fesm2022/design-factory-angular-breakpoints.mjs +53 -0
  130. package/fesm2022/design-factory-angular-breakpoints.mjs.map +1 -0
  131. package/fesm2022/design-factory-angular-button.mjs +240 -0
  132. package/fesm2022/design-factory-angular-button.mjs.map +1 -0
  133. package/fesm2022/design-factory-angular-buttongroup.mjs +75 -0
  134. package/fesm2022/design-factory-angular-buttongroup.mjs.map +1 -0
  135. package/fesm2022/design-factory-angular-drawer.mjs +76 -81
  136. package/fesm2022/design-factory-angular-drawer.mjs.map +1 -1
  137. package/fesm2022/design-factory-angular-dropdown.mjs +323 -0
  138. package/fesm2022/design-factory-angular-dropdown.mjs.map +1 -0
  139. package/fesm2022/design-factory-angular-form-field.mjs +287 -0
  140. package/fesm2022/design-factory-angular-form-field.mjs.map +1 -0
  141. package/fesm2022/design-factory-angular-icon.mjs +24 -0
  142. package/fesm2022/design-factory-angular-icon.mjs.map +1 -0
  143. package/fesm2022/design-factory-angular-input.mjs +34 -0
  144. package/fesm2022/design-factory-angular-input.mjs.map +1 -0
  145. package/fesm2022/design-factory-angular-internals.mjs +119 -39
  146. package/fesm2022/design-factory-angular-internals.mjs.map +1 -1
  147. package/fesm2022/design-factory-angular-separator.mjs +43 -0
  148. package/fesm2022/design-factory-angular-separator.mjs.map +1 -0
  149. package/fesm2022/design-factory-angular-sidenav.mjs +766 -438
  150. package/fesm2022/design-factory-angular-sidenav.mjs.map +1 -1
  151. package/fesm2022/design-factory-angular-slider.mjs +451 -0
  152. package/fesm2022/design-factory-angular-slider.mjs.map +1 -0
  153. package/fesm2022/design-factory-angular-theme.mjs +30 -20
  154. package/fesm2022/design-factory-angular-theme.mjs.map +1 -1
  155. package/fesm2022/design-factory-angular-toggle.mjs +172 -0
  156. package/fesm2022/design-factory-angular-toggle.mjs.map +1 -0
  157. package/fesm2022/design-factory-angular-tooltip.mjs +138 -0
  158. package/fesm2022/design-factory-angular-tooltip.mjs.map +1 -0
  159. package/fesm2022/design-factory-angular-topnav.mjs +635 -558
  160. package/fesm2022/design-factory-angular-topnav.mjs.map +1 -1
  161. package/package.json +61 -8
  162. package/schematics/collection.json +35 -0
  163. package/schematics/component-migration/accordion/constants.d.ts +10 -0
  164. package/schematics/component-migration/accordion/constants.js +46 -0
  165. package/schematics/component-migration/accordion/guide.md +257 -0
  166. package/schematics/component-migration/accordion/index.d.ts +2 -0
  167. package/schematics/component-migration/accordion/index.js +5 -0
  168. package/schematics/component-migration/accordion/migration.d.ts +2 -0
  169. package/schematics/component-migration/accordion/migration.js +13 -0
  170. package/schematics/component-migration/accordion/schema.json +25 -0
  171. package/schematics/component-migration/accordion/steps/accordion-imports.d.ts +3 -0
  172. package/schematics/component-migration/accordion/steps/accordion-imports.js +41 -0
  173. package/schematics/component-migration/accordion/steps/template-migration.d.ts +3 -0
  174. package/schematics/component-migration/accordion/steps/template-migration.js +554 -0
  175. package/schematics/component-migration/accordion/steps/title-content.d.ts +9 -0
  176. package/schematics/component-migration/accordion/steps/title-content.js +75 -0
  177. package/schematics/component-migration/ai/prompt.md +83 -0
  178. package/schematics/component-migration/alert/guide.md +246 -0
  179. package/schematics/component-migration/alert/index.d.ts +2 -0
  180. package/schematics/component-migration/alert/index.js +5 -0
  181. package/schematics/component-migration/alert/migration.d.ts +2 -0
  182. package/schematics/component-migration/alert/migration.js +50 -0
  183. package/schematics/component-migration/alert/schema.json +25 -0
  184. package/schematics/component-migration/alert/steps/alert-imports.d.ts +4 -0
  185. package/schematics/component-migration/alert/steps/alert-imports.js +97 -0
  186. package/schematics/component-migration/alert/steps/animation-input.d.ts +3 -0
  187. package/schematics/component-migration/alert/steps/animation-input.js +17 -0
  188. package/schematics/component-migration/alert/steps/close-output.d.ts +3 -0
  189. package/schematics/component-migration/alert/steps/close-output.js +17 -0
  190. package/schematics/component-migration/alert/steps/icon-directive-imports.d.ts +3 -0
  191. package/schematics/component-migration/alert/steps/icon-directive-imports.js +84 -0
  192. package/schematics/component-migration/alert/steps/icon-directive.d.ts +3 -0
  193. package/schematics/component-migration/alert/steps/icon-directive.js +10 -0
  194. package/schematics/component-migration/alert/steps/legacy-module-imports.d.ts +3 -0
  195. package/schematics/component-migration/alert/steps/legacy-module-imports.js +57 -0
  196. package/schematics/component-migration/alert/steps/programmatic-close.d.ts +3 -0
  197. package/schematics/component-migration/alert/steps/programmatic-close.js +44 -0
  198. package/schematics/component-migration/alert/steps/selector.d.ts +3 -0
  199. package/schematics/component-migration/alert/steps/selector.js +18 -0
  200. package/schematics/component-migration/alert/steps/static-classes.d.ts +3 -0
  201. package/schematics/component-migration/alert/steps/static-classes.js +97 -0
  202. package/schematics/component-migration/alert/steps/static-type.d.ts +3 -0
  203. package/schematics/component-migration/alert/steps/static-type.js +28 -0
  204. package/schematics/component-migration/alert/steps/template-reference.d.ts +3 -0
  205. package/schematics/component-migration/alert/steps/template-reference.js +15 -0
  206. package/schematics/component-migration/alert/steps/template-todos.d.ts +3 -0
  207. package/schematics/component-migration/alert/steps/template-todos.js +78 -0
  208. package/schematics/component-migration/button/guide.md +278 -0
  209. package/schematics/component-migration/button/index.d.ts +2 -0
  210. package/schematics/component-migration/button/index.js +5 -0
  211. package/schematics/component-migration/button/migration.d.ts +2 -0
  212. package/schematics/component-migration/button/migration.js +180 -0
  213. package/schematics/component-migration/button/schema.json +25 -0
  214. package/schematics/component-migration/button/steps/static-classes.d.ts +10 -0
  215. package/schematics/component-migration/button/steps/static-classes.js +128 -0
  216. package/schematics/component-migration/button/steps/template-todos.d.ts +19 -0
  217. package/schematics/component-migration/button/steps/template-todos.js +120 -0
  218. package/schematics/component-migration/button/types.d.ts +7 -0
  219. package/schematics/component-migration/button/types.js +2 -0
  220. package/schematics/component-migration/dropdown/guide.md +252 -0
  221. package/schematics/component-migration/dropdown/index.d.ts +2 -0
  222. package/schematics/component-migration/dropdown/index.js +5 -0
  223. package/schematics/component-migration/dropdown/migration.d.ts +2 -0
  224. package/schematics/component-migration/dropdown/migration.js +41 -0
  225. package/schematics/component-migration/dropdown/schema.json +25 -0
  226. package/schematics/component-migration/dropdown/steps/dropdown-imports.d.ts +3 -0
  227. package/schematics/component-migration/dropdown/steps/dropdown-imports.js +308 -0
  228. package/schematics/component-migration/dropdown/steps/template-attributes.d.ts +10 -0
  229. package/schematics/component-migration/dropdown/steps/template-attributes.js +57 -0
  230. package/schematics/component-migration/dropdown/steps/template-helpers.d.ts +20 -0
  231. package/schematics/component-migration/dropdown/steps/template-helpers.js +125 -0
  232. package/schematics/component-migration/dropdown/steps/template-imports.d.ts +22 -0
  233. package/schematics/component-migration/dropdown/steps/template-imports.js +12 -0
  234. package/schematics/component-migration/dropdown/steps/template-items.d.ts +7 -0
  235. package/schematics/component-migration/dropdown/steps/template-items.js +58 -0
  236. package/schematics/component-migration/dropdown/steps/template-menu.d.ts +14 -0
  237. package/schematics/component-migration/dropdown/steps/template-menu.js +107 -0
  238. package/schematics/component-migration/dropdown/steps/template-todos.d.ts +19 -0
  239. package/schematics/component-migration/dropdown/steps/template-todos.js +118 -0
  240. package/schematics/component-migration/dropdown/steps/template-toggle.d.ts +9 -0
  241. package/schematics/component-migration/dropdown/steps/template-toggle.js +70 -0
  242. package/schematics/component-migration/dropdown/steps/template-wrapper.d.ts +12 -0
  243. package/schematics/component-migration/dropdown/steps/template-wrapper.js +105 -0
  244. package/schematics/component-migration/index.d.ts +3 -0
  245. package/schematics/component-migration/index.js +26 -0
  246. package/schematics/component-migration/next-steps/index.d.ts +13 -0
  247. package/schematics/component-migration/next-steps/index.js +34 -0
  248. package/schematics/component-migration/registry.d.ts +1 -0
  249. package/schematics/component-migration/registry.js +15 -0
  250. package/schematics/component-migration/schema.json +20 -0
  251. package/schematics/component-migration/shared/ai-handoff.d.ts +2 -0
  252. package/schematics/component-migration/shared/ai-handoff.js +28 -0
  253. package/schematics/component-migration/shared/angular-component.d.ts +10 -0
  254. package/schematics/component-migration/shared/angular-component.js +125 -0
  255. package/schematics/component-migration/shared/button-visual-classes.d.ts +24 -0
  256. package/schematics/component-migration/shared/button-visual-classes.js +111 -0
  257. package/schematics/component-migration/shared/component-context.d.ts +7 -0
  258. package/schematics/component-migration/shared/component-context.js +24 -0
  259. package/schematics/component-migration/shared/component-imports.d.ts +45 -0
  260. package/schematics/component-migration/shared/component-imports.js +380 -0
  261. package/schematics/component-migration/shared/create-component-schematic.d.ts +3 -0
  262. package/schematics/component-migration/shared/create-component-schematic.js +55 -0
  263. package/schematics/component-migration/shared/import-edits.d.ts +11 -0
  264. package/schematics/component-migration/shared/import-edits.js +157 -0
  265. package/schematics/component-migration/shared/legacy-config-todos.d.ts +3 -0
  266. package/schematics/component-migration/shared/legacy-config-todos.js +90 -0
  267. package/schematics/component-migration/shared/migrate-project.d.ts +12 -0
  268. package/schematics/component-migration/shared/migrate-project.js +151 -0
  269. package/schematics/component-migration/shared/project-templates.d.ts +15 -0
  270. package/schematics/component-migration/shared/project-templates.js +43 -0
  271. package/schematics/component-migration/shared/scan-project.d.ts +3 -0
  272. package/schematics/component-migration/shared/scan-project.js +24 -0
  273. package/schematics/component-migration/shared/static-placement.d.ts +1 -0
  274. package/schematics/component-migration/shared/static-placement.js +45 -0
  275. package/schematics/component-migration/shared/template-edits.d.ts +28 -0
  276. package/schematics/component-migration/shared/template-edits.js +153 -0
  277. package/schematics/component-migration/shared/template-result.d.ts +3 -0
  278. package/schematics/component-migration/shared/template-result.js +11 -0
  279. package/schematics/component-migration/shared/testing.d.ts +13 -0
  280. package/schematics/component-migration/shared/testing.js +59 -0
  281. package/schematics/component-migration/shared/todo-comments.d.ts +10 -0
  282. package/schematics/component-migration/shared/todo-comments.js +81 -0
  283. package/schematics/component-migration/shared/types.d.ts +41 -0
  284. package/schematics/component-migration/shared/types.js +2 -0
  285. package/schematics/component-migration/tooltip/guide.md +196 -0
  286. package/schematics/component-migration/tooltip/index.d.ts +2 -0
  287. package/schematics/component-migration/tooltip/index.js +5 -0
  288. package/schematics/component-migration/tooltip/migration.d.ts +2 -0
  289. package/schematics/component-migration/tooltip/migration.js +50 -0
  290. package/schematics/component-migration/tooltip/schema.json +25 -0
  291. package/schematics/component-migration/tooltip/steps/template-attributes.d.ts +13 -0
  292. package/schematics/component-migration/tooltip/steps/template-attributes.js +266 -0
  293. package/schematics/component-migration/tooltip/steps/template-todos.d.ts +24 -0
  294. package/schematics/component-migration/tooltip/steps/template-todos.js +115 -0
  295. package/schematics/component-migration/tooltip/steps/tooltip-imports.d.ts +3 -0
  296. package/schematics/component-migration/tooltip/steps/tooltip-imports.js +79 -0
  297. package/schematics/component-migration/utils/component-resource-collector.d.ts +34 -0
  298. package/schematics/component-migration/utils/component-resource-collector.js +107 -0
  299. package/schematics/component-migration/utils/project_tsconfig_paths.d.ts +18 -0
  300. package/schematics/component-migration/utils/project_tsconfig_paths.js +105 -0
  301. package/schematics/component-migration/utils/typescript/compiler_host.d.ts +44 -0
  302. package/schematics/component-migration/utils/typescript/compiler_host.js +87 -0
  303. package/schematics/component-migration/utils/typescript/decorators.d.ts +22 -0
  304. package/schematics/component-migration/utils/typescript/decorators.js +41 -0
  305. package/schematics/component-migration/utils/typescript/functions.d.ts +14 -0
  306. package/schematics/component-migration/utils/typescript/functions.js +20 -0
  307. package/schematics/component-migration/utils/typescript/imports.d.ts +17 -0
  308. package/schematics/component-migration/utils/typescript/imports.js +110 -0
  309. package/schematics/component-migration/utils/typescript/parse_tsconfig.d.ts +9 -0
  310. package/schematics/component-migration/utils/typescript/parse_tsconfig.js +29 -0
  311. package/schematics/component-migration/utils/typescript/property-name.d.ts +13 -0
  312. package/schematics/component-migration/utils/typescript/property-name.js +22 -0
  313. package/schematics/package.json +3 -0
  314. package/types/design-factory-angular-accordion.d.ts +553 -0
  315. package/types/design-factory-angular-alert.d.ts +166 -0
  316. package/types/design-factory-angular-breakpoints.d.ts +13 -0
  317. package/types/design-factory-angular-button.d.ts +166 -0
  318. package/types/design-factory-angular-buttongroup.d.ts +45 -0
  319. package/types/design-factory-angular-drawer.d.ts +19 -26
  320. package/types/design-factory-angular-dropdown.d.ts +148 -0
  321. package/types/design-factory-angular-form-field.d.ts +122 -0
  322. package/types/design-factory-angular-icon.d.ts +11 -0
  323. package/types/design-factory-angular-input.d.ts +16 -0
  324. package/types/design-factory-angular-internals.d.ts +78 -19
  325. package/types/design-factory-angular-separator.d.ts +29 -0
  326. package/types/design-factory-angular-sidenav.d.ts +114 -17
  327. package/types/design-factory-angular-slider.d.ts +239 -0
  328. package/types/design-factory-angular-toggle.d.ts +93 -0
  329. package/types/design-factory-angular-tooltip.d.ts +113 -0
  330. package/types/design-factory-angular-topnav.d.ts +47 -52
  331. package/drawer/README.md +0 -54
@@ -0,0 +1,95 @@
1
+ import { Component } from '@angular/core';
2
+ import type { Routes } from '@angular/router';
3
+
4
+ @Component({
5
+ template: `Home Page`
6
+ })
7
+ export class Home {}
8
+
9
+ @Component({
10
+ template: `Sub Link 1 Page`
11
+ })
12
+ export class SubLink1 {}
13
+
14
+ @Component({
15
+ template: `Sub Sub Link 1 Page`
16
+ })
17
+ export class SubSubLink1 {}
18
+
19
+ @Component({
20
+ template: `Sub Link 2 Page`
21
+ })
22
+ export class SubLink2 {}
23
+
24
+ @Component({
25
+ template: `Sub Sub Link 2 Page`
26
+ })
27
+ export class SubSubLink2 {}
28
+
29
+ @Component({
30
+ template: `Link 1 Page`
31
+ })
32
+ export class Link1 {}
33
+
34
+ @Component({
35
+ template: `Link 2 Page`
36
+ })
37
+ export class Link2 {}
38
+
39
+ @Component({
40
+ template: `Link 3 Page`
41
+ })
42
+ export class Link3 {}
43
+
44
+ @Component({
45
+ template: `Link 4 Page`
46
+ })
47
+ export class Link4 {}
48
+
49
+ @Component({
50
+ template: `Link 5 Page`
51
+ })
52
+ export class Link5 {}
53
+
54
+ @Component({
55
+ template: `Link 6 Page`
56
+ })
57
+ export class Link6 {}
58
+
59
+ @Component({
60
+ template: `Link 7 Page`
61
+ })
62
+ export class Link7 {}
63
+
64
+ @Component({
65
+ template: `Link 8 Page`
66
+ })
67
+ export class Link8 {}
68
+
69
+ @Component({
70
+ template: `Link 9 Page`
71
+ })
72
+ export class Link9 {}
73
+
74
+ @Component({
75
+ template: `Link 10 Page`
76
+ })
77
+ export class Link10 {}
78
+
79
+ export const childRoutes: Routes = [
80
+ { path: '', component: Home },
81
+ { path: 'item-1/sub-link-1', component: SubLink1 },
82
+ { path: 'item-1/sub-item-1/sub-sub-link-1', component: SubSubLink1 },
83
+ { path: 'item-2/sub-link-2', component: SubLink2 },
84
+ { path: 'item-2/sub-item-2/sub-sub-link-2', component: SubSubLink2 },
85
+ { path: 'link-1', component: Link1 },
86
+ { path: 'link-2', component: Link2 },
87
+ { path: 'link-3', component: Link3 },
88
+ { path: 'link-4', component: Link4 },
89
+ { path: 'link-5', component: Link5 },
90
+ { path: 'link-6', component: Link6 },
91
+ { path: 'link-7', component: Link7 },
92
+ { path: 'link-8', component: Link8 },
93
+ { path: 'link-9', component: Link9 },
94
+ { path: 'link-10', component: Link10 }
95
+ ];
@@ -0,0 +1,42 @@
1
+ <!-- such a div is used to content the whole app including sidenav and topnav -->
2
+ <div class="df-app-container d-flex flex-column w-100 vh-100">
3
+ <df-topnav
4
+ mainNavStyle="mirror"
5
+ showToggle
6
+ [navExpanded]="!sidenav.isMinimized()"
7
+ (navExpandedChange)="sidenav.toggleMinimize(!$event)"
8
+ >
9
+ <df-topnav-brand product="Design Factory" />
10
+ </df-topnav>
11
+
12
+ <div class="d-flex flex-grow-1 w-100" style="min-height: 0">
13
+ <df-sidenav #sidenav>
14
+ <df-sidenav-item label="Item 1">
15
+ <df-sidenav-link label="Home" linkPath="." [routerLinkActiveOptions]="{ exact: true }" />
16
+ <df-sidenav-item label="Sub item 1">
17
+ <df-sidenav-link label="Sub Sub Link 1" linkPath="./item-1/sub-item-1/sub-sub-link-1" />
18
+ </df-sidenav-item>
19
+ </df-sidenav-item>
20
+ <df-sidenav-item label="Item 2">
21
+ <df-sidenav-link label="Sub Link 2" linkPath="./item-2/sub-link-2" />
22
+ <df-sidenav-item label="Sub item 2">
23
+ <df-sidenav-link label="Sub Sub Link 2" linkPath="./item-2/sub-item-2/sub-sub-link-2" />
24
+ </df-sidenav-item>
25
+ </df-sidenav-item>
26
+ <df-sidenav-link label="Link 1" linkPath="./link-1" />
27
+ <df-sidenav-link label="Link 2" linkPath="./link-2" />
28
+ <df-sidenav-link label="Link 3" linkPath="./link-3" />
29
+ <df-sidenav-link label="Link 4" linkPath="./link-4" />
30
+ <df-sidenav-link label="Link 5" linkPath="./link-5" />
31
+ <df-sidenav-link label="Link 6" linkPath="./link-6" />
32
+ <df-sidenav-link label="Link 7" linkPath="./link-7" />
33
+ <df-sidenav-link label="Link 8" linkPath="./link-8" />
34
+ <df-sidenav-link label="Link 9" linkPath="./link-9" />
35
+ <df-sidenav-link label="Link 10" linkPath="./link-10" />
36
+ </df-sidenav>
37
+ <main class="main-content p-7">
38
+ <h1>Main content</h1>
39
+ <router-outlet />
40
+ </main>
41
+ </div>
42
+ </div>
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import { RouterOutlet } from '@angular/router';
3
+ import { DfSidenavComponent, DfSidenavItemComponent, DfSidenavLinkComponent } from '@design-factory/angular/sidenav';
4
+ import { DfTopNav, DfTopNavBrand } from '@design-factory/angular/topnav';
5
+ export { childRoutes } from './routes';
6
+
7
+ @Component({
8
+ selector: 'df-demo-sidenav-basic-no-icon',
9
+ templateUrl: './sidenav-basic-no-icon.html',
10
+ imports: [DfSidenavComponent, DfSidenavItemComponent, DfSidenavLinkComponent, DfTopNav, DfTopNavBrand, RouterOutlet]
11
+ })
12
+ export class DfDemoSidenavBasicNoIcon {}
@@ -0,0 +1,41 @@
1
+ import { Component } from '@angular/core';
2
+ import type { Routes } from '@angular/router';
3
+
4
+ @Component({
5
+ template: `Home Page`
6
+ })
7
+ export class Home {}
8
+
9
+ @Component({
10
+ template: `Sub Link 1 Page`
11
+ })
12
+ export class SubLink1 {}
13
+
14
+ @Component({
15
+ template: `Sub Sub Link 1 Page`
16
+ })
17
+ export class SubSubLink1 {}
18
+
19
+ @Component({
20
+ template: `Sub Link 2 Page`
21
+ })
22
+ export class SubLink2 {}
23
+
24
+ @Component({
25
+ template: `Sub Sub Link 2 Page`
26
+ })
27
+ export class SubSubLink2 {}
28
+
29
+ @Component({
30
+ template: `Link 1 Page`
31
+ })
32
+ export class Link1 {}
33
+
34
+ export const childRoutes: Routes = [
35
+ { path: '', component: Home },
36
+ { path: 'item-1/sub-link-1', component: SubLink1 },
37
+ { path: 'item-1/sub-item-1/sub-sub-link-1', component: SubSubLink1 },
38
+ { path: 'item-2/sub-link-2', component: SubLink2 },
39
+ { path: 'item-2/sub-item-2/sub-sub-link-2', component: SubSubLink2 },
40
+ { path: 'link-1', component: Link1 }
41
+ ];
@@ -0,0 +1,34 @@
1
+ <!-- such a div is used to content the whole app including sidenav and topnav -->
2
+ <div class="df-app-container d-flex flex-column w-100 vh-100">
3
+ <df-topnav
4
+ mainNavStyle="mirror"
5
+ showToggle
6
+ [navExpanded]="!sidenav.isMinimized()"
7
+ (navExpandedChange)="sidenav.toggleMinimize(!$event)"
8
+ >
9
+ <df-topnav-brand product="Design Factory" />
10
+ </df-topnav>
11
+
12
+ <div class="d-flex flex-grow-1 w-100" style="min-height: 0">
13
+ <df-sidenav #sidenav class="df-sidenav-light-sky">
14
+ <df-sidenav-item label="Item 1" icon="fa-home">
15
+ <df-sidenav-link label="Home" linkPath="." [routerLinkActiveOptions]="{ exact: true }" />
16
+ <df-sidenav-link label="Sub Link 1" linkPath="./item-1/sub-link-1" />
17
+ <df-sidenav-item label="Sub item 1">
18
+ <df-sidenav-link label="Sub Sub Link 1" linkPath="./item-1/sub-item-1/sub-sub-link-1" />
19
+ </df-sidenav-item>
20
+ </df-sidenav-item>
21
+ <df-sidenav-item label="Item 2" icon="fa-cheese-swiss">
22
+ <df-sidenav-link label="Sub Link 2" linkPath="./item-2/sub-link-2" />
23
+ <df-sidenav-item label="Sub item 2">
24
+ <df-sidenav-link label="Sub Sub Link 2" linkPath="./item-2/sub-item-2/sub-sub-link-2" />
25
+ </df-sidenav-item>
26
+ </df-sidenav-item>
27
+ <df-sidenav-link label="Link 1" linkPath="./link-1" icon="fa-star" />
28
+ </df-sidenav>
29
+ <main class="main-content p-7">
30
+ <h1>Main content</h1>
31
+ <router-outlet />
32
+ </main>
33
+ </div>
34
+ </div>
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import { RouterOutlet } from '@angular/router';
3
+ import { DfSidenavComponent, DfSidenavItemComponent, DfSidenavLinkComponent } from '@design-factory/angular/sidenav';
4
+ import { DfTopNav, DfTopNavBrand } from '@design-factory/angular/topnav';
5
+ export { childRoutes } from './routes';
6
+
7
+ @Component({
8
+ selector: 'df-demo-sidenav-basic-with-icon',
9
+ templateUrl: './sidenav-basic-with-icon.html',
10
+ imports: [DfSidenavComponent, DfSidenavItemComponent, DfSidenavLinkComponent, DfTopNav, DfTopNavBrand, RouterOutlet]
11
+ })
12
+ export class DfDemoSidenavBasicWithIcon {}
@@ -0,0 +1 @@
1
+ <button dfButton appearance="outline" dfTooltip="Short, helpful hint">Button</button>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfTooltip } from '@design-factory/angular/tooltip';
4
+
5
+ @Component({
6
+ selector: 'df-demo-tooltip-basic',
7
+ templateUrl: './tooltip-basic.html',
8
+ imports: [DfButton, DfTooltip]
9
+ })
10
+ export class DfDemoTooltipBasic {}
@@ -0,0 +1,35 @@
1
+ <p>Recommended (don't specify a placement):</p>
2
+ <div class="d-flex flex-wrap justify-content-center gap-3 mb-5">
3
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent">default</button>
4
+ </div>
5
+
6
+ <p><code>'auto'</code>, <code>'vertical'</code> and <code>'horizontal'</code> shortcuts:</p>
7
+ <div class="d-flex flex-wrap justify-content-center gap-3 mb-5">
8
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="auto">auto</button>
9
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="vertical">vertical</button>
10
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="horizontal">horizontal</button>
11
+ </div>
12
+
13
+ <p>Vertical placements:</p>
14
+ <div class="d-flex flex-wrap justify-content-center gap-3 mb-5">
15
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="top">top</button>
16
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="top-start">top-start</button>
17
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="top-end">top-end</button>
18
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="bottom">bottom</button>
19
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="bottom-start">
20
+ bottom-start
21
+ </button>
22
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="bottom-end">bottom-end</button>
23
+ </div>
24
+
25
+ <p>Horizontal placements:</p>
26
+ <div class="d-flex flex-column align-items-center gap-3">
27
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="end">end</button>
28
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="end-end">end-end</button>
29
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="end-start">end-start</button>
30
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="start">start</button>
31
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="start-end">start-end</button>
32
+ <button dfButton appearance="outline" [dfTooltip]="tooltipContent" dfTooltipPlacement="start-start">
33
+ start-start
34
+ </button>
35
+ </div>
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfTooltip } from '@design-factory/angular/tooltip';
4
+
5
+ @Component({
6
+ selector: 'df-demo-tooltip-placements',
7
+ templateUrl: './tooltip-placements.html',
8
+ imports: [DfButton, DfTooltip]
9
+ })
10
+ export class DfDemoTooltipPlacements {
11
+ readonly tooltipContent = 'This is a fairly long tooltip message so the placement offset is easy to see.';
12
+ }
@@ -0,0 +1,5 @@
1
+ <div class="d-flex flex-column flex-sm-row align-items-start gap-3">
2
+ <button dfButton appearance="outline" dfTooltip="Small tooltip" dfTooltipSize="sm">Small</button>
3
+ <button dfButton appearance="outline" dfTooltip="Medium tooltip">Medium</button>
4
+ <button dfButton appearance="outline" dfTooltip="Large tooltip" dfTooltipSize="lg">Large</button>
5
+ </div>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfTooltip } from '@design-factory/angular/tooltip';
4
+
5
+ @Component({
6
+ selector: 'df-demo-tooltip-sizes',
7
+ templateUrl: './tooltip-sizes.html',
8
+ imports: [DfButton, DfTooltip]
9
+ })
10
+ export class DfDemoTooltipSizes {}
@@ -0,0 +1,64 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { disabled, form, FormField } from '@angular/forms/signals';
3
+ import { DfAppContainer, DfTopNav, DfTopNavBrand, DfTopNavBrandLinkContent } from '@design-factory/angular/topnav';
4
+
5
+ @Component({
6
+ selector: 'df-demo-topnav-basic',
7
+ template: `
8
+ <df-app-container>
9
+ <df-topnav>
10
+ <df-topnav-brand
11
+ product="Design Factory"
12
+ [module]="showModule() ? 'My Module' : undefined"
13
+ [amaudeusLogoVector]="showVectorLogo()"
14
+ href="."
15
+ >
16
+ @if (showCustomLink()) {
17
+ <ng-template dfTopNavBrandLinkContent>
18
+ <div aria-hidden="true" class="outpayced-logo"></div>
19
+ <span>Checkout</span>
20
+ </ng-template>
21
+ }
22
+ </df-topnav-brand>
23
+ </df-topnav>
24
+ <main class="p-4 p-md-7">
25
+ <h3>Options</h3>
26
+ <form class="form-sm">
27
+ <div class="form-check form-switch">
28
+ <input class="form-check-input" [formField]="showModuleForm" type="checkbox" id="showModule" />
29
+ <label for="showModule" class="form-check-label">Show module</label>
30
+ </div>
31
+ <div class="form-check form-switch">
32
+ <input class="form-check-input" [formField]="showCustomLinkForm" type="checkbox" id="showCustom" />
33
+ <label for="showCustom" class="form-check-label">Show custom look</label>
34
+ </div>
35
+ <div class="form-check form-switch">
36
+ <input class="form-check-input" [formField]="showVectorLogoForm" type="checkbox" id="showVectorLogo" />
37
+ <label for="showVectorLogo" class="form-check-label">Show vector logo</label>
38
+ </div>
39
+ </form>
40
+ </main>
41
+ </df-app-container>
42
+ `,
43
+ styles: `
44
+ .outpayced-logo {
45
+ width: 97px;
46
+ height: 30px;
47
+ mask-image: url('/assets/img/components/topnav/demos/brand/outpayced-logo.svg');
48
+ background-color: currentColor;
49
+ }
50
+ `,
51
+ imports: [DfAppContainer, DfTopNav, DfTopNavBrand, DfTopNavBrandLinkContent, FormField]
52
+ })
53
+ export class DfDemoTopNavBrand {
54
+ readonly showModule = signal(false);
55
+ readonly showModuleForm = form(this.showModule);
56
+
57
+ readonly showCustomLink = signal(false);
58
+ readonly showCustomLinkForm = form(this.showCustomLink);
59
+
60
+ readonly showVectorLogo = signal(false);
61
+ readonly showVectorLogoForm = form(this.showVectorLogo, (schemaPath) => {
62
+ disabled(schemaPath, { when: () => this.showCustomLink() });
63
+ });
64
+ }
@@ -0,0 +1,20 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfAppContainer, DfEnvBanner, DfTopNav, DfTopNavBrand } from '@design-factory/angular/topnav';
3
+
4
+ @Component({
5
+ selector: 'df-demo-topnav-environment-banner',
6
+ template: `
7
+ <df-app-container>
8
+ <df-topnav>
9
+ <df-topnav-brand product="Design Factory" href="." />
10
+ </df-topnav>
11
+ <df-env-banner>Test Environment</df-env-banner>
12
+ <main class="p-4 p-md-7">
13
+ <h3>Content</h3>
14
+ <p>Page content goes here</p>
15
+ </main>
16
+ </df-app-container>
17
+ `,
18
+ imports: [DfAppContainer, DfTopNav, DfTopNavBrand, DfEnvBanner]
19
+ })
20
+ export class DfDemoTopNavEnvironmentBanner {}
@@ -0,0 +1,35 @@
1
+ import { Component } from '@angular/core';
2
+ import type { Routes } from '@angular/router';
3
+
4
+ @Component({
5
+ template: `Home Page`
6
+ })
7
+ export class Home {}
8
+
9
+ @Component({
10
+ template: `Features Page`
11
+ })
12
+ export class Features {}
13
+
14
+ @Component({
15
+ template: `Policy Page`
16
+ })
17
+ export class Policy {}
18
+
19
+ @Component({
20
+ template: `Help Page`
21
+ })
22
+ export class Help {}
23
+
24
+ @Component({
25
+ template: `Blog Page`
26
+ })
27
+ export class Blog {}
28
+
29
+ export const childRoutes: Routes = [
30
+ { path: '', component: Home },
31
+ { path: 'features', component: Features },
32
+ { path: 'policy', component: Policy },
33
+ { path: 'help', component: Help },
34
+ { path: 'blog', component: Blog }
35
+ ];
@@ -0,0 +1,67 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { form, FormField } from '@angular/forms/signals';
3
+ import { RouterOutlet } from '@angular/router';
4
+ import {
5
+ DfAppContainer,
6
+ DfTopNav,
7
+ DfTopNavBrand,
8
+ DfTopNavNavigation,
9
+ DfTopNavNavigationLink
10
+ } from '@design-factory/angular/topnav';
11
+ export { childRoutes } from './routes';
12
+
13
+ @Component({
14
+ selector: 'df-demo-topnav-navigation-flat',
15
+ template: `
16
+ <df-app-container>
17
+ <df-topnav>
18
+ <df-topnav-brand product="Design Factory" href="." />
19
+ <df-topnav-navigation>
20
+ <df-topnav-navigation-link routerLink="." label="Home" [routerLinkActiveOptions]="{ exact: true }" />
21
+ <df-topnav-navigation-link routerLink="./features" label="Features" />
22
+ <df-topnav-navigation-link href="https://amadeus.com/en" label="Amadeus.com" />
23
+ @if (showFlatSuperheader()) {
24
+ <df-topnav-navigation-link routerLink="./policy" label="Policy" />
25
+ <df-topnav-navigation-link routerLink="./help" label="Help" />
26
+ <df-topnav-navigation-link routerLink="./blog" label="Blog" />
27
+ }
28
+ </df-topnav-navigation>
29
+ </df-topnav>
30
+ <main class="p-4 p-md-7">
31
+ <div class="row">
32
+ <div class="col">
33
+ <h3>Options</h3>
34
+ <form class="form-sm">
35
+ <div class="form-check form-switch">
36
+ <input
37
+ class="form-check-input"
38
+ [formField]="showFlatSuperheaderForm"
39
+ type="checkbox"
40
+ id="showFlatSuperheader"
41
+ />
42
+ <label for="showFlatSuperheader" class="form-check-label">Show layout with many links</label>
43
+ </div>
44
+ </form>
45
+ </div>
46
+ <div class="col">
47
+ <h3>Page content</h3>
48
+ <router-outlet />
49
+ </div>
50
+ </div>
51
+ </main>
52
+ </df-app-container>
53
+ `,
54
+ imports: [
55
+ DfAppContainer,
56
+ DfTopNav,
57
+ DfTopNavBrand,
58
+ DfTopNavNavigation,
59
+ DfTopNavNavigationLink,
60
+ FormField,
61
+ RouterOutlet
62
+ ]
63
+ })
64
+ export class DfDemoTopNavNavigationFlat {
65
+ readonly showFlatSuperheader = signal(false);
66
+ readonly showFlatSuperheaderForm = form(this.showFlatSuperheader);
67
+ }
@@ -0,0 +1,82 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { form, FormField } from '@angular/forms/signals';
3
+ import { RouterOutlet } from '@angular/router';
4
+ import {
5
+ DfAppContainer,
6
+ DfTopNav,
7
+ DfTopNavBrand,
8
+ DfTopNavNavigation,
9
+ DfTopNavNavigationItem,
10
+ DfTopNavNavigationLink
11
+ } from '@design-factory/angular/topnav';
12
+ export { childRoutes } from './routes';
13
+
14
+ @Component({
15
+ selector: 'df-demo-topnav-navigation-tree',
16
+ template: `
17
+ <df-app-container>
18
+ <df-topnav [mode]="showDropdown() ? 'dropdown' : 'sidenav'">
19
+ <df-topnav-brand product="Design Factory" href="." />
20
+ <df-topnav-navigation>
21
+ <df-topnav-navigation-link routerLink="." label="Home" [routerLinkActiveOptions]="{ exact: true }" />
22
+ <df-topnav-navigation-item routerLink="./features" label="Features">
23
+ <df-topnav-navigation-link routerLink="./features/first" label="First Feature" />
24
+ <df-topnav-navigation-link routerLink="./features/second" label="Second Feature" />
25
+ </df-topnav-navigation-item>
26
+ <df-topnav-navigation-link routerLink="./pricing" label="Pricing" />
27
+ @if (showFlatSuperheader()) {
28
+ <df-topnav-navigation-link routerLink="./policy" label="Policy" />
29
+ <df-topnav-navigation-link routerLink="./help" label="Help" />
30
+ <df-topnav-navigation-item routerLink="./blog" label="Blog">
31
+ <df-topnav-navigation-link routerLink="./blog/2026-02-26" label="End of Chinese New Year" />
32
+ <df-topnav-navigation-link routerLink="./blog/2026-01-01" label="Restrospective of 2025" />
33
+ </df-topnav-navigation-item>
34
+ }
35
+ </df-topnav-navigation>
36
+ </df-topnav>
37
+ <main class="p-4 p-md-7">
38
+ <div class="row">
39
+ <div class="col">
40
+ <h3>Options</h3>
41
+ <form class="form-sm">
42
+ <div class="form-check form-switch">
43
+ <input
44
+ class="form-check-input"
45
+ [formField]="showFlatSuperheaderForm"
46
+ type="checkbox"
47
+ id="showFlatSuperheader"
48
+ />
49
+ <label for="showFlatSuperheader" class="form-check-label">Show layout with many links</label>
50
+ </div>
51
+ <div class="form-check form-switch">
52
+ <input class="form-check-input" [formField]="showDropdownForm" type="checkbox" id="showDropdown" />
53
+ <label for="showDropdown" class="form-check-label">Use dropdown mode</label>
54
+ </div>
55
+ </form>
56
+ </div>
57
+ <div class="col">
58
+ <h3>Page content</h3>
59
+ <router-outlet />
60
+ </div>
61
+ </div>
62
+ </main>
63
+ </df-app-container>
64
+ `,
65
+ imports: [
66
+ DfAppContainer,
67
+ DfTopNav,
68
+ DfTopNavBrand,
69
+ DfTopNavNavigation,
70
+ DfTopNavNavigationLink,
71
+ DfTopNavNavigationItem,
72
+ FormField,
73
+ RouterOutlet
74
+ ]
75
+ })
76
+ export class DfDemoTopNavNavigationTree {
77
+ readonly showFlatSuperheader = signal(false);
78
+ readonly showFlatSuperheaderForm = form(this.showFlatSuperheader);
79
+
80
+ readonly showDropdown = signal(false);
81
+ readonly showDropdownForm = form(this.showDropdown);
82
+ }