ngwr 6.0.0 → 7.0.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 (696) hide show
  1. package/LICENSE +1 -3
  2. package/README.md +179 -32
  3. package/affix/styles/_index.scss +12 -0
  4. package/alert/styles/_index.scss +75 -32
  5. package/anchor/styles/_index.scss +59 -0
  6. package/aurora/aurora.scss +1 -0
  7. package/aurora/styles/_index.scss +30 -0
  8. package/avatar/styles/_index.scss +30 -14
  9. package/back-top/styles/_index.scss +42 -0
  10. package/badge/styles/_index.scss +80 -0
  11. package/badge/styles/_tag.scss +81 -0
  12. package/bar-chart/styles/_index.scss +56 -0
  13. package/blur-text/blur-text.scss +1 -0
  14. package/blur-text/styles/_index.scss +14 -0
  15. package/border-glow/border-glow.scss +4 -0
  16. package/border-glow/styles/_index.scss +228 -0
  17. package/breadcrumbs/breadcrumbs.scss +1 -0
  18. package/breadcrumbs/styles/_index.scss +76 -0
  19. package/button/styles/_index.scss +148 -125
  20. package/calendar/styles/_index.scss +252 -0
  21. package/calendar-heatmap/styles/_index.scss +69 -0
  22. package/card/card.scss +1 -0
  23. package/card/styles/_index.scss +96 -0
  24. package/carousel/styles/_index.scss +102 -0
  25. package/cascader/cascader.scss +1 -0
  26. package/cascader/styles/_index.scss +174 -0
  27. package/checkbox/styles/_index.scss +76 -60
  28. package/circular-text/circular-text.scss +1 -0
  29. package/circular-text/styles/_index.scss +45 -0
  30. package/click-spark/click-spark.scss +1 -0
  31. package/click-spark/styles/_index.scss +16 -0
  32. package/collapse/styles/_index.scss +92 -0
  33. package/color-picker/styles/_index.scss +247 -0
  34. package/command-palette/styles/_index.scss +188 -0
  35. package/compare/styles/_index.scss +100 -0
  36. package/context-menu/styles/_index.scss +112 -0
  37. package/counter/styles/_index.scss +44 -0
  38. package/date-picker/styles/_index.scss +204 -0
  39. package/decrypt-text/decrypt-text.scss +1 -0
  40. package/decrypt-text/styles/_index.scss +26 -0
  41. package/density/styles/_index.scss +37 -0
  42. package/descriptions/styles/_index.scss +104 -0
  43. package/dialog/styles/_index.scss +101 -27
  44. package/divider/styles/_index.scss +43 -24
  45. package/donut-chart/styles/_index.scss +76 -0
  46. package/drag-drop/sortable-list.scss +1 -0
  47. package/drag-drop/styles/_index.scss +99 -0
  48. package/drawer/styles/_index.scss +164 -0
  49. package/dropdown/styles/_index.scss +76 -56
  50. package/empty/styles/_index.scss +49 -0
  51. package/falling-text/falling-text.scss +1 -0
  52. package/falling-text/styles/_index.scss +30 -0
  53. package/fesm2022/ngwr-affix.mjs +102 -0
  54. package/fesm2022/ngwr-affix.mjs.map +1 -0
  55. package/fesm2022/ngwr-alert.mjs +70 -52
  56. package/fesm2022/ngwr-alert.mjs.map +1 -1
  57. package/fesm2022/ngwr-anchor.mjs +103 -0
  58. package/fesm2022/ngwr-anchor.mjs.map +1 -0
  59. package/fesm2022/ngwr-aurora.mjs +309 -0
  60. package/fesm2022/ngwr-aurora.mjs.map +1 -0
  61. package/fesm2022/ngwr-avatar.mjs +81 -71
  62. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  63. package/fesm2022/ngwr-back-top.mjs +81 -0
  64. package/fesm2022/ngwr-back-top.mjs.map +1 -0
  65. package/fesm2022/ngwr-badge.mjs +192 -0
  66. package/fesm2022/ngwr-badge.mjs.map +1 -0
  67. package/fesm2022/ngwr-bar-chart.mjs +69 -0
  68. package/fesm2022/ngwr-bar-chart.mjs.map +1 -0
  69. package/fesm2022/ngwr-blur-text.mjs +181 -0
  70. package/fesm2022/ngwr-blur-text.mjs.map +1 -0
  71. package/fesm2022/ngwr-border-glow.mjs +278 -0
  72. package/fesm2022/ngwr-border-glow.mjs.map +1 -0
  73. package/fesm2022/ngwr-breadcrumbs.mjs +101 -0
  74. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -0
  75. package/fesm2022/ngwr-button.mjs +179 -104
  76. package/fesm2022/ngwr-button.mjs.map +1 -1
  77. package/fesm2022/ngwr-calendar-heatmap.mjs +145 -0
  78. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -0
  79. package/fesm2022/ngwr-calendar.mjs +402 -0
  80. package/fesm2022/ngwr-calendar.mjs.map +1 -0
  81. package/fesm2022/ngwr-card.mjs +100 -0
  82. package/fesm2022/ngwr-card.mjs.map +1 -0
  83. package/fesm2022/ngwr-carousel.mjs +128 -0
  84. package/fesm2022/ngwr-carousel.mjs.map +1 -0
  85. package/fesm2022/ngwr-cascader.mjs +280 -0
  86. package/fesm2022/ngwr-cascader.mjs.map +1 -0
  87. package/fesm2022/ngwr-checkbox.mjs +214 -54
  88. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  89. package/fesm2022/ngwr-circular-text.mjs +168 -0
  90. package/fesm2022/ngwr-circular-text.mjs.map +1 -0
  91. package/fesm2022/ngwr-click-spark.mjs +163 -0
  92. package/fesm2022/ngwr-click-spark.mjs.map +1 -0
  93. package/fesm2022/ngwr-clipboard.mjs +130 -0
  94. package/fesm2022/ngwr-clipboard.mjs.map +1 -0
  95. package/fesm2022/ngwr-collapse.mjs +232 -0
  96. package/fesm2022/ngwr-collapse.mjs.map +1 -0
  97. package/fesm2022/ngwr-color-picker.mjs +646 -0
  98. package/fesm2022/ngwr-color-picker.mjs.map +1 -0
  99. package/fesm2022/ngwr-command-palette.mjs +259 -0
  100. package/fesm2022/ngwr-command-palette.mjs.map +1 -0
  101. package/fesm2022/ngwr-compare.mjs +137 -0
  102. package/fesm2022/ngwr-compare.mjs.map +1 -0
  103. package/fesm2022/ngwr-confetti.mjs +160 -0
  104. package/fesm2022/ngwr-confetti.mjs.map +1 -0
  105. package/fesm2022/ngwr-context-menu.mjs +653 -0
  106. package/fesm2022/ngwr-context-menu.mjs.map +1 -0
  107. package/fesm2022/ngwr-cookie.mjs +127 -0
  108. package/fesm2022/ngwr-cookie.mjs.map +1 -0
  109. package/fesm2022/ngwr-counter.mjs +415 -0
  110. package/fesm2022/ngwr-counter.mjs.map +1 -0
  111. package/fesm2022/ngwr-date-adapter-fns.mjs +180 -0
  112. package/fesm2022/ngwr-date-adapter-fns.mjs.map +1 -0
  113. package/fesm2022/ngwr-date-adapter-luxon.mjs +201 -0
  114. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -0
  115. package/fesm2022/ngwr-date-adapter.mjs +419 -0
  116. package/fesm2022/ngwr-date-adapter.mjs.map +1 -0
  117. package/fesm2022/ngwr-date-picker.mjs +624 -0
  118. package/fesm2022/ngwr-date-picker.mjs.map +1 -0
  119. package/fesm2022/ngwr-decrypt-text.mjs +396 -0
  120. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -0
  121. package/fesm2022/ngwr-density.mjs +157 -0
  122. package/fesm2022/ngwr-density.mjs.map +1 -0
  123. package/fesm2022/ngwr-descriptions.mjs +83 -0
  124. package/fesm2022/ngwr-descriptions.mjs.map +1 -0
  125. package/fesm2022/ngwr-dialog.mjs +249 -383
  126. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  127. package/fesm2022/ngwr-directives.mjs +315 -0
  128. package/fesm2022/ngwr-directives.mjs.map +1 -0
  129. package/fesm2022/ngwr-divider.mjs +74 -59
  130. package/fesm2022/ngwr-divider.mjs.map +1 -1
  131. package/fesm2022/ngwr-donut-chart.mjs +131 -0
  132. package/fesm2022/ngwr-donut-chart.mjs.map +1 -0
  133. package/fesm2022/ngwr-drag-drop.mjs +117 -0
  134. package/fesm2022/ngwr-drag-drop.mjs.map +1 -0
  135. package/fesm2022/ngwr-drawer.mjs +315 -0
  136. package/fesm2022/ngwr-drawer.mjs.map +1 -0
  137. package/fesm2022/ngwr-dropdown.mjs +276 -229
  138. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  139. package/fesm2022/ngwr-empty.mjs +57 -0
  140. package/fesm2022/ngwr-empty.mjs.map +1 -0
  141. package/fesm2022/ngwr-falling-text.mjs +316 -0
  142. package/fesm2022/ngwr-falling-text.mjs.map +1 -0
  143. package/fesm2022/ngwr-file-upload.mjs +260 -0
  144. package/fesm2022/ngwr-file-upload.mjs.map +1 -0
  145. package/fesm2022/ngwr-form.mjs +133 -48
  146. package/fesm2022/ngwr-form.mjs.map +1 -1
  147. package/fesm2022/ngwr-fuzzy-text.mjs +373 -0
  148. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -0
  149. package/fesm2022/ngwr-gauge.mjs +83 -0
  150. package/fesm2022/ngwr-gauge.mjs.map +1 -0
  151. package/fesm2022/ngwr-glitch-text.mjs +67 -0
  152. package/fesm2022/ngwr-glitch-text.mjs.map +1 -0
  153. package/fesm2022/ngwr-gradient-text.mjs +109 -0
  154. package/fesm2022/ngwr-gradient-text.mjs.map +1 -0
  155. package/fesm2022/ngwr-hotkey.mjs +263 -0
  156. package/fesm2022/ngwr-hotkey.mjs.map +1 -0
  157. package/fesm2022/ngwr-i18n-en.mjs +168 -0
  158. package/fesm2022/ngwr-i18n-en.mjs.map +1 -0
  159. package/fesm2022/ngwr-i18n-ru.mjs +156 -0
  160. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -0
  161. package/fesm2022/ngwr-i18n.mjs +478 -0
  162. package/fesm2022/ngwr-i18n.mjs.map +1 -0
  163. package/fesm2022/ngwr-icon-adapters-feather.mjs +74 -0
  164. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -0
  165. package/fesm2022/ngwr-icon-adapters-lucide.mjs +88 -0
  166. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -0
  167. package/fesm2022/ngwr-icon.mjs +189 -650
  168. package/fesm2022/ngwr-icon.mjs.map +1 -1
  169. package/fesm2022/ngwr-image-cropper.mjs +299 -0
  170. package/fesm2022/ngwr-image-cropper.mjs.map +1 -0
  171. package/fesm2022/ngwr-input-number.mjs +239 -0
  172. package/fesm2022/ngwr-input-number.mjs.map +1 -0
  173. package/fesm2022/ngwr-input-otp.mjs +216 -0
  174. package/fesm2022/ngwr-input-otp.mjs.map +1 -0
  175. package/fesm2022/ngwr-input.mjs +183 -104
  176. package/fesm2022/ngwr-input.mjs.map +1 -1
  177. package/fesm2022/ngwr-keyboard.mjs +47 -0
  178. package/fesm2022/ngwr-keyboard.mjs.map +1 -0
  179. package/fesm2022/ngwr-knob.mjs +227 -0
  180. package/fesm2022/ngwr-knob.mjs.map +1 -0
  181. package/fesm2022/ngwr-layout.mjs +197 -0
  182. package/fesm2022/ngwr-layout.mjs.map +1 -0
  183. package/fesm2022/ngwr-lightbox.mjs +131 -0
  184. package/fesm2022/ngwr-lightbox.mjs.map +1 -0
  185. package/fesm2022/ngwr-line-chart.mjs +176 -0
  186. package/fesm2022/ngwr-line-chart.mjs.map +1 -0
  187. package/fesm2022/ngwr-list.mjs +132 -0
  188. package/fesm2022/ngwr-list.mjs.map +1 -0
  189. package/fesm2022/ngwr-loading-bar.mjs +160 -0
  190. package/fesm2022/ngwr-loading-bar.mjs.map +1 -0
  191. package/fesm2022/ngwr-marquee.mjs +224 -0
  192. package/fesm2022/ngwr-marquee.mjs.map +1 -0
  193. package/fesm2022/ngwr-media.mjs +132 -0
  194. package/fesm2022/ngwr-media.mjs.map +1 -0
  195. package/fesm2022/ngwr-mention.mjs +374 -0
  196. package/fesm2022/ngwr-mention.mjs.map +1 -0
  197. package/fesm2022/ngwr-meta.mjs +266 -0
  198. package/fesm2022/ngwr-meta.mjs.map +1 -0
  199. package/fesm2022/ngwr-meter-group.mjs +73 -0
  200. package/fesm2022/ngwr-meter-group.mjs.map +1 -0
  201. package/fesm2022/ngwr-overlay.mjs +145 -0
  202. package/fesm2022/ngwr-overlay.mjs.map +1 -0
  203. package/fesm2022/ngwr-page-header.mjs +53 -0
  204. package/fesm2022/ngwr-page-header.mjs.map +1 -0
  205. package/fesm2022/ngwr-pagination.mjs +152 -96
  206. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  207. package/fesm2022/ngwr-pipes.mjs +290 -11
  208. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  209. package/fesm2022/ngwr-platform.mjs +63 -0
  210. package/fesm2022/ngwr-platform.mjs.map +1 -0
  211. package/fesm2022/ngwr-popconfirm.mjs +188 -0
  212. package/fesm2022/ngwr-popconfirm.mjs.map +1 -0
  213. package/fesm2022/ngwr-popover.mjs +361 -0
  214. package/fesm2022/ngwr-popover.mjs.map +1 -0
  215. package/fesm2022/ngwr-progress.mjs +47 -39
  216. package/fesm2022/ngwr-progress.mjs.map +1 -1
  217. package/fesm2022/ngwr-qr.mjs +168 -190
  218. package/fesm2022/ngwr-qr.mjs.map +1 -1
  219. package/fesm2022/ngwr-radio.mjs +204 -0
  220. package/fesm2022/ngwr-radio.mjs.map +1 -0
  221. package/fesm2022/ngwr-rating.mjs +180 -0
  222. package/fesm2022/ngwr-rating.mjs.map +1 -0
  223. package/fesm2022/ngwr-result.mjs +119 -0
  224. package/fesm2022/ngwr-result.mjs.map +1 -0
  225. package/fesm2022/ngwr-rotating-text.mjs +256 -0
  226. package/fesm2022/ngwr-rotating-text.mjs.map +1 -0
  227. package/fesm2022/ngwr-scramble-text.mjs +165 -0
  228. package/fesm2022/ngwr-scramble-text.mjs.map +1 -0
  229. package/fesm2022/ngwr-scroll.mjs +107 -0
  230. package/fesm2022/ngwr-scroll.mjs.map +1 -0
  231. package/fesm2022/ngwr-segmented.mjs +96 -0
  232. package/fesm2022/ngwr-segmented.mjs.map +1 -0
  233. package/fesm2022/ngwr-select.mjs +842 -307
  234. package/fesm2022/ngwr-select.mjs.map +1 -1
  235. package/fesm2022/ngwr-shiny-text.mjs +127 -0
  236. package/fesm2022/ngwr-shiny-text.mjs.map +1 -0
  237. package/fesm2022/ngwr-sidebar.mjs +134 -0
  238. package/fesm2022/ngwr-sidebar.mjs.map +1 -0
  239. package/fesm2022/ngwr-skeleton.mjs +59 -34
  240. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  241. package/fesm2022/ngwr-slider.mjs +234 -0
  242. package/fesm2022/ngwr-slider.mjs.map +1 -0
  243. package/fesm2022/ngwr-sparkline.mjs +104 -0
  244. package/fesm2022/ngwr-sparkline.mjs.map +1 -0
  245. package/fesm2022/ngwr-speed-dial.mjs +79 -0
  246. package/fesm2022/ngwr-speed-dial.mjs.map +1 -0
  247. package/fesm2022/ngwr-spinner.mjs +34 -28
  248. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  249. package/fesm2022/ngwr-splash-cursor.mjs +970 -0
  250. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -0
  251. package/fesm2022/ngwr-split-text.mjs +200 -0
  252. package/fesm2022/ngwr-split-text.mjs.map +1 -0
  253. package/fesm2022/ngwr-splitter.mjs +125 -0
  254. package/fesm2022/ngwr-splitter.mjs.map +1 -0
  255. package/fesm2022/ngwr-spotlight-card.mjs +138 -0
  256. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -0
  257. package/fesm2022/ngwr-squircle.mjs +320 -0
  258. package/fesm2022/ngwr-squircle.mjs.map +1 -0
  259. package/fesm2022/ngwr-star-border.mjs +72 -0
  260. package/fesm2022/ngwr-star-border.mjs.map +1 -0
  261. package/fesm2022/ngwr-statistic.mjs +220 -0
  262. package/fesm2022/ngwr-statistic.mjs.map +1 -0
  263. package/fesm2022/ngwr-stepper.mjs +186 -0
  264. package/fesm2022/ngwr-stepper.mjs.map +1 -0
  265. package/fesm2022/ngwr-storage.mjs +317 -0
  266. package/fesm2022/ngwr-storage.mjs.map +1 -0
  267. package/fesm2022/ngwr-switch.mjs +99 -0
  268. package/fesm2022/ngwr-switch.mjs.map +1 -0
  269. package/fesm2022/ngwr-table.mjs +218 -207
  270. package/fesm2022/ngwr-table.mjs.map +1 -1
  271. package/fesm2022/ngwr-tabs.mjs +217 -0
  272. package/fesm2022/ngwr-tabs.mjs.map +1 -0
  273. package/fesm2022/ngwr-textarea.mjs +106 -120
  274. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  275. package/fesm2022/ngwr-theme.mjs +152 -0
  276. package/fesm2022/ngwr-theme.mjs.map +1 -0
  277. package/fesm2022/ngwr-tilt-card.mjs +137 -0
  278. package/fesm2022/ngwr-tilt-card.mjs.map +1 -0
  279. package/fesm2022/ngwr-timeline.mjs +73 -0
  280. package/fesm2022/ngwr-timeline.mjs.map +1 -0
  281. package/fesm2022/ngwr-toast.mjs +446 -0
  282. package/fesm2022/ngwr-toast.mjs.map +1 -0
  283. package/fesm2022/ngwr-toolbar.mjs +46 -0
  284. package/fesm2022/ngwr-toolbar.mjs.map +1 -0
  285. package/fesm2022/ngwr-tree.mjs +483 -0
  286. package/fesm2022/ngwr-tree.mjs.map +1 -0
  287. package/fesm2022/ngwr-typewriter.mjs +229 -0
  288. package/fesm2022/ngwr-typewriter.mjs.map +1 -0
  289. package/fesm2022/ngwr-typography.mjs +79 -0
  290. package/fesm2022/ngwr-typography.mjs.map +1 -0
  291. package/fesm2022/ngwr-utils.mjs +535 -0
  292. package/fesm2022/ngwr-utils.mjs.map +1 -0
  293. package/fesm2022/ngwr-validators.mjs +214 -0
  294. package/fesm2022/ngwr-validators.mjs.map +1 -0
  295. package/fesm2022/ngwr-version.mjs +51 -0
  296. package/fesm2022/ngwr-version.mjs.map +1 -0
  297. package/fesm2022/ngwr-virtual-scroll.mjs +99 -0
  298. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -0
  299. package/fesm2022/ngwr-waves.mjs +356 -0
  300. package/fesm2022/ngwr-waves.mjs.map +1 -0
  301. package/fesm2022/ngwr-window.mjs +1141 -0
  302. package/fesm2022/ngwr-window.mjs.map +1 -0
  303. package/fesm2022/ngwr.mjs +0 -3
  304. package/fesm2022/ngwr.mjs.map +1 -1
  305. package/file-upload/styles/_index.scss +152 -0
  306. package/form/styles/_index.scss +85 -42
  307. package/gauge/styles/_index.scss +37 -0
  308. package/glitch-text/glitch-text.scss +1 -0
  309. package/glitch-text/styles/_index.scss +144 -0
  310. package/gradient-text/gradient-text.scss +1 -0
  311. package/gradient-text/styles/_index.scss +113 -0
  312. package/icon/styles/_index.scss +21 -15
  313. package/image-cropper/styles/_index.scss +114 -0
  314. package/input/styles/_index.scss +133 -93
  315. package/input-number/styles/_index.scss +75 -0
  316. package/input-otp/styles/_index.scss +53 -0
  317. package/keyboard/styles/_index.scss +55 -0
  318. package/knob/styles/_index.scss +54 -0
  319. package/layout/styles/_index.scss +65 -0
  320. package/lightbox/lightbox.scss +1 -0
  321. package/lightbox/styles/_index.scss +144 -0
  322. package/line-chart/styles/_index.scss +93 -0
  323. package/list/list.scss +1 -0
  324. package/list/styles/_index.scss +101 -0
  325. package/loading-bar/loading-bar.scss +1 -0
  326. package/loading-bar/styles/_index.scss +29 -0
  327. package/marquee/marquee.scss +1 -0
  328. package/marquee/styles/_index.scss +138 -0
  329. package/mention/styles/_index.scss +47 -0
  330. package/meter-group/styles/_index.scss +61 -0
  331. package/package.json +576 -99
  332. package/page-header/styles/_index.scss +78 -0
  333. package/pagination/styles/_index.scss +89 -34
  334. package/popconfirm/styles/_index.scss +32 -0
  335. package/popover/styles/_index.scss +83 -0
  336. package/progress/styles/_index.scss +29 -14
  337. package/qr/styles/_index.scss +6 -3
  338. package/radio/styles/_index.scss +111 -0
  339. package/rating/styles/_index.scss +63 -0
  340. package/result/styles/_index.scss +69 -0
  341. package/rotating-text/rotating-text.scss +1 -0
  342. package/rotating-text/styles/_index.scss +39 -0
  343. package/schematics/collection.json +37 -0
  344. package/schematics/component-style/index.js +49 -0
  345. package/{alert/alert-type.d.ts → schematics/component-style/schema.js} +2 -1
  346. package/schematics/component-style/schema.json +20 -0
  347. package/schematics/icon-set/index.js +96 -0
  348. package/{avatar/public-api.d.ts → schematics/icon-set/schema.js} +2 -1
  349. package/schematics/icon-set/schema.json +39 -0
  350. package/schematics/migrations/v7/index.js +187 -0
  351. package/schematics/migrations.json +10 -0
  352. package/schematics/ng-add/index.js +180 -0
  353. package/{cdk/public-api.d.ts → schematics/ng-add/schema.js} +2 -1
  354. package/schematics/ng-add/schema.json +80 -0
  355. package/schematics/page/index.js +63 -0
  356. package/{alert/public-api.d.ts → schematics/page/schema.js} +2 -2
  357. package/schematics/page/schema.json +39 -0
  358. package/schematics/page/templates.js +198 -0
  359. package/schematics/provider/index.js +126 -0
  360. package/schematics/provider/schema.js +8 -0
  361. package/schematics/provider/schema.json +52 -0
  362. package/schematics/use/index.js +143 -0
  363. package/schematics/use/schema.js +8 -0
  364. package/schematics/use/schema.json +25 -0
  365. package/schematics/use/symbol-map.json +356 -0
  366. package/scramble-text/scramble-text.scss +1 -0
  367. package/scramble-text/styles/_index.scss +8 -0
  368. package/segmented/styles/_index.scss +92 -0
  369. package/select/styles/_index.scss +245 -159
  370. package/shiny-text/shiny-text.scss +1 -0
  371. package/shiny-text/styles/_index.scss +101 -0
  372. package/sidebar/styles/_index.scss +208 -0
  373. package/skeleton/styles/_index.scss +33 -33
  374. package/slider/styles/_index.scss +77 -0
  375. package/sparkline/styles/_index.scss +9 -0
  376. package/speed-dial/styles/_index.scss +158 -0
  377. package/spinner/styles/_index.scss +38 -22
  378. package/splash-cursor/splash-cursor.scss +1 -0
  379. package/splash-cursor/styles/_index.scss +27 -0
  380. package/split-text/split-text.scss +1 -0
  381. package/split-text/styles/_index.scss +22 -0
  382. package/splitter/styles/_index.scss +85 -0
  383. package/spotlight-card/spotlight-card.scss +1 -0
  384. package/spotlight-card/styles/_index.scss +43 -0
  385. package/squircle/styles/_index.scss +34 -0
  386. package/star-border/star-border.scss +1 -0
  387. package/star-border/styles/_index.scss +118 -0
  388. package/statistic/styles/_index.scss +54 -0
  389. package/stepper/styles/_index.scss +162 -0
  390. package/styles/_animations.scss +198 -0
  391. package/styles/_breakpoints.scss +75 -0
  392. package/styles/_grid.scss +71 -0
  393. package/styles/_reset.scss +123 -0
  394. package/styles/_typography.scss +122 -0
  395. package/styles.scss +102 -13
  396. package/switch/styles/_index.scss +82 -0
  397. package/table/styles/_index.scss +255 -4
  398. package/tabs/styles/_index.scss +71 -0
  399. package/textarea/styles/_index.scss +47 -56
  400. package/theme/styles/_colors.scss +83 -0
  401. package/theme/styles/_dark.scss +85 -0
  402. package/theme/styles/_focus.scss +93 -0
  403. package/theme/styles/_index.scss +5 -0
  404. package/theme/styles/_mixins.scss +57 -0
  405. package/theme/styles/_variables.scss +118 -0
  406. package/tilt-card/styles/_index.scss +40 -0
  407. package/tilt-card/tilt-card.scss +1 -0
  408. package/timeline/styles/_index.scss +127 -0
  409. package/toast/styles/_index.scss +263 -0
  410. package/toolbar/styles/_index.scss +65 -0
  411. package/tree/styles/_index.scss +271 -0
  412. package/types/ngwr-affix.d.ts +43 -0
  413. package/types/ngwr-alert.d.ts +68 -0
  414. package/types/ngwr-anchor.d.ts +53 -0
  415. package/types/ngwr-aurora.d.ts +52 -0
  416. package/types/ngwr-avatar.d.ts +90 -0
  417. package/types/ngwr-back-top.d.ts +37 -0
  418. package/types/ngwr-badge.d.ts +158 -0
  419. package/types/ngwr-bar-chart.d.ts +47 -0
  420. package/types/ngwr-blur-text.d.ts +62 -0
  421. package/types/ngwr-border-glow.d.ts +66 -0
  422. package/types/ngwr-breadcrumbs.d.ts +61 -0
  423. package/types/ngwr-button.d.ts +176 -0
  424. package/types/ngwr-calendar-heatmap.d.ts +58 -0
  425. package/types/ngwr-calendar.d.ts +116 -0
  426. package/types/ngwr-card.d.ts +50 -0
  427. package/types/ngwr-carousel.d.ts +57 -0
  428. package/types/ngwr-cascader.d.ts +107 -0
  429. package/types/ngwr-checkbox.d.ts +139 -0
  430. package/types/ngwr-circular-text.d.ts +49 -0
  431. package/types/ngwr-click-spark.d.ts +52 -0
  432. package/types/ngwr-clipboard.d.ts +53 -0
  433. package/types/ngwr-collapse.d.ts +139 -0
  434. package/types/ngwr-color-picker.d.ts +302 -0
  435. package/types/ngwr-command-palette.d.ts +113 -0
  436. package/types/ngwr-compare.d.ts +55 -0
  437. package/types/ngwr-confetti.d.ts +70 -0
  438. package/types/ngwr-context-menu.d.ts +207 -0
  439. package/types/ngwr-cookie.d.ts +60 -0
  440. package/types/ngwr-counter.d.ts +182 -0
  441. package/types/ngwr-date-adapter-fns.d.ts +73 -0
  442. package/types/ngwr-date-adapter-luxon.d.ts +73 -0
  443. package/types/ngwr-date-adapter.d.ts +198 -0
  444. package/types/ngwr-date-picker.d.ts +117 -0
  445. package/types/ngwr-decrypt-text.d.ts +85 -0
  446. package/types/ngwr-density.d.ts +97 -0
  447. package/types/ngwr-descriptions.d.ts +41 -0
  448. package/types/ngwr-dialog.d.ts +210 -0
  449. package/types/ngwr-directives.d.ts +125 -0
  450. package/types/ngwr-divider.d.ts +73 -0
  451. package/types/ngwr-donut-chart.d.ts +53 -0
  452. package/types/ngwr-drag-drop.d.ts +83 -0
  453. package/types/ngwr-drawer.d.ts +155 -0
  454. package/types/ngwr-dropdown.d.ts +124 -0
  455. package/types/ngwr-empty.d.ts +38 -0
  456. package/types/ngwr-falling-text.d.ts +63 -0
  457. package/types/ngwr-file-upload.d.ts +94 -0
  458. package/types/ngwr-form.d.ts +95 -0
  459. package/types/ngwr-fuzzy-text.d.ts +74 -0
  460. package/types/ngwr-gauge.d.ts +39 -0
  461. package/types/ngwr-glitch-text.d.ts +31 -0
  462. package/types/ngwr-gradient-text.d.ts +46 -0
  463. package/types/ngwr-hotkey.d.ts +142 -0
  464. package/types/ngwr-i18n-en.d.ts +18 -0
  465. package/types/ngwr-i18n-ru.d.ts +6 -0
  466. package/types/ngwr-i18n.d.ts +336 -0
  467. package/types/ngwr-icon-adapters-feather.d.ts +44 -0
  468. package/types/ngwr-icon-adapters-lucide.d.ts +54 -0
  469. package/types/ngwr-icon.d.ts +180 -0
  470. package/types/ngwr-image-cropper.d.ts +110 -0
  471. package/types/ngwr-input-number.d.ts +77 -0
  472. package/types/ngwr-input-otp.d.ts +78 -0
  473. package/types/ngwr-input.d.ts +131 -0
  474. package/types/ngwr-keyboard.d.ts +34 -0
  475. package/types/ngwr-knob.d.ts +77 -0
  476. package/types/ngwr-layout.d.ts +89 -0
  477. package/types/ngwr-lightbox.d.ts +50 -0
  478. package/types/ngwr-line-chart.d.ts +90 -0
  479. package/types/ngwr-list.d.ts +71 -0
  480. package/types/ngwr-loading-bar.d.ts +79 -0
  481. package/types/ngwr-marquee.d.ts +95 -0
  482. package/types/ngwr-media.d.ts +74 -0
  483. package/types/ngwr-mention.d.ts +110 -0
  484. package/types/ngwr-meta.d.ts +164 -0
  485. package/types/ngwr-meter-group.d.ts +57 -0
  486. package/types/ngwr-overlay.d.ts +110 -0
  487. package/types/ngwr-page-header.d.ts +35 -0
  488. package/types/ngwr-pagination.d.ts +119 -0
  489. package/types/ngwr-pipes.d.ts +177 -0
  490. package/types/ngwr-platform.d.ts +38 -0
  491. package/types/ngwr-popconfirm.d.ts +79 -0
  492. package/types/ngwr-popover.d.ts +90 -0
  493. package/types/ngwr-progress.d.ts +33 -0
  494. package/types/ngwr-qr.d.ts +56 -0
  495. package/types/ngwr-radio.d.ts +120 -0
  496. package/types/ngwr-rating.d.ts +62 -0
  497. package/types/ngwr-result.d.ts +64 -0
  498. package/types/ngwr-rotating-text.d.ts +72 -0
  499. package/types/ngwr-scramble-text.d.ts +49 -0
  500. package/types/ngwr-scroll.d.ts +65 -0
  501. package/types/ngwr-segmented.d.ts +65 -0
  502. package/types/ngwr-select.d.ts +413 -0
  503. package/types/ngwr-shiny-text.d.ts +70 -0
  504. package/types/ngwr-sidebar.d.ts +83 -0
  505. package/types/ngwr-skeleton.d.ts +41 -0
  506. package/types/ngwr-slider.d.ts +86 -0
  507. package/types/ngwr-sparkline.d.ts +48 -0
  508. package/types/ngwr-speed-dial.d.ts +51 -0
  509. package/types/ngwr-spinner.d.ts +41 -0
  510. package/types/ngwr-splash-cursor.d.ts +94 -0
  511. package/types/ngwr-split-text.d.ts +83 -0
  512. package/types/ngwr-splitter.d.ts +52 -0
  513. package/types/ngwr-spotlight-card.d.ts +71 -0
  514. package/types/ngwr-squircle.d.ts +132 -0
  515. package/types/ngwr-star-border.d.ts +40 -0
  516. package/types/ngwr-statistic.d.ts +88 -0
  517. package/types/ngwr-stepper.d.ts +99 -0
  518. package/types/ngwr-storage.d.ts +178 -0
  519. package/types/ngwr-switch.d.ts +39 -0
  520. package/types/ngwr-table.d.ts +237 -0
  521. package/types/ngwr-tabs.d.ts +125 -0
  522. package/types/ngwr-textarea.d.ts +60 -0
  523. package/types/ngwr-theme.d.ts +124 -0
  524. package/types/ngwr-tilt-card.d.ts +63 -0
  525. package/types/ngwr-timeline.d.ts +40 -0
  526. package/types/ngwr-toast.d.ts +230 -0
  527. package/types/ngwr-toolbar.d.ts +30 -0
  528. package/types/ngwr-tree.d.ts +150 -0
  529. package/types/ngwr-typewriter.d.ts +84 -0
  530. package/types/ngwr-typography.d.ts +56 -0
  531. package/types/ngwr-utils.d.ts +447 -0
  532. package/types/ngwr-validators.d.ts +70 -0
  533. package/types/ngwr-version.d.ts +44 -0
  534. package/types/ngwr-virtual-scroll.d.ts +64 -0
  535. package/types/ngwr-waves.d.ts +71 -0
  536. package/types/ngwr-window.d.ts +437 -0
  537. package/types/ngwr.d.ts +2 -0
  538. package/typewriter/styles/_index.scss +33 -0
  539. package/typewriter/typewriter.scss +1 -0
  540. package/typography/styles/_index.scss +211 -0
  541. package/virtual-scroll/styles/_index.scss +27 -0
  542. package/virtual-scroll/virtual-scroll.scss +1 -0
  543. package/waves/styles/_index.scss +24 -0
  544. package/waves/waves.scss +1 -0
  545. package/window/styles/_index.scss +430 -0
  546. package/alert/alert.component.d.ts +0 -21
  547. package/alert/index.d.ts +0 -5
  548. package/alert/styles/theming.scss +0 -26
  549. package/alert/styles/vars.scss +0 -11
  550. package/avatar/avatar.component.d.ts +0 -27
  551. package/avatar/index.d.ts +0 -5
  552. package/button/button-group.component.d.ts +0 -12
  553. package/button/button.component.d.ts +0 -31
  554. package/button/index.d.ts +0 -5
  555. package/button/public-api.d.ts +0 -8
  556. package/button/styles/vars.scss +0 -13
  557. package/cdk/base.directive.d.ts +0 -20
  558. package/cdk/index.d.ts +0 -5
  559. package/cdk/rxjs/index.d.ts +0 -5
  560. package/cdk/rxjs/is-array.d.ts +0 -8
  561. package/cdk/rxjs/is-defined.d.ts +0 -8
  562. package/cdk/rxjs/is-not-empty-array.d.ts +0 -8
  563. package/cdk/rxjs/is-observable.d.ts +0 -9
  564. package/cdk/rxjs/public-api.d.ts +0 -10
  565. package/cdk/types/index.d.ts +0 -5
  566. package/cdk/types/maybe.d.ts +0 -7
  567. package/cdk/types/public-api.d.ts +0 -9
  568. package/cdk/types/safe-any.d.ts +0 -7
  569. package/cdk/types/theme-color.d.ts +0 -8
  570. package/cdk/utils/generate-random-id.d.ts +0 -12
  571. package/cdk/utils/index.d.ts +0 -5
  572. package/cdk/utils/public-api.d.ts +0 -7
  573. package/checkbox/checkbox.component.d.ts +0 -28
  574. package/checkbox/index.d.ts +0 -5
  575. package/checkbox/public-api.d.ts +0 -7
  576. package/checkbox/styles/vars.scss +0 -16
  577. package/dialog/dialog-animations.d.ts +0 -22
  578. package/dialog/dialog-base.directive.d.ts +0 -40
  579. package/dialog/dialog-close.directive.d.ts +0 -9
  580. package/dialog/dialog-content.directive.d.ts +0 -6
  581. package/dialog/dialog-data.token.d.ts +0 -8
  582. package/dialog/dialog-footer.directive.d.ts +0 -8
  583. package/dialog/dialog-options.d.ts +0 -19
  584. package/dialog/dialog-ref.d.ts +0 -26
  585. package/dialog/dialog-title.directive.d.ts +0 -6
  586. package/dialog/dialog.component.d.ts +0 -28
  587. package/dialog/dialog.module.d.ts +0 -6
  588. package/dialog/dialog.service.d.ts +0 -28
  589. package/dialog/index.d.ts +0 -5
  590. package/dialog/public-api.d.ts +0 -18
  591. package/dialog/styles/vars.scss +0 -7
  592. package/divider/divider.component.d.ts +0 -13
  593. package/divider/index.d.ts +0 -5
  594. package/divider/public-api.d.ts +0 -7
  595. package/dropdown/dropdown-menu-item.component.d.ts +0 -12
  596. package/dropdown/dropdown-menu.component.d.ts +0 -14
  597. package/dropdown/dropdown.directive.d.ts +0 -29
  598. package/dropdown/dropdown.types.d.ts +0 -9
  599. package/dropdown/index.d.ts +0 -5
  600. package/dropdown/public-api.d.ts +0 -10
  601. package/dropdown/styles/vars.scss +0 -18
  602. package/fesm2022/ngwr-cdk-rxjs.mjs +0 -53
  603. package/fesm2022/ngwr-cdk-rxjs.mjs.map +0 -1
  604. package/fesm2022/ngwr-cdk-types.mjs +0 -44
  605. package/fesm2022/ngwr-cdk-types.mjs.map +0 -1
  606. package/fesm2022/ngwr-cdk-utils.mjs +0 -30
  607. package/fesm2022/ngwr-cdk-utils.mjs.map +0 -1
  608. package/fesm2022/ngwr-cdk.mjs +0 -46
  609. package/fesm2022/ngwr-cdk.mjs.map +0 -1
  610. package/fesm2022/ngwr-tag.mjs +0 -87
  611. package/fesm2022/ngwr-tag.mjs.map +0 -1
  612. package/form/form-error.component.d.ts +0 -11
  613. package/form/form-item.component.d.ts +0 -14
  614. package/form/index.d.ts +0 -5
  615. package/form/public-api.d.ts +0 -8
  616. package/icon/icon.component.d.ts +0 -24
  617. package/icon/icon.service.d.ts +0 -23
  618. package/icon/icons.d.ts +0 -770
  619. package/icon/index.d.ts +0 -5
  620. package/icon/provide-wr-icons.d.ts +0 -9
  621. package/icon/public-api.d.ts +0 -10
  622. package/icon/styles/vars.scss +0 -3
  623. package/index.d.ts +0 -5
  624. package/input/index.d.ts +0 -5
  625. package/input/input-types.d.ts +0 -1
  626. package/input/input.component.d.ts +0 -38
  627. package/input/public-api.d.ts +0 -8
  628. package/input/styles/vars.scss +0 -17
  629. package/pagination/index.d.ts +0 -5
  630. package/pagination/pagination.component.d.ts +0 -23
  631. package/pagination/pagination.types.d.ts +0 -7
  632. package/pagination/public-api.d.ts +0 -8
  633. package/pagination/styles/vars.scss +0 -14
  634. package/pipes/index.d.ts +0 -5
  635. package/pipes/new-array.pipe.d.ts +0 -13
  636. package/pipes/public-api.d.ts +0 -7
  637. package/progress/index.d.ts +0 -5
  638. package/progress/progress.component.d.ts +0 -10
  639. package/progress/public-api.d.ts +0 -7
  640. package/progress/styles/theming.scss +0 -8
  641. package/progress/styles/vars.scss +0 -6
  642. package/public-api.d.ts +0 -2
  643. package/qr/generator.d.ts +0 -7
  644. package/qr/index.d.ts +0 -5
  645. package/qr/public-api.d.ts +0 -7
  646. package/qr/qr.component.d.ts +0 -31
  647. package/qr/qrcodegen.d.ts +0 -94
  648. package/select/index.d.ts +0 -5
  649. package/select/public-api.d.ts +0 -10
  650. package/select/select-option-group.component.d.ts +0 -19
  651. package/select/select-option.component.d.ts +0 -22
  652. package/select/select.component.d.ts +0 -63
  653. package/select/select.types.d.ts +0 -17
  654. package/select/styles/vars.scss +0 -32
  655. package/skeleton/index.d.ts +0 -1
  656. package/skeleton/skeleton.component.d.ts +0 -10
  657. package/spinner/index.d.ts +0 -1
  658. package/spinner/spinner.component.d.ts +0 -13
  659. package/spinner/spinner.types.d.ts +0 -7
  660. package/styles/animations.scss +0 -92
  661. package/styles/cdk.scss +0 -5
  662. package/styles/colors.scss +0 -72
  663. package/styles/grid.scss +0 -99
  664. package/styles/maps.scss +0 -31
  665. package/styles/reset.scss +0 -112
  666. package/styles/variables.scss +0 -72
  667. package/table/index.d.ts +0 -5
  668. package/table/public-api.d.ts +0 -11
  669. package/table/styles/table-filter.scss +0 -202
  670. package/table/styles/table-sort.scss +0 -47
  671. package/table/styles/table.scss +0 -232
  672. package/table/styles/vars.scss +0 -21
  673. package/table/table-cell/index.d.ts +0 -7
  674. package/table/table-cell/table-cell.directive.d.ts +0 -8
  675. package/table/table-filter/index.d.ts +0 -7
  676. package/table/table-filter/table-filter.component.d.ts +0 -18
  677. package/table/table-sort/index.d.ts +0 -7
  678. package/table/table-sort/table-sort.component.d.ts +0 -8
  679. package/table/table.component.d.ts +0 -33
  680. package/table/types/index.d.ts +0 -6
  681. package/table/types/table-cell-context.d.ts +0 -6
  682. package/table/types/table-columns.d.ts +0 -7
  683. package/table/types/table-filter-emit.d.ts +0 -5
  684. package/table/types/table-filter-item.d.ts +0 -6
  685. package/table/types/table-order-item.d.ts +0 -5
  686. package/table/types/table-order.enum.d.ts +0 -5
  687. package/tag/index.d.ts +0 -5
  688. package/tag/public-api.d.ts +0 -7
  689. package/tag/styles/_index.scss +0 -32
  690. package/tag/styles/theming.scss +0 -21
  691. package/tag/styles/vars.scss +0 -12
  692. package/tag/tag.component.d.ts +0 -21
  693. package/textarea/index.d.ts +0 -7
  694. package/textarea/public-api.d.ts +0 -7
  695. package/textarea/styles/vars.scss +0 -17
  696. package/textarea/textarea.component.d.ts +0 -44
