@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,27 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { DfAlert, type DfAlertType } from '@design-factory/angular/alert';
3
+ import { DfButton } from '@design-factory/angular/button';
4
+
5
+ const ALERTS: { type: DfAlertType; message: string }[] = [
6
+ { type: 'success', message: 'Profile saved successfully.' },
7
+ { type: 'info', message: 'A new fare is available for this itinerary.' },
8
+ { type: 'warning', message: 'Some traveler details still need review.' },
9
+ { type: 'danger', message: 'Ticketing failed. Please try again.' }
10
+ ];
11
+
12
+ @Component({
13
+ selector: 'df-demo-alert-dismissal',
14
+ templateUrl: './alert-dismissal.html',
15
+ imports: [DfAlert, DfButton]
16
+ })
17
+ export class DfDemoAlertDismissal {
18
+ readonly alerts = signal([...ALERTS]);
19
+
20
+ close(type: DfAlertType) {
21
+ this.alerts.update((alerts) => alerts.filter((alert) => alert.type !== type));
22
+ }
23
+
24
+ reset() {
25
+ this.alerts.set([...ALERTS]);
26
+ }
27
+ }
@@ -0,0 +1,9 @@
1
+ <df-alert class="mb-5" expandable [(expanded)]="expanded">
2
+ <df-alert-title>Warning! Check the booking details before you continue.</df-alert-title>
3
+ <df-alert-details>
4
+ The traveler profile was updated after the itinerary was created. Review passenger data, SSRs and contact
5
+ information before issuing the ticket.
6
+ </df-alert-details>
7
+ </df-alert>
8
+
9
+ <pre>Expanded: {{ expanded }}</pre>
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfAlert, DfAlertDetails, DfAlertTitle } from '@design-factory/angular/alert';
3
+
4
+ @Component({
5
+ selector: 'df-demo-alert-expandable',
6
+ templateUrl: './alert-expandable.html',
7
+ imports: [DfAlert, DfAlertTitle, DfAlertDetails]
8
+ })
9
+ export class DfDemoAlertExpandable {
10
+ expanded = false;
11
+ }
@@ -0,0 +1,4 @@
1
+ <div class="d-flex flex-wrap gap-3">
2
+ <button dfButton>Continue</button>
3
+ <button dfButton appearance="outline">Cancel</button>
4
+ </div>
@@ -0,0 +1,9 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+
4
+ @Component({
5
+ selector: 'df-demo-button-basic',
6
+ templateUrl: './button-basic.html',
7
+ imports: [DfButton]
8
+ })
9
+ export class DfDemoButtonBasic {}
@@ -0,0 +1,18 @@
1
+ <div class="d-grid gap-4">
2
+ <div class="d-flex flex-wrap gap-3">
3
+ <button dfButton [disabled]="disabled()">Save changes</button>
4
+ <a dfButton routerLink="/settings" appearance="outline" [disabled]="disabled()">Open settings</a>
5
+ </div>
6
+
7
+ <div class="form-check form-switch">
8
+ <label class="form-check-label">
9
+ <input
10
+ class="form-check-input me-3"
11
+ type="checkbox"
12
+ [checked]="disabled()"
13
+ (change)="disabled.set($any($event.target).checked)"
14
+ />
15
+ Disabled
16
+ </label>
17
+ </div>
18
+ </div>
@@ -0,0 +1,12 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { RouterLink } from '@angular/router';
3
+ import { DfButton } from '@design-factory/angular/button';
4
+
5
+ @Component({
6
+ selector: 'df-demo-button-disabled',
7
+ templateUrl: './button-disabled.html',
8
+ imports: [DfButton, RouterLink]
9
+ })
10
+ export class DfDemoButtonDisabled {
11
+ readonly disabled = signal(true);
12
+ }
@@ -0,0 +1,17 @@
1
+ <div class="d-flex flex-wrap gap-3">
2
+ <button dfButton>Text only</button>
3
+
4
+ <button dfButton appearance="outline">
5
+ <df-icon class="fa-light fa-download" />
6
+ Download
7
+ </button>
8
+
9
+ <button dfButton appearance="outline">
10
+ Next
11
+ <df-icon class="fa-light fa-arrow-right" />
12
+ </button>
13
+
14
+ <button dfIconButton appearance="text" aria-label="Close" class="fa-light fa-xmark"></button>
15
+ <button dfIconButton appearance="outline" aria-label="Refresh" class="fa-light fa-rotate-right"></button>
16
+ <button dfIconButton variant="danger" aria-label="Delete" class="fa-light fa-trash"></button>
17
+ </div>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton, DfIconButton } from '@design-factory/angular/button';
3
+ import { DfIcon } from '@design-factory/angular/icon';
4
+
5
+ @Component({
6
+ selector: 'df-demo-button-icons',
7
+ templateUrl: './button-icons.html',
8
+ imports: [DfButton, DfIconButton, DfIcon]
9
+ })
10
+ export class DfDemoButtonIcons {}
@@ -0,0 +1,13 @@
1
+ <div class="d-grid gap-4">
2
+ <div class="d-flex flex-wrap gap-3 p-5 rounded bg-neutral-soft">
3
+ <button dfButton appearance="outline">Outline</button>
4
+ <button dfButton appearance="outline" transparent>Transparent outline</button>
5
+ <button dfButton appearance="text" transparent>Transparent text</button>
6
+ </div>
7
+
8
+ <div class="d-flex flex-wrap gap-3 p-5 rounded bg-alt-body">
9
+ <button dfButton mirror>Mirror primary</button>
10
+ <button dfButton appearance="outline" mirror>Mirror outline</button>
11
+ <button dfButton appearance="text" mirror transparent>Mirror text</button>
12
+ </div>
13
+ </div>
@@ -0,0 +1,9 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+
4
+ @Component({
5
+ selector: 'df-demo-button-surfaces',
6
+ templateUrl: './button-surfaces.html',
7
+ imports: [DfButton]
8
+ })
9
+ export class DfDemoButtonSurfaces {}
@@ -0,0 +1,49 @@
1
+ <div class="d-grid gap-4">
2
+ <div class="d-flex flex-wrap gap-3">
3
+ <button dfButton>Primary solid</button>
4
+ <button dfButton appearance="outline">Primary outline</button>
5
+ <button dfButton appearance="text">Primary text</button>
6
+ </div>
7
+
8
+ <div class="d-flex flex-wrap gap-3">
9
+ <button dfButton variant="danger">Danger solid</button>
10
+ <button dfButton variant="danger" appearance="outline">Danger outline</button>
11
+ <button dfButton variant="danger" appearance="text">Danger text</button>
12
+ </div>
13
+
14
+ <div class="d-flex flex-wrap gap-3">
15
+ <button dfIconButton aria-label="Primary solid" class="fa-light fa-gear"></button>
16
+ <button dfIconButton appearance="outline" aria-label="Primary outline" class="fa-light fa-gear"></button>
17
+ <button dfIconButton appearance="text" aria-label="Primary text" class="fa-light fa-gear"></button>
18
+ </div>
19
+
20
+ <div class="d-flex flex-wrap gap-3">
21
+ <button dfIconButton variant="neutral" aria-label="Neutral solid" class="fa-light fa-gear"></button>
22
+ <button
23
+ dfIconButton
24
+ variant="neutral"
25
+ appearance="outline"
26
+ aria-label="Neutral outline"
27
+ class="fa-light fa-gear"
28
+ ></button>
29
+ <button
30
+ dfIconButton
31
+ variant="neutral"
32
+ appearance="text"
33
+ aria-label="Neutral text"
34
+ class="fa-light fa-gear"
35
+ ></button>
36
+ </div>
37
+
38
+ <div class="d-flex flex-wrap gap-3">
39
+ <button dfIconButton variant="danger" aria-label="Danger solid" class="fa-light fa-trash"></button>
40
+ <button
41
+ dfIconButton
42
+ variant="danger"
43
+ appearance="outline"
44
+ aria-label="Danger outline"
45
+ class="fa-light fa-trash"
46
+ ></button>
47
+ <button dfIconButton variant="danger" appearance="text" aria-label="Danger text" class="fa-light fa-trash"></button>
48
+ </div>
49
+ </div>
@@ -0,0 +1,9 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton, DfIconButton } from '@design-factory/angular/button';
3
+
4
+ @Component({
5
+ selector: 'df-demo-button-variants',
6
+ templateUrl: './button-variants.html',
7
+ imports: [DfButton, DfIconButton]
8
+ })
9
+ export class DfDemoButtonVariants {}
@@ -0,0 +1,6 @@
1
+ <df-button-group aria-label="Basic example">
2
+ <button dfButton appearance="solid">Main Action</button>
3
+ <button dfButton>Left</button>
4
+ <button dfButton>Middle</button>
5
+ <button dfButton>Right</button>
6
+ </df-button-group>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+
5
+ @Component({
6
+ selector: 'df-demo-buttongroup-basic',
7
+ templateUrl: './buttongroup-basic.html',
8
+ imports: [DfButton, DfButtonGroup]
9
+ })
10
+ export class DfDemoButtonGroupBasic {}
@@ -0,0 +1,6 @@
1
+ <df-button-group aria-label="Disabled example">
2
+ <button dfButton appearance="solid" disabled>Main Action</button>
3
+ <button dfButton disabled>Left</button>
4
+ <button dfButton disabled>Middle</button>
5
+ <button dfButton disabled>Right</button>
6
+ </df-button-group>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+
5
+ @Component({
6
+ selector: 'df-demo-buttongroup-disabled',
7
+ templateUrl: './buttongroup-disabled.html',
8
+ imports: [DfButton, DfButtonGroup]
9
+ })
10
+ export class DfDemoButtonGroupDisabled {}
@@ -0,0 +1,8 @@
1
+ <div class="p-5 rounded bg-alt-body">
2
+ <df-button-group mirror aria-label="Mirror example">
3
+ <button dfButton appearance="solid">Main Action</button>
4
+ <button dfButton>Left</button>
5
+ <button dfButton>Middle</button>
6
+ <button dfButton>Right</button>
7
+ </df-button-group>
8
+ </div>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+
5
+ @Component({
6
+ selector: 'df-demo-buttongroup-mirror',
7
+ templateUrl: './buttongroup-mirror.html',
8
+ imports: [DfButton, DfButtonGroup]
9
+ })
10
+ export class DfDemoButtonGroupMirror {}
@@ -0,0 +1,19 @@
1
+ <h3>Horizontal</h3>
2
+
3
+ <df-button-group orientation="horizontal" aria-label="Horizontal example">
4
+ <button dfButton appearance="solid">Main Action</button>
5
+ <button dfButton>Top</button>
6
+ <button dfButton>Middle</button>
7
+ <button dfButton>Bottom</button>
8
+ </df-button-group>
9
+
10
+ <hr />
11
+
12
+ <h3>Vertical</h3>
13
+
14
+ <df-button-group orientation="vertical" aria-label="Vertical example">
15
+ <button dfButton appearance="solid">Main Action</button>
16
+ <button dfButton>Top</button>
17
+ <button dfButton>Middle</button>
18
+ <button dfButton>Bottom</button>
19
+ </df-button-group>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+
5
+ @Component({
6
+ selector: 'df-demo-buttongroup-orientation',
7
+ templateUrl: './buttongroup-orientation.html',
8
+ imports: [DfButton, DfButtonGroup]
9
+ })
10
+ export class DfDemoButtonGroupOrientation {}
@@ -0,0 +1,19 @@
1
+ <div class="d-flex flex-wrap gap-4">
2
+ <df-button-group size="sm" aria-label="Small example">
3
+ <button dfButton>Left</button>
4
+ <button dfButton>Middle</button>
5
+ <button dfButton>Right</button>
6
+ </df-button-group>
7
+
8
+ <df-button-group aria-label="Medium example">
9
+ <button dfButton>Left</button>
10
+ <button dfButton>Middle</button>
11
+ <button dfButton>Right</button>
12
+ </df-button-group>
13
+
14
+ <df-button-group size="lg" aria-label="Large example">
15
+ <button dfButton>Left</button>
16
+ <button dfButton>Middle</button>
17
+ <button dfButton>Right</button>
18
+ </df-button-group>
19
+ </div>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+
5
+ @Component({
6
+ selector: 'df-demo-buttongroup-sizing',
7
+ templateUrl: './buttongroup-sizing.html',
8
+ imports: [DfButton, DfButtonGroup]
9
+ })
10
+ export class DfDemoButtonGroupSizing {}
@@ -0,0 +1,46 @@
1
+ <div class="p-7">
2
+ <div class="d-flex align-items-center">
3
+ <label for="drawerPosition" class="me-3">Position:</label>
4
+ <select id="drawerPosition" [formField]="drawerPositionForm" class="w-auto form-select">
5
+ <option value="inline-start">inline-start</option>
6
+ <option value="inline-end">inline-end</option>
7
+ <option value="block-start">block-start</option>
8
+ <option value="block-end">block-end</option>
9
+ </select>
10
+ </div>
11
+
12
+ <button dfButton class="mt-3" (click)="toggleDrawer()">Toggle Drawer</button>
13
+ </div>
14
+
15
+ <div class="d-flex demo-inline-drawer" [class.flex-column]="drawerPosition().includes('block')">
16
+ <df-drawer
17
+ #drawer
18
+ [position]="drawerPosition()"
19
+ configuration="inline"
20
+ [(visible)]="drawerVisible"
21
+ [style.order]="drawerPosition().endsWith('end') ? 2 : 1"
22
+ [size]="drawerPosition().startsWith('inline') ? 300 : 200"
23
+ >
24
+ <ng-template dfDrawerHeader>
25
+ <h2>Title goes here</h2>
26
+ <button
27
+ dfIconButton
28
+ appearance="text"
29
+ class="ms-auto fa-xmark"
30
+ (click)="drawer.close()"
31
+ aria-label="Close Drawer"
32
+ ></button>
33
+ </ng-template>
34
+ <ng-template dfDrawerFooter>
35
+ <button dfButton appearance="outline" class="m-3">Secondary</button>
36
+ <button dfButton class="m-3">Primary</button>
37
+ </ng-template>
38
+ </df-drawer>
39
+
40
+ <div
41
+ class="flex-grow-1 p-7"
42
+ [style.order]="drawerPosition() === 'inline-end' || drawerPosition() === 'block-end' ? 1 : 2"
43
+ >
44
+ <h6>Main Page Content</h6>
45
+ </div>
46
+ </div>
@@ -0,0 +1,33 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { DfButton, DfIconButton } from '@design-factory/angular/button';
3
+ import {
4
+ DfDrawer,
5
+ DfDrawerFooterTemplate,
6
+ DfDrawerHeaderTemplate,
7
+ DfDrawerPosition
8
+ } from '@design-factory/angular/drawer';
9
+ import { FormField, form } from '@angular/forms/signals';
10
+
11
+ @Component({
12
+ selector: 'df-demo-drawer-inline-basic',
13
+ templateUrl: './drawer-inline-basic.html',
14
+ imports: [DfDrawer, DfDrawerHeaderTemplate, DfDrawerFooterTemplate, FormField, DfButton, DfIconButton],
15
+ styles: `
16
+ .demo-inline-drawer {
17
+ padding: 1rem;
18
+ }
19
+
20
+ .main-content {
21
+ background: var(--df-color-primary-main-active-background);
22
+ }
23
+ `
24
+ })
25
+ export class DfDemoDrawerInlineBasic {
26
+ readonly drawerPosition = signal<DfDrawerPosition>('inline-start');
27
+ readonly drawerPositionForm = form(this.drawerPosition);
28
+ readonly drawerVisible = signal(false);
29
+
30
+ toggleDrawer() {
31
+ this.drawerVisible.update((v) => !v);
32
+ }
33
+ }
@@ -0,0 +1,30 @@
1
+ <df-drawer #drawer resizable [position]="drawerPosition()">
2
+ <ng-template dfDrawerHeader>
3
+ <h2>Title goes here</h2>
4
+ <button
5
+ dfIconButton
6
+ appearance="text"
7
+ class="ms-auto fa-xmark"
8
+ (click)="drawer.close()"
9
+ aria-label="Close Drawer"
10
+ ></button>
11
+ </ng-template>
12
+
13
+ <ng-template dfDrawerFooter>
14
+ <button dfButton appearance="outline" class="m-3">Secondary</button>
15
+ <button dfButton class="m-3">Primary</button>
16
+ </ng-template>
17
+ </df-drawer>
18
+ <div class="p-7">
19
+ <div class="d-flex align-items-center">
20
+ <label for="drawerPosition" class="me-3">Position:</label>
21
+ <select id="drawerPosition" [formField]="drawerPositionForm" class="w-auto form-select">
22
+ <option value="inline-start">inline-start</option>
23
+ <option value="inline-end">inline-end</option>
24
+ <option value="block-start">block-start</option>
25
+ <option value="block-end">block-end</option>
26
+ </select>
27
+ </div>
28
+
29
+ <button dfButton class="mt-3" (click)="drawer.open()">Toggle Drawer</button>
30
+ </div>
@@ -0,0 +1,25 @@
1
+ import { Component, signal, ViewEncapsulation } from '@angular/core';
2
+ import { DfButton, DfIconButton } from '@design-factory/angular/button';
3
+ import {
4
+ DfDrawer,
5
+ DfDrawerFooterTemplate,
6
+ DfDrawerHeaderTemplate,
7
+ DfDrawerPosition
8
+ } from '@design-factory/angular/drawer';
9
+ import { FormField, form } from '@angular/forms/signals';
10
+
11
+ @Component({
12
+ selector: 'df-demo-drawer-overlay-basic',
13
+ templateUrl: './drawer-overlay-basic.html',
14
+ imports: [DfDrawer, DfDrawerHeaderTemplate, DfDrawerFooterTemplate, FormField, DfButton, DfIconButton],
15
+ encapsulation: ViewEncapsulation.None,
16
+ styles: `
17
+ .df-drawer.df-inline-start {
18
+ --df-drawer-min-size: 250px;
19
+ }
20
+ `
21
+ })
22
+ export class DfDemoDrawerOverlayBasic {
23
+ readonly drawerPosition = signal<DfDrawerPosition>('inline-start');
24
+ readonly drawerPositionForm = form(this.drawerPosition);
25
+ }
@@ -0,0 +1,8 @@
1
+ <button [dfDropdownToggle]="menu">Actions</button>
2
+ <df-dropdown #menu>
3
+ <button dfDropdownItem>Refresh</button>
4
+ <button dfDropdownItem>Duplicate</button>
5
+ <df-separator />
6
+ <a dfDropdownItem href="/components/dropdown" active>Dropdown documentation</a>
7
+ <button dfDropdownItem disabled>Unavailable action</button>
8
+ </df-dropdown>
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import {
3
+ DfDropdown,
4
+ DfDropdownItemButton,
5
+ DfDropdownItemLink,
6
+ DfDropdownToggle
7
+ } from '@design-factory/angular/dropdown';
8
+ import { DfSeparator } from '@design-factory/angular/separator';
9
+
10
+ @Component({
11
+ selector: 'df-demo-dropdown-basic',
12
+ templateUrl: './dropdown-basic.html',
13
+ imports: [DfDropdown, DfDropdownItemButton, DfDropdownItemLink, DfDropdownToggle, DfSeparator]
14
+ })
15
+ export class DfDemoDropdownBasic {}
@@ -0,0 +1,9 @@
1
+ <div class="d-flex flex-column flex-sm-row align-items-start gap-3">
2
+ @for (demo of sizes; track demo.size) {
3
+ <button [dfDropdownToggle]="menu" [size]="demo.size">{{ demo.label }}</button>
4
+ <df-dropdown #menu [size]="demo.size">
5
+ <button dfDropdownItem>First item</button>
6
+ <button dfDropdownItem>Second item</button>
7
+ </df-dropdown>
8
+ }
9
+ </div>
@@ -0,0 +1,21 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfDropdown, DfDropdownItemButton, DfDropdownToggle } from '@design-factory/angular/dropdown';
3
+ import type { DfDropdownSize } from '@design-factory/angular/dropdown';
4
+
5
+ interface DropdownSizeDemo {
6
+ label: string;
7
+ size: DfDropdownSize;
8
+ }
9
+
10
+ @Component({
11
+ selector: 'df-demo-dropdown-sizes',
12
+ templateUrl: './dropdown-sizes.html',
13
+ imports: [DfDropdown, DfDropdownItemButton, DfDropdownToggle]
14
+ })
15
+ export class DfDemoDropdownSizes {
16
+ readonly sizes: DropdownSizeDemo[] = [
17
+ { label: 'Small', size: 'sm' },
18
+ { label: 'Default', size: 'md' },
19
+ { label: 'Large', size: 'lg' }
20
+ ];
21
+ }
@@ -0,0 +1,9 @@
1
+ <df-button-group aria-label="Split button">
2
+ <button dfButton>Save</button>
3
+ <button [dfDropdownToggle]="menu" aria-label="More save options"></button>
4
+ </df-button-group>
5
+ <df-dropdown #menu>
6
+ <button dfDropdownItem>Save and close</button>
7
+ <button dfDropdownItem>Save as draft</button>
8
+ <button dfDropdownItem>Save as template</button>
9
+ </df-dropdown>
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfButton } from '@design-factory/angular/button';
3
+ import { DfButtonGroup } from '@design-factory/angular/buttongroup';
4
+ import { DfDropdown, DfDropdownItemButton, DfDropdownToggle } from '@design-factory/angular/dropdown';
5
+
6
+ @Component({
7
+ selector: 'df-demo-dropdown-split',
8
+ templateUrl: './dropdown-split.html',
9
+ imports: [DfButton, DfButtonGroup, DfDropdown, DfDropdownItemButton, DfDropdownToggle]
10
+ })
11
+ export class DfDemoDropdownSplit {}
@@ -0,0 +1,22 @@
1
+ <div class="d-flex flex-column flex-sm-row align-items-start gap-3">
2
+ <button [dfDropdownToggle]="solidMenu" appearance="solid">Solid</button>
3
+ <df-dropdown #solidMenu>
4
+ <button dfDropdownItem>Primary action</button>
5
+ <button dfDropdownItem>Secondary action</button>
6
+ </df-dropdown>
7
+
8
+ <button [dfDropdownToggle]="outlineMenu" appearance="outline">Outline</button>
9
+ <df-dropdown #outlineMenu>
10
+ <button dfDropdownItem>Primary action</button>
11
+ <button dfDropdownItem>Secondary action</button>
12
+ </df-dropdown>
13
+
14
+ <button [dfDropdownToggle]="iconMenu" appearance="outline">
15
+ <df-icon class="icon-df-bluetooth" />
16
+ With icon
17
+ </button>
18
+ <df-dropdown #iconMenu>
19
+ <button dfDropdownItem>Primary action</button>
20
+ <button dfDropdownItem>Secondary action</button>
21
+ </df-dropdown>
22
+ </div>
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ import { DfDropdown, DfDropdownItemButton, DfDropdownToggle } from '@design-factory/angular/dropdown';
3
+ import { DfIcon } from '@design-factory/angular/icon';
4
+
5
+ @Component({
6
+ selector: 'df-demo-dropdown-toggle',
7
+ templateUrl: './dropdown-toggle.html',
8
+ imports: [DfDropdown, DfDropdownItemButton, DfDropdownToggle, DfIcon]
9
+ })
10
+ export class DfDemoDropdownToggle {}