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
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Wire ngwr into the workspace — install peer deps, append `@use 'ngwr';` to global styles, and print next-steps for bootstrap providers.",
6
+ "factory": "./ng-add/index#default",
7
+ "schema": "./ng-add/schema.json"
8
+ },
9
+ "icon-set": {
10
+ "description": "Scaffold a tree-shaken ngwr icon barrel file.",
11
+ "factory": "./icon-set/index#default",
12
+ "schema": "./icon-set/schema.json",
13
+ "aliases": ["icons"]
14
+ },
15
+ "use": {
16
+ "description": "Add an `import { WrFoo } from 'ngwr/<subpath>';` line and splice WrFoo into the @Component imports array of a component file.",
17
+ "factory": "./use/index#default",
18
+ "schema": "./use/schema.json"
19
+ },
20
+ "provider": {
21
+ "description": "Add a `provideWr*()` call to your bootstrap providers (overlay / icons / toast / i18n / date-adapter / density / loading-bar / cookie / storage / theme).",
22
+ "factory": "./provider/index#default",
23
+ "schema": "./provider/schema.json"
24
+ },
25
+ "component-style": {
26
+ "description": "Append `@use 'ngwr/<name>';` to the project's global stylesheet — for opt-in per-component styles.",
27
+ "factory": "./component-style/index#default",
28
+ "schema": "./component-style/schema.json",
29
+ "aliases": ["style"]
30
+ },
31
+ "page": {
32
+ "description": "Scaffold a starter page (form / table / dashboard) wired up with ngwr components.",
33
+ "factory": "./page/index#default",
34
+ "schema": "./page/schema.json"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const schematics_1 = require("@angular-devkit/schematics");
10
+ const workspace_1 = require("@schematics/angular/utility/workspace");
11
+ /**
12
+ * Append `@use 'ngwr/<name>';` (SCSS) or `@import 'ngwr/<name>';` (CSS)
13
+ * to the project's first global stylesheet. Pairs with the
14
+ * `styles: 'none'` choice on `ng add` — you opt into ngwr styles per
15
+ * component instead of pulling the whole bundle.
16
+ *
17
+ * Idempotent: skips when the directive is already present.
18
+ */
19
+ function componentStyle(options) {
20
+ return async (tree, context) => {
21
+ const name = options.name.trim().replace(/^['"]+|['"]+$/g, '');
22
+ if (!name)
23
+ throw new schematics_1.SchematicsException('ngwr:component-style: missing `name`.');
24
+ const workspace = await (0, workspace_1.getWorkspace)(tree);
25
+ const projectName = options.project ?? workspace.extensions.defaultProject;
26
+ const project = (projectName && workspace.projects.get(projectName)) ?? workspace.projects.values().next().value;
27
+ if (!project)
28
+ throw new schematics_1.SchematicsException('ngwr:component-style: no Angular project found.');
29
+ const build = project.targets.get('build');
30
+ const styles = build?.options?.styles ?? [];
31
+ const stylesPath = typeof styles[0] === 'string' ? styles[0] : styles[0]?.input;
32
+ if (!stylesPath || !tree.exists(stylesPath)) {
33
+ throw new schematics_1.SchematicsException(`ngwr:component-style: no global stylesheet wired in angular.json. Add \`@use 'ngwr/${name}';\` manually.`);
34
+ }
35
+ const isCss = stylesPath.endsWith('.css') || stylesPath.endsWith('.less');
36
+ const subpath = `ngwr/${name}`;
37
+ const directive = isCss ? `@import '${subpath}';` : `@use '${subpath}';`;
38
+ const existing = tree.readText(stylesPath);
39
+ if (existing.includes(directive) || new RegExp(`['"]${subpath}['"]`).test(existing)) {
40
+ context.logger.info(`ngwr: ${stylesPath} already imports ${subpath} — no changes.`);
41
+ return tree;
42
+ }
43
+ const next = existing.length && !existing.endsWith('\n') ? `${existing}\n` : existing;
44
+ tree.overwrite(stylesPath, `${directive}\n${next}`);
45
+ context.logger.info(`✓ Added \`${directive}\` to ${stylesPath}.`);
46
+ return tree;
47
+ };
48
+ }
49
+ exports.default = componentStyle;
@@ -1,7 +1,8 @@
1
+ "use strict";
1
2
  /**
2
3
  * @license
3
4
  *
4
5
  * Use of this source code is governed by an MIT-style license that can be
5
6
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
7
  */
7
- export type WrAlertType = 'info' | 'success' | 'warning' | 'danger';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "ngwr-component-style",
4
+ "title": "ngwr component-style",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "Subpath under `ngwr/` — e.g. `button`, `select`, `theme`. Matches the dir name in the lib's `exports` block.",
10
+ "$default": { "$source": "argv", "index": 0 },
11
+ "x-prompt": "Which subpath? (e.g. button, select, theme)"
12
+ },
13
+ "project": {
14
+ "type": "string",
15
+ "description": "Target Angular project. Defaults to the workspace default.",
16
+ "$default": { "$source": "projectName" }
17
+ }
18
+ },
19
+ "required": ["name"]
20
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const schematics_1 = require("@angular-devkit/schematics");
10
+ const workspace_1 = require("@schematics/angular/utility/workspace");
11
+ /**
12
+ * Curated common icon sets. Identifiers match `ngwr/icon` exports — kept
13
+ * short on purpose so the generated file stays readable.
14
+ */
15
+ const SETS = {
16
+ basic: ['checkmark', 'close', 'add', 'edit', 'trash', 'search', 'copy'],
17
+ navigation: [
18
+ 'chevronDown',
19
+ 'chevronLeft',
20
+ 'chevronRight',
21
+ 'chevronUp',
22
+ 'arrowBack',
23
+ 'arrowForward',
24
+ 'arrowTop',
25
+ 'arrowBottom',
26
+ 'menu',
27
+ 'dotsHorizontal',
28
+ 'dotsVertical',
29
+ ],
30
+ forms: ['eye', 'eyeOff', 'lock', 'lockOpened', 'calendar', 'time', 'filter', 'checkmark', 'close'],
31
+ feedback: ['alert', 'alertCircle', 'infoCircleOutline', 'checkmarkCircle', 'closeCircle', 'warning', 'bell'],
32
+ };
33
+ /** Default fallback when neither `set` nor `icons` is supplied. */
34
+ const DEFAULT_SET = 'basic';
35
+ function iconSet(options) {
36
+ return async (tree, context) => {
37
+ const workspace = await (0, workspace_1.getWorkspace)(tree);
38
+ const projectName = options.project ?? workspace.extensions.defaultProject;
39
+ const project = (projectName && workspace.projects.get(projectName)) ?? workspace.projects.values().next().value;
40
+ if (!project) {
41
+ throw new schematics_1.SchematicsException('ngwr:icon-set: no Angular project found.');
42
+ }
43
+ const sourceRoot = project.sourceRoot ?? `${project.root || ''}/src`.replace(/^\//, '');
44
+ const dirPath = options.path ?? `${sourceRoot}/app`;
45
+ const fileName = (options.name ?? 'icons').replace(/\.ts$/, '');
46
+ const filePath = `${dirPath}/${fileName}.ts`;
47
+ // Build the deduped icon list — set + explicit icons, or default fallback.
48
+ const fromSet = options.set ? (SETS[options.set] ?? []) : [];
49
+ const fromList = options.icons
50
+ ? options.icons
51
+ .split(',')
52
+ .map(s => s.trim())
53
+ .filter(Boolean)
54
+ : [];
55
+ const icons = unique([...fromSet, ...fromList]);
56
+ if (icons.length === 0)
57
+ icons.push(...SETS[DEFAULT_SET]);
58
+ if (tree.exists(filePath)) {
59
+ context.logger.warn(`ngwr: ${filePath} already exists — skipping. Pass --name to write a different file, or delete it first.`);
60
+ return tree;
61
+ }
62
+ const exportName = options.exportName ?? 'APP_ICONS';
63
+ const importList = icons.join(', ');
64
+ const arrayList = icons.join(', ');
65
+ tree.create(filePath, renderFile(importList, exportName, arrayList));
66
+ context.logger.info(`✓ Created ${filePath} with ${icons.length} icons.`);
67
+ context.logger.info(printWiringHint(fileName, exportName));
68
+ return tree;
69
+ };
70
+ }
71
+ function renderFile(importList, exportName, arrayList) {
72
+ return `/**
73
+ * Tree-shaken ngwr icon set. Generated by \`ng g ngwr:icon-set\`.
74
+ * Edit freely — re-running with --name=<other> writes a separate file.
75
+ */
76
+ import { ${importList} } from 'ngwr/icon';
77
+
78
+ export const ${exportName} = [${arrayList}] as const;
79
+ `;
80
+ }
81
+ function printWiringHint(fileName, exportName) {
82
+ return `
83
+ Next step — wire the set into bootstrap:
84
+
85
+ import { provideWrIcons } from 'ngwr/icon';
86
+ import { ${exportName} } from './${fileName}';
87
+
88
+ bootstrapApplication(AppComponent, {
89
+ providers: [provideWrIcons(${exportName})],
90
+ });
91
+ `;
92
+ }
93
+ function unique(list) {
94
+ return Array.from(new Set(list));
95
+ }
96
+ exports.default = iconSet;
@@ -1,7 +1,8 @@
1
+ "use strict";
1
2
  /**
2
3
  * @license
3
4
  *
4
5
  * Use of this source code is governed by an MIT-style license that can be
5
6
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
7
  */
7
- export * from './avatar.component';
8
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "ngwr-icon-set",
4
+ "title": "ngwr icon-set generator",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "default": "icons",
10
+ "description": "Output file name (without extension).",
11
+ "$default": { "$source": "argv", "index": 0 }
12
+ },
13
+ "project": {
14
+ "type": "string",
15
+ "description": "Target Angular project. Defaults to the workspace default project.",
16
+ "$default": { "$source": "projectName" }
17
+ },
18
+ "path": {
19
+ "type": "string",
20
+ "format": "path",
21
+ "description": "Path the file is written to. Defaults to `<project>/<sourceRoot>/app`."
22
+ },
23
+ "set": {
24
+ "type": "string",
25
+ "enum": ["basic", "navigation", "forms", "feedback"],
26
+ "description": "Curated icon set. Combined with `icons` if both are passed."
27
+ },
28
+ "icons": {
29
+ "type": "string",
30
+ "description": "Comma-separated list of ngwr icon names (e.g. `plus,trash,checkmark`). Unknown names are flagged but not blocked."
31
+ },
32
+ "exportName": {
33
+ "type": "string",
34
+ "default": "APP_ICONS",
35
+ "description": "Identifier exported as the icon array."
36
+ }
37
+ },
38
+ "required": []
39
+ }
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const HTML_TRANSFORMS = [
10
+ // wr-autocomplete → wr-select mode="search"
11
+ { pattern: /<wr-autocomplete(\s|>|\/)/g, replacement: '<wr-select mode="search"$1' },
12
+ { pattern: /<\/wr-autocomplete>/g, replacement: '</wr-select>' },
13
+ // wr-chips-input → wr-select mode="tag"
14
+ { pattern: /<wr-chips-input(\s|>|\/)/g, replacement: '<wr-select mode="tag"$1' },
15
+ { pattern: /<\/wr-chips-input>/g, replacement: '</wr-select>' },
16
+ // wr-time-picker → wr-date-picker mode="time"
17
+ { pattern: /<wr-time-picker(\s|>|\/)/g, replacement: '<wr-date-picker mode="time"$1' },
18
+ { pattern: /<\/wr-time-picker>/g, replacement: '</wr-date-picker>' },
19
+ // wr-date-time-picker → wr-date-picker mode="datetime"
20
+ { pattern: /<wr-date-time-picker(\s|>|\/)/g, replacement: '<wr-date-picker mode="datetime"$1' },
21
+ { pattern: /<\/wr-date-time-picker>/g, replacement: '</wr-date-picker>' },
22
+ // [wrTooltip] directive → [wrPopover] + mode="tooltip"
23
+ { pattern: /\[wrTooltip\]="([^"]+)"/g, replacement: '[wrPopover]="$1" mode="tooltip"' },
24
+ { pattern: /\[wrTooltip\]='([^']+)'/g, replacement: '[wrPopover]=\'$1\' mode="tooltip"' },
25
+ // String literal form: wrTooltip="some text" → [wrPopover]="'some text'" mode="tooltip"
26
+ // (Plain string attr is rare; covered as a best-effort.)
27
+ { pattern: /\bwrTooltip="([^"]+)"/g, replacement: `[wrPopover]="'$1'" mode="tooltip"` },
28
+ // wr-tree-select → wr-tree openOn="overlay"
29
+ { pattern: /<wr-tree-select(\s|>|\/)/g, replacement: '<wr-tree openOn="overlay"$1' },
30
+ { pattern: /<\/wr-tree-select>/g, replacement: '</wr-tree>' },
31
+ // wr-bottom-sheet → wr-drawer position="bottom"
32
+ { pattern: /<wr-bottom-sheet(\s|>|\/)/g, replacement: '<wr-drawer position="bottom"$1' },
33
+ { pattern: /<\/wr-bottom-sheet>/g, replacement: '</wr-drawer>' },
34
+ // wr-count-up-text → wr-count-up (just a rename — same surface)
35
+ { pattern: /<wr-count-up-text(\s|>|\/)/g, replacement: '<wr-count-up$1' },
36
+ { pattern: /<\/wr-count-up-text>/g, replacement: '</wr-count-up>' },
37
+ // wr-select's deprecated [multi] alias → mode="multi"
38
+ { pattern: /(<wr-select\b[^>]*?)\s\[multi\]="true"/g, replacement: '$1 mode="multi"' },
39
+ { pattern: /(<wr-select\b[^>]*?)\s\[multi\]="false"/g, replacement: '$1' },
40
+ { pattern: /(<wr-select\b[^>]*?)\smulti(?=[\s>/])/g, replacement: '$1 mode="multi"' },
41
+ // wr-image → wr-lightbox (rename — same surface)
42
+ { pattern: /<wr-image(\s|>|\/)/g, replacement: '<wr-lightbox$1' },
43
+ { pattern: /<\/wr-image>/g, replacement: '</wr-lightbox>' },
44
+ // wr-animated-text → mode-specific target. Handles the self-closing and
45
+ // empty-pair element forms (the component never projected content). The
46
+ // attribute form (`<h1 wr-animated-text …>`) has no 1:1 target and is
47
+ // left for manual migration; a bound `[mode]` falls back to typewriter.
48
+ {
49
+ pattern: /<wr-animated-text\b([^>]*?)\s*(\/>|>\s*<\/wr-animated-text>)/g,
50
+ replacement: (_match, attrs) => {
51
+ const mode = /\bmode\s*=\s*"(\w+)"/.exec(attrs)?.[1] ?? 'typewriter';
52
+ const tag = mode === 'split' ? 'wr-split-text' : mode === 'scramble' ? 'wr-decrypt-text' : 'wr-typewriter';
53
+ let rest = attrs.replace(/\s*\[?mode\]?\s*=\s*"[^"]*"/, '');
54
+ // Inputs that changed names downstream — `loop` carries over only
55
+ // to the typewriter; elsewhere it had no equivalent and is dropped.
56
+ if (tag === 'wr-typewriter') {
57
+ rest = rest
58
+ .replace(/(\s)speed=/, '$1typingSpeed=')
59
+ .replace(/(\s)\[speed\]=/, '$1[typingSpeed]=')
60
+ .replace(/(\s)startDelay=/, '$1initialDelay=')
61
+ .replace(/(\s)\[startDelay\]=/, '$1[initialDelay]=');
62
+ }
63
+ else {
64
+ rest = rest.replace(/\s*\[?loop\]?(=\s*"[^"]*")?(?=\s|$)/, '').replace(/\s*\[?startDelay\]?\s*=\s*"[^"]*"/, '');
65
+ if (tag === 'wr-split-text') {
66
+ rest = rest.replace(/(\s)speed=/, '$1delay=').replace(/(\s)\[speed\]=/, '$1[delay]=');
67
+ }
68
+ }
69
+ return `<${tag}${rest.replace(/\s+$/, '')} />`;
70
+ },
71
+ },
72
+ ];
73
+ /** TS imports: module-path rewrites + symbol renames. */
74
+ const MODULE_RENAMES = new Map([
75
+ ['ngwr/autocomplete', 'ngwr/select'],
76
+ ['ngwr/chips-input', 'ngwr/select'],
77
+ ['ngwr/time-picker', 'ngwr/date-picker'],
78
+ ['ngwr/date-time-picker', 'ngwr/date-picker'],
79
+ ['ngwr/tooltip', 'ngwr/popover'],
80
+ ['ngwr/tree-select', 'ngwr/tree'],
81
+ ['ngwr/bottom-sheet', 'ngwr/drawer'],
82
+ ['ngwr/count-up-text', 'ngwr/counter'],
83
+ ['ngwr/count-up', 'ngwr/counter'],
84
+ ['ngwr/tag', 'ngwr/badge'],
85
+ ['ngwr/image', 'ngwr/lightbox'],
86
+ ['ngwr/form-field', 'ngwr/form'],
87
+ // Best-effort: typewriter was animated-text's default mode. Scramble /
88
+ // split users need ngwr/decrypt-text / ngwr/split-text instead — the
89
+ // HTML transform above already points the template at the right tag.
90
+ ['ngwr/animated-text', 'ngwr/typewriter'],
91
+ ]);
92
+ const SYMBOL_RENAMES = new Map([
93
+ ['WrAutocomplete', 'WrSelect'],
94
+ ['WrChipsInput', 'WrSelect'],
95
+ ['WrTimePicker', 'WrDatePicker'],
96
+ ['WrDateTimePicker', 'WrDatePicker'],
97
+ ['WrTooltip', 'WrPopover'],
98
+ ['WrTreeSelect', 'WrTree'],
99
+ ['WrBottomSheet', 'WrDrawer'],
100
+ ['WrCountUpText', 'WrCountUp'],
101
+ ['WrImage', 'WrLightbox'],
102
+ ['WrAnimatedText', 'WrTypewriter'],
103
+ ]);
104
+ /** SCSS subpath imports — `@use 'ngwr/X';` and `@import 'ngwr/X';` forms. */
105
+ const SCSS_RENAMES = MODULE_RENAMES;
106
+ const IGNORE_DIRS = new Set(['node_modules', 'dist', '.git', '.cache', '.angular', 'coverage', '.next', '.nuxt']);
107
+ function ngUpdateV7() {
108
+ return (tree, context) => {
109
+ const summary = { html: 0, ts: 0, scss: 0 };
110
+ visit(tree, '/', filePath => {
111
+ const lower = filePath.toLowerCase();
112
+ const isHtml = lower.endsWith('.html');
113
+ const isTs = lower.endsWith('.ts');
114
+ const isScss = lower.endsWith('.scss') || lower.endsWith('.sass') || lower.endsWith('.css');
115
+ if (!isHtml && !isTs && !isScss)
116
+ return;
117
+ const original = tree.readText(filePath);
118
+ let next = original;
119
+ if (isHtml)
120
+ next = applyHtml(next);
121
+ if (isTs)
122
+ next = applyTs(next);
123
+ if (isScss)
124
+ next = applyScss(next);
125
+ if (next !== original) {
126
+ tree.overwrite(filePath, next);
127
+ if (isHtml)
128
+ summary.html += 1;
129
+ if (isTs)
130
+ summary.ts += 1;
131
+ if (isScss)
132
+ summary.scss += 1;
133
+ }
134
+ });
135
+ context.logger.info(`ngwr v7 migration: rewrote ${summary.html} .html, ${summary.ts} .ts, ${summary.scss} stylesheet file(s).`);
136
+ context.logger.info('Verify the result with `git diff` — a few edge cases (e.g. tooltip directives applied via host bindings) may need manual touch-up.');
137
+ return tree;
138
+ };
139
+ }
140
+ function applyHtml(content) {
141
+ let next = content;
142
+ for (const { pattern, replacement } of HTML_TRANSFORMS) {
143
+ next = typeof replacement === 'string' ? next.replace(pattern, replacement) : next.replace(pattern, replacement);
144
+ }
145
+ return next;
146
+ }
147
+ function applyTs(content) {
148
+ let next = content;
149
+ // WrValidators.email was removed — Angular's own Validators.email is the
150
+ // replacement. The @angular/forms import is left to the consumer.
151
+ next = next.replace(/\bWrValidators\.email\b/g, 'Validators.email');
152
+ // Module path strings — handle both single and double quoted.
153
+ for (const [from, to] of MODULE_RENAMES) {
154
+ next = next
155
+ .replace(new RegExp(`(['"])${escapeRegExp(from)}\\1`, 'g'), `$1${to}$1`)
156
+ .replace(new RegExp(`(\`)${escapeRegExp(from)}(\`)`, 'g'), `\`${to}\``);
157
+ }
158
+ // Symbol renames — word-boundary safe.
159
+ for (const [from, to] of SYMBOL_RENAMES) {
160
+ next = next.replace(new RegExp(`\\b${from}\\b`, 'g'), to);
161
+ }
162
+ return next;
163
+ }
164
+ function applyScss(content) {
165
+ let next = content;
166
+ for (const [from, to] of SCSS_RENAMES) {
167
+ // Match `@use 'ngwr/X';`, `@use "ngwr/X";`, `@import 'ngwr/X';`, etc.
168
+ const escFrom = escapeRegExp(from);
169
+ next = next.replace(new RegExp(`(@(?:use|import|forward)\\s+)(['"])${escFrom}\\2`, 'g'), `$1$2${to}$2`);
170
+ }
171
+ return next;
172
+ }
173
+ function visit(tree, dir, visitor) {
174
+ const entry = tree.getDir(dir);
175
+ for (const file of entry.subfiles) {
176
+ visitor(`${dir === '/' ? '' : dir}/${file}`);
177
+ }
178
+ for (const sub of entry.subdirs) {
179
+ if (IGNORE_DIRS.has(sub))
180
+ continue;
181
+ visit(tree, `${dir === '/' ? '' : dir}/${sub}`, visitor);
182
+ }
183
+ }
184
+ function escapeRegExp(value) {
185
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
186
+ }
187
+ exports.default = ngUpdateV7;
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "migration-v7": {
5
+ "version": "7.0.0",
6
+ "description": "Rewrite the v6 entry-points consolidated in v7: wr-autocomplete/chips-input \u2192 wr-select; wr-time-picker/date-time-picker \u2192 wr-date-picker; wr-tooltip \u2192 wr-popover; wr-tree-select \u2192 wr-tree; wr-bottom-sheet \u2192 wr-drawer; wr-count-up(-text) \u2192 wr-counter; ngwr/tag \u2192 ngwr/badge; wr-image \u2192 wr-lightbox; wr-animated-text \u2192 wr-typewriter/wr-decrypt-text/wr-split-text (per mode). Touches .html, .ts, and .scss files.",
7
+ "factory": "./migrations/v7/index#default"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const schematics_1 = require("@angular-devkit/schematics");
10
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
11
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
12
+ const workspace_1 = require("@schematics/angular/utility/workspace");
13
+ /** Base peers, regardless of prompt answers. */
14
+ const BASE_PEERS = [['@angular/cdk', '>=22.0.0']];
15
+ /** Extra peers contributed by the `dateAdapter` choice. */
16
+ const DATE_ADAPTER_PEERS = {
17
+ none: [],
18
+ native: [],
19
+ 'date-fns': [['date-fns', '>=3.0.0 || >=4.0.0']],
20
+ luxon: [['luxon', '>=3.0.0']],
21
+ };
22
+ /** Adapter classes named in the next-steps snippet for each choice. */
23
+ const DATE_ADAPTER_PROVIDER = {
24
+ none: null,
25
+ native: 'provideWrDateAdapter()',
26
+ 'date-fns': 'provideWrDateAdapter({ adapter: WrDateFnsAdapter })',
27
+ luxon: 'provideWrDateAdapter({ adapter: WrLuxonAdapter })',
28
+ };
29
+ /** Density preset → `provideWrDensity(...)` call. */
30
+ const DENSITY_PROVIDER = {
31
+ none: null,
32
+ comfortable: "provideWrDensity({ preset: 'comfortable' })",
33
+ compact: "provideWrDensity({ preset: 'compact' })",
34
+ };
35
+ /** Theme preset → `provideWrTheme(...)` call. */
36
+ const THEME_PROVIDER = {
37
+ none: null,
38
+ light: "provideWrTheme({ defaultMode: 'light' })",
39
+ dark: "provideWrTheme({ defaultMode: 'dark' })",
40
+ system: "provideWrTheme({ defaultMode: 'auto' })",
41
+ };
42
+ const STYLES_DIRECTIVE_SCSS = "@use 'ngwr';";
43
+ const STYLES_DIRECTIVE_CSS = "@import 'ngwr';";
44
+ function ngAdd(options) {
45
+ return (tree, context) => {
46
+ return (0, schematics_1.chain)([installPeerDeps(options, context), registerStyles(options), printNextSteps(options, context)])(tree, context);
47
+ };
48
+ }
49
+ /**
50
+ * Adds peer deps for the user's choices and schedules a single install
51
+ * task (unless `--skipPeerInstall` was passed).
52
+ */
53
+ function installPeerDeps(options, context) {
54
+ if (options.skipPeerInstall)
55
+ return (tree) => tree;
56
+ return (tree) => {
57
+ const deps = [...BASE_PEERS, ...DATE_ADAPTER_PEERS[options.dateAdapter ?? 'none']];
58
+ if (!deps.length)
59
+ return tree;
60
+ for (const [name, version] of deps) {
61
+ (0, dependencies_1.addPackageJsonDependency)(tree, {
62
+ type: dependencies_1.NodeDependencyType.Default,
63
+ name,
64
+ version,
65
+ overwrite: false,
66
+ });
67
+ }
68
+ context.addTask(new tasks_1.NodePackageInstallTask());
69
+ return tree;
70
+ };
71
+ }
72
+ /**
73
+ * Appends `@use 'ngwr';` to the project's first global stylesheet when
74
+ * `styles === 'all'`. Skipped entirely when `styles === 'none'` — the
75
+ * user is expected to opt in per component via `ng g ngwr:component-style`.
76
+ */
77
+ function registerStyles(options) {
78
+ if ((options.styles ?? 'all') === 'none') {
79
+ return (tree) => tree;
80
+ }
81
+ return async (tree, context) => {
82
+ const workspace = await (0, workspace_1.getWorkspace)(tree);
83
+ const projectName = options.project ?? workspace.extensions.defaultProject;
84
+ const project = (projectName && workspace.projects.get(projectName)) ?? workspace.projects.values().next().value;
85
+ if (!project) {
86
+ context.logger.warn('ngwr: no Angular project found — skipping styles wiring.');
87
+ return tree;
88
+ }
89
+ const build = project.targets.get('build');
90
+ const styles = build?.options?.styles ?? [];
91
+ const stylesPath = typeof styles[0] === 'string' ? styles[0] : styles[0]?.input;
92
+ if (!stylesPath) {
93
+ context.logger.warn(`ngwr: no global stylesheet found for project "${project.root || '<root>'}" — add \`${STYLES_DIRECTIVE_SCSS}\` manually.`);
94
+ return tree;
95
+ }
96
+ if (!tree.exists(stylesPath)) {
97
+ context.logger.warn(`ngwr: styles file ${stylesPath} not found — add \`${STYLES_DIRECTIVE_SCSS}\` manually.`);
98
+ return tree;
99
+ }
100
+ const isCss = stylesPath.endsWith('.css') || stylesPath.endsWith('.less');
101
+ const directive = isCss ? STYLES_DIRECTIVE_CSS : STYLES_DIRECTIVE_SCSS;
102
+ const existing = tree.readText(stylesPath);
103
+ if (existing.includes(directive) || existing.includes("'ngwr'") || existing.includes('"ngwr"')) {
104
+ context.logger.info(`ngwr: ${stylesPath} already imports ngwr — skipping.`);
105
+ return tree;
106
+ }
107
+ const next = existing.length && !existing.endsWith('\n') ? `${existing}\n` : existing;
108
+ tree.overwrite(stylesPath, `${directive}\n${next}`);
109
+ context.logger.info(`ngwr: added \`${directive}\` to ${stylesPath}.`);
110
+ return tree;
111
+ };
112
+ }
113
+ /**
114
+ * Renders a tailored next-steps message — imports + provider list shaped
115
+ * by the prompt answers. We deliberately don't AST-edit `main.ts`; a
116
+ * clear copy-pasteable snippet is more robust across project shapes
117
+ * (standalone bootstrap, NgModule bootstrap, server entry, etc.).
118
+ */
119
+ function printNextSteps(options, context) {
120
+ return (tree) => {
121
+ const adapter = options.dateAdapter ?? 'none';
122
+ const density = options.density ?? 'none';
123
+ const theme = options.theme ?? 'none';
124
+ const imports = [
125
+ "import { provideWrOverlay } from 'ngwr/overlay';",
126
+ "import { provideWrIcons, plus, trash } from 'ngwr/icon';",
127
+ ];
128
+ const providers = ['provideWrOverlay()', 'provideWrIcons([plus, trash])'];
129
+ const adapterCall = DATE_ADAPTER_PROVIDER[adapter];
130
+ if (adapterCall) {
131
+ imports.push("import { provideWrDateAdapter } from 'ngwr/date-adapter';");
132
+ if (adapter === 'date-fns') {
133
+ imports.push("import { WrDateFnsAdapter } from 'ngwr/date-adapter-fns';");
134
+ }
135
+ else if (adapter === 'luxon') {
136
+ imports.push("import { WrLuxonAdapter } from 'ngwr/date-adapter-luxon';");
137
+ }
138
+ providers.push(adapterCall);
139
+ }
140
+ const densityCall = DENSITY_PROVIDER[density];
141
+ if (densityCall) {
142
+ imports.push("import { provideWrDensity } from 'ngwr/density';");
143
+ providers.push(densityCall);
144
+ }
145
+ const themeCall = THEME_PROVIDER[theme];
146
+ if (themeCall) {
147
+ imports.push("import { provideWrTheme } from 'ngwr/theme';");
148
+ providers.push(themeCall);
149
+ }
150
+ const importBlock = imports.join('\n');
151
+ const providerBlock = providers.map(p => ` ${p},`).join('\n');
152
+ const message = `
153
+ ngwr installed.
154
+
155
+ Add the providers to your bootstrap (typically src/main.ts):
156
+
157
+ ${importBlock}
158
+
159
+ bootstrapApplication(AppComponent, {
160
+ providers: [
161
+ ${providerBlock}
162
+ ],
163
+ });
164
+
165
+ ${snapshotSummary(options)}
166
+ Browse the full catalog at https://ngwr.dev.
167
+ `;
168
+ context.logger.info(message);
169
+ return tree;
170
+ };
171
+ }
172
+ function snapshotSummary(options) {
173
+ const lines = ['Selected:'];
174
+ lines.push(` • styles = ${options.styles ?? 'all'}`);
175
+ lines.push(` • dateAdapter = ${options.dateAdapter ?? 'none'}`);
176
+ lines.push(` • density = ${options.density ?? 'none'}`);
177
+ lines.push(` • theme = ${options.theme ?? 'none'}`);
178
+ return `${lines.join('\n')}\n\n`;
179
+ }
180
+ exports.default = ngAdd;
@@ -1,7 +1,8 @@
1
+ "use strict";
1
2
  /**
2
3
  * @license
3
4
  *
4
5
  * Use of this source code is governed by an MIT-style license that can be
5
6
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
7
  */
7
- export * from './base.directive';
8
+ Object.defineProperty(exports, "__esModule", { value: true });