@@ -1,13 +1,11 @@
1
- import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';
1
+ import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
2
+ import { ScrollStrategyOptions } from '@angular/cdk/overlay';
3
+ import { ComponentPortal } from '@angular/cdk/portal';
4
+ import { isPlatformBrowser } from '@angular/common';
2
5
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Directive, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, HostBinding, HostListener, InjectionToken, inject, Injector, Injectable, NgModule, Optional, Input } from '@angular/core';
4
- import { trigger, state, style, transition, animate } from '@angular/animations';
5
- import { Subject, filter, take, takeUntil } from 'rxjs';
6
- import * as i2 from '@angular/cdk/overlay';
7
- import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
8
- import { hasModifierKey } from '@angular/cdk/keycodes';
9
- import { WrAbstractBase } from 'ngwr/cdk';
10
- import { generateRandomId } from 'ngwr/cdk/utils';
6
+ import { InjectionToken, inject, EnvironmentInjector, PLATFORM_ID, Injector, Service, ElementRef, Directive, input, computed } from '@angular/core';
7
+ import { WR_OVERLAY } from 'ngwr/overlay';
8
+ import { Subject } from 'rxjs';
11
9
 
12
10
  /**
13
11
  * @license
@@ -15,170 +13,65 @@ import { generateRandomId } from 'ngwr/cdk/utils';
15
13
  * Use of this source code is governed by an MIT-style license that can be
16
14
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
17
15
  */
