@design-factory/angular 21.1.0 → 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 +64 -62
  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 +652 -401
  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 +29 -19
  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 +589 -589
  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 +10 -16
  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 +98 -14
  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 +35 -47
  331. package/drawer/README.md +0 -54
@@ -0,0 +1,45 @@
1
+ Use the correct ARIA roles to ensure assistive technologies understand the Accordion structure.
2
+
3
+ Each header must include:
4
+
5
+ - `aria-expanded="true|false"` to indicate the state
6
+ - `aria-controls="[ID]"` pointing to the associated panel
7
+
8
+ Each panel must use:
9
+
10
+ - `role="region"` (optional but recommended for clarity)
11
+ - `aria-labelledby="[HEADER ID]"`
12
+
13
+ When Accordions reveal or hide content, assistive technologies must be able to understand what changed.
14
+
15
+ **Expansion / collapse:**
16
+
17
+ - When a panel expands, the screen reader should announce the header as: "[Title], expanded."
18
+ - When a panel collapses: "[Title], collapsed."
19
+ - Do not automatically move focus into the expanded content. Let the user navigate into it with arrow keys or virtual cursor.
20
+
21
+  
22
+
23
+ The first focusable element inside the Accordion should always be the first header.
24
+
25
+ - Tab → moves to the next focusable header or action button.
26
+ - Headers must be reachable regardless of expanded or collapsed state.
27
+ - Content inside a panel is only tabbable if the panel is open and contains focusable elements (links, buttons, inputs).
28
+
29
+ - On a header: toggles expand/collapse.
30
+ - In Radio mode: sets the selected item (closes the previously selected one).
31
+ - On a button: activates the button without toggling the panel.
32
+
33
+  
34
+
35
+ Screen Readers should read:
36
+ [type of the element], [text of the element], [state of the element], [selection status] - selected or not selected-
37
+
38
+ 1. Header Title
39
+ 2. Subtitle (if present)
40
+ 3. Action button (if applicable)
41
+ 4. Expanded content
42
+
43
+ Screen Reader should announce this region as Accordion
44
+
45
+ For users who zoom up to 300%, apply the responsiveness behaviour of the component.
@@ -0,0 +1,279 @@
1
+ # Accordion — API
2
+
3
+ ## `df-accordion` — Component
4
+
5
+ _Since 22.0.0_
6
+
7
+ An accordion is a vertically stacked list of headers that reveal or hide associated sections of content Each header and content section is called an accordion-item. This component is a container for these items and provides an API to handle them.
8
+
9
+ ### Inputs
10
+
11
+ | Name | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | addon | `'none' \| 'icon' \| 'number'` | `'none'` | Addon type to show on the left side of the accordion header. Only valid for 'default' and 'interactive' variant. |
14
+ | animated | `boolean \| undefined` | `true` | If true, accordion-item will be animated. |
15
+ | arrowPosition | `'start' \| 'end'` | `'end'` | Position of the expandable icon on the accordion header. |
16
+ | closeOthers | `boolean \| undefined` | `false` | If true, only one accordion-item at the time can stay open. |
17
+ | itemDestroyOnHide | `boolean \| undefined` | `true` | If true, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise. |
18
+ | itemHeadingLevel | `HeadingLevel` | `2` | The HTML heading level to use for the accordion-item-header. Should be an integer between 1 and 6, if an invalid value is provided, it will default to 2. |
19
+ | separator | `boolean \| undefined` | `false` | When an item is visible (a.k.a. expanded), a separator line is shown below the item header. |
20
+ | size | `'sm' \| 'md' \| 'lg'` | `'md'` | The size of the accordion. |
21
+ | subtitleType | `'none' \| 'inline' \| 'block'` | `'none'` | In case of subtitle, defines how the subtitle is displayed. Only valid for 'default' and 'interactive'. On an interactive variant, subtitle is always displayed as inline. |
22
+
23
+ ### Outputs
24
+
25
+ | Name | Type | Description |
26
+ |------|------|-------------|
27
+ | itemHidden | `string` | An event fired when an item is hidden. Event payload is the id of the item. |
28
+ | itemShown | `string` | An event fired when an item is shown. Event payload is the id of the item. |
29
+
30
+ ### Methods
31
+
32
+ #### `collapse(itemId: string)` => `Promise<void>`
33
+
34
+ Collapses an item with the given id. Has no effect if the itemId does not correspond to any item.
35
+
36
+ #### `collapseAll()` => `Promise<void>`
37
+
38
+ Collapses all items.
39
+
40
+ #### `toggle(itemId: string)` => `Promise<void>`
41
+
42
+ Toggles an item with the given id. It will toggle an item, even if it is disabled.
43
+
44
+ #### `expand(itemId: string)` => `Promise<void>`
45
+
46
+ Expands an item with the given id. If closeOthers is true, it will collapse other panels.
47
+
48
+ #### `expandAll()` => `Promise<void>`
49
+
50
+ Expands all items. If closeOthers is true and all items are closed, it will open the first one. Otherwise, it will keep the opened one.
51
+
52
+ #### `isExpanded(itemId: string)` => `boolean`
53
+
54
+ Checks if an item with the given id is expanded. If the itemId does not correspond to any item, it returns false.
55
+
56
+ ## `df-accordion-selectable` — Component
57
+
58
+ _Since 22.0.0_
59
+
60
+ A selectable accordion is a vertically stacked list of headers with built-in radio inputs, following the radio-group pattern. Expanding an item selects it. Each header and content section is a selectable accordion-item. This component is a container for these items and provides an API to handle them. It always enforces closeOthers behavior (only one item open at a time) and uses role="radiogroup" for accessibility.
61
+
62
+ ### Inputs
63
+
64
+ | Name | Type | Default | Description |
65
+ |------|------|---------|-------------|
66
+ | addon | `'none' \| 'icon' \| 'number'` | `'none'` | Addon type to show on the left side of the accordion header. Only valid for 'default' and 'interactive' variant. |
67
+ | animated | `boolean \| undefined` | `true` | If true, accordion-item will be animated. |
68
+ | ariaLabel | `string` | | Accessible label for the radiogroup. Use when there is no visible heading that can be referenced by ariaLabelledBy. |
69
+ | ariaLabelledBy | `string` | | ID of an element that labels this radiogroup. Preferred over ariaLabel when a visible heading exists. |
70
+ | arrowPosition | `'start' \| 'end'` | `'end'` | Position of the expandable icon on the accordion header. |
71
+ | id | `string` | | The id of the accordion. Used to derive the radio group name for selectable items. |
72
+ | itemDestroyOnHide | `boolean \| undefined` | `true` | If true, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise. |
73
+ | itemHeadingLevel | `HeadingLevel` | `2` | The HTML heading level to use for the accordion-item-header. Should be an integer between 1 and 6, if an invalid value is provided, it will default to 2. |
74
+ | separator | `boolean \| undefined` | `false` | When an item is visible (a.k.a. expanded), a separator line is shown below the item header. |
75
+ | size | `'sm' \| 'md' \| 'lg'` | `'md'` | The size of the accordion. |
76
+ | subtitleType | `'none' \| 'inline' \| 'block'` | `'none'` | In case of subtitle, defines how the subtitle is displayed. Only valid for 'default' and 'interactive'. On an interactive variant, subtitle is always displayed as inline. |
77
+
78
+ ### Outputs
79
+
80
+ | Name | Type | Description |
81
+ |------|------|-------------|
82
+ | itemHidden | `string` | An event fired when an item is hidden. Event payload is the id of the item. |
83
+ | itemShown | `string` | An event fired when an item is shown. Event payload is the id of the item. |
84
+
85
+ ### Methods
86
+
87
+ #### `toggle(itemId: string)` => `Promise<void>`
88
+
89
+ Toggles an item with the given id. It will toggle an item, even if it is disabled.
90
+
91
+ #### `expand(itemId: string)` => `Promise<void>`
92
+
93
+ Expands an item with the given id. If closeOthers is true, it will collapse other panels.
94
+
95
+ #### `expandAll()` => `Promise<void>`
96
+
97
+ Expands all items. If closeOthers is true and all items are closed, it will open the first one. Otherwise, it will keep the opened one.
98
+
99
+ #### `isExpanded(itemId: string)` => `boolean`
100
+
101
+ Checks if an item with the given id is expanded. If the itemId does not correspond to any item, it returns false.
102
+
103
+ ## DfAccordionConfig — Configuration
104
+
105
+ Configuration options supported by provideDfAccordionConfig
106
+
107
+ ### Properties
108
+
109
+ | Name | Type | Description |
110
+ |------|------|-------------|
111
+ | animated | `boolean` | If true, accordion items will be animated. |
112
+ | ariaToggleButtonLabel | `string` | Accessibility label for the accordion-item toggle button in the interactive variant. |
113
+
114
+ ### Methods
115
+
116
+ #### `provideDfAccordionConfig(config: Partial<DfAccordionConfig> | ((prevConfig: Partial<DfAccordionConfig>) => Partial<DfAccordionConfig>) | undefined)` => `FactoryProvider`
117
+
118
+ Provides the configuration for the accordion component.
119
+
120
+ #### `injectDfAccordionConfig()` => `WritableSignal<Partial<DfAccordionConfig>>`
121
+
122
+ Injects the configuration for the accordion component.
123
+
124
+ ## `ng-template[dfAccordionItemBody]` — Directive
125
+
126
+ _Since 22.0.0_
127
+
128
+ A directive to define a template containing the body content of the accordion item.
129
+
130
+ ## `ng-template[dfAccordionItemTitle]` — Directive
131
+
132
+ _Since 22.0.0_
133
+
134
+ A directive to define a template containing the title of the accordion item.
135
+
136
+ ## `df-accordion-item` — Component
137
+
138
+ _Since 22.0.0_
139
+
140
+ An accordion item is a group of a header and a collapsible content section. It is used within an accordion component to display and hide content. This is the basic template for an accordion item. See DfAccordionItemInteractive for a template with interactive elements in the header. As its content, it accepts two directives: dfAccordionItemTitle: to define the title of the accordion item. dfAccordionItemBody: to define the body content of the accordion item.
141
+
142
+ ### Inputs
143
+
144
+ | Name | Type | Default | Description |
145
+ |------|------|---------|-------------|
146
+ | destroyOnHide | `boolean \| undefined` | `true` | If true, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise. |
147
+ | disabled | `boolean \| undefined` | `false` | If true, the accordion-item will be disabled. It will not react to user's clicks, but still will be possible to toggle programmatically. |
148
+ | iconClass | `string` | `undefined` | Optional input only valid for Icon variant to set custom icon class |
149
+ | id | `string` | `'dfId-[number]'` | The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api. |
150
+ | number | `string` | `undefined` | Optional input only valid for addon number variant to set the custom number |
151
+ | subtitle | `string` | `undefined` | Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle |
152
+ | visible | `boolean \| undefined` | `false` | If true, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed). |
153
+
154
+ ### Outputs
155
+
156
+ | Name | Type | Description |
157
+ |------|------|-------------|
158
+ | hidden | `void` | An event fired when an item is hidden. |
159
+ | shown | `void` | An event fired when an item is shown. |
160
+ | visibleChange | `boolean` | An event fired when the visible value changes. Event payload is the new value of visible. |
161
+
162
+ ### Methods
163
+
164
+ #### `toggle()` => `Promise<void>`
165
+
166
+ Toggles the item. It will toggle the item, even if it is disabled.
167
+
168
+ #### `expand()` => `Promise<void>`
169
+
170
+ Expands the item. If closeOthers is true, it will collapse other panels.
171
+
172
+ #### `collapse()` => `Promise<void>`
173
+
174
+ Collapses the item.
175
+
176
+ #### `isExpanded()` => `boolean`
177
+
178
+ Checks if the item is expanded.
179
+
180
+ ## `ng-template[dfAccordionItemSelectableSubsection]` — Directive
181
+
182
+ _Since 22.0.0_
183
+
184
+ A directive to define a template containing a subsection element inside the selectable accordion item header.
185
+
186
+ ## `df-accordion-item-selectable` — Component
187
+
188
+ _Since 22.0.0_
189
+
190
+ An accordion item with a built-in radio input in the header. Implements ControlValueAccessor so it can be used with formControlName or ngModel. All selectable items sharing the same form control act as a radio group: expanding an item selects its value. As its content, it accepts two directives: dfAccordionItemTitle: to define the title of the accordion item. dfAccordionItemBody: to define the body content of the accordion item. Optionally: dfAccordionItemSelectableSubsection: to define a subsection element inside the header.
191
+
192
+ ### Inputs
193
+
194
+ | Name | Type | Default | Description |
195
+ |------|------|---------|-------------|
196
+ | destroyOnHide | `boolean \| undefined` | `true` | If true, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise. |
197
+ | iconClass | `string` | | Optional input only valid for Icon variant to set custom icon class. |
198
+ | id | `string` | `'dfId-[number]'` | The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api. |
199
+ | number | `string` | `''` | Optional input only valid for addon number variant to set the number. |
200
+ | subtitle | `string` | | Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle. |
201
+ | subtitleType | `'none' \| 'inline' \| 'block'` | | In case of subtitle, defines how the subtitle is displayed. Only valid for 'default' and 'card'. On a card variant, subtitle is always displayed as inline. |
202
+ | value | `string` | | The value this item represents in the radio group. When the item is expanded, this value is emitted to the form control. |
203
+ | visible | `boolean \| undefined` | `false` | If true, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed). |
204
+
205
+ ### Outputs
206
+
207
+ | Name | Type | Description |
208
+ |------|------|-------------|
209
+ | hidden | `void` | An event fired when an item is hidden. |
210
+ | shown | `void` | An event fired when an item is shown. |
211
+ | visibleChange | `boolean` | An event fired when the visible value changes. Event payload is the new value of visible. |
212
+
213
+ ### Methods
214
+
215
+ #### `toggle()` => `Promise<void>`
216
+
217
+ Toggles the item. It will toggle the item, even if it is disabled.
218
+
219
+ #### `expand()` => `Promise<void>`
220
+
221
+ Expands the item. Since the parent accordion has closeOthers, it will collapse other panels.
222
+
223
+ #### `collapse()` => `Promise<void>`
224
+
225
+ Collapses the item.
226
+
227
+ #### `isExpanded()` => `boolean`
228
+
229
+ Checks if the item is expanded.
230
+
231
+ ## `ng-template[dfAccordionItemInteractiveSection]` — Directive
232
+
233
+ _Since 22.0.0_
234
+
235
+ A directive to define a template containing an interactive element inside the accordion item header.
236
+
237
+ ## `df-accordion-item-interactive` — Component
238
+
239
+ _Since 22.0.0_
240
+
241
+ An accordion item is a group of a header and a collapsible content section. It is used within an accordion component to display and hide content. This template is for the case when it is needed an interactive section inside the header. As its content, it accepts three directives: dfAccordionItemTitle: to define the title of the accordion item. DfAccordionItemInteractiveSection: to define a template containing an interactive element. dfAccordionItemBody: to define the body content of the accordion item.
242
+
243
+ ### Inputs
244
+
245
+ | Name | Type | Default | Description |
246
+ |------|------|---------|-------------|
247
+ | destroyOnHide | `boolean \| undefined` | `true` | If true, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise. |
248
+ | disabled | `boolean \| undefined` | `false` | If true, the accordion-item will be disabled. It will not react to user's clicks, but still will be possible to toggle programmatically. |
249
+ | iconClass | `string` | | Optional input only valid for Icon variant to set custom icon class |
250
+ | id | `string` | `'dfId-[number]'` | The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api. |
251
+ | number | `string` | `''` | Optional input only valid for addon number variant to set custom the number |
252
+ | subtitle | `string` | | Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle |
253
+ | visible | `boolean \| undefined` | `false` | If true, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed). |
254
+
255
+ ### Outputs
256
+
257
+ | Name | Type | Description |
258
+ |------|------|-------------|
259
+ | hidden | `void` | An event fired when an item is hidden. |
260
+ | shown | `void` | An event fired when an item is shown. |
261
+ | visibleChange | `boolean` | An event fired when the visible value changes. Event payload is the new value of visible. |
262
+
263
+ ### Methods
264
+
265
+ #### `toggle()` => `Promise<void>`
266
+
267
+ Toggles the item It will toggle the item, even if it is disabled.
268
+
269
+ #### `expand()` => `Promise<void>`
270
+
271
+ Expands an item. If closeOthers is true, it will collapse other panels.
272
+
273
+ #### `collapse()` => `Promise<void>`
274
+
275
+ Collapses the item.
276
+
277
+ #### `isExpanded()` => `boolean`
278
+
279
+ Checks if the item is expanded.
@@ -0,0 +1,43 @@
1
+ Use `df-accordion` with `df-accordion-item` elements. Each item takes a title and body via `ng-template` directives.
2
+ Set `[visible]="true"` to expand an item by default. Use `[disabled]="true"` to prevent interaction.
3
+
4
+ > Demo source: [docs/demos/accordion/basic/](../../demos/accordion/basic/)
5
+
6
+ Use the `closeOthers` input to allow only one panel to be open at any given time.
7
+
8
+ > Demo source: [docs/demos/accordion/close-others/](../../demos/accordion/close-others/)
9
+
10
+ Use the `separator` input to add a visual divider between the header and body of expanded items.
11
+
12
+ > Demo source: [docs/demos/accordion/separator/](../../demos/accordion/separator/)
13
+
14
+ Accordion items support subtitles, numbering panels, and icons. Control the display with `subtitleType` (`none`, `inline`, `block`),
15
+ `addon` (`none`, `number`, `icon`), and `arrowPosition` (`start`, `end`). When an addon is present, the arrow is forced to the opposite side.
16
+
17
+ > Demo source: [docs/demos/accordion/addons-subtitle/](../../demos/accordion/addons-subtitle/)
18
+
19
+ Use the accordion's API to control items programmatically. Call `toggle(id)`, `expand(id)`, `collapse(id)`,
20
+ `expandAll()`, or `collapseAll()` on the `DfAccordion` instance obtained via a template reference variable.
21
+
22
+ > Demo source: [docs/demos/accordion/programmatic-control/](../../demos/accordion/programmatic-control/)
23
+
24
+ Use `df-accordion-item-interactive` to place an interactive element (a button or a toggle) inside the accordion header,
25
+ next to the expand/collapse arrow. Define the element via the `dfAccordionItemInteractiveSection` template.
26
+
27
+ > Demo source: [docs/demos/accordion/interactive/](../../demos/accordion/interactive/)
28
+
29
+ Combine the interactive variant with subtitles, icons, and numbers. The same addon and arrow constraints apply:
30
+ when an addon is present, the arrow is forced to the opposite side.
31
+
32
+ > Demo source: [docs/demos/accordion/interactive-addons-subtitle/](../../demos/accordion/interactive-addons-subtitle/)
33
+
34
+ Use `df-accordion-selectable` with `df-accordion-item-selectable` for a radio-group pattern where expanding an item
35
+ selects it. Each item carries a `value` emitted to the form control. Only one item can be open at a time.
36
+
37
+ > Demo source: [docs/demos/accordion/selectable/](../../demos/accordion/selectable/)
38
+
39
+ Selectable items can be customized with badges in the title and a subsection below the header for extra details.
40
+ Use the `dfAccordionItemSelectableSubsection` template to render additional content alongside the radio input.
41
+ Each item body is rendered via `NgComponentOutlet` to allow fully dynamic content.
42
+
43
+ > Demo source: [docs/demos/accordion/selectable-extended/](../../demos/accordion/selectable-extended/)
@@ -0,0 +1,99 @@
1
+ &nbsp;
2
+
3
+ **Basic:**
4
+
5
+ - **Number (1):** Indicates the order or step when the accordion is used in numbered or sequential formats.
6
+ - **Title (2):** Primary label of the section; it summarizes the content.
7
+ - **Subtitle (3):** Optional secondary label used to provide additional context or clarify the scope of the section.
8
+ - **Button (4):** Optional action placed in the header for secondary or complementary tasks directly related to the panel content.
9
+ - **Accordion arrow (5):** Visual indicator of the expand/collapse state; rotates to show whether the panel is open or closed.
10
+ - **Content (6):** The information revealed when the panel is expanded; can include text, lists, media, or form elements.
11
+ - **Divider (7):** Visual separator used to distinguish between header and content for better readability.
12
+
13
+ **Radio button:**
14
+
15
+ - **Radio button (8):** Indicates exclusive selection.
16
+
17
+ The accordion has 2 main variants depending on the types of actions.
18
+
19
+ This is the default accordion variant. Each section can be opened or closed independently. It is useful for structuring dense information within a single page without overwhelming the user.
20
+
21
+ - Use it when users only need to **focus on a few key pieces of content** on a page.
22
+ - Write short, **clear, and meaningful titles** for each section.
23
+ - Keep the **default state collapsed** to give users an overview of all topics.
24
+ - Add only relevant content inside each expanded panel to **prevent unnecessary scrolling**.
25
+ - Structure content with short paragraphs, bullet points, or subheaders when useful.
26
+ - Ensure the accordion header is a large, **easy-to-click target**.
27
+ - Keep the **same structure and layout** across your accordions.
28
+
29
+ - Don't nest an **accordion inside another accordion** - this significantly increases cognitive load.
30
+ - Don't overload the component with too many sections; reorganize or **group content if needed**.
31
+ - Don't use accordion if people need to open the majority of sections to have their questions answered, or to get the full story.
32
+ - Don't use overly **long or ambiguous titles**.
33
+ - Don't use **more than one subtitle position** in the same accordion (e.g. subtitle left and subtitle right).
34
+
35
+ A mode where only one section can be opened at a time; selecting a section expands it while automatically closing the previous one, with one section always kept open. It behaves similarly to a radio button group.
36
+
37
+ - Use when the user must **make an exclusive choice** (e.g. payment method, configuration option).
38
+ - Use when the user needs to **quickly compare multiple options** without interaction conflicts.
39
+ - Ensure that the selected state is **visually distinct**.
40
+ - Use icons, badges, or indicators only when they add meaningful information.
41
+
42
+ - Don't use radio mode for **long text content** (collapsing/expanding repeatedly creates a poor reading experience).
43
+ - Don't include large logos or **visual elements in the header**.
44
+ - Don't use radio mode for **informational sections that are not mutually exclusive**.
45
+
46
+ &nbsp;
47
+
48
+ > **Info:** This variant is most commonly used in the checkout pattern as shown in the example below
49
+
50
+ - Use when a title alone does not provide enough context.
51
+ - Useful for documentation topics, FAQs, and multi-level explanations.
52
+
53
+ - Use when the section requires a secondary action directly related to the content, such as toggling a setting or opening an external link.
54
+ - Useful when the user needs to perform an action without opening the panel, or when the action complements the information inside the accordion.
55
+
56
+ > **Info:** When this variant is used, only the button becomes clickable. Clicking on the header will not expand the accordion
57
+
58
+ > **Info:** This variant should be used as a replacement for the deprecated expandable card component.
59
+
60
+ &nbsp;
61
+
62
+ - Great for steps, instructions, or sequential processes.
63
+ - Use 1/2/3 for short lists (1 to 9 items)
64
+ - Use 01/02/03 for longer sequences (10+ items).
65
+
66
+ - Use only if the icon clearly enhances understanding.
67
+ - Never use an icon without a label.
68
+ - Keep icon placement consistent.
69
+
70
+ In case of doubt we recommend using to the medium size which is the standard size for Design Factory. When using a size, try to keep the same all across your pages.
71
+
72
+ - Clicking the header toggles the section.
73
+ - The animation should follow DF motion principles.
74
+
75
+ For narrower mobile displays the accordion is to take the full width of the device when displayed.
76
+
77
+ &nbsp;
78
+
79
+ | Screen size | Component size |
80
+ | ------------------------------------------------- | -------------------------------------------------------------------- |
81
+ | L: [992px; n[<br>Desktop | 100% of space available for display minus 16px padding on each side. |
82
+ | M: [768px; 992px[<br>Tablets & larger smartphones | 100% of space available for display minus 16px padding on each side. |
83
+ | S: [576px; 768px[<br>Landscape phones | 100% of space available for display minus 16px padding on each side. |
84
+ | XS: [-inf; 576px[<br>Portrait phones | 100% of space available for display minus 8px padding on each side. |
85
+
86
+ Write short, clear titles that express the main idea.
87
+ Use subtitles only when additional context is necessary.
88
+ Avoid repeating the same information in both title and content.
89
+
90
+ Prioritize clarity:
91
+
92
+ - short paragraphs
93
+ - bullet points
94
+ - clear callouts when needed
95
+
96
+ Each section should convey one primary idea.
97
+ Avoid overly narrative text; keep content functional and to the point.
98
+
99
+ > **Tip:** For a full view on UX Writing guidelines, check the following document: Amadeus UX Writing Style Guide
@@ -0,0 +1,17 @@
1
+ &nbsp;
2
+
3
+ Use an accordion when you need to:
4
+
5
+ - Present several key pieces of information on a single page without overwhelming users.
6
+ - Let users quickly scan section titles and expand only what is relevant to them.
7
+ - Reduce scrolling by hiding non-essential or secondary content.
8
+ - Structure content into at least two or more sections.
9
+
10
+ - Keep section titles clear and meaningful.
11
+ - Use the component to streamline pages with multiple informational blocks.
12
+ - Limit the number of sections or group them into categories if the list becomes long.
13
+
14
+ - Don’t hide important content inside an accordion - ensure critical information remains visible to avoid being missed.
15
+ - Don't overload the accordion with too many sections - reorganize or restructure instead.
16
+
17
+ Accordions are designed to manage content density, not navigation. They help structure information within a single page by reducing visible clutter and allowing users to reveal details progressively. When choosing whether to use an Accordion or another pattern, consider the nature of the content, how often users need to access it, and whether visibility or discoverability is the priority.
@@ -0,0 +1,24 @@
1
+ Use the appropriate role depending on the severity:
2
+
3
+ - **Information, Tip & Success:** `role="status"`. Announces changes politely, without interrupting screen reader focus.
4
+ - **Warning & Error:** `role="alert"`. Announces immediately and with higher priority.
5
+
6
+ Avoid adding `aria-live` unless you need a specific announcement behavior.
7
+
8
+ When Alerts appear after a user action or via system feedback:
9
+
10
+ - Ensure the Alert is inserted into the DOM at the moment it becomes relevant, this triggers screen reader announcement.
11
+ - Avoid showing Alerts that are visually hidden and later revealed; screen readers may miss them.
12
+ - Do not use timers or automatic removal for critical content. The timer should start once the user is done reading it.
13
+
14
+ > **Info:** DOM (Document Object Model) is the internal structure of the web page that the browser builds from HTML. When an element (like an Alert) is inserted into the DOM dynamically, assistive technologies such as screen readers detect it and announce it automatically. This is why Alerts triggered by user actions must be created and added programmatically at the moment they become relevant, not just shown/hidden.
15
+
16
+ The first focusable element should be "See more" when available, or the "Close" button if present. It should have an accessible name (`aria-label="Dismiss"` or "Close alert") and be operable with Enter and Space.
17
+
18
+ Do not force focus onto an Alert unless:
19
+
20
+ - It is critical.
21
+ - It directly blocks user progress.
22
+ - The user cannot continue without reading it.
23
+
24
+ For all other Alerts, do not steal focus from user controls.
@@ -0,0 +1,65 @@
1
+ # Alert — API
2
+
3
+ ## `df-alert-title` — Component
4
+
5
+ _Since 22.0_
6
+
7
+ Defines the title content inside a <df-alert>.
8
+
9
+ ## `df-alert-details` — Component
10
+
11
+ _Since 22.0_
12
+
13
+ Defines the details content inside a <df-alert>.
14
+
15
+ ## `df-alert` — Component
16
+
17
+ _Since 22.0_
18
+
19
+ Provides contextual feedback messages for the user. Supports several visual types, dismissal, and collapsible content.
20
+
21
+ ### Inputs
22
+
23
+ | Name | Type | Default | Description |
24
+ |------|------|---------|-------------|
25
+ | animated | `boolean \| undefined` | `true` | If true, closing and collapsible transitions are animated. |
26
+ | appearance | `DfAlertAppearance` | `'default'` | Alert appearance variant. 'default': regular alert with rounded corners and leading border. 'banner': full-width alert with square corners and bottom border. |
27
+ | dismissible | `boolean \| undefined` | `true` | If true, alert can be dismissed by the user. The close button (×) will be displayed and you can be notified of the event with the (closed) output. |
28
+ | expandable | `boolean \| undefined` | `false` | If true, alert details can be toggled with a "see more" control. When false, details are shown inline when present. |
29
+ | size | `DfAlertSize` | `'md'` | Size of the alert. Accepts 'sm', 'md' or 'lg'. |
30
+ | type | `DfAlertType` | `'warning'` | Type of the alert. Supported types: 'success', 'info', 'warning', 'danger', 'tip'. |
31
+
32
+ ### Outputs
33
+
34
+ | Name | Type | Description |
35
+ |------|------|-------------|
36
+ | closed | `void` | Emitted after the alert closing transition finishes, whether triggered by the close button or the close() method. |
37
+
38
+ ### Methods
39
+
40
+ #### `close(animated: boolean | undefined)` => `Promise<void>`
41
+
42
+ Triggers alert closing programmatically.
43
+
44
+ ## DfAlertConfig — Configuration
45
+
46
+ Configuration options supported by provideDfAlertConfig. These defaults apply to every DfAlert instance within the providing injector, unless explicitly overridden on the component itself.
47
+
48
+ ### Properties
49
+
50
+ | Name | Type | Description |
51
+ |------|------|-------------|
52
+ | animated | `boolean` | If true, the alert closing will be animated. Animation is triggered when clicked on the close button (×), via the .close() function or the visible prop is changed |
53
+ | ariaCloseButtonLabel | `string` | Accessibility close button label |
54
+ | collapseLabel | `string` | Label shown when alert details can be collapsed. |
55
+ | expandLabel | `string` | Label shown when alert details can be expanded. |
56
+
57
+ ### Methods
58
+
59
+ #### `provideDfAlertConfig(config: Partial<DfAlertConfig> | ((prevConfig: Partial<DfAlertConfig>) => Partial<DfAlertConfig>) | undefined)` => `FactoryProvider`
60
+
61
+ Provides the configuration for the alert component.
62
+
63
+ #### `injectDfAlertConfig()` => `WritableSignal<Partial<DfAlertConfig>>`
64
+
65
+ Injects the configuration for the alert component.
@@ -0,0 +1,63 @@
1
+ Use the default alert when the standard appearance is enough. Adjust `type` and `size` when the message needs a
2
+ different semantic meaning or more visual emphasis.
3
+
4
+ > Demo source: [docs/demos/alert/basic/](../../demos/alert/basic/)
5
+
6
+ Use the title for the short summary that should stay easy to scan. Use details for supporting information, longer
7
+ descriptions or follow-up instructions. `<df-alert-title>` is optional. When there is no explicit title slot, direct
8
+ content projected into `<df-alert>` is used as the title.
9
+
10
+ ```angular-html
11
+ <!-- short version -->
12
+ <df-alert>Short description</df-alert>
13
+
14
+ <!-- preferred -->
15
+ <df-alert>
16
+ <df-alert-title>Short description</df-alert-title>
17
+ <df-alert-details>
18
+ More detailed content can include longer text, formatting and additional guidance.
19
+ </df-alert-details>
20
+ </df-alert>
21
+
22
+ <!-- possible -->
23
+ <df-alert>
24
+ Short description
25
+ <df-alert-details>More details go here.</df-alert-details>
26
+ </df-alert>
27
+ ```
28
+
29
+ By default, details are visible immediately. Add the `expandable` attribute only when the details should be collapsible.
30
+
31
+ Alerts are dismissible by default. Set `[dismissible]="false"` when the message must stay visible. Treat dismissal as
32
+ parent-owned state: listen to `(closed)` and remove the alert from your own state, either with conditional rendering or
33
+ by updating a collection.
34
+
35
+ ```angular-html
36
+ @if (!closed) {
37
+ <df-alert (closed)="closed = true">Closable alert</df-alert>
38
+ }
39
+ ```
40
+
41
+ > Demo source: [docs/demos/alert/dismissal/](../../demos/alert/dismissal/)
42
+
43
+ Use `<df-alert-details>` for the secondary content. Add `expandable` when the "See more" control should be
44
+ rendered, and use `[(expanded)]` when that state must be controlled.
45
+
46
+ ```angular-html
47
+ <df-alert expandable [(expanded)]="expanded">
48
+ <df-alert-title>Short description</df-alert-title>
49
+ <df-alert-details>More details go here</df-alert-details>
50
+ </df-alert>
51
+ ```
52
+
53
+ If no explicit `<df-alert-title>` is provided, any projected content outside of `<df-alert-details>` is treated as the
54
+ title.
55
+
56
+ > Demo source: [docs/demos/alert/expandable/](../../demos/alert/expandable/)
57
+
58
+ Use `appearance="banner"` when the alert should use banner styling. It can be used inside nested layouts, or positioned
59
+ at page level when it should span the full content width.
60
+
61
+ > Demo source: [docs/demos/alert/card/](../../demos/alert/card/)
62
+
63
+ > Demo source: [docs/demos/alert/banner/](../../demos/alert/banner/)