ngwr 7.3.0 → 9.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 (450) hide show
  1. package/README.md +79 -31
  2. package/action-sheet/styles/_index.scss +93 -0
  3. package/alert/styles/_index.scss +45 -18
  4. package/anchor/styles/_index.scss +3 -3
  5. package/avatar/styles/_index.scss +2 -2
  6. package/back-top/styles/_index.scss +1 -1
  7. package/badge/styles/_index.scss +11 -7
  8. package/badge/styles/_tag.scss +4 -4
  9. package/bar-chart/styles/_index.scss +5 -6
  10. package/border-glow/styles/_index.scss +3 -3
  11. package/breadcrumbs/styles/_index.scss +7 -5
  12. package/burger/styles/_index.scss +3 -3
  13. package/button/styles/_index.scss +34 -24
  14. package/calendar/styles/_index.scss +15 -13
  15. package/calendar-heatmap/styles/_index.scss +5 -3
  16. package/card/styles/_index.scss +5 -5
  17. package/carousel/styles/_index.scss +6 -6
  18. package/cascader/styles/_index.scss +69 -29
  19. package/checkbox/styles/_index.scss +41 -9
  20. package/collapse/styles/_index.scss +7 -7
  21. package/color-picker/styles/_index.scss +26 -21
  22. package/command-palette/styles/_index.scss +22 -19
  23. package/compare/styles/_index.scss +6 -6
  24. package/context-menu/styles/_index.scss +17 -7
  25. package/counter/styles/_index.scss +12 -1
  26. package/date-picker/styles/_index.scss +13 -14
  27. package/density/styles/_index.scss +3 -3
  28. package/descriptions/styles/_index.scss +9 -9
  29. package/dialog/styles/_index.scss +10 -9
  30. package/divider/styles/_index.scss +3 -3
  31. package/donut-chart/styles/_index.scss +3 -3
  32. package/drag-drop/styles/_index.scss +11 -6
  33. package/drawer/styles/_index.scss +26 -17
  34. package/dropdown/styles/_index.scss +7 -7
  35. package/empty/styles/_index.scss +4 -4
  36. package/fesm2022/ngwr-action-sheet.mjs +81 -0
  37. package/fesm2022/ngwr-action-sheet.mjs.map +1 -0
  38. package/fesm2022/ngwr-affix.mjs +3 -3
  39. package/fesm2022/ngwr-alert.mjs +23 -11
  40. package/fesm2022/ngwr-alert.mjs.map +1 -1
  41. package/fesm2022/ngwr-anchor.mjs +4 -4
  42. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  43. package/fesm2022/ngwr-aurora.mjs +5 -4
  44. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  45. package/fesm2022/ngwr-avatar.mjs +4 -4
  46. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  47. package/fesm2022/ngwr-back-top.mjs +4 -4
  48. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  49. package/fesm2022/ngwr-badge.mjs +8 -8
  50. package/fesm2022/ngwr-badge.mjs.map +1 -1
  51. package/fesm2022/ngwr-bar-chart.mjs +4 -4
  52. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  53. package/fesm2022/ngwr-blur-text.mjs +3 -3
  54. package/fesm2022/ngwr-border-glow.mjs +4 -4
  55. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  56. package/fesm2022/ngwr-breadcrumbs.mjs +8 -8
  57. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  58. package/fesm2022/ngwr-burger.mjs +4 -4
  59. package/fesm2022/ngwr-burger.mjs.map +1 -1
  60. package/fesm2022/ngwr-button.mjs +8 -8
  61. package/fesm2022/ngwr-button.mjs.map +1 -1
  62. package/fesm2022/ngwr-calendar-heatmap.mjs +4 -4
  63. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  64. package/fesm2022/ngwr-calendar.mjs +5 -5
  65. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  66. package/fesm2022/ngwr-card.mjs +11 -11
  67. package/fesm2022/ngwr-card.mjs.map +1 -1
  68. package/fesm2022/ngwr-carousel.mjs +7 -7
  69. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  70. package/fesm2022/ngwr-cascader.mjs +58 -89
  71. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  72. package/fesm2022/ngwr-checkbox.mjs +80 -129
  73. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  74. package/fesm2022/ngwr-circular-text.mjs +5 -4
  75. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  76. package/fesm2022/ngwr-click-spark.mjs +27 -7
  77. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  78. package/fesm2022/ngwr-clipboard.mjs +28 -7
  79. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  80. package/fesm2022/ngwr-collapse.mjs +12 -12
  81. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  82. package/fesm2022/ngwr-color-picker.mjs +58 -66
  83. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  84. package/fesm2022/ngwr-command-palette.mjs +4 -4
  85. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  86. package/fesm2022/ngwr-compare.mjs +4 -4
  87. package/fesm2022/ngwr-compare.mjs.map +1 -1
  88. package/fesm2022/ngwr-confetti.mjs +3 -3
  89. package/fesm2022/ngwr-context-menu.mjs +98 -75
  90. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  91. package/fesm2022/ngwr-cookie.mjs +19 -6
  92. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  93. package/fesm2022/ngwr-counter.mjs +32 -14
  94. package/fesm2022/ngwr-counter.mjs.map +1 -1
  95. package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
  96. package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
  97. package/fesm2022/ngwr-date-adapter.mjs +10 -5
  98. package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
  99. package/fesm2022/ngwr-date-picker.mjs +142 -123
  100. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  101. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  102. package/fesm2022/ngwr-density.mjs +15 -15
  103. package/fesm2022/ngwr-density.mjs.map +1 -1
  104. package/fesm2022/ngwr-descriptions.mjs +7 -7
  105. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  106. package/fesm2022/ngwr-dialog.mjs +16 -16
  107. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  108. package/fesm2022/ngwr-directives.mjs +22 -88
  109. package/fesm2022/ngwr-directives.mjs.map +1 -1
  110. package/fesm2022/ngwr-divider.mjs +4 -4
  111. package/fesm2022/ngwr-divider.mjs.map +1 -1
  112. package/fesm2022/ngwr-donut-chart.mjs +11 -5
  113. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  114. package/fesm2022/ngwr-drag-drop.mjs +10 -9
  115. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  116. package/fesm2022/ngwr-drawer.mjs +19 -18
  117. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  118. package/fesm2022/ngwr-dropdown.mjs +13 -12
  119. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  120. package/fesm2022/ngwr-empty.mjs +4 -4
  121. package/fesm2022/ngwr-empty.mjs.map +1 -1
  122. package/fesm2022/ngwr-falling-text.mjs +5 -4
  123. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  124. package/fesm2022/ngwr-file-upload.mjs +58 -60
  125. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  126. package/fesm2022/ngwr-form.mjs +11 -11
  127. package/fesm2022/ngwr-form.mjs.map +1 -1
  128. package/fesm2022/ngwr-fuzzy-text.mjs +10 -8
  129. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  130. package/fesm2022/ngwr-gauge.mjs +4 -4
  131. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  132. package/fesm2022/ngwr-glitch-text.mjs +15 -7
  133. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  134. package/fesm2022/ngwr-gradient-text.mjs +4 -4
  135. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  136. package/fesm2022/ngwr-hotkey.mjs +7 -7
  137. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  138. package/fesm2022/ngwr-i18n.mjs +10 -10
  139. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  140. package/fesm2022/ngwr-icon-adapters-lucide.mjs +6 -7
  141. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  142. package/fesm2022/ngwr-icon.mjs +4 -4
  143. package/fesm2022/ngwr-icon.mjs.map +1 -1
  144. package/fesm2022/ngwr-image-cropper.mjs +6 -5
  145. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  146. package/fesm2022/ngwr-input-number.mjs +56 -73
  147. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  148. package/fesm2022/ngwr-input-otp.mjs +52 -52
  149. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  150. package/fesm2022/ngwr-input.mjs +27 -18
  151. package/fesm2022/ngwr-input.mjs.map +1 -1
  152. package/fesm2022/ngwr-keyboard.mjs +4 -4
  153. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  154. package/fesm2022/ngwr-knob.mjs +47 -58
  155. package/fesm2022/ngwr-knob.mjs.map +1 -1
  156. package/fesm2022/ngwr-layout.mjs +16 -16
  157. package/fesm2022/ngwr-layout.mjs.map +1 -1
  158. package/fesm2022/ngwr-lightbox.mjs +20 -7
  159. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  160. package/fesm2022/ngwr-line-chart.mjs +4 -4
  161. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  162. package/fesm2022/ngwr-list.mjs +8 -8
  163. package/fesm2022/ngwr-list.mjs.map +1 -1
  164. package/fesm2022/ngwr-loading-bar.mjs +7 -7
  165. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  166. package/fesm2022/ngwr-marquee.mjs +6 -5
  167. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  168. package/fesm2022/ngwr-media.mjs +4 -4
  169. package/fesm2022/ngwr-media.mjs.map +1 -1
  170. package/fesm2022/ngwr-mention.mjs +15 -9
  171. package/fesm2022/ngwr-mention.mjs.map +1 -1
  172. package/fesm2022/ngwr-meta.mjs +7 -7
  173. package/fesm2022/ngwr-meta.mjs.map +1 -1
  174. package/fesm2022/ngwr-meter-group.mjs +4 -4
  175. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  176. package/fesm2022/ngwr-overlay.mjs +9 -4
  177. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  178. package/fesm2022/ngwr-page-header.mjs +4 -4
  179. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  180. package/fesm2022/ngwr-pagination.mjs +6 -16
  181. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  182. package/fesm2022/ngwr-pipes.mjs +21 -21
  183. package/fesm2022/ngwr-platform.mjs +169 -5
  184. package/fesm2022/ngwr-platform.mjs.map +1 -1
  185. package/fesm2022/ngwr-popconfirm.mjs +7 -7
  186. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  187. package/fesm2022/ngwr-popover.mjs +7 -7
  188. package/fesm2022/ngwr-popover.mjs.map +1 -1
  189. package/fesm2022/ngwr-progress.mjs +4 -4
  190. package/fesm2022/ngwr-progress.mjs.map +1 -1
  191. package/fesm2022/ngwr-pull-to-refresh.mjs +172 -0
  192. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -0
  193. package/fesm2022/ngwr-qr.mjs +5 -5
  194. package/fesm2022/ngwr-qr.mjs.map +1 -1
  195. package/fesm2022/ngwr-radio.mjs +49 -72
  196. package/fesm2022/ngwr-radio.mjs.map +1 -1
  197. package/fesm2022/ngwr-rating.mjs +41 -65
  198. package/fesm2022/ngwr-rating.mjs.map +1 -1
  199. package/fesm2022/ngwr-result.mjs +13 -13
  200. package/fesm2022/ngwr-result.mjs.map +1 -1
  201. package/fesm2022/ngwr-rotating-text.mjs +15 -4
  202. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  203. package/fesm2022/ngwr-scroll.mjs +4 -4
  204. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  205. package/fesm2022/ngwr-segmented.mjs +10 -22
  206. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  207. package/fesm2022/ngwr-select.mjs +303 -86
  208. package/fesm2022/ngwr-select.mjs.map +1 -1
  209. package/fesm2022/ngwr-shiny-text.mjs +7 -7
  210. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  211. package/fesm2022/ngwr-sidebar.mjs +4 -4
  212. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  213. package/fesm2022/ngwr-skeleton.mjs +4 -4
  214. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  215. package/fesm2022/ngwr-slider.mjs +79 -73
  216. package/fesm2022/ngwr-slider.mjs.map +1 -1
  217. package/fesm2022/ngwr-sparkline.mjs +4 -4
  218. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  219. package/fesm2022/ngwr-speed-dial.mjs +13 -5
  220. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  221. package/fesm2022/ngwr-spinner.mjs +4 -4
  222. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  223. package/fesm2022/ngwr-splash-cursor.mjs +4 -4
  224. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  225. package/fesm2022/ngwr-split-text.mjs +3 -3
  226. package/fesm2022/ngwr-splitter.mjs +4 -4
  227. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  228. package/fesm2022/ngwr-spotlight-card.mjs +8 -8
  229. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  230. package/fesm2022/ngwr-squircle.mjs +7 -7
  231. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  232. package/fesm2022/ngwr-star-border.mjs +4 -4
  233. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  234. package/fesm2022/ngwr-statistic.mjs +138 -14
  235. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  236. package/fesm2022/ngwr-stepper.mjs +8 -8
  237. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  238. package/fesm2022/ngwr-storage.mjs +4 -4
  239. package/fesm2022/ngwr-storage.mjs.map +1 -1
  240. package/fesm2022/ngwr-switch.mjs +22 -58
  241. package/fesm2022/ngwr-switch.mjs.map +1 -1
  242. package/fesm2022/ngwr-table.mjs +824 -20
  243. package/fesm2022/ngwr-table.mjs.map +1 -1
  244. package/fesm2022/ngwr-tabs.mjs +11 -8
  245. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  246. package/fesm2022/ngwr-textarea.mjs +94 -67
  247. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  248. package/fesm2022/ngwr-theme.mjs +20 -5
  249. package/fesm2022/ngwr-theme.mjs.map +1 -1
  250. package/fesm2022/ngwr-tilt-card.mjs +27 -11
  251. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  252. package/fesm2022/ngwr-timeline.mjs +7 -7
  253. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  254. package/fesm2022/ngwr-toast.mjs +47 -25
  255. package/fesm2022/ngwr-toast.mjs.map +1 -1
  256. package/fesm2022/ngwr-toolbar.mjs +4 -4
  257. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  258. package/fesm2022/ngwr-tree.mjs +280 -84
  259. package/fesm2022/ngwr-tree.mjs.map +1 -1
  260. package/fesm2022/ngwr-typewriter.mjs +10 -5
  261. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  262. package/fesm2022/ngwr-typography.mjs +4 -4
  263. package/fesm2022/ngwr-typography.mjs.map +1 -1
  264. package/fesm2022/ngwr-validators.mjs +42 -4
  265. package/fesm2022/ngwr-validators.mjs.map +1 -1
  266. package/fesm2022/ngwr-version.mjs +1 -1
  267. package/fesm2022/ngwr-version.mjs.map +1 -1
  268. package/fesm2022/ngwr-virtual-scroll.mjs +9 -7
  269. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  270. package/fesm2022/ngwr-waves.mjs +6 -5
  271. package/fesm2022/ngwr-waves.mjs.map +1 -1
  272. package/fesm2022/ngwr-window.mjs +16 -15
  273. package/fesm2022/ngwr-window.mjs.map +1 -1
  274. package/file-upload/styles/_index.scss +14 -14
  275. package/form/styles/_index.scss +9 -9
  276. package/gauge/styles/_index.scss +2 -2
  277. package/glitch-text/styles/_index.scss +4 -7
  278. package/gradient-text/styles/_index.scss +1 -1
  279. package/image-cropper/styles/_index.scss +8 -7
  280. package/input/styles/_index.scss +35 -16
  281. package/input-number/styles/_index.scss +1 -1
  282. package/input-otp/styles/_index.scss +28 -10
  283. package/keyboard/styles/_index.scss +11 -9
  284. package/knob/styles/_index.scss +7 -3
  285. package/layout/styles/_index.scss +12 -12
  286. package/lightbox/styles/_index.scss +31 -10
  287. package/line-chart/styles/_index.scss +5 -5
  288. package/list/styles/_index.scss +6 -6
  289. package/llms-full.txt +45 -24
  290. package/llms.txt +48 -32
  291. package/marquee/styles/_index.scss +1 -1
  292. package/mention/styles/_index.scss +6 -6
  293. package/meter-group/styles/_index.scss +4 -4
  294. package/overlay/styles/_index.scss +9 -1
  295. package/package.json +21 -14
  296. package/page-header/styles/_index.scss +4 -4
  297. package/pagination/styles/_index.scss +6 -29
  298. package/popconfirm/styles/_index.scss +4 -4
  299. package/popover/styles/_index.scss +7 -7
  300. package/progress/styles/_index.scss +1 -1
  301. package/pull-to-refresh/styles/_index.scss +38 -0
  302. package/radio/styles/_index.scss +24 -9
  303. package/rating/styles/_index.scss +13 -2
  304. package/result/styles/_index.scss +3 -3
  305. package/schematics/migrations/v8/index.js +122 -0
  306. package/schematics/migrations/v9/index.js +71 -0
  307. package/schematics/migrations.json +10 -0
  308. package/schematics/ng-add/index.js +3 -3
  309. package/schematics/ng-add/schema.json +7 -7
  310. package/schematics/provider/schema.json +1 -1
  311. package/schematics/use/symbol-map.json +24 -2
  312. package/segmented/styles/_index.scss +35 -12
  313. package/select/styles/_index.scss +126 -43
  314. package/shiny-text/styles/_index.scss +4 -4
  315. package/sidebar/styles/_index.scss +15 -15
  316. package/slider/styles/_index.scss +7 -8
  317. package/speed-dial/styles/_index.scss +23 -6
  318. package/splash-cursor/styles/_index.scss +1 -0
  319. package/splitter/styles/_index.scss +11 -8
  320. package/spotlight-card/styles/_index.scss +11 -7
  321. package/star-border/styles/_index.scss +3 -3
  322. package/statistic/styles/_index.scss +51 -4
  323. package/stepper/styles/_index.scss +10 -10
  324. package/styles/_animations.scss +0 -23
  325. package/styles/_typography.scss +4 -1
  326. package/styles.scss +2 -1
  327. package/switch/styles/_index.scss +29 -10
  328. package/table/styles/_index.scss +456 -26
  329. package/tabs/styles/_index.scss +25 -6
  330. package/textarea/styles/_index.scss +65 -10
  331. package/theme/styles/_colors.scss +82 -1
  332. package/theme/styles/_dark.scss +22 -8
  333. package/theme/styles/_focus.scss +5 -0
  334. package/theme/styles/_variables.scss +24 -0
  335. package/tilt-card/styles/_index.scss +4 -4
  336. package/timeline/styles/_index.scss +18 -8
  337. package/toast/styles/_index.scss +24 -16
  338. package/toolbar/styles/_index.scss +5 -5
  339. package/tree/styles/_index.scss +63 -32
  340. package/types/ngwr-action-sheet.d.ts +75 -0
  341. package/types/ngwr-alert.d.ts +17 -7
  342. package/types/ngwr-anchor.d.ts +1 -1
  343. package/types/ngwr-avatar.d.ts +1 -1
  344. package/types/ngwr-back-top.d.ts +1 -1
  345. package/types/ngwr-badge.d.ts +4 -4
  346. package/types/ngwr-bar-chart.d.ts +1 -1
  347. package/types/ngwr-breadcrumbs.d.ts +1 -1
  348. package/types/ngwr-burger.d.ts +1 -1
  349. package/types/ngwr-button.d.ts +3 -3
  350. package/types/ngwr-calendar-heatmap.d.ts +1 -1
  351. package/types/ngwr-calendar.d.ts +1 -1
  352. package/types/ngwr-card.d.ts +1 -1
  353. package/types/ngwr-carousel.d.ts +1 -1
  354. package/types/ngwr-cascader.d.ts +31 -17
  355. package/types/ngwr-checkbox.d.ts +67 -44
  356. package/types/ngwr-click-spark.d.ts +13 -1
  357. package/types/ngwr-clipboard.d.ts +13 -2
  358. package/types/ngwr-collapse.d.ts +3 -3
  359. package/types/ngwr-color-picker.d.ts +24 -19
  360. package/types/ngwr-command-palette.d.ts +1 -1
  361. package/types/ngwr-compare.d.ts +1 -1
  362. package/types/ngwr-context-menu.d.ts +42 -23
  363. package/types/ngwr-cookie.d.ts +7 -1
  364. package/types/ngwr-counter.d.ts +9 -2
  365. package/types/ngwr-date-picker.d.ts +39 -23
  366. package/types/ngwr-density.d.ts +8 -8
  367. package/types/ngwr-descriptions.d.ts +1 -1
  368. package/types/ngwr-dialog.d.ts +1 -1
  369. package/types/ngwr-directives.d.ts +18 -49
  370. package/types/ngwr-divider.d.ts +2 -2
  371. package/types/ngwr-donut-chart.d.ts +1 -1
  372. package/types/ngwr-drag-drop.d.ts +1 -1
  373. package/types/ngwr-drawer.d.ts +1 -1
  374. package/types/ngwr-dropdown.d.ts +1 -1
  375. package/types/ngwr-empty.d.ts +1 -1
  376. package/types/ngwr-file-upload.d.ts +28 -17
  377. package/types/ngwr-form.d.ts +2 -2
  378. package/types/ngwr-fuzzy-text.d.ts +1 -1
  379. package/types/ngwr-gauge.d.ts +1 -1
  380. package/types/ngwr-glitch-text.d.ts +9 -3
  381. package/types/ngwr-hotkey.d.ts +1 -1
  382. package/types/ngwr-i18n.d.ts +1 -1
  383. package/types/ngwr-icon-adapters-lucide.d.ts +5 -3
  384. package/types/ngwr-icon.d.ts +1 -1
  385. package/types/ngwr-image-cropper.d.ts +1 -1
  386. package/types/ngwr-input-number.d.ts +25 -19
  387. package/types/ngwr-input-otp.d.ts +28 -18
  388. package/types/ngwr-input.d.ts +29 -15
  389. package/types/ngwr-keyboard.d.ts +1 -1
  390. package/types/ngwr-knob.d.ts +24 -19
  391. package/types/ngwr-layout.d.ts +1 -1
  392. package/types/ngwr-lightbox.d.ts +10 -2
  393. package/types/ngwr-line-chart.d.ts +1 -1
  394. package/types/ngwr-list.d.ts +1 -1
  395. package/types/ngwr-loading-bar.d.ts +1 -1
  396. package/types/ngwr-marquee.d.ts +1 -1
  397. package/types/ngwr-media.d.ts +1 -1
  398. package/types/ngwr-mention.d.ts +1 -1
  399. package/types/ngwr-meta.d.ts +1 -1
  400. package/types/ngwr-meter-group.d.ts +1 -1
  401. package/types/ngwr-page-header.d.ts +1 -1
  402. package/types/ngwr-pagination.d.ts +4 -10
  403. package/types/ngwr-platform.d.ts +93 -2
  404. package/types/ngwr-popconfirm.d.ts +3 -3
  405. package/types/ngwr-progress.d.ts +2 -2
  406. package/types/ngwr-pull-to-refresh.d.ts +69 -0
  407. package/types/ngwr-qr.d.ts +1 -1
  408. package/types/ngwr-radio.d.ts +39 -25
  409. package/types/ngwr-rating.d.ts +32 -20
  410. package/types/ngwr-result.d.ts +1 -1
  411. package/types/ngwr-rotating-text.d.ts +1 -0
  412. package/types/ngwr-scroll.d.ts +1 -1
  413. package/types/ngwr-segmented.d.ts +6 -3
  414. package/types/ngwr-select.d.ts +98 -27
  415. package/types/ngwr-sidebar.d.ts +1 -1
  416. package/types/ngwr-skeleton.d.ts +2 -2
  417. package/types/ngwr-slider.d.ts +35 -21
  418. package/types/ngwr-sparkline.d.ts +1 -1
  419. package/types/ngwr-speed-dial.d.ts +8 -2
  420. package/types/ngwr-spinner.d.ts +1 -1
  421. package/types/ngwr-splitter.d.ts +1 -1
  422. package/types/ngwr-spotlight-card.d.ts +1 -1
  423. package/types/ngwr-squircle.d.ts +1 -1
  424. package/types/ngwr-statistic.d.ts +75 -6
  425. package/types/ngwr-stepper.d.ts +2 -2
  426. package/types/ngwr-storage.d.ts +1 -1
  427. package/types/ngwr-switch.d.ts +24 -16
  428. package/types/ngwr-table.d.ts +417 -6
  429. package/types/ngwr-tabs.d.ts +1 -1
  430. package/types/ngwr-textarea.d.ts +45 -20
  431. package/types/ngwr-theme.d.ts +7 -2
  432. package/types/ngwr-tilt-card.d.ts +3 -0
  433. package/types/ngwr-timeline.d.ts +1 -1
  434. package/types/ngwr-toast.d.ts +8 -2
  435. package/types/ngwr-toolbar.d.ts +1 -1
  436. package/types/ngwr-tree.d.ts +100 -19
  437. package/types/ngwr-typography.d.ts +1 -1
  438. package/types/ngwr-validators.d.ts +4 -2
  439. package/types/ngwr-version.d.ts +1 -1
  440. package/types/ngwr-virtual-scroll.d.ts +1 -1
  441. package/types/ngwr-window.d.ts +1 -1
  442. package/typography/styles/_index.scss +11 -11
  443. package/virtual-scroll/styles/_index.scss +1 -1
  444. package/waves/styles/_index.scss +1 -1
  445. package/window/styles/_index.scss +26 -26
  446. package/fesm2022/ngwr-scramble-text.mjs +0 -165
  447. package/fesm2022/ngwr-scramble-text.mjs.map +0 -1
  448. package/scramble-text/scramble-text.scss +0 -1
  449. package/scramble-text/styles/_index.scss +0 -8
  450. package/types/ngwr-scramble-text.d.ts +0 -49
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { ElementRef } from '@angular/core';
3
- import { ControlValueAccessor } from '@angular/forms';
3
+ import { FormValueControl } from '@angular/forms/signals';
4
4
  import { WrDateFormat } from 'ngwr/date-adapter';