18
- const WR_ANIMATION_ZOOM_CLASS_NAME_MAP = {
19
- enter: 'wr-animation-zoom-enter',
20
- enterActive: 'wr-animation-zoom-enter--active',
21
- leave: 'wr-animation-zoom-leave',
22
- leaveActive: 'wr-animation-zoom-leave--active',
23
- };
24
- const WR_ANIMATION_FADE_CLASS_NAME_MAP = {
25
- enter: 'wr-animation-fade-enter',
26
- enterActive: 'wr-animation-fade-enter--active',
27
- leave: 'wr-animation-fade-leave',
28
- leaveActive: 'wr-animation-fade-leave--active',
29
- };
30
- const wrDialogAnimations = {
31
- dialogComponent: trigger('dialogComponent', [
32
- state('void, exit', style({})),
33
- state('enter', style({})),
34
- transition('* => enter', animate('.24s', style({}))),
35
- transition('* => void, * => exit', animate('.2s', style({}))),
36
- ]),
37
- };
38
-
39
16
  /**
40
- * @license
17
+ * Handle returned by `WrDialog.open()`.
41
18
  *
42
- * Use of this source code is governed by an MIT-style license that can be
43
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
19
+ * Wraps the underlying `OverlayRef` and tracks the close result.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const ref = dialog.open<ConfirmComponent, boolean>(ConfirmComponent);
24
+ * const result = await ref.awaitClose(); // boolean | undefined
25
+ * ```
44
26
  */
