@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 @@
1
+ {"version":3,"file":"design-factory-angular-accordion.mjs","sources":["../../accordion/accordion.base.ts","../../accordion/accordion.ts","../../accordion/accordion-item.ts","../../accordion/accordion-item.interactive.ts","../../accordion/accordion.selectable.ts","../../accordion/accordion-item.selectable.ts","../../accordion/accordion.config.ts","../../accordion/design-factory-angular-accordion.ts"],"sourcesContent":["import { AgnosWidgetDirective, callWidgetFactory, auBooleanAttribute } from '@design-factory/angular/internals';\nimport { Directive, input, output } from '@angular/core';\nimport { type AccordionWidget, createAccordion } from '@design-factory/core/components/accordion';\n\nconst DF_ACCORDION_I18N_DEFAULTS = {\n ariaToggleButtonLabel: $localize`:@@df.accordion.toggle:Toggle item`\n};\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\n/**\n * Input transform that coerces a string or number value into a valid HTML heading level (1–6).\n *\n * Accepts both static template attributes (`itemHeadingLevel=\"3\"`) and bound values (`[itemHeadingLevel]=\"3\"`).\n *\n * Noninteger or out-of-range values fall back to `2`.\n */\nfunction dfHeadingLevelAttribute(value: `${HeadingLevel}` | HeadingLevel): HeadingLevel {\n const num = +value;\n return num >= 1 && num <= 6 && Number.isInteger(num) ? (num as HeadingLevel) : 2;\n}\n\n/**\n * Abstract base class for accordion variants.\n *\n * Provides the shared inputs, outputs and methods common to all accordion types.\n *\n * @internal\n */\n@Directive()\nexport abstract class DfAccordionBase extends AgnosWidgetDirective<AccordionWidget> {\n /**\n * An event fired when an item is shown.\n *\n * Event payload is the id of the item.\n */\n readonly itemShown = output<string>();\n\n /**\n * An event fired when an item is hidden.\n *\n * Event payload is the id of the item.\n */\n readonly itemHidden = output<string>();\n\n /**\n * 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.\n *\n * @defaultValue `true`\n */\n readonly itemDestroyOnHide = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, accordion-item will be animated.\n *\n * @defaultValue `true`\n */\n readonly animated = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * The HTML heading level to use for the accordion-item-header.\n *\n * Should be an integer between 1 and 6, if an invalid value is provided, it will default to 2.\n * @defaultValue 2\n */\n readonly itemHeadingLevel = input.required({ transform: dfHeadingLevelAttribute });\n\n /**\n * The size of the accordion.\n *\n * @defaultValue `'md'`\n */\n readonly size = input<'sm' | 'md' | 'lg'>();\n\n /**\n * Position of the expandable icon on the accordion header.\n *\n * @defaultValue `'end'`\n */\n readonly arrowPosition = input<'start' | 'end'>();\n\n /**\n * Addon type to show on the left side of the accordion header.\n *\n * Only valid for 'default' and 'interactive' variant.\n *\n * @defaultValue `'none'`\n */\n readonly addon = input<'none' | 'icon' | 'number'>();\n\n /**\n * In case of subtitle, defines how the subtitle is displayed.\n *\n * Only valid for 'default' and 'interactive'.\n *\n * On an interactive variant, subtitle is always displayed as inline.\n *\n * @defaultValue `'none'`\n */\n readonly subtitleType = input<'none' | 'inline' | 'block'>();\n\n /**\n * When an item is visible (a.k.a. expanded), a separator line is shown below the item header.\n *\n * @defaultValue `false`\n */\n readonly separator = input(undefined, { transform: auBooleanAttribute });\n\n constructor() {\n super(\n callWidgetFactory(createAccordion, {\n defaultConfig: {\n ...DF_ACCORDION_I18N_DEFAULTS\n },\n events: {\n onItemShown: (id) => this.itemShown.emit(id),\n onItemHidden: (id) => this.itemHidden.emit(id)\n }\n })\n );\n }\n\n /**\n * Toggles an item with the given id.\n *\n * It will toggle an item, even if it is disabled.\n */\n public async toggle(itemId: string) {\n await this.api.toggle(itemId);\n }\n\n /**\n * Expands an item with the given id.\n *\n * If closeOthers is true, it will collapse other panels.\n */\n public async expand(itemId: string) {\n await this.api.expand(itemId);\n }\n\n /**\n * Expands all items.\n *\n * If closeOthers is true and all items are closed, it will open the first one. Otherwise, it will keep the opened one.\n */\n public async expandAll() {\n await this.api.expandAll();\n }\n\n /**\n * Checks if an item with the given id is expanded.\n *\n * If the itemId does not correspond to any item, it returns false.\n */\n public isExpanded(itemId: string) {\n return (\n this.state\n .itemWidgets()\n .find((item) => item.state$.get().id === itemId)\n ?.state$.get().visible || false\n );\n }\n}\n","import { UseDirective, auBooleanAttribute } from '@design-factory/angular/internals';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\nimport { DfAccordionBase } from './accordion.base';\n\n/**\n * An accordion is a vertically stacked list of headers that reveal or hide associated sections of content\n *\n * Each header and content section is called an accordion-item.\n *\n * This component is a container for these items and provides an API to handle them.\n *\n * @since 22.0.0\n */\n@Component({\n selector: 'df-accordion',\n imports: [UseDirective],\n styles: \"@use '@design-factory/components-styles/accordion';\",\n encapsulation: ViewEncapsulation.None,\n template: `\n <div [dfUse]=\"directives.accordionDirective\" class=\"df-accordion {{ state.accordionClassName() }}\" role=\"region\">\n <ng-content />\n </div>\n `\n})\nexport class DfAccordion extends DfAccordionBase {\n /**\n * If `true`, only one accordion-item at the time can stay open.\n *\n * @defaultValue `false`\n */\n readonly closeOthers = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * Collapses an item with the given id.\n *\n * Has no effect if the itemId does not correspond to any item.\n */\n public async collapse(itemId: string) {\n await this.api.collapse(itemId);\n }\n\n /**\n * Collapses all items.\n */\n public async collapseAll() {\n await this.api.collapseAll();\n }\n}\n","import {\n afterNextRender,\n Component,\n contentChild,\n Directive,\n inject,\n input,\n output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n AgnosWidgetDirective,\n callWidgetFactory,\n UseDirective,\n useDirectiveForHost,\n auBooleanAttribute\n} from '@design-factory/angular/internals';\nimport { DfAccordion } from './accordion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { type AccordionItemWidget } from '@design-factory/core/components/accordion';\n\n/**\n * A directive to define a template containing the body content of the accordion item.\n * @since 22.0.0\n * */\n@Directive({\n selector: 'ng-template[dfAccordionItemBody]'\n})\nexport class DfAccordionItemBody {}\n\n/**\n * A directive to define a template containing the title of the accordion item.\n * @since 22.0.0\n * */\n@Directive({\n selector: 'ng-template[dfAccordionItemTitle]'\n})\nexport class DfAccordionItemTitle {}\n\n/**\n *\n * An accordion item is a group of a header and a collapsible content section.\n *\n * It is used within an accordion component to display and hide content.\n *\n * This is the basic template for an accordion item. See {@link DfAccordionItemInteractive} for a template with interactive elements in the header.\n *\n * As its content, it accepts two directives:\n * - `dfAccordionItemTitle`: to define the title of the accordion item.\n * - `dfAccordionItemBody`: to define the body content of the accordion item.\n * @since 22.0.0\n */\n@Component({\n selector: 'df-accordion-item',\n host: {\n class: 'df-accordion-item',\n '[id]': '[state.id()]'\n },\n imports: [UseDirective, NgTemplateOutlet],\n styles: \"@use '@design-factory/components-styles/accordion/accordion-item';\",\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n [attr.aria-level]=\"accordion['state'].itemHeadingLevel()\"\n [dfUse]=\"directives.headerDirective\"\n class=\"df-accordion-header\"\n role=\"heading\"\n >\n <button [dfUse]=\"directives.buttonDirective\" class=\"df-accordion-button\" type=\"button\">\n @if (accordion['state'].arrowPosition() === 'start') {\n <span\n class=\"df-accordion-chevron df-accordion-toggle-left fal fa-icon fa-chevron-down\"\n aria-hidden=\"true\"\n ></span>\n }\n <div class=\"df-accordion-button-content\">\n @let subtitleType = accordion['state'].subtitleType();\n @if (subtitleType === 'block' && subtitle()) {\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <div class=\"df-accordion-title-block\">\n <ng-template [ngTemplateOutlet]=\"title()\" />\n </div>\n <div class=\"df-accordion-subtitle-block\">{{ subtitle() }}</div>\n } @else if (subtitleType === 'inline' && subtitle()) {\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <div class=\"df-accordion-title-inline\">\n <ng-template [ngTemplateOutlet]=\"title()\" />\n </div>\n <div class=\"df-accordion-subtitle-inline\">{{ subtitle() }}</div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <ng-template [ngTemplateOutlet]=\"title()\" />\n }\n </div>\n @if (accordion['state'].arrowPosition() !== 'start') {\n <span class=\"df-accordion-chevron fa-icon fal fa-chevron-down\" aria-hidden=\"true\"></span>\n }\n </button>\n </div>\n @if (state.shouldBeInDOM()) {\n <div [dfUse]=\"directives.bodyContainerDirective\" class=\"df-accordion-collapse\">\n <div class=\"df-accordion-body\" [dfUse]=\"directives.bodyDirective\">\n <ng-template [ngTemplateOutlet]=\"body()\" />\n </div>\n </div>\n }\n\n <ng-template #addon>\n @if (accordion['state'].addon() === 'icon' && iconClass()) {\n <span class=\"{{ iconClass() }} df-accordion-icon\"></span>\n } @else if (accordion['state'].addon() === 'number' && number()) {\n <span class=\"df-accordion-number\">{{ number() }}.</span>\n }\n </ng-template>\n `\n})\nexport class DfAccordionItem extends AgnosWidgetDirective<AccordionItemWidget> {\n /**\n * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n *\n * @defaultValue `'dfId-[number]'`\n */\n readonly id = input<string>();\n /**\n * 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.\n *\n * @defaultValue `true`\n */\n readonly destroyOnHide = input(undefined, { transform: auBooleanAttribute });\n /**\n * If `true`, the accordion-item will be disabled.\n *\n * It will not react to user's clicks, but still will be possible to toggle programmatically.\n *\n * @defaultValue `false`\n */\n readonly disabled = input(undefined, { transform: auBooleanAttribute });\n /**\n * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n *\n * @defaultValue `false`\n */\n readonly visible = input(undefined, { transform: auBooleanAttribute });\n /**\n * An event fired when an item is shown.\n */\n readonly shown = output<void>();\n /**\n * An event fired when an item is hidden.\n */\n readonly hidden = output<void>();\n /**\n * An event fired when the `visible` value changes.\n *\n * Event payload is the new value of visible.\n */\n readonly visibleChange = output<boolean>();\n\n /**\n * Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle\n *\n * @defaultValue `undefined`\n * */\n readonly subtitle = input<string>();\n\n /**\n * Optional input only valid for Icon variant to set custom icon class\n *\n * @defaultValue `undefined`\n * */\n readonly iconClass = input<string>();\n\n /**\n * Optional input only valid for addon number variant to set the custom number\n *\n * @defaultValue `undefined`\n * */\n readonly number = input<string>();\n\n protected readonly title = contentChild(DfAccordionItemTitle, { read: TemplateRef });\n protected readonly body = contentChild(DfAccordionItemBody, { read: TemplateRef });\n protected readonly accordion = inject(DfAccordion);\n\n constructor() {\n super(\n callWidgetFactory<AccordionItemWidget>((arg) => this.accordion['api'].registerItem(arg), {\n events: {\n onVisibleChange: (visible) => this.visibleChange.emit(visible),\n onHidden: () => this.hidden.emit(),\n onShown: () => this.shown.emit()\n },\n afterInit: (widget) => {\n useDirectiveForHost(widget.directives.itemDirective);\n }\n })\n );\n afterNextRender(() => this.api.initDone());\n }\n\n /**\n * Toggles the item.\n *\n * It will toggle the item, even if it is disabled.\n */\n public async toggle() {\n await this.api.toggle();\n }\n\n /**\n * Expands the item.\n *\n * If closeOthers is true, it will collapse other panels.\n */\n public async expand() {\n await this.api.expand();\n }\n\n /**\n * Collapses the item.\n * */\n public async collapse() {\n await this.api.collapse();\n }\n\n /**\n * Checks if the item is expanded.\n *\n * */\n public isExpanded() {\n return this.state.visible();\n }\n}\n","import {\n afterNextRender,\n Component,\n contentChild,\n Directive,\n inject,\n input,\n output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n AgnosWidgetDirective,\n callWidgetFactory,\n UseDirective,\n useDirectiveForHost,\n auBooleanAttribute\n} from '@design-factory/angular/internals';\nimport { DfAccordion } from './accordion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { type AccordionItemWidget } from '@design-factory/core/components/accordion';\nimport { DfAccordionItemBody, DfAccordionItemTitle } from './accordion-item';\nimport { DfIconButton } from '@design-factory/angular/button';\n\n/**\n * A directive to define a template containing an interactive element inside the accordion item header.\n * @since 22.0.0\n * */\n@Directive({\n selector: 'ng-template[dfAccordionItemInteractiveSection]'\n})\nexport class DfAccordionItemInteractiveSection {}\n/**\n *\n * An accordion item is a group of a header and a collapsible content section.\n *\n * It is used within an accordion component to display and hide content.\n *\n * This template is for the case when it is needed an interactive section inside the header.\n *\n * As its content, it accepts three directives:\n * - `dfAccordionItemTitle`: to define the title of the accordion item.\n * - `DfAccordionItemInteractiveSection`: to define a template containing an interactive element.\n * - `dfAccordionItemBody`: to define the body content of the accordion item.\n * @since 22.0.0\n */\n@Component({\n selector: 'df-accordion-item-interactive',\n host: {\n class: 'df-accordion-item',\n '[id]': '[state.id()]'\n },\n imports: [UseDirective, NgTemplateOutlet, DfIconButton],\n styles: \"@use '@design-factory/components-styles/accordion/accordion-item-interactive';\",\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n class=\"df-accordion-header df-accordion-interactive-header\"\n [class.df-disabled]=\"state.disabled()\"\n [attr.aria-disabled]=\"state.disabled() ? 'true' : null\"\n >\n @if (accordion['state'].arrowPosition() === 'start') {\n <ng-template [ngTemplateOutlet]=\"toggleBtn\" />\n }\n <div class=\"df-accordion-interactive-content\">\n <div class=\"df-accordion-interactive-inner\">\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <div role=\"heading\" [attr.aria-level]=\"accordion['state'].itemHeadingLevel()\">\n <ng-template [ngTemplateOutlet]=\"title()\" />\n </div>\n @if (accordion['state'].subtitleType() === 'block' && subtitle()) {\n <div class=\"df-accordion-subtitle-block\">{{ subtitle() }}</div>\n }\n </div>\n <ng-template [ngTemplateOutlet]=\"interactiveSection()\" />\n </div>\n @if (accordion['state'].arrowPosition() === 'end') {\n <ng-template [ngTemplateOutlet]=\"toggleBtn\" />\n }\n </div>\n\n @if (state.shouldBeInDOM()) {\n <div [dfUse]=\"directives.bodyContainerDirective\" class=\"df-accordion-collapse\">\n <div class=\"df-accordion-body\" [dfUse]=\"directives.bodyDirective\">\n <ng-template [ngTemplateOutlet]=\"body()\" />\n </div>\n </div>\n }\n\n <ng-template #addon>\n @if (accordion['state'].addon() === 'icon' && iconClass()) {\n <span class=\"{{ iconClass() }} df-accordion-icon\"></span>\n } @else if (accordion['state'].addon() === 'number' && number()) {\n <span class=\"df-accordion-number\">{{ number() }}.</span>\n }\n </ng-template>\n\n <ng-template #toggleBtn>\n <button\n [disabled]=\"state.disabled()\"\n [dfUse]=\"directives.toggleDirective\"\n dfIconButton\n appearance=\"text\"\n transparent\n [attr.aria-label]=\"accordion['state'].ariaToggleButtonLabel()\"\n class=\"df-accordion-toggle fal fa-chevron-down {{\n accordion['state'].arrowPosition() === 'start' ? ' df-accordion-toggle-left' : ' df-accordion-toggle-right'\n }}\"\n ></button>\n </ng-template>\n `\n})\nexport class DfAccordionItemInteractive extends AgnosWidgetDirective<AccordionItemWidget> {\n /**\n * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n *\n * @defaultValue `'dfId-[number]'`\n */\n readonly id = input<string>();\n /**\n * 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.\n *\n * @defaultValue `true`\n */\n readonly destroyOnHide = input(undefined, { transform: auBooleanAttribute });\n /**\n * If `true`, the accordion-item will be disabled.\n *\n * It will not react to user's clicks, but still will be possible to toggle programmatically.\n *\n * @defaultValue `false`\n */\n readonly disabled = input(undefined, { transform: auBooleanAttribute });\n /**\n * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n *\n * @defaultValue `false`\n */\n readonly visible = input(undefined, { transform: auBooleanAttribute });\n /**\n * An event fired when an item is shown.\n */\n readonly shown = output<void>();\n /**\n * An event fired when an item is hidden.\n */\n readonly hidden = output<void>();\n /**\n * An event fired when the `visible` value changes.\n *\n * Event payload is the new value of visible.\n */\n readonly visibleChange = output<boolean>();\n\n /**\n * Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle\n * */\n readonly subtitle = input<string>();\n\n /**\n * Optional input only valid for Icon variant to set custom icon class\n * */\n readonly iconClass = input<string>();\n\n /**\n * Optional input only valid for addon number variant to set custom the number\n * */\n readonly number = input('');\n\n protected readonly title = contentChild(DfAccordionItemTitle, { read: TemplateRef });\n protected readonly interactiveSection = contentChild(DfAccordionItemInteractiveSection, {\n read: TemplateRef\n });\n protected readonly body = contentChild(DfAccordionItemBody, { read: TemplateRef });\n protected readonly accordion = inject(DfAccordion);\n\n constructor() {\n super(\n callWidgetFactory<AccordionItemWidget>((arg) => this.accordion['api'].registerItem(arg), {\n events: {\n onVisibleChange: (visible) => this.visibleChange.emit(visible),\n onHidden: () => this.hidden.emit(),\n onShown: () => this.shown.emit()\n },\n afterInit: (widget) => {\n useDirectiveForHost(widget.directives.itemDirective);\n }\n })\n );\n afterNextRender(() => {\n this.api.initDone();\n });\n }\n\n /**\n * Toggles the item\n *\n * It will toggle the item, even if it is disabled.\n */\n public async toggle() {\n await this.api.toggle();\n }\n\n /**\n * Expands an item.\n *\n * If closeOthers is true, it will collapse other panels.\n */\n public async expand() {\n await this.api.expand();\n }\n\n /**\n * Collapses the item.\n * */\n public async collapse() {\n await this.api.collapse();\n }\n\n /**\n * Checks if the item is expanded.\n *\n * */\n public isExpanded() {\n return this.state.visible();\n }\n}\n","import { UseDirective } from '@design-factory/angular/internals';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\nimport { DfAccordionBase } from './accordion.base';\n\n/**\n * A selectable accordion is a vertically stacked list of headers with built-in radio inputs,\n * following the radio-group pattern. Expanding an item selects it.\n *\n * Each header and content section is a selectable accordion-item.\n *\n * This component is a container for these items and provides an API to handle them.\n * It always enforces `closeOthers` behavior (only one item open at a time)\n * and uses `role=\"radiogroup\"` for accessibility.\n *\n * @since 22.0.0\n */\n@Component({\n selector: 'df-accordion-selectable',\n imports: [UseDirective],\n styles: \"@use '@design-factory/components-styles/accordion';\",\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n [dfUse]=\"directives.accordionDirective\"\n class=\"df-accordion df-accordion-selectable {{ state.accordionClassName() }}\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n >\n <ng-content />\n </div>\n `\n})\nexport class DfAccordionSelectable extends DfAccordionBase {\n /**\n * The id of the accordion. Used to derive the radio group name for selectable items.\n */\n readonly id = input<string>();\n\n /**\n * Accessible label for the radiogroup.\n * Use when there is no visible heading that can be referenced by `ariaLabelledBy`.\n */\n readonly ariaLabel = input<string>();\n\n /**\n * ID of an element that labels this radiogroup.\n * Preferred over `ariaLabel` when a visible heading exists.\n */\n readonly ariaLabelledBy = input<string>();\n\n constructor() {\n super();\n this._agnosWidget.patch({ selectable: true });\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n contentChild,\n Directive,\n forwardRef,\n inject,\n input,\n output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n AgnosWidgetDirective,\n auBooleanAttribute,\n callWidgetFactory,\n UseDirective,\n useDirectiveForHost\n} from '@design-factory/angular/internals';\nimport { DfAccordionSelectable } from './accordion.selectable';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { type AccordionItemWidget } from '@design-factory/core/components/accordion';\nimport { DfAccordionItemBody, DfAccordionItemTitle } from './accordion-item';\n\n/**\n * A directive to define a template containing a subsection element inside the selectable accordion item header.\n * @since 22.0.0\n */\n@Directive({\n selector: 'ng-template[dfAccordionItemSelectableSubsection]'\n})\nexport class DfAccordionItemSelectableSubsection {}\n\n/**\n * An accordion item with a built-in radio input in the header.\n * Implements {@link ControlValueAccessor} so it can be used with `formControlName` or `ngModel`.\n * All selectable items sharing the same form control act as a radio group:\n * expanding an item selects its {@link DfAccordionItemSelectable#value | value}.\n *\n * As its content, it accepts two directives:\n * - `dfAccordionItemTitle`: to define the title of the accordion item.\n * - `dfAccordionItemBody`: to define the body content of the accordion item.\n *\n * Optionally:\n * - `dfAccordionItemSelectableSubsection`: to define a subsection element inside the header.\n * @since 22.0.0\n */\n@Component({\n selector: 'df-accordion-item-selectable',\n host: {\n class: 'df-accordion-item',\n '[id]': '[state.id()]'\n },\n imports: [UseDirective, NgTemplateOutlet],\n styles: \"@use '@design-factory/components-styles/accordion/accordion-item-selectable';\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DfAccordionItemSelectable),\n multi: true\n }\n ],\n template: `\n <div\n [attr.aria-level]=\"accordion['state'].itemHeadingLevel()\"\n [dfUse]=\"directives.headerDirective\"\n class=\"df-accordion-header\"\n role=\"heading\"\n >\n <label\n class=\"df-accordion-button\"\n [class.df-collapsed]=\"!state.visible()\"\n [class.df-disabled]=\"state.disabled()\"\n [for]=\"state.id() + '-input'\"\n [id]=\"state.id() + '-toggle'\"\n >\n <div class=\"df-accordion-title-container\">\n <input\n type=\"radio\"\n (click)=\"onLabelClick($event)\"\n [name]=\"accordion['state'].id() + '-radio'\"\n [value]=\"value()\"\n [checked]=\"state.visible()\"\n [attr.disabled]=\"state.disabled() || null\"\n [id]=\"state.id() + '-input'\"\n />\n\n @let computedSubtitle = subtitleComputed();\n @if (computedSubtitle === 'block' && subtitle()) {\n <div class=\"df-accordion-title-block-wrapper\">\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <div class=\"df-accordion-title-block\">\n <ng-template [ngTemplateOutlet]=\"title()\" />\n </div>\n <div class=\"df-accordion-subtitle-block\">{{ subtitle() }}</div>\n </div>\n } @else if (computedSubtitle === 'inline' && subtitle()) {\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <div class=\"df-accordion-title-inline\">\n <ng-template [ngTemplateOutlet]=\"title()\" />\n </div>\n <div class=\"df-accordion-subtitle-inline\">{{ subtitle() }}</div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"addon\" />\n <ng-template [ngTemplateOutlet]=\"title()\" />\n }\n </div>\n @if (subsection()) {\n <ng-template [ngTemplateOutlet]=\"subsection()\" />\n }\n </label>\n </div>\n @if (state.shouldBeInDOM()) {\n <div [dfUse]=\"directives.bodyContainerDirective\" class=\"df-accordion-collapse\">\n <div class=\"df-accordion-body\" [dfUse]=\"directives.bodyDirective\">\n <ng-template [ngTemplateOutlet]=\"body()\" />\n </div>\n </div>\n }\n\n <ng-template #addon>\n @if (accordion['state'].addon() === 'icon' && iconClass()) {\n <span class=\"{{ iconClass() }} df-accordion-icon\"></span>\n } @else if (accordion['state'].addon() === 'number' && number()) {\n <span class=\"df-accordion-number\">{{ number() }}.</span>\n }\n </ng-template>\n `\n})\nexport class DfAccordionItemSelectable\n extends AgnosWidgetDirective<AccordionItemWidget>\n implements ControlValueAccessor\n{\n /**\n * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n *\n * @defaultValue `'dfId-[number]'`\n */\n readonly id = input<string>();\n /**\n * 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.\n *\n * @defaultValue `true`\n */\n readonly destroyOnHide = input(undefined, { transform: auBooleanAttribute });\n /**\n * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n *\n * @defaultValue `false`\n */\n readonly visible = input(undefined, { transform: auBooleanAttribute });\n /**\n * The value this item represents in the radio group.\n * When the item is expanded, this value is emitted to the form control.\n */\n readonly value = input<string>();\n /**\n * An event fired when an item is shown.\n */\n readonly shown = output<void>();\n /**\n * An event fired when an item is hidden.\n */\n readonly hidden = output<void>();\n /**\n * An event fired when the `visible` value changes.\n *\n * Event payload is the new value of visible.\n */\n readonly visibleChange = output<boolean>();\n\n /**\n * Optional input only valid if the accordion's subtitleType is 'inline' or 'block' to set custom subtitle.\n */\n readonly subtitle = input<string>();\n\n /**\n * Optional input only valid for Icon variant to set custom icon class.\n */\n readonly iconClass = input<string>();\n\n /**\n * Optional input only valid for addon number variant to set the number.\n */\n readonly number = input('');\n\n /**\n * In case of subtitle, defines how the subtitle is displayed.\n * Only valid for 'default' and 'card'.\n * On a card variant, subtitle is always displayed as inline.\n */\n readonly subtitleType = input<'none' | 'inline' | 'block'>();\n\n protected readonly title = contentChild(DfAccordionItemTitle, { read: TemplateRef });\n protected readonly body = contentChild(DfAccordionItemBody, { read: TemplateRef });\n protected readonly subsection = contentChild(DfAccordionItemSelectableSubsection, { read: TemplateRef });\n protected readonly accordion = inject(DfAccordionSelectable);\n\n protected readonly subtitleComputed = computed(() => {\n return this.subtitleType() ?? this.accordion['state'].subtitleType();\n });\n\n constructor() {\n super(\n callWidgetFactory<AccordionItemWidget>((arg) => this.accordion['api'].registerItem(arg), {\n events: {\n onVisibleChange: (visible) => {\n this.visibleChange.emit(visible);\n if (visible) {\n this.onChange(this.value());\n this.onTouched();\n }\n },\n onHidden: () => this.hidden.emit(),\n onShown: () => this.shown.emit()\n },\n afterInit: (widget) => {\n useDirectiveForHost(widget.directives.itemDirective);\n }\n })\n );\n\n afterNextRender(() => {\n this.api.initDone();\n });\n }\n\n /** @internal */\n writeValue(val: string): void {\n if (val === this.value()) {\n this._agnosWidget.patch({ visible: true });\n }\n }\n\n /** @internal */\n registerOnChange(fn: (value: string | undefined) => void): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this._agnosWidget.patch({ disabled: isDisabled });\n }\n\n /**\n * Toggles the item.\n *\n * It will toggle the item, even if it is disabled.\n */\n public async toggle() {\n await this.api.toggle();\n }\n\n /**\n * Expands the item.\n *\n * Since the parent accordion has closeOthers, it will collapse other panels.\n */\n public async expand() {\n await this.api.expand();\n }\n\n /**\n * Collapses the item.\n */\n public async collapse() {\n await this.api.collapse();\n }\n\n /**\n * Checks if the item is expanded.\n */\n public isExpanded() {\n return this.state.visible();\n }\n\n /** Expand the item when the label is clicked (expand-only, no toggle). */\n protected onLabelClick(event: MouseEvent) {\n event.preventDefault();\n if (!this.state.disabled()) {\n void this.api.expand();\n }\n }\n\n private onChange: (_: any) => void = () => {};\n\n private onTouched: () => void = () => {};\n}\n","import { injectDfComponentConfig, provideDfComponentConfig } from '@design-factory/angular/internals';\nimport type { AccordionProps } from '@design-factory/core/components/accordion';\n/**\n * Configuration options supported by {@link provideDfAccordionConfig}\n */\nexport type DfAccordionConfig = Pick<AccordionProps, 'animated' | 'ariaToggleButtonLabel'>;\n\n// the key of the accordion config in the global DF config\nexport const ACCORDION_CONFIG_KEY = 'accordion' as const;\n\n/**\n * Provides the configuration for the accordion component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfAccordionConfig({ animated: false })]\n * })\n * export class MyHomeComponent {}\n * ```\n *\n * @param config - Partial configuration or a function that receives the parent configuration and returns a partial configuration.\n */\nexport const provideDfAccordionConfig = provideDfComponentConfig<DfAccordionConfig>(ACCORDION_CONFIG_KEY);\n\n/**\n * Injects the configuration for the accordion component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfAccordionConfig()]\n * })\n * export class MyAccordionComponent {\n * readonly accordionConfig = injectDfAccordionConfig();\n * }\n * ```\n *\n * @returns A writable signal containing the accordion configuration.\n */\nexport const injectDfAccordionConfig = injectDfComponentConfig<DfAccordionConfig>(ACCORDION_CONFIG_KEY);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ import { createAlert } from '@design-factory/core/components/alert';
2
+ import * as i0 from '@angular/core';
3
+ import { Component, contentChild, ElementRef, input, booleanAttribute, model, output, ViewEncapsulation } from '@angular/core';
4
+ import { DfIcon } from '@design-factory/angular/icon';
5
+ import { AgnosWidgetDirective, callWidgetFactory, useDirectiveForElement, UseDirective, provideDfComponentConfig, injectDfComponentConfig } from '@design-factory/angular/internals';
6
+ import { DfButton, DfIconButton } from '@design-factory/angular/button';
7
+
8
+ const DF_ALERT_I18N_DEFAULTS = {
9
+ ariaCloseButtonLabel: $localize `:@@df.alert.close:Close`,
10
+ expandLabel: $localize `:@@df.alert.collapse.show:See more`,
11
+ collapseLabel: $localize `:@@df.alert.collapse.hide:See less`
12
+ };
13
+ /**
14
+ * Defines the title content inside a `<df-alert>`.
15
+ *
16
+ * @since 22.0
17
+ */
18
+ class DfAlertTitle {
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: DfAlertTitle, isStandalone: true, selector: "df-alert-title", host: { classAttribute: "df-alert-title" }, ngImport: i0, template: `<ng-content />`, isInline: true }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlertTitle, decorators: [{
23
+ type: Component,
24
+ args: [{
25
+ selector: 'df-alert-title',
26
+ host: { class: 'df-alert-title' },
27
+ template: `<ng-content />`
28
+ }]
29
+ }] });
30
+ /**
31
+ * Defines the details content inside a `<df-alert>`.
32
+ *
33
+ * @since 22.0
34
+ */
35
+ class DfAlertDetails {
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlertDetails, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: DfAlertDetails, isStandalone: true, selector: "df-alert-details", host: { classAttribute: "df-alert-details" }, ngImport: i0, template: `<ng-content />`, isInline: true }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlertDetails, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'df-alert-details',
43
+ host: { class: 'df-alert-details' },
44
+ template: `<ng-content />`
45
+ }]
46
+ }] });
47
+ /**
48
+ * Provides contextual feedback messages for the user.
49
+ *
50
+ * Supports several visual types, dismissal, and collapsible content.
51
+ *
52
+ * @since 22.0
53
+ */
54
+ class DfAlert extends AgnosWidgetDirective {
55
+ constructor() {
56
+ const widget = callWidgetFactory(createAlert, {
57
+ defaultConfig: {
58
+ ...DF_ALERT_I18N_DEFAULTS
59
+ },
60
+ afterInit: (alertWidget) => {
61
+ useDirectiveForElement(this.details, alertWidget.directives.collapseDirective);
62
+ },
63
+ events: {
64
+ onHidden: () => this.closed.emit(),
65
+ onCollapsed: () => this.expanded.set(false),
66
+ onExpanded: () => this.expanded.set(true)
67
+ }
68
+ });
69
+ super(widget);
70
+ this.title = contentChild(DfAlertTitle, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
72
+ this.details = contentChild(DfAlertDetails, { ...(ngDevMode ? { debugName: "details" } : /* istanbul ignore next */ {}), read: (ElementRef) });
73
+ /**
74
+ * If `true`, closing and collapsible transitions are animated.
75
+ *
76
+ * @defaultValue `true`
77
+ */
78
+ this.animated = input(undefined, { ...(ngDevMode ? { debugName: "animated" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
79
+ /**
80
+ * Alert appearance variant.
81
+ *
82
+ * - `'default'`: regular alert with rounded corners and leading border.
83
+ * - `'banner'`: full-width alert with square corners and bottom border.
84
+ *
85
+ * @defaultValue `'default'`
86
+ */
87
+ this.appearance = input(/* @ts-ignore */
88
+ ...(ngDevMode ? [undefined, { debugName: "appearance" }] : /* istanbul ignore next */ []));
89
+ /**
90
+ * Size of the alert. Accepts `'sm'`, `'md'` or `'lg'`.
91
+ *
92
+ * @defaultValue `'md'`
93
+ */
94
+ this.size = input(/* @ts-ignore */
95
+ ...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
96
+ /**
97
+ * If `true`, collapsible content is expanded.
98
+ *
99
+ * Applies when `expandable` is enabled.
100
+ *
101
+ * Supports two-way binding with `[(expanded)]`.
102
+ *
103
+ * @defaultValue `false`
104
+ */
105
+ this.expanded = model(false, /* @ts-ignore */
106
+ ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
107
+ /**
108
+ * If `true`, alert details can be toggled with a "see more" control.
109
+ *
110
+ * When `false`, details are shown inline when present.
111
+ *
112
+ * @defaultValue `false`
113
+ */
114
+ this.expandable = input(undefined, { ...(ngDevMode ? { debugName: "expandable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
115
+ /**
116
+ * If `true`, alert can be dismissed by the user.
117
+ *
118
+ * The close button (×) will be displayed and you can be notified
119
+ * of the event with the `(closed)` output.
120
+ *
121
+ * @defaultValue `true`
122
+ */
123
+ this.dismissible = input(undefined, { ...(ngDevMode ? { debugName: "dismissible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
124
+ /**
125
+ * Type of the alert.
126
+ *
127
+ * Supported types: `'success'`, `'info'`, `'warning'`, `'danger'`, `'tip'`.
128
+ *
129
+ * @defaultValue `'warning'`
130
+ */
131
+ this.type = input(/* @ts-ignore */
132
+ ...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
133
+ /**
134
+ * Emitted after the alert closing transition finishes, whether triggered by the close button or the `close()` method.
135
+ */
136
+ this.closed = output();
137
+ }
138
+ /**
139
+ * Triggers alert closing programmatically.
140
+ *
141
+ * @param animated - whether the transition should be animated. If omitted, the component `animated` input or configured default is used.
142
+ *
143
+ * @returns A promise that resolves once the closing transition has finished.
144
+ */
145
+ close(animated) {
146
+ return this.api.close(animated);
147
+ }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: DfAlert, isStandalone: true, selector: "df-alert", inputs: { animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange", closed: "closed" }, host: { styleAttribute: "display: block;" }, queries: [{ propertyName: "title", first: true, predicate: DfAlertTitle, descendants: true, isSignal: true }, { propertyName: "details", first: true, predicate: DfAlertDetails, descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
150
+ @if (!state.hidden()) {
151
+ <div
152
+ [attr.role]="state.role()"
153
+ [class]="'df-alert' + (state.type() ? ' df-alert-' + state.type() : '')"
154
+ [class.df-alert-banner]="state.appearance() === 'banner'"
155
+ [class.df-alert-dismissible]="state.dismissible()"
156
+ [class.df-alert-sm]="state.size() === 'sm'"
157
+ [class.df-alert-lg]="state.size() === 'lg'"
158
+ [dfUse]="_agnosWidget.directives.transitionDirective"
159
+ >
160
+ <df-icon class="df-alert-icon {{ state.icon() }}" />
161
+ @if (title()) {
162
+ <ng-content select="df-alert-title" />
163
+ } @else {
164
+ <df-alert-title>
165
+ <ng-content />
166
+ </df-alert-title>
167
+ }
168
+ @if ((details() && state.expandable()) || state.dismissible()) {
169
+ <div class="df-alert-actions">
170
+ @if (details() && state.expandable()) {
171
+ <button
172
+ dfButton
173
+ appearance="text"
174
+ transparent
175
+ class="df-alert-collapse-button"
176
+ [size]="state.size()"
177
+ [dfUse]="directives.collapseTriggerDirective"
178
+ >
179
+ {{ state.expanded() ? state.collapseLabel() : state.expandLabel() }}
180
+ @if (state.expanded() ? state.collapseIcon() : state.expandIcon(); as collapseIconClass) {
181
+ <df-icon class="df-alert-collapse-icon {{ collapseIconClass }}" />
182
+ }
183
+ </button>
184
+ }
185
+ @if (state.dismissible()) {
186
+ <button
187
+ dfIconButton
188
+ variant="neutral"
189
+ appearance="text"
190
+ transparent
191
+ class="df-alert-close-button fa-light fa-close"
192
+ [size]="state.size()"
193
+ [attr.aria-label]="state.ariaCloseButtonLabel()"
194
+ (click)="api.close()"
195
+ ></button>
196
+ }
197
+ </div>
198
+ }
199
+ @if (details()) {
200
+ <ng-content select="df-alert-details" />
201
+ }
202
+ </div>
203
+ }
204
+ `, isInline: true, styles: [".df-fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.df-fade{transition:none}}.df-fade:not(.df-show){opacity:0}.df-hidden{display:none!important}.df-collapse-hide{display:none}.df-collapse-show{display:block}.df-collapse-collapsing{display:block;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.df-collapse-collapsing{transition:none}}.df-alert{position:relative;display:grid;line-height:1.5;grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--df-spacing-3);color:var(--df-color-inert-neutral-main-foreground);border-style:solid;border-width:0;border-inline-start-width:var(--df-spacing-2);border-color:transparent;border-radius:var(--df-borderRadius-main-small);font-size:var(--df-typo-sizing-default)}.df-alert .df-alert-icon{display:block;grid-column:1;grid-row:1}.df-alert.df-alert-success{background-color:var(--df-color-success-subtle-background);border-color:var(--df-color-success-alt-default-border)}.df-alert.df-alert-success .df-alert-icon{color:var(--df-color-success-alt-default-foreground)}.df-alert.df-alert-success hr{border-top-color:var(--df-color-separator-success-border)}.df-alert.df-alert-danger{background-color:var(--df-color-danger-subtle-background);border-color:var(--df-color-danger-alt-default-border)}.df-alert.df-alert-danger .df-alert-icon{color:var(--df-color-danger-alt-default-foreground)}.df-alert.df-alert-danger hr{border-top-color:var(--df-color-separator-danger-border)}.df-alert.df-alert-info{background-color:var(--df-color-info-subtle-background);border-color:var(--df-color-info-alt-default-border)}.df-alert.df-alert-info .df-alert-icon{color:var(--df-color-info-alt-default-foreground)}.df-alert.df-alert-info hr{border-top-color:var(--df-color-separator-info-border)}.df-alert.df-alert-warning{background-color:var(--df-color-warning-subtle-background);border-color:var(--df-color-warning-alt-default-border)}.df-alert.df-alert-warning hr{border-top-color:var(--df-color-separator-warning-border)}.df-alert.df-alert-tip{background-color:var(--df-color-tip-subtle-background);border-color:var(--df-color-tip-alt-default-border)}.df-alert.df-alert-tip .df-alert-icon{color:var(--df-color-tip-alt-default-foreground)}.df-alert.df-alert-tip hr{border-top-color:var(--df-color-separator-tip-border)}.df-alert.df-alert-warning .df-alert-icon{color:var(--df-color-icon-warning-foreground)}.df-alert hr{margin-block:var(--df-spacing-5);box-sizing:border-box;height:1px;border-top-style:solid;border-top-width:1px;border-inline:0;border-bottom:0}.df-alert .df-alert-title{display:block;grid-column:2;grid-row:1;min-width:0;font-weight:var(--df-typo-weight-medium)}.df-alert .df-alert-actions{grid-column:3;grid-row:1;align-self:start;display:flex;align-items:center;gap:var(--df-spacing-3);block-size:0;min-block-size:0;margin-block-start:.75em;overflow:visible}.df-alert .df-alert-collapse-button{font-weight:var(--df-typo-weight-regular)}.df-alert .df-alert-details:not(.df-collapse-hide){display:block}.df-alert .df-alert-details{grid-column:2/-1}.df-alert .df-alert-details:before{content:\"\";display:block;block-size:var(--df-spacing-3)}.df-alert.df-alert-banner{width:100%;border-width:0 0 var(--df-spacing-2) 0;border-radius:0}.df-alert{font-size:var(--df-typo-sizing-default);padding-block:calc((3rem - var(--df-typo-sizing-default) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}.df-alert.df-alert-sm{font-size:var(--df-typo-sizing-small);padding-block:calc((2.5rem - var(--df-typo-sizing-small) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}.df-alert.df-alert-lg{font-size:var(--df-typo-sizing-large);padding-block:calc((3.5rem - var(--df-typo-sizing-large) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}\n"], dependencies: [{ kind: "directive", type: UseDirective, selector: "[dfUse]", inputs: ["dfUse"] }, { kind: "component", type: DfIcon, selector: "df-icon" }, { kind: "component", type: DfAlertTitle, selector: "df-alert-title" }, { kind: "component", type: DfButton, selector: "button[dfButton], a[dfButton]" }, { kind: "component", type: DfIconButton, selector: "button[dfIconButton], a[dfIconButton]" }], encapsulation: i0.ViewEncapsulation.None }); }
205
+ }
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfAlert, decorators: [{
207
+ type: Component,
208
+ args: [{ selector: 'df-alert', encapsulation: ViewEncapsulation.None, imports: [UseDirective, DfIcon, DfAlertTitle, DfButton, DfIconButton], host: {
209
+ style: 'display: block;'
210
+ }, template: `
211
+ @if (!state.hidden()) {
212
+ <div
213
+ [attr.role]="state.role()"
214
+ [class]="'df-alert' + (state.type() ? ' df-alert-' + state.type() : '')"
215
+ [class.df-alert-banner]="state.appearance() === 'banner'"
216
+ [class.df-alert-dismissible]="state.dismissible()"
217
+ [class.df-alert-sm]="state.size() === 'sm'"
218
+ [class.df-alert-lg]="state.size() === 'lg'"
219
+ [dfUse]="_agnosWidget.directives.transitionDirective"
220
+ >
221
+ <df-icon class="df-alert-icon {{ state.icon() }}" />
222
+ @if (title()) {
223
+ <ng-content select="df-alert-title" />
224
+ } @else {
225
+ <df-alert-title>
226
+ <ng-content />
227
+ </df-alert-title>
228
+ }
229
+ @if ((details() && state.expandable()) || state.dismissible()) {
230
+ <div class="df-alert-actions">
231
+ @if (details() && state.expandable()) {
232
+ <button
233
+ dfButton
234
+ appearance="text"
235
+ transparent
236
+ class="df-alert-collapse-button"
237
+ [size]="state.size()"
238
+ [dfUse]="directives.collapseTriggerDirective"
239
+ >
240
+ {{ state.expanded() ? state.collapseLabel() : state.expandLabel() }}
241
+ @if (state.expanded() ? state.collapseIcon() : state.expandIcon(); as collapseIconClass) {
242
+ <df-icon class="df-alert-collapse-icon {{ collapseIconClass }}" />
243
+ }
244
+ </button>
245
+ }
246
+ @if (state.dismissible()) {
247
+ <button
248
+ dfIconButton
249
+ variant="neutral"
250
+ appearance="text"
251
+ transparent
252
+ class="df-alert-close-button fa-light fa-close"
253
+ [size]="state.size()"
254
+ [attr.aria-label]="state.ariaCloseButtonLabel()"
255
+ (click)="api.close()"
256
+ ></button>
257
+ }
258
+ </div>
259
+ }
260
+ @if (details()) {
261
+ <ng-content select="df-alert-details" />
262
+ }
263
+ </div>
264
+ }
265
+ `, styles: [".df-fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.df-fade{transition:none}}.df-fade:not(.df-show){opacity:0}.df-hidden{display:none!important}.df-collapse-hide{display:none}.df-collapse-show{display:block}.df-collapse-collapsing{display:block;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.df-collapse-collapsing{transition:none}}.df-alert{position:relative;display:grid;line-height:1.5;grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--df-spacing-3);color:var(--df-color-inert-neutral-main-foreground);border-style:solid;border-width:0;border-inline-start-width:var(--df-spacing-2);border-color:transparent;border-radius:var(--df-borderRadius-main-small);font-size:var(--df-typo-sizing-default)}.df-alert .df-alert-icon{display:block;grid-column:1;grid-row:1}.df-alert.df-alert-success{background-color:var(--df-color-success-subtle-background);border-color:var(--df-color-success-alt-default-border)}.df-alert.df-alert-success .df-alert-icon{color:var(--df-color-success-alt-default-foreground)}.df-alert.df-alert-success hr{border-top-color:var(--df-color-separator-success-border)}.df-alert.df-alert-danger{background-color:var(--df-color-danger-subtle-background);border-color:var(--df-color-danger-alt-default-border)}.df-alert.df-alert-danger .df-alert-icon{color:var(--df-color-danger-alt-default-foreground)}.df-alert.df-alert-danger hr{border-top-color:var(--df-color-separator-danger-border)}.df-alert.df-alert-info{background-color:var(--df-color-info-subtle-background);border-color:var(--df-color-info-alt-default-border)}.df-alert.df-alert-info .df-alert-icon{color:var(--df-color-info-alt-default-foreground)}.df-alert.df-alert-info hr{border-top-color:var(--df-color-separator-info-border)}.df-alert.df-alert-warning{background-color:var(--df-color-warning-subtle-background);border-color:var(--df-color-warning-alt-default-border)}.df-alert.df-alert-warning hr{border-top-color:var(--df-color-separator-warning-border)}.df-alert.df-alert-tip{background-color:var(--df-color-tip-subtle-background);border-color:var(--df-color-tip-alt-default-border)}.df-alert.df-alert-tip .df-alert-icon{color:var(--df-color-tip-alt-default-foreground)}.df-alert.df-alert-tip hr{border-top-color:var(--df-color-separator-tip-border)}.df-alert.df-alert-warning .df-alert-icon{color:var(--df-color-icon-warning-foreground)}.df-alert hr{margin-block:var(--df-spacing-5);box-sizing:border-box;height:1px;border-top-style:solid;border-top-width:1px;border-inline:0;border-bottom:0}.df-alert .df-alert-title{display:block;grid-column:2;grid-row:1;min-width:0;font-weight:var(--df-typo-weight-medium)}.df-alert .df-alert-actions{grid-column:3;grid-row:1;align-self:start;display:flex;align-items:center;gap:var(--df-spacing-3);block-size:0;min-block-size:0;margin-block-start:.75em;overflow:visible}.df-alert .df-alert-collapse-button{font-weight:var(--df-typo-weight-regular)}.df-alert .df-alert-details:not(.df-collapse-hide){display:block}.df-alert .df-alert-details{grid-column:2/-1}.df-alert .df-alert-details:before{content:\"\";display:block;block-size:var(--df-spacing-3)}.df-alert.df-alert-banner{width:100%;border-width:0 0 var(--df-spacing-2) 0;border-radius:0}.df-alert{font-size:var(--df-typo-sizing-default);padding-block:calc((3rem - var(--df-typo-sizing-default) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}.df-alert.df-alert-sm{font-size:var(--df-typo-sizing-small);padding-block:calc((2.5rem - var(--df-typo-sizing-small) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}.df-alert.df-alert-lg{font-size:var(--df-typo-sizing-large);padding-block:calc((3.5rem - var(--df-typo-sizing-large) * 1.5) / 2);padding-inline:var(--df-spacing-5) var(--df-spacing-3)}\n"] }]
266
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfAlertTitle), { isSignal: true }] }], details: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfAlertDetails), { ...{ read: (ElementRef) }, isSignal: true }] }], animated: [{ type: i0.Input, args: [{ isSignal: true, alias: "animated", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], expandable: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandable", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
267
+
268
+ /**
269
+ * Alert config key in the global DF component config.
270
+ */
271
+ const ALERT_CONFIG_KEY = 'alert';
272
+ /**
273
+ * Provides the configuration for the alert component.
274
+ *
275
+ * @example
276
+ * ```ts
277
+ * @Component({
278
+ * providers: [provideDfAlertConfig({ ariaCloseButtonLabel: 'Close alert' })]
279
+ * })
280
+ * export class MyHomeComponent {}
281
+ * ```
282
+ *
283
+ * @param config - Partial configuration or a function that receives the parent configuration and returns a partial configuration.
284
+ *
285
+ * @since 22.0
286
+ */
287
+ const provideDfAlertConfig = provideDfComponentConfig(ALERT_CONFIG_KEY);
288
+ /**
289
+ * Injects the configuration for the alert component.
290
+ *
291
+ * @example
292
+ * ```ts
293
+ * @Component({
294
+ * providers: [provideDfAlertConfig()]
295
+ * })
296
+ * export class MyAlertComponent {
297
+ * readonly alertConfig = injectDfAlertConfig();
298
+ * }
299
+ * ```
300
+ *
301
+ * @returns A writable signal containing the alert configuration.
302
+ *
303
+ * @since 22.0
304
+ */
305
+ const injectDfAlertConfig = injectDfComponentConfig(ALERT_CONFIG_KEY);
306
+
307
+ /**
308
+ * Generated bundle index. Do not edit.
309
+ */
310
+
311
+ export { ALERT_CONFIG_KEY, DfAlert, DfAlertDetails, DfAlertTitle, injectDfAlertConfig, provideDfAlertConfig };
312
+ //# sourceMappingURL=design-factory-angular-alert.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-factory-angular-alert.mjs","sources":["../../alert/alert.ts","../../alert/alert.config.ts","../../alert/design-factory-angular-alert.ts"],"sourcesContent":["import { AlertWidget, createAlert } from '@design-factory/core/components/alert';\nimport type { AlertAppearance, AlertSize, AlertType } from '@design-factory/core/components/alert';\nimport {\n booleanAttribute,\n Component,\n contentChild,\n ElementRef,\n input,\n model,\n output,\n ViewEncapsulation\n} from '@angular/core';\nimport { DfIcon } from '@design-factory/angular/icon';\nimport {\n AgnosWidgetDirective,\n UseDirective,\n callWidgetFactory,\n useDirectiveForElement\n} from '@design-factory/angular/internals';\nimport { DfButton, DfIconButton } from '@design-factory/angular/button';\n\n/**\n * Available alert sizes.\n */\nexport type DfAlertSize = AlertSize;\n/**\n * Available alert visual types.\n */\nexport type DfAlertType = AlertType;\n/**\n * Available alert appearance variants.\n */\nexport type DfAlertAppearance = AlertAppearance;\n\nconst DF_ALERT_I18N_DEFAULTS = {\n ariaCloseButtonLabel: $localize`:@@df.alert.close:Close`,\n expandLabel: $localize`:@@df.alert.collapse.show:See more`,\n collapseLabel: $localize`:@@df.alert.collapse.hide:See less`\n};\n\n/**\n * Defines the title content inside a `<df-alert>`.\n *\n * @since 22.0\n */\n@Component({\n selector: 'df-alert-title',\n host: { class: 'df-alert-title' },\n template: `<ng-content />`\n})\nexport class DfAlertTitle {}\n\n/**\n * Defines the details content inside a `<df-alert>`.\n *\n * @since 22.0\n */\n@Component({\n selector: 'df-alert-details',\n host: { class: 'df-alert-details' },\n template: `<ng-content />`\n})\nexport class DfAlertDetails {}\n\n/**\n * Provides contextual feedback messages for the user.\n *\n * Supports several visual types, dismissal, and collapsible content.\n *\n * @since 22.0\n */\n@Component({\n selector: 'df-alert',\n encapsulation: ViewEncapsulation.None,\n imports: [UseDirective, DfIcon, DfAlertTitle, DfButton, DfIconButton],\n host: {\n style: 'display: block;'\n },\n template: `\n @if (!state.hidden()) {\n <div\n [attr.role]=\"state.role()\"\n [class]=\"'df-alert' + (state.type() ? ' df-alert-' + state.type() : '')\"\n [class.df-alert-banner]=\"state.appearance() === 'banner'\"\n [class.df-alert-dismissible]=\"state.dismissible()\"\n [class.df-alert-sm]=\"state.size() === 'sm'\"\n [class.df-alert-lg]=\"state.size() === 'lg'\"\n [dfUse]=\"_agnosWidget.directives.transitionDirective\"\n >\n <df-icon class=\"df-alert-icon {{ state.icon() }}\" />\n @if (title()) {\n <ng-content select=\"df-alert-title\" />\n } @else {\n <df-alert-title>\n <ng-content />\n </df-alert-title>\n }\n @if ((details() && state.expandable()) || state.dismissible()) {\n <div class=\"df-alert-actions\">\n @if (details() && state.expandable()) {\n <button\n dfButton\n appearance=\"text\"\n transparent\n class=\"df-alert-collapse-button\"\n [size]=\"state.size()\"\n [dfUse]=\"directives.collapseTriggerDirective\"\n >\n {{ state.expanded() ? state.collapseLabel() : state.expandLabel() }}\n @if (state.expanded() ? state.collapseIcon() : state.expandIcon(); as collapseIconClass) {\n <df-icon class=\"df-alert-collapse-icon {{ collapseIconClass }}\" />\n }\n </button>\n }\n @if (state.dismissible()) {\n <button\n dfIconButton\n variant=\"neutral\"\n appearance=\"text\"\n transparent\n class=\"df-alert-close-button fa-light fa-close\"\n [size]=\"state.size()\"\n [attr.aria-label]=\"state.ariaCloseButtonLabel()\"\n (click)=\"api.close()\"\n ></button>\n }\n </div>\n }\n @if (details()) {\n <ng-content select=\"df-alert-details\" />\n }\n </div>\n }\n `,\n styles: \"@use '@design-factory/components-styles/alert';\"\n})\nexport class DfAlert extends AgnosWidgetDirective<AlertWidget> {\n protected readonly title = contentChild(DfAlertTitle);\n protected readonly details = contentChild(DfAlertDetails, { read: ElementRef<HTMLElement> });\n\n /**\n * If `true`, closing and collapsible transitions are animated.\n *\n * @defaultValue `true`\n */\n readonly animated = input(undefined, { transform: booleanAttribute });\n\n /**\n * Alert appearance variant.\n *\n * - `'default'`: regular alert with rounded corners and leading border.\n * - `'banner'`: full-width alert with square corners and bottom border.\n *\n * @defaultValue `'default'`\n */\n readonly appearance = input<DfAlertAppearance>();\n\n /**\n * Size of the alert. Accepts `'sm'`, `'md'` or `'lg'`.\n *\n * @defaultValue `'md'`\n */\n readonly size = input<DfAlertSize>();\n\n /**\n * If `true`, collapsible content is expanded.\n *\n * Applies when `expandable` is enabled.\n *\n * Supports two-way binding with `[(expanded)]`.\n *\n * @defaultValue `false`\n */\n readonly expanded = model(false);\n\n /**\n * If `true`, alert details can be toggled with a \"see more\" control.\n *\n * When `false`, details are shown inline when present.\n *\n * @defaultValue `false`\n */\n readonly expandable = input(undefined, { transform: booleanAttribute });\n\n /**\n * If `true`, alert can be dismissed by the user.\n *\n * The close button (×) will be displayed and you can be notified\n * of the event with the `(closed)` output.\n *\n * @defaultValue `true`\n */\n readonly dismissible = input(undefined, { transform: booleanAttribute });\n\n /**\n * Type of the alert.\n *\n * Supported types: `'success'`, `'info'`, `'warning'`, `'danger'`, `'tip'`.\n *\n * @defaultValue `'warning'`\n */\n readonly type = input<DfAlertType>();\n\n /**\n * Emitted after the alert closing transition finishes, whether triggered by the close button or the `close()` method.\n */\n readonly closed = output<void>();\n\n constructor() {\n const widget = callWidgetFactory(createAlert, {\n defaultConfig: {\n ...DF_ALERT_I18N_DEFAULTS\n },\n afterInit: (alertWidget) => {\n useDirectiveForElement(this.details, alertWidget.directives.collapseDirective);\n },\n events: {\n onHidden: () => this.closed.emit(),\n onCollapsed: () => this.expanded.set(false),\n onExpanded: () => this.expanded.set(true)\n }\n });\n\n super(widget);\n }\n /**\n * Triggers alert closing programmatically.\n *\n * @param animated - whether the transition should be animated. If omitted, the component `animated` input or configured default is used.\n *\n * @returns A promise that resolves once the closing transition has finished.\n */\n close(animated?: boolean): Promise<void> {\n return this.api.close(animated);\n }\n}\n","import type { AlertProps } from '@design-factory/core/components/alert';\nimport { injectDfComponentConfig, provideDfComponentConfig } from '@design-factory/angular/internals';\n\n/**\n * Configuration options supported by `provideDfAlertConfig`.\n *\n * These defaults apply to every `DfAlert` instance within the providing injector, unless explicitly overridden on\n * the component itself.\n */\nexport type DfAlertConfig = Pick<AlertProps, 'animated' | 'ariaCloseButtonLabel' | 'expandLabel' | 'collapseLabel'>;\n\n/**\n * Alert config key in the global DF component config.\n */\nexport const ALERT_CONFIG_KEY = 'alert' as const;\n\n/**\n * Provides the configuration for the alert component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfAlertConfig({ ariaCloseButtonLabel: 'Close alert' })]\n * })\n * export class MyHomeComponent {}\n * ```\n *\n * @param config - Partial configuration or a function that receives the parent configuration and returns a partial configuration.\n *\n * @since 22.0\n */\nexport const provideDfAlertConfig = provideDfComponentConfig<DfAlertConfig>(ALERT_CONFIG_KEY);\n\n/**\n * Injects the configuration for the alert component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfAlertConfig()]\n * })\n * export class MyAlertComponent {\n * readonly alertConfig = injectDfAlertConfig();\n * }\n * ```\n *\n * @returns A writable signal containing the alert configuration.\n *\n * @since 22.0\n */\nexport const injectDfAlertConfig = injectDfComponentConfig<DfAlertConfig>(ALERT_CONFIG_KEY);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { createMatchMedia } from '@design-factory/core/services/matchMedia';
2
+ import { toAngularSignal } from '@design-factory/angular/internals';
3
+ import { signal } from '@angular/core';
4
+
5
+ /**
6
+ * sm breakpoint,
7
+ * tansu signal that returns true when the viewport is at least 576px wide
8
+ */
9
+ const sm$ = createMatchMedia('(width >= 576px)');
10
+ /**
11
+ * md breakpoint,
12
+ * tansu signal that returns true when the viewport is at least 768px wide
13
+ */
14
+ const md$ = createMatchMedia('(width >= 768px)');
15
+ /**
16
+ * lg breakpoint,
17
+ * tansu signal that returns true when the viewport is at least 992px wide
18
+ */
19
+ const lg$ = createMatchMedia('(width >= 992px)');
20
+ /**
21
+ * xl breakpoint,
22
+ * tansu signal that returns true when the viewport is at least 1200px wide
23
+ */
24
+ const xl$ = createMatchMedia('(width >= 1200px)');
25
+ /**
26
+ * Tracks the window size and returns an Angular signal that indicates whether the viewport matches the given breakpoint.
27
+ *
28
+ * It uses `matchMedia` under the hood to track the window size and updates the signal accordingly.
29
+ *
30
+ * @param breakpoint - The breakpoint to track. It can be one of 'sm', 'md', 'lg', or 'xl'.
31
+ * @returns an Angular signal that returns true when the viewport matches the given breakpoint
32
+ */
33
+ const trackWindow = (breakpoint) => {
34
+ switch (breakpoint) {
35
+ case 'sm':
36
+ return toAngularSignal(sm$);
37
+ case 'md':
38
+ return toAngularSignal(md$);
39
+ case 'lg':
40
+ return toAngularSignal(lg$);
41
+ case 'xl':
42
+ return toAngularSignal(xl$);
43
+ default:
44
+ return signal(false);
45
+ }
46
+ };
47
+
48
+ /**
49
+ * Generated bundle index. Do not edit.
50
+ */
51
+
52
+ export { trackWindow };
53
+ //# sourceMappingURL=design-factory-angular-breakpoints.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-factory-angular-breakpoints.mjs","sources":["../../breakpoints/breakpoints.ts","../../breakpoints/design-factory-angular-breakpoints.ts"],"sourcesContent":["import { createMatchMedia } from '@design-factory/core/services/matchMedia';\nimport { toAngularSignal } from '@design-factory/angular/internals';\nimport { signal } from '@angular/core';\n\n/**\n * sm breakpoint,\n * tansu signal that returns true when the viewport is at least 576px wide\n */\nconst sm$ = createMatchMedia('(width >= 576px)');\n/**\n * md breakpoint,\n * tansu signal that returns true when the viewport is at least 768px wide\n */\nconst md$ = createMatchMedia('(width >= 768px)');\n/**\n * lg breakpoint,\n * tansu signal that returns true when the viewport is at least 992px wide\n */\nconst lg$ = createMatchMedia('(width >= 992px)');\n/**\n * xl breakpoint,\n * tansu signal that returns true when the viewport is at least 1200px wide\n */\nconst xl$ = createMatchMedia('(width >= 1200px)');\n\n/**\n * Tracks the window size and returns an Angular signal that indicates whether the viewport matches the given breakpoint.\n *\n * It uses `matchMedia` under the hood to track the window size and updates the signal accordingly.\n *\n * @param breakpoint - The breakpoint to track. It can be one of 'sm', 'md', 'lg', or 'xl'.\n * @returns an Angular signal that returns true when the viewport matches the given breakpoint\n */\nexport const trackWindow = (breakpoint: 'sm' | 'md' | 'lg' | 'xl') => {\n switch (breakpoint) {\n case 'sm':\n return toAngularSignal(sm$);\n case 'md':\n return toAngularSignal(md$);\n case 'lg':\n return toAngularSignal(lg$);\n case 'xl':\n return toAngularSignal(xl$);\n default:\n return signal(false);\n }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIA;;;AAGG;AACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;AAChD;;;AAGG;AACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;AAChD;;;AAGG;AACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;AAChD;;;AAGG;AACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;AAEjD;;;;;;;AAOG;AACI,MAAM,WAAW,GAAG,CAAC,UAAqC,KAAI;IACnE,QAAQ,UAAU;AAChB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC;AAC7B,QAAA;AACE,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;;AAE1B;;AC9CA;;AAEG;;;;"}