5
5
 
6
6
  /**
@@ -14,8 +14,11 @@ import { WrDateFormat } from 'ngwr/date-adapter';
14
14
  * - `'datetime'` — popover stacks calendar + time stepper. Picking a date
15
15
  * does NOT close (the user typically wants to set the time next).
16
16
  *
17
- * Implements `ControlValueAccessor` — bind via `[(ngModel)]`, `[formControl]`,
18
- * or `formControlName`. Value type is `Date | null` for every mode.
17
+ * A signal-forms native control: it implements `FormValueControl<Date | null>`,
18
+ * so `[formField]` binds straight to its `value` model — no
19
+ * `ControlValueAccessor` in between. `[(value)]` works standalone, and classic
20
+ * `[(ngModel)]` / reactive forms keep working through Angular's bridge. Value
21
+ * type is `Date | null` for every mode.
19
22
  *
20
23
  * Parses the input on every keystroke (silently — only emits when valid) and
21
24
  * re-formats canonical on blur. Format is driven by {@link WrDateAdapter}: it
@@ -27,19 +30,22 @@ import { WrDateFormat } from 'ngwr/date-adapter';
27
30
  *
28
31
  * @example
29
32
  * ```html
30
- * <!-- Date only -->
31
- * <wr-date-picker [(ngModel)]="picked" format="dd.MM.yyyy" [min]="minDate" />
33
+ * <!-- signal forms -->
34
+ * <wr-date-picker [formField]="form.picked" format="dd.MM.yyyy" [min]="minDate" />
35
+ *
36
+ * <!-- standalone two-way binding, date only -->
37
+ * <wr-date-picker [(value)]="picked" format="dd.MM.yyyy" [min]="minDate" />
32
38
  *
33
39
  * <!-- Time only -->
34
- * <wr-date-picker mode="time" [(ngModel)]="picked" timeFormat="24h" />
40
+ * <wr-date-picker mode="time" [(value)]="picked" timeFormat="24h" />
35
41
  *
36
42
  * <!-- Date + time -->
37
- * <wr-date-picker mode="datetime" [(ngModel)]="when" [showSeconds]="true" [step]="5" />
43
+ * <wr-date-picker mode="datetime" [(value)]="when" [showSeconds]="true" [step]="5" />
38
44
  * ```
39
45
  *
40
- * @see https://ngwr.dev/components/date-picker
46
+ * @see https://ngwr.dev/reference/components/date-picker
41
47
  */