45
- class WrDialogOptions {
46
- }
47
-
48
- class WrDialogBaseDirective extends BasePortalOutlet {
49
- constructor(cdr, options, overlayRef) {
50
- super();
51
- this.cdr = cdr;
52
- this.options = options;
53
- this.overlayRef = overlayRef;
54
- this.containerClick = new EventEmitter();
55
- this.animationStateChanged = new EventEmitter();
56
- this.state = 'enter';
57
- this.destroyed$ = new Subject();
58
- }
59
- ngOnDestroy() {
60
- this.destroyed$.next();
61
- this.destroyed$.complete();
62
- }
63
- onContainerClick(e) {
64
- if (e.target === e.currentTarget || e.target === this.dialogElementRef.nativeElement) {
65
- this.containerClick.emit();
27
+ class WrDialogRef {
28
+ _overlayRef;
29
+ /** Emits the close result once and completes. */
30
+ closed = new Subject();
31
+ /** @internal */
32
+ componentRef = null;
33
+ /** @internal */
34
+ focusTrap = null;
35
+ /** @internal */
36
+ previouslyFocused = null;
37
+ constructor(_overlayRef) {
38
+ this._overlayRef = _overlayRef;
39
+ }
40
+ /** The instantiated dialog component. */
41
+ get componentInstance() {
42
+ if (!this.componentRef) {
43
+ throw new Error('WrDialogRef: component not yet attached');
66
44
  }
45
+ return this.componentRef.instance;
67
46
  }
68
- attachComponentPortal(portal) {
69
- return this.portalOutlet.attachComponentPortal(portal);
70
- }
71
- attachTemplatePortal(portal) {
72
- return this.portalOutlet.attachTemplatePortal(portal);
73
- }
74
- setEnterAnimationClass() {
75
- const dialogElement = this.dialogElementRef.nativeElement;
76
- const backdropElement = this.overlayRef.backdropElement;
77
- dialogElement.classList.add(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.enter);
78
- dialogElement.classList.add(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.enterActive);
79
- if (backdropElement) {
80
- backdropElement.classList.add(WR_ANIMATION_FADE_CLASS_NAME_MAP.enter);
81
- backdropElement.classList.add(WR_ANIMATION_FADE_CLASS_NAME_MAP.enterActive);
82
- }
83
- }
84
- setExitAnimationClass() {
85
- const dialogElement = this.dialogElementRef.nativeElement;
86
- dialogElement.classList.add(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.leave);
87
- dialogElement.classList.add(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.leaveActive);
88
- this.setMaskExitAnimationClass();
89
- }
90
- setMaskExitAnimationClass() {
91
- const backdropElement = this.overlayRef.backdropElement;
92
- if (backdropElement) {
93
- backdropElement.classList.add(WR_ANIMATION_FADE_CLASS_NAME_MAP.leave);
94
- backdropElement.classList.add(WR_ANIMATION_FADE_CLASS_NAME_MAP.leaveActive);
95
- }
96
- }
97
- cleanAnimationClass() {
98
- const backdropElement = this.overlayRef.backdropElement;
99
- const dialogElement = this.dialogElementRef.nativeElement;
100
- if (backdropElement) {
101
- backdropElement.classList.remove(WR_ANIMATION_FADE_CLASS_NAME_MAP.enter);
102
- backdropElement.classList.remove(WR_ANIMATION_FADE_CLASS_NAME_MAP.enterActive);
103
- }
104
- dialogElement.classList.remove(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.enter);
105
- dialogElement.classList.remove(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.enterActive);
106
- dialogElement.classList.remove(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.leave);
107
- dialogElement.classList.remove(WR_ANIMATION_ZOOM_CLASS_NAME_MAP.leaveActive);
108
- }
109
- onAnimationDone(event) {
110
- this.cleanAnimationClass();
111
- this.animationStateChanged.emit(event);
112
- }
113
- onAnimationStart(event) {
114
- if (event.toState === 'enter') {
115
- this.setEnterAnimationClass();
116
- }
117
- else if (event.toState === 'exit') {
118
- this.setExitAnimationClass();
47
+ /** Close the dialog, optionally returning a result. */
48
+ close(result) {
49
+ this.closed.next(result);
50
+ this.closed.complete();
51
+ this.focusTrap?.destroy();
52
+ this.focusTrap = null;
53
+ const restore = this.previouslyFocused;
54
+ this.previouslyFocused = null;
55
+ this._overlayRef.dispose();
56
+ // Restore focus after disposal so the trigger is reachable again.
57
+ if (restore && typeof restore.focus === 'function') {
58
+ restore.focus();
119
59
  }
120
- this.animationStateChanged.emit(event);
121
- }
122
- startExitAnimation() {
123
- this.state = 'exit';
124
- this.cdr.markForCheck();
125
- }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogBaseDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: WrDialogOptions }, { token: i2.OverlayRef }], target: i0.ɵɵFactoryTarget.Directive }); }
127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogBaseDirective, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
128
- }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogBaseDirective, decorators: [{
130
- type: Directive
131
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: WrDialogOptions }, { type: i2.OverlayRef }] });
132
-
133
- class WrDialogComponent extends WrDialogBaseDirective {
134
- onAnimationStart(event) {
135
- super.onAnimationStart(event);
136
- }
137
- onAnimationDone(event) {
138
- super.onAnimationDone(event);
139
- }
140
- onContainerClick(e) {
141
- super.onContainerClick(e);
142
60
  }
143
- /** Set element classes */
144
- get elClasses() {
145
- return {
146
- 'wr-dialog': true,
147
- };
61
+ /** Resolves with the close result when the dialog is dismissed. */
62
+ awaitClose() {
63
+ return new Promise(resolve => {
64
+ this.closed.subscribe({
65
+ next: value => resolve(value),
66
+ complete: () => resolve(undefined),
67
+ });
68
+ });
148
69
  }
149
- constructor(cdr, options, overlayRef) {
150
- super(cdr, options, overlayRef);
151
- this.options = options;
152
- this.state = 'enter';
70
+ /** Underlying overlay ref — escape hatch for advanced cases. */
71
+ get overlayRef() {
72
+ return this._overlayRef;
153
73
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: WrDialogOptions }, { token: i2.OverlayRef }], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogComponent, isStandalone: true, selector: "wr-dialog", host: { listeners: { "@dialogComponent.start": "onAnimationStart($event)", "@dialogComponent.done": "onAnimationDone($event)", "click": "onContainerClick($event)" }, properties: { "@dialogComponent": "this.state", "class": "this.elClasses" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "dialogElementRef", first: true, predicate: ["dialogElement"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wr-dialog__wrapper\" #dialogElement>\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [wrDialogAnimations.dialogComponent], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
156
74
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogComponent, decorators: [{
158
- type: Component,
159
- args: [{ selector: 'wr-dialog', animations: [wrDialogAnimations.dialogComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkPortalOutlet], template: "<div class=\"wr-dialog__wrapper\" #dialogElement>\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n" }]
160
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: WrDialogOptions }, { type: i2.OverlayRef }], propDecorators: { portalOutlet: [{
161
- type: ViewChild,
162
- args: [CdkPortalOutlet, { static: true }]
163
- }], dialogElementRef: [{
164
- type: ViewChild,
165
- args: ['dialogElement', { static: true }]
166
- }], state: [{
167
- type: HostBinding,
168
- args: ['@dialogComponent']
169
- }], onAnimationStart: [{
170
- type: HostListener,
171
- args: ['@dialogComponent.start', ['$event']]
172
- }], onAnimationDone: [{
173
- type: HostListener,
174
- args: ['@dialogComponent.done', ['$event']]
175
- }], onContainerClick: [{
176
- type: HostListener,
177
- args: ['click', ['$event']]
178
- }], elClasses: [{
179
- type: HostBinding,
180
- args: ['class']
181
- }] } });
182
75
 
183
76
  /**
184
77
  * @license
@@ -186,6 +79,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
186
79
  * Use of this source code is governed by an MIT-style license that can be
187
80
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
188
81
  */
82
+ /**
83
+ * Token that exposes the `data` payload passed to `WrDialog.open()`.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * @Component({...})
88
+ * export class ConfirmComponent {
89
+ * readonly data = inject<ConfirmData>(WR_DIALOG_DATA);
90
+ * }
91
+ * ```
92
+ */
189
93
  const WR_DIALOG_DATA = new InjectionToken('WR_DIALOG_DATA');
190
94
 
191
95
  /**
@@ -194,62 +98,13 @@ const WR_DIALOG_DATA = new InjectionToken('WR_DIALOG_DATA');
194
98
  * Use of this source code is governed by an MIT-style license that can be
195
99
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
196
100
  */
197
- class WrDialogRef extends WrAbstractBase {
198
- constructor(overlayRef, options, baseInstance) {
199
- super();
200
- this.overlayRef = overlayRef;
201
- this.options = options;
202
- this.baseInstance = baseInstance;
203
- this.componentInstance = null;
204
- this.afterOpened = new Subject();
205
- this.afterClosed = new Subject();
206
- this.id = options.id || `wr__modal__${generateRandomId()}`;
207
- baseInstance.animationStateChanged
208
- .pipe(filter(evt => evt.phaseName === 'done' && evt.toState === 'enter'), take(1))
209
- .subscribe(() => {
210
- this.afterOpened.next();
211
- this.afterOpened.complete();
212
- });
213
- baseInstance.animationStateChanged
214
- .pipe(filter(evt => evt.phaseName === 'done' && evt.toState === 'exit'), take(1))
215
- .subscribe(() => {
216
- clearTimeout(this.closeTimeout);
217
- this._finishDialogClose();
218
- });
219
- baseInstance.containerClick.pipe(takeUntil(this.destroyed$)).subscribe(() => {
220
- this.close();
221
- });
222
- overlayRef.backdropClick().subscribe(() => this.close(undefined));
223
- overlayRef.keydownEvents().subscribe(event => {
224
- if (event.code === 'Escape' && !hasModifierKey(event)) {
225
- event.preventDefault();
226
- this.close(undefined);
227
- }
228
- });
229
- overlayRef.detachments().subscribe(() => {
230
- this.afterClosed.next(this.result);
231
- this.afterClosed.complete();
232
- this.componentInstance = null;
233
- this.overlayRef.dispose();
234
- });
235
- }
236
- close(result) {
237
- this.result = result;
238
- this.baseInstance.animationStateChanged
239
- .pipe(filter(event => event.phaseName === 'start'), take(1))
240
- .subscribe(event => {
241
- this.overlayRef.detachBackdrop();
242
- this.closeTimeout = setTimeout(() => {
243
- this._finishDialogClose();
244
- }, event.totalTime + 100);
245
- });
246
- this.baseInstance.startExitAnimation();
247
- }
248
- _finishDialogClose() {
249
- this.overlayRef.dispose();
250
- this.destroyed$.next();
251
- }
252
- }
101
+ /**
102
+ * Token exposing the open dialog's `WrDialogRef` to components and
103
+ * directives rendered inside it (e.g. `[wrDialogClose]`).
104
+ *
105
+ * @internal
106
+ */
107
+ const WR_DIALOG_REF = new InjectionToken('WR_DIALOG_REF');
253
108
 
254
109
  /**
255
110
  * @license
@@ -257,96 +112,104 @@ class WrDialogRef extends WrAbstractBase {
257
112
  * Use of this source code is governed by an MIT-style license that can be
258
113
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
259
114
  */
115
+ const DEFAULT_PANEL_CLASS = 'wr-dialog-panel';
116
+ const DEFAULT_BACKDROP_CLASS = 'wr-dialog-backdrop';
260
117
  /**
261
- * NGWR dialog service.
118
+ * Opens dialog components in an isolated NGWR overlay.
119
+ *
120
+ * Uses `WR_OVERLAY` so it composes cleanly with `provideWrOverlay()`
121
+ * — dialogs render into NGWR's own overlay container and never collide
122
+ * with other CDK consumers (Material, NG-ZORRO, etc.).
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const dialog = inject(WrDialog);
262
127
  *
263
- * {@tutorial} [How to use wr-dialog]{@link http://ngwr.dev/docs/components/dialog}
128
+ * const ref = dialog.open(ConfirmComponent, {
129
+ * data: { message: 'Delete this item?' },
130
+ * width: '24rem',
131
+ * });
132
+ *
133
+ * const ok = await ref.awaitClose();
134
+ * if (ok) remove();
135
+ * ```
136
+ *
137
+ * @see https://ngwr.dev/components/dialog
264
138
  */
265
- class WrDialogService {
266
- constructor() {
267
- this.overlay = inject(Overlay);
268
- this.injector = inject(Injector);
269
- this.parentModal = inject(WrDialogService, { optional: true, skipSelf: true });
270
- this.openedDialogsAtThisLevel = [];
271
- this.afterAllClosedAtThisLevel = new Subject();
272
- }
273
- get openedDialogs() {
274
- return this.parentModal ? this.parentModal.openedDialogs : this.openedDialogsAtThisLevel;
275
- }
276
- get _afterAllClosed() {
277
- const parent = this.parentModal;
278
- return parent ? parent._afterAllClosed : this.afterAllClosedAtThisLevel;
279
- }
280
- open(options) {
281
- const _options = options || new WrDialogOptions();
282
- const positionStrategy = _options?.positionStrategy || this._defaultPositionStrategy();
283
- const scrollStrategy = _options?.scrollStrategy || this._defaultScrollStrategy();
284
- const hasBackdrop = _options?.hasBackdrop || true;
285
- const backdropClass = _options?.backdropClass || 'wr-backdrop';
286
- const overlayRef = this._createOverlay(positionStrategy, scrollStrategy, hasBackdrop, backdropClass);
287
- const dialogContainer = this._attachDialogContainer(overlayRef, _options);
288
- const dialogRef = this._attachDialogContent(dialogContainer, overlayRef, _options);
289
- dialogContainer.dialogRef = dialogRef;
290
- this.openedDialogsAtThisLevel.push(dialogRef);
291
- dialogRef.afterClosed.subscribe(() => this._removeOpenedModal(dialogRef));
292
- return dialogRef;
293
- }
294
- _defaultPositionStrategy() {
295
- return this.overlay.position().global().centerVertically().centerHorizontally();
296
- }
297
- _defaultScrollStrategy() {
298
- return this.overlay.scrollStrategies.block();
299
- }
300
- _createOverlay(positionStrategy, scrollStrategy, hasBackdrop, backdropClass) {
301
- const overlayConfig = new OverlayConfig({
302
- positionStrategy,
303
- hasBackdrop,
304
- backdropClass,
305
- scrollStrategy,
306
- });
307
- return this.overlay.create(overlayConfig);
308
- }
309
- _attachDialogContainer(overlayRef, options) {
310
- const userInjector = options && options.viewContainerRef && options.viewContainerRef.injector;
311
- const injector = Injector.create({
312
- parent: userInjector || this.injector,
313
- providers: [
314
- { provide: OverlayRef, useValue: overlayRef },
315
- { provide: WrDialogOptions, useValue: options },
316
- ],
139
+ class WrDialog {
140
+ overlay = inject(WR_OVERLAY);
141
+ scrollStrategies = inject(ScrollStrategyOptions);
142
+ parentInjector = inject(EnvironmentInjector);
143
+ focusTrapFactory = inject(ConfigurableFocusTrapFactory);
144
+ isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
145
+ open(component, options = {}) {
146
+ const panelClasses = [DEFAULT_PANEL_CLASS];
147
+ const extra = options.panelClass;
148
+ if (typeof extra === 'string') {
149
+ panelClasses.push(extra);
150
+ }
151
+ else if (extra) {
152
+ for (const cls of extra)
153
+ panelClasses.push(cls);
154
+ }
155
+ const overlayRef = this.overlay.create({
156
+ positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
157
+ scrollStrategy: this.scrollStrategies.block(),
158
+ hasBackdrop: true,
159
+ backdropClass: DEFAULT_BACKDROP_CLASS,
160
+ panelClass: panelClasses,
161
+ width: options.width,
162
+ maxWidth: options.maxWidth,
317
163
  });
318
- const containerPortal = new ComponentPortal(WrDialogComponent, options?.viewContainerRef, injector);
319
- const containerRef = overlayRef.attach(containerPortal);
320
- return containerRef.instance;
321
- }
322
- _attachDialogContent(container, overlayRef, options) {
323
- const dialogRef = new WrDialogRef(overlayRef, options, container);
324
- const userInjector = options && options.viewContainerRef && options.viewContainerRef?.injector;
164
+ const dialogRef = new WrDialogRef(overlayRef);
165
+ if (this.isBrowser) {
166
+ const active = document.activeElement;
167
+ dialogRef.previouslyFocused = active instanceof HTMLElement ? active : null;
168
+ }
325
169
  const injector = Injector.create({
326
- parent: userInjector || this.injector,
170
+ parent: this.parentInjector,
327
171
  providers: [
328
- { provide: WrDialogRef, useValue: dialogRef },
329
- { provide: WR_DIALOG_DATA, useValue: options?.data },
172
+ { provide: WR_DIALOG_DATA, useValue: options.data },
173
+ { provide: WR_DIALOG_REF, useValue: dialogRef },
330
174
  ],
331
175
  });
332
- const contentRef = container.attachComponentPortal(new ComponentPortal(options?.component, options?.viewContainerRef, injector));
333
- dialogRef.componentInstance = contentRef.instance;
334
- return dialogRef;
335
- }
336
- _removeOpenedModal(dialogRef) {
337
- const index = this.openedDialogs.indexOf(dialogRef);
338
- if (index > -1) {
339
- this.openedDialogs.splice(index, 1);
340
- if (!this.openedDialogs.length) {
341
- this._afterAllClosed.next();
342
- }
176
+ const portal = new ComponentPortal(component, null, injector);
177
+ dialogRef.componentRef = overlayRef.attach(portal);
178
+ if (this.isBrowser) {
179
+ const host = overlayRef.overlayElement;
180
+ host.setAttribute('role', 'dialog');
181
+ host.setAttribute('aria-modal', 'true');
182
+ // Wire aria-labelledby to wrDialogTitle's auto-id once content is in DOM.
183
+ queueMicrotask(() => {
184
+ const titleEl = host.querySelector('[wrDialogTitle], [wr-dialog-title]');
185
+ if (titleEl?.id)
186
+ host.setAttribute('aria-labelledby', titleEl.id);
187
+ });
188
+ // Trap focus inside the dialog and move initial focus in.
189
+ const trap = this.focusTrapFactory.create(host);
190
+ dialogRef.focusTrap = trap;
191
+ void trap.focusInitialElementWhenReady();
192
+ }
193
+ // Overlay subscriptions complete when the overlay is disposed, so no
194
+ // explicit teardown is required.
195
+ if (options.closeOnBackdropClick !== false) {
196
+ overlayRef.backdropClick().subscribe(() => dialogRef.close());
343
197
  }
198
+ if (options.closeOnEscape !== false) {
199
+ overlayRef.keydownEvents().subscribe(event => {
200
+ if (event.key === 'Escape') {
201
+ event.preventDefault();
202
+ dialogRef.close();
203
+ }
204
+ });
205
+ }
206
+ return dialogRef;
344
207
  }
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
346
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogService }); }
208
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialog, deps: [], target: i0.ɵɵFactoryTarget.Service });
209
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.1", ngImport: i0, type: WrDialog });
347
210
  }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogService, decorators: [{
349
- type: Injectable
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialog, decorators: [{
212
+ type: Service
350
213
  }] });
351
214
 
352
215
  /**
@@ -355,47 +218,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
355
218
  * Use of this source code is governed by an MIT-style license that can be
356
219
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
357
220
  */
358
- class WrDialogModule {
359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: WrDialogModule }); }
361
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogModule, providers: [WrDialogService] }); }
362
- }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogModule, decorators: [{
364
- type: NgModule,
365
- args: [{
366
- imports: [],
367
- providers: [WrDialogService],
368
- }]
369
- }] });
370
-
221
+ let uid = 0;
371
222
  /**
372
- * @license
223
+ * Styles a dialog title row. Use on a heading inside an opened dialog.
224
+ * Auto-assigns an `id` so the dialog panel can reference it via
225
+ * `aria-labelledby`.
373
226
  *
374
- * Use of this source code is governed by an MIT-style license that can be
375
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
227
+ * @example
228
+ * ```html
229
+ * <h2 wrDialogTitle>Confirm delete</h2>
230
+ * ```
376
231
  */
377
- class WrDialogCloseDirective {
378
- _onButtonClick(event) {
379
- event.preventDefault();
380
- this.dialogRef.close(undefined);
381
- }
382
- constructor(dialogRef) {
383
- this.dialogRef = dialogRef;
384
- }
385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogCloseDirective, deps: [{ token: WrDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
386
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogCloseDirective, isStandalone: true, selector: "[wrDialogClose]", host: { listeners: { "click": "_onButtonClick($event)" } }, ngImport: i0 }); }
232
+ class WrDialogTitle {
233
+ /** Generated id used for `aria-labelledby` wiring. */
234
+ id = `wr-dialog-title-${++uid}`;
235
+ /** @internal */
236
+ elementRef = inject((ElementRef));
237
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
238
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: WrDialogTitle, isStandalone: true, selector: "[wrDialogTitle]", host: { properties: { "attr.id": "id" }, classAttribute: "wr-dialog__title" }, ngImport: i0 });
387
239
  }
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogCloseDirective, decorators: [{
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogTitle, decorators: [{
389
241
  type: Directive,
390
242
  args: [{
391
- selector: `[wrDialogClose]`,
243
+ selector: '[wrDialogTitle]',
244
+ host: { class: 'wr-dialog__title', '[attr.id]': 'id' },
392
245
  }]
393
- }], ctorParameters: () => [{ type: WrDialogRef, decorators: [{
394
- type: Optional
395
- }] }], propDecorators: { _onButtonClick: [{
396
- type: HostListener,
397
- args: ['click', ['$event']]
398
- }] } });
246
+ }] });
399
247
 