42
- declare class WrDatePicker implements ControlValueAccessor {
48
+ declare class WrDatePicker implements FormValueControl<Date | null> {
43
49
  /** Picker behavior — see class doc. @default 'date' */
44
50
  readonly mode: _angular_core.InputSignal<"time" | "date" | "datetime">;
45
51
  /**
@@ -51,9 +57,9 @@ declare class WrDatePicker implements ControlValueAccessor {
51
57
  /** Placeholder shown when the input is empty. */
52
58
  readonly placeholder: _angular_core.InputSignal<string>;
53
59
  /** Min selectable date (forwarded to the calendar). Ignored in `time` mode. */
54
- readonly min: _angular_core.InputSignal<Date | null>;
60
+ readonly min: _angular_core.InputSignal<Date | undefined>;
55
61
  /** Max selectable date (forwarded to the calendar). Ignored in `time` mode. */
56
- readonly max: _angular_core.InputSignal<Date | null>;
62
+ readonly max: _angular_core.InputSignal<Date | undefined>;
57
63
  /** Predicate to disable specific dates (forwarded to the calendar). Ignored in `time` mode. */
58
64
  readonly dateFilter: _angular_core.InputSignal<((date: Date) => boolean) | null>;
59
65
  /** Time-panel 12 / 24-hour format. Applies in `time` + `datetime` modes. @default 'auto' */
@@ -62,7 +68,12 @@ declare class WrDatePicker implements ControlValueAccessor {
62
68
  readonly showSeconds: _angular_core.InputSignalWithTransform<boolean, any>;
63
69
  /** Minute / second step for the time panel. @default 1 */
64
70
  readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
65
- /** Disable interaction. @default false */
71
+ /**
72
+ * Disable interaction. Bound automatically from the field's disabled state
73
+ * when used with `[formField]`.
74
+ *
75
+ * @default false
76
+ */
66
77
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
67
78
  /** Read-only — input not typeable, but the trigger icon still opens the overlay. @default false */
68
79
  readonly readonly: _angular_core.InputSignalWithTransform<boolean, any>;
@@ -72,12 +83,12 @@ declare class WrDatePicker implements ControlValueAccessor {
72
83
  private readonly host;
73
84
  private readonly destroyRef;
74
85
  protected readonly inputEl: _angular_core.Signal<ElementRef<HTMLInputElement>>;
75
- /** The picked Date. Mirrored from the CVA. */
76
- protected readonly value: _angular_core.WritableSignal<Date | null>;
86
+ /** The picked Date. Bound by `[formField]`, or two-way via `[(value)]`. */
87
+ readonly value: _angular_core.ModelSignal<Date | null>;
88
+ /** Emitted on blur so a bound field can mark itself touched. */
89
+ readonly touch: _angular_core.OutputEmitterRef<void>;
77
90
  /** Text currently in the input (may be partial / invalid mid-type). */
78
91
  protected readonly text: _angular_core.WritableSignal<string>;
79
- private readonly disabledFromCva;
80
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
81
92
  /** Whether the popover is currently open. */
82
93
  protected readonly overlayOpen: _angular_core.WritableSignal<boolean>;
83
94
  /** Resolved format — falls back to a mode-appropriate default. */
@@ -90,13 +101,14 @@ declare class WrDatePicker implements ControlValueAccessor {
90
101
  protected readonly triggerLabel: _angular_core.Signal<string>;
91
102
  protected readonly classes: _angular_core.Signal<string>;
92
103
  private overlayRef;
104
+ /** Live calendar ref while the date popover is open — lets the panel track
105
+ * the typed value in real time (not just on reopen). */
106
+ private readonly dateRef;
107
+ /** Last value we pushed into the model ourselves — lets the sync effect
108
+ * skip the echo of our own edits (so a live keystroke's raw text is never
109
+ * reformatted mid-type). */
110
+ private lastValue;
93
111
  constructor();
94
- private onChange;
95
- private onTouched;
96
- writeValue(value: Date | null): void;
97
- registerOnChange(fn: (value: Date | null) => void): void;
98
- registerOnTouched(fn: () => void): void;
99
- setDisabledState(isDisabled: boolean): void;
100
112
  protected onInput(event: Event): void;
101
113
  protected onBlur(): void;
102
114
  /** Called by the input's click — opens the overlay if it isn't open already. */
@@ -107,11 +119,15 @@ declare class WrDatePicker implements ControlValueAccessor {
107
119
  private attachTime;
108
120
  private attachDateTime;
109
121
  private commit;
122
+ /** Push a value to the model while remembering it, so the sync effect treats
123
+ * the resulting change as an echo and leaves the display text alone. */
124
+ private commitValue;
110
125
  private closeOverlay;
111
126
  private dispose;
112
127
  private isOutOfBounds;
128
+ private sameDate;
113
129
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDatePicker, never>;
114
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDatePicker, "wr-date-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
130
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDatePicker, "wr-date-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
115
131
  }
116
132
 
117
133
  export { WrDatePicker };
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Signal, EnvironmentProviders } from '@angular/core';
3
3
 
4
4
  /** Density scale. Components multiply their paddings by the matching multiplier. */
5
- type WrDensityValue = 'compact' | 'default' | 'comfortable' | 'touch';
5
+ type WrDensityValue = 'sm' | 'md' | 'lg' | 'touch';
6
6
  /** Configuration for {@link WrDensityValueService}. */
7
7
  interface WrDensityConfig {
8
- /** Initial density used when no persisted value is present. @default 'default' */
8
+ /** Initial density used when no persisted value is present. @default 'md' */
9
9
  readonly defaultDensity: WrDensityValue;
10
10
  /** Storage key for persistence (via `WrStorage`). Set to `null` to disable. @default 'wr-density' */
11
11
  readonly storageKey: string | null;
@@ -36,11 +36,11 @@ declare const WR_DENSITY_CONFIG: InjectionToken<WrDensityConfig>;
36
36
  * @example
37
37
  * ```ts
38
38
  * const density = inject(WrDensity);
39
- * density.set('compact');
40
- * density.current(); // 'compact'
39
+ * density.set('sm');
40
+ * density.current(); // 'sm'
41
41
  * ```
42
42
  *
43
- * @see https://ngwr.dev/services/density
43
+ * @see https://ngwr.dev/reference/services/density
44
44
  */
45
45
  declare class WrDensity {
46
46
  private readonly doc;
@@ -52,7 +52,7 @@ declare class WrDensity {
52
52
  constructor();
53
53
  /** Switch the active density. Ignores unknown values. */
54
54
  set(density: WrDensityValue): void;
55
- /** Cycle compact → default → comfortable → touch → compact … */
55
+ /** Cycle sm → md → lg → touch → sm … */
56
56
  cycle(): void;
57
57
  private readPersisted;
58
58
  private persist;
@@ -67,8 +67,8 @@ declare class WrDensity {
67
67
  *
68
68
  * @example
69
69
  * ```html
70
- * <!-- The whole sidebar is compact, the rest of the app keeps its global density. -->
71
- * <aside wrDensity="compact">
70
+ * <!-- The whole sidebar is sm, the rest of the app keeps its global density. -->
71
+ * <aside wrDensity="sm">
72
72
  * <wr-list ...></wr-list>
73
73
  * </aside>
74
74
  * ```
@@ -14,7 +14,7 @@ import * as _angular_core from '@angular/core';
14
14
  * </wr-descriptions>
15
15
  * ```
16
16
  *
17
- * @see https://ngwr.dev/components/descriptions
17
+ * @see https://ngwr.dev/reference/components/descriptions
18
18
  */
19
19
  declare class WrDescriptions {
20
20
  /** Optional title shown above the list. */
@@ -94,7 +94,7 @@ interface WrDialogOptions<D = unknown> {
94
94
  * if (ok) remove();
95
95
  * ```
96
96
  *
97
- * @see https://ngwr.dev/components/dialog
97
+ * @see https://ngwr.dev/reference/components/dialog
98
98
  */
99
99
  declare class WrDialog {
100
100
  private readonly overlay;
@@ -1,4 +1,4 @@
1
- import * as _angular_core from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
2
 
3
3
  /**
4
4
  * Focus the host element after the first render — or whenever the bound
@@ -12,11 +12,11 @@ import * as _angular_core from '@angular/core';
12
12
  */
13
13
  declare class WrAutofocus {
14
14
  /** Truthy = focus. Defaults to `true` so bare `wrAutofocus` works. */
15
- readonly wrAutofocus: _angular_core.InputSignalWithTransform<boolean, any>;
15
+ readonly wrAutofocus: i0.InputSignalWithTransform<boolean, any>;
16
16
  private readonly el;
17
17
  constructor();
18
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAutofocus, never>;
19
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrAutofocus, "[wrAutofocus]", never, { "wrAutofocus": { "alias": "wrAutofocus"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrAutofocus, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrAutofocus, "[wrAutofocus]", never, { "wrAutofocus": { "alias": "wrAutofocus"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
20
  }
21
21
 
22
22
  /**
@@ -29,17 +29,18 @@ declare class WrAutofocus {
29
29
  * ```
30
30
  */
31
31
  declare class WrAutosize {
32
- readonly minRows: _angular_core.InputSignalWithTransform<number, unknown>;
33
- readonly maxRows: _angular_core.InputSignalWithTransform<number, unknown>;
32
+ readonly minRows: i0.InputSignalWithTransform<number, unknown>;
33
+ readonly maxRows: i0.InputSignalWithTransform<number, unknown>;
34
34
  private readonly el;
35
+ private readonly isBrowser;
35
36
  private lastValue;
36
37
  constructor();
37
38
  /** @internal */
38
39
  protected onInput(): void;
39
40
  /** Recompute height from `scrollHeight`, clamped to min/max rows. */
40
41
  private resize;
41
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAutosize, never>;
42
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrAutosize, "textarea[wrAutosize]", never, { "minRows": { "alias": "minRows"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrAutosize, never>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrAutosize, "textarea[wrAutosize]", never, { "minRows": { "alias": "minRows"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
43
44
  }
44
45
 
45
46
  /**
@@ -52,14 +53,14 @@ declare class WrAutosize {
52
53
  * ```
53
54
  */
54
55
  declare class WrClickOutside {
55
- readonly wrClickOutside: _angular_core.OutputEmitterRef<MouseEvent>;
56
+ readonly wrClickOutside: i0.OutputEmitterRef<MouseEvent>;
56
57
  private readonly host;
57
58
  private readonly doc;
58
59
  private readonly zone;
59
60
  private readonly destroyRef;
60
61
  constructor();
61
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrClickOutside, never>;
62
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrClickOutside, "[wrClickOutside]", never, {}, { "wrClickOutside": "wrClickOutside"; }, never, never, true, never>;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrClickOutside, never>;
63
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrClickOutside, "[wrClickOutside]", never, {}, { "wrClickOutside": "wrClickOutside"; }, never, never, true, never>;
63
64
  }
64
65
 
65
66
  /**
@@ -76,50 +77,18 @@ declare class WrClickOutside {
76
77
  */
77
78
  declare class WrCopyToClipboard {
78
79
  /** The text to copy. */
79
- readonly wrCopyToClipboard: _angular_core.InputSignal<string>;
80
+ readonly wrCopyToClipboard: i0.InputSignal<string>;
80
81
  /** Emitted with the copied text once the write succeeds. */
81
- readonly copied: _angular_core.OutputEmitterRef<string>;
82
+ readonly copied: i0.OutputEmitterRef<string>;
82
83
  /** Emitted if the copy fails (denied permission, no clipboard, …). */
83
- readonly copyFailed: _angular_core.OutputEmitterRef<unknown>;
84
+ readonly copyFailed: i0.OutputEmitterRef<unknown>;
84
85
  private readonly doc;
85
86
  /** @internal */
86
87
  protected onClick(): Promise<void>;
87
88
  /** Legacy clipboard write — hidden textarea + execCommand('copy'). */
88
89
  private fallback;
89
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCopyToClipboard, never>;
90
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrCopyToClipboard, "[wrCopyToClipboard]", never, { "wrCopyToClipboard": { "alias": "wrCopyToClipboard"; "required": true; "isSignal": true; }; }, { "copied": "copied"; "copyFailed": "copyFailed"; }, never, never, true, never>;
91
- }
92
-
93
- /**
94
- * Reveal-on-scroll directive. Adds the `wr-reveal` host class
95
- * immediately and flips it to `wr-reveal--visible` once the element
96
- * enters the viewport — pair with the `.wr-reveal` styles in
97
- * `ngwr/animations` for a fade-and-slide-up enter.
98
- *
99
- * SSR-safe: on the server, the host renders in the visible state so
100
- * the page isn't blank.
101
- *
102
- * @example
103
- * ```html
104
- * <h2 wrReveal>Animates in once visible</h2>
105
- * <div wrReveal threshold="0.5" rootMargin="-100px 0px">…</div>
106
- * <p wrReveal [once]="false">Re-runs every time it enters the viewport</p>
107
- * ```
108
- */
109
- declare class WrReveal {
110
- /** Visibility threshold passed to IntersectionObserver. @default 0.1 */
111
- readonly threshold: _angular_core.InputSignalWithTransform<number, unknown>;
112
- /** `rootMargin` passed to IntersectionObserver. @default '0px' */
113
- readonly rootMargin: _angular_core.InputSignal<string>;
114
- /** Stop observing after the first reveal. @default true */
115
- readonly once: _angular_core.InputSignalWithTransform<boolean, any>;
116
- protected readonly visible: _angular_core.WritableSignal<boolean>;
117
- private readonly el;
118
- private readonly destroyRef;
119
- private readonly isBrowser;
120
- constructor();
121
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrReveal, never>;
122
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrReveal, "[wrReveal]", never, { "threshold": { "alias": "threshold"; "required": false; "isSignal": true; }; "rootMargin": { "alias": "rootMargin"; "required": false; "isSignal": true; }; "once": { "alias": "once"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrCopyToClipboard, never>;
91
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrCopyToClipboard, "[wrCopyToClipboard]", never, { "wrCopyToClipboard": { "alias": "wrCopyToClipboard"; "required": true; "isSignal": true; }; }, { "copied": "copied"; "copyFailed": "copyFailed"; }, never, never, true, never>;
123
92
  }
124
93
 
125
- export { WrAutofocus, WrAutosize, WrClickOutside, WrCopyToClipboard, WrReveal };
94
+ export { WrAutofocus, WrAutosize, WrClickOutside, WrCopyToClipboard };
@@ -35,7 +35,7 @@ type WrDividerType = 'solid' | 'dashed' | 'dotted';
35
35
  * <wr-divider align="start">Section</wr-divider>
36
36
  * ```
37
37
  *
38
- * @see https://ngwr.dev/components/divider
38
+ * @see https://ngwr.dev/reference/components/divider
39
39
  */
40
40
  declare class WrDivider {
41
41
  /**
@@ -43,7 +43,7 @@ declare class WrDivider {
43
43
  *
44
44
  * @default null
45
45
  */
46
- readonly color: _angular_core.InputSignal<"primary" | "secondary" | "success" | "warning" | "danger" | "light" | "medium" | "dark" | null>;
46
+ readonly color: _angular_core.InputSignal<"primary" | "secondary" | "success" | "warning" | "danger" | "info" | "light" | "medium" | "dark" | null>;
47
47
  /**
48
48
  * Line style.
49
49
  *
@@ -18,7 +18,7 @@ interface WrDonutSegment {
18
18
  * ]" centerLabel="Disk" centerValue="60%" />
19
19
  * ```
20
20
  *
21
- * @see https://ngwr.dev/components/donut-chart
21
+ * @see https://ngwr.dev/reference/components/donut-chart
22
22
  */
23
23
  declare class WrDonutChart {
24
24
  readonly segments: _angular_core.InputSignal<readonly WrDonutSegment[]>;
@@ -36,7 +36,7 @@ interface WrSortableReorderEvent<T> {
36
36
  * </wr-sortable-list>
37
37
  * ```
38
38
  *
39
- * @see https://ngwr.dev/components/drag-drop
39
+ * @see https://ngwr.dev/reference/components/drag-drop
40
40
  */
41
41
  declare class WrSortableList<T = unknown> {
42
42
  /** Items to render. Two-way — emits the reordered array on drop. */
@@ -28,7 +28,7 @@ type WrDrawerPosition = 'left' | 'right' | 'top' | 'bottom';
28
28
  * </wr-drawer>
29
29
  * ```
30
30
  *
31
- * @see https://ngwr.dev/components/drawer
31
+ * @see https://ngwr.dev/reference/components/drawer
32
32
  */
33
33
  declare class WrDrawer {
34
34
  /** Two-way bindable open state. */
@@ -17,7 +17,7 @@ import { BooleanInput } from '@angular/cdk/coercion';
17
17
  * </wr-dropdown-menu>
18
18
  * ```
19
19
  *
20
- * @see https://ngwr.dev/components/dropdown
20
+ * @see https://ngwr.dev/reference/components/dropdown
21
21
  */
22
22
  declare class WrDropdownMenu {
23
23
  /** The internal template the directive portals into the overlay. @internal */
@@ -23,7 +23,7 @@ import * as _angular_core from '@angular/core';
23
23
  * </wr-empty>
24
24
  * ```
25
25
  *
26
- * @see https://ngwr.dev/components/empty
26
+ * @see https://ngwr.dev/reference/components/empty
27
27
  */
28
28
  declare class WrEmpty {
29
29
  /** Icon name shown above the title. @default 'folder' */
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { ElementRef } from '@angular/core';
3
- import { ControlValueAccessor } from '@angular/forms';
3
+ import { FormValueControl } from '@angular/forms/signals';
4
4
 
5
5
  /**
6
6
  * @license
@@ -22,18 +22,24 @@ declare function formatBytes(bytes: number): string;
22
22
  * Drag-and-drop file upload zone. Click to browse, drag-and-drop to add,
23
23
  * with an optional file list + remove buttons.
24
24
  *
25
- * Implements `ControlValueAccessor` — value is `File | File[] | null`
26
- * (single or array, governed by `multiple`).
25
+ * A signal-forms native control: it implements
26
+ * `FormValueControl<File | readonly File[] | null>`, so `[formField]` binds
27
+ * straight to its `value` model — no `ControlValueAccessor` in between.
28
+ * `[(value)]` works standalone. The value shape follows `multiple`: a single
29
+ * `File` (or `null`), or a `File[]` array.
27
30
  *
28
31
  * @example
29
32
  * ```html
30
- * <wr-file-upload [(ngModel)]="files" [multiple]="true" accept="image/*" />
31
- * <wr-file-upload [(ngModel)]="avatar" accept=".png,.jpg" [maxSize]="2 * 1024 * 1024" />
33
+ * <!-- signal forms -->
34
+ * <wr-file-upload [formField]="form.files" [multiple]="true" accept="image/*" />
35
+ *
36
+ * <!-- standalone two-way binding -->
37
+ * <wr-file-upload [(value)]="avatar" accept=".png,.jpg" [maxSize]="2 * 1024 * 1024" />
32
38
  * ```
33
39
  *
34
- * @see https://ngwr.dev/components/file-upload
40
+ * @see https://ngwr.dev/reference/components/file-upload
35
41
  */
36
- declare class WrFileUpload implements ControlValueAccessor {
42
+ declare class WrFileUpload implements FormValueControl<File | readonly File[] | null> {
37
43
  /** Allow multiple files. Single mode replaces on each add. @default false */
38
44
  readonly multiple: _angular_core.InputSignalWithTransform<boolean, any>;
39
45
  /** `accept` attribute — comma-separated MIME types or extensions. @default '' */
@@ -44,7 +50,12 @@ declare class WrFileUpload implements ControlValueAccessor {
44
50
  readonly maxFiles: _angular_core.InputSignalWithTransform<number, unknown>;
45
51
  /** Render the picked-files list below the zone. @default true */
46
52
  readonly showList: _angular_core.InputSignalWithTransform<boolean, any>;
47
- /** Disable interaction. @default false */
53
+ /**
54
+ * Disable interaction. Bound automatically from the field's disabled state
55
+ * when used with `[formField]`.
56
+ *
57
+ * @default false
58
+ */
48
59
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
49
60
  /** Primary call-to-action label. Falls back to `fileUpload.browse`. */
50
61
  readonly pickLabel: _angular_core.InputSignal<string | null>;
@@ -60,21 +71,21 @@ declare class WrFileUpload implements ControlValueAccessor {
60
71
  protected readonly resolvedRemove: _angular_core.Signal<string>;
61
72
  /** Optional helper text shown below the labels (e.g. accepted formats). */
62
73
  readonly helperText: _angular_core.InputSignal<string>;
74
+ /**
75
+ * Selected file(s). Bound by `[formField]`, or two-way via `[(value)]`. Shape
76
+ * follows `multiple`: a single `File` (or `null`), or a `File[]` array.
77
+ */
78
+ readonly value: _angular_core.ModelSignal<File | readonly File[] | null>;
63
79
  /** Emitted when files are rejected for type / size / count reasons. */
64
80
  readonly rejected: _angular_core.OutputEmitterRef<readonly WrFileUploadRejection[]>;
81
+ /** Emitted on commit so a bound field can mark itself touched. */
82
+ readonly touch: _angular_core.OutputEmitterRef<void>;
65
83
  protected readonly picker: _angular_core.Signal<ElementRef<HTMLInputElement>>;
66
84
  protected readonly files: _angular_core.WritableSignal<readonly File[]>;
67
85
  protected readonly dragging: _angular_core.WritableSignal<boolean>;
68
- private readonly disabledFromCva;
69
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
70
86
  protected readonly classes: _angular_core.Signal<string>;
71
87
  protected readonly formatBytes: typeof formatBytes;
72
- private onChange;
73
- private onTouched;
74
- writeValue(value: File | readonly File[] | null): void;
75
- registerOnChange(fn: (value: File | readonly File[] | null) => void): void;
76
- registerOnTouched(fn: () => void): void;
77
- setDisabledState(isDisabled: boolean): void;
88
+ constructor();
78
89
  protected openPicker(): void;
79
90
  protected onZoneKey(event: KeyboardEvent): void;
80
91
  protected onPickerChange(event: Event): void;
@@ -87,7 +98,7 @@ declare class WrFileUpload implements ControlValueAccessor {
87
98
  private reject;
88
99
  private emit;
89
100
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrFileUpload, never>;
90
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrFileUpload, "wr-file-upload", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "showList": { "alias": "showList"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "pickLabel": { "alias": "pickLabel"; "required": false; "isSignal": true; }; "dropLabel": { "alias": "dropLabel"; "required": false; "isSignal": true; }; "dropZoneLabel": { "alias": "dropZoneLabel"; "required": false; "isSignal": true; }; "removeFileLabel": { "alias": "removeFileLabel"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; }, { "rejected": "rejected"; }, never, never, true, never>;
101
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrFileUpload, "wr-file-upload", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "showList": { "alias": "showList"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "pickLabel": { "alias": "pickLabel"; "required": false; "isSignal": true; }; "dropLabel": { "alias": "dropLabel"; "required": false; "isSignal": true; }; "dropZoneLabel": { "alias": "dropZoneLabel"; "required": false; "isSignal": true; }; "removeFileLabel": { "alias": "removeFileLabel"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "rejected": "rejected"; "touch": "touch"; }, never, never, true, never>;
91
102
  }
92
103
 
93
104
  export { WrFileUpload };
@@ -17,7 +17,7 @@ import { NgControl } from '@angular/forms';
17
17
  * </wr-form-item>
18
18
  * ```
19
19
  *
20
- * @see https://ngwr.dev/components/form
20
+ * @see https://ngwr.dev/reference/components/form
21
21
  */
22
22
  declare class WrFormItem {
23
23
  /**
@@ -50,7 +50,7 @@ declare class WrFormItem {
50
50
  * </wr-form-field>
51
51
  * ```
52
52
  *
53
- * @see https://ngwr.dev/components/form-field
53
+ * @see https://ngwr.dev/reference/components/form-field
54
54
  */
55
55
  declare class WrFormField {
56
56
  /** Label text shown above the control. */
@@ -31,7 +31,7 @@ declare class WrFuzzyText {
31
31
  readonly fontWeight: _angular_core.InputSignal<string | number>;
32
32
  /** Font family. `'inherit'` reads the canvas's computed style. @default 'inherit' */
33
33
  readonly fontFamily: _angular_core.InputSignal<string>;
34
- /** Text colour. Ignored if `[gradient]` is set. @default '#fff' */
34
+ /** Text colour. `'inherit'` reads the canvas's computed style. Ignored if `[gradient]` is set. @default 'inherit' */
35
35
  readonly color: _angular_core.InputSignal<string>;
36
36
  /** Optional horizontal gradient stops. */
37
37
  readonly gradient: _angular_core.InputSignal<readonly string[] | null>;
@@ -10,7 +10,7 @@ import * as _angular_core from '@angular/core';
10
10
  * <wr-gauge [value]="9.5" [min]="0" [max]="10" suffix="/10" valueColor="var(--wr-color-warning)" />
11
11
  * ```
12
12
  *
13
- * @see https://ngwr.dev/components/gauge
13
+ * @see https://ngwr.dev/reference/components/gauge
14
14
  */
15
15
  declare class WrGauge {
16
16
  readonly value: _angular_core.InputSignal<number>;
@@ -22,10 +22,16 @@ declare class WrGlitchText {
22
22
  readonly enableShadows: _angular_core.InputSignalWithTransform<boolean, any>;
23
23
  /** Only glitch on hover (idle until then). @default true */
24
24
  readonly enableOnHover: _angular_core.InputSignalWithTransform<boolean, any>;
25
- protected readonly beforeShadow: _angular_core.Signal<"5px 0 cyan" | "none">;
26
- protected readonly afterShadow: _angular_core.Signal<"none" | "-5px 0 red">;
25
+ /**
26
+ * Surface colour for the clone slices. Pass the colour of the surface the
27
+ * component sits on so the slicing illusion masks cleanly; leave unset
28
+ * (transparent) on the page canvas. @default '' (transparent)
29
+ */
30
+ readonly background: _angular_core.InputSignal<string>;
31
+ protected readonly beforeShadow: _angular_core.Signal<"5px 0 var(--wr-color-info)" | "none">;
32
+ protected readonly afterShadow: _angular_core.Signal<"none" | "-5px 0 var(--wr-color-danger)">;
27
33
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrGlitchText, never>;
28
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrGlitchText, "wr-glitch-text", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; "enableShadows": { "alias": "enableShadows"; "required": false; "isSignal": true; }; "enableOnHover": { "alias": "enableOnHover"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
34
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrGlitchText, "wr-glitch-text", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; "enableShadows": { "alias": "enableShadows"; "required": false; "isSignal": true; }; "enableOnHover": { "alias": "enableOnHover"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
29
35
  }
30
36
 
31
37
  export { WrGlitchText };
@@ -62,7 +62,7 @@ interface WrHotkeyOptions {
62
62
  * handle.unbind();
63
63
  * ```
64
64
  *
65
- * @see https://ngwr.dev/services/hotkey
65
+ * @see https://ngwr.dev/reference/services/hotkey
66
66
  */
67
67
  declare class WrHotkey {
68
68
  private readonly doc;
@@ -70,7 +70,7 @@ declare const WR_I18N_CONFIG: InjectionToken<WrI18nConfigResolved>;
70
70
  * effect(() => console.log(i18n.translate('hi')())); // re-runs on locale change
71
71
  * ```
72
72
  *
73
- * @see https://ngwr.dev/services/i18n
73
+ * @see https://ngwr.dev/reference/services/i18n
74
74
  */
75
75
  declare class WrI18n {
76
76
  private readonly config;
@@ -29,8 +29,10 @@ type LucideIconNode = readonly (readonly [string, Record<string, string | number
29
29
  declare function lucide(name: string, children: LucideIconNode): WrIconDef;
30
30
  /**
31
31
  * Wrap a bag of Lucide icons in one shot. Keys become the registered
32
- * names (camelCase → kebab-case), values are the upstream IconNode
33
- * tuples. The shape mirrors how you'd write `provideWrIcons` anyway.
32
+ * names **verbatim** — exactly what you pass to `<wr-icon name>` — matching
33
+ * the singular `lucide()` helper and the other adapters. Kebab-case by
34
+ * convention, so quote multi-word keys (`'chevron-down'`). Values are the
35
+ * upstream IconNode tuples.
34
36
  *
35
37
  * Tree-shaking: every `Plus`, `Trash`, … import lives in *your* file
36
38
  * — ngwr ships only this wrapper, not the icon data. Unused icons in
@@ -43,7 +45,7 @@ declare function lucide(name: string, children: LucideIconNode): WrIconDef;
43
45
  *
44
46
  * bootstrapApplication(AppComponent, {
45
47
  * providers: [
46
- * provideWrIcons(lucideIcons({ plus: Plus, trash: Trash, chevronDown: ChevronDown })),
48
+ * provideWrIcons(lucideIcons({ plus: Plus, trash: Trash, 'chevron-down': ChevronDown })),
47
49
  * ],
48
50
  * });
49
51
  * ```
@@ -12,7 +12,7 @@ import { Provider } from '@angular/core';
12
12
  * <wr-icon name="home" />
13
13
  * ```
14
14
  *
15
- * @see https://ngwr.dev/components/icon
15
+ * @see https://ngwr.dev/reference/components/icon
16
16
  */
17
17
  declare class WrIcon {
18
18
  readonly name: i0.InputSignal<string>;
@@ -42,7 +42,7 @@ interface RectPx {
42
42
  * />
43
43
  * ```
44
44
  *
45
- * @see https://ngwr.dev/components/image-cropper
45
+ * @see https://ngwr.dev/reference/components/image-cropper
46
46
  */
47
47
  declare class WrImageCropper {
48
48
  /** Image source — URL string, `File`, or `Blob`. */