400
248
  /**
401
249
  * @license
@@ -403,21 +251,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
403
251
  * Use of this source code is governed by an MIT-style license that can be
404
252
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
405
253
  */
406
- class WrDialogContentDirective {
407
- constructor() {
408
- this.class = 'wr-dialog__content';
409
- }
410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
411
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogContentDirective, isStandalone: true, selector: "[wrDialogContent]", host: { properties: { "class": "this.class" } }, ngImport: i0 }); }
254
+ /**
255
+ * Styles the scrollable body section of a dialog.
256
+ *
257
+ * @example
258
+ * ```html
259
+ * <div wrDialogContent>…body…</div>
260
+ * ```
261
+ */
262
+ class WrDialogContent {
263
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
264
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: WrDialogContent, isStandalone: true, selector: "[wrDialogContent]", host: { classAttribute: "wr-dialog__content" }, ngImport: i0 });
412
265
  }
413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogContentDirective, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogContent, decorators: [{
414
267
  type: Directive,
415
268
  args: [{
416
- selector: `[wrDialogContent]`,
269
+ selector: '[wrDialogContent]',
270
+ host: { class: 'wr-dialog__content' },
417
271
  }]
418
- }], propDecorators: { class: [{
419
- type: HostBinding
420
- }] } });
272
+ }] });
421
273
 
422
274
  /**
423
275
  * @license
@@ -425,32 +277,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
425
277
  * Use of this source code is governed by an MIT-style license that can be
426
278
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
427
279
  */
428
- class WrDialogFooterDirective {
429
- constructor() {
430
- this.position = 'end';
431
- }
432
- get elClasses() {
433
- return {
434
- 'wr-dialog__footer': true,
435
- 'wr-dialog__footer--start': this.position === 'start',
436
- 'wr-dialog__footer--center': this.position === 'center',
437
- 'wr-dialog__footer--end': this.position === 'end',
438
- };
439
- }
440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
441
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogFooterDirective, isStandalone: true, selector: "[wrDialogFooter]", inputs: { position: "position" }, host: { properties: { "class": "this.elClasses" } }, ngImport: i0 }); }
280
+ /**
281
+ * Footer row, typically holding action buttons.
282
+ *
283
+ * @example
284
+ * ```html
285
+ * <div wrDialogFooter align="end">
286
+ * <wr-btn wrDialogClose>Cancel</wr-btn>
287
+ * <wr-btn color="danger" (click)="confirm()">Delete</wr-btn>
288
+ * </div>
289
+ * ```
290
+ */
291
+ class WrDialogFooter {
292
+ /**
293
+ * Horizontal alignment of the children.
294
+ *
295
+ * @default 'end'
296
+ */
297
+ align = input('end', /* @ts-ignore */
298
+ ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
299
+ classes = computed(() => `wr-dialog__footer wr-dialog__footer--${this.align()}`, /* @ts-ignore */
300
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
301
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
302
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: WrDialogFooter, isStandalone: true, selector: "[wrDialogFooter]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
442
303
  }
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogFooterDirective, decorators: [{
304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogFooter, decorators: [{
444
305
  type: Directive,
445
306
  args: [{
446
307
  selector: '[wrDialogFooter]',
308
+ host: { '[class]': 'classes()' },
447
309
  }]
448
- }], propDecorators: { position: [{
449
- type: Input
450
- }], elClasses: [{
451
- type: HostBinding,
452
- args: ['class']
453
- }] } });
310
+ }], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
454
311
 
455
312
  /**
456
313
  * @license
@@ -458,32 +315,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
458
315
  * Use of this source code is governed by an MIT-style license that can be
459
316
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
460
317
  */
461
- class WrDialogTitleDirective {
462
- constructor() {
463
- this.class = 'wr-dialog__title';
464
- }
465
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
466
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: WrDialogTitleDirective, isStandalone: true, selector: "[wrDialogTitle]", host: { properties: { "class": "this.class" } }, ngImport: i0 }); }
318
+ /**
319
+ * Closes the dialog when the host element is clicked.
320
+ *
321
+ * Optionally passes a `[wrDialogClose]` value as the close result.
322
+ *
323
+ * @example
324
+ * ```html
325
+ * <wr-btn wrDialogClose>Cancel</wr-btn>
326
+ * <wr-btn color="primary" [wrDialogClose]="true">Confirm</wr-btn>
327
+ * ```
328
+ */
329
+ class WrDialogClose {
330
+ /**
331
+ * Value to pass to `close()`. When unset, the dialog closes with
332
+ * `undefined`.
333
+ */
334
+ result = input(undefined, { ...(ngDevMode ? { debugName: "result" } : /* istanbul ignore next */ {}), alias: 'wrDialogClose' });
335
+ ref = inject(WR_DIALOG_REF, { optional: true });
336
+ onClick() {
337
+ this.ref?.close(this.result());
338
+ }
339
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogClose, deps: [], target: i0.ɵɵFactoryTarget.Directive });
340
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: WrDialogClose, isStandalone: true, selector: "[wrDialogClose]", inputs: { result: { classPropertyName: "result", publicName: "wrDialogClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
467
341
  }
468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: WrDialogTitleDirective, decorators: [{
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrDialogClose, decorators: [{
469
343
  type: Directive,
470
344
  args: [{
471
- selector: '[wrDialogTitle]',
345
+ selector: '[wrDialogClose]',
346
+ host: { '(click)': 'onClick()' },
472
347
  }]
473
- }], propDecorators: { class: [{
474
- type: HostBinding
475
- }] } });
476
-
477
- /**
478
- * @license
479
- *
480
- * Use of this source code is governed by an MIT-style license that can be
481
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
482
- */
348
+ }], propDecorators: { result: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrDialogClose", required: false }] }] } });
483
349
 
484
350
  /**
485
351
  * Generated bundle index. Do not edit.
486
352
  */
487
353
 
488
- export { WR_ANIMATION_FADE_CLASS_NAME_MAP, WR_ANIMATION_ZOOM_CLASS_NAME_MAP, WR_DIALOG_DATA, WrDialogBaseDirective, WrDialogCloseDirective, WrDialogComponent, WrDialogContentDirective, WrDialogFooterDirective, WrDialogModule, WrDialogOptions, WrDialogRef, WrDialogService, WrDialogTitleDirective, wrDialogAnimations };
354
+ export { WR_DIALOG_DATA, WrDialog, WrDialogClose, WrDialogContent, WrDialogFooter, WrDialogRef, WrDialogTitle };
489
355
  //# sourceMappingURL=ngwr-dialog.mjs.map